This commit was manufactured by cvs2svn to create tag krb5-1.1.2-beta1
authorno author <devnull@mit.edu>
Mon, 22 May 2000 18:29:07 +0000 (18:29 +0000)
committerno author <devnull@mit.edu>
Mon, 22 May 2000 18:29:07 +0000 (18:29 +0000)
'krb5-1-1-2-beta1'.

git-svn-id: svn://anonsvn.mit.edu/krb5/tags/krb5-1-1-2-beta1@12299 dc483132-0cff-0310-8789-dd5450dbe970

784 files changed:
README
doc/ChangeLog
doc/admin.texinfo
doc/api/ChangeLog
doc/api/libdes.tex
doc/build.texinfo
doc/copyright.texinfo
doc/definitions.texinfo
doc/install.texinfo
src/ChangeLog
src/Makefile.in
src/aclocal.m4
src/appl/ChangeLog
src/appl/Makefile.in
src/appl/bsd/ChangeLog
src/appl/bsd/Makefile.in
src/appl/bsd/fieldbits.h
src/appl/bsd/kcmd.c
src/appl/bsd/krlogin.c
src/appl/bsd/krshd.c
src/appl/bsd/login.c
src/appl/gss-sample/ChangeLog
src/appl/gss-sample/Makefile.in
src/appl/gssftp/ChangeLog
src/appl/gssftp/Makefile.in
src/appl/gssftp/ftp/ChangeLog
src/appl/gssftp/ftp/Makefile.in
src/appl/gssftp/ftp/ftp.c
src/appl/gssftp/ftpd/ChangeLog
src/appl/gssftp/ftpd/Makefile.in
src/appl/gssftp/ftpd/ftpd.c
src/appl/sample/ChangeLog
src/appl/sample/Makefile.in
src/appl/sample/sample.h
src/appl/sample/sclient/ChangeLog
src/appl/sample/sclient/Makefile.in
src/appl/sample/sclient/sclient.M
src/appl/sample/sclient/sclient.c
src/appl/sample/sserver/ChangeLog
src/appl/sample/sserver/Makefile.in
src/appl/sample/sserver/sserver.M
src/appl/sample/sserver/sserver.c
src/appl/simple/ChangeLog
src/appl/simple/Makefile.in
src/appl/simple/client/ChangeLog
src/appl/simple/client/Makefile.in
src/appl/simple/client/sim_client.c
src/appl/simple/server/ChangeLog
src/appl/simple/server/Makefile.in
src/appl/simple/server/sim_server.c
src/appl/simple/simple.h
src/appl/telnet/libtelnet/ChangeLog
src/appl/telnet/libtelnet/Makefile.in
src/appl/telnet/libtelnet/auth-proto.h
src/appl/telnet/libtelnet/auth.c
src/appl/telnet/libtelnet/auth.h
src/appl/telnet/libtelnet/enc-proto.h
src/appl/telnet/libtelnet/encrypt.c
src/appl/telnet/libtelnet/encrypt.h
src/appl/telnet/libtelnet/kerberos.c
src/appl/telnet/libtelnet/kerberos5.c
src/appl/telnet/libtelnet/key-proto.h
src/appl/telnet/libtelnet/misc-proto.h
src/appl/telnet/telnet/ChangeLog
src/appl/telnet/telnet/Makefile.in
src/appl/telnet/telnetd/ChangeLog
src/appl/telnet/telnetd/Makefile.in
src/appl/user_user/ChangeLog
src/appl/user_user/Makefile.in
src/appl/user_user/client.c
src/appl/user_user/server.c
src/clients/ChangeLog
src/clients/Makefile.in
src/clients/configure.in
src/clients/kdestroy/ChangeLog
src/clients/kdestroy/Makefile.in
src/clients/kdestroy/kdestroy.M
src/clients/kdestroy/kdestroy.c
src/clients/kinit/ChangeLog
src/clients/kinit/Makefile.in
src/clients/kinit/kinit.M
src/clients/kinit/kinit.c
src/clients/klist/ChangeLog
src/clients/klist/Makefile.in
src/clients/klist/klist.M
src/clients/klist/klist.c
src/clients/kpasswd/ChangeLog
src/clients/kpasswd/Makefile.in
src/clients/kpasswd/kpasswd.M
src/clients/kpasswd/kpasswd.c
src/clients/ksu/ChangeLog
src/clients/ksu/Makefile.in
src/clients/ksu/authorization.c
src/clients/ksu/ccache.c
src/clients/ksu/heuristic.c
src/clients/ksu/krb_auth_su.c
src/clients/ksu/ksu.h
src/clients/ksu/main.c
src/clients/ksu/setenv.c [new file with mode: 0644]
src/clients/ksu/xmalloc.c [new file with mode: 0644]
src/clients/kvno/ChangeLog
src/clients/kvno/Makefile.in
src/config-files/kdc.conf.M
src/config-files/krb5.conf.M
src/config/ChangeLog
src/config/config.guess
src/config/config.sub
src/config/libobj.in
src/config/post.in
src/config/pre.in
src/config/win-pre.in
src/include/ChangeLog
src/include/Makefile.in
src/include/configure.in
src/include/k5-int.h
src/include/k5-util.h
src/include/kerberosIV/addr_comp.h
src/include/kerberosIV/admin_server.h
src/include/kerberosIV/des.h
src/include/kerberosIV/highc.h
src/include/kerberosIV/kadm.h
src/include/kerberosIV/kdc.h
src/include/kerberosIV/klog.h
src/include/kerberosIV/kparse.h
src/include/kerberosIV/krb.h
src/include/kerberosIV/krb_conf.h
src/include/kerberosIV/krb_db.h
src/include/kerberosIV/mit-copyright.h
src/include/kerberosIV/passwd_server.h
src/include/kerberosIV/principal.h
src/include/kerberosIV/prot.h
src/include/krb5.hin
src/include/krb5/adm.h
src/include/krb5/adm_defs.h
src/include/krb5/adm_proto.h
src/include/krb5/copyright.h
src/include/krb5/k5-config.h [deleted file]
src/include/krb5/kdb.h
src/include/krb5/kdb_dbc.h
src/include/krb5/kdb_dbm.h
src/include/krb5/kdb_kt.h
src/include/krb5/stock/ChangeLog
src/include/krb5/stock/osconf.h
src/include/win-mac.h
src/kadmin/ChangeLog
src/kadmin/Makefile.in
src/kadmin/cli/ChangeLog
src/kadmin/cli/Makefile.in
src/kadmin/cli/dump.c
src/kadmin/cli/getdate.y
src/kadmin/cli/kadmin.c
src/kadmin/cli/kadmin_ct.ct
src/kadmin/cli/ss_wrapper.c
src/kadmin/dbutil/ChangeLog
src/kadmin/dbutil/Makefile.in
src/kadmin/dbutil/dump.c
src/kadmin/dbutil/dumpv4.c
src/kadmin/dbutil/kdb5_create.c
src/kadmin/dbutil/kdb5_destroy.c
src/kadmin/dbutil/kdb5_edit.M
src/kadmin/dbutil/kdb5_stash.c
src/kadmin/dbutil/kdb5_util.c
src/kadmin/dbutil/kdb5_util.h
src/kadmin/dbutil/loadv4.c
src/kadmin/dbutil/tcl_wrapper.c
src/kadmin/dbutil/util.c
src/kadmin/kdbkeys/ChangeLog
src/kadmin/kdbkeys/Makefile.in
src/kadmin/ktutil/ChangeLog
src/kadmin/ktutil/Makefile.in
src/kadmin/ktutil/ktutil.c
src/kadmin/ktutil/ktutil.h
src/kadmin/ktutil/ktutil_ct.ct
src/kadmin/ktutil/ktutil_funcs.c
src/kadmin/passwd/ChangeLog
src/kadmin/passwd/Makefile.in
src/kadmin/passwd/kpasswd.M
src/kadmin/server/ChangeLog
src/kadmin/server/Makefile.in
src/kadmin/testing/ChangeLog
src/kadmin/testing/Makefile.in
src/kadmin/testing/util/ChangeLog
src/kadmin/testing/util/Makefile.in
src/kadmin/v4server/ChangeLog
src/kadmin/v4server/Makefile.in
src/kadmin/v4server/unit-test/ChangeLog
src/kadmin/v4server/unit-test/Makefile.in
src/kadmin/v4server/unit-test/lib/helpers.exp
src/kadmin/v5passwdd/ChangeLog
src/kadmin/v5passwdd/Makefile.in
src/kadmin/v5passwdd/adm_conn.c
src/kadmin/v5passwdd/adm_rw.c
src/kadmin/v5passwdd/kadm5_defs.h
src/kadmin/v5passwdd/kpasswd.c
src/kadmin/v5passwdd/proto_serv.c
src/kadmin/v5passwdd/srv_net.c
src/kadmin/v5passwdd/v5passwd.M
src/kdc/ChangeLog
src/kdc/Makefile.in
src/kdc/dispatch.c
src/kdc/do_as_req.c
src/kdc/do_tgs_req.c
src/kdc/extern.c
src/kdc/extern.h
src/kdc/kdc5_err.et
src/kdc/kdc_preauth.c
src/kdc/kdc_util.c
src/kdc/kdc_util.h
src/kdc/kerberos_v4.c
src/kdc/krb5kdc.M
src/kdc/main.c
src/kdc/network.c
src/kdc/policy.c
src/kdc/policy.h
src/kdc/replay.c
src/kdc/rtest.c
src/kdc/rtscript
src/krb524/ChangeLog
src/krb524/Makefile.in
src/krb524/cnv_tkt_skey.c
src/krb524/krb524d.c
src/krb524/sendmsg.c
src/lib/ChangeLog
src/lib/Makefile.in
src/lib/comerr16.def [deleted file]
src/lib/crypto/ChangeLog
src/lib/crypto/Makefile.in
src/lib/crypto/cksumtypes.c
src/lib/crypto/crc32/ChangeLog
src/lib/crypto/crc32/Makefile.in
src/lib/crypto/crc32/crc-32.h
src/lib/crypto/crc32/crc.c
src/lib/crypto/crc32/crc32.c
src/lib/crypto/crc32/crctest.c
src/lib/crypto/des/ChangeLog
src/lib/crypto/des/Makefile.in
src/lib/crypto/des/des_int.h
src/lib/crypto/des/destest.c
src/lib/crypto/des/key_sched.c
src/lib/crypto/des/string2key.c
src/lib/crypto/des/t_verify.c
src/lib/crypto/des/weak_key.c
src/lib/crypto/dk/ChangeLog
src/lib/crypto/dk/Makefile.in
src/lib/crypto/enc_provider/ChangeLog
src/lib/crypto/enc_provider/Makefile.in
src/lib/crypto/etypes.c
src/lib/crypto/hash_provider/ChangeLog
src/lib/crypto/hash_provider/Makefile.in
src/lib/crypto/keyhash_provider/ChangeLog
src/lib/crypto/keyhash_provider/Makefile.in
src/lib/crypto/keyhash_provider/t_cksum.c
src/lib/crypto/md4/ChangeLog
src/lib/crypto/md4/Makefile.in
src/lib/crypto/md4/rsa-md4.h
src/lib/crypto/md5/ChangeLog
src/lib/crypto/md5/Makefile.in
src/lib/crypto/md5/t_cksum.c
src/lib/crypto/old/ChangeLog
src/lib/crypto/old/Makefile.in
src/lib/crypto/old/old_decrypt.c
src/lib/crypto/raw/ChangeLog
src/lib/crypto/raw/Makefile.in
src/lib/crypto/sha1/ChangeLog
src/lib/crypto/sha1/Makefile.in
src/lib/crypto/t_nfold.c
src/lib/des425/ChangeLog
src/lib/des425/Makefile.in
src/lib/des425/cksum.c
src/lib/des425/des.c
src/lib/des425/des.h
src/lib/des425/enc_dec.c
src/lib/des425/k4_glue.c
src/lib/des425/key_parity.c
src/lib/des425/key_sched.c
src/lib/des425/new_rnd_key.c
src/lib/des425/quad_cksum.c
src/lib/des425/random_key.c
src/lib/des425/read_passwd.c
src/lib/des425/str_to_key.c
src/lib/des425/string2key.c
src/lib/des425/verify.c
src/lib/des425/weak_key.c
src/lib/gssapi/generic/ChangeLog
src/lib/gssapi/generic/Makefile.in
src/lib/gssapi/generic/oid_ops.c
src/lib/gssapi/generic/utl_nohash_validate.c
src/lib/gssapi/krb5/ChangeLog
src/lib/gssapi/krb5/Makefile.in
src/lib/gssapi/krb5/accept_sec_context.c
src/lib/gssapi/krb5/canon_name.c
src/lib/gssapi/krb5/duplicate_name.c
src/lib/gssapi/krb5/export_name.c
src/lib/gssapi/krb5/export_sec_context.c
src/lib/gssapi/krb5/import_sec_context.c
src/lib/gssapi/krb5/init_sec_context.c
src/lib/gssapi/krb5/inq_names.c
src/lib/gssapi/krb5/rel_oid.c
src/lib/gssapi/krb5/ser_sctx.c
src/lib/gssapi/krb5/val_cred.c
src/lib/gssapi/mechglue/ChangeLog
src/lib/gssapi/mechglue/Makefile.in
src/lib/gssapi/mechglue/g_oid_ops.c
src/lib/gssapi/mechglue/oid_ops.c
src/lib/gssapi16.def [deleted file]
src/lib/kadm5/ChangeLog
src/lib/kadm5/Makefile.in
src/lib/kadm5/alt_prof.c
src/lib/kadm5/clnt/ChangeLog
src/lib/kadm5/clnt/Makefile.in
src/lib/kadm5/clnt/client_init.c
src/lib/kadm5/logger.c
src/lib/kadm5/srv/ChangeLog
src/lib/kadm5/srv/Makefile.in
src/lib/kadm5/srv/adb_openclose.c
src/lib/kadm5/srv/server_acl.c
src/lib/kadm5/srv/server_acl.h
src/lib/kadm5/str_conv.c
src/lib/kadm5/unit-test/ChangeLog
src/lib/kadm5/unit-test/Makefile.in
src/lib/kadm5/unit-test/api.2/init-v2.exp
src/lib/kdb/ChangeLog
src/lib/kdb/Makefile.in
src/lib/kdb/decrypt_key.c
src/lib/kdb/encrypt_key.c
src/lib/kdb/fetch_mkey.c
src/lib/kdb/kdb_compat.h
src/lib/kdb/kdb_cpw.c
src/lib/kdb/kdb_db2.c
src/lib/kdb/kdb_db2.h
src/lib/kdb/kdb_dbm.c
src/lib/kdb/kdb_xdr.c
src/lib/kdb/keytab.c
src/lib/kdb/setup_mkey.c
src/lib/kdb/store_mkey.c
src/lib/kdb/t_kdb.c
src/lib/kdb/verify_mky.c
src/lib/krb4/ChangeLog
src/lib/krb4/Makefile.in
src/lib/krb4/kuserok.c
src/lib/krb4/memcache.c
src/lib/krb4/pkt_clen.c
src/lib/krb4/rd_req.c
src/lib/krb4/rd_svc_key.c
src/lib/krb4/sendauth.c
src/lib/krb4_16.def [deleted file]
src/lib/krb5.rc
src/lib/krb5/ChangeLog
src/lib/krb5/Makefile.in
src/lib/krb5/asn.1/ChangeLog
src/lib/krb5/asn.1/KRB5-asn.py
src/lib/krb5/asn.1/Makefile.in
src/lib/krb5/asn.1/asn1_decode.c
src/lib/krb5/asn.1/asn1_decode.h
src/lib/krb5/asn.1/asn1_encode.c
src/lib/krb5/asn.1/asn1_encode.h
src/lib/krb5/asn.1/asn1_get.c
src/lib/krb5/asn.1/asn1_get.h
src/lib/krb5/asn.1/asn1_k_decode.c
src/lib/krb5/asn.1/asn1_k_decode.h
src/lib/krb5/asn.1/asn1_k_encode.c
src/lib/krb5/asn.1/asn1_k_encode.h
src/lib/krb5/asn.1/asn1_make.c
src/lib/krb5/asn.1/asn1_make.h
src/lib/krb5/asn.1/asn1_misc.c
src/lib/krb5/asn.1/asn1_misc.h
src/lib/krb5/asn.1/asn1buf.c
src/lib/krb5/asn.1/asn1buf.h
src/lib/krb5/asn.1/asn1glue.h
src/lib/krb5/asn.1/krb5_decode.c
src/lib/krb5/asn.1/krb5_encode.c
src/lib/krb5/ccache/ChangeLog
src/lib/krb5/ccache/Makefile.in
src/lib/krb5/ccache/cc_retr.c [new file with mode: 0644]
src/lib/krb5/ccache/ccapi/ChangeLog
src/lib/krb5/ccache/ccapi/Makefile.in
src/lib/krb5/ccache/ccapi/stdcc.c
src/lib/krb5/ccache/ccbase.c
src/lib/krb5/ccache/ccdefault.c
src/lib/krb5/ccache/ccdefops.c
src/lib/krb5/ccache/file/ChangeLog
src/lib/krb5/ccache/file/Makefile.in
src/lib/krb5/ccache/file/fcc-proto.h
src/lib/krb5/ccache/file/fcc.h
src/lib/krb5/ccache/file/fcc_close.c
src/lib/krb5/ccache/file/fcc_defops.c
src/lib/krb5/ccache/file/fcc_destry.c
src/lib/krb5/ccache/file/fcc_errs.c
src/lib/krb5/ccache/file/fcc_eseq.c
src/lib/krb5/ccache/file/fcc_gennew.c
src/lib/krb5/ccache/file/fcc_getnam.c
src/lib/krb5/ccache/file/fcc_gprin.c
src/lib/krb5/ccache/file/fcc_init.c
src/lib/krb5/ccache/file/fcc_maybe.c
src/lib/krb5/ccache/file/fcc_nseq.c
src/lib/krb5/ccache/file/fcc_ops.c
src/lib/krb5/ccache/file/fcc_read.c
src/lib/krb5/ccache/file/fcc_reslv.c
src/lib/krb5/ccache/file/fcc_retrv.c
src/lib/krb5/ccache/file/fcc_sflags.c
src/lib/krb5/ccache/file/fcc_skip.c
src/lib/krb5/ccache/file/fcc_sseq.c
src/lib/krb5/ccache/file/fcc_store.c
src/lib/krb5/ccache/file/fcc_test.c
src/lib/krb5/ccache/file/fcc_write.c
src/lib/krb5/ccache/memory/ChangeLog
src/lib/krb5/ccache/memory/Makefile.in
src/lib/krb5/ccache/memory/mcc-proto.h
src/lib/krb5/ccache/memory/mcc.h
src/lib/krb5/ccache/memory/mcc_close.c
src/lib/krb5/ccache/memory/mcc_destry.c
src/lib/krb5/ccache/memory/mcc_eseq.c
src/lib/krb5/ccache/memory/mcc_gennew.c
src/lib/krb5/ccache/memory/mcc_getnam.c
src/lib/krb5/ccache/memory/mcc_gprin.c
src/lib/krb5/ccache/memory/mcc_init.c
src/lib/krb5/ccache/memory/mcc_nseq.c
src/lib/krb5/ccache/memory/mcc_ops.c
src/lib/krb5/ccache/memory/mcc_reslv.c
src/lib/krb5/ccache/memory/mcc_retrv.c
src/lib/krb5/ccache/memory/mcc_sflags.c
src/lib/krb5/ccache/memory/mcc_sseq.c
src/lib/krb5/ccache/memory/mcc_test.c
src/lib/krb5/ccache/ser_cc.c
src/lib/krb5/ccache/stdio/ChangeLog
src/lib/krb5/ccache/stdio/Makefile.in
src/lib/krb5/ccache/stdio/scc-proto.h
src/lib/krb5/ccache/stdio/scc.h
src/lib/krb5/ccache/stdio/scc_close.c
src/lib/krb5/ccache/stdio/scc_defops.c
src/lib/krb5/ccache/stdio/scc_destry.c
src/lib/krb5/ccache/stdio/scc_errs.c
src/lib/krb5/ccache/stdio/scc_eseq.c
src/lib/krb5/ccache/stdio/scc_gennew.c
src/lib/krb5/ccache/stdio/scc_getnam.c
src/lib/krb5/ccache/stdio/scc_gprin.c
src/lib/krb5/ccache/stdio/scc_init.c
src/lib/krb5/ccache/stdio/scc_maybe.c
src/lib/krb5/ccache/stdio/scc_nseq.c
src/lib/krb5/ccache/stdio/scc_ops.c
src/lib/krb5/ccache/stdio/scc_read.c
src/lib/krb5/ccache/stdio/scc_reslv.c
src/lib/krb5/ccache/stdio/scc_retrv.c
src/lib/krb5/ccache/stdio/scc_sflags.c
src/lib/krb5/ccache/stdio/scc_skip.c
src/lib/krb5/ccache/stdio/scc_sseq.c
src/lib/krb5/ccache/stdio/scc_store.c
src/lib/krb5/ccache/stdio/scc_test.c
src/lib/krb5/ccache/stdio/scc_write.c
src/lib/krb5/error_tables/ChangeLog
src/lib/krb5/error_tables/Makefile.in
src/lib/krb5/error_tables/init_ets.c
src/lib/krb5/error_tables/kdb5_err.et
src/lib/krb5/error_tables/krb5_err.et
src/lib/krb5/error_tables/kv5m_err.et
src/lib/krb5/keytab/ChangeLog
src/lib/krb5/keytab/Makefile.in
src/lib/krb5/keytab/db/ChangeLog
src/lib/krb5/keytab/db/Makefile.in
src/lib/krb5/keytab/db/dbkeytab.c
src/lib/krb5/keytab/file/ChangeLog
src/lib/krb5/keytab/file/Makefile.in
src/lib/krb5/keytab/file/ktf_add.c
src/lib/krb5/keytab/file/ktf_close.c
src/lib/krb5/keytab/file/ktf_defops.c
src/lib/krb5/keytab/file/ktf_endget.c
src/lib/krb5/keytab/file/ktf_g_ent.c
src/lib/krb5/keytab/file/ktf_g_name.c
src/lib/krb5/keytab/file/ktf_next.c
src/lib/krb5/keytab/file/ktf_ops.c
src/lib/krb5/keytab/file/ktf_remove.c
src/lib/krb5/keytab/file/ktf_resolv.c
src/lib/krb5/keytab/file/ktf_ssget.c
src/lib/krb5/keytab/file/ktf_util.c
src/lib/krb5/keytab/file/ktf_wops.c
src/lib/krb5/keytab/file/ktf_wreslv.c
src/lib/krb5/keytab/file/ktfile.h
src/lib/krb5/keytab/file/ser_ktf.c
src/lib/krb5/keytab/ktadd.c
src/lib/krb5/keytab/ktbase.c
src/lib/krb5/keytab/ktdefault.c
src/lib/krb5/keytab/ktfr_entry.c
src/lib/krb5/keytab/ktremove.c
src/lib/krb5/keytab/read_servi.c
src/lib/krb5/keytab/srvtab/ChangeLog
src/lib/krb5/keytab/srvtab/Makefile.in
src/lib/krb5/keytab/srvtab/kts_close.c
src/lib/krb5/keytab/srvtab/kts_endget.c
src/lib/krb5/keytab/srvtab/kts_g_ent.c
src/lib/krb5/keytab/srvtab/kts_g_name.c
src/lib/krb5/keytab/srvtab/kts_next.c
src/lib/krb5/keytab/srvtab/kts_ops.c
src/lib/krb5/keytab/srvtab/kts_resolv.c
src/lib/krb5/keytab/srvtab/kts_ssget.c
src/lib/krb5/keytab/srvtab/kts_util.c
src/lib/krb5/keytab/srvtab/ktsrvtab.h
src/lib/krb5/krb/ChangeLog
src/lib/krb5/krb/Makefile.in
src/lib/krb5/krb/addr_comp.c
src/lib/krb5/krb/addr_order.c
src/lib/krb5/krb/addr_srch.c
src/lib/krb5/krb/bld_pr_ext.c
src/lib/krb5/krb/bld_princ.c
src/lib/krb5/krb/chpw.c
src/lib/krb5/krb/conv_princ.c
src/lib/krb5/krb/copy_addrs.c
src/lib/krb5/krb/copy_athctr.c
src/lib/krb5/krb/copy_auth.c
src/lib/krb5/krb/copy_cksum.c
src/lib/krb5/krb/copy_creds.c
src/lib/krb5/krb/copy_data.c
src/lib/krb5/krb/copy_key.c
src/lib/krb5/krb/copy_princ.c
src/lib/krb5/krb/copy_tick.c
src/lib/krb5/krb/cp_key_cnt.c
src/lib/krb5/krb/decode_kdc.c
src/lib/krb5/krb/decrypt_tk.c
src/lib/krb5/krb/deltat.c [new file with mode: 0644]
src/lib/krb5/krb/encode_kdc.c
src/lib/krb5/krb/encrypt_tk.c
src/lib/krb5/krb/free_rtree.c
src/lib/krb5/krb/fwd_tgt.c
src/lib/krb5/krb/gc_frm_kdc.c
src/lib/krb5/krb/gc_via_tkt.c
src/lib/krb5/krb/gen_seqnum.c
src/lib/krb5/krb/gen_subkey.c
src/lib/krb5/krb/get_creds.c
src/lib/krb5/krb/get_in_tkt.c
src/lib/krb5/krb/in_tkt_ktb.c
src/lib/krb5/krb/in_tkt_pwd.c
src/lib/krb5/krb/in_tkt_sky.c
src/lib/krb5/krb/init_ctx.c
src/lib/krb5/krb/int-proto.h
src/lib/krb5/krb/kdc_rep_dc.c
src/lib/krb5/krb/kfree.c
src/lib/krb5/krb/mk_error.c
src/lib/krb5/krb/mk_priv.c
src/lib/krb5/krb/mk_rep.c
src/lib/krb5/krb/mk_req.c
src/lib/krb5/krb/mk_req_ext.c
src/lib/krb5/krb/mk_safe.c
src/lib/krb5/krb/parse.c
src/lib/krb5/krb/pr_to_salt.c
src/lib/krb5/krb/preauth.c
src/lib/krb5/krb/preauth2.c
src/lib/krb5/krb/princ_comp.c
src/lib/krb5/krb/rd_error.c
src/lib/krb5/krb/rd_priv.c
src/lib/krb5/krb/rd_rep.c
src/lib/krb5/krb/rd_req.c
src/lib/krb5/krb/rd_req_dec.c
src/lib/krb5/krb/rd_safe.c
src/lib/krb5/krb/recvauth.c
src/lib/krb5/krb/send_tgs.c
src/lib/krb5/krb/sendauth.c
src/lib/krb5/krb/ser_actx.c
src/lib/krb5/krb/ser_adata.c
src/lib/krb5/krb/ser_addr.c
src/lib/krb5/krb/ser_auth.c
src/lib/krb5/krb/ser_cksum.c
src/lib/krb5/krb/ser_ctx.c
src/lib/krb5/krb/ser_eblk.c
src/lib/krb5/krb/ser_key.c
src/lib/krb5/krb/ser_princ.c
src/lib/krb5/krb/serialize.c
src/lib/krb5/krb/set_realm.c
src/lib/krb5/krb/srv_rcache.c
src/lib/krb5/krb/str_conv.c
src/lib/krb5/krb/strftime.c [new file with mode: 0644]
src/lib/krb5/krb/strptime.c [new file with mode: 0644]
src/lib/krb5/krb/t_deltat.c [new file with mode: 0644]
src/lib/krb5/krb/t_ref_kerb.out
src/lib/krb5/krb/t_ser.c
src/lib/krb5/krb/tgtname.c
src/lib/krb5/krb/unparse.c
src/lib/krb5/krb/valid_times.c
src/lib/krb5/krb/walk_rtree.c
src/lib/krb5/krb/x-deltat.y [new file with mode: 0644]
src/lib/krb5/os/ChangeLog
src/lib/krb5/os/Makefile.in
src/lib/krb5/os/an_to_ln.c
src/lib/krb5/os/c_ustime.c
src/lib/krb5/os/ccdefname.c
src/lib/krb5/os/changepw.c
src/lib/krb5/os/def_realm.c
src/lib/krb5/os/free_hstrl.c
src/lib/krb5/os/free_krbhs.c
src/lib/krb5/os/full_ipadr.c
src/lib/krb5/os/gen_port.c
src/lib/krb5/os/gen_rname.c
src/lib/krb5/os/genaddrs.c
src/lib/krb5/os/get_krbhst.c
src/lib/krb5/os/hostaddr.c
src/lib/krb5/os/hst_realm.c
src/lib/krb5/os/init_os_ctx.c
src/lib/krb5/os/krbfileio.c
src/lib/krb5/os/ktdefname.c
src/lib/krb5/os/kuserok.c
src/lib/krb5/os/localaddr.c
src/lib/krb5/os/locate_kdc.c
src/lib/krb5/os/lock_file.c
src/lib/krb5/os/mk_faddr.c
src/lib/krb5/os/net_read.c
src/lib/krb5/os/net_write.c
src/lib/krb5/os/os-proto.h
src/lib/krb5/os/osconfig.c
src/lib/krb5/os/port2ip.c
src/lib/krb5/os/prompter.c
src/lib/krb5/os/read_msg.c
src/lib/krb5/os/read_pwd.c
src/lib/krb5/os/realm_dom.c
src/lib/krb5/os/realm_iter.c
src/lib/krb5/os/sendto_kdc.c
src/lib/krb5/os/sn2princ.c
src/lib/krb5/os/timeofday.c
src/lib/krb5/os/toffset.c
src/lib/krb5/os/unlck_file.c
src/lib/krb5/os/ustime.c
src/lib/krb5/os/write_msg.c
src/lib/krb5/posix/ChangeLog
src/lib/krb5/posix/Makefile.in
src/lib/krb5/posix/syslog.c
src/lib/krb5/rcache/ChangeLog
src/lib/krb5/rcache/Makefile.in
src/lib/krb5/rcache/rc_dfl.c
src/lib/krb5/rcache/rcdef.c
src/lib/krb5/rcache/ser_rc.c
src/lib/krb5_16.def [deleted file]
src/lib/krb5_32.def
src/lib/krb5util/ChangeLog
src/lib/krb5util/Makefile.in
src/lib/krb5util/compat_recv.c
src/lib/krb5util/seteuid.c
src/lib/rpc/ChangeLog
src/lib/rpc/Makefile.in
src/lib/rpc/unit-test/ChangeLog
src/lib/rpc/unit-test/Makefile.in
src/lib/sapgss16.def [deleted file]
src/lib/sapkrb16.def [deleted file]
src/lib/winsock.def [deleted file]
src/lib/xpprof16.def [deleted file]
src/mac/CFMGlue.pl
src/mac/ComErrLib ReadMe [new file with mode: 0644]
src/mac/ComErrLib.glue.h [new file with mode: 0644]
src/mac/ComErrLib.glue.post.cin [new file with mode: 0644]
src/mac/ComErrLib.glue.pre.cin [new file with mode: 0644]
src/mac/ComErrLib.glue.proto.h [new file with mode: 0644]
src/mac/GSS.CFM.c
src/mac/GSS.CFMglue.proto.h
src/mac/GSSLib ReadMe [new file with mode: 0644]
src/mac/GSSLibrary.exp
src/mac/K5.CFM.c
src/mac/K5.CFMglue.cin
src/mac/K5.CFMglue.proto.h
src/mac/K5Library.exp
src/mac/KerberosProfileLib ReadMe [new file with mode: 0644]
src/mac/KrbProfileLib.glue.h [new file with mode: 0644]
src/mac/KrbProfileLib.glue.post.cin [new file with mode: 0644]
src/mac/KrbProfileLib.glue.pre.cin [new file with mode: 0644]
src/mac/KrbProfileLib.glue.proto.h [new file with mode: 0644]
src/mac/Makefile
src/mac/ProfileLib.CFM.c
src/mac/ReadMe
src/mac/Release notes
src/mac/libraries/Kerberos v5 Globals/Krb5Globals.CFM.c
src/mac/libraries/Kerberos v5 Globals/Krb5Globals.c
src/mac/libraries/Kerberos v5 Globals/Krb5Globals.html [new file with mode: 0644]
src/mac/macfile_gen.pl
src/mit/windows/include/v.h [deleted file]
src/mit/windows/include/vs.h [deleted file]
src/mit/windows/include/vs_nt.h [deleted file]
src/mit/windows/lib/ChangeLog [deleted file]
src/mit/windows/lib/i386/ChangeLog [deleted file]
src/mit/windows/lib/i386/vs32.dll [deleted file]
src/mit/windows/lib/i386/vsnt.lib [deleted file]
src/prototype/prototype.c
src/prototype/prototype.h
src/slave/ChangeLog
src/slave/Makefile.in
src/slave/kprop.M
src/slave/kprop.c
src/slave/kprop.h
src/slave/kpropd.M
src/slave/kpropd.c
src/tests/ChangeLog
src/tests/Makefile.in
src/tests/asn.1/ChangeLog
src/tests/asn.1/Makefile.in
src/tests/asn.1/krb5_decode_test.c
src/tests/asn.1/trval.c
src/tests/create/ChangeLog
src/tests/create/Makefile.in
src/tests/create/kdb5_mkdums.M
src/tests/create/kdb5_mkdums.c
src/tests/dejagnu/ChangeLog
src/tests/dejagnu/Makefile.in
src/tests/dejagnu/config/ChangeLog
src/tests/dejagnu/config/default.exp
src/tests/dejagnu/t_inetd.c
src/tests/dump.c
src/tests/gssapi/ChangeLog
src/tests/gssapi/Makefile.in
src/tests/gssapi/t_imp_name.c
src/tests/hammer/ChangeLog
src/tests/hammer/Makefile.in
src/tests/hammer/kdc5_hammer.c
src/tests/resolve/ChangeLog
src/tests/resolve/Makefile.in
src/tests/resolve/resolve.c
src/tests/test1.c
src/tests/verify/ChangeLog
src/tests/verify/Makefile.in
src/tests/verify/kdb5_verify.c
src/util/ChangeLog
src/util/Makefile.in
src/util/db2/ChangeLog
src/util/db2/README
src/util/db2/README.NOT.SLEEPYCAT.DB [new file with mode: 0644]
src/util/db2/README.db2 [new file with mode: 0644]
src/util/db2/obj/ChangeLog
src/util/db2/obj/Makefile.in
src/util/dyn/ChangeLog
src/util/dyn/Makefile.in
src/util/et/ChangeLog
src/util/et/Makefile.in
src/util/et/com_err.c
src/util/et/com_err.texinfo
src/util/et/error_message.c
src/util/et/et.exp [new file with mode: 0644]
src/util/et/et_name.c
src/util/et/init_et.c
src/util/et/mit-sipb-copyright.h
src/util/mkrel
src/util/profile/ChangeLog
src/util/profile/Makefile.in
src/util/profile/prof_file.c
src/util/profile/prof_init.c
src/util/profile/prof_int.h
src/util/profile/profile.exp
src/util/profile/profile.hin
src/util/pty/ChangeLog
src/util/pty/Makefile.in
src/util/pty/cleanup.c
src/util/pty/getpty.c
src/util/pty/init.c
src/util/pty/init_slave.c
src/util/pty/libpty.h
src/util/pty/logwtmp.c
src/util/pty/open_ctty.c
src/util/pty/open_slave.c
src/util/pty/pty_err.et
src/util/pty/sane_hostname.c
src/util/pty/update_utmp.c
src/util/pty/update_wtmp.c
src/util/pty/vhangup.c
src/util/pty/void_assoc.c
src/util/send-pr/ChangeLog
src/util/send-pr/Makefile.in
src/util/ss/ChangeLog
src/util/ss/Makefile.in
src/util/ss/copyright.h
src/util/ss/mit-sipb-copyright.h
src/util/windows/ChangeLog
src/util/windows/Makefile.in
src/wconfig.c
src/windows/ChangeLog
src/windows/README [new file with mode: 0644]
src/windows/cns/ChangeLog
src/windows/cns/Makefile.in
src/windows/cns/cns_reg.c
src/windows/gina/ChangeLog
src/windows/gina/Makefile.in
src/windows/gss/ChangeLog
src/windows/gss/Makefile.in
src/windows/lib/ChangeLog
src/windows/lib/Makefile.in
src/windows/mkbin.bat [deleted file]
src/windows/readme [deleted file]
src/windows/version.rc
src/windows/wintel/ChangeLog
src/windows/wintel/Makefile.in
src/windows/wintel/enc_des.h
src/windows/wintel/encrypt.c
src/windows/wintel/encrypt.h

diff --git a/README b/README
index 43e70c9387841099d93d14fdbb13b9f4f47fb5a4..51c2c438e1c61ad422289956a904a4d37f6f6256 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-                  Kerberos Version 5, Release 1.0
+                  Kerberos Version 5, Release 1.1
 
                            Release Notes
 
@@ -8,11 +8,11 @@ Unpacking the Source Distribution
 ---------------------------------
 
 The source distribution of Kerberos 5 comes in three gzipped tarfiles,
-krb5-1.0.src.tar.gz, krb5-1.0.doc.tar.gz, and krb5-1.0.crypto.tar.gz.
-The krb5-1.0.doc.tar.gz contains the doc/ directory and this README
-file.  The krb5-1.0.src.tar.gz contains the src/ directory and this
+krb5-1.1.src.tar.gz, krb5-1.1.doc.tar.gz, and krb5-1.1.crypto.tar.gz.
+The krb5-1.1.doc.tar.gz contains the doc/ directory and this README
+file.  The krb5-1.1.src.tar.gz contains the src/ directory and this
 README file, except for the crypto library sources, which are in
-krb5-1.0.crypto.tar.gz.
+krb5-1.1.crypto.tar.gz.
 
 Instruction on how to extract the entire distribution follow.  These
 directions assume that you want to extract into a directory called
@@ -22,56 +22,21 @@ If you have the GNU tar program and gzip installed, you can simply do:
 
        mkdir DIST
        cd DIST
-       gtar zxpf krb5-1.0.src.tar.gz
-       gtar zxpf krb5-1.0.crypto.tar.gz
-       gtar zxpf krb5-1.0.doc.tar.gz
+       gtar zxpf krb5-1.1.src.tar.gz
+       gtar zxpf krb5-1.1.crypto.tar.gz
+       gtar zxpf krb5-1.1.doc.tar.gz
 
 If you don't have GNU tar, you will need to get the FSF gzip
 distribution and use gzcat:
 
        mkdir DIST
        cd DIST
-       gzcat krb5-1.0.src.tar.gz | tar xpf -
-       gzcat krb5-1.0.crypto.tar.gz | tar xpf -
-       gzcat krb5-1.0.doc.tar.gz | tar xpf -
-
-Both of these methods will extract the sources into DIST/krb5-1.0/src
-and the documentation into DIST/krb5-1.0/doc.
-
-Unpacking the Binary Distribution
----------------------------------
-
-Binary distributions of Kerberos V5 are provided merely as convenience
-to those people who wish to try out Kerberos V5 without needing to do
-a full compile of Kerberos.
-
-MIT and the MIT Kerberos V5 development team make no guarantees that
-we will continue to supply binary distributions for future releases of
-Kerberos V5, or for any operating system/platform in particular.
-These binary distributions have been prepared by members of the MIT
-Kerberos V5 development team, or by volunteers who have graciously
-agreed to test the pre-release snapshot.  Each binary build is PGP
-signed by the person who prepared the binary distribution for that
-particular platform.  
-
-While the binary distribution is *supposed* to correspond exactly to
-the 1.0 Kerberos V5 source release, you have no way of knowing whether
-the person who prepared the binary release might have inserted a
-trojan horse, or a trapdoor.  For all you know, the binary
-distribution might be mailing all of your Kerberos keys to
-kremvax!boris.  (The same is true for the source distribution, but at
-least you can audit the code yourself!)
-
-For this reason, if you are planning on using Kerberos V5 in
-production, we strongly suggest that you obtain the source
-distribution and compile it from source yourself.
-
-The binary distributions have been compiled so that they will install
-in /usr/local.  To install, su to root and and type the command:
-
-       cd /usr/local
-       gunzip < /tmp/krb5-1.0.<platform>.tar.gz | tar xvf -
+       gzcat krb5-1.1.src.tar.gz | tar xpf -
+       gzcat krb5-1.1.crypto.tar.gz | tar xpf -
+       gzcat krb5-1.1.doc.tar.gz | tar xpf -
 
+Both of these methods will extract the sources into DIST/krb5-1.1/src
+and the documentation into DIST/krb5-1.1/doc.
 
 Building and Installing Kerberos 5
 ----------------------------------
@@ -80,12 +45,17 @@ The first file you should look at is doc/install.ps; it contains the
 notes for building and installing Kerberos 5.  The info file
 krb5-install.info has the same information in info file format.  You
 can view this using the GNU emacs info-mode, or by using the
-standalone info file viewer from the Free Software Foundation.
+standalone info file viewer from the Free Software Foundation.  This
+is also available as an HTML file, install.html.
 
 Other good files to look at are admin-guide.ps and user-guide.ps,
 which contain the system administrator's guide, and the user's guide,
 respectively.  They are also available as info files
-kerberos-admin.info and krb5-user.info, respectively.
+kerberos-admin.info and krb5-user.info, respectively.  These files are
+also available as HTML files.
+
+If you are attempting to build under Windows, please see the
+src/windows/README file.
 
 Reporting Bugs
 --------------
@@ -99,54 +69,53 @@ If you are not able to use krb5-send-pr because you haven't been able
 compile and install Kerberos V5 on any platform, you may send mail to
 krb5-bugs@mit.edu.
 
-Notes and Major Changes
------------------------
-
-* We are now using the GNATS system to track bug reports for Kerberos
-V5.  It is therefore helpful for people to use the krb5-send-pr
-program when reporting bugs.  The old interface of sending mail to
-krb5-bugs@mit.edu will still work; however, bug reports sent in this
-fashion may experience a delay in being processed.
-
-* The default keytab name has changed from /etc/v5srvtab to
-/etc/krb5.keytab.
-
-* login.krb5 no longer defaults to getting krb4 tickets.
-
-* The Windows (win16) DLL, LIBKRB5.DLL, has been renamed to
-KRB5_16.DLL.  This change was necessary to distinguish it from the
-win32 version, which will be named KRB5_32.DLL.  Note that the
-GSSAPI.DLL file has not been renamed, because this name was specified
-in a draft standard for the Windows 16 GSSAPI bindings.  (The 32-bit
-version of the GSSAPI DLL will be named GSSAPI32.DLL.)
-
-* The directory structure used for installations has changed.  In
-particular, files previously located in $prefix/lib/krb5kdc are now
-normally located in $sysconfdir/krb5kdc.  With the normal configure
-options, this means the KDC database goes in /usr/local/var/krb5kdc by
-default.  If you wish to have the old behavior, then you would use a
-configure line like the following:
-
-       configure --prefix=/usr/local --sysconfdir=/usr/local/lib
-
-* kshd has been modified to accept krb4 encrypted rcp connections; for
-this to work, the v4rcp program must be in the bin directory.
-
-* The gssrpc library has symbol collisions with the rpc library in
-some of the libcs in certain operating systems without shared
-libraries, notably some ports of NetBSD and MkLinux.  For those
-platforms which have rpc in libc and also contain NIS in libc,
-compiling with static libraries will not work because of this
-conflict.  NetBSD users can either upgrade to the current tree, which
-includes shared libraries for more ports, choose not to build kadmind
-or kadmin, or recompile NetBSD without NIS support.  MkLinux users
-must either recompile without NIS or not build the administration
-system.
+Notes, Major Changes, and Known Bugs
+------------------------------------
+
+* Triple DES support is included; however, it is only usable for
+  service keys at the moment, due to a large number of compatibility
+  issues.  For example, the GSSAPI library has some (buggy) support
+  for a triple DES session key, but it is intentionally disabled.
+  ** Do not use triple-DES in your config files except as described in
+  ** the documentation.
+
+* The principal database now uses the btree backend of Berkeley DB.
+  This should result in improved KDC performance.
+
+* The lib/rpc tests do not appear to work under NetBSD-1.4, for
+  reasons that are not completely clear at the moment, but probably
+  have something to do with portmapper interfacing.  This should not
+  affect other operations, such as kadmind operation.
+
+* Shared library builds are under a new framework; at this point only
+  Solaris (2.x), Irix (6.5), NetBSD (1.4 i386), and possibly Linux are
+  known to work.  All other working shared library builds may be
+  figments of your imagination.
+
+* Many existing databases, especially those converted from krb4
+  original databases, may contain expiration dates in 1999.  You
+  should make sure to update these expiration dates, and also change
+  any config file entries that have two-digit years.
+
+* Hardware preauthentication is known to be broken; this will be fixed
+  in an upcoming release.
+
+* krb524d now defaults to forking into the background; use
+  "krb524d -nofork" to avoid forking.
+
+* Not all reported bugs have been fixed in this release, due to time
+  constraints.  We are planning to make another release in the near
+  future with more complete triple DES support, and additional
+  bugfixes.  Many of the bugs in our database are reported against
+  what is now quite old code, or require hardware that we do not have,
+  which make them difficult to reproduce and debug.  We will work on
+  these older bugs and some externally submitted patches for the
+  following release.
 
 Copyright Notice and Legal Administrivia
 ----------------------------------------
 
-Copyright (C) 1996 by the Massachusetts Institute of Technology.
+Copyright (C) 1985-1999 by the Massachusetts Institute of Technology.
 
 All rights reserved.
 
@@ -162,16 +131,19 @@ 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.
+permission.  Furthermore if you modify this software you must label
+your software as modified software and not distribute it in such a
+fashion that it might be confused with the original MIT software.
+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 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.
 
 Individual source code files are copyright MIT, Cygnus Support,
-OpenVision, Oracle, Sun Soft, and others.
+OpenVision, Oracle, Sun Soft, FundsXpress, and others.
 
 Project Athena, Athena, Athena MUSE, Discuss, Hesiod, Kerberos, Moira,
 and Zephyr are trademarks of the Massachusetts Institute of Technology
@@ -253,7 +225,9 @@ Thanks to Sean Mullan and Bill Sommerfeld from Hewlett Packard for
 their many suggestions and bug fixes.
 
 Thanks to the members of the Kerberos V5 development team at MIT, both
-past and present: Jay Berkenbilt, Richard Basch, John Carr, Don
-Davis, Nancy Gilman, Sam Hartman, Marc Horowitz, Barry Jaspan, John
-Kohl, Cliff Neuman, Kevin Mitchell, Paul Park, Ezra Peisach, Chris
-Provenzano, Jon Rochlis, Jeff Schiller, Harry Tsai, Ted Ts'o, Tom Yu.
+past and present: Danillo Almeida, Jay Berkenbilt, Richard Basch, John
+Carr, Don Davis, Alexandra Ellwood, Nancy Gilman, Matt Hancher, Sam
+Hartman, Paul Hill, Marc Horowitz, Eva Jacobus, Barry Jaspan, Geoffrey
+King, John Kohl, Scott McGuire, Kevin Mitchell, Cliff Neuman, Paul
+Park, Ezra Peisach, Chris Provenzano, Ken Raeburn, Jon Rochlis, Jeff
+Schiller, Brad Thompson, Harry Tsai, Ted Ts'o, Marshall Vale, Tom Yu.
index 49002f24f53862edd8e0b21e0309bee35715ee2e..38af2b8887a860405c885435b301dd57e4323e5c 100644 (file)
@@ -1,3 +1,45 @@
+1999-09-22  Tom Yu  <tlyu@mit.edu>
+
+       * copyright.texinfo: Update copyright again.
+
+1999-09-17  Tom Yu  <tlyu@mit.edu>
+
+       * copyright.texinfo: Update copyright notice somewhat.
+
+       * install.texinfo: Update info on upgrading a KDC for 1.1.
+
+1999-09-08  Ken Raeburn  <raeburn@mit.edu>
+
+       * install.texinfo (Mac OS X Configuration): Revised text from
+       Alexis, with more explanations of what's going on.
+
+1999-09-07  Ken Raeburn  <raeburn@mit.edu>
+
+       * definitions.texinfo: Update for 1.1 release.
+
+       * admin.texinfo (Adding or Modifying Principals): Mention des3
+       enctype for host keys.
+
+       * build.texinfo: Replace "krb5-1.0" with "krb5-@value{RELEASE}"
+       throughout.
+       (Shared Library Support): Cut supported-OS list down to Solaris
+       and Irix for now.
+
+       * install.texinfo: Update EDITION to 1.1.
+       (MacOS X Configuration): New node, with info from Brad Thompson.
+       (Encryption Types and Salt Types): Mention des3.
+
+1999-08-31  Ken Raeburn  <raeburn@mit.edu>
+
+       * admin.texinfo (Kadmin Options): Describe -e option.
+       (The User/Kerberos Interaction): Renamed from User--Kerberos to
+       avoid an apparent makeinfo 1.68 bug.
+       (realms (kdc.conf)): Document kdc_supported_enctypes, and mention
+       how des3 can be used there.  Add des-cbc-crc:v4 to both enctype
+       lists, in the descriptions and in the examples.  Delete
+       encryption_type, which doesn't exist.
+       (Date Format): Avoid 2-digit years, and add a warning about them.
+
 Fri Dec 13 15:10:44 1996  Tom Yu  <tlyu@mit.edu>
 
        * admin.texinfo (The User--Kerberos Interaction): The environment
index 7e70d28c7e6e4788d2be0cf85479280f605b4a7e..2ea716b25ae53e047a6b5d621851f8462e25e28f 100644 (file)
@@ -139,7 +139,7 @@ Service for Open Network Systems}, a paper presented at Winter USENIX
 * Kerberos Realms::             
 * The Ticket-Granting Ticket::  
 * Network Services and the Master Database::  
-* The User--Kerberos Interaction::  
+* The User/Kerberos Interaction::  
 * Definitions::                 
 @end menu
 
@@ -210,7 +210,7 @@ just a file in @code{/tmp}.  The credentials cache is also called the
 @dfn{ticket file}, especially in Kerberos V4 documentation.  Note,
 however, that a credentials cache does not have to be stored in a file.
 
-@node Network Services and the Master Database, The User--Kerberos Interaction, The Ticket-Granting Ticket, How Kerberos Works
+@node Network Services and the Master Database, The User/Kerberos Interaction, The Ticket-Granting Ticket, How Kerberos Works
 @section Network Services and the Master Database
 
 The master database also contains entries for all network services that
@@ -258,8 +258,8 @@ services that run as root are usually stored in the keytab file
 of the service's password, and must be kept secure.  Data which is meant
 to be read only by the service is encrypted using this key.
 
-@node The User--Kerberos Interaction, Definitions, Network Services and the Master Database, How Kerberos Works
-@section The User--Kerberos Interaction
+@node The User/Kerberos Interaction, Definitions, Network Services and the Master Database, How Kerberos Works
+@section The User/Kerberos Interaction
 
 Suppose that you walk up to a host intending to login to it, and then
 @samp{rlogin} to the machine @samp{laughter}.  Here's what happens:
@@ -324,7 +324,7 @@ login.
 @end enumerate
 @end enumerate
 
-@node Definitions,  , The User--Kerberos Interaction, How Kerberos Works
+@node Definitions,  , The User/Kerberos Interaction, How Kerberos Works
 @section Definitions
 
 Following are definitions of some of the Kerberos terminology.
@@ -839,10 +839,6 @@ in this realm.
 not allowed as passwords.  The default is
 @code{@value{ROOTDIR}/var/krb5kdc/kadm5.dict}.
 
-@itemx encryption_type
-(Encryption type string.)  Specifies the encryption type used for this
-realm.  Only "des-cbc-crc" is supported at this time.
-
 @itemx kadmind_port
 (Port number.)  Specifies the port that the kadmind daemon is to listen
 for this realm.  The assigned port for kadmind is 749.
@@ -875,9 +871,25 @@ valid ticket may be renewed in this realm.
 
 @itemx supported_enctypes
 List of key:salt strings.  Specifies the default key/salt combinations
-of principals for this realm.  Since only the encryption type
-"des-cbc-crc" is supported, you should set this tag to
-@samp{des-cbc-crc:normal}.
+of principals for this realm.  Any principals created through
+@code{kadmin} will have keys of these types.  Since only the encryption
+type "des-cbc-crc" is supported, you should set this tag to
+@samp{des-cbc-crc:normal des-cbc-crc:v4}.
+
+@itemx kdc_supported_enctypes
+List of key:salt strings.  Specifies the permitted key/salt combinations
+of principals for this realm.  You should set this tag to
+@samp{des-cbc-crc:normal des-cbc-crc:v4}.
+
+@b{Note:} You may also use @samp{des3-cbc-sha1:normal} before
+@samp{des-cbc-crc:normal} if you wish to support triple-DES service keys
+in addition to DES service keys.  In order to create such service keys,
+you must use the @code{-e} option to @code{kadmin.local}, running on the
+KDC system itself; the remote @code{kadmin} client does not allow this
+option.  We do not currently support the use of triple-DES keys anywhere
+other than for service keys.
+
+
 @end table
 
 @node Sample kdc.conf File,  , realms (kdc.conf), kdc.conf
@@ -896,7 +908,8 @@ Here's an example of a @code{kdc.conf} file:
         max_life = 10h 0m 0s
         max_renewable_life = 7d 0h 0m 0s
         master_key_type = des-cbc-crc
-        supported_enctypes = des-cbc-crc:normal
+        supported_enctypes = des-cbc-crc:normal des-cbc-crc:v4
+        kdc_supported_enctypes = des-cbc-crc:normal des-cbc-crc:v4
     @}
 
 [logging]
@@ -993,6 +1006,16 @@ unauthorized users gain read access to the script.
 @item @b{-q} @i{query}
 Pass @i{query} directly to @code{kadmin}.  This is useful for writing
 scripts that pass specific queries to @code{kadmin}.
+
+@item @b{-e} @i{"enctypes ..."}
+@b{(For @code{kadmin.local} only.)}
+Sets the list of cryptosystem and salt types to be used for any new keys
+created.  Available types include @samp{des3-cbc-sha1:normal},
+@samp{des-cbc-crc:normal}, and @samp{des-cbc-crc:v4}.  In this release,
+the @samp{des3-cbc-sha1:normal} type should only be used when
+registering service principals; for any services that may request
+tickets themselves to initiate some action, it should be combined with
+one or more of the other types.
 @end table
 
 @node Date Format, Principals, Kadmin Options, Administrating Kerberos Database Entries
@@ -1016,12 +1039,15 @@ tomorrow
 now
 "second Monday"
 fortnight
-"3/31/92 10:00:07 PST"
-"January 23, 1987 10:05pm"
+"3/31/1992 10:00:07 PST"
+"January 23, 2007 10:05pm"
 "22:00 GMT"
 @end group
 @end smallexample
 
+Two-digit years are allowed in places, but the use of this form is not
+recommended.
+
 Note that if the date specification contains spaces, you must enclose it
 in double quotes.  Note also that you cannot use a number without a
 unit.  (I.e., ``"60 seconds"'' is correct, but ``60'' is incorrect.)
@@ -1382,7 +1408,11 @@ Removes the policy @i{policyname} from the principal
 
 @item -randkey
 Sets the key for the principal to a random value (@code{add_principal}
-only).  @value{COMPANY} recommends using this option for host keys.
+only).  @value{COMPANY} recommends using this option for host keys.  You
+may also wish to use the @b{kadmin.local} command-line options @b{-e
+"des3-cbc-sha1:normal des-cbc-crc:normal"}@xref{Kadmin Options} on the
+KDC machine itself for host keys and other service keys that are
+security-critical.
 
 @item -pw @i{password}
 Sets the key of the principal to the specified string and does not
index a26f66faa4365e435120acd0cacbe51684705d1f..b1145f18f2c9e0944f1f2fefb401575e2e857df2 100644 (file)
@@ -1,3 +1,8 @@
+1999-08-30  Ken Raeburn  <raeburn@mit.edu>
+
+       * libdes.tex: Don't use ncs style; it's availability is dependent
+       on the local TeX installation.
+
 1999-01-20  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * krb5.tex (krb5_mk_safe): Fix reference to a non-existent flag.
index c53c813508716951b5bb67f863ccfb805ce49164..71e75c59b2b6b96037c91e1b36d462f273505137 100644 (file)
@@ -1,4 +1,4 @@
-\documentstyle[ncs,fixunder,functions,twoside]{article}
+\documentstyle[fixunder,functions,twoside]{article}
 \setlength{\oddsidemargin}{0.25in}
 \setlength{\evensidemargin}{-0.25in}
 \setlength{\topmargin}{-.5in}
index bee77fe88eaf945000cc8fca16d8a99f1a24ca6e..78aa8b45016f6f5ee1ba63d443018ad816761f4d 100644 (file)
@@ -38,17 +38,17 @@ link tree for your build tree.
 The first step in each of these build procedures is to unpack the source
 distribution.  The Kerberos V5 distribution comes in two compressed tar
 files.  The first file, which is generally named
-@file{krb5-1.0.src.tar.gz}, contains the sources for all of Kerberos
+@file{krb5-@value{RELEASE}.src.tar.gz}, contains the sources for all of Kerberos
 except for the crypto library, which is found in the file
-@file{krb5-1.0.crypto.tar.gz}.
+@file{krb5-@value{RELEASE}.crypto.tar.gz}.
 
 Both files should be unpacked in the same directory, such as
-@file{/u1/krb5-1.0}.  (In the rest of this document, we will assume that
+@file{/u1/krb5-@value{RELEASE}}.  (In the rest of this document, we will assume that
 you have chosen to unpack the Kerberos V5 source distribution in this
 directory.  Note that the tarfiles will by default all unpack into the
-@file{./krb5-1.0} directory, so that if your current directory is
+@file{./krb5-@value{RELEASE}} directory, so that if your current directory is
 @file{/u1} when you unpack the tarfiles, you will get
-@file{/u1/krb5-1.0/src}, etc.)
+@file{/u1/krb5-@value{RELEASE}/src}, etc.)
 
 
 @node Doing the Build, Testing the Build, Unpacking the Sources, Building Kerberos V5
@@ -77,7 +77,7 @@ use the following abbreviated procedure.
 
 @enumerate
 @item
- @code{cd /u1/krb5-1.0/src}
+ @code{cd /u1/krb5-@value{RELEASE}/src}
 @item
  @code{./configure}
 @item
@@ -100,9 +100,9 @@ you might use the following procedure:
 
 @enumerate
 @item 
-@code{mkdir /u1/krb5-1.0/pmax}
+@code{mkdir /u1/krb5-@value{RELEASE}/pmax}
 @item
- @code{cd /u1/krb5-1.0/pmax}
+ @code{cd /u1/krb5-@value{RELEASE}/pmax}
 @item
  @code{../src/configure}
 @item
@@ -122,11 +122,11 @@ you might use the following procedure:
 
 @enumerate
 @item
- @code{mkdir /u1/krb5-1.0/solaris}
+ @code{mkdir /u1/krb5-@value{RELEASE}/solaris}
 @item
- @code{cd /u1/krb5-1.0/solaris}
+ @code{cd /u1/krb5-@value{RELEASE}/solaris}
 @item
- @code{/u1/krb5-1.0/src/util/lndir `pwd`/../src}
+ @code{/u1/krb5-@value{RELEASE}/src/util/lndir `pwd`/../src}
 @item
  @code{./configure}
 @item
@@ -397,8 +397,10 @@ variables when using the programs. Except where noted, multiple versions
 of the libraries may be installed on the same system and continue to
 work.
 
-Currently the supported platforms are: NetBSD 1.0A, AIX 3.2.5, AIX 4.1,
-Solaris 2.4 (aka SunOS 5.4), Alpha OSF/1 >= 2.1, HP-UX >= 9.X.
+Currently the supported platforms are
+@comment NetBSD 1.0A, AIX 3.2.5, AIX 4.1,
+Solaris 2.6 (aka SunOS 5.6) and Irix 6.5.
+@comment Alpha OSF/1 >= 2.1, HP-UX >= 9.X.
 
 To enable shared libraries on the above platforms, run the configure
 script with the option @samp{--enable-shared}.
@@ -475,11 +477,11 @@ NetBSD and FreeBSD.)
 @node HPUX, Solaris versions 2.0 through 2.3, BSDI, OS Incompatibilities
 @subsection HPUX
 
-The native compiler for HPUX currently will not work, because it is not
-a full ANSI C compiler.  The optional compiler (c89) should work as long
-as you give it the @samp{+Olibcalls -D_HPUX_SOURCE} (this has only been
-tested for HPUX 9.0).  At this point, using GCC is probably your best
-bet.
+The native (bundled) compiler for HPUX currently will not work, because
+it is not a full ANSI C compiler.  The optional compiler (c89) should
+work as long as you give it the @samp{+Olibcalls -D_HPUX_SOURCE} (this
+has only been tested for HPUX 9.0).  At this point, using GCC is
+probably your best bet.
 
 @node Solaris versions 2.0 through 2.3, Solaris 2.X, HPUX, OS Incompatibilities
 @subsection Solaris versions 2.0 through 2.3
@@ -496,7 +498,7 @@ Workarounds:
 @enumerate
 
 @item
-   Supply your own resolver library. (such as bind-4.9.3pl1 availavle
+   Supply your own resolver library. (such as bind-4.9.3pl1 available
 from ftp.vix.com)
 
 @item
@@ -605,7 +607,7 @@ that you have made a change that will require that all the
 @code{--force} option:
 
 @example
-% cd /u1/krb5-1.0/src
+% cd /u1/krb5-@value{RELEASE}/src
 % ./util/reconf --force
 @end example
 
@@ -625,7 +627,7 @@ Then follow the instructions for building packaged source trees (above).
 To install the binaries into a binary tree, do:
 
 @example
-% cd /u1/krb5-1.0/src
+% cd /u1/krb5-@value{RELEASE}/src
 % make all
 % make install DESTDIR=somewhere-else
 @end example
index 04601e203479e1b6aec2825a6a16a6007db85455..7ea4758e264f587797610fc1354f8ba0bfc3aa10 100644 (file)
@@ -1,4 +1,4 @@
-Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996 by the Massachusetts Institute of Technology. 
+Copyright @copyright{} 1985-1999 by the Massachusetts Institute of Technology. 
 
 @quotation  
 Export of software employing encryption from the United States of
@@ -13,9 +13,12 @@ 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.
+software without specific, written prior permission.  Furthermore if you
+modify this software you must label your software as modified software
+and not distribute it in such a fashion that it might be confused with
+the original MIT software.  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.
 
 @iftex
 @vskip 12pt
index 19b2b0f557fc21ae4607d0a0c844928d6f798c42..079809d2cc95e189ab581e1266a65698c31c6987 100644 (file)
@@ -19,8 +19,8 @@
 @set RANDOMUSER johndoe
 @set RANDOMUSER1 jennifer
 @set RANDOMUSER2 david
-@set RELEASE 1.0
-@set PREVRELEASE beta 7
+@set RELEASE 1.1
+@set PREVRELEASE 1.0
 @set INSTALLDIR /usr/@value{LCPRODUCT}
 @set PREVINSTALLDIR @value{INSTALLDIR}
 @set ROOTDIR /usr/local
index f5c4396a8c64ba7853a69a2af28e55b6b1d17e36..c780e70d73bc4f7c5938b089ff4eca9749845096 100644 (file)
@@ -16,7 +16,7 @@
 @end iftex
 
 @include definitions.texinfo
-@set EDITION 1.0
+@set EDITION 1.1
 
 @finalout                               @c don't print black warning boxes
 
@@ -1057,10 +1057,10 @@ Each machine running Kerberos must have a @code{/etc/krb5.conf} file.
 (@xref{krb5.conf})
 
 @need 4000
-Also, you must add the appropriate Kerberos services to each client
-machine's @code{/etc/services} file.  If you are using the default
-configuration for @value{PRODUCT}, you should be able to just insert the
-following code:
+Also, for most UNIX systems, you must add the appropriate Kerberos
+services to each client machine's @code{/etc/services} file.  If you are
+using the default configuration for @value{PRODUCT}, you should be able
+to just insert the following code:
 
 @smallexample
 @group
@@ -1095,6 +1095,94 @@ to switch the port number for @code{kerberos} to 750 and create a
 @code{kerberos-sec} service (tcp and udp) on port 88, so the Kerberos
 V4 KDC(s) will continue to work properly.
 
+@menu
+* Mac OS X Configuration::      
+@end menu
+
+@node Mac OS X Configuration,  , Client Machine Configuration Files, Client Machine Configuration Files
+@subsubsection Mac OS X Configuration
+
+To install Kerberos V5 on Mac OS X and Mac OS X Server, follow the 
+directions for generic Unix-based OS's, except for the 
+@code{/etc/services} updates described above.  
+
+Mac OS X and Mac OS X Server use a database called NetInfo to store
+the contents of files normally found in @code{/etc}.  Instead of
+modifying @code{/etc/services}, you should run the following commands
+to add the Kerberos service entries to NetInfo:
+
+@smallexample
+@group
+$ niutil -create . /services/kerberos
+$ niutil -createprop . /services/kerberos name kerberos kdc
+$ niutil -createprop . /services/kerberos port 750
+$ niutil -createprop . /services/kerberos protocol tcp udp
+$ niutil -create . /services/krbupdate
+$ niutil -createprop . /services/krbupdate name krbupdate kreg
+$ niutil -createprop . /services/krbupdate port 760
+$ niutil -createprop . /services/krbupdate protocol tcp
+$ niutil -create . /services/kpasswd
+$ niutil -createprop . /services/kpasswd name kpasswd kpwd
+$ niutil -createprop . /services/kpasswd port 761
+$ niutil -createprop . /services/kpasswd protocol tcp
+$ niutil -create . /services/klogin
+$ niutil -createprop . /services/klogin port 543
+$ niutil -createprop . /services/klogin protocol tcp
+$ niutil -create . /services/eklogin
+$ niutil -createprop . /services/eklogin port 2105
+$ niutil -createprop . /services/eklogin protocol tcp
+$ niutil -create . /services/kshell
+$ niutil -createprop . /services/kshell name kshell krcmd
+$ niutil -createprop . /services/kshell port 544
+$ niutil -createprop . /services/kshell protocol tcp
+@end group
+@end smallexample
+
+In addition to adding services to NetInfo, you must also modify the
+resolver configuration in NetInfo so that the machine resolves its own
+hostname as a FQDN (fully qualified domain name).  By default, Mac OS X
+and Mac OS X Server machines query NetInfo to resolve hostnames before
+falling back to DNS.  Because NetInfo has an unqualified name for all
+the machines in the NetInfo database, the machine's own hostname will
+resolve to an unqualified name.  Kerberos needs a FQDN to look up keys
+in the machine's keytab file.
+
+Fortunately, you can change the @code{lookupd} caching order to query
+DNS first.  Run the following NetInfo commands and reboot the machine:
+
+@smallexample
+@group
+$ niutil -create . /locations/lookupd/hosts
+$ niutil -createprop . /locations/lookupd/hosts LookupOrder CacheAgent DNSAgent
+ NIAgent NILAgent
+@end group
+@end smallexample
+
+Once you have rebooted, you can verify that the resolver now behaves
+correctly.  Compile the Kerberos 5 distribution and run:
+
+@smallexample
+@group
+$ cd .../src/tests/resolve
+$ ./resolve
+@end group
+@end smallexample
+
+This will tell you whether or not your machine returns FQDNs on name
+lookups.  If the test still fails, you can also try turning off DNS
+caching.  Run the following commands and reboot:
+
+@smallexample
+@group
+$ niutil -create . /locations/lookupd/hosts
+$ niutil -createprop . /locations/lookupd/hosts LookupOrder DNSAgent
+ CacheAgent NIAgent NILAgent
+@end group
+@end smallexample
+
+The remainder of the setup of a Mac OS X client machine or application
+server should be the same as for other UNIX-based systems.
+
 @node UNIX Application Servers,  , Installing and Configuring UNIX Client Machines, Installing Kerberos V5
 @section UNIX Application Servers
 
@@ -1186,15 +1274,15 @@ telnet  stream  tcp  nowait  root  @value{ROOTDIR}/sbin/telnetd
 @subsection The Keytab File
 
 All Kerberos server machines need a @dfn{keytab} file, called
-@code{/etc/krb5.keytab} (@xref{Upgrading the application servers}), to
-authenticate to the KDC.  The keytab file is an encrypted, local,
-on-disk copy of the host's key.  The keytab file, like the stash file
-(@ref{Create the Database}) is a potential point-of-entry for a
-break-in, and if compromised, would allow unrestricted access to its
-host.  The keytab file should be readable only by root, and should exist
-only on the machine's local disk.  The file should not be part of any
-backup of the machine, unless access to the backup data is secured as
-tightly as access to the machine's root password itself.
+@code{/etc/krb5.keytab}, to authenticate to the KDC.  The keytab file is
+an encrypted, local, on-disk copy of the host's key.  The keytab file,
+like the stash file (@ref{Create the Database}) is a potential
+point-of-entry for a break-in, and if compromised, would allow
+unrestricted access to its host.  The keytab file should be readable
+only by root, and should exist only on the machine's local disk.  The
+file should not be part of any backup of the machine, unless access to
+the backup data is secured as tightly as access to the machine's root
+password itself.
 
 In order to generate a keytab for a host, the host must have a principal
 in the Kerberos database.  The procedure for adding hosts to the
@@ -1267,22 +1355,11 @@ should be readable only by root.
 @node Upgrading Existing Kerberos V5 Installations, Bug Reports for Kerberos V5, Installing Kerberos V5, Top
 @chapter Upgrading Existing @value{PRODUCT} Installations
 
-@menu
-* Upgrading existing Master and Slave KDCs to the current release::  
-* Upgrading the application servers::  
-@end menu
-
-@node Upgrading existing Master and Slave KDCs to the current release, Upgrading the application servers, Upgrading Existing Kerberos V5 Installations, Upgrading Existing Kerberos V5 Installations
-@section Upgrading existing Master and Slave KDCs to the current release
-
 If you already have an existing Kerberos database that you created with
 a prior release of Kerberos 5, you can upgrade it to work with the
-current release with the @code{kdb5_util} command.  As of Kerberos 5
-version 1.0, this upgrade process is only necessary if you are using a
-Kerberos database created with Kerberos 5 beta 6 or earlier; newer
-installations can continue to be used without modification.  The process
-for upgrading a Master KDC involves the following steps (the lines
-beginning with => indicate a continuation of the previous line):
+current release with the @code{kdb5_util} command.  The process for
+upgrading a Master KDC involves the following steps (the lines beginning
+with => indicate a continuation of the previous line):
 
 @enumerate
 
@@ -1290,28 +1367,16 @@ beginning with => indicate a continuation of the previous line):
 server processes, if any.
 
 @item Dumping your existing Kerberos database to an ASCII file with 
-@code{kdb5_edit}'s ``dump'' command:
+@code{kdb5_util}'s ``dump'' command:
 
 @smallexample
 @group
-@b{shell%} kdb5_edit -r @value{PRIMARYREALM} -R 'dump_db' > 
+@b{shell%} kdb5_util -r @value{PRIMARYREALM} dump
 @result{} @value{ROOTDIR}/var/krb5kdc/old-kdb-dump
 @b{shell%}
 @end group
 @end smallexample
 
-@item If you were using OpenV*Secure or AXXiON*Authenticate, dumping your
-policy database to an ASCII file with the @code{ovsec_adm_export}
-command:
-
-@smallexample
-@group
-@b{shell%} ovsec_adm_export -r @value{PRIMARYREALM} > 
-@result{} @value{ROOTDIR}/var/krb5kdc/old-adb-dump
-@b{shell%}
-@end group
-@end smallexample
-
 @item Creating a new Master KDC installation (@xref{Install the Master
 KDC}).  If you have a stash file for your current database, choose any
 new master password but then copy your existing stash file to the
@@ -1328,50 +1393,11 @@ your current database, you must choose the same master password.
 @end group
 @end smallexample
 
-@item If you were using OpenV*Secure or AXXiON*Authenticate, merging
-your policy database with @code{kdb5_util}'s ``load'' command with the
-``-update'' option:
-
-@smallexample
-@group
-@b{shell%} kdb5_util load -update @value{ROOTDIR}/var/krb5kdc/old-adb-dump
-@b{shell%}
-@end group
-@end smallexample
-
 @end enumerate
 
-The process for upgrading a Slave KDC is simpler.  All you have to do is
-make sure that the stash file on the Slave KDC is correct, stop the old
-server processes on the Slave KDC, install the new server binaries, and
-re-start the server processes.  The Slave KDC database will be upgraded
-automatically when the next propagation is run.  Note that if you
-changed your master key when creating your new Master KDC database, you
-will have to run a Slave KDC propagation before you can restart the
-server processes on the Slave KDC itself; otherwise, the new stash file
-that you create on the slave will not match the old database that exists
-until the propagation occurs, and the server processes will not start.
-
-@node Upgrading the application servers,  , Upgrading existing Master and Slave KDCs to the current release, Upgrading Existing Kerberos V5 Installations
-@section Upgrading the application servers
-
-The default keytab name has changed from @code{/etc/v5srvtab} to
-@code{/etc/krb5.keytab}.  You should rename the old keytab files on all
-of your application servers when you update their server binaries.
-Alternatively, you may add a relation to the library configuration file
-to override the new name, for example:
-
-@smallexample
-@group
-[libdefaults]
-    default_keytab_name = /etc/v5srvtab
-@end group
-@end smallexample
-
-The keytab name defaulted to /etc/v5srvtab in prior releases of Kerberos
-V5.  It was called a @dfn{srvtab} in Kerberos V4.  The @code{v5srvtab}
-file has been renamed to @code{krb5.keytab} to reflect the change in
-terminology.
+To update a Slave KDC, you must stop the old server processes on the
+Slave KDC, install the new server binaries, reload the most recent slave
+dump file, and re-start the server processes.
 
 @node Bug Reports for Kerberos V5, Files, Upgrading Existing Kerberos V5 Installations, Top
 @chapter Bug Reports for @value{PRODUCT}
@@ -1471,10 +1497,12 @@ To add Kerberos V4 support, change the @code{supported_enctypes} line to:
 @node Encryption Types and Salt Types,  , kdc.conf, kdc.conf
 @appendixsubsec Encryption Types and Salt Types
 
-Currently, @value{PRODUCT} supports only DES encryption.  The encoding
-type is @code{des-cbc-crc}.  The @dfn{salt} is additional information
-encoded within the key that tells what kind of key it is.  The only
-salts that you will be likely to encounter are:
+Currently, @value{PRODUCT} supports only DES and triple-DES encryption;
+however, triple-DES is currently supported only for service keys, not
+for user keys or session keys.  The encoding types include
+@code{des-cbc-crc} and @code{des3-cbc-sha1}.  The @dfn{salt} is
+additional information encoded within the key that tells what kind of
+key it is.  The only salts that you will be likely to encounter are:
 
 @itemize @bullet
 @item @dfn{normal}, which @value{COMPANY} recommends using for all of
index 2eab397b1b16ccd6c3e5687370a36fd92e7ff955..f61adeb840020fb06b509a2bec5334c7b066ff94 100644 (file)
@@ -1,3 +1,38 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-16  Ken Raeburn  <raeburn@mit.edu>
+
+       * aclocal.m4 (KRB5_LIB_PARAMS): For Rhapsody, add "-undefined
+       warning" when building shared libs, and remove "-static" from
+       CC_LINK_STATIC.
+
+1999-09-14  Ken Raeburn  <raeburn@mit.edu>
+
+       * aclocal.m4 (KRB5_LIB_PARAMS): Treat Rhapsody like Mac OS 10.
+
+1999-09-08  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Add install target for windows.  Remove references
+       to unused mit directory.
+
+1999-08-27  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Add some missing dirs needed for generating a proper
+       kerbsrc.zip.  Make krbsrc83.zip obsolete.
+
+1999-08-13  Brad Thompson  <yak@mit.edu>
+
+       * aclocal.m4: Added MacOS X shared library support.
+
+1999-08-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Build kpasswd under windows.
+
 1999-07-22  Tom Yu  <tlyu@mit.edu>
 
        * Makefile.in (install-mkdirs): Use mkinstalldirs rather than
index d4aba1439232aa95cce1f470a8748e9c07e3714b..2b40a3155315a429febd50249371cf8012dc2955 100644 (file)
@@ -4,7 +4,7 @@ mydir=.
 MY_SUBDIRS=util include lib @krb524@ kdc kadmin slave clients appl tests \
        config-files gen-manpages
 BUILDTOP=$(REL)$(C)
-CFLAGS = $(CCOPTS) $(DEFS)
+LOCALINCLUDES = -I$(srcdir) 
 
 ##DOS##BUILDTOP = .
 
@@ -56,9 +56,6 @@ install-mkdirs:
 # install::
 #      $(MAKE) $(MFLAGS) install.man
 
-.c.o:
-       $(CC) -c $(CPPFLAGS) $(DEFS) -I$(srcdir) $(CFLAGS) $<
-
 TAGS: $(SRCS)
        etags $(SRCS)
 
@@ -131,6 +128,7 @@ config-windows:: Makefile-windows
 WINMAKEFILES=Makefile \
        clients\Makefile clients\kdestroy\Makefile \
        clients\kinit\Makefile clients\klist\Makefile \
+       clients\kpasswd\Makefile \
        include\Makefile include\krb5\Makefile \
        lib\Makefile lib\crypto\Makefile \
        lib\crypto\crc32\Makefile lib\crypto\des\Makefile \
@@ -175,6 +173,8 @@ WINMAKEFILES=Makefile \
 ##DOS##        $(WCONFIG) config < $@.in > $@
 ##DOS##clients\klist\Makefile: clients\klist\Makefile.in $(MKFDEP)
 ##DOS##        $(WCONFIG) config < $@.in > $@
+##DOS##clients\kpasswd\Makefile: clients\kpasswd\Makefile.in $(MKFDEP)
+##DOS##        $(WCONFIG) config < $@.in > $@
 ##DOS##include\Makefile: include\Makefile.in $(MKFDEP)
 ##DOS##        $(WCONFIG) config < $@.in > $@
 ##DOS##include\krb5\Makefile: include\krb5\Makefile.in $(MKFDEP)
@@ -300,6 +300,7 @@ ren2long:
 ZIP=zip
 FILES= ./* \
        clients/* clients/kdestroy/* clients/kinit/* clients/klist/* \
+       clients/kpasswd/* \
        config/* include/* include/kerberosIV/* \
        include/krb5/* include/krb5/stock/* include/sys/* lib/* \
        lib/crypto/* lib/crypto/crc32/* lib/crypto/des/* lib/crypto/dk/* \
@@ -312,9 +313,9 @@ FILES= ./* \
        lib/krb5/ccache/* lib/krb5/ccache/file/* lib/krb5/ccache/memory/* \
        lib/krb5/ccache/stdio/* lib/krb5/ccache/ccapi/* \
        lib/krb5/error_tables/* \
-       lib/krb5/keytab/* lib/krb5/keytab/file/* \
+       lib/krb5/keytab/* lib/krb5/keytab/file/* lib/krb5/keytab/srvtab/* \
        lib/krb5/os/* lib/krb5/posix/* lib/krb5/rcache/* \
-       util/et/* util/profile/*
+       util/* util/et/* util/profile/*
 
 WINFILES= util/windows/* windows/* windows/lib/* windows/cns/* \
        windows/wintel/* windows/gss/* windows/gina/*
@@ -323,9 +324,6 @@ MACFILES= mac/* mac/libraries/* config/* include/* \
        include/krb5/* include/krb5/stock/* include/sys/* \
        ./patchlevel.h
 
-MITWINFILES= mit/windows/include/* 
-MITWINBINARYFILES= mit/windows/lib/*
-
 WINBINARYFILES=        windows/*/*.ico windows/*/*.doc windows/*/*.hlp \
        windows/*/*.hpj windows/lib/*.lib
 
@@ -364,10 +362,6 @@ kerbsrc.win: kerbsrc.zip
 winfile.list:
        echo $(FILES) $(WINFILES) | tr ' ' \\012 | \
                sed -f config/winexclude.sed > winfile.list
-       if test -d mit ; then \
-               echo $(MITWINFILES) | tr ' ' \\012 | \
-               sed -f config/winexclude.sed >> winfile.list ; \
-       fi
 
 MAC_SUBDIRS = lib util
 macfile.list:
@@ -381,29 +375,25 @@ dos-Makefile:
 
 prep-windows: dos-Makefile awk-windows-mac
 
-# Not supported....
-krbsrc83.zip: dos-Makefile awk-windows-mac winfile.list
-       rm -f krbsrc83.zip
-       $(ZIP) -@Dlk krbsrc83.zip < winfile.list
-       $(ZIP) -Dk krbsrc83.zip $(WINBINARYFILES)
-       if test -d mit ; then \
-               $(ZIP) -rDk krbsrc83.zip $(MITWINBINARYFILES) ; \
-       fi
-       rm -f $(CLEANUP)
+krbsrc83.zip: krbsrc83-is-obsolete
+
+krbsrc83-is-obsolete:
+       @echo "Win16 and krbsrc83.zip are no longer supported."
+       @echo "We don't support building under 8.3 restricted filesystems"
+       @echo "anymore.  You can still build for Win32 on filesystems"
+       @echo "without 8.3 restrictions using kerbsrc.zip"
+       @echo " "
 
 kerbsrc.zip: dos-Makefile awk-windows-mac winfile.list
        rm -f kerbsrc.zip
        $(ZIP) -@Dl kerbsrc.zip < winfile.list
        $(ZIP) -D kerbsrc.zip $(WINBINARYFILES)
-       if test -d mit ; then \
-               $(ZIP) -rD kerbsrc.zip $(MITWINBINARYFILES) ; \
-       fi
        rm -f $(CLEANUP)
 
 kerbsrc-nt.zip: kerbsrc-nt-is-obsolete
 
 kerbsrc-nt-is-obsolete:
-       @echo "Kerbsrc-nt.zip is now obsolete.  Just use and build kerbsrc.zip"
+       @echo "kerbsrc-nt.zip is now obsolete.  Just use and build kerbsrc.zip"
        @echo "We don't support building under 8.3 restricted filesystems"
        @echo "anymore, so what was kerbsrc-nt.zip is now kerbsrc.zip."
        @echo " "
@@ -503,20 +493,35 @@ awk-windows-mac: $(ETOUT) $(HOUT)
 clean-windows-mac:
        rm -f $(CLEANUP)
 
-KBINDIR=kbin
-
 distclean-windows:
        config\rm.bat $(CLEANUP:^/=^\)
        config\rm.bat $(WINMAKEFILES)
        config\rm.bat $(KBINDIR)\*.dll $(KBINDIR)\*.exe
        @if exist $(KBINDIR)\nul rmdir $(KBINDIR)
 
-mkbin:
-       @if not exist $(KBINDIR)\nul mkdir $(KBINDIR)
-       $(CP) lib\$(OUTPRE)*.dll $(KBINDIR)\.
-       $(CP) windows\cns\$(OUTPRE)krb5.exe $(KBINDIR)\.
-       $(CP) windows\wintel\$(OUTPRE)telnet.exe $(KBINDIR)\.
-       $(CP) windows\gss\$(OUTPRE)gss.exe $(KBINDIR)\.
-       $(CP) clients\klist\$(OUTPRE)klist.exe $(KBINDIR)\.
-       $(CP) clients\kinit\$(OUTPRE)kinit.exe $(KBINDIR)\.
-       $(CP) clients\kdestroy\$(OUTPRE)kdestroy.exe $(KBINDIR)\.
+install-windows::
+       @if "$(KRB_INSTALL_DIR)"=="" @echo KRB_INSTALL_DIR is not defined!  Please define it.
+       @if "$(KRB_INSTALL_DIR)"=="" @dir /b \nul\nul
+       @if not exist "$(KRB_INSTALL_DIR)\$(NULL)" @echo The directory $(KRB_INSTALL_DIR) does not exist.  Please create it.
+       @if not exist "$(KRB_INSTALL_DIR)\$(NULL)" @dir /b $(KRB_INSTALL_DIR)\nul
+       @if not exist "$(KRB_INSTALL_DIR)\include\$(NULL)" @mkdir "$(KRB_INSTALL_DIR)\include"
+       @if not exist "$(KRB_INSTALL_DIR)\include\gssapi\$(NULL)" @mkdir "$(KRB_INSTALL_DIR)\include\gssapi"
+       @if not exist "$(KRB_INSTALL_DIR)\lib\$(NULL)" @mkdir "$(KRB_INSTALL_DIR)\lib"
+       @if not exist "$(KRB_INSTALL_DIR)\bin\$(NULL)" @mkdir "$(KRB_INSTALL_DIR)\bin"
+       $(CP) include\krb5.h "$(KRB_INSTALL_DIR)\include\."
+       $(CP) include\win-mac.h "$(KRB_INSTALL_DIR)\include\."
+       $(CP) include\profile.h "$(KRB_INSTALL_DIR)\include\."
+       $(CP) include\com_err.h "$(KRB_INSTALL_DIR)\include\."
+       $(CP) include\gssapi\gssapi.h "$(KRB_INSTALL_DIR)\include\gssapi\."
+       $(CP) include\gssapi\gssapi_krb5.h "$(KRB_INSTALL_DIR)\include\gssapi\."
+       $(CP) lib\$(OUTPRE)*.lib "$(KRB_INSTALL_DIR)\lib\."
+       $(CP) lib\$(OUTPRE)*.dll "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) windows\cns\$(OUTPRE)krb5.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) windows\wintel\$(OUTPRE)telnet.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) windows\gss\$(OUTPRE)gss.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) clients\klist\$(OUTPRE)klist.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) clients\kinit\$(OUTPRE)kinit.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) clients\kdestroy\$(OUTPRE)kdestroy.exe "$(KRB_INSTALL_DIR)\bin\."
+       $(CP) clients\kpasswd\$(OUTPRE)kpasswd.exe "$(KRB_INSTALL_DIR)\bin\."
+       @if exist "$(KRB_INSTALL_DIR)\bin\krb4_32.dll" del "$(KRB_INSTALL_DIR)\bin\krb4_32.dll"
+       @if exist "$(KRB_INSTALL_DIR)\lib\krb4_32.lib" del "$(KRB_INSTALL_DIR)\lib\krb4_32.lib"
index aca3d0bc7987ad311317ce57ff78ad20c8c95233..4544e45f10ea5ae5d581e3ff9191bf8031c9dba4 100644 (file)
@@ -1093,6 +1093,19 @@ mips-*-netbsd*)
        PROFFLAGS=-pg
        ;;
 
+*-*-macos10* | *-*-rhapsody*)
+       PICFLAGS=-fno-common
+       SHLIBVEXT='.$(LIBMAJOR).$(LIBMINOR).dylib'
+       SHLIBSEXT='.$(LIBMAJOR).dylib'
+       SHLIB_EXPFLAGS='$(SHLIB_DIRS) $(SHLIB_EXPLIBS)'
+       SHLIBEXT=.dylib
+       SHOBJEXT=.so
+       LDCOMBINE='cc -undefined warning -dynamiclib -dylib_compatibility_version=$(LIBMAJOR).$(LIBMINOR) -dylib_current_version=$(LIBMAJOR).$(LIBMINOR)'
+       CC_LINK_SHARED='$(CC) $(PROG_LIBPATH) -dynamic'
+       CC_LINK_STATIC='$(CC) $(PROG_LIBPATH)'
+       RUN_ENV='DYLD_LIBRARY_PATH=`echo $(PROG_LIBPATH) | sed -e "s/-L//g" -e "s/ /:/g"`; export DYLD_LIBRARY_PATH;'
+       ;;
+
 *-*-solaris*)
        if test "$krb5_cv_prog_gcc" = yes; then
                PICFLAGS=-fpic
index 2e848a3b07feee0f5ff80c59328d7b9bb8224b9a..fee0169890ca32bde265e435f00951cc21e4c8ee 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index d29642a6e7e792c73cb1feb4466b479d89079ab4..217aee5b37dc77a75a6866507b5ae17723fe43c5 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=.
 myfulldir=appl
 mydir=.
 BUILDTOP=$(REL)$(U)
-CFLAGS = $(CCOPTS)
 
 MY_SUBDIRS= sample simple user_user bsd gss-sample gssftp telnet
 
index 1a941cd539cc5315678c1f11ff3473f1c366201c..e28a07337493a4a6e2c473714c9c1298826c4d5e 100644 (file)
@@ -1,3 +1,50 @@
+2000-04-27  Nalin Dahyabhai  <nalin@redhat.com>
+
+       * krshd.c (doit): Don't overflow buffer "cmdbuf".
+
+2000-02-04  Tom Yu  <tlyu@mit.edu>
+
+       * login.c (main): Reorder some control flow to avoid security hole
+       if KRB4_GET_TICKETS is not defined.
+
+1999-12-02  Ken Raeburn  <raeburn@mit.edu>
+
+       * login.c (main, k_init): Call krb5_cc_set_default_name when
+       setting ccname env var.  Thanks to Donn Cave and Leonard Peirce.
+
+1999-11-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * login.c (k_init): Call krb5_init_secure_context instead of
+       krb5_init_context and krb5_secure_config_files.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-24  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in (kshd): Remove $(LOGINLIBS) from kshd dependencies.
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * krlogin.c (main): Error out if -D isn't followed by another
+       argument.  Based on patch from Brad Thompson.
+
+       * krshd.c (v4_kdata, v4_ticket): Don't define if KRB5_KRB4_COMPAT
+       is not defined.  Patch from Brad Thompson.
+
+       * kcmd.c (kcmd): If krb5_get_credentials returns a nonzero error
+       code, print an error message before returning.
+
+1999-08-17  Ken Raeburn  <raeburn@mit.edu>
+
+       * krlogin.c (main): If ospeed is outside of compiled-in table
+       index range but not high enough to be a baud rate, use the highest
+       rate in the table.
+
 1999-08-02  Ken Raeburn  <raeburn@mit.edu>
        and Brad Thompson  <yak@mit.edu>
 
index 3eb020fb9ce09f70838e52fa397f67b5428acf1e..eee13ca90f56e378cb1d3fe92fcabf21aa2bab6d 100644 (file)
@@ -2,8 +2,7 @@ thisconfigdir=.
 myfulldir=appl/bsd
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE) $(DEFINES)
-LOCALINCLUDE=@KRB4_INCLUDES@
+LOCALINCLUDES=@KRB4_INCLUDES@
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
@@ -28,7 +27,7 @@ RSH=  -DKRB5_PATH_RLOGIN=\"$(CLIENT_BINDIR)/rlogin\"
 BSD=   -DUCB_RLOGIN=\"$(UCB_RLOGIN)\" \
        -DUCB_RSH=\"$(UCB_RSH)\" -DUCB_RCP=\"$(UCB_RCP)\"
 
-DEFINES= $(RSH) $(BSD) $(RPROGS) \
+DEFINES = $(RSH) $(BSD) $(RPROGS) \
        -DLOGIN_PROGRAM=\"$(SERVER_BINDIR)/login.krb5\" -DKPROGDIR=\"$(CLIENT_BINDIR)\"
 
 all:: rsh rcp rlogin kshd klogind login.krb5 $(V4RCP)
@@ -63,7 +62,7 @@ install::
                ${DESTDIR}$(CLIENT_MANDIR)/`echo $$f|sed '$(transform)'`.1; \
        fi
 
-kshd: krshd.o kcmd.o  forward.o $(SETENVOBJ) $(LIBOBJS) $(LOGINLIBS) $(PTY_DEPLIB) $(UTIL_DEPLIB) $(KRB4COMPAT_DEPLIBS)
+kshd: krshd.o kcmd.o  forward.o $(SETENVOBJ) $(LIBOBJS) $(PTY_DEPLIB) $(UTIL_DEPLIB) $(KRB4COMPAT_DEPLIBS)
        $(CC_LINK) -o kshd krshd.o kcmd.o  forward.o $(SETENVOBJ) $(LIBOBJS) $(LOGINLIBS) $(PTY_LIB) $(UTIL_LIB) $(KRB4COMPAT_LIBS)
 
 klogind: krlogind.o  kcmd.o forward.o $(SETENVOBJ) $(LIBOBJS) $(PTY_DEPLIB) $(UTIL_DEPLIB) $(KRB4COMPAT_DEPLIBS)
index 0c587abe66718300a236a4286eed8a04903bcc07..a9d1f9c55eb13c6390abdb23f688c24fa470d7b2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6b0eafcdeb53189aaa71a286c4ad455bd8e4760c..0e68f88e7c0503967783e73befb61f003c4601cf 100644 (file)
@@ -339,7 +339,11 @@ kcmd(sock, ahost, rport, locuser, remuser, cmd, fd2p, service, realm,
     status = krb5_get_credentials(bsd_context, 0, cc, get_cred, &ret_cred);
     krb5_free_creds(bsd_context, get_cred);
     (void) krb5_cc_close(bsd_context, cc);
-    if (status) goto bad2;
+    if (status) {
+       fprintf (stderr, "error getting credentials: %s\n",
+                error_message (status));
+       goto bad2;
+    }
 
     /* Reset internal flags; these should not be sent. */
     authopts &= (~OPTS_FORWARD_CREDS);
index 0bfb3ef571acbfa90d9e3b34c4d0650faec0b557..0a8e7902e7e9a8dca9c57e028a145dbb1fa80d3a 100644 (file)
@@ -383,6 +383,11 @@ main(argc, argv)
 
     if (argc > 0 && !strcmp(*argv, "-D")) {
        argv++; argc--;
+       if (*argv == NULL) {
+           fprintf (stderr,
+                    "rlogin: -D flag must be followed by the debug port.\n");
+           exit (1);
+       }
        debug_port = htons(atoi(*argv));
        argv++; argc--;
        goto another;
@@ -545,6 +550,10 @@ main(argc, argv)
                        /* On some systems, ospeed is the baud rate itself,
                           not a table index.  */
                        sprintf (term + strlen (term), "%d", ospeed);
+               else if (ospeed >= sizeof(speeds)/sizeof(char*))
+                       /* Past end of table, but not high enough to
+                          look like a real speed.  */
+                       (void) strcat (term, speeds[sizeof(speeds)/sizeof(char*) - 1]);
                else {
                        (void) strcat(term, speeds[ospeed]);
                }
index 2a13917042a2e239c6838cf0eff52762706ed1a4..a9208d85c8707b3065592c09aaab7275fd8e1790 100644 (file)
@@ -529,8 +529,10 @@ char *kremuser;
 krb5_principal client;
 krb5_authenticator *kdata;
 
+#ifdef KRB5_KRB4_COMPAT
 AUTH_DAT       *v4_kdata;
 KTEXT          v4_ticket;
+#endif
 
 int auth_sys = 0;      /* Which version of Kerberos used to authenticate */
 
@@ -1466,15 +1468,16 @@ if(port)
         strcpy((char *) cmdbuf + offst, kprogdir);
        cp = copy + 3 + offst;
 
+       cmdbuf[sizeof(cmdbuf) - 1] = '\0';
        if (auth_sys == KRB5_RECVAUTH_V4) {
-         strcat(cmdbuf, "/v4rcp");
+         strncat(cmdbuf, "/v4rcp", sizeof(cmdbuf) - 1 - strlen(cmdbuf));
        } else {
-         strcat(cmdbuf, "/rcp");
+         strncat(cmdbuf, "/rcp", sizeof(cmdbuf) - 1 - strlen(cmdbuf));
        }
        if (stat((char *)cmdbuf + offst, &s) >= 0)
-         strcat(cmdbuf, cp);
+         strncat(cmdbuf, cp, sizeof(cmdbuf) - 1 - strlen(cmdbuf));
        else
-         strcpy(cmdbuf, copy);
+         strncpy(cmdbuf, copy, sizeof(cmdbuf) - 1 - strlen(cmdbuf));
        free(copy);
     }
 #endif
index 2eaf822dc838f5b797b28acebe06280a4e3398a9..20ace57691d3deeb04bbff6316f1f7eefac4f3d1 100644 (file)
@@ -505,19 +505,19 @@ void k_init (ttyn)
 #ifdef KRB5_GET_TICKETS
     krb5_error_code retval;
     
-    retval = krb5_init_context(&kcontext);
+    retval = krb5_init_secure_context(&kcontext);
     if (retval) {
        com_err("login", retval, "while initializing krb5");
        exit(1);
     }
 
-    krb5_secure_config_files (kcontext);
     login_get_kconf(kcontext);
 
     /* Set up the credential cache environment variable */
     if (!getenv(KRB5_ENV_CCNAME)) {
        sprintf(ccfile, "FILE:/tmp/krb5cc_p%d", getpid());
        setenv(KRB5_ENV_CCNAME, ccfile, 1);
+       krb5_cc_set_default_name(kcontext, ccfile);
        unlink(ccfile+strlen("FILE:"));
     } else {
        /* note it correctly */
@@ -1456,11 +1456,10 @@ int main(argc, argv)
 #ifdef KRB5_GET_TICKETS
     if (login_krb5_get_tickets)
        dofork();
-    else
 #endif
 #ifdef KRB4_GET_TICKETS
-       if (login_krb4_get_tickets)
-           dofork();
+    else if (login_krb4_get_tickets)
+       dofork();
 #endif
 
 /* If the user's shell does not do job control we should put it in a
@@ -1588,11 +1587,10 @@ int main(argc, argv)
 #ifdef KRB5_GET_TICKETS
     if (forwarded_v5_tickets)
        destroy_tickets();
-    else
 #endif
 #ifdef KRB4_GET_TICKETS
-       if (got_v4_tickets)
-           destroy_tickets();
+    else if (got_v4_tickets)
+        destroy_tickets();
 #endif
 
 #ifdef OQUOTA
@@ -1748,8 +1746,10 @@ int main(argc, argv)
 
 #ifdef KRB5_GET_TICKETS
     /* ccfile[0] is only set if we got tickets above */
-    if (login_krb5_get_tickets && ccfile[0])
+    if (login_krb5_get_tickets && ccfile[0]) {
        (void) setenv(KRB5_ENV_CCNAME, ccfile, 1);
+       krb5_cc_set_default_name(kcontext, ccfile);
+    }
 #endif /* KRB5_GET_TICKETS */
 
     if (tty[sizeof("tty")-1] == 'd')
index d2e9cde14b33ab50db4aa76590a5d354193654f5..eccd50be6791e48ca72e1241b79f40de9d06897a 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon Dec 21 22:04:02 1998  Theodore Y. Ts'o  <tytso@mit.edu>
 
        * gss-server.c (test_import_export_context): Fix memory leak.
index cb01396151e64aad63e4c924604f1f90357ad9a0..d564f7ed862c535a650adc70b76e9ef3c963a0c0 100644 (file)
@@ -3,7 +3,7 @@ myfulldir=appl/gss-sample
 mydir=gss-sample
 MY_SUBDIRS=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE) -DUSE_AUTOCONF_H -DGSSAPI_V2
+DEFINES = -DUSE_AUTOCONF_H -DGSSAPI_V2
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index 28394424f9d096d5d09d6cf2e6bd96154389f075..691a2e9cfd48bfb37cc9f1813c9662d2fff4b774 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-04-13    <tytso@rsts-11.mit.edu>
 
        * configure.in: Check to see if we need to pull in the util
index e1f1ef91507f641c4c16ea3b00fcd2277b1a213d..b498b13d7a375f0b6e17e750ce2c9f200545e269 100644 (file)
@@ -3,5 +3,4 @@ myfulldir=appl/gssftp
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
 LOCAL_SUBDIRS=ftp ftpd
-CFLAGS = $(CCOPTS)
 LDFLAGS = -g
index 4c287d294ed148645070e3dd5ea5064cab24268e..91a5e1512b502cc8397bc4921fc9a9144be3df6d 100644 (file)
@@ -1,3 +1,19 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-21  Ken Raeburn  <raeburn@mit.edu>
+
+       * ftp.c (getreply): Don't declare strpbrk or strstr functions if
+       they're defined as macros.
+
+1999-08-27  Tom Yu  <tlyu@mit.edu>
+
+       * ftp.c: Diable krb5-mech2 for now.
+
 Tue May 11 11:58:00 1999  Ezra Peisach  <epeisach@mit.edu>
 
        * ftp.c: Inclusion of gssapi_krb5.h requires gssapi_generic.h.
index 73f7b3baaf708cecdf3597855307fa83259c634c..d9d98186399cd1ff827ce83e4fb9460f4ec09bf9 100644 (file)
@@ -5,7 +5,7 @@ BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
 #
 # appl/gssftp/ftp/Makefile.in
 #
-CFLAGS = -DGSSAPI -DFTP_BUFSIZ=10240 $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
+DEFINES = -DGSSAPI -DFTP_BUFSIZ=10240
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
@@ -18,8 +18,7 @@ SRCS  = $(srcdir)/cmds.c $(srcdir)/cmdtab.c $(srcdir)/domacro.c \
 OBJS   = cmds.o cmdtab.o domacro.o ftp.o getpass.o glob.o main.o pclose.o \
          radix.o ruserpass.o secure.o
 
-LOCALINCLUDE = -I$(srcdir)/.. -I$(srcdir) @KRB4_INCLUDES@
-DEFINES = -DGSSAPI -DNOCONFIDENTIAL
+LOCALINCLUDES = -I$(srcdir)/.. -I$(srcdir) @KRB4_INCLUDES@
 
 all::  ftp
 
index c6e47bdec87aa5041ae89b0a8d0078b57768691c..24049eabe6b6874b92bc94e16bbfa1f487ac3868 100644 (file)
@@ -541,7 +541,12 @@ getreply(expecteof)
        sigtype cmdabort();
        char ibuf[FTP_BUFSIZ], obuf[FTP_BUFSIZ];
        int safe = 0;
-       extern char *strpbrk(), *strstr();
+#ifndef strpbrk
+       extern char *strpbrk();
+#endif
+#ifndef strstr
+       extern char *strstr();
+#endif
 
        ibuf[0] = '\0';
        if (reply_parse) reply_ptr = reply_buf;
@@ -1877,9 +1882,7 @@ struct {
     const gss_OID_desc * const * mech_type;
     char *service_name;
 } gss_trials[] = {
-    { &gss_mech_krb5_v2, "ftp" },
     { &gss_mech_krb5, "ftp" },
-    { &gss_mech_krb5_v2, "host" },
     { &gss_mech_krb5, "host" },
 };
 int n_gss_trials = sizeof(gss_trials)/sizeof(gss_trials[0]);
index c84e770288aeb6adda5d10f953739b5a07e002c6..ccce7581312754c1bb0e7f5184efbcc276e7a99f 100644 (file)
@@ -1,3 +1,17 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-21  Ken Raeburn  <raeburn@mit.edu>
+
+       * ftpd.c (checkuser): Only call fclose on file handle if it's not
+       NULL.
+       (send_file_list): Don't declare strpbrk function if it's defined
+       as a macro.
+
 Thu Mar 25 23:13:56 1999  Tom Yu  <tlyu@mit.edu>
 
        * ftpd.c (login): Check that the luid is not the uid we want to
index 98d11ec96f81248596f5fe6f801133a03ed318a5..eb66bbb6c5202620d171a5eb579a876760c4f144 100644 (file)
@@ -5,7 +5,7 @@ BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
 #
 # appl/gssftp/ftpd/Makefile.in
 #
-CFLAGS = -DGSSAPI -DFTP_BUFSIZ=10240 $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
+DEFINES = -DGSSAPI -DFTP_BUFSIZ=10240 #-DNOCONFIDENTIAL
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
@@ -25,8 +25,7 @@ SRCS  = $(srcdir)/ftpd.c ftpcmd.c $(srcdir)/popen.c \
 OBJS   = ftpd.o ftpcmd.o glob.o popen.o vers.o radix.o \
          secure.o $(LIBOBJS) $(SETENVOBJ)
 
-LOCALINCLUDE = -I$(srcdir)/.. -I$(srcdir) @KRB4_INCLUDES@
-DEFINES = -DGSSAPI -DNOCONFIDENTIAL
+LOCALINCLUDES = -I$(srcdir)/.. -I$(srcdir) @KRB4_INCLUDES@
 
 all::  ftpd
 
@@ -53,17 +52,17 @@ ftpcmd.c: $(srcdir)/ftpcmd.y
        $(MV) y.tab.c ftpcmd.c
 
 glob.o: $(srcdir)/../ftp/glob.c
-       $(CC) -c $(CFLAGS) $(srcdir)/../ftp/glob.c
+       $(CC) -c $(ALL_CFLAGS) $(srcdir)/../ftp/glob.c
 radix.o: $(srcdir)/../ftp/radix.c
-       $(CC) -c $(CFLAGS) $(srcdir)/../ftp/radix.c
+       $(CC) -c $(ALL_CFLAGS) $(srcdir)/../ftp/radix.c
 secure.o: $(srcdir)/../ftp/secure.c
-       $(CC) -c $(CFLAGS) $(srcdir)/../ftp/secure.c
+       $(CC) -c $(ALL_CFLAGS) $(srcdir)/../ftp/secure.c
 
 getdtablesize.o: $(srcdir)/../../bsd/getdtablesize.c
-       $(CC) -c $(CFLAGS) $(srcdir)/../../bsd/getdtablesize.c
+       $(CC) -c $(ALL_CFLAGS) $(srcdir)/../../bsd/getdtablesize.c
 
 setenv.o: $(srcdir)/../../bsd/setenv.c
-       $(CC) -c $(CFLAGS) $(srcdir)/../../bsd/setenv.c
+       $(CC) -c $(ALL_CFLAGS) $(srcdir)/../../bsd/setenv.c
 
 
 ftpd.o: $(srcdir)/pathnames.h
index d4987affcf160e96144e553cf17d79eaf850c06b..52be05fb6b87777f6c2d2bcfdac6fe9645ad84dc 100644 (file)
@@ -840,8 +840,8 @@ checkuser(name)
                        }
                  }
             }
+            (void) fclose(fd);
        }
-       (void) fclose(fd);
 
        return (0);
 }
@@ -2018,7 +2018,9 @@ void
 myoob()
 {
        char *cp, *cs;
+#ifndef strpbrk
        extern char *strpbrk();
+#endif
 
        /* only process if transfer occurring */
        if (!transflag)
@@ -2486,7 +2488,9 @@ send_file_list(whichfiles)
        FILE *dout = NULL;
        register char **dirlist, *dirname;
        int simple = 0;
+#ifndef strpbrk
        char *strpbrk();
+#endif
        int ret = 0;
 
        if (strpbrk(whichfiles, "~{[*?") != NULL) {
index 7a3bc3f40a23892c58836d4d1a12e71c54a585f4..0f678270af5d303bb9abf3ea7f19f6ad9ed8191a 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * configure.in: Removed and tests moved up to appl/configure.in
index 1678cad196f531be5cc123d123f4ef7b409b0274..e0c7ce53d742dbd7ee9324f40d0e2ce18ebf69d4 100644 (file)
@@ -3,5 +3,3 @@ myfulldir=appl/sample
 mydir=sample
 MY_SUBDIRS = sclient sserver
 BUILDTOP=$(REL)$(U)$(S)$(U)
-
-CFLAGS = $(CCOPTS)
index aac9ad13e891c00204e65010a64867873a520072..6c81d9351f53a488a2fcdc37dcb6281599d036c3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 39c66ced4ef9ba8c787a07e13c9dbe514eee3fa4..7b7b4774a3c98e27ae34ef82fa7f8b709cffcb29 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 744a404c2081228bba4d64db408234af7a8d4e4d..cf286a4ae185e4deeb87f73f2eeee6c030cc2ae2 100644 (file)
@@ -4,7 +4,6 @@ mydir=sample/sclient
 MY_SUBDIRS=.
 
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index 4eb934a649dce0ca6ee593e15122d96b0e34c860..1b5a8d6b7e6582b4855cc5a30eff2172fe0db06e 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" 
index c5c79123f01d671d8fb2eb8f4658d1921f070dcd..3b8bb98c6da562eb91281055a4e45cccb950331d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0eb7468da5dde6dc426a566aadef9cfde943a8f8..04722ef44cdd2d32d237506baddb2bccd6de10ff 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 5e0b93ab76cda72e866e2abf2e134d43d5642e72..cf3a1517cc5f34f67c8b45305d6933bf6485eb2f 100644 (file)
@@ -4,7 +4,6 @@ mydir=sample/sserver
 MY_SUBDIRS=.
 
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index e879067e68d22574766c8d7148876951ab2a7e65..4323fd11be84d62bf8601c5c8a975ee891be4750 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" "
index e3b08962c09c3423223440f0b9637a799b311b62..06579f4a6461d89dc378191b6a7128f749daf566 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7c6a2f244dd7c12694e0e3172140e4c875b467f1..b5d9f9423bae7ee569ae7b7e082516ed548ac76d 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * configure.in: Removed and tests moved up to appl/configure.in
index 0e46bef3677e4c4013df46902eaa6413c0e71295..1331664b9faf76d2ac71b804f03458e12c3ab5ef 100644 (file)
@@ -3,5 +3,3 @@ myfulldir=appl/simple
 mydir=simple
 MY_SUBDIRS = client server
 BUILDTOP=$(REL)$(U)$(S)$(U)
-
-CFLAGS = $(CCOPTS)
index 8074ea955a2ce08b060bccc9feaa6a8c144c56d7..702b2467967591b2b4ba4d07f7cb76d392960c23 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 023180d5d964f97ffd19a6ecad78b7fcb6038495..5ac73b9644e301dd627fe15ddd1733f27ae3ed8d 100644 (file)
@@ -3,13 +3,12 @@ myfulldir=appl/simple/client
 mydir=simple/client
 MY_SUBDIRS=.
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
 all:: sim_client
 
-LOCALINCLUDE= -I.. -I$(srcdir)/..
+LOCALINCLUDES= -I.. -I$(srcdir)/..
 
 sim_client: sim_client.o $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o sim_client sim_client.o $(KRB5_BASE_LIBS)
index 0838757c416a4d5c22b51e838f9709f08881ebdc..b010794eef3ea9db002ebbc6f1f81b128516223b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 88defa5893661e80bfcbd170e8d7cb3da23fe283..a6e6a68f1df860008fd3db13b9f310ca35f31ba2 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index f0fb9d62e269b49bb5be9abee06693ecff9c5c0f..ade8d583b6e803503d666b8793419eebdfc06b04 100644 (file)
@@ -3,9 +3,8 @@ myfulldir=appl/simple/server
 mydir=simple/server
 MY_SUBDIRS=.
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 
-LOCALINCLUDE= -I.. -I$(srcdir)/..
+LOCALINCLUDES= -I.. -I$(srcdir)/..
 
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
index 7f1a824e46d1163cda3f0e03bf27189f8088409e..6e4f4e1cc72e908c1bbd33bb06d89e4997d95558 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f908e2ca117b407b19bf5826b33146734f665530..f230592e6c35a0437ee0df7572ed3c5d7525a9c8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c3a779a42fae3b861f4bb04c313cbf0ad7102c56..28854b78a07eae127639f6043865400c9a9a531d 100644 (file)
@@ -1,3 +1,18 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-31 17:28   Jeffrey Altman <jaltman@columbia.edu>
+
+        * kerberos5.c: Corrections to yesterday's change.
+
+1999-08-30 16:55   Jeffrey Altman <jaltman@columbia.edu>
+
+        * kerberos5.c: Ensure that only "host" service tickets are accepted.
+
 Wed Feb  3 22:59:27 1999  Theodore Y. Ts'o  <tytso@mit.edu>
 
        * kerberos5.c: Increase size of str_data so that we can accept
index 31d98b36b9365f11e801812daddba3f2307596f4..48bbe539a096cd1e1434a1cb879730af901411b8 100644 (file)
@@ -26,7 +26,7 @@ BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
 AUTH_DEF=-DAUTHENTICATION -DENCRYPTION -DDES_ENCRYPTION -DKRB5 -DFORWARD \
        -UNO_LOGIN_F -DLOGIN_CAP_F -DLOGIN_PROGRAM=KRB5_PATH_LOGIN
 LOCALINCLUDES=-I.. -I$(srcdir)/.. @KRB4_INCLUDES@
-CFLAGS = $(CCOPTS) $(AUTH_DEF) $(DEFS) $(LOCALINCLUDES)
+DEFINES = $(AUTH_DEF)
 LIBOBJS=@LIBOBJS@
 
 LIB=    libtelnet.a
index c14f6ed0648968f53ba8f218b5c581d15b4c0682..b1a0bb0b88fe6581101f5fa8e3dc1918dcb25425 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 428613566a5d2a27328ed116045e5d6186e44a63..f10ffb7aa67f25b325b715f549c8174b83703f5b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index b01a58dd5affe4ede7b628042107198963de59ab..0fe8bcf6fccae76a4bbdd5be14948437ac07429e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 48f91430f50e1f84cc523009921a26af5a8e35d0..2a17d44f401434168343ad4e92cfffa0153121b8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 15f2a88b2616c6174d84e7d9414d8f40c836b3e7..8833188bc9a43a8fa47fc14b46c39e8bb02db6f9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index d4274d8ca34c0b7fb10446ba583bae786ba18701..00c72cd0682c4a8e147cdfa5a509d7b992f56868 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index ed32392c9c9d4b3332b3cef9669d9120650bc846..734466e86c296f1198a4a56389c2f6854cec908d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 73b2c8780f511e0acb9cd2736791aab9d63ec8fc..371329823b892ca4ef731ce6c6da83e6c53bf966 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
@@ -377,7 +380,7 @@ kerberos5_is(ap, data, cnt)
 #ifdef ENCRYPTION
        Session_Key skey;
 #endif
-       char errbuf[128];
+       char errbuf[320];
        char *name;
        char *getenv();
        krb5_data inbuf;
@@ -423,6 +426,27 @@ kerberos5_is(ap, data, cnt)
                        (void) strcat(errbuf, error_message(r));
                        goto errout;
                }
+
+               /* 256 bytes should be much larger than any reasonable first component */
+               /* of a service name especially since the default is of length 4.      */
+        if (krb5_princ_component(telnet_context,ticket->server,0)->length < 256) {
+                       char princ[256];
+            strncpy(princ,     
+                               krb5_princ_component(telnet_context, ticket->server,0)->data,
+                               krb5_princ_component(telnet_context, ticket->server,0)->length);
+                       princ[krb5_princ_component(telnet_context, 
+                               ticket->server,0)->length] = '\0';
+                       if ( strcmp("host", princ) )
+                       {
+                               (void) sprintf(errbuf, "incorrect service name: \"%s\" != \"%s\"",
+                                                          princ, "host");
+                               goto errout;
+                       }
+        } else {
+                       (void) strcpy(errbuf, "service name too long");
+                       goto errout;
+               }
+
                r = krb5_auth_con_getauthenticator(telnet_context,
                                                   auth_context,
                                                   &authenticator);
@@ -557,7 +581,7 @@ kerberos5_is(ap, data, cnt)
        
     errout:
        {
-           char eerrbuf[128+9];
+           char eerrbuf[329];
 
            strcpy(eerrbuf, "telnetd: ");
            strcat(eerrbuf, errbuf);
index ffaeb86fa9ec6413ec095ff55c8bc3a567591dcb..a70aab9a5e684a66f0e8cc4772e641a66aa1367e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index ca9ae4b1b31f883e7143ba603f4e9d54708b8e35..3924a465194ecd3e798ab89ab04c5d455d3549bc 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index e833272329c644e65ccaa1f299dbd74e721e5e8a..4338cc4379ec110e52ab8ba315224eb7e8037421 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-07-26  Tom Yu  <tlyu@mit.edu>
 
        * telnet.c (telnet): Fix typo in error message, via
index 3654e17f47a21ebce47e0e70b16ca8247881e5f2..a1fd6f51a2d663f9bf9fd73807b44a77a14a9a95 100644 (file)
@@ -27,7 +27,7 @@ BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
 AUTH_DEF=-DAUTHENTICATION -DENCRYPTION -DKRB5 -DFORWARD -UNO_LOGIN_F -DLOGIN_CAP_F -DLOGIN_PROGRAM=KRB5_PATH_LOGIN
 OTHERDEFS=-DLINEMODE -DKLUDGELINEMODE -DDIAGNOSTICS -DENV_HACK -DOLD_ENVIRON
 LOCALINCLUDES=-I.. -I$(srcdir)/..
-CFLAGS = $(CCOPTS) $(AUTH_DEF) $(OTHERDEFS) $(DEFS) $(LOCALINCLUDES)
+DEFINES = $(AUTH_DEF) $(OTHERDEFS)
 ARPA_TELNET= $(srcdir)/../arpa/telnet.h
 
 PROG_LIBPATH=-L$(TOPLIBD)
index afa44f2c7e88d7b0bcde5ec30907981b2b58e546..41fbd39e2a64813e416dfccc450e515d2697d971 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Thu Apr 15 17:02:49 1999  Theodore Y. Ts'o  <tytso@mit.edu>
 
        * configure.in: Fix typo in test below; fixed name of the autoconf
index 2fbec0e56f686d0473d9aece2dbad2f6b7c604a9..01bd66afde363ca81d494dc440fe6e4c61cd2dbe 100644 (file)
@@ -27,7 +27,7 @@ BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
 AUTH_DEF=-DAUTHENTICATION -DENCRYPTION -DKRB5 -DFORWARD -UNO_LOGIN_F -ULOGIN_CAP_F -DLOGIN_PROGRAM=KRB5_PATH_LOGIN
 OTHERDEFS=-DKLUDGELINEMODE -DDIAGNOSTICS -DENV_HACK -DOLD_ENVIRON
 LOCALINCLUDES=-I.. -I$(srcdir)/..
-CFLAGS = $(CCOPTS) $(AUTH_DEF) $(OTHERDEFS) $(DEFS) $(LOCALINCLUDES)
+DEFINES = $(AUTH_DEF) $(OTHERDEFS)
 ARPA_TELNET= $(srcdir)/../arpa/telnet.h
 
 PROG_LIBPATH=-L$(TOPLIBD) $(KRB4_LIBPATH)
index c98c21b0fb66f6376b6f6f321b6516f49c7b5bf1..c12b29d1c3e8d55e3e7635689ceab08872cbdc84 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * configure.in: Removed and tests moved up to appl/configure.in
index 7721c224df7fa41a46deaf719cc0f23e9afdad63..5185da516e90d174ce14a104ede5a950896c308c 100644 (file)
@@ -3,7 +3,7 @@ myfulldir=appl/user_user
 mydir=user_user
 MY_SUBDIRS=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -DDEBUG
+DEFINES = -DDEBUG
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index 9fb0c7ad051d4561cd28e9521772352741f6ecdc..b5dcd0de814bd0c38fd9f403626f6c02b2886dfe 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d6fb4fca9b6e9e4a399f86194fcb313b08156d1e..d7cda69e895ea483d1c65618f1f40428ec6844ac 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7aa79e60a3ee0c2df52eb06ff065c3b71e286719..4c1c39c4f6b1579d6cdef022845f14c9559aaeb2 100644 (file)
@@ -1,3 +1,16 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Clean kpasswd in Windows build.
+
+1999-11-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * configure.in: Check for setenv.  Set SETENVOBJ to setenv.o if
+       it's not available, empty otherwise.
+
+1999-08-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Build kpasswd under windows.
+
 Tue May 18 19:52:56 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Remove - from recursive Win32 make invocation.
index ada6fd0c1f038929faa2e0acbe63ad15703b94a6..0aebfb92139d7c5c1aa5d93a3d1bf2b661540da5 100644 (file)
@@ -16,6 +16,9 @@ all-windows::
        @echo Making all in clients\kinit
        cd ..\kinit
        $(MAKE) -$(MFLAGS)
+       @echo Making all in clients\kpasswd
+       cd ..\kpasswd
+       $(MAKE) -$(MFLAGS)
        cd ..
 
 clean-windows::
@@ -28,4 +31,7 @@ clean-windows::
        @echo Making clean in clients\kinit
        cd ..\kinit
        $(MAKE) -$(MFLAGS) clean
+       @echo Making clean in clients\kpasswd
+       cd ..\kpasswd
+       $(MAKE) -$(MFLAGS) clean
        cd ..
index d78039edf5947d523e117da92dbb73ef178482ea..29296565a1d396a21bf9afee1be2fa119ded2da2 100644 (file)
@@ -3,7 +3,13 @@ CONFIG_RULES
 AC_PROG_INSTALL
 KRB5_BUILD_PROGRAM
 AC_HEADER_STDARG
-AC_CHECK_FUNCS(getusershell lstat )
+AC_CHECK_FUNCS(getusershell lstat setenv)
+if test $ac_cv_func_setenv = no ; then
+  SETENVOBJ=setenv.o
+else
+  SETENVOBJ=
+fi
+AC_SUBST(SETENVOBJ)
 AC_CHECK_HEADERS(unistd.h pwd.h)
 case $krb5_cv_host in
 alpha-dec-osf*)
index f3d51232b46cb04fb6049b7fe7da5592602728cb..41d694f7351ad5aac8f26199c6ccfd7479ed20fb 100644 (file)
@@ -1,3 +1,18 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Windows fix for 10/26/99 cleanup.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Use standard windows exe link flags.
+
 Mon May 10 15:09:31 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 9489d2fa9386c54f6d58dab1d1976ad0a87396c1..4e67ce3bd899216105067a7ec923b50263d8b5c3 100644 (file)
@@ -2,28 +2,19 @@ thisconfigdir=./..
 myfulldir=clients/kdestroy
 mydir=kdestroy
 BUILDTOP=$(REL)$(U)$(S)$(U)
-##DOS##BUILDTOP=..\..
 
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
 all-unix:: kdestroy
-all-windows::
+all-windows:: $(OUTPRE)kdestroy.exe
 all-mac::
 
 kdestroy: kdestroy.o $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o $@ kdestroy.o $(KRB5_BASE_LIBS)
 
-
-
-##WIN32##INCLUDES = /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5
-##WIN32##CFLAGS        = $(CCOPTS2) $(INCLUDES)
-
-##WIN32##all-windows:: $(OUTPRE)kdestroy.exe
-##WIN32##$(OUTPRE)kdestroy.exe: $(OUTPRE)kdestroy.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj $(KLIB) $(CLIB)
-##WIN32##      link /nologo /out:$@ $**
-
+$(OUTPRE)kdestroy.exe: $(OUTPRE)kdestroy.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj $(KLIB) $(CLIB)
+       link $(EXE_LINKOPTS) -out:$@ $**
 
 clean-unix::
        $(RM) kdestroy.o kdestroy
index 9886dad58c6f5678c76cd26e0ac87134e21ce3ee..68ce7033ed388edf1e720c5bcf771741319272c5 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" "
index b52ccb246dbb4ca7e39e99b4e0db651b1e76a48b..6fdbc652a521025cd8ddf8db28a45392fc1667da 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index fa18f10040584df6207c9aef26ccf92e562faaac..39d7ec8956f4f9cdd0a19ab686ad6931f1cc4e84 100644 (file)
@@ -1,3 +1,28 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Windows fix for 10/26/99 cleanup.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-25  Ken Raeburn  <raeburn@mit.edu>
+
+       * kinit.c (optind, optarg) [sun]: Declare on SunOS 4.  Maybe
+       declare unconditionally, in the future.
+
+1999-08-12  Ken Raeburn  <raeburn@mit.edu>
+
+       * kinit.c (main): Initialize cache_name to null, in case it's not
+       set.
+
+1999-08-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Use standard windows exe link flags.
+
 Mon May 10 15:13:37 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 071d653f72ddb3c523434fdc6363348f8082d148..2308ca22d5eb4813648a8bec2bd9bee7a2d180a3 100644 (file)
@@ -2,27 +2,19 @@ thisconfigdir=./..
 myfulldir=clients/kinit
 mydir=kinit
 BUILDTOP=$(REL)$(U)$(S)$(U)
-##DOS##BUILDTOP=..\..
 
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
 all-unix:: kinit
-all-windows::
+all-windows:: $(OUTPRE)kinit.exe
 all-mac::
 
 kinit: kinit.o $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o $@ kinit.o $(KRB5_BASE_LIBS)
 
-
-##WIN32##INCLUDES = /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5
-##WIN32##CFLAGS        = $(CCOPTS2) $(INCLUDES)
-
-##WIN32##all-windows:: $(OUTPRE)kinit.exe
-##WIN32##$(OUTPRE)kinit.exe: $(OUTPRE)kinit.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj $(KLIB) $(CLIB)
-##WIN32##      link /nologo /out:$@ $**
-
+$(OUTPRE)kinit.exe: $(OUTPRE)kinit.obj $(BUILDTOP)\util\windows\$(OUTPRE)getopt.obj $(KLIB) $(CLIB)
+       link $(EXE_LINKOPTS) -out:$@ $**
 
 clean-unix::
        $(RM) kinit.o kinit
index 6681967f4cbe84d276bba73a7383dd272ed352cc..e87536c9113a8a8e25d43f90985a554799e10c80 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" "
index c29b26e6c02dbe42b791530253257b7ec9b6a5d1..777b44e0dc38c37b7e5073d5b79e16b6a283ffbb 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
 #else
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
+#ifdef sun
+/* SunOS4 unistd didn't declare these; okay to make unconditional?  */
+extern int optind;
+extern char *optarg;
+#endif /* sun */
 #else
 extern int optind;
 extern char *optarg;
@@ -101,7 +109,7 @@ main(argc, argv)
     krb5_get_init_creds_opt opts;
     char *service_name = NULL;
     krb5_keytab keytab = NULL;
-    char *cache_name;
+    char *cache_name = NULL;
     krb5_ccache ccache = NULL;
     enum { INIT_PW, INIT_KT, RENEW, VALIDATE} action;
     int errflg = 0, idx, i;
index 3f1cc69308ac1b9978aa1d5c19ea9c2cd5176124..0f1106519182bd773ad1b4b125b7403d41e426a1 100644 (file)
@@ -1,3 +1,28 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Windows fix for 10/26/99 cleanup.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-01  Danilo Almeida  <dalmeida@mit.edu>
+
+       * klist.c (do_ccache, show_credential): Use krb5_free_unparsed_name
+       instead of free.
+
+1999-08-26  Danilo Almeida  <dalmeida@mit.edu>
+
+       * klist.c (show_credential): Index addresses array with i
+       in a loop instead of 1.  (Thanks to jaltman@columbia.edu)
+
+1999-08-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Use standard windows exe link flags.
+
 Mon May 10 15:13:58 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index b9be31653b81eae05e1953626824d0b12149459b..b4beb7e6297c6f2e59acbd81cc1ae5fb32dbc374 100644 (file)
@@ -3,26 +3,19 @@ myfulldir=clients/klist
 mydir=klist
 BUILDTOP=$(REL)$(U)$(S)$(U)
 
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
 all-unix:: klist
-all-windows::
+all-windows:: $(OUTPRE)klist.exe
 all-mac::
 
 
 klist: klist.o $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o $@ klist.o $(KRB5_BASE_LIBS)
 
-
-##WIN32##INCLUDES = /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5
-##WIN32##CFLAGS        = $(CCOPTS2) $(INCLUDES)
-
-##WIN32##all-windows:: $(OUTPRE)klist.exe
-##WIN32##$(OUTPRE)klist.exe: $(OUTPRE)klist.obj $(KLIB) $(CLIB)
-##WIN32##      link /nologo /out:$@ $** wsock32.lib
-
+$(OUTPRE)klist.exe: $(OUTPRE)klist.obj $(KLIB) $(CLIB)
+       link $(EXE_LINKOPTS) -out:$@ $** wsock32.lib
 
 clean-unix::
        $(RM) klist.o klist
index 99b42b985d4f1ca179a993354b5b542debbaf807..3a352416c71a079bea88017c7e297a8c4eb155af 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" "
index 5d79a52e47c231c4703ba97587b62fc0e200666f..333142c14b04e278a9c41d43c2903db54835a837 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -248,7 +251,7 @@ void do_keytab(name)
               printf(")");
          }
          printf("\n");
-         free(pname);
+          krb5_free_unparsed_name(kcontext, pname);
      }
      if (code && code != KRB5_KT_END) {
          com_err(progname, code, "while scanning keytab");
@@ -447,7 +450,7 @@ show_credential(progname, kcontext, cred)
     retval = krb5_unparse_name(kcontext, cred->server, &sname);
     if (retval) {
        com_err(progname, retval, "while unparsing server name");
-       free(name);
+        krb5_free_unparsed_name(kcontext, name);
        return;
     }
     if (!cred->times.starttime)
@@ -527,15 +530,15 @@ show_credential(progname, kcontext, cred)
 
            for (i=1; cred->addresses[i]; i++) {
                printf(", ");
-               one_addr(cred->addresses[1]);
+               one_addr(cred->addresses[i]);
            }
 
            printf("\n");
        }
     }
 
-    free(name);
-    free(sname);
+    krb5_free_unparsed_name(kcontext, name);
+    krb5_free_unparsed_name(kcontext, sname);
 }
 
 void one_addr(a)
index 46f98c5546d699a555649bfbd60c170bd2128b4e..ba06e7008113a5d4695634ebec93cde698f65dc2 100644 (file)
@@ -1,3 +1,19 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Windows fix for 10/26/99 cleanup.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * kpasswd.c: 
+       * Makefile.in: Build kpasswd under windows.
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 2b749082058a37389fdb0e2f0f05980cec47407b..a9fed31e2ec205dbac520700bb243a7facd56ff4 100644 (file)
@@ -2,29 +2,24 @@ thisconfigdir=./..
 myfulldir=clients/kpasswd
 mydir=kpasswd
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
-##DOSBUILDTOP=..\..
-
 kpasswd: kpasswd.o $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o kpasswd kpasswd.o $(KRB5_BASE_LIBS)
 
 kpasswd.o:     $(srcdir)/kpasswd.c
 
 all-unix:: kpasswd
-all-windows:: kpasswd.exe
 
 clean-unix::
        $(RM) kpasswd.o kpasswd
 
-clean-windows::
-       $(RM) kpasswd.obj kpasswd.exe
-
 install-all install-kdc install-server install-client install-unix::
        $(INSTALL_PROGRAM) kpasswd $(DESTDIR)$(CLIENT_BINDIR)/`echo kpasswd|sed '$(transform)'`
        $(INSTALL_DATA) $(srcdir)/kpasswd.M $(DESTDIR)$(CLIENT_MANDIR)/`echo kpasswd|sed '$(transform)'`.1;
 
-kpasswd.exe: kpasswd.obj
-       link /out:kpasswd.exe kpasswd.obj $(BUILDTOP)\lib\libkrb5.lib
+all-windows:: $(OUTPRE)kpasswd.exe
+
+$(OUTPRE)kpasswd.exe: $(OUTPRE)kpasswd.obj $(KLIB) $(CLIB)
+       link $(EXE_LINKOPTS) -out:$@ $**
index 5428898efb90738f9791fc5ddb89f6a84e0a23d7..f88a13451b1d68ba39e313ded54792ea83b0ff03 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" "
index 711c4ecd64003450f1b6c23239780c6af1b760da..2e719d6de7ae14312ae3e8531a2ba26817c66778 100644 (file)
@@ -1,20 +1,51 @@
 #include <stdio.h>
 #include <sys/types.h>
-#include <pwd.h>
+
+#ifndef _WIN32
 #include <unistd.h>
+#endif
 
 #include <krb5.h>
 
 #define P1 "Enter new password: "
 #define P2 "Enter it again: "
 
+#ifdef HAVE_PWD_H
+#include <pwd.h>
+
+void get_name_from_passwd_file(program_name, kcontext, me)
+    char * program_name;
+    krb5_context kcontext;
+    krb5_principal * me;
+{
+    struct passwd *pw;
+    krb5_error_code code;
+    if (pw = getpwuid((int) getuid())) {
+       if ((code = krb5_parse_name(kcontext, pw->pw_name, me))) {
+           com_err (program_name, code, "when parsing name %s", pw->pw_name);
+           exit(1);
+       }
+    } else {
+       fprintf(stderr, "Unable to identify user from password file\n");
+       exit(1);
+    }
+}
+#else /* HAVE_PWD_H */
+void get_name_from_passwd_file(kcontext, me)
+    krb5_context kcontext;
+    krb5_principal * me;
+{
+    fprintf(stderr, "Unable to identify user\n");
+    exit(1);
+}
+#endif /* HAVE_PWD_H */
+
 int main(int argc, char *argv[])
 {
    krb5_error_code ret;
    krb5_context context;
    krb5_principal princ;
    char *pname;
-   struct passwd *pwd;
    krb5_ccache ccache;
    krb5_get_init_creds_opt opts;
    krb5_creds creds;
@@ -40,7 +71,9 @@ int main(int argc, char *argv[])
       exit(1);
    }
 
+#if 0
    krb5_init_ets(context);
+#endif
 
    /* in order, use the first of:
       - a name specified on the command line
@@ -70,15 +103,8 @@ int main(int argc, char *argv[])
         com_err(argv[0], ret, "closing ccache");
         exit(1);
       }
-   } else if (pwd = getpwuid(getuid())) {
-      if (ret = krb5_parse_name(context, pwd->pw_name, &princ)) {
-        com_err(argv[0], ret, "parsing client name");
-        exit(1);
-      }
    } else {
-      com_err(argv[0], 0,
-             "no matching password entry while looking for username");
-      exit(1);
+       get_name_from_passwd_file(argv[0], context, &princ);
    }
 
    krb5_get_init_creds_opt_init(&opts);
index 44dc8989d4c4993cd9c78cc9c0022605a019e263..d61703e41a64791bb001e5c6ee0c76ed29f6c34f 100644 (file)
@@ -1,3 +1,65 @@
+1999-12-02  Ken Raeburn  <raeburn@mit.edu>
+
+       * krb_auth_su.c (krb5_get_tkt_via_passwd): Move check of
+       principal name length up *before* it gets copied.
+
+1999-11-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * krb_auth_su.c (krb5_get_tkt_via_passwd): Check length of
+       principal name before copying to fixed-size buffer.
+
+       * ccache.c (krb5_ccache_filter): Fix speling error.
+       (krb5_get_login_princ): Check length of home directory pathname.
+
+       * setenv.c: New file, copied from appl/bsd.
+       * Makefile.in (OBJS): Add @SETENVOBJ@.
+       (SRCS): Add setenv.c.
+
+       * xmalloc.c: New file, providing versions of malloc, calloc,
+       realloc, and strdup that print messages and exit if memory
+       allocation fails.
+       * ksu.h (xmalloc, xrealloc, xcalloc, xstrdup): Declare.
+       * Makefile.in (SRCS, OBJS): Use it.
+       * authorization.c, ccache.c, heuristic.c, main.c: Change all calls
+       to malloc, calloc, realloc, and strdup to call x* versions if the
+       return value is not checked before use.
+
+       * authorization.c (auth_cleanup): Ditch int arguments, check for
+       null pointers instead.
+       (krb5_authorization): Update calls.  Initialize file pointers to
+       null.
+       (init_auth_names): Check for buffer overflow.
+       (fcmd_resolve): Ensure enough buffer space is allocated.
+       (find_first_cmd_that_exists): Likewise.  Use strcat instead of
+       sprintf'ing a buffer into itself.
+
+       * krb_auth_su.c (dump_principal, plain_dump_principal): Reformat
+       slightly.
+
+       * main.c (cc_source_tag, cc_source_tag_tmp): Now point to const.
+       (main): Unset environment variable KRB5_CONFIG.  Delete -C
+       option.  Force an error if lifetime strings are over 14
+       characters.  Fix error message string if setluid fails.  Cast pid
+       to long for printing.  Call krb5_init_secure_context instead of
+       krb5_init_context and krb5_secure_config_files.
+       (main): Fix speling error.
+       (ontty): Check string size.
+       (get_dir_of_file): Argument now points to const.
+       * ksu.h (get_dir_of_file): Update declaration.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * heuristic.c (find_ticket): Use flag KRB5_TC_SUPPORTED_KTYPES
+       when calling krb5_cc_retrieve_cred.
+       * krb_auth_su.c (krb5_auth_check, krb5_fast_auth): Ditto.
+
 Fri Mar 12 18:52:18 1999  Tom Yu  <tlyu@mit.edu>
 
        * main.c (main): Fix cleanup code for setluid() failure.
index b31a3f64138ef33d754fc3d10d466de367c11fb1..c96de375e883d4a3377b1a97e3328fc24296df1b 100644 (file)
@@ -3,7 +3,6 @@ myfulldir=clients/ksu
 mydir=ksu
 BUILDTOP=$(REL)$(U)$(S)$(U)
 DEFINES = -DGET_TGT_VIA_PASSWD -DPRINC_LOOK_AHEAD -DCMD_PATH='"/bin /local/bin"'
-CFLAGS = $(CCOPTS) $(DEFINES) $(DEFS) $(LOCALINCLUDE)
 
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
@@ -15,13 +14,17 @@ SRCS = \
        $(srcdir)/ccache.c \
        $(srcdir)/authorization.c \
        $(srcdir)/main.c \
-       $(srcdir)/heuristic.c
+       $(srcdir)/heuristic.c \
+       $(srcdir)/xmalloc.c \
+       $(srcdir)/setenv.c
 OBJS = \
        krb_auth_su.o \
        ccache.o \
        authorization.o \
        main.o \
-       heuristic.o
+       heuristic.o \
+       xmalloc.o \
+       @SETENVOBJ@
 
 all:: ksu
 
index 39e745995c1e7b7e9ae1ca56266407927159fd12..a2e540936dab4b03f556c2406fa0c945a13b3dcb 100644 (file)
@@ -27,7 +27,7 @@
 
 #include "ksu.h"
 
-static void auth_cleanup PROTOTYPE((int, FILE *, int, FILE *, char *));
+static void auth_cleanup PROTOTYPE((FILE *, FILE *, char *));
 
 krb5_boolean fowner(fp, uid)
     FILE *fp;
@@ -76,9 +76,8 @@ krb5_error_code krb5_authorization(context, principal, luser,
     int k5login_flag =0;
     int k5users_flag =0;
     krb5_boolean retbool =FALSE;
-    FILE * login_fp, * users_fp;
+    FILE * login_fp = 0, * users_fp = 0;
     krb5_error_code retval = 0;
-    struct stat statbuf;
     struct stat st_temp;
 
     *ok =FALSE;
@@ -128,8 +127,7 @@ krb5_error_code krb5_authorization(context, principal, luser,
        }else{
            if(retval = k5users_lookup(users_fp,princname,
                                       cmd,&retbool,out_fcmd)){
-               auth_cleanup(k5users_flag,users_fp,
-                            k5login_flag,login_fp, princname);
+               auth_cleanup(users_fp, login_fp, princname);
                return retval;
            }else{
                *ok =retbool;
@@ -149,28 +147,26 @@ krb5_error_code krb5_authorization(context, principal, luser,
                    "In krb5_authorization: principal to be authorized %s\n",
                    princname);
        if (retval = k5login_lookup( login_fp,  princname, &retbool)){
-           auth_cleanup(k5users_flag,users_fp,
-                        k5login_flag,login_fp, princname);
+           auth_cleanup(users_fp, login_fp, princname);
            return retval;
        }
        if (retbool) {
            if (cmd)
-               *out_fcmd = strdup(cmd);
+               *out_fcmd = xstrdup(cmd);
        }
     }
 
     if ((!k5users_flag) && (retbool == FALSE) ){
        if(retval = k5users_lookup (users_fp, princname,
                                    cmd, &retbool, out_fcmd)){
-           auth_cleanup(k5users_flag,users_fp,
-                        k5login_flag,login_fp, princname);
+           auth_cleanup(users_fp, login_fp, princname);
            return retval;
        }
     }
 
     if (k5login_flag && k5users_flag){
 
-       char * kuser =  (char *) calloc (strlen(princname), sizeof(char));
+       char * kuser =  (char *) xcalloc (strlen(princname), sizeof(char));
        if (!(krb5_aname_to_localname(context, principal,
                                      strlen(princname), kuser))
            && (strcmp(kuser, luser) == 0)) {
@@ -181,7 +177,7 @@ krb5_error_code krb5_authorization(context, principal, luser,
     }
 
     *ok =retbool;
-    auth_cleanup(k5users_flag,users_fp, k5login_flag,login_fp, princname);
+    auth_cleanup(users_fp, login_fp, princname);
     return 0;
 }
 
@@ -278,7 +274,7 @@ krb5_error_code k5users_lookup (fp, princname, cmd, found, out_fcmd)
 
            if ((fcmd) && (!strcmp(fcmd, PERMIT_ALL_COMMANDS))){
                if (get_next_token(&lp) == NULL){
-                   loc_fcmd =cmd ? strdup(cmd): NULL;
+                   loc_fcmd =cmd ? xstrdup(cmd): NULL;
                    loc_found = TRUE;
                }
                free (line);
@@ -348,30 +344,30 @@ krb5_boolean fcmd_resolve(fcmd, out_fcmd, out_err)
     char * lp, * tc;
     int i=0;
 
-    tmp_fcmd = (char **) calloc (MAX_CMD, sizeof(char *));
+    tmp_fcmd = (char **) xcalloc (MAX_CMD, sizeof(char *));
 
     if (*fcmd == '/'){  /* must be full path */
-       tmp_fcmd[0] = strdup(fcmd);
+       tmp_fcmd[0] = xstrdup(fcmd);
        tmp_fcmd[1] = NULL;
        *out_fcmd = tmp_fcmd;
        return TRUE;
     }else{
        /* must be either full path or just the cmd name */
        if (strchr(fcmd, '/')){
-           err = (char *) calloc((strlen(fcmd) +200) ,sizeof(char));
+           err = (char *) xcalloc((strlen(fcmd) +200) ,sizeof(char));
            sprintf(err,"Error: bad entry - %s in %s file, must be either full path or just the cmd name\n", fcmd, KRB5_USERS_NAME);
            *out_err = err;
            return FALSE;
        }
 
 #ifndef CMD_PATH
-       err = (char *) calloc(2*(strlen(fcmd) +200) ,sizeof(char));
+       err = (char *) xcalloc(2*(strlen(fcmd) +200) ,sizeof(char));
        sprintf(err,"Error: bad entry - %s in %s file, since %s is just the cmd name, CMD_PATH must be defined \n", fcmd, KRB5_USERS_NAME, fcmd);
        *out_err = err;
        return FALSE;
 #else
 
-       path = strdup (CMD_PATH);
+       path = xstrdup (CMD_PATH);
        path_ptr = path;
 
        while ((*path_ptr == ' ') || (*path_ptr == '\t')) path_ptr ++;
@@ -379,7 +375,7 @@ krb5_boolean fcmd_resolve(fcmd, out_fcmd, out_err)
        tc = get_first_token (path_ptr, &lp);
 
        if (! tc){
-           err = (char *) calloc((strlen(fcmd) +200) ,sizeof(char));
+           err = (char *) xcalloc((strlen(fcmd) +200) ,sizeof(char));
            sprintf(err,"Error: bad entry - %s in %s file, CMD_PATH contains no paths \n",  fcmd, KRB5_USERS_NAME);
            *out_err = err;
            return FALSE;
@@ -388,13 +384,13 @@ krb5_boolean fcmd_resolve(fcmd, out_fcmd, out_err)
        i=0;
        do{
            if (*tc != '/'){  /* must be full path */
-               err = (char *) calloc((strlen(tc) +200) ,sizeof(char));
+               err = (char *) xcalloc((strlen(tc) +200) ,sizeof(char));
                sprintf(err,"Error: bad path %s in CMD_PATH for %s must start with '/' \n",tc, KRB5_USERS_NAME );
                *out_err = err;
                return FALSE;
            }
 
-           out_path = (char *) calloc( MAXPATHLEN, sizeof (char));
+           out_path = (char *) xmalloc(strlen(tc) + strlen(fcmd) + 2);
            sprintf(out_path,"%s/%s",tc, fcmd );
 
            tmp_fcmd[i] = out_path;
@@ -502,7 +498,7 @@ krb5_boolean find_first_cmd_that_exists(fcmd_arr, cmd_out, err_out)
        tln = strlen(fcmd_arr[i]);
        if ( tln > max_ln) max_ln = tln;
        if (!stat (fcmd_arr[i], &st_temp )){
-           *cmd_out = strdup(fcmd_arr[i]);
+           *cmd_out = xstrdup(fcmd_arr[i]);
            retbool = TRUE;
            break;
        }
@@ -510,12 +506,14 @@ krb5_boolean find_first_cmd_that_exists(fcmd_arr, cmd_out, err_out)
     }
 
     if (retbool == FALSE ){
-       err = (char *) calloc((80 +max_ln*i) ,sizeof(char));
-       sprintf(err,"Error: not found -> ");
+       err = (char *) xmalloc((80 + (max_ln+2)*i) ,sizeof(char));
+       strcpy(err,"Error: not found -> ");
        for(j= 0; j < i; j ++){
-           sprintf(err,"%s %s ", err, fcmd_arr[j]);
+           strcat(err, " ");
+           strcat(err, fcmd_arr[j]);
+           strcat(err, " ");
        }
-       sprintf(err,"%s\n", err);
+       strcat(err, "\n");
        *err_out = err;
     }
 
@@ -562,7 +560,7 @@ int match_commands (fcmd, cmd, match, cmd_out, err_out)
     }else{
        if (!cmd_arr_cmp(fcmd_arr, cmd)){  /* found */
            *match = TRUE;
-           *cmd_out = strdup(cmd);
+           *cmd_out = xstrdup(cmd);
            return 0;
        } else{
            *match = FALSE;
@@ -586,7 +584,7 @@ krb5_error_code get_line (fp, out_line)
     char * line, *r, *newline , *line_ptr;
     int chunk_count = 1;
 
-    line = (char *) calloc (BUFSIZ, sizeof (char ));
+    line = (char *) xcalloc (BUFSIZ, sizeof (char ));
     line_ptr = line;
     line[0] = '\0';
 
@@ -687,27 +685,32 @@ char *  get_next_token (lnext)
     return out_ptr;
 }
 
-static void auth_cleanup(k5users_flag, users_fp, k5login_flag,
-                        login_fp, princname)
-    int k5users_flag;
+static void auth_cleanup(users_fp, login_fp, princname)
     FILE *users_fp;
-    int k5login_flag;
     FILE *login_fp;
     char *princname;
 {
 
     free (princname);
-    if (!k5users_flag) fclose(users_fp);
-    if (!k5login_flag) fclose(login_fp);
+    if (users_fp)
+       fclose(users_fp);
+    if (login_fp)
+       fclose(login_fp);
 }
 
 void init_auth_names(pw_dir)
     char *pw_dir;
 {
+    if (strlen (k5login_path) + 2 + strlen (KRB5_LOGIN_NAME) >= MAXPATHLEN) {
+       fprintf (stderr,
+                "home directory name `%s' too long, can't search for .k5login\n",
+                pw_dir);
+       exit (1);
+    }
     if ((strlen(pw_dir) == 1) && (*pw_dir == '/')){
        sprintf(k5login_path,"%s%s", pw_dir, KRB5_LOGIN_NAME);
        sprintf(k5users_path,"%s%s", pw_dir, KRB5_USERS_NAME);
-    }else{
+    } else {
        sprintf(k5login_path,"%s/%s", pw_dir, KRB5_LOGIN_NAME);
        sprintf(k5users_path,"%s/%s", pw_dir, KRB5_USERS_NAME);
     }
index 69975204e111c60c8b698180f674a9d3d0000b3c..be77456f5a8f57837751ca6eaa2cc281e76c1988 100644 (file)
@@ -64,7 +64,7 @@ krb5_creds ** cc_def_creds_arr = NULL;
 krb5_creds ** cc_other_creds_arr = NULL;
 struct stat st_temp;
 
-    cc_other = (krb5_ccache *)  calloc(1, sizeof (krb5_ccache));       
+    cc_other = (krb5_ccache *)  xcalloc(1, sizeof (krb5_ccache));      
 
     if ((retval = krb5_cc_resolve(context, cc_other_tag, cc_other))){
                com_err (prog_name, retval, "resolving ccache %s",
@@ -381,6 +381,10 @@ krb5_get_login_princ(luser, princ_list)
     if ((pwd = getpwnam(luser)) == NULL) {
        return 0;
     }
+    if (strlen(pwd->pw_dir) + sizeof("/.k5login") > MAXPATHLEN) {
+       fprintf (stderr, "home directory path for %s too long\n", luser);
+       exit (1);
+    }
     (void) strcpy(pbuf, pwd->pw_dir);
     (void) strcat(pbuf, "/.k5login");
 
@@ -655,7 +659,7 @@ krb5_creds ** cc_def_creds_arr = NULL;
 krb5_creds ** cc_other_creds_arr = NULL;
 struct stat st_temp;
 
-    cc_other = (krb5_ccache *)  calloc(1, sizeof (krb5_ccache));       
+    cc_other = (krb5_ccache *)  xcalloc(1, sizeof (krb5_ccache));      
 
     if ((retval = krb5_cc_resolve(context, cc_other_tag, cc_other))){
                com_err (prog_name, retval, "resolving ccache %s",
@@ -734,7 +738,7 @@ struct stat st_temp;
     if ( ! stat(cc_name, &st_temp)){
 
        if (auth_debug) {  
-             fprintf(stderr,"puting cache %s through a filter for -z option\n",                      cc_name);
+             fprintf(stderr,"putting cache %s through a filter for -z option\n",                     cc_name);
        }
 
        if ((retval = krb5_get_nonexp_tkts(context, cc, &cc_creds_arr))){
index 40858fb3ad684193f56227aefdd233b6303a9141..269c059f6bdbd89b3a5f785c14aca535c58ab8d6 100644 (file)
@@ -59,7 +59,7 @@ krb5_error_code get_all_princ_from_file (fp, plist)
        fprinc = get_first_token (line, &lp);
                
        if (fprinc ){
-           temp_list[count] = strdup(fprinc);
+           temp_list[count] = xstrdup(fprinc);
            count ++;
        }
 
@@ -451,7 +451,7 @@ krb5_error_code find_ticket (context, cc, client, server, found)
     if (retval= krb5_copy_principal(context,  server, &tgtq.server))
        return retval ;         
 
-    retval = krb5_cc_retrieve_cred(context, cc, KRB5_TC_MATCH_SRV_NAMEONLY,
+    retval = krb5_cc_retrieve_cred(context, cc, KRB5_TC_MATCH_SRV_NAMEONLY | KRB5_TC_SUPPORTED_KTYPES,
                                   &tgtq, &tgt);
 
     if (! retval) retval = krb5_check_exp(context, tgt.times);
index e5a489f911500018d11fa25d76c8ab12c4198d77..abc158c4b4fcf5cb9a83de133bd99d9425e369aa 100644 (file)
@@ -125,8 +125,9 @@ krb5_boolean zero_password;
        }       
 
        if (auth_debug){ dump_principal(context, "local tgt principal name", tgtq.server ); }   
-       retval = krb5_cc_retrieve_cred(context, cc, KRB5_TC_MATCH_SRV_NAMEONLY,
-                                       &tgtq, &tgt); 
+       retval = krb5_cc_retrieve_cred(context, cc,
+                                      KRB5_TC_MATCH_SRV_NAMEONLY | KRB5_TC_SUPPORTED_KTYPES,
+                                      &tgtq, &tgt); 
 
        if (! retval) retval = krb5_check_exp(context, tgt.times);
 
@@ -260,8 +261,9 @@ krb5_error_code retval;
                return (FALSE) ;        
        }
 
-       if ((retval = krb5_cc_retrieve_cred(context, cc, KRB5_TC_MATCH_SRV_NAMEONLY,
-                                         &tgtq, &tgt))){ 
+       if ((retval = krb5_cc_retrieve_cred(context, cc,
+                                           KRB5_TC_MATCH_SRV_NAMEONLY | KRB5_TC_SUPPORTED_KTYPES,
+                                           &tgtq, &tgt))){ 
                if (auth_debug)
                   com_err(prog_name, retval,"While Retrieving credentials"); 
                return (FALSE) ;        
@@ -442,8 +444,13 @@ krb5_boolean krb5_get_tkt_via_passwd (context, ccache, client, server,
     } else
        my_creds.times.renew_till = 0;
 
-
-        (void) sprintf(prompt,"Kerberos password for %s: ", (char *) client_name);
+        if (strlen (client_name) + 80 > sizeof (prompt)) {
+            fprintf (stderr,
+                     "principal name %s too long for internal buffer space\n",
+                     client_name);
+            return FALSE;
+        }
+        (void) sprintf(prompt,"Kerberos password for %s: ", client_name);
 
         pwsize = sizeof(password);
 
@@ -483,29 +490,26 @@ void dump_principal (context, str, p)
     krb5_context context;
     char *str;
     krb5_principal p;
-{    
-char * stname;
-krb5_error_code retval; 
+{
+    char * stname;
+    krb5_error_code retval; 
 
-               if ((retval = krb5_unparse_name(context, p, &stname))){
-                       fprintf(stderr," %s while unparsing name \n",
-                               error_message(retval));         
-               }
-               fprintf(stderr, " %s: %s\n", str, stname );
+    if ((retval = krb5_unparse_name(context, p, &stname))) {
+       fprintf(stderr, " %s while unparsing name\n", error_message(retval));
+    }
+    fprintf(stderr, " %s: %s\n", str, stname);
 }
 
 void plain_dump_principal (context, p)
     krb5_context context;
     krb5_principal p;
 {    
-char * stname;
-krb5_error_code retval; 
+    char * stname;
+    krb5_error_code retval; 
 
-               if ((retval = krb5_unparse_name(context, p, &stname))){
-                       fprintf(stderr," %s while unparsing name \n",
-                               error_message(retval));         
-               }
-               fprintf(stderr, "%s ",  stname );
+    if ((retval = krb5_unparse_name(context, p, &stname)))
+       fprintf(stderr, " %s while unparsing name\n", error_message(retval));
+    fprintf(stderr, "%s ", stname);
 }
 
 #if 0
index 2f6f9686d3ce1d890aa80c922c990efbea82c8ca..230c596514dd9ca893f3c37b31050eb8815b119e 100644 (file)
@@ -202,7 +202,7 @@ extern int standard_shell PROTOTYPE((char *));
 
 extern krb5_error_code get_params PROTOTYPE((int *, int, char **, char ***));
 
-extern char *get_dir_of_file PROTOTYPE((char *));
+extern char *get_dir_of_file PROTOTYPE((const char *));
 
 /* heuristic.c */
 extern krb5_error_code get_all_princ_from_file PROTOTYPE((FILE *, char ***));
@@ -241,4 +241,5 @@ extern krb5_error_code get_best_princ_for_target
 extern char *krb5_lname_file;  /* Note: print this out just be sure
                                  that it gets set */               
 
-
+extern void *xmalloc (), *xrealloc (), *xcalloc();
+extern char *xstrdup ();
index de7cef67dc49f06078b8a9dbb69dfdfdbf343393..bd7bbb85457598b6647429cae18f6c816a2a4864 100644 (file)
@@ -92,9 +92,9 @@ char * target_user = NULL;
 char * source_user;
 
 krb5_ccache cc_source = NULL;
-char * cc_source_tag = NULL; 
+const char * cc_source_tag = NULL; 
 uid_t source_gid, target_gid;
-char * cc_source_tag_tmp = NULL;
+const char * cc_source_tag_tmp = NULL;
 char * cc_target_tag_tmp=NULL; 
 char * cmd = NULL, * exec_cmd = NULL;
 int errflg = 0;
@@ -123,16 +123,17 @@ char * dir_of_cc_source;
     options.rlife =0; 
     options.princ =0;  
 
-    params = (char **) calloc (2, sizeof (char *));
+    params = (char **) xcalloc (2, sizeof (char *));
     params[1] = NULL;
 
 
-    retval = krb5_init_context(&ksu_context);
+    unsetenv ("KRB5_CONFIG");
+
+    retval = krb5_init_secure_context(&ksu_context);
     if (retval) {
         com_err(argv[0], retval, "while initializing krb5");
        exit(1);
     }
-    krb5_secure_config_files(ksu_context);
 
     if (strrchr(argv[0], '/'))
        argv[0] = strrchr(argv[0], '/')+1;
@@ -151,11 +152,11 @@ char * dir_of_cc_source;
 
       
     if (( argc == 1) || (argv[1][0] == '-')){
-                target_user = strdup("root");
+                target_user = xstrdup("root");
                 pargc = argc;
                 pargv = argv;
         } else {
-                target_user = strdup(argv[1]);
+                target_user = xstrdup(argv[1]);
                 pargc = argc -1;
 
                 if ((pargv =(char **) calloc(pargc +1,sizeof(char *)))==NULL){
@@ -172,10 +173,12 @@ char * dir_of_cc_source;
         }
 
 
-    while(!done && ((option = getopt(pargc, pargv,"n:c:C:r:a:zZDfpkql:e:")) != -1)){
+    while(!done && ((option = getopt(pargc, pargv,"n:c:r:a:zZDfpkql:e:")) != -1)){
        switch (option) {
        case 'r':
            options.opt |= KDC_OPT_RENEWABLE;
+           if (strlen (optarg) >= 14)
+               optarg = "bad-time";
            retval = krb5_string_to_deltat(optarg, &options.rlife);
            if (retval != 0 || options.rlife == 0) {
                fprintf(stderr, "Bad lifetime value (%s hours?)\n", optarg);
@@ -208,6 +211,8 @@ char * dir_of_cc_source;
            quiet =1;
            break;
         case 'l':
+           if (strlen (optarg) >= 14)
+               optarg = "bad-time";
            retval = krb5_string_to_deltat(optarg, &options.lifetime);
            if (retval != 0 || options.lifetime == 0) {
                fprintf(stderr, "Bad lifetime value (%s hours?)\n", optarg);
@@ -242,43 +247,9 @@ char * dir_of_cc_source;
                errflg++;
            }   
            break;      
-       case 'C':
-           if (cc_target_tag == NULL) {
-               cc_target_tag = strdup(optarg);
-
-               if ((strlen(cc_target_tag) == 1) &&
-                       (*cc_target_tag == NO_TARGET_FILE)){
-                       use_source_cache = 1; 
-                       if(some_rest_copy || all_rest_copy){    
-                          fprintf(stderr, 
-                          "-C . option is mutually exclusive with -z and -Z\n"); 
-                          errflg++;
-                       }       
-               }
-               else {
-                       if ( strchr(cc_target_tag, ':')){
-                               cc_target_tag_tmp=strchr(cc_target_tag,':') + 1;
-                               if(!stat(cc_target_tag_tmp, &st_temp )){
-                                       fprintf(stderr,"File %s exists\n",
-                                               cc_target_tag_tmp);     
-                                       errflg++;
-                               }
-                       }
-                       else { 
-                               fprintf(stderr,
-                                       "malformed credential cache name %s\n",
-                                       cc_target_tag); 
-                               errflg++;
-                       }
-               }
-           } else {
-               fprintf(stderr, "Only one -C option allowed\n");
-               errflg++;
-           }
-           break;
        case 'c':
            if (cc_source_tag == NULL) {
-               cc_source_tag = strdup(optarg);
+               cc_source_tag = xstrdup(optarg);
                if ( strchr(cc_source_tag, ':')){
                        cc_source_tag_tmp = strchr(cc_source_tag, ':') + 1;
 
@@ -301,7 +272,7 @@ char * dir_of_cc_source;
            }
            break;
        case 'e': 
-           cmd = strdup(optarg);
+           cmd = xstrdup(optarg);
             if(auth_debug){printf("Before get_params optind=%d\n", optind);}
             if ((retval = get_params( & optind, pargc, pargv, &params))){
                 com_err(prog_name, retval, "when gathering parameters");
@@ -354,13 +325,13 @@ char * dir_of_cc_source;
        }
 
        /* allocate space and copy the usernamane there */        
-       source_user = strdup(pwd->pw_name);
+       source_user = xstrdup(pwd->pw_name);
        source_uid = pwd->pw_uid;
        source_gid = pwd->pw_gid;
 
 
        if (!strcmp(SOURCE_USER_LOGIN, target_user)){
-               target_user = strdup (source_user);                     
+               target_user = xstrdup (source_user);                    
        }
 
        if ((target_pwd = getpwnam(target_user)) == NULL){ 
@@ -376,9 +347,11 @@ char * dir_of_cc_source;
 
        if (cc_source_tag == NULL){
                cc_source_tag = krb5_cc_default_name(ksu_context);
-               cc_source_tag_tmp = strchr(cc_source_tag, ':') + 1;
-               if (cc_source_tag_tmp == (char *) 1) 
+               cc_source_tag_tmp = strchr(cc_source_tag, ':');
+               if (cc_source_tag_tmp == 0)
                        cc_source_tag_tmp = cc_source_tag;
+               else
+                       cc_source_tag_tmp++;
        }
        if (krb5_seteuid(source_uid)) {
          com_err ( prog_name, errno, "while setting euid to source user");
@@ -457,15 +430,16 @@ char * dir_of_cc_source;
 
        if (cc_target_tag == NULL) {
 
-               cc_target_tag = (char *)calloc(KRB5_SEC_BUFFSIZE ,sizeof(char));
+               cc_target_tag = (char *)xcalloc(KRB5_SEC_BUFFSIZE ,sizeof(char));
                /* make sure that the new ticket file does not already exist
                   This is run as source_uid because it is reasonable to
                   require the source user to have write to where the target
                   cache will be created.*/
                
                do {
-                       sprintf(cc_target_tag, "%s%d.%d", KRB5_SECONDARY_CACHE,
-                               target_uid, gen_sym());
+                       sprintf(cc_target_tag, "%s%ld.%d",
+                               KRB5_SECONDARY_CACHE,
+                               (long) target_uid, gen_sym());
                        cc_target_tag_tmp = strchr(cc_target_tag, ':') + 1;
 
                }while ( !stat ( cc_target_tag_tmp, &st_temp)); 
@@ -528,8 +502,8 @@ char * dir_of_cc_source;
        }
        else{
                cc_target = cc_source;
-               cc_target_tag = cc_source_tag;
-               cc_target_tag_tmp = cc_source_tag_tmp;
+               cc_target_tag = (char *) cc_source_tag;
+               cc_target_tag_tmp = (char *) cc_source_tag_tmp;
 
                if ((retval=krb5_find_princ_in_cache(ksu_context, cc_target,client, &stored))){
                                com_err (prog_name, retval, 
@@ -640,7 +614,7 @@ char * dir_of_cc_source;
 
                /* Run authorization as target.*/
                if (krb5_seteuid(target_uid)) {
-                 com_err(prog_name, errno, "whiel switching to target for authorization check");
+                 com_err(prog_name, errno, "while switching to target for authorization check");
                    sweep_up(ksu_context, use_source_cache, cc_target);
                  exit(1);
                }
@@ -726,7 +700,7 @@ krb5_seteuid(0); /*So we have some chance of sweeping up*/
        target_pwd = getpwnam(target_user);
 
        if (target_pwd->pw_shell)
-               shell = strdup(target_pwd->pw_shell);
+               shell = xstrdup(target_pwd->pw_shell);
        else {
                shell = _DEF_CSH;  /* default is cshell */   
        }
@@ -806,7 +780,7 @@ krb5_seteuid(0); /*So we have some chance of sweeping up*/
         * with C2 enabled.
         */
        if (setluid((uid_t) pwd->pw_uid) < 0) {
-               perror("setuid");
+               perror("setluid");
                sweep_up(ksu_context, use_source_cache, cc_target);
                exit(1);
        }
@@ -860,7 +834,7 @@ krb5_seteuid(0); /*So we have some chance of sweeping up*/
        switch ((child_pid = fork())) {
        default:
            if (auth_debug){
-               printf(" The child pid is %d\n", child_pid);
+               printf(" The child pid is %ld\n", (long) child_pid);
                printf(" The parent pid is %d\n", getpid());
            }
             while ((ret_pid = waitpid(child_pid, &statusp, WUNTRACED)) != -1) {
@@ -916,8 +890,13 @@ char *p, *ttyname();
 static char buf[MAXPATHLEN + 4];
 
        buf[0] = 0;
-       if ((p = ttyname(STDERR_FILENO)))
+       if ((p = ttyname(STDERR_FILENO))) {
+          if (strlen (p) > MAXPATHLEN) {
+              fprintf (stderr, "terminal name %s too long\n", p);
+              exit (1);
+          }
           sprintf(buf, " on %s", p);
+       }
        return (buf);
 }
 
@@ -929,7 +908,7 @@ static int set_env_var(name, value)
 char * env_var_buf;
 
        /* allocate extra two spaces, one for the = and one for the \0 */  
-       env_var_buf = (char *) calloc(2 + strlen(name) + strlen(value),
+       env_var_buf = (char *) xcalloc(2 + strlen(name) + strlen(value),
                                        sizeof(char)); 
 
         sprintf(env_var_buf,"%s=%s",name, value);  
@@ -1021,18 +1000,18 @@ void print_status (va_alist)
 
 
 char *get_dir_of_file(path)
-    char *path;
+    const char *path;
 {
     char * temp_path;      
     char * ptr;
 
-    temp_path =  strdup(path);
+    temp_path =  xstrdup(path);
 
     if ((ptr = strrchr( temp_path, '/'))) {
        *ptr = '\0';  
     } else {
        free (temp_path);
-       temp_path = malloc(MAXPATHLEN);
+       temp_path = xmalloc(MAXPATHLEN);
        if (temp_path)
            getcwd(temp_path, MAXPATHLEN);
     }
diff --git a/src/clients/ksu/setenv.c b/src/clients/ksu/setenv.c
new file mode 100644 (file)
index 0000000..96d4a1e
--- /dev/null
@@ -0,0 +1,158 @@
+/*
+ * Copyright (c) 1987 Regents of the University of California.
+ * 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 the University of California, Berkeley.  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.
+ */
+
+/* based on @(#)setenv.c       5.2 (Berkeley) 6/27/88 */
+
+#include <sys/types.h>
+#include <stdio.h>
+
+/*
+ * setenv --
+ *     Set the value of the environmental variable "name" to be
+ *     "value".  If rewrite is set, replace any current value.
+ */
+setenv(name, value, rewrite)
+       register char *name, *value;
+       int rewrite;
+{
+       extern char **environ;
+       static int alloced;                     /* if allocated space before */
+       register char *C;
+       int l_value, offset;
+       char *malloc(), *realloc(), *_findenv();
+
+       if (*value == '=')                      /* no `=' in value */
+               ++value;
+       l_value = strlen(value);
+       if ((C = _findenv(name, &offset))) {    /* find if already exists */
+               if (!rewrite)
+                       return(0);
+               if (strlen(C) >= l_value) {     /* old larger; copy over */
+                       while (*C++ = *value++);
+                       return(0);
+               }
+       }
+       else {                                  /* create new slot */
+               register int    cnt;
+               register char   **P;
+
+               for (P = environ, cnt = 0; *P; ++P, ++cnt);
+               if (alloced) {                  /* just increase size */
+                       environ = (char **)realloc((char *)environ,
+                           (u_int)(sizeof(char *) * (cnt + 2)));
+                       if (!environ)
+                               return(-1);
+               }
+               else {                          /* get new space */
+                       alloced = 1;            /* copy old entries into it */
+                       P = (char **)malloc((u_int)(sizeof(char *) *
+                           (cnt + 2)));
+                       if (!P)
+                               return(-1);
+                       memcpy(P, environ, cnt * sizeof(char *));
+                       environ = P;
+               }
+               environ[cnt + 1] = NULL;
+               offset = cnt;
+       }
+       for (C = name; *C && *C != '='; ++C);   /* no `=' in name */
+       if (!(environ[offset] =                 /* name + `=' + value */
+           malloc((u_int)((int)(C - name) + l_value + 2))))
+               return(-1);
+       for (C = environ[offset]; (*C = *name++) &&( *C != '='); ++C);
+       for (*C++ = '='; *C++ = *value++;);
+       return(0);
+}
+
+/*
+ * unsetenv(name) --
+ *     Delete environmental variable "name".
+ */
+void
+unsetenv(name)
+       char    *name;
+{
+       extern  char    **environ;
+       register char   **P;
+       int     offset;
+       char    *_findenv();
+
+       while (_findenv(name, &offset))         /* if set multiple times */
+               for (P = &environ[offset];; ++P)
+                       if (!(*P = *(P + 1)))
+                               break;
+}
+/*
+ * Copyright (c) 1987 Regents of the University of California.
+ * 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 the University of California, Berkeley.  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.
+ */
+
+/* based on @(#)getenv.c       5.5 (Berkeley) 6/27/88 */
+
+/*
+ * getenv --
+ *     Returns ptr to value associated with name, if any, else NULL.
+ */
+char *
+getenv(name)
+       char *name;
+{
+       int offset;
+       char *_findenv();
+
+       return(_findenv(name, &offset));
+}
+
+/*
+ * _findenv --
+ *     Returns pointer to value associated with name, if any, else NULL.
+ *     Sets offset to be the offset of the name/value combination in the
+ *     environmental array, for use by setenv(3) and unsetenv(3).
+ *     Explicitly removes '=' in argument name.
+ *
+ *     This routine *should* be a static; don't use it.
+ */
+char *
+_findenv(name, offset)
+       register char *name;
+       int *offset;
+{
+       extern char **environ;
+       register int len;
+       register char **P, *C;
+
+       for (C = name, len = 0; *C && *C != '='; ++C, ++len);
+       for (P = environ; *P; ++P)
+               if (!strncmp(*P, name, len))
+                       if (*(C = *P + len) == '=') {
+                               *offset = P - environ;
+                               return(++C);
+                       }
+       return(NULL);
+}
diff --git a/src/clients/ksu/xmalloc.c b/src/clients/ksu/xmalloc.c
new file mode 100644 (file)
index 0000000..425b44f
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ * clients/ksu/xmalloc.c
+ *
+ * Copyright 1999 by the Massachusetts Institute of Technology.
+ * All Rights Reserved.
+ *
+ * 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.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
+ * 
+ *
+ * Perform simple allocation/copy operations, exiting on failure.
+ */
+
+#include "ksu.h"
+
+void *xmalloc (size_t sz)
+{
+    void *ret = malloc (sz);
+    if (ret == 0 && sz != 0) {
+       perror (prog_name);
+       exit (1);
+    }
+    return ret;
+}
+
+void *xrealloc (void *old, size_t newsz)
+{
+    void *ret = realloc (old, newsz);
+    if (ret == 0 && newsz != 0) {
+       perror (prog_name);
+       exit (1);
+    }
+    return ret;
+}
+
+void *xcalloc (size_t nelts, size_t eltsz)
+{
+    void *ret = calloc (nelts, eltsz);
+    if (ret == 0 && nelts != 0 && eltsz != 0) {
+       perror (prog_name);
+       exit (1);
+    }
+    return ret;
+}
+
+char *xstrdup (const char *src)
+{
+    size_t len = strlen (src) + 1;
+    char *dst = xmalloc (len);
+    memcpy (dst, src, len);
+    return dst;
+}
index 2bd51c0d0420d1e899c6472d03ea4166bbbe0485..c4aed766af7636f45fd81c1c278c605add2c3b4e 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 080e75af95c1563fd7dba13ffdaf6b70a58fd458..fdd4716b5c21a56f62c8c43b69aa18749d28b520 100644 (file)
@@ -4,7 +4,6 @@ mydir=kvno
 BUILDTOP=$(REL)$(U)$(S)$(U)
 ##DOS##BUILDTOP=..\..
 
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
@@ -17,7 +16,8 @@ kvno: kvno.o $(KRB5_BASE_DEPLIBS)
 
 
 ##WIN32##INCLUDES = /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5
-##WIN32##CFLAGS        = $(CCOPTS2) $(INCLUDES)
+##WIN32##CFLAGS        = $(CCOPTS2)
+##WIN32##CPPFLAGS = $(INCLUDES)
 
 ##WIN32##all-windows:: kvno.exe
 ##WIN32##kvno.exe: kvno.obj $(BUILDTOP)\util\windows\getopt.obj $(KLIB) $(CLIB)
index 318e5cea705d5ec5c10db05ade6feb059f29fb0a..81ce6047ac61cb39f521e04a053329ba1574bee1 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\"
index f9f3f3d91e058ee8fad55d5972b80004956669f6..143601e7a11679d2c97ca7f676d83535daf14877 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" "
index 22bc43380bfae6314b2ac020053fd291909c8345..d061870e0767c04137e480d5cf5fdf16c9b6b3f6 100644 (file)
@@ -1,3 +1,42 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * win-pre.in: Update Windows build to work with 10/26/99 change.
+       The only difference between EXE and DLL builds are the
+       DLL_LINKOPTS and EXE_LINKOPTS linker options.  All C flags are the
+       same.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-14  Danilo Almeida  <dalmeida@mit.edu>
+
+       * win-pre.in: Fix DNS error messages to wshelper instead of
+       version server.
+
+1999-09-08  Danilo Almeida  <dalmeida@mit.edu>
+
+       * win-pre.in: Fix DNS flags it does not try to depend on mit dir.
+       Define NULL so we can do directory existence checks via the shell
+       under both NT and 9x.
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * config.guess: Recognize Rhapsody OS.
+       * config.sub: Recognize OS name "rhapsody*".
+
+1999-08-17  Ken Raeburn  <raeburn@mit.edu>
+
+       * post.in (*-recurse): If an error occurs when using -k, report an
+       error after finishing all the subdirectories.
+
+1999-08-13  Brad Thompson  <yak@mit.edu>
+
+       * config.sub: Now recognizes MacOS 10 as a valid OS.
+
 1999-07-30  Ken Raeburn  <raeburn@mit.edu>
 
        * config.guess: Add MacOS 10 support.  (Submitted to autoconf
index c4cdae72f49299c3514e4ca628f0c23371dec63f..98fea7b84bf43ec0005569c26068e960e3f3d70d 100644 (file)
@@ -810,6 +810,19 @@ EOF
     BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
        echo i586-pc-beos
        exit 0 ;;
+# MIT addition
+    Power\ Macintosh:Rhapsody:*:*)
+       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+# MIT addition
+    powerpc:Rhapsody:*:*)
+       echo powerpc-unknown-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+# MIT addition
+    i?86:Rhapsody:*:*)
+       echo i386-unknown-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+# MIT addition
     Power\ Macintosh:Mac\ OS:*:*)
        echo powerpc-apple-macos${UNAME_RELEASE}
        exit 0 ;;
index 00bea6e6aaf93fb77bd94582dd3046d99f6dcbdc..99526342468c512740717806a30f2353393c0e74 100644 (file)
@@ -714,7 +714,7 @@ case $os in
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -uxpv* | -beos*)
+             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -macos* | -rhapsody*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -linux*)
index e2cf59572d0413bd84cdee09e05705ef7dc48434..f8af821c0f6208bd20e91b85748a4f9f214c6cfa 100644 (file)
@@ -27,14 +27,12 @@ SONAME=@SONAME@
 #
 PICFLAGS=@PICFLAGS@
 PROFFLAGS=@PROFFLAGS@
-.SUFFIXES: .c .o .so .po
-.c.o:
-       $(CC) $(CFLAGS) -c $<
+.SUFFIXES: .c .so .po
 .c.so:
-       $(CC) $(PICFLAGS) $(CFLAGS) -c $< -o $*.so.o && \
+       $(CC) $(DEFS) $(DEFINES) $(LOCALINCLUDES) $(PICFLAGS) $(CPPFLAGS) -c $< -o $*.so.o && \
                $(MV) $*.so.o $*.so
 .c.po:
-       $(CC) $(PROFFLAGS) $(CFLAGS) -c $< -o $*.po.o && \
+       $(CC) $(DEFS) $(DEFINES) $(LOCALINCLUDES) $(PROFFLAGS) $(CPPFLAGS) -c $< -o $*.po.o && \
                $(MV) $*.po.o $*.po
 
 # rules to generate object file lists
index 82bf72882eb9669044102db3efb3dc6af142aaf6..79b734baeb1bc5b87ae04c058e5d7d087aef9695 100644 (file)
@@ -4,7 +4,7 @@ check-windows::
 
 .depend: $(SRCS) $(SRCTOP)/util/depfix.sed
        if test -n "$(SRCS)" ; then \
-               $(CC) -M $(CFLAGS) $(SRCS) | \
+               $(CC) -M $(ALL_CFLAGS) $(SRCS) | \
                        sed -f $(SRCTOP)/util/depfix.sed | \
                        sed -e 's; $(SRCTOP)/; $$(SRCTOP)/;g' | \
                        sed -e 's; $(srcdir)/; $$(srcdir)/;g' | \
@@ -54,12 +54,13 @@ $(srcdir)/$(thisconfigdir)/configure: $(srcdir)/$(thisconfigdir)/configure.in \
 
 all-recurse clean-recurse distclean-recurse install-recurse check-recurse Makefiles-recurse:
        @case "`echo 'x$(MFLAGS)'|sed -e 's/^x//' -e 's/ --.*$$//'`" \
-               in *[ik]*) e=:;; *) e="exit 1";; esac; \
+               in *[ik]*) e="status=1" ;; *) e="exit 1";; esac; \
        if test -z "$(MY_SUBDIRS)" ; then \
                do_subdirs="$(SUBDIRS)" ; \
        else \
                do_subdirs="$(MY_SUBDIRS)" ; \
        fi; \
+       status=0; \
        if test -n "$$do_subdirs" && test -z "$(NORECURSE)"; then \
        for i in $$do_subdirs ; do \
                if test -d $$i ; then \
@@ -68,7 +69,7 @@ all-recurse clean-recurse distclean-recurse install-recurse check-recurse Makefi
                        echo "making $$target in $(CURRENT_DIR)$$i..."; \
                        if (cd $$i ; $(MAKE) CC="$(CC)" CCOPTS="$(CCOPTS)" \
                            CURRENT_DIR=$(CURRENT_DIR)$$i/ $$target) then :; \
-                       else $$e; fi; \
+                       else eval $$e; fi; \
                        ;; \
                esac; \
                else \
@@ -76,4 +77,5 @@ all-recurse clean-recurse distclean-recurse install-recurse check-recurse Makefi
                fi; \
        done; \
        else :; \
-       fi
+       fi;\
+       exit $$status
index b8d565ffdd1ccd0e2c4987774413f6b0a2644cd1..45fb6d9ad10b92bca26922c0c76cc8663e21ceb5 100644 (file)
@@ -70,11 +70,12 @@ SRCTOP = @srcdir@/$(BUILDTOP)
 VPATH = @srcdir@
 CONFIG_RELTOPDIR = @CONFIG_RELTOPDIR@
 
+ALL_CFLAGS = $(DEFS) $(DEFINES) $(LOCALINCLUDES) $(CPPFLAGS) $(CFLAGS)
+CFLAGS = @CCOPTS@
 CPPFLAGS = @CPPFLAGS@
-DEFS = @DEFS@ $(CPPFLAGS)
+DEFS = @DEFS@
 CC = @CC@
 LD = $(PURE) @LD@
-CCOPTS = @CCOPTS@
 DEPLIBS = @DEPLIBS@
 LDFLAGS = @LDFLAGS@
 LD_UNRESOLVED_PREFIX = @LD_UNRESOLVED_PREFIX@
@@ -284,6 +285,12 @@ COMPILE_ET_C= $(AWK) -f $(SRCTOP)/util/et/et_c.awk outfile=$@
 .et.c:
        $(AWK) -f $(SRCTOP)/util/et/et_c.awk outfile=$*.c $<
 
+# rule to make object files
+#
+.SUFFIXES: .c .o
+.c.o:
+       $(CC) $(ALL_CFLAGS) -c $<
+
 # ss command table rules
 #
 MAKE_COMMANDS= $(BUILDTOP)/util/ss/mk_cmds
index 8ed8a5175c41ee87228d88aaf035543567554405..73fdb2efad939e3846f2c4c3e848a01e45cb56cd 100644 (file)
@@ -38,6 +38,11 @@ CPU=i386
 # End of figuring out CPU
 #
 
+!if "$(OS)" == "Windows_NT"
+NULL=
+!else 
+NULL=nul
+!endif
 
 # NOTE: ^ is an escape char for NMAKE.
 !ifdef NODEBUG
@@ -78,13 +83,31 @@ C=.^\
 srcdir = .
 SRCTOP = $(srcdir)\$(BUILDTOP)
 
+!if defined(KRB5_USE_DNS)
+!if !defined(DNS_INC)
+!message Must define DNS_INC to point to wshelper includes dir!
+!error
+!endif
+!if !defined(DNS_LIB)
+!message Must define DNS_LIB to point to wshelper library!
+!error
+!endif
+DNSLIBS=$(DNS_LIB)
+DNSFLAGS=-I$(DNS_INC) -DKRB5_DNS_LOOKUP -DWSHELPER
+!else
+DNSLIBS=
+DNSFLAGS=
+!endif
+
 #
 # The name of the C compiler for the target
 #
-CC=cl /nologo
-CL=
+CC=cl
 
 PDB_OPTS=-Fd$(OUTPRE)\ -FD
+CPPFLAGS=-I$(SRCTOP)\include -I$(SRCTOP)\include\krb5 $(DNSFLAGS)
+CCOPTS=-nologo /W3 $(PDB_OPTS) $(DLL_FILE_DEF)
+LOPTS=-nologo -incremental:no
 
 # /ZI gives better debug info in each object file (MSVC 6.0 or higher).
 # /Zi gives debug info in each object file.
@@ -94,32 +117,20 @@ PDB_OPTS=-Fd$(OUTPRE)\ -FD
 # /MD (Win32) thread safe, ML would be single threaded, don't build with ML
 
 #
-# CCOPTS  is for DLL compiles
-# CCOPTS2 is for non-DLL compiles (EXEs, for example)
+# CCOPTS  was for DLL compiles
+# CCOPTS2 was for non-DLL compiles (EXEs, for example)
 #
 !ifdef NODEBUG
-CCOPTS =/Os /W3 /MD $(PDB_OPTS) $(XTRA) $(DLL_FILE_DEF)
-CCOPTS2=/Os /W3 $(PDB_OPTS) $(XTRA)
-LOPTS=
+CCOPTS=/Os /MD $(CCOPTS)
+LOPTS=$(LOPTS)
 !else
-CCOPTS =/Od /ZI /W3 /MD $(PDB_OPTS) $(XTRA) $(DLL_FILE_DEF)
-CCOPTS2=/Od /ZI /W3 $(PDB_OPTS) $(XTRA)
-LOPTS=-debug
+CCOPTS=/Od /ZI /MDd $(CCOPTS)
+LOPTS=$(LOPTS) -debug
 !endif
 
 # XXX - NOTE: We should probably use DllMainCRTStartup
-LINKOPTS=-incremental:no $(LOPTS) -nologo -dll -entry:DllMain
-LINKOPTS2=-incremental:no $(LOPTS) -nologo
-
-!if defined(KRB5_USE_DNS) 
-DNSFLAGS= -DKRB5_DNS_LOOKUP -DWSHELPER
-!else
-DNSFLAGS=
-!endif
-
-CPPFLAGS =  -I$(SRCTOP)\include -I$(SRCTOP)\include\krb5 -I$(SRCTOP)\mit\windows\include $(DNSFLAGS)
-DEFS = $(CPPFLAGS)
-CFLAGS2 = $(CCOPTS2) $(DEFS)
+DLL_LINKOPTS=$(LOPTS) -dll -entry:DllMain
+EXE_LINKOPTS=$(LOPTS)
 
 RM=$(BUILDTOP)\config\rm.bat
 LIBECHO=$(BUILDTOP)\util\windows\$(OUTPRE)libecho
@@ -155,17 +166,20 @@ MFLAGS=$(MAKEFLAGS)
 MAKE=-$(MAKE)
 !endif
 
+CFLAGS = $(CCOPTS)
+ALL_CFLAGS = $(DEFS) $(DEFINES) $(LOCALINCLUDES) $(CPPFLAGS) $(CFLAGS)
+
 {}.rc{$(OUTPRE)}.res:
        $(RC) $(RCFLAGS) -fo $@ -r $<
 
 {}.c{$(OUTPRE)}.obj:
-       $(CC) $(CFLAGS) -Fo$(OUTPRE)\ -c $<
+       $(CC) $(ALL_CFLAGS) -Fo$(OUTPRE)\ -c $<
 
 {}.cxx{$(OUTPRE)}.obj:
-       $(CC) $(CFLAGS) -Fo$(OUTPRE)\ -c $<
+       $(CC) $(ALL_CFLAGS) -Fo$(OUTPRE)\ -c $<
 
 {}.cpp{$(OUTPRE)}.obj:
-       $(CC) $(CFLAGS) -Fo$(OUTPRE)\ -c $<
+       $(CC) $(ALL_CFLAGS) -Fo$(OUTPRE)\ -c $<
 
 #
 # End of Win32 pre-config lines (config/win-pre.in)
index 2eabec10075599ae0e1381e03ed7ddf5cd25d8d0..d6c621dc76d5c13595d8cf9a2c08c46e4ef5170a 100644 (file)
@@ -1,3 +1,56 @@
+1999-11-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * krb5.hin (krb5_init_secure_context): Declare.
+
+1999-09-08  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in (install): Install port-sockets.h, needed by
+       kerberosIV/krb.h.
+
+1999-08-31  Jeffrey Altman <jaltman@columbia.edu>
+
+    * k5-int.h:  Add #define ANSI_STDIO for Windows builds so that 
+                 stdio opens files in binary mode instead of text
+                 mode.  This is necessary for Ctrl-Z transparency.
+
+1999-08-30  Ken Raeburn  <raeburn@mit.edu>
+
+       * configure.in: Check for memmove and bcopy.
+
+       * Makefile.in (install): Install profile.h since krb5.h will use
+       it.
+
+1999-08-26  Danilo Almeida  <dalmeida@mit.edu>
+
+       * krb5.hin (krb5_kuserok): Fix calling convention to make it
+       consistent with rest of krb5 exports before we start exporting 
+       this from the Windows DLL.
+
+1999-08-25  Danilo Almeida  <dalmeida@mit.edu>
+
+       * k5-int.h (krb5_cc_retrieve_cred_default): Fix calling convention
+       to make it consistent with actual calling convention.
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * krb5.hin (KRB5_TC_SUPPORTED_KTYPES): New flag.
+       * k5-int.h (krb5_cc_retrieve_cred_default): Declare.
+
+1999-08-18  Tom Yu  <tlyu@mit.edu>
+
+       * krb5.hin: Re-align des3-cbc-sha1 and hmac-sha1-des3 to agree
+       with new number assignments; also rename symbols a little bit.
+
+1999-08-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * win-mac.h: Define MAXPATHLEN only if not already defined.  This
+       avoids warnings under Windows.
+
+1999-08-04  Danilo Almeida  <dalmeida@mit.edu>
+
+       * k5-int.h: Keep invariant that profile_in_memory member of context
+       is only sensible if KRB5_DNS_LOOKUP is defined.
+
 1999-08-03  Ken Raeburn  <raeburn@mit.edu>
 
        * krb5.hin: Wrap all declarations in `extern "C"' for C++, not
index db023fc692cc9c42a32e92063c3686b7a3171c1b..e77a99168aa9317e3b8908c8bcc867a0394537a3 100644 (file)
@@ -69,5 +69,8 @@ clean-windows::
        cd ..
        @echo Making clean in include
 
-install:: krb5.h
+install:: krb5.h profile.h
        $(INSTALL_DATA) krb5.h $(DESTDIR)$(KRB5_INCDIR)$(S)krb5.h
+       $(INSTALL_DATA) profile.h $(DESTDIR)$(KRB5_INCDIR)$(S)profile.h
+       $(INSTALL_DATA) $(srcdir)/port-sockets.h \
+               $(DESTDIR)$(KRB5_INCDIR)$(S)port-sockets.h
index 8a4c03d158f23c1ebafe6f2785372c59b6af080f..c99448ecf264e9e64e3eb8dbd826f71f1617c706 100644 (file)
@@ -5,7 +5,7 @@ AC_PROG_INSTALL
 AC_PROG_AWK
 AC_PROG_LEX
 AC_CONST
-AC_CHECK_FUNCS(strdup labs setvbuf)
+AC_CHECK_FUNCS(strdup labs setvbuf memmove bcopy)
 HAVE_YYLINENO
 CHECK_DIRENT
 AC_TYPE_UID_T
index 2f7fb7f4f2bc9cb8e9bd61cb163516b8dd5d8844..303a5b5441c28487aea6446f5e3626ef63603942 100644 (file)
  * be used in advertising or publicity pertaining to distribution of the 
  * software.  Title to copyright in this software and any associated 
  * documentation shall at all times remain with M.I.T., and USER agrees to 
- * preserve same.  
+ * preserve same.
+ *
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.  
  */
 
 /*
 #define INI_KRB_CCACHE "krb5cc"        /* Location of the ccache */
 #define INI_KRB5_CONF  "krb5.ini"      /* Location of krb5.conf file */
 #define HAVE_LABS
+#define ANSI_STDIO
 #endif
 
 
@@ -990,7 +995,9 @@ struct _krb5_context {
        krb5_boolean    profile_secure;
        int             fcc_default_format;
        int             scc_default_format;
+#ifdef KRB5_DNS_LOOKUP
         krb5_boolean    profile_in_memory;
+#endif /* KRB5_DNS_LOOKUP */
 };
 
 /* could be used in a table to find an etype and initialize a block */
@@ -1472,6 +1479,11 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_ser_unpack_bytes
                krb5_octet FAR * FAR *,
                size_t FAR *));
 
+
+krb5_error_code KRB5_CALLCONV krb5_cc_retrieve_cred_default
+       KRB5_PROTOTYPE((krb5_context, krb5_ccache, krb5_flags,
+                       krb5_creds *, krb5_creds *));
+
 #if defined(macintosh) && defined(__CFM68K__) && !defined(__USING_STATIC_LIBS__)
 #pragma import reset
 #endif
index 643b936d2b70c14c7748cf3029cea39a2629ddbe..f245dcb6e586b38f1c654e957c8ce3dd31175268 100644 (file)
  * be used in advertising or publicity pertaining to distribution of the 
  * software.  Title to copyright in this software and any associated 
  * documentation shall at all times remain with M.I.T., and USER agrees to 
- * preserve same.  
+ * preserve same.
+ *
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.  
  */
 
 /*
index b4ebcd33e85452475fbd5147ebee96223a13e679..ccf3a8d05f7a83978fdb74dadd96c23d47388fff 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a50c1b918e3fdd5e360013a4d73eb581d35798f8..3da4155188e2a11d692f1742d7d8146e706b7b8b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b9a69d5d8c90989b829beac94e05f09e4ec76ef6..86556083c552a8afb1d3be436beb96320763141a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a7ee8820ad55510c0e28d30ba0eab5c59353460c..c45a85502b4ea9ab6abfe79dabc5773d5a81f96c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 35c29d1b8f81071732ebad1b48b0c3dc49ca0b37..e3f47c059514055cddfb8f473b36eba83347774f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6a9804eaf82a213350cf4a47af0ae2785c25a5c8..095420c28fc643fbdafa29fa247f19baa53592bc 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0d9f0ce07178dd16b72f95ed6e7209e92930385f..a7e1afb0b602e168cfc983b9178c20d90c185d53 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 839f4b90a8c227e7a568e2971d5a1f639e4fc73f..3562565bec062f71ddd3cc3182b854a7ca356fd6 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f18f42a04e70f1f46fa96f33b5f5d07f236b1ce8..fe8830be47ed4642ee3f75d9353427cce36de099 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d57bcb4b46e0e591dd8fb733f387c099262cf315..3edeaf9413dd242e54642aefb625748acea7aaab 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index dc2265d96066f0eb2e3ea4b4758970b13a860204..3e3b1dda6a502ccb316e7023e5f9de8f5c0d63e2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 380d7bc756da01b0008503311f9b2a99a4d5e42c..e008657699c6856a711fd8a43d8e09a2d94fcacc 100644 (file)
@@ -6,14 +6,17 @@
    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
+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
+permission.  Furthermore if you modify this software you must label
+your software as modified software and not distribute it in such a
+fashion that it might be confused with the original M.I.T. software.
+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.
 
index fb2ac3e9fe2e14c89be55ced77f4cf2f3d6c58e7..e0a32c54ca111d3bf2859d06fd7513928e4328de 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d220130cfcaf9cd778f5e127f4eea13101a13dac..2960870be41fb2fd32ef4e62bdf3597d1a678b8f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d051be3fb490bd01425971129014883a0528b1f4..4e365b4b232401dcbbf994db1595b5f44a4c2d27 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0f4836a0b5845a896eccf25a8f68c6ce62bcb9fa..4fa3bd84b8b277fc8baac72112dc36a202fa0ba3 100644 (file)
  * 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
+ * permission. Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -363,8 +366,8 @@ typedef struct _krb5_enc_data {
 /* XXX deprecated? */
 #define        ENCTYPE_DES3_CBC_SHA    0x0005  /* DES-3 cbc mode with NIST-SHA */
 #define        ENCTYPE_DES3_CBC_RAW    0x0006  /* DES-3 cbc mode raw */
-#define ENCTYPE_DES3_HMAC_SHA1 0x0007
 #define ENCTYPE_DES_HMAC_SHA1  0x0008
+#define ENCTYPE_DES3_CBC_SHA1  0x0010
 #define ENCTYPE_UNKNOWN                0x01ff
 /* local crud */
 /* marc's DES-3 with 32-bit length */
@@ -379,7 +382,7 @@ typedef struct _krb5_enc_data {
 #define        CKSUMTYPE_RSA_MD5       0x0007
 #define        CKSUMTYPE_RSA_MD5_DES   0x0008
 #define CKSUMTYPE_NIST_SHA     0x0009
-#define CKSUMTYPE_HMAC_SHA1    0x000a
+#define CKSUMTYPE_HMAC_SHA1_DES3       0x000c
 
 #ifndef krb5_roundup
 /* round x up to nearest multiple of y */
@@ -1168,24 +1171,25 @@ typedef struct _krb5_cc_ops {
 #define        KRB5_TC_MATCH_SRV_NAMEONLY      0x00000040
 #define        KRB5_TC_MATCH_2ND_TKT           0x00000080
 #define        KRB5_TC_MATCH_KTYPE             0x00000100
+#define KRB5_TC_SUPPORTED_KTYPES       0x00000200
 
 /* for set_flags and other functions */
 #define KRB5_TC_OPENCLOSE              0x00000001
 
-#define krb5_cc_initialize(context, cache, principal) krb5_x((cache)->ops->init,(context, cache, principal))
-#define krb5_cc_gen_new(context, cache) krb5_x((*cache)->ops->gen_new,(context, cache))
-#define krb5_cc_destroy(context, cache) krb5_x((cache)->ops->destroy,(context, cache))
-#define krb5_cc_close(context, cache) krb5_x((cache)->ops->close,(context, cache))
-#define krb5_cc_store_cred(context, cache, creds) krb5_x((cache)->ops->store,(context, cache, creds))
-#define krb5_cc_retrieve_cred(context, cache, flags, mcreds, creds) krb5_x((cache)->ops->retrieve,(context, cache, flags, mcreds, creds))
-#define krb5_cc_get_principal(context, cache, principal) krb5_x((cache)->ops->get_princ,(context, cache, principal))
-#define krb5_cc_start_seq_get(context, cache, cursor) krb5_x((cache)->ops->get_first,(context, cache, cursor))
-#define krb5_cc_next_cred(context, cache, cursor, creds) krb5_x((cache)->ops->get_next,(context, cache, cursor, creds))
-#define krb5_cc_end_seq_get(context, cache, cursor) krb5_x((cache)->ops->end_get,(context, cache, cursor))
-#define krb5_cc_remove_cred(context, cache, flags, creds) krb5_x((cache)->ops->remove_cred,(context, cache,flags, creds))
-#define krb5_cc_set_flags(context, cache, flags) krb5_x((cache)->ops->set_flags,(context, cache, flags))
-#define krb5_cc_get_name(context, cache) krb5_xc((cache)->ops->get_name,(context, cache))
-#define krb5_cc_get_type(context, cache) ((cache)->ops->prefix)
+#define krb5_cc_initialize(context, cache, principal)                  krb5_x ((cache)->ops->init,(context, cache, principal))
+#define krb5_cc_gen_new(context, cache)                                        krb5_x ((*cache)->ops->gen_new,(context, cache))
+#define krb5_cc_destroy(context, cache)                                        krb5_x ((cache)->ops->destroy,(context, cache))
+#define krb5_cc_close(context, cache)                                  krb5_x ((cache)->ops->close,(context, cache))
+#define krb5_cc_store_cred(context, cache, creds)                      krb5_x ((cache)->ops->store,(context, cache, creds))
+#define krb5_cc_retrieve_cred(context, cache, flags, mcreds, creds)    krb5_x ((cache)->ops->retrieve,(context, cache, flags, mcreds, creds))
+#define krb5_cc_get_principal(context, cache, principal)               krb5_x ((cache)->ops->get_princ,(context, cache, principal))
+#define krb5_cc_start_seq_get(context, cache, cursor)                  krb5_x ((cache)->ops->get_first,(context, cache, cursor))
+#define krb5_cc_next_cred(context, cache, cursor, creds)               krb5_x ((cache)->ops->get_next,(context, cache, cursor, creds))
+#define krb5_cc_end_seq_get(context, cache, cursor)                    krb5_x ((cache)->ops->end_get,(context, cache, cursor))
+#define krb5_cc_remove_cred(context, cache, flags, creds)              krb5_x ((cache)->ops->remove_cred,(context, cache,flags, creds))
+#define krb5_cc_set_flags(context, cache, flags)                       krb5_x ((cache)->ops->set_flags,(context, cache, flags))
+#define krb5_cc_get_name(context, cache)                               krb5_xc((cache)->ops->get_name,(context, cache))
+#define krb5_cc_get_type(context, cache)                               ((cache)->ops->prefix)
 
 extern krb5_cc_ops *krb5_cc_dfl_ops;
 
@@ -1374,6 +1378,8 @@ extern krb5_kt_ops krb5_kt_dfl_ops;
 
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_init_context
        KRB5_PROTOTYPE((krb5_context FAR *));
+KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_init_secure_context
+       KRB5_PROTOTYPE((krb5_context FAR *));
 KRB5_DLLIMP void KRB5_CALLCONV krb5_free_context
        KRB5_PROTOTYPE((krb5_context));
 
@@ -1820,6 +1826,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
 krb5_get_profile
        KRB5_PROTOTYPE((krb5_context, profile_t *));
 
+/* DO NOT USE THIS ROUTINE! */
 krb5_error_code krb5_secure_config_files
        KRB5_PROTOTYPE ((krb5_context));
 
@@ -2153,7 +2160,7 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_get_realm_domain
        KRB5_PROTOTYPE((krb5_context,
                const char *,
                char ** ));
-krb5_boolean krb5_kuserok
+KRB5_DLLIMP krb5_boolean KRB5_CALLCONV krb5_kuserok
        KRB5_PROTOTYPE((krb5_context,
                krb5_principal, const char *));
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV krb5_auth_con_genaddrs
index b4ec50852ca1e74296088ec7dafe758eaec73b37..b3a2b6af354e0585babb375e653065b96739b6d1 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 0c4ed05c36811702f6bbea6a4629b0ac4fc0994e..4ac70031abcfb105761f00f8a204941b2056d083 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5e9b984bcf0d7f01807558e86041d338636639d9..bcfe0aee960fcadc14eeb42cecf2801f479aaf45 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index c0785988ab65eac1370650259764a2d62d18a85b..b1740ce3ce311443aab80ac3f3201ff90deaff3f 100644 (file)
@@ -32,5 +32,9 @@
  * be used in advertising or publicity pertaining to distribution of the 
  * software.  Title to copyright in this software and any associated 
  * documentation shall at all times remain with M.I.T., and USER agrees to 
- * preserve same.  
+ * preserve same.
+ *
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.  
  */
diff --git a/src/include/krb5/k5-config.h b/src/include/krb5/k5-config.h
deleted file mode 100644 (file)
index 9d2ec6c..0000000
+++ /dev/null
@@ -1,311 +0,0 @@
-/*
- * Copyright 1990,1991,1994,1995 by the Massachusetts Institute of Technology.
- * All Rights Reserved.
- *
- * 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.
- * 
- * Configuration definition file.
- */
-
-
-#ifndef KRB5_CONFIG__
-#define KRB5_CONFIG__
-
-#ifdef _MSDOS
-/* 
- * Machine-type definitions: PC Clone 386 running Microloss Windows
- */
-
-/* Kerberos Windows initialization file */
-#define KERBEROS_INI    "kerberos.ini"
-#define INI_FILES       "Files"
-#define INI_KRB_CCACHE  "krb5cc"       /* Location of the ccache */
-#define INI_KRB5_CONF   "krb5.ini"             /* Location of krb5.conf file */
-
-#define KRB5_DBM_COMPAT__                       /* Don't load dbm.h */
-#define KRB5_KDB5__                             /* Don't load kdb.h */
-#define KRB5_KDB5_DBM__                         /* Don't load kdb_dbm.h */
-
-#define BITS16
-#define SIZEOF_INT      2
-#define SIZEOF_SHORT    2
-#define SIZEOF_LONG     4
-#define MAXHOSTNAMELEN  512
-#define MAXPATHLEN      256            /* Also for Windows temp files */
-
-#define KRB5_USE_INET
-#define MSDOS_FILESYSTEM
-#define USE_STRING_H 
-#define HAVE_SRAND
-#define HAVE_ERRNO
-#define HAS_STRDUP
-#define NO_USERID
-#define NOFCHMOD
-#define NOCHMOD
-#define NO_PASSWORD
-#define WM_KERBEROS5_CHANGED "Kerberos5 Changed"
-
-#define HAS_ANSI_VOLATILE
-#define HAS_VOID_TYPE
-#define        KRB5_PROVIDE_PROTOTYPES
-#define HAVE_STDARG_H
-#define HAVE_SYS_TYPES_H
-
-#ifndef _SIZE_T_DEFINED
-typedef unsigned int size_t;
-#define _SIZE_T_DEFINED
-#endif 
-
-#ifndef KRB5_SYSTYPES__
-#define KRB5_SYSTYPES__
-#include <sys/types.h>
-typedef unsigned long u_long;      /* Not part of sys/types.h on the pc */
-typedef unsigned int   u_int;
-typedef unsigned short u_short;
-typedef unsigned char  u_char;
-#endif /* KRB5_SYSTYPES__ */
-
-#ifndef INTERFACE
-#define INTERFACE   __far __export __pascal
-#define INTERFACE_C __far __export __cdecl
-#endif
-
-/*
- * The following defines are needed to make <windows.h> work
- * in stdc mode (/Za flag). Winsock.h needs <windows.h>.
- */
-#define FAR     _far
-#define NEAR    _near
-#define _far    __far
-#define _near   __near
-#define _pascal __pascal
-#define _cdecl  __cdecl
-#define _huge   __huge
-
-#ifdef NEED_WINDOWS
-#include <windows.h>
-#endif
-
-#ifdef NEED_LOWLEVEL_IO
-/* Ugly. Microsoft, in stdc mode, doesn't support the low-level i/o
- * routines directly. Rather, they only export the _<function> version.
- * The following defines works around this problem. 
- */
-#include <sys\types.h>
-#include <sys\stat.h>
-#include <fcntl.h>
-#include <io.h>
-#include <process.h>
-#define O_RDONLY        _O_RDONLY
-#define O_WRONLY        _O_WRONLY
-#define O_RDWR          _O_RDWR
-#define O_APPEND        _O_APPEND
-#define O_CREAT         _O_CREAT
-#define O_TRUNC         _O_TRUNC
-#define O_EXCL          _O_EXCL
-#define O_TEXT          _O_TEXT
-#define O_BINARY        _O_BINARY
-#define O_NOINHERIT     _O_NOINHERIT
-#define stat            _stat
-#define unlink          _unlink
-#define lseek           _lseek
-#define write           _write
-#define open            _open
-#define close           _close
-#define read            _read
-#define fstat           _fstat
-#define mktemp          _mktemp
-#define dup             _dup
-
-#define getpid          _getpid
-#endif
-
-#ifdef NEED_SYSERROR
-/* Only needed by util/et/error_message.c but let's keep the source clean */
-#define sys_nerr        _sys_nerr
-#define sys_errlist     _sys_errlist
-#endif
-
-/* XXX these should be parameterized soon... */
-#define PROVIDE_DES_CBC_MD5
-#define PROVIDE_DES_CBC_CRC
-#define PROVIDE_RAW_DES_CBC
-#define PROVIDE_CRC32
-#define PROVIDE_DES_CBC_CKSUM
-#define PROVIDE_RSA_MD4
-#define PROVIDE_RSA_MD5
-#define DEFAULT_PWD_STRING1 "Enter password:"
-#define DEFAULT_PWD_STRING2 "Re-enter password for verification:"
-
-/* Functions with slightly different names on the PC
-*/                   
-#define strcasecmp   _stricmp
-#define strdup       _strdup
-#define off_t        _off_t
-
-#else          /* Rest of include file is for non-Microloss-Windows */
-
-#if defined(_MACINTOSH)
-#include <stddef.h>
-
-typedef struct {
-       int     dummy;
-} datum;
-
-#include <stddef.h>
-
-#ifdef NEED_LOWLEVEL_IO
-#include <fcntl.h>
-#endif
-
-#ifndef _MWERKS
-/* there is no <stat.h> for mpw */
-typedef unsigned long  mode_t;
-typedef unsigned long  ino_t;
-typedef unsigned long  dev_t;
-typedef short                  nlink_t;
-typedef unsigned long  uid_t;
-typedef unsigned long  gid_t;
-typedef long                   off_t;
-struct stat
-{
-       mode_t          st_mode;                /* File mode; see #define's below */
-       ino_t           st_ino;                 /* File serial number */
-       dev_t           st_dev;                 /* ID of device containing this file */
-       nlink_t         st_nlink;               /* Number of links */
-       uid_t           st_uid;                 /* User ID of the file's owner */
-       gid_t           st_gid;                 /* Group ID of the file's group */
-       dev_t           st_rdev;                /* Device type */
-       off_t           st_size;                /* File size in bytes */
-       unsigned long           st_atime;               /* Time of last access */
-       unsigned long           st_mtime;               /* Time of last data modification */
-       unsigned long           st_ctime;               /* Time of last file status change */
-       long            st_blksize;             /* Optimal blocksize */
-       long            st_blocks;              /* blocks allocated for file */
-};
-
-int stat(const char *path, struct stat *buf);
-int fstat(int fildes, struct stat *buf);
-
-#endif /* _MWERKS */
-
-#define EFBIG 1000
-
-#define NOFCHMOD 1
-#define NOCHMOD 1
-#define _MACSOCKAPI_
-
-#define THREEPARAMOPEN(x,y,z) open(x,y)
-#define MAXPATHLEN 255
-
-/* protocol families same as address families */
-#define        PF_INET         AF_INET
-
-/* XXX these should be parameterized soon... */
-#define PROVIDE_DES_CBC_MD5
-#define PROVIDE_DES_CBC_CRC
-#define PROVIDE_RAW_DES_CBC
-#define PROVIDE_CRC32
-#define PROVIDE_DES_CBC_CKSUM
-#define PROVIDE_RSA_MD4
-#define PROVIDE_RSA_MD5
-
-#else /* _MACINTOSH */
-#define THREEPARAMOPEN(x,y,z) open(x,y,z)
-#endif /* _MACINTOSH */
-
-#ifndef KRB5_AUTOCONF__
-#define KRB5_AUTOCONF__
-#include "autoconf.h"
-#endif
-
-#ifndef KRB5_SYSTYPES__
-#define KRB5_SYSTYPES__
-
-#ifdef HAVE_SYS_TYPES_H                /* From autoconf.h */
-#include <sys/types.h>
-#else /* HAVE_SYS_TYPES_H */
-typedef unsigned long  u_long;
-typedef unsigned int   u_int;
-typedef unsigned short u_short;
-typedef unsigned char  u_char;
-#endif /* HAVE_SYS_TYPES_H */
-#endif /* KRB5_SYSTYPES__ */
-
-#ifdef SYSV
-/* Change srandom and random to use rand and srand */
-/* Taken from the Sandia changes.  XXX  We should really just include */
-/* srandom and random into Kerberos release, since rand() is a really */
-/* bad random number generator.... [tytso:19920616.2231EDT] */
-#define random() rand()
-#define srandom(a) srand(a)
-#ifndef unicos61
-#define utimes(a,b) utime(a,b)
-#endif  /* unicos61 */
-#endif /* SYSV */
-
-/* XXX these should be parameterized soon... */
-#define PROVIDE_DES_CBC_MD5
-#define PROVIDE_DES_CBC_CRC
-#define PROVIDE_RAW_DES_CBC
-#define PROVIDE_CRC32
-#define PROVIDE_DES_CBC_CKSUM
-#define PROVIDE_RSA_MD4
-#define PROVIDE_RSA_MD5
-
-#define DEFAULT_PWD_STRING1 "Enter password:"
-#define DEFAULT_PWD_STRING2 "Re-enter password for verification:"
-
-#define        KRB5_KDB_MAX_LIFE       (60*60*24) /* one day */
-#define        KRB5_KDB_MAX_RLIFE      (60*60*24*7) /* one week */
-#define        KRB5_KDB_EXPIRATION     2145830400 /* Thu Jan  1 00:00:00 2038 UTC */
-
-/*
- * For paranoid DOE types that don't want to give helpful error
- * messages to the client....er, attacker
- */
-#undef KRBCONF_VAGUE_ERRORS
-
-/*
- * Define this if you want the KDC to modify the Kerberos database;
- * this allows the last request information to be updated, as well as
- * the failure count information.
- * 
- * Note that this doesn't work if you're using slave servers!!!  It
- * also causes the database to be modified (and thus need to be
- * locked) frequently.
- */
-#undef KRBCONF_KDC_MODIFIES_KDB
-    
-/* 
- * Windows requires a different api interface to each function. Here
- * just define it as NULL.
- */
-#define INTERFACE
-#define INTERFACE_C
-#define FAR
-#define NEAR
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-#ifndef HAS_LABS
-#define labs(x) abs(x)
-#endif
-
-#endif /* _MSDOS */
-#endif /* KRB5_CONFIG__ */
index 5471da6e177b000787dddcf25c52a1aea59fa477..8316efefc47cdf215a920627ae084a6346efa47d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e0bbd1b4765a174c5959a5563508263ed1e466e2..4165ca2a78bfeb98f8c3816a769220f784d8f633 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index cb652aadfca45a0d21a5571a0ea039090b27125b..57eb5362332d5408d09b9355bbdd1568c02a5293 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index cdbda714fe606450c7cb277e138e817217400d26..3b795e482dcd9dc408d82bf4423e0f954b3a74a2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index bd53563379a21c5d4dfb333310c22eaa98210d1e..60e3d30b7dd08ba81e1819ab43680cc930c2c52e 100644 (file)
@@ -1,3 +1,7 @@
+1999-09-20  Ken Raeburn  <raeburn@mit.edu>
+
+       * osconf.h (KPASSWD_PORTNAME): Define.
+
 Tue Jan 20 23:19:53 1998  Tom Yu  <tlyu@mit.edu>
 
        * osconf.h: Add DEFAULT_KPASSWD_PORT to support Cygnus chpw.
index b234d995a5f5efabebd491252d03cd9e5de8fd56..452d9c696970eb7989f996c797531e81600740f2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -67,6 +70,7 @@
 #define KRB5_DEFAULT_SEC_PORT  750
 
 #define DEFAULT_KPASSWD_PORT   464
+#define KPASSWD_PORTNAME "kpasswd"
 
 #define DEFAULT_KDC_PORTLIST   "88,750"
 
index d39e08b25e905c079742b39d064a2fba9742e369..e2d37e00f869689ef0bbcefd8a2188fb615a1bb9 100644 (file)
@@ -100,7 +100,9 @@ typedef unsigned char       u_char;
 #endif /* KRB5_SYSTYPES__ */
 
 #define MAXHOSTNAMELEN  512
+#ifndef MAXPATHLEN
 #define MAXPATHLEN      256            /* Also for Windows temp files */
+#endif
 
 #define HAVE_NETINET_IN_H
 #define MSDOS_FILESYSTEM
index cea548bc201c6398f66565806c14e887fe53e871..088a7a23d1e9d0c2a798ec68f01cc9c28df69021 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Tue Jan 12 18:26:04 1999  Tom Yu  <tlyu@mit.edu>
 
        * configure.in: Define NDBM_PW_CHECK if enable_athena is set to
index 23f81b7166778862addc5626d51908565a6e1a49..749b6c14cf10fe9000df05d04dd6a56b099eee91 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=.
 myfulldir=kadmin
 mydir=.
 BUILDTOP=$(REL)$(U)
-CFLAGS = $(CCOPTS)
 LOCAL_SUBDIRS = cli dbutil passwd ktutil server @V4SERVER@ v5passwdd testing
 
 all::
index a4302145829f177965a964ae5097f7d1b9f402f6..9b3c2010ec04bd52425d1e6a1f769dbaafdd760d 100644 (file)
@@ -1,3 +1,16 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-18  Ken Raeburn  <raeburn@mit.edu>
+
+       * getdate.y (Convert): Check for year past 2038.
+       (RelativeMonth): Check for error return from Convert.
+       (get_date): Check for error return from RelativeMonth.
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 3654c78a626fb8a158706abf54e3783e8c5802e9..5d8bbc53160bfc4061a33f0d1f99d3d3443bfa9b 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=kadmin/cli
 mydir=cli
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
@@ -32,4 +31,4 @@ clean-unix::
 
 # for testing getdate.y
 datetest: getdate.c
-       $(CC) -o datetest $(CFLAGS) $(LDFLAGS) $(LDARGS) -DTEST getdate.c
+       $(CC) -o datetest $(ALL_CFLAGS) $(LDFLAGS) $(LDARGS) -DTEST getdate.c
index 9a85a2e998d2234ae284a089b1d348521ff47551..162e35d9c64fe81ab4c7a1c00e03018956120db2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c10c6a046a9a39e054a43514b2049c7568403518..321603f9f735a6b40a8332e341df3dc3a3768274 100644 (file)
@@ -125,6 +125,7 @@ static char RCS[] =
 
 
 #define EPOCH          1970
+#define EPOCH_END      2038 /* assumes 32 bits */
 #define HOUR(x)                ((time_t)(x) * 60)
 #define SECSPERDAY     (24L * 60L * 60L)
 
@@ -595,11 +596,12 @@ Convert(Month, Day, Year, Hours, Minutes, Seconds, Meridian, DSTmode)
 
     if (Year < 0)
        Year = -Year;
-    if (Year < 100)
+    if (Year < 1900)
        Year += 1900;
     DaysInMonth[1] = Year % 4 == 0 && (Year % 100 != 0 || Year % 400 == 0)
                    ? 29 : 28;
     if (Year < EPOCH
+       || Year > EPOCH_END
        || Month < 1 || Month > 12
        /* Lint fluff:  "conversion from long may lose accuracy" */
        || Day < 1 || Day > DaysInMonth[(int)--Month])
@@ -661,6 +663,7 @@ RelativeMonth(Start, RelMonth)
     struct tm  *tm;
     time_t     Month;
     time_t     Year;
+    time_t     ret;
 
     if (RelMonth == 0)
        return 0;
@@ -668,10 +671,12 @@ RelativeMonth(Start, RelMonth)
     Month = 12 * tm->tm_year + tm->tm_mon + RelMonth;
     Year = Month / 12;
     Month = Month % 12 + 1;
-    return DSTcorrect(Start,
-           Convert(Month, (time_t)tm->tm_mday, Year,
-               (time_t)tm->tm_hour, (time_t)tm->tm_min, (time_t)tm->tm_sec,
-               MER24, DSTmaybe));
+    ret = Convert(Month, (time_t)tm->tm_mday, Year,
+                 (time_t)tm->tm_hour, (time_t)tm->tm_min, (time_t)tm->tm_sec,
+                 MER24, DSTmaybe);
+    if (ret == -1)
+      return ret;
+    return DSTcorrect(Start, ret);
 }
 
 
@@ -861,6 +866,7 @@ get_date(p, now)
     struct my_timeb    ftz;
     time_t             Start;
     time_t             tod;
+    time_t             delta;
 
     yyInput = p;
     if (now == NULL) {
@@ -972,7 +978,10 @@ get_date(p, now)
      * thoroughness?
      */
     Start += yyRelSeconds;
-    Start += RelativeMonth(Start, yyRelMonth);
+    delta = RelativeMonth(Start, yyRelMonth);
+    if (delta == (time_t) -1)
+      return -1;
+    Start += delta;
 
     /*
      * Now, if you specified a day of week and counter, add it in.  By
index d8419de093b9ab7e9befa7ce4fd0e0fa580e66d3..591cda4693f0f01f1c501cba2b08aa677c0278f9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c1e966f7840ccde719c8087b0363e103f2a4c8cb..9ecef0da701bd203c9841f50627296d8e27c93d1 100644 (file)
 # 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
+# permission.  Furthermore if you modify this software you must label
+# your software as modified software and not distribute it in such a
+# fashion that it might be confused with the original M.I.T. software.
+# 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.
 # 
index 89e94b36baf819347940934ab7004f7f94161f2f..d20737ae562923dcce5dcfead36335036963345e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 44ac4d42794e8fff1d7f7a82ceefb0093402de05..9a309bd82ecde8faceb090c63ccfcdf2e793c84c 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-07-06  Ken Raeburn  <raeburn@mit.edu>
 
        * kdb5_util.c (main): Do try using com_err in the case that
index 7567d76cdd7fb9e21658423a5f6fc070fb8fe359..8f6e20d2967da67def090bf81d5577c5102a5efa 100644 (file)
@@ -2,7 +2,8 @@ thisconfigdir=./..
 myfulldir=kadmin/dbutil
 mydir=dbutil
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -DKDB4_DISABLE -I. $(LOCALINCLUDE) @KRB4_INCLUDES@ 
+DEFINES = -DKDB4_DISABLE
+LOCALINCLUDES = -I. @KRB4_INCLUDES@ 
 PROG_LIBPATH=-L$(TOPLIBD) $(KRB4_LIBPATH)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index e0db37bb2cb1992aa804272da014271888173dc9..4378e310c9369dabaf7ad1908d3518f0f95fe7cd 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 9eb203c3a494ceb7c2f2e10f0f8bbdc83cb59396..84a505dc9b0055d638bbf86f9c47bbf566ee9176 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5aa7ae11ed1cf2fbd24aa708089e6a079b7edabc..8cfa6e7a0dff4bea8ef40459c1196015ef25a309 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c5f47ca2f46897ebfb11ba8c6641486ce71b0b32..51fe7ac018bed6e3663ca3e8fa46330408615c40 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4281ac947337ab052a49922abc70ce1a4727d32b..217c266b19b3a78fd05d9afd2053bbb9b09d9c69 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" 
index c682f3a5662ad9e7d2bc6588f94c8527d8b54e9c..419d14f66ff2781596c349a7c0f5c37481cdf3b2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e421f15ecd773b4a7dd493c8875b2cba679c6c12..92b1c2139fde804f57b9246f7943ad0b4c35e77a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b580e2f6a511e13901666d3e2944193aba838690..843b7dd99a96c1318679b3e044b0ab6b4fd076dd 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b7df142bd8eb93cb65261899ba634d5f692cd5d0..fb9c2e186a9cfa82c420cf6eaaf893f01658c9cd 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 10b860c9faac6364f8c9ee2e84fdbbdbd9e6965e..ab4f25b19b18985e8bac4929d64bd7b88f9d4b52 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5fdb7aad25faf22d641efa4d7f923060bbc93ece..246a6cb74086cabe0a200f99b8d9047fa9b318ee 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 366acc8c71a861fd68bc1a931a5fe303de714c07..75ff5d1d3216a72354812a27093f4393e420da9b 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index aeda38f05a178ddafd8dd882bb4d78ef7c13474e..139d4d234cd8c8b989bfdf1a54309ca9aea3c4bf 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=.
 myfulldir=kadmin/kdbkeys
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 
 PROG = kdbkeys
 OBJS = kdbkeys.o
index 87f8244b3908cc0a7d33a7303833c540d5f95ac6..f03ed07bae691bdb1a51e4f9f2e10943ff859d87 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index b04307864c06347dd38865309e71a4ddf5af6982..e0436182a0b72684408a7402e624c9e061737e87 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=kadmin/ktutil
 mydir=ktutil
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(KRB4_INCLUDES)
+LOCALINCLUDES = $(KRB4_INCLUDES)
 PROG_LIBPATH=-L$(TOPLIBD) $(KRB4_LIBPATH)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index 0106ed758240c15e19e8d69867fe0ae578de1dc9..105df1ecc8e6b93cd2f7e94e191e9d69ef2b24c1 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0f14defb7a007e31dd8f939c5095e5a1ed5cc68d..be097226bd21e52e50ff77e45d4098883a9551cd 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 1f0269f6d6054c0702144090ef147be57ec01a34..0ddb9f30db6634db46edc05b617e424425b06001 100644 (file)
 # 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
+# permission.  Furthermore if you modify this software you must label
+# your software as modified software and not distribute it in such a
+# fashion that it might be confused with the original M.I.T. software.
+# 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.
 # 
index 8429169f3737f79e87582c618c8b5b2dc4582354..d1401614a7402616b719ecbf18b16042898c9063 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 945b32165291d3bac9db43bb00b0e69b0aa61efc..3833b63d6f63b3cdb92ad38ef46092874f039d1f 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 98cf83b3cad6adb05855fa83a122cc18b6bfc83c..39d0830cea32d4a4d8a2e0426de6de317e34dd92 100644 (file)
@@ -2,7 +2,8 @@ thisconfigdir=./..
 myfulldir=kadmin/passwd
 mydir=passwd
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE) -I. -DUSE_KADM5_API_VERSION=1
+LOCALINCLUDES = -I.
+DEFINES = -DUSE_KADM5_API_VERSION=1
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 LOCAL_SUBDIRS = unit-test
index c3da8ae311bda344e7fca46184998ca33c3a83ea..185c1f5950361b8a1ae9ad4f13fed2167331d880 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" "
index 4d0db1218bc3cd3f9d6eb0cd9e9ffa1b95a60a02..711f7ef3db5de27f0fe3e319b54d8bd28f43820c 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Tue May 11 23:59:55 1999  Theodore Y. Ts'o  <tytso@mit.edu>
 
        * ovsec_kadmd.c (main): Fix how we specify the OID.
index 73029d4b3a93e877322614b208e7b907a21ab9ec..8728a1f9a80e775d24274095006cc3e1dd992bcf 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=kadmin/server
 mydir=server
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
index 065383b1717a9a1c8f3023d41c995437b8f7470a..d97c7dd7792ff426ceaab84c0eacc08b1ad337cb 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index c189bf887f818374cf7e812f133ecf4baf7404eb..be5b5a8d29cfaab807184089f9cf51147ca6505e 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=kadmin/testing
 mydir=testing
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS)
 LOCAL_SUBDIRS = scripts util
 
 all::
index 1cfaf88da64e6f62d6a93016c05e9b6131ea1be5..e3d88d1d22b4a15dfa0943c64b9cf4b59b006a90 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 43d933435fe462cf85eea66dcf1cfa5dbb4d57e6..23725434713d872425ccdab2a7bde7c28fca6a12 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./../..
 myfulldir=kadmin/testing/util
 mydir=testing/util
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE) $(TCL_INCLUDES)
+LOCALINCLUDES = $(TCL_INCLUDES)
 
 PROG_LIBPATH=-L$(TOPLIBD) $(TCL_LIBPATH)
 PROG_RPATH=$(KRB5_LIBDIR)$(TCL_RPATH)
index 852f32b321182a8a813bf8bdc844793cf93d305b..c036eb83e0751c69ef31155146bc021ef48f3ea4 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Tue Jan 12 18:26:48 1999  Tom Yu  <tlyu@mit.edu>
 
        * Makefile.in (CFLAGS): PW_CHECK functionality now in DEFS.
index f7ff7affd2515fd9e460746f3851ba5284e9c5e3..43b19e137eabfa1ee1ab4948a8dacb4e0df00cf8 100644 (file)
@@ -2,15 +2,14 @@ thisconfigdir=./..
 myfulldir=kadmin/v4server
 mydir=v4server
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE) \
-       -DKADM5 -DNEED_SOCKETS @HESIOD_DEFS@
+DEFINES = -DKADM5 -DNEED_SOCKETS @HESIOD_DEFS@
 PROG_LIBPATH=-L$(TOPLIBD) $(KRB4_LIBPATH)
 PROG_RPATH=$(KRB5_LIBDIR)
 LOCAL_SUBDIRS = unit-test
 
 HESIOD_LIBS=@HESIOD_LIBS@
 
-LOCALINCLUDE = $(KRB4_INCLUDES) -I. -I$(srcdir)
+LOCALINCLUDES = $(KRB4_INCLUDES) -I. -I$(srcdir)
 
 PROG = kadmind4
 OBJS = kadm_server.o admin_server.o kadm_ser_wrap.o \
index 5de3018208fef4b02c1273619bfd94c7370b81ea..ebc0d2e42da5e56a2cdae6b90b38687625e397f2 100644 (file)
@@ -1,3 +1,11 @@
+1999-08-31  Ken Raeburn  <raeburn@mit.edu>
+
+       * lib/helpers.exp (unexpire): Move expiration date ahead a few
+       decades.
+
+       * Makefile.in (check- check-ok): Disable tests until the tests get
+       updated for non-OVSEC mode, etc.
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 783c26ddf918ce546f67c9fe47ba3f33d8c39cd7..b1f9c6346c047fddc92e738944c8cef8d5ba301e 100644 (file)
@@ -8,13 +8,19 @@ BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
 
 check:: check-@DO_V4_TEST@
 
-check-::
+# When the tests get updated, nuke this and delete "-not" from the next two.
+check- check-ok::
+       @echo "+++"
+       @echo "+++ WARNING: kadmin/v4server unit tests out of date; not run."
+       @echo "+++"
+
+check--not::
        @echo "+++"
        @echo "+++ WARNING: kadmin/v4server unit tests not run."
        @echo "+++ Either Athena compatibility, tcl, runtest, or Perl is unavailable."
        @echo "+++"
 
-check-ok unit-test:: unit-test-setup unit-test-body unit-test-cleanup
+check-ok-not unit-test:: unit-test-setup unit-test-body unit-test-cleanup
 
 unit-test-setup::
        $(ENV_SETUP) $(START_SERVERS_LOCAL) -v4files -kdcport 750 -keysalt des-cbc-crc:v4
index 8338d37032ab2088e3e7463b26c72733906d1296..a3087dc1472b9b3efb28f31ad7c343e2d8285b90 100644 (file)
@@ -215,7 +215,7 @@ proc unexpire { name fullname } {
     # While we're at it, make sure they aren't expired.
     exp_prog "$name: kadmin.local" $kadmin_local "" 0 {
        "kadmin.local:" {
-           send "modprinc -expire \"May 6, 1999\" $fullname\n" 
+           send "modprinc -expire \"May 6, 2029\" $fullname\n" 
        }
     } { 
        -re "Principal .* modified." { send "quit\n" }
index fee9216bc09747de748388664ebfdbec5f3d5dd4..f94ed38bfcda4a168d0535eedc35ccb5baa972a4 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Tue May 11 11:39:36 1999  Ezra Peisach  <epeisach@mit.edu>
 
        * main.c: Remove include of gssapi_krb5.h - no longer needed.
index 9b189d41b96f7250329768dc8be277d52f51bda4..853237030a37f9b78fc286c10d8b722c2e97f1ee 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=kadmin/v5passwdd
 mydir=v5passwdd
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index 4d888782a9f757cdfddf49ba6766abd69a0d889f..2a3ea585ed8cc62fae031c78aedb9ea01c966309 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 334ad9d131b14ecf7869d7db6f87b9ae6d3abc38..2a5e48e235c65c51463a0f54c32b56f9f098f204 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 67339bc15736e70acc3a6dcf82c2affd0bf3c51d..08650bd838d365ee4d6489286bb880e331af0be8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index e9785858b46b1200d82c393e144343a218dd49dd..f8a04ae8bfea263f309c2849840e174ca93ff2cc 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 5978786a275f5d9d12be4781d37389371f69b1c0..6c7e22772ea301bf3339a70edc9901ac765507a4 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index a16a0bffdbb1b13c20bfd1de91472ea5f42700d0..94a93128ea251756a931d360d77b53c959b2efee 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 90688a8db4eacd1f7d629cc3021f4eb0946e3879..bdea7784fd50f126e9e991eaf1bb23b119c9eb82 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" 
index 40d581f319a3071d0430119d0d1303b8816fc904..c81dcffa3f951a90a9af1805c3676d5ed5b7f0a2 100644 (file)
@@ -1,3 +1,26 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-13  Tom Yu  <tlyu@mit.edu>
+
+       * do_tgs_req.c (process_tgs_req): Don't try to take the 2nd
+       component of a principal that doesn't have 2 components.
+
+1999-08-18  Tom Yu  <tlyu@mit.edu>
+
+       * kerberos_v4.c (compat_decrypt_key): Align DES3 enctypes with
+       current names.
+       (kerb_get_principal): Align DES3 enctypes with current names.
+
+1999-08-17  Ken Raeburn  <raeburn@mit.edu>
+
+       * kdc_util.c (select_session_keytype): If none of the requested
+       ktypes are NULL or single-DES, force des-cbc-crc.
+
 1999-06-30  Ken Raeburn  <raeburn@mit.edu>
 
        * Makefile.in (CFLAGS): Define NOCACHE.
index b23d8ab0bc2774b54ec1f9396fde3cae38257b22..58b0e4f08a14d8128030fbe3fff699aca8bce170 100644 (file)
@@ -6,7 +6,7 @@ BUILDTOP=$(REL)$(U)
 # -DNOCACHE    - disable lookaside cache, which is used to resend previous
 #                response to replay (i.e., *don't* define this if you
 #                define USE_RCACHE)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE) -DNOCACHE
+DEFINES = -DNOCACHE
 RUN_SETUP = @KRB5_RUN_ENV@
 PROG_LIBPATH=-L$(TOPLIBD) $(KRB4_LIBPATH)
 PROG_RPATH=$(KRB5_LIBDIR)
@@ -15,7 +15,7 @@ all:: krb5kdc rtest
 
 # DEFINES = -DBACKWARD_COMPAT $(KRB4DEF)
 
-LOCALINCLUDE = @KRB4_INCLUDES@ -I.
+LOCALINCLUDES = @KRB4_INCLUDES@ -I.
 SRCS= \
        kdc5_err.c \
        $(srcdir)/dispatch.c \
index 824a3af0d15d044d99872e1c35f0e55190692ea7..43b612ad5a9eb016b90ec248ea72609c3a28f77c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 34eeb66c156f2e7ca57483acf0b37dbbe8f59924..158747ee5c0eea3766b487b88a41cbee92651d1a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7faf748da3a5c717c570334ccb50c584e71b4433..e5c6d1ac7cd208a54e0e844f049d9f65ac5f5287 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -167,15 +170,19 @@ tgt_again:
         * should do our best to find such a TGS in this db
         */
        if (firstpass && krb5_is_tgs_principal(request->server) == TRUE) {
-           krb5_data *server_1 = krb5_princ_component(kdc_context, request->server, 1);
-           krb5_data *tgs_1 = krb5_princ_component(kdc_context, tgs_server, 1);
-
-           if (server_1->length != tgs_1->length ||
-               memcmp(server_1->data, tgs_1->data, tgs_1->length)) {
-               krb5_db_free_principal(kdc_context, &server, nprincs);
-               find_alternate_tgs(request, &server, &more, &nprincs);
-               firstpass = 0;
-               goto tgt_again;
+           if (krb5_princ_size(kdc_context, request->server) == 2) {
+               krb5_data *server_1 =
+                   krb5_princ_component(kdc_context, request->server, 1);
+               krb5_data *tgs_1 =
+                   krb5_princ_component(kdc_context, tgs_server, 1);
+
+               if (server_1->length != tgs_1->length ||
+                   memcmp(server_1->data, tgs_1->data, tgs_1->length)) {
+                   krb5_db_free_principal(kdc_context, &server, nprincs);
+                   find_alternate_tgs(request, &server, &more, &nprincs);
+                   firstpass = 0;
+                   goto tgt_again;
+               }
            }
        }
        krb5_db_free_principal(kdc_context, &server, nprincs);
@@ -707,6 +714,12 @@ int *nprincs;
     *nprincs = 0;
     *more = FALSE;
 
+    /*
+     * Call to krb5_princ_component is normally not safe but is so
+     * here only because find_alternate_tgs() is only called from
+     * somewhere that has already checked the number of components in
+     * the principal.
+     */
     if ((retval = krb5_walk_realm_tree(kdc_context, 
                      krb5_princ_realm(kdc_context, request->server),
                      krb5_princ_component(kdc_context, request->server, 1),
index c3f92ac078ea46815e61f2a9c45e2e5b269d2a89..1c636e03e617b62ac390aeccb620637b9088c108 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c31e5c70e5272b303e002f6ba3ddbf9bc3882020..3757672c081b1ccc06240248b5bced42e9573e9b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ab3feb10c5c28708fdb2683d967d31dc8cc97f95..9d0ce877c1dbf7ccddab98c0d94796a5dfd7006b 100644 (file)
 # 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
+# permission.  Furthermore if you modify this software you must label
+# your software as modified software and not distribute it in such a
+# fashion that it might be confused with the original M.I.T. software.
+# 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.
 # 
index d1b1b363762a00ccb5f9af0764005281ac6ba8eb..b1d56144e20d151a0c17c14adcd2b7cc1d575714 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 51d4d7807e6e6fcb928ab0e7186ef8031adcbe02..30f7338c3e3413ffb393bca023faa6f94eec55b5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -1389,15 +1392,39 @@ select_session_keytype(context, server, nktypes, ktype)
     krb5_enctype       *ktype;
 {
     int                i;
+    krb5_enctype dfl = 0;
     
     for (i = 0; i < nktypes; i++) {
        if (!valid_enctype(ktype[i]))
            continue;
 
-       if (dbentry_supports_enctype(context, server, ktype[i]))
-           return (ktype[i]);
+       if (dbentry_supports_enctype(context, server, ktype[i])) {
+           switch (ktype[i]) {
+           case ENCTYPE_NULL:
+           case ENCTYPE_DES_CBC_CRC:
+           case ENCTYPE_DES_CBC_MD4:
+           case ENCTYPE_DES_CBC_MD5:
+           case ENCTYPE_DES_CBC_RAW:
+           case ENCTYPE_DES_HMAC_SHA1:
+               return ktype[i];
+
+           default:
+               /* For now, too much of our code supports only
+                  single-DES.  For example, the GSSAPI Kerberos
+                  mechanism needs to be modified.  If someone tries
+                  using other key types, force single-DES for the
+                  session key.
+
+                  This weird way of setting it here is so that a
+                  requested single-DES enctype listed after DES3 can
+                  be used, and this fallback enctype will be used
+                  only if *no* single-DES enctypes were requested.  */
+               dfl = ENCTYPE_DES_CBC_CRC;
+               break;
+           }
+       }
     }
-    return 0;
+    return dfl;
 }
 
 /*
index 6e8789239639686349904e28cc22478e116b1db6..d985708cf4a7cd930b6321eec1ce8c44bb1d7bc5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4dbd4252c05dce91e27111ee5a31df231c632ddb..1dc50a9d5aed204807149372aaf2f349405005d9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -384,7 +387,7 @@ compat_decrypt_key (in5, out4, out5, issrv)
            retval = -1;
        } else {
            /* KLUDGE! If it's a non-raw des3 key, bash its enctype */
-           if (out5->enctype == ENCTYPE_DES3_HMAC_SHA1 ||
+           if (out5->enctype == ENCTYPE_DES3_CBC_SHA1 ||
                out5->enctype == ENCTYPE_LOCAL_DES3_HMAC_SHA1)
                out5->enctype = ENCTYPE_DES3_CBC_RAW;
        }
@@ -486,7 +489,7 @@ kerb_get_principal(name, inst, principal, maxn, more, k5key, kvno, issrv)
                                  ENCTYPE_LOCAL_DES3_HMAC_SHA1,
                                  -1, kvno, &pkey) &&
            krb5_dbe_find_enctype(kdc_context, &entries,
-                                 ENCTYPE_DES3_HMAC_SHA1,
+                                 ENCTYPE_DES3_CBC_SHA1,
                                  -1, kvno, &pkey) &&
            krb5_dbe_find_enctype(kdc_context, &entries,
                                  ENCTYPE_DES_CBC_CRC,
index 5402f5d29834e7654cca82ceeae1a131303bfec0..700d6537a60d50f6afc030b9a191a7701dfa68c0 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" "
index 78b0a9949025960f3db6d6dc7b4bc33d58636a96..66fb3c5715a1423ecae6c7020234966959b70a9d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index edc172dffb8c23cbb64a0eef4491dd97bf362ce6..3ff47e0f0eede6a1ac4d6563fcada18b1cc7dd59 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 236224ae0c6ffbd51ceddc450d478c523a40e05b..60e7ffea5945abaca6e948b614f14099a0ea7acc 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index dd359c96f87ad0653611e3621e5af8874eff2878..ce2c31c781a1e4e5c1c38add9513d46aec622ea8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c3ff2a969030bfe4fda0fe499fb23759853d2d20..edc7ad68ecefd2bf5ee4e1926f136bbc5bfd055c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6bb191a43191510575f407a14d12ee16333dca3c..e5f1d896a8999015444743caecc3adf4ae2d5211 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3a98ea3ae81574454889a5dab7ac3ed3783fa918..8803e33253c3fe92b68c507e96271adf15f325a4 100644 (file)
 # 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
+# permission.  Furthermore if you modify this software you must label
+# your software as modified software and not distribute it in such a
+# fashion that it might be confused with the original M.I.T. software.
+# 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.
 # 
index 8789555524b8c8734f7195ae6ce7ba78ea6ff7b8..e3c656b572a627ac573201320c504c050563a09b 100644 (file)
@@ -1,3 +1,18 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-18  Tom Yu  <tlyu@mit.edu>
+
+       * krb524d.c (do_connection): Convert to using new symbol for
+       DES3.
+
+       * cnv_tkt_skey.c (krb524_convert_tkt_skey): Convert to using new
+       symbol for DES3.
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 190a1a623f9fd4b2f5376008b1f371d80c069e94..d64c3eb385ae4862bcb7e8c51144ffad906daf4d 100644 (file)
@@ -29,13 +29,13 @@ LIBMINOR=0
 RELDIR=../krb524
 STOBJLISTS=OBJS.ST
 
-CFLAGS = $(CCOPTS) -DUSE_MASTER  $(DEFS) $(LOCALINCLUDE)
+DEFINES = -DUSE_MASTER
 PROG_LIBPATH=-L$(TOPLIBD) $(KRB4_LIBPATH)
 PROG_RPATH=$(KRB5_LIBDIR)
 KRB524_DEPLIB  = libkrb524.a
 KRB524_LIB     = libkrb524.a
 
-LOCALINCLUDE= $(KRB4_INCLUDES) -I. -I$(srcdir)
+LOCALINCLUDES= $(KRB4_INCLUDES) -I. -I$(srcdir)
 
 # Library sources
 SRCS   = conv_creds.c conv_princ.c cnv_tkt_skey.c \
index 4c51b6777fac2bde932d02c3a16112ffbfe0399f..fc25246cd9f6910f6c26fe0896eab84a35f102a1 100644 (file)
@@ -170,7 +170,7 @@ int krb524_convert_tkt_skey(context, v5tkt, v4tkt, v5_skey, v4_skey,
                                 v4_skey->contents);
      } else {
         /* Force enctype to be raw if using DES3. */
-        if (v4_skey->enctype == ENCTYPE_DES3_HMAC_SHA1 ||
+        if (v4_skey->enctype == ENCTYPE_DES3_CBC_SHA1 ||
             v4_skey->enctype == ENCTYPE_LOCAL_DES3_HMAC_SHA1)
             v4_skey->enctype = ENCTYPE_DES3_CBC_RAW;
         ret = krb_cr_tkt_krb5(v4tkt,
index 1afeec2dce4cb90fdad05586e6e4b4451a75460b..cad0e31609edcbecce9b3a66e6486ec0d7fb7b64 100644 (file)
@@ -307,7 +307,7 @@ krb5_error_code do_connection(s, context)
                                   0,
                                   &v4_service_key, &v4kvno)) &&
         (ret = lookup_service_key(context, v5tkt->server,
-                                  ENCTYPE_DES3_HMAC_SHA1,
+                                  ENCTYPE_DES3_CBC_SHA1,
                                   0,
                                   &v4_service_key, &v4kvno)) &&
         (ret = lookup_service_key(context, v5tkt->server,
index bd22c6635e29b63a6e3fd7eb86f4526fd1a218d3..77e8f3bf7104a1e57a78f58db0c1e425c71697b3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index b8498cad65f1ec762694528c9aef3d66e378113d..6edfd02e153486dbf51b75d6f2b4acfba0ff7c29 100644 (file)
@@ -1,3 +1,29 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Use DLL_LINKOPTS to link DLL.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * winsock.def, comerr16.def, gssapi16.def, krb4_16.def,
+       krb5_16.def, sapgss16.def, sapkrb16.def, xpprof16.def: Remove
+       obsolete DEF files.
+
+1999-09-08  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Remove dependence of mit directory for version
+       server support.  Remove references to SAP.  Remove DNS defines.
+
+1999-08-26  Danilo Almeida  <dalmeida@mit.edu>
+
+       * krb5_32.def: Export krb5_kuserok.
+
 1999-07-22  Jeffrey Altman <jaltman@columbia.edu>
 
         * krb5_32.def
index 8f053e4d1ce94e2bd5c792108a9caebc2f58732c..7c145c6db6ae4ef5a993e2dce9345640169010d3 100644 (file)
@@ -3,10 +3,6 @@ myfulldir=lib
 mydir=lib
 MY_SUBDIRS=crypto krb5 des425 @KRB4@ krb5util kdb gssapi rpc kadm5
 BUILDTOP=$(REL)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
-
-##DOS##BUILDTOP = ..
-##DOS##VERS_DIR = \vers
 
 MAC_SUBDIRS = crypto krb5 gssapi
 
@@ -27,14 +23,16 @@ clean-windows::
 
 # Windows stuff to make krb5 and gssapi DLLs.
 
-##DOS##VERLIBS=$(BUILDTOP)\mit\windows\lib\$(CPU)\vsnt.lib
-##DOS##!if defined(KRB5_USE_DNS)
-##DOS##DNSLIBS= $(BUILDTOP)\mit\windows\lib\$(CPU)\wshelp32.lib
-##DOS##!else
-##DOS##DNSLIBS=
-##DOS##!endif
-##MIT##MITLIBS= $(VERLIBS) $(DNSLIBS)
-##MIT##MITFLAGS=-I$(BUILDTOP)\mit\windows\include /DVERSERV=1
+##MIT##!if !defined(VS_INC)
+##MIT##!message Must define VS_INC to point to version server include dir!
+##MIT##!error
+##MIT##!endif
+##MIT##!if !defined(VS_LIB)
+##MIT##!message Must define VS_LIB to point to version server library!
+##MIT##!error
+##MIT##!endif
+##MIT##MITLIBS=$(VS_LIB)
+##MIT##MITFLAGS=-I$(VS_INC) /DVERSERV=1
 
 CLIBS = $(BUILDTOP)\util\et\$(OUTPRE)comerr.lib
 PLIBS = $(BUILDTOP)\util\profile\$(OUTPRE)profile.lib
@@ -50,34 +48,23 @@ KDEF = krb5_32.def
 GDEF = gssapi32.def
 K4DEF = krb4_32.def
 
-#
-# The following kludge is for MIT's SAP/Version server hack
-#
-
-SGDEF = gssapi32.def
-SKDEF = krb5_32.def
-SGLIB = $(OUTPRE)sapgss32.lib
-SKLIB = $(OUTPRE)sapkrb32.lib
-
 KRB5RC = krb5.rc
 VERSIONRC = $(BUILDTOP)\windows\version.rc
 
 WINLIBS = kernel32.lib wsock32.lib user32.lib shell32.lib oldnames.lib \
        version.lib advapi32.lib gdi32.lib
-WINDLLFLAGS = $(LINKOPTS) -base:0x1c000000
+WINDLLFLAGS = $(DLL_LINKOPTS) -base:0x1c000000
 
 NO_GLUE=$(OUTPRE)no_glue.obj
 K5_GLUE=$(OUTPRE)k5_glue.obj
 K4_GLUE=$(OUTPRE)k4_glue.obj
 GSS_GLUE=$(OUTPRE)gss_glue.obj
-SAP_GLUE=$(OUTPRE)sap_glue.obj
 
 CGLUE=$(NO_GLUE)
 PGLUE=$(NO_GLUE)
 KGLUE=$(K5_GLUE)
 GGLUE=$(GSS_GLUE)
 K4GLUE=$(K4_GLUE)
-SKGLUE=$(SAP_GLUE)
 
 RCFLAGS=$(CPPFLAGS) -D_WIN32 -D_MSDOS_ -DRES_ONLY
 
@@ -86,8 +73,6 @@ RCFLAGS=$(CPPFLAGS) -D_WIN32 -D_MSDOS_ -DRES_ONLY
 ##WIN32##KRES=$(KLIB:.lib=.res)
 ##WIN32##GRES=$(GLIB:.lib=.res)
 ##WIN32##K4RES=$(K4LIB:.lib=.res)
-##WIN32##SKRES=$(SKLIB:.lib=.res)
-##WIN32##SGRES=$(SGLIB:.lib=.res)
 
 ##WIN32##$(CRES): $(VERSIONRC)
 ##WIN32##      $(RC) $(RCFLAGS) -DCE_LIB -fo $@ -r $**
@@ -99,10 +84,6 @@ RCFLAGS=$(CPPFLAGS) -D_WIN32 -D_MSDOS_ -DRES_ONLY
 ##WIN32##      $(RC) $(RCFLAGS) -DKRB4_LIB -fo $@ -r $**
 ##WIN32##$(GRES): $(VERSIONRC)
 ##WIN32##      $(RC) $(RCFLAGS) -DGSSAPI_LIB -fo $@ -r $**
-##WIN32##$(SKRES): $(KRB5RC)
-##WIN32##      $(RC) $(RCFLAGS) -DSAPKRB_LIB -fo $@ -r $**
-##WIN32##$(SGRES): $(VERSIONRC)
-##WIN32##      $(RC) $(RCFLAGS) -DSAPGSS_LIB -fo $@ -r $**
 ##WIN32##$(KRB5RC): $(VERSIONRC)
 
 ##WIN32##$(CLIB): $(CDEF) $(CLIBS) $(CGLUE) $(CRES)
@@ -113,9 +94,9 @@ RCFLAGS=$(CPPFLAGS) -D_WIN32 -D_MSDOS_ -DRES_ONLY
 ##WIN32##      link $(WINDLLFLAGS) -def:$(PDEF) -out:$*.dll \
 ##WIN32##        $(PLIBS) $(PGLUE) $(PRES) $(CLIB) $(WINLIBS)
 
-##WIN32##$(KLIB): $(KDEF) $(KLIBS) $(KGLUE) $(KRES) $(CLIB) $(MITLIBS)
+##WIN32##$(KLIB): $(KDEF) $(KLIBS) $(KGLUE) $(KRES) $(CLIB) $(MITLIBS) $(DNSLIBS)
 ##WIN32##      link $(WINDLLFLAGS) -def:$(KDEF) -out:$*.dll \
-##WIN32##        $(KLIBS) $(KGLUE) $(KRES) $(CLIB) $(MITLIBS) $(WINLIBS)
+##WIN32##        $(KLIBS) $(KGLUE) $(KRES) $(CLIB) $(MITLIBS) $(DNSLIBS) $(WINLIBS)
 
 ##WIN32##$(GLIB): $(GDEF) $(GLIBS) $(GGLUE) $(GRES) $(KLIB) $(CLIB)
 ##WIN32##      link $(WINDLLFLAGS) -def:$(GDEF) -out:$*.dll \
@@ -125,26 +106,14 @@ RCFLAGS=$(CPPFLAGS) -D_WIN32 -D_MSDOS_ -DRES_ONLY
 ##WIN32##      link $(WINDLLFLAGS) -def:$(K4DEF) -out:$*.dll \
 ##WIN32##        $(K4LIBS) $(K4GLUE) $(K4RES) $(KLIB) $(CLIB) $(PLIB) $(WINLIBS)
 
-##WIN32##$(SKLIB): $(KDEF) $(KLIBS) $(SKGLUE) $(SKRES) $(CLIB) $(MITLIBS)
-##WIN32##      link $(WINDLLFLAGS) -def:$(KDEF) -out:$*.dll \
-##WIN32##        $(KLIBS) $(SKGLUE) $(SKRES) $(CLIB) $(MITLIBS) $(WINLIBS)
-
-##WIN32##$(SGLIB): $(GDEF) $(GLIBS) $(GGLUE) $(SGRES) $(SKLIB) $(CLIB) $(MITLIBS)
-##WIN32##      link $(WINDLLFLAGS) -def:$(GDEF) -out:$*.dll \
-##WIN32##        $(GLIBS) $(GGLUE) $(SGRES) $(SKLIB) $(CLIB) $(MITLIBS) $(WINLIBS)
-
-##MIT##lib-windows:: $(SKLIB) $(SGLIB) 
-
 $(K5_GLUE): win_glue.c
-       $(CC) $(CFLAGS) $(MITFLAGS) /c /DKRB5=1 /Fo$@ $**
-$(SAP_GLUE): win_glue.c
-       $(CC) $(CFLAGS) $(MITFLAGS) /DSAP_VERSERV=1 /DKRB5=1 /c /Fo$@ $**
+       $(CC) $(ALL_CFLAGS) $(MITFLAGS) /c /DKRB5=1 /Fo$@ $**
 $(K4_GLUE): win_glue.c
-       $(CC) $(CFLAGS) /c /DKRB4=1 /Fo$@ $**
+       $(CC) $(ALL_CFLAGS) /c /DKRB4=1 /Fo$@ $**
 $(GSS_GLUE): win_glue.c
-       $(CC) $(CFLAGS) /c /DGSSAPI=1 /Fo$@ $**
+       $(CC) $(ALL_CFLAGS) /c /DGSSAPI=1 /Fo$@ $**
 $(NO_GLUE): win_glue.c
-       $(CC) $(CFLAGS) /c /Fo$@ $**
+       $(CC) $(ALL_CFLAGS) /c /Fo$@ $**
 
 # Build Convenience
 comerr.lib: $(CLIB)
diff --git a/src/lib/comerr16.def b/src/lib/comerr16.def
deleted file mode 100644 (file)
index c85c4bc..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-LIBRARY                COMERR16
-DESCRIPTION    'DLL for ComErr'
-EXETYPE                WINDOWS
-CODE           PRELOAD MOVEABLE DISCARDABLE
-DATA           PRELOAD MOVEABLE SINGLE
-HEAPSIZE       8192
-
-EXPORTS
-       WEP                                     @1001 RESIDENTNAME
-       LibMain                                 @1002
-;
-       _com_err
-       com_err_va
-       error_message
-       add_error_table
-       remove_error_table
index 7d4cf47d64055cf3fd6c4ec9cc8a94644de28ffc..1f7ccce1769f9087bd4e0b1654a888c8f27168fe 100644 (file)
@@ -1,3 +1,25 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-26  Tom Yu  <tlyu@mit.edu>
+
+       * etypes.c: Add aliases "des" for "des-cbc-md5", "des3-hmac-sha1"
+       and "des3-cbc-sha1-kd" for "des3-cbc-sha1".
+
+       * cksumtypes.c: Add alias "hmac-sha1-des3-kd".
+
+1999-08-18  Tom Yu  <tlyu@mit.edu>
+
+       * etypes.c: Update des3-cbc-sha1 to alignt with new number
+       assignments.
+
+       * cksumtypes.c: Update hmac-sha1-des3 to align with new number
+       assignments.
+
 Tue May 18 19:52:56 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Remove - from recursive Win32 make invocation.
index 27956feea47520b9a66c300430667aefdd7aa56e..d86325bf824c79fb3f7ddb799d865f39e4c70a2d 100644 (file)
@@ -4,7 +4,7 @@ mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
 LOCAL_SUBDIRS=crc32 des dk enc_provider hash_provider keyhash_provider \
        md4 md5 old raw sha1
-CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/enc_provider \
+LOCALINCLUDES = -I$(srcdir)/enc_provider \
        -I$(srcdir)/hash_provider -I$(srcdir)/keyhash_provider \
        -I$(srcdir)/old -I$(srcdir)/raw -I$(srcdir)/dk
 
index 8107d3b8f7fb2310ac931d05098330686a2a21aa..8f3d211754a1134a1070201eef5b0ca293e3f527 100644 (file)
@@ -63,8 +63,12 @@ struct krb5_cksumtypes krb5_cksumtypes_list[] = {
       0, NULL,
       &krb5_hash_sha1 },
 
-    { CKSUMTYPE_HMAC_SHA1, KRB5_CKSUMFLAG_DERIVE,
-      "hmac-sha1", "HMAC-SHA1",
+    { CKSUMTYPE_HMAC_SHA1_DES3, KRB5_CKSUMFLAG_DERIVE,
+      "hmac-sha1-des3", "HMAC-SHA1 DES3 key",
+      0, NULL,
+      &krb5_hash_sha1 },
+    { CKSUMTYPE_HMAC_SHA1_DES3, KRB5_CKSUMFLAG_DERIVE,
+      "hmac-sha1-des3-kd", "HMAC-SHA1 DES3 key", /* alias */
       0, NULL,
       &krb5_hash_sha1 },
 };
index 850d845f331002e36338390bfcec35330f58b2cf..761f19ee72a7e9e401decf25f98903f57b4447e8 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:15:59 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 03dbc1519aecf4fcf8495a9bbc7fec8c115db8a4..7136a386ad9fbeec312f9e23e4652fdf0cdc66c6 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/crypto/crc32
 mydir=crc32
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=crc32
index 1b05b9ac6a79604bb70552ca6148245ad75e81c5..e366d697038d49b91963817d1661a06cf7fa6540 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 60afb3f4a212063da92abc9b7482d61f99825ce2..313076f92b2c67c4e46e01bb53c1a19a92b2e0b5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 654981fc9f22fcf9584d138acd588a01e54977af..9b2bc4f6ac39e9fe072178fe70e25897cf9a9305 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5f4fbd8c0fc142d618f12bb00ab99c0a50660302..2f9265a484b0dee5171146b39eb1e938b446ff86 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 34ac883ccdee269bd0dcb564f8c0cf807e882b2e..f5b88409eec88d427e31dc587fdecf9ddcd8cd1a 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:16:18 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 3e25c47238aced6592431a285c8e72649f4e8d64..2634584f7283db58f94fcc9428e5de2ba80e36f5 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/crypto/des
 mydir=des
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=des
index 0f81908615f92f97d22271911846ce6728bc8080..de8f2a480cc8c8de70fd40fe43b3fe70abb831c0 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index bf442e8698a86147fdbfb8024b7225b014dc9475..1decbe80a2d46b638049f448b04168e0694f5fcd 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 651af88eff649c1b21f9f2e80cc06ed4e24d66c3..c84451dbc355b8673fdf6861260de30323d79fe1 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 79b7c9cbd84602612e281dfb8e70166e1e844cfb..5381fdbc9adfb3a47bdcfbb5b3cdc4b6f08f000a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index e8a7dc0eed89e864b414960a98c50cb18e0783be..01b9f7c4085e8f73c65e730ec8da477bb74bfdcd 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index bc6b20264b1ce91756271c8521f15cb0e235f879..a64b2f5ad1edb57cc60e83026d941440852ecd79 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 1edb32e38760fc677f991161aa7080017b125d49..d57857e8258a8874bbe0ac04a3fa53e28aa95d7b 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-06-28  Tom Yu  <tlyu@mit.edu>
 
        * dk_encrypt.c (krb5_marc_dk_encrypt): Call
index 88c3ad31cab9f78188c181d67e263e56180b3c78..2b4b14afc6c8d341d4c41a2319cb05be9ada1b74 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/crypto/dk
 mydir=dk
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/..
+LOCALINCLUDES = -I$(srcdir)/..
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=dk
index 0a6e666da14672e64dd80d9a3eddf4d31217d2d4..9154340aeb7242bafc94dec20408b5f76ea028ce 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:16:54 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index f757bf66ac3785def1ddc6263fd05d5e4512b907..e0672a21936836b06747171924378fabfdf6ca0b 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/crypto/enc_provider
 mydir=enc_provider
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/../des
+LOCALINCLUDES = -I$(srcdir)/../des
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=enc_provider
index 4d16aa96a7b5291f5968b30f5e5730262808c197..fe4b71033294f563413bb7a5a96f8c0dd558deea 100644 (file)
@@ -54,6 +54,11 @@ struct krb5_keytypes krb5_enctypes_list[] = {
       &krb5_enc_des, &krb5_hash_md5,
       krb5_old_encrypt_length, krb5_old_encrypt, krb5_old_decrypt,
       krb5_des_string_to_key },
+    { ENCTYPE_DES_CBC_MD5,
+      "des", "DES cbc mode with RSA-MD5", /* alias */
+      &krb5_enc_des, &krb5_hash_md5,
+      krb5_old_encrypt_length, krb5_old_encrypt, krb5_old_decrypt,
+      krb5_des_string_to_key },
 
     { ENCTYPE_DES_CBC_RAW,
       "des-cbc-raw", "DES cbc mode raw",
@@ -66,17 +71,32 @@ struct krb5_keytypes krb5_enctypes_list[] = {
       krb5_raw_encrypt_length, krb5_raw_encrypt, krb5_raw_decrypt,
       krb5_dk_string_to_key },
 
-    { ENCTYPE_DES3_HMAC_SHA1,
-      "des3-hmac-sha1", "Triple DES with HMAC/sha1",
+    { ENCTYPE_DES3_CBC_SHA1,
+      "des3-cbc-sha1", "Triple DES cbc mode with HMAC/sha1",
       &krb5_enc_des3, &krb5_hash_sha1,
       krb5_dk_encrypt_length, krb5_dk_encrypt, krb5_dk_decrypt,
       krb5_dk_string_to_key },
+    { ENCTYPE_DES3_CBC_SHA1,   /* alias */
+      "des3-hmac-sha1", "Triple DES cbc mode with HMAC/sha1",
+      &krb5_enc_des3, &krb5_hash_sha1,
+      krb5_dk_encrypt_length, krb5_dk_encrypt, krb5_dk_decrypt,
+      krb5_dk_string_to_key },
+    { ENCTYPE_DES3_CBC_SHA1,   /* alias */
+      "des3-cbc-sha1-kd", "Triple DES cbc mode with HMAC/sha1",
+      &krb5_enc_des3, &krb5_hash_sha1,
+      krb5_dk_encrypt_length, krb5_dk_encrypt, krb5_dk_decrypt,
+      krb5_dk_string_to_key },
+
     { ENCTYPE_DES_HMAC_SHA1,
       "des-hmac-sha1", "DES with HMAC/sha1",
       &krb5_enc_des, &krb5_hash_sha1,
       krb5_dk_encrypt_length, krb5_dk_encrypt, krb5_dk_decrypt,
       krb5_dk_string_to_key },
 #ifdef ATHENA_DES3_KLUDGE
+    /*
+     * If you are using this, you're almost certainly doing the
+     * Wrong Thing.
+     */
     { ENCTYPE_LOCAL_DES3_HMAC_SHA1,
       "des3-marc-hmac-sha1",
       "Triple DES with HMAC/sha1 and 32-bit length code",
index acdc4b0e77e7ff8905b94856bb59bb01c008a504..195d1ea6690b5158d2a0223d7fc36aa7df5b7105 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:19:03 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 1b2c988c52e7e79b5fe59efd3a11a5a4e37a416a..e5ba5cce74d1a0d189e5ce1f041e403e427de4af 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/crypto/hash_provider
 mydir=hash_provider
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/../crc32 -I$(srcdir)/../md4 \
+LOCALINCLUDES = -I$(srcdir)/../crc32 -I$(srcdir)/../md4 \
        -I$(srcdir)/../md5 -I$(srcdir)/../sha1
 
 ##DOS##BUILDTOP = ..\..\..
index f1d25b37fa428a209778f54d2ca51279bc606a79..9fcdcada3ed5f23bf005edebc76f0384195e4d6f 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:19:24 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index a9317a9b559b35829159a33f701313e25d30a2b9..50c9d352f71b1e086968980a66c97d2b344c07fc 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/crypto/keyhash_provider
 mydir=keyhash_provider
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/../des -I$(srcdir)/../md4 \
+LOCALINCLUDES = -I$(srcdir)/../des -I$(srcdir)/../md4 \
        -I$(srcdir)/../md5
 
 ##DOS##BUILDTOP = ..\..\..
@@ -30,10 +30,10 @@ includes:: depend
 depend:: $(SRCS)
 
 t_cksum4.o: $(srcdir)/t_cksum.c
-       $(CC) -DMD=4 $(CFLAGS) -o t_cksum4.o -c $(srcdir)/t_cksum.c
+       $(CC) -DMD=4 $(ALL_CFLAGS) -o t_cksum4.o -c $(srcdir)/t_cksum.c
 
 t_cksum5.o: $(srcdir)/t_cksum.c
-       $(CC) -DMD=5 $(CFLAGS) -o t_cksum5.o -c $(srcdir)/t_cksum.c
+       $(CC) -DMD=5 $(ALL_CFLAGS) -o t_cksum5.o -c $(srcdir)/t_cksum.c
 
 t_cksum4: t_cksum4.o $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o t_cksum4 t_cksum4.o $(KRB5_BASE_LIBS)
index c9eecc7ca61d33246a1051a6aff9c9f0fa0d00ad..b153103498e4d2d68672616dc6372508a05d3cea 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 254ecd6a5aeab61bf86977262409a33188837f44..2b40477f2afd30973c8761b9bfdd076e0a0875c9 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:19:48 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index ba212a73aca0828024a93912cb8c7f04fc8c82db..f5c7d261fda593feb21ef9089455beaf69c7d592 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/crypto/md4
 mydir=md4
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)  -I$(srcdir)
+LOCALINCLUDES = -I$(srcdir)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=md4
@@ -32,13 +32,13 @@ t_mddriver.c: $(srcdir)/../md5/t_mddriver.c
        $(CP) $(srcdir)/../md5/t_mddriver.c t_mddriver.c
 
 t_mddriver.o: t_mddriver.c
-       $(CC) -DMD=4 $(CFLAGS) -c  t_mddriver.c
+       $(CC) -DMD=4 $(ALL_CFLAGS) -c  t_mddriver.c
 
 t_mddriver: t_mddriver.o md4.o
-       $(CC) $(CFLAGS) -o t_mddriver t_mddriver.o md4.o
+       $(CC) $(ALL_CFLAGS) -o t_mddriver t_mddriver.o md4.o
 
 $(OUTPRE)t_mddriver.obj: t_mddriver.c
-       $(CC) -DMD=4 $(CFLAGS) -Fo$@ -c $**
+       $(CC) -DMD=4 $(ALL_CFLAGS) -Fo$@ -c $**
 
 $(OUTPRE)t_mddriver.exe: $(OUTPRE)t_mddriver.obj $(OUTPRE)md4.obj
        link -out:$@ $**
index 5ab4151c9a991443c2945ccacfe3c88c0b19dc69..0970dcbae94b2abae10570de1eaf4f6e7cea063f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 06698f7c594b281e5e30b2939e00b3957fc65b81..6d421ac83b3d08a943a2cce8693268e5ed6aa6bd 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:20:16 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 896de961e1d3c71ac2b84c8b12c2c5ed6d4f5698..98d0b310510bd3307d57af643703bab77f33a6ff 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/crypto/md5
 mydir=md5
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=md5
@@ -29,7 +28,7 @@ includes:: depend
 depend:: $(SRCS)
 
 t_mddriver: t_mddriver.o md5.o
-       $(CC) $(CFLAGS) $(LDFLAGS) -o t_mddriver t_mddriver.o md5.o
+       $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o t_mddriver t_mddriver.o md5.o
 
 $(OUTPRE)t_mddriver.exe: $(OUTPRE)t_mddriver.obj $(OUTPRE)md5.obj
        link -out:$@ $**
index 5bc63709d26465727297b0c3e953499d0161d21b..17ecd51d7c466dc1d56b4580eec2e5ee2928d50d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index c3368c68dd288a39037865b2460d35be784110c4..ba4eadfd6bb5de85510cd3f3fa1432a5e68bf7a7 100644 (file)
@@ -1,3 +1,16 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-25  Ken Raeburn  <raeburn@mit.edu>
+
+       * old_decrypt.c (memmove) [HAVE_BCOPY && !HAVE_MEMMOVE]: Define to
+       use bcopy.  Should work unless any system has no memmove *and*
+       bcopy isn't safe with overlaps.
+
 Mon May 10 15:20:32 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index f808ed66b231f58d27a1364fa9e42920d5cf83e0..cab1b3511916e0c3474c7b784800ddc466083e4d 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/crypto/old
 mydir=old
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/../des
+LOCALINCLUDES = -I$(srcdir)/../des
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=old
index 26019e1644d5ee826058b6500fadb4ca0057c356..2d22648e2d6459e18b22d4ff536c1eb9b20ce804 100644 (file)
 #include "k5-int.h"
 #include "old.h"
 
+#ifndef HAVE_MEMMOVE
+#ifdef HAVE_BCOPY
+#define memmove(dst,src,size) bcopy(src,dst,size)
+#endif
+#endif
+
 krb5_error_code
 krb5_old_decrypt(enc, hash, key, usage, ivec, input, arg_output)
      krb5_const struct krb5_enc_provider *enc;
index f8f2244e9d49b93c37f30e6a3826e9c56ebe321b..25f1d1d8310016c9dd62f3540441b00593a01038 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:20:51 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 427bb6b4eda967c90643d44ffe14256281c8799b..e3ca3c673d50c13aa3f9271041305c08d8619ed2 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/crypto/raw
 mydir=raw
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=raw
index 426acc040c6fe25879bb415c51b7277833acfa8e..938307da1fcd82bca38767f0cba41a6abe6312e3 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:21:10 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 2f8cea108078734fa3fb224a072f8e9b15e0e31e..5d1b69c4f9e7a6c2207243f57472b6eb7f61c397 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/crypto/sha1
 mydir=sha1
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=sha1
@@ -29,7 +28,7 @@ includes:: depend
 depend:: $(SRCS)
 
 t_shs: t_shs.o shs.o
-       $(CC) $(CFLAGS) $(LDFLAGS) -o t_shs t_shs.o shs.o
+       $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o t_shs t_shs.o shs.o
 
 $(OUTPRE)t_shs.exe: $(OUTPRE)t_shs.obj $(OUTPRE)shs.obj
        link -out:$@ $**
index 2693318e14e78427e011f99f4fc327bf38e9db45..ec59b1a13afc722ac96e7584c8938f87810167e2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3fd4f3315bab44ee6d35d8ac7ac4f09e503e3a9f..dacafc3dbc2e0b082324437146cf786f78fa399a 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:21:30 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 57e6a0466b3f4161fd42ff47a868554ba79fdbc9..863a34d237d43f44a2d28096cabf7d2089be3d8a 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=.
 myfulldir=lib/des425
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)/../crypto/des -I$(srcdir)/../../include/kerberosIV
+LOCALINCLUDES = -I$(srcdir)/../crypto/des -I$(srcdir)/../../include/kerberosIV
 
 ##DOS##BUILDTOP = ..\..
 ##DOS##LIBNAME=$(OUTPRE)des425.lib
index abd48c3a2bd838841a6acd02728f408979252443..b53dbfcd572a6da458637a86d1026975af92d0ca 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b5db9dd6d6caf1e6ac91abf94c7f5ce7a5b28bca..7a4520d6fe69cc4e321b68d29c37b92ebd70e522 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f9f65124705ab065c6f0302dc3affc2303f70d2a..da91b996c2076fa7e322cefcaa25484ad7fc15da 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f0225cbf246a585adf2807a7a889386b6177c123..7a6be15b4ae0a7a69bfb284d0c16246155b477e8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0087306e19a9514406726d3eb1d5b380b542db8b..cab18910b0b78b0e5a7363d2cec56b9c92a3a515 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 4bb5934258db780cec43f981b0c2d3b2aee90c53..6a3cae8dc1654891255ec9f70742de5eb06df397 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index cb4ecee968b8941de68837a04eb4becb1b8b6808..6f9e24b109c2c5f64bb5d21487248fbf5918d004 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4dd2e4be76c5ae30090b291613718c7b374f6548..2e42719b29dbc06716eb3ea622b339e41f036047 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 73e2af2b7356cd3aac57aa56ab2a60de4b869ca0..4ae542ff5efe4fe12deefd597b2d1c010a105672 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index fde324dece48c37ffe3317c11c8120aa0277eb9c..5fb92b779c297bdc9e32b6a348d39b7498bcfaaf 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index bb3c2465c9b0231bebd1cd44b6518f31ca991ea3..e9e58bcc97b773dffba3ddb51289372757bd8221 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3a2dcdcb6652c03ad7639f87ac8f925c25183e34..44fb143dc4cd7f0c9518492c88b1fe66b7529ad4 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 58ed9a3cdb4ebdf637357310217049a497ca1a92..c8efbce25a35b2bb1c49067bed28b18fd092db5f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7be470d2175997ed98f7d344c422aa98736a11a1..bff3c47dad134530f608fbd57e7f18552a930cea 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 49f31bd141818304378478c6c2b460878cd558c5..948451db5801808de9f1fa4dcb4a36f37e875095 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5a3ccbe87c7cd18674f0596ae9704386cf77a86d..234c95348a66083db90cfb1405a166ab167945a5 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Wed May 19 13:23:16 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Improve rule to create gssapi include dir under
index 811fb2c2d46538ebbe82ef71b32aae9568404a4d..5952a28b03d8ee9a44a002a7d9f2443eb0288bd9 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/gssapi/generic
 mydir=generic
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I. -I$(srcdir)
+LOCALINCLUDES = -I. -I$(srcdir)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=generic
index 0e893439358473f6d231d295397c2a61f281f979..477e071634f797be54c85f9141d82dd4bb431e69 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index ecd2c13543141bdf377269a6b403a4183f4340fc..1ed2008a52da254657a5c24470a8ad70e8c18298 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a6b5a11f1f7659efd9714be61832aa36bf79a642..0af19dc9b70c519cf671eb1ecdd969bce6fdaaca 100644 (file)
@@ -1,3 +1,18 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-27  Tom Yu  <tlyu@mit.edu>
+
+       * accept_sec_context.c (krb5_gss_accept_sec_context): Disable
+       krb5-mech2 stuff for now.
+
+       * init_sec_context.c (make_ap_req_v2): Disable krb5-mech2 stuff
+       for now.
+
 Wed May 19 13:21:55 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Improve rule to create gssapi include dir under
index 6eb2a17dc360bd88ca8aca06cceb5508b18f6500..a8f5f8ff7fc75262189565e4b288079cee505ad5 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/gssapi/krb5
 mydir=krb5
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I. -I$(srcdir) -I../generic -I$(srcdir)/../generic
+LOCALINCLUDES = -I. -I$(srcdir) -I../generic -I$(srcdir)/../generic
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=krb5
index 0ac945c45b35ab620c1a648009f4ab97eb2a3743..4c037e490669c804b342538961539d27589c7d0d 100644 (file)
@@ -49,6 +49,7 @@
 #include "k5-int.h"
 #include "gssapiP_krb5.h"
 #include <memory.h>
+#include <assert.h>
 
 /*
  * $Id$
@@ -769,101 +770,8 @@ krb5_gss_accept_sec_context(minor_status, context_handle,
        ctx->established = 1;
 
        if (ctx->gsskrb5_version == 2000) {
-          krb5_ui_4 tok_flags;
-
-          tok_flags =
-              (ctx->gss_flags & GSS_C_DELEG_FLAG)?KG2_RESP_FLAG_DELEG_OK:0;
-
-          cksumdata.length = 8 + 4*ctx->nctypes + 4;
-
-          if ((cksumdata.data = (char *) malloc(cksumdata.length)) == NULL) {
-              code = ENOMEM;
-              major_status = GSS_S_FAILURE;
-              goto fail;
-          }
-
-          /* construct the token fields */
-
-          ptr = cksumdata.data;
-
-          ptr[0] = (KG2_TOK_RESPONSE >> 8) & 0xff;
-          ptr[1] = KG2_TOK_RESPONSE & 0xff;
-
-          ptr[2] = (tok_flags >> 24) & 0xff;
-          ptr[3] = (tok_flags >> 16) & 0xff;
-          ptr[4] = (tok_flags >> 8) & 0xff;
-          ptr[5] = tok_flags & 0xff;
-
-          ptr[6] = (ctx->nctypes >> 8) & 0xff;
-          ptr[7] = ctx->nctypes & 0xff;
-
-          ptr += 8;
-
-          for (i=0; i<ctx->nctypes; i++) {
-              ptr[i] = (ctx->ctypes[i] >> 24) & 0xff;
-              ptr[i+1] = (ctx->ctypes[i] >> 16) & 0xff;
-              ptr[i+2] = (ctx->ctypes[i] >> 8) & 0xff;
-              ptr[i+3] = ctx->ctypes[i] & 0xff;
-
-              ptr += 4;
-          }
-
-          memset(ptr, 0, 4);
-
-          /* make the MIC token */
-
-          {
-              gss_buffer_desc text, token;
-
-              text.length = cksumdata.length;
-              text.value = cksumdata.data;
-
-              /* ctx->seq_send must be set before this call */
-
-              if (GSS_ERROR(major_status =
-                            krb5_gss_get_mic(&code, ctx,
-                                             GSS_C_QOP_DEFAULT,
-                                             &text, &token)))
-                  goto fail;
-
-              mic.length = token.length;
-              mic.data = token.value;
-          }
-
-          token.length = g_token_size((gss_OID) mech_used,
-                                      (cksumdata.length-2)+4+ap_rep.length+
-                                      mic.length);
-
-          if ((token.value = (unsigned char *) xmalloc(token.length))
-              == NULL) {
-              code = ENOMEM;
-              major_status = GSS_S_FAILURE;
-              goto fail;
-          }
-          ptr = token.value;
-          g_make_token_header((gss_OID) mech_used,
-                              (cksumdata.length-2)+4+ap_rep.length+mic.length,
-                              &ptr, KG2_TOK_RESPONSE);
-
-          memcpy(ptr, cksumdata.data+2, cksumdata.length-2);
-          ptr += cksumdata.length-2;
-
-          ptr[0] = (ap_rep.length >> 8) & 0xff;
-          ptr[1] = ap_rep.length & 0xff;
-          memcpy(ptr+2, ap_rep.data, ap_rep.length);
-
-          ptr += (2+ap_rep.length);
-
-          ptr[0] = (mic.length >> 8) & 0xff;
-          ptr[1] = mic.length & 0xff;
-          memcpy(ptr+2, mic.data, mic.length);
-
-          ptr += (2+mic.length);
-
-          free(cksumdata.data);
-          cksumdata.data = 0;
-
-          /* gss krb5 v2 */
+          int krb5_mech2_supported = 0;
+          assert(krb5_mech2_supported);
        } else {
           /* gss krb5 v1 */
 
index 688366e1f96e69da2b8c04eea17a168a1aa8d4af..169fe6b584fb6c0e88cc6e54118711c8a4fe1b2a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 93e950345cb3c01fb53b9d92a968eeecc47d8cc5..3b8506cb02761154e340897a960ea53e041cdc29 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 23cb080e04e33ebe2c3746f28827d9516487fd35..5671e5e9af71c9bc7bb9946b535d8bb969036fda 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 07a7659ee97e0c8f77e6bdfc9ac2b6e5465aca68..fc4b0ace2565d6ba01ff139274662c129bcf87bc 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 141736b9bdeca9440f0ba7488ca1483932c93491..fd5415a56aa3e4a3fb7ff12688dd498fc0deedc7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index fb11cf5a2d4ecaf5b750f68a7a9d557df97fa6f3..878c8abd7d5df8dd5d195b9f6c1926d5aff811ee 100644 (file)
@@ -49,6 +49,7 @@
 #include "gssapiP_krb5.h"
 #include <memory.h>
 #include <stdlib.h>
+#include <assert.h>
 
 /*
  * $Id$
@@ -117,196 +118,8 @@ make_ap_req_v2(context, ctx, cred, k_cred, chan_bindings, mech_type, token)
     gss_OID mech_type;
     gss_buffer_t token;
 {
-    krb5_flags mk_req_flags = 0;
-    krb5_int32 con_flags;
-    krb5_error_code code;
-    krb5_data credmsg, cksumdata, ap_req;
-    int i, tlen, cblen, nctypes;
-    krb5_cksumtype *ctypes;
-    unsigned char *t, *ptr;
-
-    credmsg.data = 0;
-    cksumdata.data = 0;
-    ap_req.data = 0;
-    ctypes = 0;
-
-    /* create the option data if necessary */
-    if (ctx->gss_flags & GSS_C_DELEG_FLAG) {
-       /* first get KRB_CRED message, so we know its length */
-
-       /* clear the time check flag that was set in krb5_auth_con_init() */
-       krb5_auth_con_getflags(context, ctx->auth_context, &con_flags);
-       krb5_auth_con_setflags(context, ctx->auth_context,
-                              con_flags & ~KRB5_AUTH_CONTEXT_DO_TIME);
-
-       code = krb5_fwd_tgt_creds(context, ctx->auth_context, 0,
-                                 cred->princ, ctx->there, cred->ccache, 1,
-                                 &credmsg);
-
-       /* turn KRB5_AUTH_CONTEXT_DO_TIME back on */
-       krb5_auth_con_setflags(context, ctx->auth_context, con_flags);
-
-       if (code) {
-           /* don't fail here; just don't accept/do the delegation
-               request */
-           ctx->gss_flags &= ~GSS_C_DELEG_FLAG;
-       } else {
-           if (credmsg.length > KRB5_INT16_MAX) {
-               krb5_free_data_contents(context, &credmsg);
-               return(KRB5KRB_ERR_FIELD_TOOLONG);
-           }
-       }
-    } else {
-       credmsg.length = 0;
-    }
-       
-    /* construct the list of compatible cksum types */
-
-    if ((code = krb5_c_keyed_checksum_types(context,
-                                           k_cred->keyblock.enctype,
-                                           &nctypes, &ctypes)))
-       goto cleanup;
-
-    if (nctypes == 0) {
-       code = KRB5_CRYPTO_INTERNAL;
-       goto cleanup;
-    }
-
-    /* construct the checksum fields */
-
-    cblen = 4*5;
-    if (chan_bindings)
-       cblen += (chan_bindings->initiator_address.length+
-                 chan_bindings->acceptor_address.length+
-                 chan_bindings->application_data.length);
-
-    cksumdata.length = cblen + 8 + 4*nctypes + 4;
-    if (credmsg.length)
-       cksumdata.length += 4 + credmsg.length;
-
-    if ((cksumdata.data = (char *) malloc(cksumdata.length)) == NULL)
-       goto cleanup;
-
-    /* helper macros.  This code currently depends on a long being 32
-       bits, and htonl dtrt. */
-
-    ptr = cksumdata.data;
-
-    if (chan_bindings) {
-       TWRITE_INT(ptr, chan_bindings->initiator_addrtype, 1);
-       TWRITE_BUF(ptr, chan_bindings->initiator_address, 1);
-       TWRITE_INT(ptr, chan_bindings->acceptor_addrtype, 1);
-       TWRITE_BUF(ptr, chan_bindings->acceptor_address, 1);
-       TWRITE_BUF(ptr, chan_bindings->application_data, 1);
-    } else {
-       memset(ptr, 0, cblen);
-       ptr += cblen;
-    }
-
-    /* construct the token fields */
-
-    ptr[0] = (KG2_TOK_INITIAL >> 8) & 0xff;
-    ptr[1] = KG2_TOK_INITIAL & 0xff;
-
-    ptr[2] = (ctx->gss_flags >> 24) & 0xff;
-    ptr[3] = (ctx->gss_flags >> 16) & 0xff;
-    ptr[4] = (ctx->gss_flags >> 8) & 0xff;
-    ptr[5] = ctx->gss_flags & 0xff;
-
-    ptr[6] = (nctypes >> 8) & 0xff;
-    ptr[7] = nctypes & 0xff;
-
-    ptr += 8;
-
-    for (i=0; i<nctypes; i++) {
-       ptr[0] = (ctypes[i] >> 24) & 0xff;
-       ptr[1] = (ctypes[i] >> 16) & 0xff;
-       ptr[2] = (ctypes[i] >> 8) & 0xff;
-       ptr[3] = ctypes[i] & 0xff;
-
-       ptr += 4;
-    }
-
-    if (credmsg.length) {
-       ptr[0] = (KRB5_GSS_FOR_CREDS_OPTION >> 8) & 0xff;
-       ptr[1] = KRB5_GSS_FOR_CREDS_OPTION & 0xff;
-
-       ptr[2] = (credmsg.length >> 8) & 0xff;
-       ptr[3] = credmsg.length & 0xff;
-
-       ptr += 4;
-
-       memcpy(ptr, credmsg.data, credmsg.length);
-
-       ptr += credmsg.length;
-    }
-
-    memset(ptr, 0, 4);
-
-    /* call mk_req.  subkey and ap_req need to be used or destroyed */
-
-    mk_req_flags = AP_OPTS_USE_SUBKEY;
-
-    if (ctx->gss_flags & GSS_C_MUTUAL_FLAG)
-       mk_req_flags |= AP_OPTS_MUTUAL_REQUIRED;
-
-    if ((code = krb5_mk_req_extended(context, &ctx->auth_context, mk_req_flags,
-                                    &cksumdata, k_cred, &ap_req)))
-       goto cleanup;
-
-   /* store the interesting stuff from creds and authent */
-   ctx->endtime = k_cred->times.endtime;
-   ctx->krb_flags = k_cred->ticket_flags;
-
-   /* build up the token */
-
-   /* allocate space for the token */
-   tlen = g_token_size((gss_OID) mech_type,
-                      (cksumdata.length-(2+cblen))+2+ap_req.length);
-
-   if ((t = (unsigned char *) xmalloc(tlen)) == NULL) {
-      code = ENOMEM;
-      goto cleanup;
-   }
-
-   ptr = t;
-
-   g_make_token_header((gss_OID) mech_type,
-                      (cksumdata.length-(2+cblen))+2+ap_req.length,
-                      &ptr, KG2_TOK_INITIAL);
-
-   /* skip over the channel bindings and the token id */
-   memcpy(ptr, cksumdata.data+cblen+2, cksumdata.length-(cblen+2));
-   ptr += cksumdata.length-(cblen+2);
-   ptr[0] = (ap_req.length >> 8) & 0xff;
-   ptr[1] = ap_req.length & 0xff;
-   ptr += 2;
-   memcpy(ptr, ap_req.data, ap_req.length);
-
-   /* pass allocated data back */
-
-   ctx->nctypes = nctypes;
-   ctx->ctypes = ctypes;
-
-   token->length = tlen;
-   token->value = (void *) t;
-
-   code = 0;
-
-cleanup:
-   if (code) {
-       if (ctypes)
-          krb5_free_cksumtypes(context, ctypes);
-   }
-
-   if (credmsg.data)
-       free(credmsg.data);
-   if (ap_req.data)
-       free(ap_req.data);
-   if (cksumdata.data)
-       free(cksumdata.data);
-
-   return(code);
+    int krb5_mech2_supported = 0;
+    assert(krb5_mech2_supported);
 }
 
 static krb5_error_code
index 01a1994301f106685bce12e115fee5acd56ffdcd..ba95a3bc128b12de31e4c3fc4d69b2f41e693006 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index afb2171b865f297a09628dd93047eddd6219a48e..066daf4147cccae8cc316bac34a2a1a767673e34 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 36a16d426e4249e1c067e1b233bd658654c63c6d..2a6231ee79f5ad6623e69c9a290f417fdc36efda 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 785fe90bebde1c238526bfcca6b5297beceb5a2a..aea1765bc2a463323e7ee647ec1307672dbf70ee 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index da48eb0369abd4faea9f4db6c916efd4636d63d0..16d91fd438917ce9fe993773763064725ae14fab 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:22:42 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 3b7c17d7729fffcfccdc3d46d82fdb2afd8271c8..0c4ddfee7d0fbc286f97d5dffc26168ed8984521 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=.
 myfulldir=lib/gssapi/mechglue
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I. -I$(srcdir)
+LOCALINCLUDES = -I. -I$(srcdir)
 
 ##DOSBUILDTOP = ..\..\..
 ##DOSLIBNAME=..\$(OUTPRE)gssapi.$(LIBEXT)
@@ -85,8 +85,6 @@ OBJS  = $(OUTPRE)g_acquire_cred.$(OBJEXT) \
 EHDRDIR= $(BUILDTOP)$(S)include$(S)gssapi
 EXPORTED_HEADERS = mechglue.h
 
-.c.o:
-       $(CC) $(CFLAGS) -c $(srcdir)/$*.c
 @SHARED_RULE@
 
 all:: all-$(WHAT) 
index a78639690e937bf6d58c175979e854bde7ae09cf..5bb117af1b68069661ab2a0424999a621319f177 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index c173240b7c113ca5195c8b57bea380b74d60428a..f45e467a40d427460ba5af718a9c288631ca9787 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
diff --git a/src/lib/gssapi16.def b/src/lib/gssapi16.def
deleted file mode 100644 (file)
index cec2949..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-;----------------------------------------------------
-;   GSSAPI.DEF - GSSAPI.DLL module definition file
-;----------------------------------------------------
-
-LIBRARY                GSSAPI
-DESCRIPTION    'Base Generic Security Service API'
-EXETYPE                WINDOWS
-CODE           PRELOAD MOVEABLE DISCARDABLE
-DATA           PRELOAD MOVEABLE SINGLE
-HEAPSIZE       8192
-
-EXPORTS
-       WEP                                     @1001 RESIDENTNAME
-       LibMain                                 @1002
-;
-       gss_acquire_cred
-       gss_release_cred
-       gss_init_sec_context
-       gss_accept_sec_context
-       gss_process_context_token
-       gss_delete_sec_context
-       gss_context_time
-       gss_sign
-       gss_verify
-       gss_seal
-       gss_unseal
-       gss_display_status
-       gss_indicate_mechs
-       gss_compare_name
-       gss_display_name
-       gss_import_name
-       gss_release_name
-       gss_release_buffer
-       gss_release_oid_set
-       gss_inquire_cred
-;
-; GSS-API v2  additional credential calls
-;
-       gss_add_cred
-       gss_inquire_cred_by_mech
-;
-; GSS-API v2  additional context-level calls
-;
-       gss_inquire_context
-       gss_wrap_size_limit
-       gss_export_sec_context
-       gss_import_sec_context
-;
-; GSS-API v2  additional calls for OID and OID_set operations
-;
-       gss_release_oid
-       gss_create_empty_oid_set
-       gss_add_oid_set_member
-       gss_test_oid_set_member
-       gss_oid_to_str
-       gss_str_to_oid
-;
-; GSS-API v2  renamed message protection calls
-;
-       gss_wrap
-       gss_unwrap
-       gss_get_mic
-       gss_verify_mic
-;
-; GSS-API v2  future extensions
-;
-       gss_inquire_names_for_mech
-;      gss_inquire_mechs_for_name
-       gss_canonicalize_name
-       gss_export_name
-       gss_duplicate_name
-;
-; GSS-API variables
-;
-       _gss_nt_user_name
-       _gss_nt_machine_uid_name
-       _gss_nt_string_uid_name
-       _gss_nt_service_name
index 9c1aba73fd47382e6a4f1d3f472e1001113c7c88..15948cae136ca63ffd33e7155bda0ce1831b6449 100644 (file)
@@ -1,3 +1,33 @@
+1999-11-30  Ken Raeburn  <raeburn@mit.edu>
+
+       * alt_prof.c (kadm5_get_config_params): Fix bug in direction of
+       test while walking through whitespace.  Thanks to Matt Crawford.
+
+1999-10-29  Ken Raeburn  <raeburn@mit.edu>
+
+       * logger.c (klog_com_err_proc, klog_vsyslog): Use proper format
+       strings in syslog() calls too.
+       (lspec_parse_err_1, lspec_parse_err_2, log_file_err,
+       log_device_err, log_ufo_string, log_emerg_string,
+       log_alert_string, log_crit_string, log_err_string,
+       log_warning_string, log_notice_string, log_info_string,
+       log_debug_string): Replace char arrays with macros.
+       (klog_vsyslog): Convert pid_t to long for printing.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * logger.c (DEVICE_PRINT, klog_com_err_proc, klog_vsyslog): Use
+       proper format strings to fprintf, instead of net-supplied data.
+       Fold in writes of following end-of-line sequences when
+       appropriate.
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index f07583d1d8167145749c5ea482e6a3168b0f011b..6f5efaae3fa7ac8bb2623809525e8092d02a2e5d 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=.
 myfulldir=lib/kadm5
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 LOCAL_SUBDIRS = clnt srv unit-test
 
 ##DOSBUILDTOP = ..\..
index 934785322bac7d97e659315bd4090b82b92f4122..c4490de7904cb84891915bfb5b4f10dd84a8011d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
@@ -595,7 +598,7 @@ krb5_error_code kadm5_get_config_params(context, kdcprofile, kdcenv,
                  (ep = strchr(sp, (int) '\t'))) {
                   /* Fill in trailing whitespace of sp */
                   tp = ep - 1;
-                  while (isspace(*tp) && (tp < sp)) {
+                  while (isspace(*tp) && (tp > sp)) {
                        *tp = '\0';
                        tp--;
                   }
index 9bb42cb26eacb60123689d29478ea117a1e2fc7e..396d4d3a1d662ccea88106be1e6a5b332df5e72c 100644 (file)
@@ -1,3 +1,15 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-27  Tom Yu  <tlyu@mit.edu>
+
+       * client_init.c (_kadm5_init_any): Remove support for krb5-mech2
+       for now.
+
 Thu May 13 17:24:44 1999  Tom Yu  <tlyu@mit.edu>
 
        * client_init.c (_kadm5_init_any): Use gss_krb5_ccache_name() to
index 925c8b868d81e584d319c912d7c184ba2cf205fd..0fc00ffe83d83d8dfb1cc85374862630e1220042 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/kadm5/clnt
 mydir=clnt
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I$(BUILDTOP)/include/kadm5
+LOCALINCLUDES = -I$(BUILDTOP)/include/kadm5
 
 LIB=kadm5clnt
 LIBMAJOR=3
index e86fbe877f34bd60bcd24d4db9635bea894d0485..65a313d8d1d6ffadfd2f85cb179e180496d9d010 100644 (file)
@@ -469,29 +469,17 @@ static kadm5_ret_t _kadm5_init_any(char *client_name,
      
 #ifndef INIT_TEST
      handle->clnt->cl_auth = auth_gssapi_create(handle->clnt,
-                                       &gssstat,
-                                       &minor_stat,
-                                       gss_client_creds,
-                                       gss_target,
-                                       gss_mech_krb5_v2,
-                                       GSS_C_MUTUAL_FLAG | GSS_C_REPLAY_FLAG,
-                                       0,
-                                       NULL,
-                                       NULL,
-                                       NULL);
-
-     if (!handle->clnt->cl_auth)
-        handle->clnt->cl_auth = auth_gssapi_create(handle->clnt,
-                                       &gssstat,
-                                       &minor_stat,
-                                       gss_client_creds,
-                                       gss_target,
-                                       gss_mech_krb5,
-                                       GSS_C_MUTUAL_FLAG | GSS_C_REPLAY_FLAG,
-                                       0,
-                                       NULL,
-                                       NULL,
-                                       NULL);
+                                               &gssstat,
+                                               &minor_stat,
+                                               gss_client_creds,
+                                               gss_target,
+                                               gss_mech_krb5,
+                                               GSS_C_MUTUAL_FLAG
+                                               | GSS_C_REPLAY_FLAG,
+                                               0,
+                                               NULL,
+                                               NULL,
+                                               NULL);
 
      (void) gss_release_name(&minor_stat, &gss_target);
 #endif /* ! INIT_TEST */
index 2677e448dfe2b499c162fbaa786d4e4d7bc7fb3d..317aa35a19cbfaa7123cee56d38a8f451693519e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
 #define        LOG_ERR         0
 #endif /* LOG_ERR */
 
-static const char lspec_parse_err_1[] =        "%s: cannot parse <%s>\n";
-static const char lspec_parse_err_2[] =        "%s: warning - logging entry syntax error\n";
-static const char log_file_err[] =     "%s: error writing to %s\n";
-static const char log_device_err[] =   "%s: error writing to %s device\n";
-static const char log_ufo_string[] =   "???";
-static const char log_emerg_string[] = "EMERGENCY";
-static const char log_alert_string[] = "ALERT";
-static const char log_crit_string[] =  "CRITICAL";
-static const char log_err_string[] =   "Error";
-static const char log_warning_string[] =       "Warning";
-static const char log_notice_string[] =        "Notice";
-static const char log_info_string[] =  "info";
-static const char log_debug_string[] = "debug";
+#define lspec_parse_err_1      "%s: cannot parse <%s>\n"
+#define lspec_parse_err_2      "%s: warning - logging entry syntax error\n"
+#define log_file_err           "%s: error writing to %s\n"
+#define log_device_err         "%s: error writing to %s device\n"
+#define log_ufo_string         "???"
+#define log_emerg_string       "EMERGENCY"
+#define log_alert_string       "ALERT"
+#define log_crit_string                "CRITICAL"
+#define log_err_string         "Error"
+#define log_warning_string     "Warning"
+#define log_notice_string      "Notice"
+#define log_info_string                "info"
+#define log_debug_string       "debug"
 \f
 /*
  * Output logging.
@@ -160,8 +163,8 @@ static struct log_entry     def_log_entry;
  */
 #define        DEVICE_OPEN(d, m)       fopen(d, m)
 #define        CONSOLE_OPEN(m)         fopen("/dev/console", m)
-#define        DEVICE_PRINT(f, m)      ((fprintf(f, m) >= 0) ?                 \
-                                (fprintf(f, "\r\n"), fflush(f), 0) :   \
+#define        DEVICE_PRINT(f, m)      ((fprintf(f, "%s\r\n", m) >= 0) ?       \
+                                (fflush(f), 0) :                       \
                                 -1)
 #define        DEVICE_CLOSE(d)         fclose(d)
 
@@ -277,14 +280,13 @@ klog_com_err_proc(whoami, code, format, ap)
            /*
             * Files/standard error.
             */
-           if (fprintf(log_control.log_entries[lindex].lfu_filep,
+           if (fprintf(log_control.log_entries[lindex].lfu_filep, "%s\n",
                        outbuf) < 0) {
                /* Attempt to report error */
                fprintf(stderr, log_file_err, whoami,
                        log_control.log_entries[lindex].lfu_fname);
            }
            else {
-               fprintf(log_control.log_entries[lindex].lfu_filep, "\n");
                fflush(log_control.log_entries[lindex].lfu_filep);
            }
            break;
@@ -316,7 +318,7 @@ klog_com_err_proc(whoami, code, format, ap)
                    log_control.log_entries[lindex].lsu_severity;
                                               
            /* Log the message with our header trimmed off */
-           syslog(log_pri, syslogp);
+           syslog(log_pri, "%s", syslogp);
            break;
 #endif /* HAVE_SYSLOG */
        default:
@@ -851,8 +853,8 @@ klog_vsyslog(priority, format, arglist)
     cp += 15;
 #endif /* HAVE_STRFTIME */
 #ifdef VERBOSE_LOGS
-    sprintf(cp, " %s %s[%d](%s): ", 
-           log_control.log_hostname, log_control.log_whoami, getpid(),
+    sprintf(cp, " %s %s[%ld](%s): ",
+           log_control.log_hostname, log_control.log_whoami, (long) getpid(),
            severity2string(priority));
 #else
     sprintf(cp, " ");
@@ -879,14 +881,13 @@ klog_vsyslog(priority, format, arglist)
            /*
             * Files/standard error.
             */
-           if (fprintf(log_control.log_entries[lindex].lfu_filep, 
+           if (fprintf(log_control.log_entries[lindex].lfu_filep, "%s\n",
                        outbuf) < 0) {
                /* Attempt to report error */
-               fprintf(stderr, log_file_err,
+               fprintf(stderr, log_file_err, log_control.log_whoami,
                        log_control.log_entries[lindex].lfu_fname);
            }
            else {
-               fprintf(log_control.log_entries[lindex].lfu_filep, "\n");
                fflush(log_control.log_entries[lindex].lfu_filep);
            }
            break;
@@ -898,7 +899,7 @@ klog_vsyslog(priority, format, arglist)
            if (DEVICE_PRINT(log_control.log_entries[lindex].ldu_filep,
                             outbuf) < 0) {
                /* Attempt to report error */
-               fprintf(stderr, log_device_err,
+               fprintf(stderr, log_device_err, log_control.log_whoami,
                        log_control.log_entries[lindex].ldu_devname);
            }
            break;
@@ -909,7 +910,7 @@ klog_vsyslog(priority, format, arglist)
             */
                                               
            /* Log the message with our header trimmed off */
-           syslog(priority, syslogp);
+           syslog(priority, "%s", syslogp);
            break;
 #endif /* HAVE_SYSLOG */
        default:
index f96abed5015af74e7a8b7987522ac7aa37435ace..22e0cf1ecb507d85db92fcfe33da85606d2d740c 100644 (file)
@@ -1,3 +1,15 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-08  Ken Raeburn  <raeburn@mit.edu>
+
+       * adb_openclose.c (osa_adb_fini_db): Don't fclose the lock file if
+       the lock is permanent, because it's already been done.
+
 Mon Dec  7 15:19:11 1998  Ezra Peisach  <epeisach@mit.edu>
 
        * svr_principal.c (kadm5_randkey_principal_3): Fix typo in
index 82130c21905d7e682d165ccbc8cae3bfd63e5a50..ed9018f04abb765ac0cb126449df6ab1b7ddf954 100644 (file)
@@ -2,7 +2,8 @@ thisconfigdir=./..
 myfulldir=lib/kadm5/srv
 mydir=srv
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -I$(BUILDTOP)/include/kadm5 @HESIOD_DEFS@
+LOCALINCLUDES = -I$(BUILDTOP)/include/kadm5
+DEFINES = @HESIOD_DEFS@
 
 ##DOSBUILDTOP = ..\..\..
 ##DOSLIBNAME = libkadm5srv.lib
index 0f0bec7e5e60e5890aee713e6a99af338afc82a8..e776192c2eaff490c67140353747ed4653b77ae2 100644 (file)
@@ -232,7 +232,8 @@ osa_adb_ret_t osa_adb_fini_db(osa_adb_db_t db, int magic)
           * after trashing it.  This has to be allowed, so don't
           * generate an error.
           */
-         (void) fclose(db->lock->lockfile);
+         if (db->lock->lockmode != OSA_ADB_PERMANENT)
+              (void) fclose(db->lock->lockfile);
          db->lock->lockfile = NULL;
          krb5_free_context(db->lock->context);
      }
index 36919c2b0315c7d59c5de39dba532cb00915596f..776b7e513d42854aa65006ff96474395e251b1f5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index d7118fa7ccb08b75d62e09b6f0473ef0c81cb498..e2aa8bddccd4c4ee44e473ac3dd303c4b56db3a8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 8828929337e3b349b7eda50a57c70dca91e7ee63..16ad5346c4b25b0f271ee4f0a2d3771e0f6b71d4 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index e4c000102aaa6b23b265a9d5b6d80a16f3a4047f..19b32ffab4af81d712d240a2af4929ef460c05f4 100644 (file)
@@ -1,3 +1,28 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-30  Ken Raeburn  <raeburn@mit.edu>
+
+       * api.2/init-v2.exp (RESOLVE): New variable.
+       (get_hostname): New proc, taken from tests/dejagnu.
+       (test101): Use get_hostname, set a variable in the target process
+       to hold the result, and use that variable in the other commands
+       passed.
+
+       * Makefile.in (unit-test-client-body): Pass $(RUNTESTFLAGS) to
+       runtest, so the user can run subsets of the test suite.
+       (unit-test-server-body): Likewise.
+
+1999-08-26  Ken Raeburn  <raeburn@mit.edu>
+
+       * api.2/init-v2.exp (test101): Use local host name instead of
+       "localhost", since address 127.0.0.1 probably won't be listed in
+       credentials.
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 89ba1efd03cded3d6b54356e527b2a5f2a21948e..d75ba8f980450b908ac9e108ed0a6de31abfdec1 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=lib/kadm5/unit-test
 mydir=unit-test
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS  =      $(CCOPTS) $(DEFS) $(LOCALINCLUDE) -DUSE_KADM5_API_VERSION=1
+DEFINES = -DUSE_KADM5_API_VERSION=1
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
@@ -19,7 +19,7 @@ init-test: init-test.o client_init.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS)
                $(KADMCLNT_LIBS) $(KRB5_BASE_LIBS)
 
 client_init.o: $(SRCTOP)/lib/kadm5/clnt/client_init.c
-       $(CC) $(CFLAGS) -UUSE_KADM5_API_VERSION -DUSE_KADM5_API_VERSION=2 -DINIT_TEST -c -I$(SRCTOP)/lib/kadm5 $(SRCTOP)/lib/kadm5/clnt/client_init.c
+       $(CC) $(ALL_CFLAGS) -UUSE_KADM5_API_VERSION -DUSE_KADM5_API_VERSION=2 -DINIT_TEST -c -I$(SRCTOP)/lib/kadm5 $(SRCTOP)/lib/kadm5/clnt/client_init.c
 
 destroy-test: destroy-test.o $(KADMCLNT_DEPLIBS) $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o destroy-test destroy-test.o \
@@ -58,7 +58,7 @@ server-iter-test: iter-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS)
                $(KADMSRV_LIBS) $(KRB5_BASE_LIBS)
 
 setkey-test.o: $(SRCTOP)/lib/kadm5/unit-test/setkey-test.c
-       $(CC) $(CFLAGS) -UUSE_KADM5_API_VERSION -DUSE_KADM5_API_VERSION=2 -c $(SRCTOP)/lib/kadm5/unit-test/setkey-test.c
+       $(CC) $(ALL_CFLAGS) -UUSE_KADM5_API_VERSION -DUSE_KADM5_API_VERSION=2 -c $(SRCTOP)/lib/kadm5/unit-test/setkey-test.c
 
 server-setkey-test: setkey-test.o $(KADMSRV_DEPLIBS) $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o server-setkey-test setkey-test.o \
@@ -115,14 +115,14 @@ unit-test-client-body: site.exp test-noauth test-destroy test-handle-client
        $(ENV_SETUP) $(RUNTEST) --tool api RPC=1 API=$(CLNTTCL) \
                KINIT=$(BUILDTOP)/clients/kinit/kinit \
                KDESTROY=$(BUILDTOP)/clients/kdestroy/kdestroy \
-               KADMIN_LOCAL=$(BUILDTOP)/kadmin/cli/kadmin.local 
+               KADMIN_LOCAL=$(BUILDTOP)/kadmin/cli/kadmin.local $(RUNTESTFLAGS)
        -mv api.log capi.log
        -mv api.sum capi.sum
 
 unit-test-server-body: site.exp test-handle-server lock-test 
        $(ENV_SETUP) $(RUNTEST) --tool api RPC=0 API=$(SRVTCL) \
                LOCKTEST=./lock-test \
-               KADMIN_LOCAL=$(BUILDTOP)/kadmin/cli/kadmin.local
+               KADMIN_LOCAL=$(BUILDTOP)/kadmin/cli/kadmin.local $(RUNTESTFLAGS)
        -mv api.log sapi.log
        -mv api.sum sapi.sum
 
index bf1a7df490e7925d0a30fa53a38268ad1ac92db8..fe0721494ae137e50021c5832e4b244745ebefa1 100644 (file)
@@ -19,21 +19,63 @@ proc test100 {} {
 }
 if {$RPC} test100
 
+if ![info exists RESOLVE] {
+    set RESOLVE [findfile $objdir/../../../tests/resolve/resolve]
+}
+proc get_hostname { } {
+    global RESOLVE
+    global hostname
+    global localhostname
+    global domain
+
+    if {[info exists hostname] && [info exists localhostname]} {
+       return 1
+    }
+
+    catch "exec $RESOLVE -q >myname" exec_output
+    if ![string match "" $exec_output] {
+       send_log "$exec_output\n"
+       verbose $exec_output
+       send_error "ERROR: can't get hostname\n"
+       return 0
+    }
+    set file [open myname r]
+    if { [ gets $file hostname ] == -1 } {
+       send_error "ERROR: no output from hostname\n"
+       return 0
+    }
+    close $file
+    catch "exec rm -f myname" exec_output
+    regexp "^(\[^.\]*)\.(.*)$" $hostname foo localhostname domain
+
+    set hostname [string tolower $hostname]
+    set localhostname [string tolower $localhostname]
+    set domain [string tolower $domain]
+    verbose "hostname: $hostname; localhostname: $localhostname; domain $domain"
+
+    return 1
+}
+
+
 test "init 101"
 proc test101 {} {
     global test
+    global hostname
+
+    get_hostname
+    tcl_cmd "set hostname $hostname"
 
     # XXX Fix to work with a remote TEST_SERVER.  For now, make sure
     # it fails in that case.
     one_line_succeed_test {
        kadm5_init admin admin $KADM5_ADMIN_SERVICE \
-               [config_params {KADM5_CONFIG_ADMIN_SERVER KADM5_CONFIG_KADMIND_PORT} {localhost 1751}] \
+               [config_params {KADM5_CONFIG_ADMIN_SERVER KADM5_CONFIG_KADMIND_PORT} [list $hostname 1751]] \
                $KADM5_STRUCT_VERSION $KADM5_API_VERSION_2 \
                server_handle
     }
     one_line_fail_test {
        kadm5_init admin admin $KADM5_ADMIN_SERVICE \
-               [config_params {KADM5_CONFIG_ADMIN_SERVER KADM5_CONFIG_KADMIND_PORT} {localhost 1}] \
+               [config_params {KADM5_CONFIG_ADMIN_SERVER KADM5_CONFIG_KADMIND_PORT} [list $hostname 1]] \
                $KADM5_STRUCT_VERSION $KADM5_API_VERSION_2 \
                server_handle
     } "RPC_ERROR"
index c655c178f12c74eab8c133bf447c3a092b053c03..b3328a0d865d5eca325ac2e7c84ba2a54e7af0b2 100644 (file)
@@ -1,3 +1,21 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-30  Ken Raeburn  <raeburn@mit.edu>
+
+       * t_kdb.c (add_principal): Free only contents of a generated key,
+       since the keyblock structure itself is on the stack.
+
+1999-08-17  Ken Raeburn  <raeburn@mit.edu>
+
+       * t_kdb.c (add_principal): Update for new calling sequence to
+       krb5_dbekd_encrypt_key_data.
+       (do_testing): Update calls.
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 76b4e2fb6adb81486cafe002b5fd3c1ba3885996..68c636152b0e12c2a60e45aad8faa0a8fe9a202c 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=.
 myfulldir=lib/kdb
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 KRB5_RUN_ENV = @KRB5_RUN_ENV@
 KRB5_CONFIG_SETUP = KRB5_CONFIG=$(SRCTOP)/config-files/krb5.conf ; export KRB5_CONFIG ;
 PROG_LIBPATH=-L$(TOPLIBD)
index 0cfdbda8e0aa9877e3b8a9f6bb7565db7d6b03ab..765e6f377ef8178785681daeff3e9b7c8f2a3011 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7bcfe11eb1969bbf8808fae4f9feed6311bdab53..1448ebd6d52a756577cc13c0b5c8f93ea4fe41d5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 829e0283cd7f92b40870be365cdf768d95e1ba79..d9a742ff2c4313285c973ff059a9dc9898ba4833 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2381d955437600113a03db2bf248698971ae96b3..540d4a2499fd01ce517f2195729fae9e0d4fa713 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 507b76ad5b687bb12e494d2b5a90c64afe975693..5f1bd15dcf83434ae15d131bb1f7287322b23358 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ab4d07e23179580dc9d35ba44673e086f15c0011..627aa75abd50dfb788cfe4e6166bf0c5d7ab6510 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f2f01311e724e753cb8ee1c458e14d14fbf35de8..fd35c811385b2c8f601b514af056f7bac06ee455 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7af32d720be926d2584e014bba68780a21be388c..d8754f7db249c42d1226b78b41ef2ba3d67043de 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a26b7f79da5a01d81b0eb7561d359c6157834723..d54f006083896b70da00dcbe50497141286ebe63 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 63a7bf7c88b8b14b9861941bbd7ba65d799cbd38..1e5025c656b826c2821986d2ee0b1eb1d89c76b7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ba1760d5fae1014dbe34354f2f466f29d520b27f..0898a631158917503e6b73ef09760ef2056f1523 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e63c611a4e0bd2b0df31a9a2f965fbf19598de12..d18630ac0b037353615a6674cdcb4d7e68cdbc84 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b14152602926870bee8a10ba681959e069887f51..8358088d2f5297415984b94d66e035c527609d2a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
@@ -273,16 +276,16 @@ principal_found(nvalid, pname)
  * Add a principal to the database.
  */
 static krb5_error_code
-add_principal(kcontext, principal, eblock, key, rseed)
+add_principal(kcontext, principal, mkey, key, rseed)
     krb5_context         kcontext;
     krb5_principal       principal;
-    krb5_encrypt_block * eblock;
+    krb5_keyblock      * mkey;
     krb5_keyblock      * key;
     krb5_pointer         rseed;
 {
     krb5_error_code      kret;
     krb5_db_entry        dbent;
-    krb5_keyblock      * rkey = NULL;
+    krb5_keyblock      * rkey = NULL, lkey;
     krb5_timestamp       timenow;
     int                          nentries = 1;
 
@@ -304,19 +307,21 @@ add_principal(kcontext, principal, eblock, key, rseed)
            goto out;
 
     if (!key) {
-       if ((kret = krb5_random_key(kcontext, eblock, rseed, &rkey)))
+       kret = krb5_c_make_random_key (kcontext, mkey->enctype, &lkey);
+       if (kret)
            goto out;
+       rkey = &lkey;
     } else
        rkey = key;
 
     if ((kret = krb5_dbe_create_key_data(kcontext, &dbent)))
        goto out;
-    if ((kret = krb5_dbekd_encrypt_key_data(kcontext, eblock, rkey, NULL, 1,
+    if ((kret = krb5_dbekd_encrypt_key_data(kcontext, mkey, rkey, NULL, 1,
                                            &dbent.key_data[0])))
        goto out;
 
     if (!key)
-       krb5_free_keyblock(kcontext, rkey);
+       krb5_free_keyblock_contents(kcontext, rkey);
 
     kret = krb5_db_put_principal(kcontext, &dbent, &nentries);
     if ((!kret) && (nentries != 1))
@@ -564,7 +569,7 @@ do_testing(db, passes, verbose, timing, rcases, check, save_db, dontclean,
     op = "adding master principal";
     if ((kret = add_principal(kcontext,
                              master_princ,
-                             &master_encblock,
+                             &master_keyblock,
                              &master_keyblock,
                              rseed)))
        goto goodbye;
@@ -628,7 +633,7 @@ do_testing(db, passes, verbose, timing, rcases, check, save_db, dontclean,
                swatch_on();
            }
            if ((kret = add_principal(kcontext, playback_principal(passno),
-                                     &master_encblock, kbp, rseed))) {
+                                     &master_keyblock, kbp, rseed))) {
                linkage = "initially ";
                oparg = playback_name(passno);
                goto cya;
@@ -659,7 +664,7 @@ do_testing(db, passes, verbose, timing, rcases, check, save_db, dontclean,
                }
                if ((kret = add_principal(kcontext,
                                          playback_principal(nvalid),
-                                         &master_encblock,
+                                         &master_keyblock,
                                          kbp, rseed))) {
                    oparg = playback_name(nvalid);
                    goto cya;
@@ -789,7 +794,7 @@ do_testing(db, passes, verbose, timing, rcases, check, save_db, dontclean,
        for (passno=0; passno<passes; passno++) {
            op = "adding principal";
            if ((kret = add_principal(kcontext, playback_principal(passno),
-                                    &master_encblock, &stat_kb, rseed)))
+                                    &master_keyblock, &stat_kb, rseed)))
                goto goodbye;
            if (verbose > 4)
                fprintf(stderr, "*A(%s)\n", playback_name(passno));
@@ -885,7 +890,7 @@ do_testing(db, passes, verbose, timing, rcases, check, save_db, dontclean,
                for (j=0; j<nper; j++) {
                    if ((kret = add_principal(ccontext,
                                              playback_principal(base+j),
-                                             &master_encblock,
+                                             &master_keyblock,
                                              &stat_kb,
                                              rseed))) {
                        fprintf(stderr,
index 4bab17024eaa9f2cf6f4ead1c9e2c6e078a39512..452dc45ba672beced4c986f0b52e0a60ab9ee04d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ee823a9a1cf7fc19d1ffe3da5003b5d76568b89a..7fff305fc6e997c87860ee10701e22ebc993d3f2 100644 (file)
@@ -1,3 +1,38 @@
+2000-04-28  Ken Raeburn  <raeburn@mit.edu>
+           Nalin Dahyabhai  <nalin@redhat.com>
+
+       * kuserok.c (kuserok): Don't overflow buffer "pbuf".
+
+2000-04-28  Tom Yu  <tlyu@mit.edu>
+
+       * rd_req.c (krb_rd_req): Fix some uses of strcpy().
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-10-07  Ken Raeburn  <raeburn@mit.edu>
+
+       * rd_svc_key.c (krb54_get_service_keyblock): Close keytab before
+       returning in success case.  Patch from Greg Hudson
+       <ghudson@mit.edu>.
+
+1999-08-26  Danilo Almeida  <dalmeida@mit.edu>
+
+       * memcache.c (change_cache): Use PostMessage instead of SendMessage
+       so we do not block.
+
+Fri Aug 13 23:23:00 1999  Brad Thompson  <yak@mit.edu>
+
+       * sendauth.c: Initialize __krb_sendauth_hidden_tkt_len so
+       it doesn't end up in the common block.
+
+       * pkt_clen.c: Initialize swap_bytes so that it doesn't end
+       up in the common block.
+
 Mon May 10 15:23:15 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index ca9fb8dc7c519ab8374362d1141c9885e427691e..67dfa6062245e347d6cce5ba5455eb27eaa57ace 100644 (file)
@@ -2,8 +2,7 @@ thisconfigdir=.
 myfulldir=lib/krb4
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(DEFINES)
-DEFINES=-I$(srcdir)/../../include/kerberosIV
+DEFINES = -I$(srcdir)/../../include/kerberosIV
 
 ##DOS##BUILDTOP = ..\..
 ##DOS##LIBNAME=$(OUTPRE)krb4.lib
@@ -209,7 +208,7 @@ clean-unix::
 #      $(INSTALL_DATA) krb_err.h $(DESTDIR)$(KRB5_INCDIR)/kerberosIV/krb_err.h
 
 
-DEFINES=$(FALLBACK) $(OLD_SRVTAB) $(OLD_KLOGIN) -I$(srcdir)/../../include/kerberosIV
+DEFINES = $(FALLBACK) $(OLD_SRVTAB) $(OLD_KLOGIN) -I$(srcdir)/../../include/kerberosIV
 
 clean:: 
        -$(RM) $(OBJS)
index 0aee8934a095a1bf0f184afb1c0062d125664360..20587cb5be8ae1b40fda3ee60f4bb94fb68cf756 100644 (file)
@@ -118,8 +118,11 @@ kuserok(kdata, luser)
     if ((pwd = getpwnam(luser)) == NULL) {
        return(NOTOK);
     }
-    (void) strcpy(pbuf, pwd->pw_dir);
-    (void) strcat(pbuf, "/.klogin");
+    if (strlen (pwd->pw_dir) + sizeof ("/.klogin") >= sizeof (pbuf))
+       return NOTOK;
+    (void) strncpy(pbuf, pwd->pw_dir, sizeof(pbuf) - 1);
+    pbuf[sizeof(pbuf) - 1] = '\0';
+    (void) strncat(pbuf, "/.klogin", sizeof(pbuf) - 1 - strlen(pbuf));
 
     if (access(pbuf, F_OK)) {   /* not accessible */
        /*
index d2669df9b4b30fb9b41a9dcef58911d292199786..a7eccc8099d3167e4ccb2bb1c0b42480d17f313d 100644 (file)
@@ -194,7 +194,7 @@ change_cache()
                locked = FALSE;
        }
 
-       SendMessage(HWND_BROADCAST, krb_get_notification_message(), 0, 0);
+       PostMessage(HWND_BROADCAST, krb_get_notification_message(), 0, 0);
 }
 
 
index 352c91d4ee8c0375d5f57887e78eb0538e965780..14e6962abd11b5212343b5438070bc1ea344506f 100644 (file)
@@ -14,7 +14,7 @@
 #include "prot.h"
 
 extern int krb_debug;
-int swap_bytes;
+int swap_bytes=0;
 
 /*
  * Given a pointer to an AUTH_MSG_KDC_REPLY packet, return the length of
index c9b6ac73445e67c73018a7ee66cac7aa67cc3eb8..db05c5bb35ffe05afb61cdc6e09b2f84d9f58d5f 100644 (file)
@@ -184,6 +184,8 @@ krb_rd_req(authent,service,instance,from_addr,ad,fn)
     krb5_keyblock keyblock;
     int status;
 
+    tkt->mbz = req_id->mbz = 0;
+
     if (authent->length <= 0)
        return(RD_AP_MODIFIED);
 
@@ -219,8 +221,9 @@ krb_rd_req(authent,service,instance,from_addr,ad,fn)
         mutual = 0;
 #endif /* lint */
     s_kvno = *ptr++;           /* get server key version */
-    (void) strcpy(realm,ptr);   /* And the realm of the issuing KDC */
-    ptr += strlen(ptr) + 1;     /* skip the realm "hint" */
+    (void) strncpy(realm,ptr,REALM_SZ);        /* And the realm of the issuing KDC */
+    realm[REALM_SZ-1] = '\0';
+    ptr += strlen(realm) + 1;  /* skip the realm "hint" */
 
     /*
      * If "fn" is NULL, key info should already be set; don't
@@ -324,13 +327,16 @@ krb_rd_req(authent,service,instance,from_addr,ad,fn)
 #define check_ptr() if ((ptr - (char *) req_id->dat) > req_id->length) return(RD_AP_MODIFIED);
 
     ptr = (char *) req_id->dat;
-    (void) strcpy(r_aname,ptr);        /* Authentication name */
+    (void) strncpy(r_aname,ptr,ANAME_SZ); /* Authentication name */
+    r_aname[ANAME_SZ-1] = '\0';
     ptr += strlen(r_aname)+1;
     check_ptr();
-    (void) strcpy(r_inst,ptr); /* Authentication instance */
+    (void) strncpy(r_inst,ptr,INST_SZ);        /* Authentication instance */
+    r_inst[INST_SZ-1] = '\0';
     ptr += strlen(r_inst)+1;
     check_ptr();
-    (void) strcpy(r_realm,ptr);        /* Authentication name */
+    (void) strncpy(r_realm,ptr,REALM_SZ); /* Authentication name */
+    r_realm[REALM_SZ-1] = '\0';
     ptr += strlen(r_realm)+1;
     check_ptr();
     memcpy((char *)&ad->checksum, ptr, 4);     /* Checksum */
index 9bcda29ea32c197719988270e1e38d8fe8fce384..831becdf02d96565a51c8ad9e4ce0a7ddc32c97f 100644 (file)
@@ -194,6 +194,7 @@ krb54_get_service_keyblock(service,instance,realm,kvno,file,keyblock)
                                         &kt_entry.key, keyblock);
     
     krb5_kt_free_entry(krb5__krb4_context, &kt_entry);
+    krb5_kt_close (krb5__krb4_context, kt_id);
 
 errout:
     if (princ)
index d11076fc3a3e743d6e8632db1ae2657128d9db89..9b8fb390487a9190928f0e7cb4690dc6a6a8b2e1 100644 (file)
  * 
  * See FIXME KLUDGE code in appl/bsd/kcmd.c.
  */
-KRB4_32 __krb_sendauth_hidden_tkt_len;
+KRB4_32 __krb_sendauth_hidden_tkt_len=0;
 #define raw_tkt_len __krb_sendauth_hidden_tkt_len
 
 
diff --git a/src/lib/krb4_16.def b/src/lib/krb4_16.def
deleted file mode 100644 (file)
index c09930d..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-;-----------------------------
-;   KERBEROS.DEF - module definition file
-;-----------------------------
-
-LIBRARY   KRB4_16
-DESCRIPTION 'DLL for Kerberos support'
-EXETYPE   WINDOWS
-CODE     PRELOAD MOVEABLE DISCARDABLE
-DATA     PRELOAD MOVEABLE SINGLE
-HEAPSIZE  8192
-
-EXPORTS
-       LibMain                 @1001 RESIDENTNAME
-       WEP                     @1002
-;
-       dest_tkt
-       get_service_key
-       in_tkt
-       kname_parse
-       krb_check_auth
-       krb_get_admhst
-       krb_get_cred
-       krb_get_default_user
-       krb_get_err_text
-       krb_get_krbhst
-       krb_get_lrealm
-       krb_get_phost
-       krb_get_pw_in_tkt
-       krb_get_pw_in_tkt_preauth
-       krb_get_svc_in_tkt
-       krb_get_tf_fullname
-       krb_get_tf_realm
-       krb_get_ticket_for_service
-       krb_mk_auth
-       krb_mk_err
-       krb_mk_priv
-       krb_mk_req
-       krb_mk_safe
-       krb_rd_err
-       krb_rd_priv
-       krb_rd_req
-       krb_rd_safe
-       krb_realmofhost
-       krb_recvauth
-       krb_save_credentials
-       krb_set_default_user
-;      kuserok
-       put_svc_key
-       read_service_key
-;      kadm_change_pw2
-;      kadm_init_link
-;      kadm_get_err_text
-;      kadm_change_pw
-;      kstream_create_from_fd
-;      kstream_create_rlogin_from_fd
-;      kstream_create_rcp_from_fd
-;      kstream_write
-;      kstream_read
-;      kstream_flush
-;      kstream_destroy
-;      kstream_set_buffer_mode
index 9fc24289b812ad6e4f007c94eda4ed2a4c232e16..f8e5400243e52dab34207651b1d8bd6318821b56 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 5f181680f5bbf03b2e95fddfc585fd8e4ffc4ff8..b11d3091e1d7990f552b39da1d66d961e532b18d 100644 (file)
@@ -1,3 +1,7 @@
+1999-12-01  Ken Raeburn  <raeburn@mit.edu>
+
+       * Makefile.in (LIBMINOR): Update to 2.
+
 1999-06-13  Geoffrey King  <gjking@mit.edu>
 
        * Makefile.in:
index 2d95350357feebccaea38609fc71562efc48f8a4..4235d7272f0652aa9f055d25b891e513e4caf64f 100644 (file)
@@ -31,7 +31,7 @@ LIBDONE= error_tables/DONE asn.1/DONE ccache/DONE ccache/stdio/DONE \
 
 LIB=krb5
 LIBMAJOR=2
-LIBMINOR=1
+LIBMINOR=2
 
 STOBJLISTS= \
        error_tables/OBJS.ST \
index 50c7808aaedbf8aa1cb7a7962e879025abce5bb1..1b115d41493e464cc0a9d477998286494ae6cc30 100644 (file)
@@ -1,3 +1,37 @@
+1999-11-01  Tom Yu  <tlyu@mit.edu>
+
+       * krb5_decode.c (begin_structure): Update to deal with indefinite
+       encodings better; also call asn1_get_sequence().
+
+       * asn1_k_decode.c (sequence_of): Update to deal with indefinite
+       encodings better.
+       (begin_structure): Update to deal with indefinite encodings
+       better; also call asn1_get_sequence().
+
+       * asn1_get.h: Update prototypes for asn1_get_tag_indef(),
+       asn1_get_tag(), asn1_get_sequence(), asn1_get_length().
+
+       * asn1_get.c (asn1_get_tag_indef): New function; get tag info,
+       lengths, etc. as well as flag indicating whether the length is
+       indefinite.
+       (asn1_get_tag): Modify to just call asn1_get_tag_indef().
+       (asn1_get_sequence): Call asn1_get_tag_indef() in order to
+       determine whether encoding is indefinite length.
+       (asn1_get_length): Add "indef" arg to indicate whether an encoding
+       has an indefinite length.
+
+       * asn1buf.h: Update asn1buf_imbed() prototype.
+
+       * asn1buf.c (asn1buf_imbed): Add "indef" arg so that we don't
+       treat a definite zero-length encoding as an indefinite encoding.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Sat Jul 10 10:21:40 1999  Tom Yu  <chaoself@mit.edu>
 
        * asn1_decode.c (asn1_decode_integer): Fix to deal with overflows
index be37d7809f38dcb1677c24545940eaef071482a9..365debcf82777bf2fc97a816adc76f518bb94a8e 100644 (file)
 -- 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
+-- permission.  Furthermore if you modify this software you must label
+-- your software as modified software and not distribute it in such a
+-- fashion that it might be confused with the original M.I.T. software.
+-- 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.
 --
index 4cd003e2db76fb9b09afdcef9755cf78b4fb799c..6a42d634ea04e23529f38bc5514d977bcb59abbd 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/krb5/asn.1
 mydir=asn.1
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS=$(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=asn.1
index 189f7c082a1d8afa20a5a9f50a2530d0a2b972c6..8a911e55e9d0c381ea648eab5597f8e1d30f7206 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 39bc6badb1690c0f2541c9767509601c06e2e09e..31de79b68fd42e9503aab5140f8821d5f542ecbd 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index fe7a3979775aa246fa368f7b093e37bd228a4d12..7ef89c8c2eafbdeae39127352cecccb008387a34 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index baae5627197fdf454c808f3169c41e046a93b42d..72686fba1771049070aa6aecf5e5d1c85f67a4fa 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 7d491a4cd84285669295216722bccb1070abd0d2..20334a2fc2197b46ad44b3953b17d5f366d811c0 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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 "asn1_get.h"
 
-asn1_error_code asn1_get_tag(buf, class, construction, tagnum, retlen)
+asn1_error_code
+asn1_get_tag_indef(buf, class, construction, tagnum, retlen, indef)
      asn1buf * buf;
      asn1_class * class;
      asn1_construction * construction;
      asn1_tagnum * tagnum;
      int * retlen;
+     int * indef;
 {
   asn1_error_code retval;
   
@@ -45,21 +50,36 @@ asn1_error_code asn1_get_tag(buf, class, construction, tagnum, retlen)
   }
   retval = asn1_get_id(buf,class,construction,tagnum);
   if(retval) return retval;
-  retval = asn1_get_length(buf,retlen);
+  retval = asn1_get_length(buf,retlen,indef);
   if(retval) return retval;
   return 0;
 }
 
-asn1_error_code asn1_get_sequence(buf, retlen)
+asn1_error_code
+asn1_get_tag(buf, class, construction, tagnum, retlen)
+     asn1buf *buf;
+     asn1_class *class;
+     asn1_construction *construction;
+     asn1_tagnum *tagnum;
+     int *retlen;
+{
+  asn1_error_code retval;
+  int indef;
+
+  return asn1_get_tag_indef(buf, class, construction, tagnum, retlen, &indef);
+}
+
+asn1_error_code asn1_get_sequence(buf, retlen, indef)
      asn1buf * buf;
      int * retlen;
+     int * indef;
 {
   asn1_error_code retval;
   asn1_class class;
   asn1_construction construction;
   asn1_tagnum tagnum;
 
-  retval = asn1_get_tag(buf,&class,&construction,&tagnum,retlen);
+  retval = asn1_get_tag_indef(buf,&class,&construction,&tagnum,retlen,indef);
   if(retval) return retval;
   if(retval) return (krb5_error_code)retval;
   if(class != UNIVERSAL || construction != CONSTRUCTED ||
@@ -106,13 +126,16 @@ asn1_error_code asn1_get_id(buf, class, construction, tagnum)
   return 0;
 }
 
-asn1_error_code asn1_get_length(buf, retlen)
+asn1_error_code asn1_get_length(buf, retlen, indef)
      asn1buf * buf;
      int * retlen;
+     int * indef;
 {
   asn1_error_code retval;
   asn1_octet o;
 
+  if (indef != NULL)
+    *indef = 0;
   retval = asn1buf_remove_octet(buf,&o);
   if(retval) return retval;
   if((o&0x80) == 0){
@@ -126,6 +149,8 @@ asn1_error_code asn1_get_length(buf, retlen)
       if(retval) return retval;
       len = (len<<8) + (int)o;
     }
+    if (indef != NULL && !len)
+      *indef = 1;
     if(retlen != NULL) *retlen = len;
   }
   return 0;
index 67bc7195224da0961ca2b7df58a47d3ebe1d4cc6..2f5edf112287917607e90f9e0427ef1a59216d12 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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 "krbasn1.h"
 #include "asn1buf.h"
 
+asn1_error_code asn1_get_tag_indef
+       PROTOTYPE((asn1buf *buf,
+                  asn1_class *class,
+                  asn1_construction *construction,
+                  asn1_tagnum *tagnum,
+                  int *retlen, int *indef));
 asn1_error_code asn1_get_tag
        PROTOTYPE((asn1buf *buf,
                   asn1_class *class,
@@ -46,7 +55,7 @@ asn1_error_code asn1_get_tag
             Returns ASN1_OVERRUN if *buf is exhausted during the parse. */
 
 asn1_error_code asn1_get_sequence
-       PROTOTYPE((asn1buf *buf, int *retlen));
+       PROTOTYPE((asn1buf *buf, int *retlen, int *indef));
 /* requires  *buf is allocated
    effects   Decodes a tag from *buf and returns ASN1_BAD_ID if it
               doesn't have a sequence ID.  If retlen != NULL, the
@@ -68,7 +77,7 @@ asn1_error_code asn1_get_id
             Returns ASN1_OVERRUN if *buf is exhausted. */
 
 asn1_error_code asn1_get_length
-       PROTOTYPE((asn1buf *buf, int *retlen));
+       PROTOTYPE((asn1buf *buf, int *retlen, int *indef));
 /* requires  *buf is allocated
    effects   Decodes the group of length octets at *buf's
               current position.  If retlen != NULL, the
index 2ecb1c342c93b7f65ed145a512b1b686dd9e252a..0c14e94f0883f155bd1f9539e8886a7656daa407 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
@@ -89,11 +92,10 @@ else { len = 0; var = 0; }
 
 #define begin_structure()\
 asn1buf subbuf;\
-retval = asn1_get_tag(buf,&class,&construction,&tagnum,&length);\
+int indef;\
+retval = asn1_get_sequence(buf,&length,&indef);\
 if(retval) return retval;\
-if(class != UNIVERSAL || construction != CONSTRUCTED ||\
-   tagnum != ASN1_SEQUENCE) return ASN1_BAD_ID;\
-retval = asn1buf_imbed(&subbuf,buf,length);\
+retval = asn1buf_imbed(&subbuf,buf,length,indef);\
 if(retval) return retval;\
 next_tag()
 
@@ -105,9 +107,10 @@ if(retval) return retval
 int size=0;\
 asn1buf seqbuf;\
 int length;\
-retval = asn1_get_sequence(buf,&length);\
+int indef;\
+retval = asn1_get_sequence(buf,&length,&indef);\
 if(retval) return retval;\
-retval = asn1buf_imbed(&seqbuf,buf,length);\
+retval = asn1buf_imbed(&seqbuf,buf,length,indef);\
 if(retval) return retval
 
 #define end_sequence_of(buf)\
index 489123b6f2e9a1fa9a255ead2f90088183461290..04861a4122a988f3ef5c94de2039b8412ab78f76 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index a3f375d1f4117f30c9e821904747985ebebe8c8b..0bd3107a72b2ff39ded0a9ec525e05ec031f6372 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 920d93ded98e8e68e51e79d33dfb464112c083e9..d1b804d3bd5ba76a21e828a131afa26231b12fd9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index ab147f85d9e9a6418c1aef690ebe957fb395d508..64e96f7b945c4968ed28f1e16dc21280b54b94e6 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 89ece9bcfb77d5ead6e98ed994d6f261d5595f86..d2d3367a850082e1db53e42ceebdfe9c0bd16769 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index a687d062a32f32b2eac4a4f3651daf7cb35b3091..a03f16c56d414ba6ad9a5c4a34410f42c755ef10 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 9378b330e9295a03b1071b90b644f68c0b724542..14a5b2a13d5167645e093aea72e7c8d6e805f3b3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 6d7a950b93a64718153cbbcff0b6a81e24e14d37..9c639279a8cca25d92368c329cf054240b92fabd 100644 (file)
@@ -75,13 +75,14 @@ asn1_error_code asn1buf_wrap_data(buf, code)
   return 0;
 }
 
-asn1_error_code asn1buf_imbed(subbuf, buf, length)
+asn1_error_code asn1buf_imbed(subbuf, buf, length, indef)
      asn1buf * subbuf;
      const asn1buf * buf;
      const int length;
+     const int indef;
 {
   subbuf->base = subbuf->next = buf->next;
-  if (length > 0 ) {
+  if (!indef) {
       subbuf->bound = subbuf->base + length - 1;
       if (subbuf->bound > buf->bound)
          return ASN1_OVERRUN;
index bf2f252a37e867f7208afb980bb2f355fc2d6d4d..6c2c663fc4fad68e109718399d6ca8da53732a30 100644 (file)
@@ -111,7 +111,8 @@ asn1_error_code asn1buf_wrap_data
             Returns ASN1_MISSING_FIELD if code is empty. */
 
 asn1_error_code asn1buf_imbed
-       PROTOTYPE((asn1buf *subbuf, const asn1buf *buf, const int length));
+       PROTOTYPE((asn1buf *subbuf, const asn1buf *buf, const int length,
+                  const int indef));
 /* requires  *subbuf and *buf are allocated
    effects   *subbuf becomes a sub-buffer of *buf.  *subbuf begins
               at *buf's current position and is length octets long.
index c9cceb528fd3c0a4e4e320ea5c6bfc8281756807..fa3c956758ae3969fa3a4f91cc9a082f274827d4 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ee88b84cc19304074e1e1aa45072f3e4a79bc7ce..a56a1f45163209157c58079e0c0d1ef87162f4b6 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
@@ -82,11 +85,10 @@ if(class != CONTEXT_SPECIFIC || construction != CONSTRUCTED)\
 /* decode sequence header and initialize tagnum with the first field */
 #define begin_structure()\
 asn1buf subbuf;\
-retval = asn1_get_tag(&buf,&class,&construction,&tagnum,&length);\
+int indef;\
+retval = asn1_get_sequence(&buf,&length,&indef);\
 if(retval) clean_return(retval);\
-if(class != UNIVERSAL || construction != CONSTRUCTED ||\
-   tagnum != ASN1_SEQUENCE) clean_return(ASN1_BAD_ID);\
-retval = asn1buf_imbed(&subbuf,&buf,length);\
+retval = asn1buf_imbed(&subbuf,&buf,length,indef);\
 if(retval) clean_return(retval);\
 next_tag()
 
index e421ebc10ced7c10a0ba2433dbf3c82dfda11a91..60955b866b42d05a7ecd1dc43bceece4fdf0efa8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 5080786448bae97b474df7cd4d6450c3442ece07..2f74235fbe1bd1c4a1a6b61c6bde8c6786a03619 100644 (file)
@@ -1,3 +1,22 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * cc_retr.c: New file.
+       (krb5_cc_retrieve_cred_seq): New function, derived from
+       fcc_retrieve but takes an optional list of enctypes to look for in
+       priority order.
+       (krb5_cc_retrieve_cred_default): New function.  Same signature as
+       original fcc_retrieve but if new flag KRB5_TC_SUPPORTED_KTYPES is
+       set, calls krb5_get_tgs_ktypes to get a list of enctypes to look
+       for.
+       * Makefile.in (STLIBOBJS, OBJS, SRCS): Add it.
+
 Tue May 18 19:52:56 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Remove - from recursive Win32 make invocation.
index eafa55773c675dd4765613d8e938584f5a41d609..37abee4053798038d003eccac2941a7079d048b6 100644 (file)
@@ -4,7 +4,7 @@ mydir=ccache
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
 LOCAL_SUBDIRS = stdio file memory
 
-CFLAGS = $(CCOPTS) $(DEFS) -I$(srcdir)$(S)file -I$(srcdir)$(S)stdio \
+LOCALINCLUDES = -I$(srcdir)$(S)file -I$(srcdir)$(S)stdio \
                -I$(srcdir)$(S)ccapi $(WIN_INCLUDES)
 
 ##DOS##WIN_INCLUDES = -I$(SRCTOP)\windows\lib
@@ -21,18 +21,21 @@ STLIBOBJS= \
        cccopy.o \
        ccdefault.o \
        ccdefops.o \
+       cc_retr.o \
        ser_cc.o
 
 OBJS=  $(OUTPRE)ccbase.$(OBJEXT) \
        $(OUTPRE)cccopy.$(OBJEXT) \
        $(OUTPRE)ccdefault.$(OBJEXT) \
        $(OUTPRE)ccdefops.$(OBJEXT) \
+       $(OUTPRE)cc_retr.$(OBJEXT) \
        $(OUTPRE)ser_cc.$(OBJEXT)
 
 SRCS=  $(srcdir)/ccbase.c \
        $(srcdir)/cccopy.c \
        $(srcdir)/ccdefault.c \
        $(srcdir)/ccdefops.c \
+       $(srcdir)/cc_retr.c \
        $(srcdir)/ser_cc.c
 
 all-unix:: all-libobjs
diff --git a/src/lib/krb5/ccache/cc_retr.c b/src/lib/krb5/ccache/cc_retr.c
new file mode 100644 (file)
index 0000000..8d439d3
--- /dev/null
@@ -0,0 +1,286 @@
+/*
+ * lib/krb5/ccache/cc_retr.c
+ *
+ * Copyright 1990,1991,1999 by the Massachusetts Institute of Technology.
+ * All Rights Reserved.
+ *
+ * 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.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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 "k5-int.h"
+
+#define KRB5_OK 0
+
+#define set(bits) (whichfields & bits)
+#define flags_match(a,b) (((a) & (b)) == (a))
+#define times_match_exact(t1,t2) (memcmp((char *)(t1), (char *)(t2), sizeof(*(t1))) == 0)
+
+static krb5_boolean
+times_match(t1, t2)
+     const krb5_ticket_times *t1;
+     const krb5_ticket_times *t2;
+{
+    if (t1->renew_till) {
+       if (t1->renew_till > t2->renew_till)
+           return FALSE;               /* this one expires too late */
+    }
+    if (t1->endtime) {
+       if (t1->endtime > t2->endtime)
+           return FALSE;               /* this one expires too late */
+    }
+    /* only care about expiration on a times_match */
+    return TRUE;
+}
+
+static krb5_boolean
+standard_fields_match(context, mcreds, creds)
+krb5_context           context;
+const krb5_creds       *mcreds;
+const krb5_creds       *creds;
+{
+  return (krb5_principal_compare(context, mcreds->client,creds->client)
+         && krb5_principal_compare(context, mcreds->server,creds->server));
+}
+
+/* only match the server name portion, not the server realm portion */
+
+static krb5_boolean
+srvname_match(context, mcreds, creds)
+   krb5_context context;
+   const krb5_creds *mcreds, *creds;
+{
+    krb5_boolean retval;
+    krb5_principal_data p1, p2;
+    
+    retval = krb5_principal_compare(context, mcreds->client,creds->client);
+    if (retval != TRUE)
+       return retval;
+    /*
+     * Hack to ignore the server realm for the purposes of the compare.
+     */
+    p1 = *mcreds->server;
+    p2 = *creds->server;
+    p1.realm = p2.realm;
+    return krb5_principal_compare(context, &p1, &p2);
+}
+
+static krb5_boolean
+authdata_match(mdata, data)
+     krb5_authdata * const *mdata, * const *data;
+{
+    const krb5_authdata *mdatap, *datap;
+
+    if (mdata == data)
+      return TRUE;
+
+    if (mdata == NULL)
+       return *data == NULL;
+       
+    if (data == NULL)
+       return *mdata == NULL;
+    
+    while ((mdatap = *mdata) && (datap = *data)) {
+      if ((mdatap->ad_type != datap->ad_type) ||
+          (mdatap->length != datap->length) ||
+          (memcmp ((char *)mdatap->contents,
+                (char *)datap->contents, mdatap->length) != 0))
+          return FALSE;
+      mdata++;
+      data++;
+    }
+    return (*mdata == NULL) && (*data == NULL);
+}
+
+static krb5_boolean
+data_match(data1, data2)
+     const krb5_data *data1, *data2;
+{
+    if (!data1) {
+       if (!data2)
+           return TRUE;
+       else
+           return FALSE;
+    }
+    if (!data2) return FALSE;
+
+    if (data1->length != data2->length)
+       return FALSE;
+    else
+       return memcmp(data1->data, data2->data, data1->length) ? FALSE : TRUE;
+}
+
+static int
+pref (krb5_enctype my_ktype, int nktypes, krb5_enctype *ktypes)
+{
+  int i;
+  for (i = 0; i < nktypes; i++)
+    if (my_ktype == ktypes[i])
+      return i;
+  return -1;
+}
+
+/*
+ * Effects:
+ * Searches the credentials cache for a credential matching mcreds,
+ * with the fields specified by whichfields.  If one if found, it is
+ * returned in creds, which should be freed by the caller with
+ * krb5_free_credentials().
+ * 
+ * The fields are interpreted in the following way (all constants are
+ * preceded by KRB5_TC_).  MATCH_IS_SKEY requires the is_skey field to
+ * match exactly.  MATCH_TIMES requires the requested lifetime to be
+ * at least as great as that specified; MATCH_TIMES_EXACT requires the
+ * requested lifetime to be exactly that specified.  MATCH_FLAGS
+ * requires only the set bits in mcreds be set in creds;
+ * MATCH_FLAGS_EXACT requires all bits to match.
+ *
+ * Flag SUPPORTED_KTYPES means check all matching entries that have
+ * any supported enctype (according to tgs_enctypes) and return the one
+ * with the enctype listed earliest.  Return CC_NOT_KTYPE if a match
+ * is found *except* for having a supported enctype.
+ *
+ * Errors:
+ * system errors
+ * permission errors
+ * KRB5_CC_NOMEM
+ * KRB5_CC_NOT_KTYPE
+ */
+
+static krb5_error_code
+krb5_cc_retrieve_cred_seq (context, id, whichfields,
+                          mcreds, creds, nktypes, ktypes)
+   krb5_context context;
+   krb5_ccache id;
+   krb5_flags whichfields;
+   krb5_creds *mcreds;
+   krb5_creds *creds;
+   int nktypes;
+   krb5_enctype *ktypes;
+{
+     /* This function could be considerably faster if it kept indexing */
+     /* information.. sounds like a "next version" idea to me. :-) */
+
+     krb5_cc_cursor cursor;
+     krb5_error_code kret;
+     krb5_error_code nomatch_err = KRB5_CC_NOTFOUND;
+     struct {
+       krb5_creds creds;
+       int pref;
+     } fetched, best;
+     int have_creds = 0;
+#define fetchcreds (fetched.creds)
+
+     kret = krb5_cc_start_seq_get(context, id, &cursor);
+     if (kret != KRB5_OK)
+         return kret;
+
+     while ((kret = krb5_cc_next_cred(context, id, &cursor, &fetchcreds)) == KRB5_OK) {
+        if (((set(KRB5_TC_MATCH_SRV_NAMEONLY) &&
+                  srvname_match(context, mcreds, &fetchcreds)) ||
+              standard_fields_match(context, mcreds, &fetchcreds))
+             &&
+             (! set(KRB5_TC_MATCH_IS_SKEY) ||
+              mcreds->is_skey == fetchcreds.is_skey)
+             &&
+             (! set(KRB5_TC_MATCH_FLAGS_EXACT) ||
+              mcreds->ticket_flags == fetchcreds.ticket_flags)
+             &&
+             (! set(KRB5_TC_MATCH_FLAGS) ||
+              flags_match(mcreds->ticket_flags, fetchcreds.ticket_flags))
+             &&
+             (! set(KRB5_TC_MATCH_TIMES_EXACT) ||
+              times_match_exact(&mcreds->times, &fetchcreds.times))
+             &&
+             (! set(KRB5_TC_MATCH_TIMES) ||
+              times_match(&mcreds->times, &fetchcreds.times))
+             &&
+             ( ! set(KRB5_TC_MATCH_AUTHDATA) ||
+              authdata_match(mcreds->authdata, fetchcreds.authdata))
+             &&
+             (! set(KRB5_TC_MATCH_2ND_TKT) ||
+              data_match (&mcreds->second_ticket, &fetchcreds.second_ticket))
+             &&
+            ((! set(KRB5_TC_MATCH_KTYPE))||
+               (mcreds->keyblock.enctype == fetchcreds.keyblock.enctype)))
+         {
+             if (ktypes) {
+                 fetched.pref = pref (fetchcreds.keyblock.enctype,
+                                      nktypes, ktypes);
+                 if (fetched.pref < 0)
+                     nomatch_err = KRB5_CC_NOT_KTYPE;
+                 else if (!have_creds || fetched.pref < best.pref) {
+                     if (have_creds)
+                         krb5_free_cred_contents (context, &best.creds);
+                     else
+                         have_creds = 1;
+                     best = fetched;
+                     continue;
+                 }
+             } else {
+                 krb5_cc_end_seq_get(context, id, &cursor);
+                 *creds = fetchcreds;
+                 return KRB5_OK;
+             }
+         }
+
+         /* This one doesn't match */
+         krb5_free_cred_contents(context, &fetchcreds);
+     }
+
+     /* If we get here, a match wasn't found */
+     krb5_cc_end_seq_get(context, id, &cursor);
+     if (have_creds) {
+        *creds = best.creds;
+        return KRB5_OK;
+     } else
+        return nomatch_err;
+}
+
+krb5_error_code KRB5_CALLCONV
+krb5_cc_retrieve_cred_default (context, id, flags, mcreds, creds)
+   krb5_context context;
+   krb5_ccache id;
+   krb5_flags flags;
+   krb5_creds *mcreds;
+   krb5_creds *creds;
+{
+    krb5_enctype *ktypes;
+    int nktypes;
+    krb5_error_code ret;
+
+    if (flags & KRB5_TC_SUPPORTED_KTYPES) {
+       ret = krb5_get_tgs_ktypes (context, mcreds->server, &ktypes);
+       if (ret)
+           return ret;
+       nktypes = 0;
+       while (ktypes[nktypes])
+           nktypes++;
+
+       ret = krb5_cc_retrieve_cred_seq (context, id, flags, mcreds, creds,
+                                        nktypes, ktypes);
+       free (ktypes);
+       return ret;
+    } else {
+       return krb5_cc_retrieve_cred_seq (context, id, flags, mcreds, creds,
+                                         0, 0);
+    }
+}
index dfe92f16ff96400f657b401cddae70f4ac60ec84..a805780547da51162255762f9facb39767acfb22 100644 (file)
@@ -1,3 +1,15 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * stdcc.c (krb5_stdcc_retrieve): Replace with a version that calls
+       krb5_cc_retrieve_cred_default.
+
 1999-08-05     Alexandra Ellwood <lxs@mit.edu>
 
        * stdcc_util.c (deep_free_cc_v5_creds):
index 7229f798ee5d1d9861a7c5b04745f2368bb4bb7c..9f8d1c5f4902c9151965f61ee009619407880d76 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./../..
 myfulldir=lib/krb5/ccache/ccapi
 mydir=ccache/ccapi
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(WIN_INCLUDES)
+LOCALINCLUDES = $(WIN_INCLUDES)
 
 ##DOS##WIN_INCLUDES = -I$(SRCTOP)\windows\lib
 
index db93102cad8bfe0ef826451bda3830e8a919adee..36eed9d22b73869110eb10ff8c84cd9a23ba441b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -478,6 +481,7 @@ krb5_error_code KRB5_CALLCONV krb5_stdcc_next_cred
  *
  * - try to find a matching credential in the cache
  */
+#if 0
 krb5_error_code KRB5_CALLCONV krb5_stdcc_retrieve 
                        (krb5_context context, 
                   krb5_ccache id, 
@@ -523,6 +527,22 @@ krb5_error_code KRB5_CALLCONV krb5_stdcc_retrieve
        
        return KRB5_CC_NOTFOUND;
 }
+#else
+#include "k5-int.h"
+
+krb5_error_code KRB5_CALLCONV
+krb5_stdcc_retrieve(context, id, whichfields, mcreds, creds)
+   krb5_context context;
+   krb5_ccache id;
+   krb5_flags whichfields;
+   krb5_creds *mcreds;
+   krb5_creds *creds;
+{
+    return krb5_cc_retrieve_cred_default (context, id, whichfields,
+                                         mcreds, creds);
+}
+
+#endif
 
 /*
  *  end seq
index ae89334a0fd8bc1223fdee3c1e77634806f44e19..912571f78de5debefdf3fd592e2b4ed3569c4a6f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5e3cd53a9e3a7e35aa162de1ef8cb5a22264b62b..3e2699c56c845717e813e83068bce1f981c3976d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 20081cc8e094640158cf291d39fd9aeaec156378..2651273bec8ee3b49d5ac556959a71a1419ed670 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f99e78246022e0e2981aa3cd35b7d973f19a1534..298360b79e3ec4678b427141b5ae88da236fada5 100644 (file)
@@ -1,3 +1,15 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * fcc_retrv.c (krb5_fcc_retrieve): Replace with a version that
+       calls krb5_cc_retrieve_cred_default.
+
 1999-06-10  Danilo Almeida  <dalmeida@mit.edu>
 
        * fcc_ops.c (krb5_cache_change): Use PostMessage instead of 
index 77cf38eed33a856e260e84ea483c4e9605e7a527..c1a2ace4de32587c763e9c2cab534d98dbdb4d94 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./../..
 myfulldir=lib/krb5/ccache/file
 mydir=ccache/file
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..\..
 ##DOS##PREFIXDIR = ccache\file
index d05eeb73c75040ff35ab23c919a4f1d05273c92e..837a9e32babe5150278dab087693dc56480488d3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e17d437abb9150b1de77e323c78904c8e0cf9a47..d1b3c332cda6cac6ab941ebd6fccc292c63be8ff 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6e7997afdfcbd62e88654629511eca530deb04f1..5d8d498916db6ae97031a13e23637ddfde264437 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 18591ac7f6a0782c8804a4c77f0035054db6de7e..8f2f0f2f5d0fea35d396c5a35f55e73a68960bbf 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 37914e1f99f4bbb1cdd483369623f71712335962..d0e6ff5950ef10c8c35f7c9057da58f4e906185d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0f21445ff763668e99bba72721be3f7475e22141..43d397462cfca3cd510e8abd0ed28c4190a55431 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d6ce34e2df226a25b32563bc5b0a6d6cd379203e..a57c9c111b96b34c8728690129f9f875e46764ce 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index df98e0cd12a5c9085928cf200c8cbaddc62b918a..12b37b1c82ae3fb79fd389fac16b727a203cb2f3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6a7b9557c417ced57be0acf504e192179fc99181..c5ca1d0065840cccab0189848436b27a8dfbbd00 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 72d6c7780f5115db7089f7f5740c6b4d1a9e222f..b8a2595760c924c7180738580a1fadd3277a746e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b3bf74de143d3d2350b40f1db86d3df375a15212..b3777ecd83cae2c422cf1c1c68056b72f2a6deb1 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e982f0f82101b07bb6effe166cb5d016d7e6593b..1602a20eccac8faeea972d9c6ae9d9aa26c1d383 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 92df32927b70e1b7e19643c0378f6b72c03ef88f..0c34a20bf3f538eca7ffe0f1c866bd87fdf82e5b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3260421ce261abcca1c738e4fff0dedfbab5d899..e96be06f3eeee1a541c659c87e557439d6241cd1 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 88cb21d090d2fbb8a318c1da121f9df559d91d52..e57c7aba3a4c89e41a136014fba52832ff4d9e9a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5e3775ae46c126ebbeb823ba085811f914379386..a541a860f8d4773de823868373a34ade229213c4 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5f4e71d7c63b5f6225c64dd1adce298b799b2d50..e7a4ff20361763d3daff64968bd72f76ebd7c096 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -24,6 +27,8 @@
  * This file contains the source code for krb5_fcc_retrieve.
  */
 
+#if 0
+
 #include "fcc.h"
 
 #ifdef macintosh
@@ -230,3 +235,21 @@ authdata_match(mdata, data)
     }
     return (*mdata == NULL) && (*data == NULL);
 }
+
+#else
+
+#include "k5-int.h"
+
+krb5_error_code KRB5_CALLCONV
+krb5_fcc_retrieve(context, id, whichfields, mcreds, creds)
+   krb5_context context;
+   krb5_ccache id;
+   krb5_flags whichfields;
+   krb5_creds *mcreds;
+   krb5_creds *creds;
+{
+    return krb5_cc_retrieve_cred_default (context, id, whichfields,
+                                         mcreds, creds);
+}
+
+#endif
index 9f9b60140fc5e178e8c28a431ea1ad13b6451dcf..be1007e6d803f6c8c0604b3b353fe981237d57da 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2f51aeee50e0251f13ad28c2fae131acb283d1ce..354d03a60c2f7f04510cd3874c84253fa477baad 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 8e215becdf97ca71e53c1174f09fc91a76b7738c..d22d41dfe75cba1cf42659cc420b71296cb3d940 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4915e4e395f424880bb9028a6636b339d576b0c3..264940af020bf1e0e48f85f547ee68122c877c02 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3e3b5c57c6cfe276084d0d26bbbfbcb438f44e19..a41df47ac6d84e146ed4729a0ebc4beead5f7b80 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 566789ef2a33d3d69001bc5dc4c4d52995ee377d..fe4c3b1c2db41ee4861364c525e70b4a2175c166 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4ff0ffafd85369c049b417bdb76b9c7520c5b1a7..9b9e142a60826665b0317e6c0dcd042856a21cd4 100644 (file)
@@ -1,3 +1,15 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * mcc_retrv.c (krb5_mcc_retrieve): Replace with a version that
+       calls krb5_cc_retrieve_cred_default.
+
 Mon May 10 15:25:06 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 121ec9dc0cce3992fff8c5a18881b62f44f88405..fbe248fb808abe0b6df7d2d6ac392d8dfe4a3271 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./../..
 myfulldir=lib/krb5/ccache/memory
 mydir=ccache/memory
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..\..
 ##DOS##PREFIXDIR = ccache\memory
index fe66c798f52a48804f66bcf45ab85b78766388a2..dc065bad7ef108c00027a8b85aabcd1573e12de8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f7c6da57d8ed036b1719a0d8a49994523857d6ad..872fe0efd79958a30f5eed2867112082fc026276 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 514a4adfa7193fcbc623b7b311fd0e7cccba00db..9125f1d1ed6760ab4915eb2cc91b905d1ce27618 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e6946789de3a7e888ef494aaba19687cc0a2e8fd..4d70038eb04507c76b72144402f694f7f9b44f2b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c3d264cdd42fc488c6b8e3305936c32258d9861d..c567d21f6ac8dc116a953e8cf9c74d18e3042054 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 76249610a94fcb8516addb35b95af0056f4901ff..8720a61681e69ae6726f32d9bc61a0c5e7b28bf3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e86b0836e8a45f96518998fa31b7392ce81255d3..f4c611992d9db00afde60615475c78961fc87f08 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 81624d73a4a61e423a5e5b7d27bad647bb1973af..90d02ca54845ad18570d3d92cb0f7f482142b8af 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5f4a40ae7a9b06e152937a4907cb57266e0cf230..773e2419790cf2b1e100a19be538ea3a5a60e486 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a68b9f95a9268ce79ad9a819441bcacbbd4de02f..3b533a291cdf89598a13d131bda4eded2870cdcb 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d3f1cb5af96763c0f196b22bfb74e5cb33cd7aa1..51f8c8808ece7beebd838420d430dc2272b1e04a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 9285198a1e3c1453d396a39fd88308cc928c20f0..2b256d6e4fcb81e397535174fdc3bb481c6cb5fe 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ae3510129d9b81ccdbf5a6f0e9e70e0c3e8942d1..cdb6ae3d1c6018fd66f885fac976ea8fb5903cb0 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -24,6 +27,8 @@
  * This file contains the source code for krb5_mcc_retrieve.
  */
 
+#if 0
+
 #include "mcc.h"
 
 #define set(bits) (whichfields & bits)
@@ -223,3 +228,21 @@ authdata_match(mdata, data)
     }
     return (*mdata == NULL) && (*data == NULL);
 }
+
+#else
+
+#include "k5-int.h"
+
+krb5_error_code KRB5_CALLCONV
+krb5_mcc_retrieve(context, id, whichfields, mcreds, creds)
+   krb5_context context;
+   krb5_ccache id;
+   krb5_flags whichfields;
+   krb5_creds *mcreds;
+   krb5_creds *creds;
+{
+    return krb5_cc_retrieve_cred_default (context, id, whichfields,
+                                         mcreds, creds);
+}
+
+#endif
index a12c696f9c5072664bc574262228f3fc34c59f34..9747d753099c98161c3fd22d2afe05a278861174 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index bb87e47df5638f354f86493289156a72a36178a4..90836df0dfbf35420ccc8fa0be78119c79e46f70 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 81ea2edb85181e51d15bd349f3f55349f7c49162..b117aed33f603ccc74aab7117f13613a29c028ad 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c834769eb3b5806174da787cd69d22301c9d5519..8c1918a5af09f48ba94f318ecf2e88b8318c5da6 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 5b7e7ea1a42bbd5370a55b2c74825e97ec64fb8e..c520ca35e22121c49bf68ddeb10a28ac4d65c9a0 100644 (file)
@@ -1,3 +1,15 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * scc_retrv.c (krb5_scc_retrieve): Replace with a version that
+       calls krb5_cc_retrieve_cred_default.
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 210ae8c6637fd3c77e36e335df6b51df02a8b949..3b06bc678218cf85d5da3d58e4c9cc07b2efb36a 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./../..
 myfulldir=lib/krb5/ccache/stdio
 mydir=ccache/stdio
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 STLIBOBJS = \
        scc_close.o scc_destry.o scc_eseq.o \
index 20a0006f36627eec791f4903239d41e691aa4aaf..1fe4a88b982c93a09400d133458d53d2ea6e76f1 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 627eb3adf0d1a814389e1ae550776a731a5d71f6..fda85d47db4901491258a767cfaf29b1a4521e51 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 77f6d6b2339321c633dd70d53549dd0e519de9dc..4f6e3e964a1868b744881b43fedc1c079a586207 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 8eb67a7703b170950c86f9014522a79c63d1693b..57e866a98b6d443e81bfed2a4227ed3fa59b342c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7b1db878d06bf971565bcc16a293a6deee4984fd..b8e40ed64044a95fb4c3b316f1a806b2763a89c7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e1e1655eec72d71d2c38bfa2f4594164187c0ff1..73d698a84d7f018b947f5b0afe8d9c2be93172a2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6d7595089f814455252a53eb71282dfb8afc58b8..73672afcf656da99a8aadf4f1ffea091aff4e933 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5635428faa8675c0da0c0e98b35c2e94d1df0c6a..ee0d8295cda4b6bcb241b6f430d5e963ea6b3471 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0303c1009cfdb9564e392b7b9702b8ca71409702..e37d6a3d45f591e2b265161d630a7573703d7dbb 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5fbc4822d6eccd9fdfe4a1d40cb5d3b54cbd2166..8de1bda6d2e79c5b471622eac3cbbd0b9049e027 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 8261535843a42fc32a682b973407f4a059b70b47..91308ba970e64297eda343cf747ebf14a4d5e6a7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7d6df320684788db1cedde2783b05441c4596e70..858b49f37595335199fbc81c3c946da5393b7506 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 49f9e255dfc6f46cb002c4237390306437b96d15..09f8e7654894f9384a4a2dfaf7ffd834abb2d683 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4ec38e72ceb2c26611bdb246a218891fcd3ea9f5..9b5d361f97cf20096d56d3f5ee88c89f14b24b8e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 88e9e5566e7ad45047ce09d15444bc5811b682ac..f36b387341073d2230b2dbf9c2e99c91ef744d4c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a809a474481961a28c56a3bd3fa0c872213bc4d4..bff8296e443d3caf7234638ddb914a88520b0dbf 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7498d906e12c2412ce9e4c9200e9555f750ad2d0..f5b0da8ee3991501385ef47ec5d248b8199dc7db 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -24,6 +27,8 @@
  * This file contains the source code for krb5_scc_retrieve.
  */
 
+#if 0
+
 #include "scc.h"
 
 #define set(bits) (whichfields & bits)
@@ -217,3 +222,21 @@ krb5_scc_retrieve(context, id, whichfields, mcreds, creds)
      krb5_scc_end_seq_get(context, id, &cursor);
      return KRB5_CC_NOTFOUND;
 }
+
+#else
+
+#include "k5-int.h"
+
+krb5_error_code KRB5_CALLCONV
+krb5_scc_retrieve(context, id, whichfields, mcreds, creds)
+   krb5_context context;
+   krb5_ccache id;
+   krb5_flags whichfields;
+   krb5_creds *mcreds;
+   krb5_creds *creds;
+{
+    return krb5_cc_retrieve_cred_default (context, id, whichfields,
+                                         mcreds, creds);
+}
+
+#endif
index 89ec826eb3275895c2ed839fe3ac303e31dd9d07..47ac9809ad82f9940cb98180ff9ce8319b0290f2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6b072dc5e884a6b18d245e6591adfd2939264d1b..c203c71bbdd6be72ab1afdcad59fdd3d75a42d1a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c5bac1967216ee4d08ae50bb9f5e632d5d54bef8..df71aff17c7175f5d4495c3418c8b6eaf630bffd 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 71b06210db6de847f5e35933aba162440f4757c4..158e3f9ea081a86c1d9b83abf0bf37f95ff8eedf 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d94829249016a5cc9e94651e24e5932f10f2acd7..a76d1fcd7f814e237b895f77da845252ed68a080 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3c552004ae234f0cb45265bcfa1f0daad41d058d..cbfa4a449fc9fefc26b7c2cf6df20dfb5004dfec 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4986a4ce8f076caeb5abce879e28b89b62049192..d93bf5edfd8046ed096451820ce33958cafe6333 100644 (file)
@@ -1,3 +1,22 @@
+1999-12-01  Ken Raeburn  <raeburn@mit.edu>
+
+       * krb5_err.et (KRB5_OBSOLETE_FN): New error code.
+
+1999-11-02  Ken Raeburn  <raeburn@mit.edu>
+
+       * krb5_err.et (KRB5_CONFIG_ETYPE_NOSUPP): New error code.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * krb5_err.et (KRB5_CC_NOT_KTYPE): New error code.
+
 1999-07-29  Ken Raeburn  <raeburn@mit.edu>
 
        * Makefile.in: Delete dependency info for isode error table that
index a827fa235109718f90d54dfd62f32c771b5ff500..d2a52ebe52fc05b6fc093bc29167bce3cd1ee806 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/krb5/error_tables
 mydir=error_tables
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=error_tables
index ac43fb7edf38a353a0e1ea50f7451c9c47f5bc61..a6e9c2d05c8e76b9612915393259ed1c9bcc40d7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 9840e5d6d21e881944522a939866249a7aa9ca75..982a9c11a91f33d5aadacfd44a2e094cd8ed683f 100644 (file)
 # 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
+# permission.  Furthermore if you modify this software you must label
+# your software as modified software and not distribute it in such a
+# fashion that it might be confused with the original M.I.T. software.
+# 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.
 # 
index b483116e1d8933e5540daaee79e8ddabd400864a..6135a9dfa82db682c8a6a9d2da4d677d51102d84 100644 (file)
 # 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
+# permission.  Furthermore if you modify this software you must label
+# your software as modified software and not distribute it in such a
+# fashion that it might be confused with the original M.I.T. software.
+# 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.
 # 
@@ -262,6 +265,7 @@ error_code KRB5_FCC_INTERNAL,               "Internal file credentials cache error"
 error_code KRB5_CC_WRITE,              "Error writing to credentials cache file"
 error_code KRB5_CC_NOMEM,              "No more memory to allocate (in credentials cache code)"
 error_code KRB5_CC_FORMAT,             "Bad format in credentials cache"
+error_code KRB5_CC_NOT_KTYPE,          "No credentials found with supported encryption types"
 
 # errors for dual tgt library calls
 error_code KRB5_INVALID_FLAGS,         "Invalid KDC option combination (library internal error)"
@@ -316,5 +320,7 @@ error_code KRB5_CHPW_FAIL,          "Password change failed"
 error_code KRB5_KT_FORMAT,             "Bad format in keytab"
 
 error_code KRB5_NOPERM_ETYPE,  "Encryption type not permitted"
+error_code KRB5_CONFIG_ETYPE_NOSUPP,   "No supported encryption types (config file error?)"
+error_code KRB5_OBSOLETE_FN,   "Program called an obsolete, deleted function"
 
 end
index aff1d3c62d3e63c9f8c77acbd39859f4fceb5e96..eb6bdd870cbc669e2951530c5c5dbbbfb20cab0b 100644 (file)
 # 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
+# permission.  Furthermore if you modify this software you must label
+# your software as modified software and not distribute it in such a
+# fashion that it might be confused with the original M.I.T. software.
+# 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.
 # 
index b467b2b630467c4ce14cca6a712798594f72ab5f..71c5a42084dd4e16ca4889269c6caabfdb64f137 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-06-15  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Fix windows build.
index cdbe0b2e4d4087be1feb9f76446a2313ffbd4734..66677a159102b1f21cd7fb13333b876678c026ef 100644 (file)
@@ -4,8 +4,6 @@ mydir=keytab
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
 LOCAL_SUBDIRS = file srvtab
 
-CFLAGS = $(CCOPTS) $(DEFS)
-
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=keytab
 ##DOS##OBJFILE=..\$(OUTPRE)$(PREFIXDIR).lst
index 55c0550f286d2ca533580221e4e829af3fe7c228..76c04e54d6531c5dd67467dff76a538979ae45c6 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 678bf2f881d755dc5c78f1268b8717e3ec52dbcf..9d31de16f67165f93fd5a163d3ad0ec71158394c 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./../..
 myfulldir=lib/krb5/keytab/db
 mydir=keytab/db
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOSBUILDTOP = ..\..\..\..
 ##DOSLIBNAME=..\..\krb5.lib
index 9789d30cce3aec396866ecc2e36ca634561ef074..e297add067ccb08bf0ac5120680c48ea845bfd7d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7ca80a640cc3885055048d25e46d2b5b2fa7cc14..4be401b723ae2e398ddd3635ae5bcdadb592d3d3 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:25:45 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 1c0fa64dd5e144f4460443a5d53be850e9b8fa5e..d0706621a5e13f1385407aea4864b5cc5be6eb8c 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./../..
 myfulldir=lib/krb5/keytab/file
 mydir=keytab/file
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..\..
 ##DOS##PREFIXDIR=keytab\file
index 8979ad8c995df6e30036da1ca2a4cd1c3a5b895f..5ba5af79ababe30cb35b8d27830eeac03b07b03c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a538aa719e473119b250431dda583ccac1b642f9..d735120cc37c4f99e202fc2b628b5312eebc61a4 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7b905b97affc77306015d09ecb6aa7ca6942fa33..6bba8a63f06f7439cd5c7e694b2998429c36275f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 66f862e18738b6a243890e679ab451e964c36e99..a007f077dab7214480d1fca9bc7710109b7ea00a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 57d6edabd650f70ebccd792df7b72570051ac177..b45ab6fd766cc80308bc5ef0b9e5b8a87a1be0e9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b0cd4d8e6e65bdad0729b9192f33c90729ed50b7..083ca387e8ee61ba1db346a43cfa8f1d2d5f1829 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index acabb7c355de05b8806edc926528a97c1f96dd76..41e13d4136a8c5cea285307fff8f6603d7d4dfbe 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index bc9d03882d5bfd1bcc13078159e0f6b99a84c55d..86f44a78cb77d3fa519edebcdbc7b6d1c3602ba7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3d9e627b5404a0fe907aa0a09d8e63ab082dd087..214fa6bfc907425c8fbc3732b73aa877506a85a8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 1b0935063db5bf5336c7e3006b63526ff641c87e..41a7a6ce4d2711fd21a738aae4cbb1b6760edf77 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b66c4cabaacc86a4453a5fc47d281c0957cc9b03..1676a48761a4122f028c74f81dbe4de5ff82a2fa 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3713c62d680657cc6ee3775252ac0473330c90d2..4ae73fedbb107ec26d0d844ee3559d0da8178e38 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d55f9808c7fa0a50fde8533ebce0f2b01a667033..833e4d66f40f64c10281a0f019d8649aa8c1d4b1 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2e7f99e083358389af253092b589eff59a3e9cf3..523d983701a55d3e6e60ba84352ff27092e46f46 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 61a8acf3b47c057803b67bf3917ecd34b4bba589..8ee5756f664920e959e32daf179e47aa281f413f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 61ad9176fc7b853d43721b5e01eb06c7e67b5ea5..69f6d5d862b3e3533ae38b6408e7e0e7977e34a8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index ab805c94ddaf9370dd3e2a5be3ff669aa33590c3..46f9cb4c15b4a51edd87293fb2bc41b15c02d7f6 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c65ee448313cd8b851fc5b5bf0f2f37f4ebcb2d1..32c84a47bf930a3849ee884e569df4afa574e7c7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6178d43ddb9a5c1b35cd880bd1dacf40add97678..7057bfc3dd6a471acfee73478d0f61667bdfb972 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 92c3235e48cdd327053e1d4d01e44ef4b9159d0a..ddccb1703233dac712423e8cecb8586c7f135f00 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6fc9dd3cfed3df99f73eca9f8fe1b8229fe8b05c..d14f298a48075f38999056ace0fb37b4afcc4776 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b6f058e4919ce017c2b43ce9d118c7f21e23222b..345d36566865179d75b208c752327da14bdbcf09 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5c55de820c2f163878414486aa44acac46b2dbc9..9d2468752d3c55e4c49d6c4d0cbb78e25a13b95b 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-06-15  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Fix windows build.
index 001050cd1ff996affd19dce6b79e3e7eb3100f7d..cffe1c632397b15c09799f267f70d3d54232cff2 100644 (file)
@@ -3,8 +3,6 @@ myfulldir=lib/krb5/keytab/srvtab
 mydir=keytab/srvtab
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)$(S)$(U)
 
-CFLAGS = $(CCOPTS) $(DEFS)
-
 ##DOS##BUILDTOP = ..\..\..\..
 ##DOS##PREFIXDIR=keytab\srvtab
 ##DOS##OBJFILE=$(OUTPRE)srvtab.lst
index 1d66d7ed5890ab4e36ed53f7c92a716cfbb242cb..6d465242f645094d2833df9fd7f72d4398077ba5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 035e9c51d4147681e04d237bfce58b6b6aa0db5b..eda5d27ed125faebef112bda30d240e765b1ce2d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 01a0379bac2838ead97987c72f430cfc15067432..9d94fee3f716cb78a6011f65b13e56cdf596abd8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 74555600c7816ab08eeed61b1ca4fc29fed86a2d..bb72acfa4c137bc01a2f206d9a68e5df2841ef3b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 275e738d8bc06c8daba3130b9eb1ee8c9da91562..15c46e7ddeac86da9c6e925ade080872641cf5cb 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c63402102d70b5624e58a43fa70259938c817455..d78dcbed1dac6e929334fd3606332f7c4319dbc1 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 795a82887bed0ead27af165597b311243467fadf..2cec72e546e8900d9f21a3e0fdc4737ca6fd0929 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index edb252264067379a951a9e7d4d80fe0e3113f74d..8c3b812f576ccc93e5e3b350ade4ef62451f9416 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7e7a4d04cb601ca8ecdf4fddd0e65e92205f97e7..d95aceb48cd82b2d7df666276df0354edd681503 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 071a27d10f7b590b042d0caafca8d80a3b139ce0..822405703adda99ffd7a3df2572839ea62392036 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3377f5fe2114022198efc20257b89313d87abc42..b42bb4d5bc0da767245166a286025b6e918706fa 100644 (file)
@@ -1,3 +1,115 @@
+2000-04-28  Nalin Dahyabhai  <nalin@redhat.com>
+
+       * conv_princ.c (krb5_425_conv_principal): Don't overflow buffer
+       "buf".
+
+1999-12-02  Ken Raeburn  <raeburn@mit.edu>
+
+       * init_ctx.c (get_profile_etype_list): Report an error if no
+       recognized enctypes are found in the config file.
+
+1999-11-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * init_ctx.c (init_common): Renamed from krb5_init_context, now
+       static.  New argument SECURE provides initialization of
+       profile_secure field.
+       (krb5_init_context): Call it.
+       (krb5_init_secure_context): New function.
+
+       * preauth2.c (krb5_do_preauth): Fix syntax in switch statement.
+
+       * str_conv.c (krb5_deltat_to_string): Always write to a local
+       temporary buffer that's guaranteed to be large enough, then see if
+       the supplied output buffer is big enough.
+       (krb5_string_to_deltat): Deleted.
+       * x-deltat.y, deltat.c: New files.
+       * Makefile.in (deltat.c): Add rule for building from x-deltat.y,
+       but comment out dependencies for easier maintenance.
+       (BISON, BISONFLAGS): New variables.
+
+       * str_conv.c: Removed most static char arrays, substituting the
+       values in place.
+       (krb5_string_to_timestamp): Move atime_format_table inside here.
+       (krb5_timestamp_to_sfstring): Move sftime_format_table inside
+       here.
+
+       * str_conv.c: If strftime or strptime are not available, include
+       the renamed NetBSD versions, and define the function names as
+       macros to map them to the replacement names.
+       (__P, _CurrentTimeLocale, dummy_locale_info, TM_YEAR_BASE,
+       DAYSPERLYEAR, DAYSPERNYEAR, DAYSPERWEEK, isleap, tzname, tzset):
+       Define some dummies for strftime/strptime to use.
+       (strptime): Deleted old stub version.
+       (krb5_timestamp_to_string, krb5_timestamp_to_sfstring): Always
+       assume strftime is available.
+       (krb5_string_to_timestamp): Assume strptime is always available.
+       * strftime.c, strptime.c: New files, based on NetBSD versions.
+       Modified to rename the functions and not export any symbols.
+
+       * Makefile.in (T_DELTAT_OBJS): New variable.
+       (TEST_PROGS): Add t_deltat.
+       (t_deltat): Add rule.
+       (clean): Added t_deltat stuff.  Run rm only once.
+       * t_deltat.c: New file.
+
+1999-11-02  Ken Raeburn  <raeburn@mit.edu>
+
+       * t_ref_kerb.out: Fix expected zephyr/zephyr output.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-10-14  Tom Yu  <tlyu@mit.edu>
+
+       * preauth2.c (krb5_do_preauth): Add gross workaround for 1.0.x KDC
+       returning a bogus PA-PW-SALT in a KRB-ERROR message when a
+       principal requires preauth: ignore salt hints if an etype_info is
+       present.
+
+1999-10-12  Ken Raeburn  <raeburn@mit.edu>
+
+       * conv_princ.c (sconv_list): Don't do conversion for "zephyr"
+       principal.  (Noticed by Derrick Brashear.)  Delete about a dozen
+       duplicate entries.
+
+1999-08-26  Ken Raeburn  <raeburn@mit.edu>
+
+       * init_ctx.c (get_profile_etype_list): Update name of the des3
+       entry in the default etype list.
+
+1999-08-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * init_ctx.c (get_profile_etype_list): New argument DESONLY; if
+       set, ignore any ktype values other than NULL, DES_CBC_CRC, and
+       DES_CBC_MD5.
+       (krb5_get_default_in_tkt_ktypes, krb5_get_tgs_ktypes): Set it.
+       (krb5_get_permitted_enctypes): Don't set it.
+
+       * fwd_tgt.c (krb5_fwd_tgt_creds): Use KRB5_TC_SUPPORTED_KTYPES
+       when calling krb5_cc_retrieve_cred.
+       * gc_frm_kdc.c (krb5_get_cred_from_kdc_opt): Ditto.
+       * get_creds.c (krb5_get_credentials_core): Set that flag.
+       (krb5_get_credentials): Check for KRB5_CC_NOT_KTYPE error return.
+
+1999-08-17  Ken Raeburn  <raeburn@mit.edu>
+
+       * t_ser.c (main): Disable eblock serialization test, since the
+       code it tests was disabled nearly a year ago.
+
+       * str_conv.c (krb5_timestamp_to_sfstring): Don't pass extra
+       argument to sprintf.
+
+1999-08-10     Alexandra Ellwood       <lxs@mit.edu>
+
+       * chpw.c (krb5_mk_chpw_req):
+               Added call to free cipherpw.data.  cipherpw.data is allocated 
+               by krb5_mk_priv and passed back.  Since cipherpw is never
+               passed back, krb5_mk_chpw_req should free it.
+
 1999-08-05  Danilo Almeida  <dalmeida@mit.edu>
 
        * init_ctx.c (krb5_init_context): Document why krb5_win_ccdll_load
index 4c68514906a93300027edd38aad131d2d2b58322..ba7666247c7a73458d43e12aeb747b1b16432a2c 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/krb5/krb
 mydir=krb
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 RUN_SETUP = @KRB5_RUN_ENV@
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
@@ -34,6 +33,7 @@ STLIBOBJS= \
        cp_key_cnt.o    \
        decode_kdc.o    \
        decrypt_tk.o    \
+       deltat.o        \
         enc_helper.o   \
        encode_kdc.o    \
        encrypt_tk.o    \
@@ -117,6 +117,7 @@ OBJS=       $(OUTPRE)addr_comp.$(OBJEXT)    \
        $(OUTPRE)cp_key_cnt.$(OBJEXT)   \
        $(OUTPRE)decode_kdc.$(OBJEXT)   \
        $(OUTPRE)decrypt_tk.$(OBJEXT)   \
+       $(OUTPRE)deltat.$(OBJEXT)       \
         $(OUTPRE)enc_helper.$(OBJEXT)  \
        $(OUTPRE)encode_kdc.$(OBJEXT)   \
        $(OUTPRE)encrypt_tk.$(OBJEXT)   \
@@ -201,6 +202,7 @@ SRCS=       $(srcdir)/addr_comp.c   \
        $(srcdir)/cp_key_cnt.c  \
        $(srcdir)/decode_kdc.c  \
        $(srcdir)/decrypt_tk.c  \
+       $(srcdir)/deltat.c      \
        $(srcdir)/enc_helper.c  \
        $(srcdir)/encode_kdc.c  \
        $(srcdir)/encrypt_tk.c  \
@@ -263,6 +265,12 @@ SRCS=      $(srcdir)/addr_comp.c   \
        $(srcdir)/vic_opt.c     \
        $(srcdir)/walk_rtree.c
 
+# Someday, when we have a "maintainer mode", do this right:
+BISON=bison
+BISONFLAGS=-v # -v -> .output; -d -> .h
+$(srcdir)/deltat.c : # x-deltat.y
+       $(BISON) $(BISONFLAGS) -o $(srcdir)/deltat.c $(srcdir)/x-deltat.y
+
 ##DOS##LIBOBJS = $(OBJS)
 
 all-unix:: all-libobjs
@@ -278,6 +286,8 @@ T_KERB_OBJS= t_kerb.o conv_princ.o unparse.o set_realm.o str_conv.o
 T_SER_OBJS= t_ser.o ser_actx.o ser_adata.o ser_addr.o ser_auth.o ser_cksum.o \
        ser_ctx.o ser_eblk.o ser_key.o ser_princ.o serialize.o 
 
+T_DELTAT_OBJS= t_deltat.o deltat.o
+
 t_walk_rtree: $(T_WALK_RTREE_OBJS) $(KDB5_DEPLIBS) $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o t_walk_rtree $(T_WALK_RTREE_OBJS) \
                $(KDB5_LIBS) $(KRB5_BASE_LIBS)
@@ -290,7 +300,10 @@ t_ser: $(T_SER_OBJS) $(KDB5_DEPLIBS) $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o t_ser $(T_SER_OBJS) \
                $(KDB5_LIBS) $(KRB5_BASE_LIBS)
 
-TEST_PROGS= t_walk_rtree t_kerb t_ser
+t_deltat : $(T_DELTAT_OBJS)
+       $(CC_LINK) -o t_deltat $(T_DELTAT_OBJS)
+
+TEST_PROGS= t_walk_rtree t_kerb t_ser t_deltat
 
 check-unix:: $(TEST_PROGS)
        KRB5_CONFIG=$(srcdir)/t_krb5.conf ; export KRB5_CONFIG ;\
@@ -317,8 +330,10 @@ check-unix:: $(TEST_PROGS)
        $(RM) test.out
        KRB5_CONFIG=$(srcdir)/t_krb5.conf ; export KRB5_CONFIG ;\
                $(RUN_SETUP) ./t_ser
+       ./t_deltat
 
 clean::
-       $(RM) $(OUTPRE)t_walk_rtree$(EXEEXT) $(OUTPRE)t_walk_rtree.$(OBJEXT)
-       $(RM) $(OUTPRE)t_kerb$(EXEEXT) $(OUTPRE)t_kerb.$(OBJEXT)
-       $(RM) $(OUTPRE)t_ser$(EXEEXT) $(OUTPRE)t_ser.$(OBJEXT)
+       $(RM) $(OUTPRE)t_walk_rtree$(EXEEXT) $(OUTPRE)t_walk_rtree.$(OBJEXT) \
+               $(OUTPRE)t_kerb$(EXEEXT) $(OUTPRE)t_kerb.$(OBJEXT)      \
+               $(OUTPRE)t_ser$(EXEEXT) $(OUTPRE)t_ser.$(OBJEXT)        \
+               $(OUTPRE)t_deltat$(EXEEXT) $(OUTPRE)t_deltat.$(OBJEXT)
index 661f6960e2672dbf855866c41b1a0bc2f5244d4e..359e570fd2b61161c797ed659c131ea456870c1f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 757f7bf52e866e817bba96427a9e580c503d94c8..f9a92b470cce52b5341eda1f37c2154d739240ff 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d30b68cd1e29049b0776d24c2825512905da133c..75da7d21d2d94afa1df6281088b299f962cbc1fb 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 8b201759ff5a69d83af1d8fbb48389ea952469b8..52f4ebb50b7d155cda66b9ac7d769e45a83d60e3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 364c234ca23974f38a9fbabb53edfb1697f43854..417c980bf090abe9172bce1eeb575c0b86512e3d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 70f1bd82a9135cc4450dd4bddf8b480aa843fe1b..f3c6eb6defc8d8eb7a3973f93204d23e94e9d62a 100644 (file)
@@ -12,27 +12,32 @@ krb5_mk_chpw_req(context, auth_context, ap_req, passwd, packet)
      char *passwd;
      krb5_data *packet;
 {
-    krb5_error_code ret;
+    krb5_error_code ret = 0;
     krb5_data clearpw;
     krb5_data cipherpw;
     krb5_replay_data replay;
     char *ptr;
 
+    cipherpw.data = NULL;
+
     if (ret = krb5_auth_con_setflags(context, auth_context,
                                     KRB5_AUTH_CONTEXT_DO_SEQUENCE))
-       return(ret);
+         goto cleanup;
 
     clearpw.length = strlen(passwd);
     clearpw.data = passwd;
 
     if (ret = krb5_mk_priv(context, auth_context,
                           &clearpw, &cipherpw, &replay))
-    return(ret);
+      goto cleanup;
 
     packet->length = 6 + ap_req->length + cipherpw.length;
     packet->data = (char *) malloc(packet->length);
     if (packet->data == NULL)
-       return ENOMEM;
+         {
+           ret = ENOMEM;
+           goto cleanup;
+         }
     ptr = packet->data;
 
     /* length */
@@ -59,7 +64,11 @@ krb5_mk_chpw_req(context, auth_context, ap_req, passwd, packet)
 
     memcpy(ptr, cipherpw.data, cipherpw.length);
 
-    return(0);
+cleanup:
+    if(cipherpw.data != NULL)  /* allocated by krb5_mk_priv */
+      free(cipherpw.data);
+      
+    return(ret);
 }
 
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
index f89c3d4906a0e93666e5fae998de1577d94abd84..46b30da57ec23b88bab2bc4075b1df4460560c2e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -81,7 +84,7 @@ static const struct krb_convert sconv_list[] = {
     {"abs",   "abs",          DO_REALM_CONVERSION},
     {"nfs",   "nfs",          DO_REALM_CONVERSION},
     {"tftp",  "tftp",         DO_REALM_CONVERSION},
-    {"zephyr",        "zephyr",       DO_REALM_CONVERSION},
+    {"zephyr",        "zephyr",       0},
     {"http",  "http",         DO_REALM_CONVERSION},
     {"khttp", "khttp",        DO_REALM_CONVERSION},
     {"pgpsigner", "pgpsigner",        DO_REALM_CONVERSION},
@@ -89,18 +92,6 @@ static const struct krb_convert sconv_list[] = {
     {"mandarin-agent",        "mandarin-agent",       DO_REALM_CONVERSION},
     {"write", "write",        DO_REALM_CONVERSION},
     {"palladium", "palladium",        DO_REALM_CONVERSION},
-    {"news",   "news",         DO_REALM_CONVERSION},
-    {"abs",    "abs",          DO_REALM_CONVERSION},
-    {"nfs",    "nfs",          DO_REALM_CONVERSION},
-    {"tftp",   "tftp",         DO_REALM_CONVERSION},
-    {"zephyr", "zephyr",       DO_REALM_CONVERSION},
-    {"http",   "http",         DO_REALM_CONVERSION},
-    {"khttp",  "khttp",        DO_REALM_CONVERSION},
-    {"pgpsigner", "pgpsigner", DO_REALM_CONVERSION},
-    {"irc",    "irc",          DO_REALM_CONVERSION},
-    {"mandarin-agent", "mandarin-agent",       DO_REALM_CONVERSION},
-    {"write",  "write",        DO_REALM_CONVERSION},
-    {"palladium", "palladium", DO_REALM_CONVERSION},
     {0,                0,              0},
 };
 
@@ -243,7 +234,8 @@ krb5_425_conv_principal(context, name, instance, realm, princ)
              if (retval == 0 && full_name && full_name[0]) {
                  instance = full_name[0];
              } else {
-                 strcpy(buf, instance);
+                 strncpy(buf, instance, sizeof(buf));
+                 buf[sizeof(buf) - 1] = '\0';
                  retval = krb5_get_realm_domain(context, realm, &domain);
                  if (retval)
                      return retval;
@@ -251,8 +243,8 @@ krb5_425_conv_principal(context, name, instance, realm, princ)
                      for (cp = domain; *cp; cp++)
                          if (isupper(*cp))
                              *cp = tolower(*cp);
-                     strcat(buf, ".");
-                     strcat(buf, domain);
+                     strncat(buf, ".", sizeof(buf) - 1 - strlen(buf));
+                     strncat(buf, domain, sizeof(buf) - 1 - strlen(buf));
                      krb5_xfree(domain);
                  }
                  instance = buf;
index fa2d367234bd10ccfba6df23c242eaef58dbdf42..a99ae9af1ed941ec8cc92c05e5390e1857e4eeeb 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e2bec676c1c53f8be06c2d77b4eb5d09f1669859..fecb5775d9370cf31801d755eeb7a7cc01ca2cff 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7594b91367d29ad00b6f57a3848bd947b1014e1b..331c350fe35462b9db708a11bfb650908f1527e3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 8adc82a906587c060d2488f3768680f409184d35..0c4783d87b0704af019b6f735ca0b166d8edf058 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a8fea1166e652f8965222c72e507e6c76edee526..2abda334917bb609362a49d40c50f3b8e183ff12 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index df4f7831e73e674d7082f3e2cab76fa1a5cdef46..528d3278ccbb6d23d04a4c0ebc2a1a2cc86556ed 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 39fcb7df8f3b558e162fa7b2cadbd1bf7fad22bf..0b4f9f1588e1284657665f20e712f7ac37dfbbd3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2a4025e8d3be7cfda4322d55215c65c33692abee..7e8ad6e098477fbc61185c9b8507debdb9ead788 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 9235db1116094d5835837d246693c42478e6cc39..eab9fb02f9482b4a918e46d7fa447be3aaf0e0f3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6cc6ef843ed2e090be63c758e796899032cb2709..f125d814d8fbd7bd5843c408b69032194ff112c2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 60c983878fe537f5a0d7ff12b1f07b54d901a0ad..38990aed70126cc471c0a02d056321203506bc5a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 47f675591a207b7921ce69afba6e4aafddfa9ae1..e988c2d31d48a6c89792c407a4e5cb7cec35876f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
diff --git a/src/lib/krb5/krb/deltat.c b/src/lib/krb5/krb/deltat.c
new file mode 100644 (file)
index 0000000..dbf9900
--- /dev/null
@@ -0,0 +1,1063 @@
+
+/*  A Bison parser, made from ../../../../asrc/lib/krb5/krb/x-deltat.y
+ by  GNU Bison version 1.27
+  */
+
+#define YYBISON 1  /* Identify Bison output.  */
+
+#define        NUM     257
+#define        LONGNUM 258
+#define        WS      259
+
+#line 38 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+
+
+#include <ctype.h>
+#include <errno.h>
+#include "k5-int.h"
+
+#if 0
+#define NBITS(TYPE) (8*sizeof(TYPE))
+#define LOG10_2 0.30103
+#define LOG10_MAX(TYPE) (LOG10_2 * NBITS(TYPE))
+#define BUFFERSIZE(TYPE) (1 /* \0 */ + (int) (1 + LOG10_MAX(TYPE)))
+#endif
+
+struct param {
+    krb5_deltat delta;
+    char *p;
+};
+
+#define YYPARSE_PARAM tmv
+
+#define DO(D,H,M,S) \
+ { \
+     ((struct param *)tmv)->delta = (((D * 24) + H) * 60 + M) * 60 + S; \
+ }
+
+static int mylex (int *, char **);
+#define YYLEX_PARAM (&((struct param *)tmv)->p)
+#undef yylex
+#define yylex(U, P)    mylex (&(U)->val, (P))
+
+#undef yyerror
+#define yyerror(MSG)
+
+static int yyparse (void *);
+
+
+#line 77 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+typedef union { int val; } YYSTYPE;
+#include <stdio.h>
+
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
+
+
+
+#define        YYFINAL         41
+#define        YYFLAG          -32768
+#define        YYNTBASE        12
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 259 ? yytranslate[x] : 21)
+
+static const char yytranslate[] = {     0,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     5,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     6,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     7,
+     2,     2,     2,     8,     2,     2,     2,     2,     9,     2,
+     2,     2,     2,     2,    10,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     1,     3,     4,    11
+};
+
+#if YYDEBUG != 0
+static const short yyprhs[] = {     0,
+     0,     2,     4,     6,     8,    11,    12,    14,    17,    21,
+    25,    29,    32,    40,    46,    50,    52,    56,    58,    62,
+    64
+};
+
+static const short yyrhs[] = {    17,
+     0,     3,     0,     4,     0,    13,     0,     5,    13,     0,
+     0,    11,     0,    15,    14,     0,    16,     7,    18,     0,
+    16,     8,    19,     0,    16,     9,    20,     0,    16,    10,
+     0,    16,     5,     3,     6,     3,     6,     3,     0,    16,
+     6,     3,     6,     3,     0,    16,     6,     3,     0,    19,
+     0,    16,     8,    19,     0,    20,     0,    16,     9,    20,
+     0,    15,     0,    16,    10,     0
+};
+
+#endif
+
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+    88,    89,    89,    90,    90,    91,    91,    92,    93,    95,
+    96,    97,    98,    99,   100,   103,   105,   106,   108,   109,
+   111
+};
+#endif
+
+
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+
+static const char * const yytname[] = {   "$","error","$undefined.","NUM","LONGNUM",
+"'-'","':'","'d'","'h'","'m'","'s'","WS","start","posnum","num","ws","wsnum",
+"deltat","opt_hms","opt_ms","opt_s", NULL
+};
+#endif
+
+static const short yyr1[] = {     0,
+    12,    13,    13,    14,    14,    15,    15,    16,    17,    17,
+    17,    17,    17,    17,    17,    18,    18,    19,    19,    20,
+    20
+};
+
+static const short yyr2[] = {     0,
+     1,     1,     1,     1,     2,     0,     1,     2,     3,     3,
+     3,     2,     7,     5,     3,     1,     3,     1,     3,     1,
+     2
+};
+
+static const short yydefact[] = {     6,
+     7,     0,     0,     1,     2,     3,     0,     4,     8,     0,
+     0,     6,     6,     6,    12,     5,     0,    15,    20,     0,
+     9,    16,    18,     0,    10,     0,    11,     0,     0,     6,
+     6,    21,     0,    14,    17,    19,     0,    13,     0,     0,
+     0
+};
+
+static const short yydefgoto[] = {    39,
+     8,     9,    19,    24,     4,    21,    22,    23
+};
+
+static const short yypact[] = {    -9,
+-32768,    12,    -1,-32768,-32768,-32768,     7,-32768,-32768,    10,
+    16,    -9,    -9,    -9,-32768,-32768,    20,    21,    12,    13,
+-32768,-32768,-32768,    15,-32768,    18,-32768,    26,    27,    -9,
+    -9,-32768,    28,-32768,-32768,-32768,    29,-32768,    33,    35,
+-32768
+};
+
+static const short yypgoto[] = {-32768,
+    30,-32768,    36,     0,-32768,-32768,   -12,   -11
+};
+
+
+#define        YYLAST          37
+
+
+static const short yytable[] = {     3,
+    25,     1,    27,    10,    11,    12,    13,    14,    15,     5,
+     6,    20,    17,    26,     5,     6,     7,    35,    18,    36,
+    30,    31,    32,    31,    32,    28,    29,    32,    33,    34,
+    26,    38,    40,    37,    41,     2,    16
+};
+
+static const short yycheck[] = {     0,
+    13,    11,    14,     5,     6,     7,     8,     9,    10,     3,
+     4,    12,     3,    14,     3,     4,     5,    30,     3,    31,
+     8,     9,    10,     9,    10,     6,     6,    10,     3,     3,
+    31,     3,     0,     6,     0,     0,     7
+};
+#define YYPURE 1
+
+/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
+#line 3 "/mit/gnu/share/bison.simple"
+/* This file comes from bison-1.27.  */
+
+/* Skeleton output parser for bison,
+   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+   This program 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, 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, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* This is the parser code that is written into each bison parser
+  when the %semantic_parser declaration is not specified in the grammar.
+  It was written by Richard Stallman by simplifying the hairy parser
+  used when %semantic_parser is specified.  */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C.  */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C.  */
+/* This used to test MSDOS, but that is a bad idea
+   since that symbol is in the user namespace.  */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+        instead, just don't use alloca.  */
+#include <malloc.h>
+#endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+   So I turned it off.   rms, 2 May 1997.  */
+/* #include <malloc.h>  */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up,
+                and on HPUX 10.  Eventually we can turn this on.  */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
+#endif
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
+#endif
+
+/* Note: there must be only one dollar sign in this file.
+   It is replaced by the list of actions, each action
+   as one case of the switch.  */
+
+#define yyerrok                (yyerrstatus = 0)
+#define yyclearin      (yychar = YYEMPTY)
+#define YYEMPTY                -2
+#define YYEOF          0
+#define YYACCEPT       goto yyacceptlab
+#define YYABORT        goto yyabortlab
+#define YYERROR                goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+   This remains here temporarily to ease the
+   transition to the new meaning of YYERROR, for GCC.
+   Once GCC version 2 has supplanted version 1, this can go.  */
+#define YYFAIL         goto yyerrlab
+#define YYRECOVERING()  (!!yyerrstatus)
+#define YYBACKUP(token, value) \
+do                                                             \
+  if (yychar == YYEMPTY && yylen == 1)                         \
+    { yychar = (token), yylval = (value);                      \
+      yychar1 = YYTRANSLATE (yychar);                          \
+      YYPOPSTACK;                                              \
+      goto yybackup;                                           \
+    }                                                          \
+  else                                                         \
+    { yyerror ("syntax error: cannot back up"); YYERROR; }     \
+while (0)
+
+#define YYTERROR       1
+#define YYERRCODE      256
+
+#ifndef YYPURE
+#define YYLEX          yylex()
+#endif
+
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
+#ifdef YYLEX_PARAM
+#define YYLEX          yylex(&yylval, &yylloc, YYLEX_PARAM)
+#else
+#define YYLEX          yylex(&yylval, &yylloc)
+#endif
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX          yylex(&yylval, YYLEX_PARAM)
+#else
+#define YYLEX          yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
+#endif
+
+/* If nonreentrant, generate the variables here */
+
+#ifndef YYPURE
+
+int    yychar;                 /*  the lookahead symbol                */
+YYSTYPE        yylval;                 /*  the semantic value of the           */
+                               /*  lookahead symbol                    */
+
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc;                        /*  location data for the lookahead     */
+                               /*  symbol                              */
+#endif
+
+int yynerrs;                   /*  number of parse errors so far       */
+#endif  /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug;                   /*  nonzero means print parse trace     */
+/* Since this is uninitialized, it does not stop multiple parsers
+   from coexisting.  */
+#endif
+
+/*  YYINITDEPTH indicates the initial size of the parser's stacks      */
+
+#ifndef        YYINITDEPTH
+#define YYINITDEPTH 200
+#endif
+
+/*  YYMAXDEPTH is the maximum size the stacks can grow to
+    (effective only if the built-in stack extension method is used).  */
+
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
+#endif
+
+#ifndef YYMAXDEPTH
+#define YYMAXDEPTH 10000
+#endif
+\f
+/* Define __yy_memcpy.  Note that the size argument
+   should be passed with type unsigned int, because that is what the non-GCC
+   definitions require.  With GCC, __builtin_memcpy takes an arg
+   of type size_t, but it can handle unsigned int.  */
+
+#if __GNUC__ > 1               /* GNU C and GNU C++ define this.  */
+#define __yy_memcpy(TO,FROM,COUNT)     __builtin_memcpy(TO,FROM,COUNT)
+#else                          /* not GNU C or C++ */
+#ifndef __cplusplus
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (to, from, count)
+     char *to;
+     char *from;
+     unsigned int count;
+{
+  register char *f = from;
+  register char *t = to;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#else /* __cplusplus */
+
+/* This is the most reliable way to avoid incompatibilities
+   in available built-in functions on various systems.  */
+static void
+__yy_memcpy (char *to, char *from, unsigned int count)
+{
+  register char *t = to;
+  register char *f = from;
+  register int i = count;
+
+  while (i-- > 0)
+    *t++ = *f++;
+}
+
+#endif
+#endif
+\f
+#line 216 "/mit/gnu/share/bison.simple"
+
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+   into yyparse.  The argument should have type void *.
+   It should actually point to an object.
+   Grammar actions can access the variable by casting it
+   to the proper pointer type.  */
+
+#ifdef YYPARSE_PARAM
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+
+/* Prevent warning if -Wstrict-prototypes.  */
+#ifdef __GNUC__
+#ifdef YYPARSE_PARAM
+int yyparse (void *);
+#else
+int yyparse (void);
+#endif
+#endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+     YYPARSE_PARAM_DECL
+{
+  register int yystate;
+  register int yyn;
+  register short *yyssp;
+  register YYSTYPE *yyvsp;
+  int yyerrstatus;     /*  number of tokens to shift before error messages enabled */
+  int yychar1 = 0;             /*  lookahead token as an internal (translated) token number */
+
+  short        yyssa[YYINITDEPTH];     /*  the state stack                     */
+  YYSTYPE yyvsa[YYINITDEPTH];  /*  the semantic value stack            */
+
+  short *yyss = yyssa;         /*  refer to the stacks thru separate pointers */
+  YYSTYPE *yyvs = yyvsa;       /*  to allow yyoverflow to reallocate them elsewhere */
+
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylsa[YYINITDEPTH];  /*  the location stack                  */
+  YYLTYPE *yyls = yylsa;
+  YYLTYPE *yylsp;
+
+#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
+#else
+#define YYPOPSTACK   (yyvsp--, yyssp--)
+#endif
+
+  int yystacksize = YYINITDEPTH;
+  int yyfree_stacks = 0;
+
+#ifdef YYPURE
+  int yychar;
+  YYSTYPE yylval;
+  int yynerrs;
+#ifdef YYLSP_NEEDED
+  YYLTYPE yylloc;
+#endif
+#endif
+
+  YYSTYPE yyval;               /*  the variable used to return         */
+                               /*  semantic values from the action     */
+                               /*  routines                            */
+
+  int yylen;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Starting parse\n");
+#endif
+
+  yystate = 0;
+  yyerrstatus = 0;
+  yynerrs = 0;
+  yychar = YYEMPTY;            /* Cause a token to be read.  */
+
+  /* Initialize stack pointers.
+     Waste one element of value and location stack
+     so that they stay on the same level as the state stack.
+     The wasted elements are never initialized.  */
+
+  yyssp = yyss - 1;
+  yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+  yylsp = yyls;
+#endif
+
+/* Push a new state, which is found in  yystate  .  */
+/* In all cases, when you get here, the value and location stacks
+   have just been pushed. so pushing a state here evens the stacks.  */
+yynewstate:
+
+  *++yyssp = yystate;
+
+  if (yyssp >= yyss + yystacksize - 1)
+    {
+      /* Give user a chance to reallocate the stack */
+      /* Use copies of these so that the &'s don't force the real ones into memory. */
+      YYSTYPE *yyvs1 = yyvs;
+      short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+      YYLTYPE *yyls1 = yyls;
+#endif
+
+      /* Get the current used size of the three stacks, in elements.  */
+      int size = yyssp - yyss + 1;
+
+#ifdef yyoverflow
+      /* Each stack pointer address is followed by the size of
+        the data in use in that stack, in bytes.  */
+#ifdef YYLSP_NEEDED
+      /* This used to be a conditional around just the two extra args,
+        but that might be undefined if yyoverflow is a macro.  */
+      yyoverflow("parser stack overflow",
+                &yyss1, size * sizeof (*yyssp),
+                &yyvs1, size * sizeof (*yyvsp),
+                &yyls1, size * sizeof (*yylsp),
+                &yystacksize);
+#else
+      yyoverflow("parser stack overflow",
+                &yyss1, size * sizeof (*yyssp),
+                &yyvs1, size * sizeof (*yyvsp),
+                &yystacksize);
+#endif
+
+      yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+      yyls = yyls1;
+#endif
+#else /* no yyoverflow */
+      /* Extend the stack our own way.  */
+      if (yystacksize >= YYMAXDEPTH)
+       {
+         yyerror("parser stack overflow");
+         if (yyfree_stacks)
+           {
+             free (yyss);
+             free (yyvs);
+#ifdef YYLSP_NEEDED
+             free (yyls);
+#endif
+           }
+         return 2;
+       }
+      yystacksize *= 2;
+      if (yystacksize > YYMAXDEPTH)
+       yystacksize = YYMAXDEPTH;
+#ifndef YYSTACK_USE_ALLOCA
+      yyfree_stacks = 1;
+#endif
+      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+      __yy_memcpy ((char *)yyss, (char *)yyss1,
+                  size * (unsigned int) sizeof (*yyssp));
+      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+                  size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+      __yy_memcpy ((char *)yyls, (char *)yyls1,
+                  size * (unsigned int) sizeof (*yylsp));
+#endif
+#endif /* no yyoverflow */
+
+      yyssp = yyss + size - 1;
+      yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+      yylsp = yyls + size - 1;
+#endif
+
+#if YYDEBUG != 0
+      if (yydebug)
+       fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
+
+      if (yyssp >= yyss + yystacksize - 1)
+       YYABORT;
+    }
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Entering state %d\n", yystate);
+#endif
+
+  goto yybackup;
+ yybackup:
+
+/* Do appropriate processing given the current state.  */
+/* Read a lookahead token if we need one and don't already have one.  */
+/* yyresume: */
+
+  /* First try to decide what to do without reference to lookahead token.  */
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yydefault;
+
+  /* Not known => get a lookahead token if don't already have one.  */
+
+  /* yychar is either YYEMPTY or YYEOF
+     or a valid token in external form.  */
+
+  if (yychar == YYEMPTY)
+    {
+#if YYDEBUG != 0
+      if (yydebug)
+       fprintf(stderr, "Reading a token: ");
+#endif
+      yychar = YYLEX;
+    }
+
+  /* Convert token to internal form (in yychar1) for indexing tables with */
+
+  if (yychar <= 0)             /* This means end of input. */
+    {
+      yychar1 = 0;
+      yychar = YYEOF;          /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+      if (yydebug)
+       fprintf(stderr, "Now at end of input.\n");
+#endif
+    }
+  else
+    {
+      yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+      if (yydebug)
+       {
+         fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+         /* Give the individual parser a way to print the precise meaning
+            of a token, for further debugging info.  */
+#ifdef YYPRINT
+         YYPRINT (stderr, yychar, yylval);
+#endif
+         fprintf (stderr, ")\n");
+       }
+#endif
+    }
+
+  yyn += yychar1;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+    goto yydefault;
+
+  yyn = yytable[yyn];
+
+  /* yyn is what to do for this token type in this state.
+     Negative => reduce, -yyn is rule number.
+     Positive => shift, yyn is new state.
+       New state is final state => don't bother to shift,
+       just return success.
+     0, or most negative number => error.  */
+
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+       goto yyerrlab;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrlab;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+  /* Shift the lookahead token.  */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
+
+  /* Discard the token being shifted unless it is eof.  */
+  if (yychar != YYEOF)
+    yychar = YYEMPTY;
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  /* count tokens shifted since error; after three, turn off error status.  */
+  if (yyerrstatus) yyerrstatus--;
+
+  yystate = yyn;
+  goto yynewstate;
+
+/* Do the default action for the current state.  */
+yydefault:
+
+  yyn = yydefact[yystate];
+  if (yyn == 0)
+    goto yyerrlab;
+
+/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+yyreduce:
+  yylen = yyr2[yyn];
+  if (yylen > 0)
+    yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      int i;
+
+      fprintf (stderr, "Reducing via rule %d (line %d), ",
+              yyn, yyrline[yyn]);
+
+      /* Print the symbols being reduced, and their result.  */
+      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+       fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+    }
+#endif
+
+
+  switch (yyn) {
+
+case 5:
+#line 90 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ yyval.val = - yyvsp[0].val; ;
+    break;}
+case 8:
+#line 92 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ yyval.val = yyvsp[0].val; ;
+    break;}
+case 9:
+#line 94 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ DO (yyvsp[-2].val,  0,  0, yyvsp[0].val); ;
+    break;}
+case 10:
+#line 95 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ DO ( 0, yyvsp[-2].val,  0, yyvsp[0].val); ;
+    break;}
+case 11:
+#line 96 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ DO ( 0,  0, yyvsp[-2].val, yyvsp[0].val); ;
+    break;}
+case 12:
+#line 97 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ DO ( 0,  0,  0, yyvsp[-1].val); ;
+    break;}
+case 13:
+#line 98 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ DO (yyvsp[-6].val, yyvsp[-4].val, yyvsp[-2].val, yyvsp[0].val); ;
+    break;}
+case 14:
+#line 99 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ DO ( 0, yyvsp[-4].val, yyvsp[-2].val, yyvsp[0].val); ;
+    break;}
+case 15:
+#line 100 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ DO ( 0, yyvsp[-2].val, yyvsp[0].val,  0); ;
+    break;}
+case 17:
+#line 105 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ yyval.val = yyvsp[-2].val * 3600 + yyvsp[0].val; ;
+    break;}
+case 19:
+#line 108 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ yyval.val = yyvsp[-2].val * 60 + yyvsp[0].val; ;
+    break;}
+case 20:
+#line 110 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+{ yyval.val = 0; ;
+    break;}
+}
+   /* the action file gets copied in in place of this dollarsign */
+#line 542 "/mit/gnu/share/bison.simple"
+\f
+  yyvsp -= yylen;
+  yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+  yylsp -= yylen;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "state stack now");
+      while (ssp1 != yyssp)
+       fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+  *++yyvsp = yyval;
+
+#ifdef YYLSP_NEEDED
+  yylsp++;
+  if (yylen == 0)
+    {
+      yylsp->first_line = yylloc.first_line;
+      yylsp->first_column = yylloc.first_column;
+      yylsp->last_line = (yylsp-1)->last_line;
+      yylsp->last_column = (yylsp-1)->last_column;
+      yylsp->text = 0;
+    }
+  else
+    {
+      yylsp->last_line = (yylsp+yylen-1)->last_line;
+      yylsp->last_column = (yylsp+yylen-1)->last_column;
+    }
+#endif
+
+  /* Now "shift" the result of the reduction.
+     Determine what state that goes to,
+     based on the state we popped back to
+     and the rule number reduced by.  */
+
+  yyn = yyr1[yyn];
+
+  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+    yystate = yytable[yystate];
+  else
+    yystate = yydefgoto[yyn - YYNTBASE];
+
+  goto yynewstate;
+
+yyerrlab:   /* here on detecting error */
+
+  if (! yyerrstatus)
+    /* If not already recovering from an error, report this error.  */
+    {
+      ++yynerrs;
+
+#ifdef YYERROR_VERBOSE
+      yyn = yypact[yystate];
+
+      if (yyn > YYFLAG && yyn < YYLAST)
+       {
+         int size = 0;
+         char *msg;
+         int x, count;
+
+         count = 0;
+         /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
+         for (x = (yyn < 0 ? -yyn : 0);
+              x < (sizeof(yytname) / sizeof(char *)); x++)
+           if (yycheck[x + yyn] == x)
+             size += strlen(yytname[x]) + 15, count++;
+         msg = (char *) malloc(size + 15);
+         if (msg != 0)
+           {
+             strcpy(msg, "parse error");
+
+             if (count < 5)
+               {
+                 count = 0;
+                 for (x = (yyn < 0 ? -yyn : 0);
+                      x < (sizeof(yytname) / sizeof(char *)); x++)
+                   if (yycheck[x + yyn] == x)
+                     {
+                       strcat(msg, count == 0 ? ", expecting `" : " or `");
+                       strcat(msg, yytname[x]);
+                       strcat(msg, "'");
+                       count++;
+                     }
+               }
+             yyerror(msg);
+             free(msg);
+           }
+         else
+           yyerror ("parse error; also virtual memory exceeded");
+       }
+      else
+#endif /* YYERROR_VERBOSE */
+       yyerror("parse error");
+    }
+
+  goto yyerrlab1;
+yyerrlab1:   /* here on error raised explicitly by an action */
+
+  if (yyerrstatus == 3)
+    {
+      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
+
+      /* return failure if at end of input */
+      if (yychar == YYEOF)
+       YYABORT;
+
+#if YYDEBUG != 0
+      if (yydebug)
+       fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+      yychar = YYEMPTY;
+    }
+
+  /* Else will try to reuse lookahead token
+     after shifting the error token.  */
+
+  yyerrstatus = 3;             /* Each real token shifted decrements this */
+
+  goto yyerrhandle;
+
+yyerrdefault:  /* current state does not do anything special for the error token. */
+
+#if 0
+  /* This is wrong; only states that explicitly want error tokens
+     should shift them.  */
+  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
+  if (yyn) goto yydefault;
+#endif
+
+yyerrpop:   /* pop the current state because it cannot handle the error token */
+
+  if (yyssp == yyss) YYABORT;
+  yyvsp--;
+  yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+  yylsp--;
+#endif
+
+#if YYDEBUG != 0
+  if (yydebug)
+    {
+      short *ssp1 = yyss - 1;
+      fprintf (stderr, "Error: state stack now");
+      while (ssp1 != yyssp)
+       fprintf (stderr, " %d", *++ssp1);
+      fprintf (stderr, "\n");
+    }
+#endif
+
+yyerrhandle:
+
+  yyn = yypact[yystate];
+  if (yyn == YYFLAG)
+    goto yyerrdefault;
+
+  yyn += YYTERROR;
+  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+    goto yyerrdefault;
+
+  yyn = yytable[yyn];
+  if (yyn < 0)
+    {
+      if (yyn == YYFLAG)
+       goto yyerrpop;
+      yyn = -yyn;
+      goto yyreduce;
+    }
+  else if (yyn == 0)
+    goto yyerrpop;
+
+  if (yyn == YYFINAL)
+    YYACCEPT;
+
+#if YYDEBUG != 0
+  if (yydebug)
+    fprintf(stderr, "Shifting error token, ");
+#endif
+
+  *++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+  *++yylsp = yylloc;
+#endif
+
+  yystate = yyn;
+  goto yynewstate;
+
+ yyacceptlab:
+  /* YYACCEPT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 0;
+
+ yyabortlab:
+  /* YYABORT comes here.  */
+  if (yyfree_stacks)
+    {
+      free (yyss);
+      free (yyvs);
+#ifdef YYLSP_NEEDED
+      free (yyls);
+#endif
+    }
+  return 1;
+}
+#line 113 "../../../../asrc/lib/krb5/krb/x-deltat.y"
+
+
+static int
+mylex (int *intp, char **pp)
+{
+    int num, c;
+#define P (*pp)
+    char *orig_p = P;
+
+#ifdef isascii
+    if (!isascii (*P))
+       return 0;
+#endif
+    switch (c = *P++) {
+    case '-':
+    case ':':
+    case 'd':
+    case 'h':
+    case 'm':
+    case 's':
+       return c;
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+    case '8':
+    case '9':
+       /* XXX assumes ASCII */
+       num = c - '0';
+       while (isdigit (*P)) {
+           num *= 10;
+           num += *P++ - '0';
+       }
+       *intp = num;
+       return (P - orig_p > 2) ? LONGNUM : NUM;
+    case ' ':
+    case '\t':
+    case '\n':
+       while (isspace (*P))
+           P++;
+       return WS;
+    default:
+       return YYEOF;
+    }
+}
+
+KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
+krb5_string_to_deltat(string, deltatp)
+    char       FAR * string;
+    krb5_deltat        FAR * deltatp;
+{
+    struct param p;
+    p.delta = 0;
+    p.p = string;
+    if (yyparse (&p))
+       return EINVAL;
+    *deltatp = p.delta;
+    return 0;
+}
index e20c1f5364046cc44e14a04b3be2e9c038917a58..3b0410dd316200c33d71cae929e0b4de202d4c47 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e1a1b1850e2f0726693948d3a688e6393699ba52..07642f04e4a03153797cecbddcbfaf03b0bb5f81 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 58492710ec957e19fea3f3347db057f9dc89e3cf..3d9ea327a2d8bee741ba735f4e8d93c922c38acb 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0a8ce2240da669ec8fb4b90d345de167a2e1f221..814195a79b3b6374442b6359ecfb2339942fd226 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
@@ -93,7 +96,8 @@ krb5_fwd_tgt_creds(context, auth_context, rhost, client, server, cc,
     }
 
     /* fetch tgt directly from cache */
-    retval = krb5_cc_retrieve_cred (context, cc, 0, &creds, &tgt);
+    retval = krb5_cc_retrieve_cred (context, cc, KRB5_TC_SUPPORTED_KTYPES,
+                                   &creds, &tgt);
     if (retval)
        goto errout;
 
index ac31b466d8853954a1a29e66e15940e67fd8b8d8..1e315febd3f2656bdd05519b9977fbb6d463d980 100644 (file)
  * 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.  Neither M.I.T., the Open Computing Security Group, nor 
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * Neither M.I.T., the Open Computing Security Group, nor 
  * CyberSAFE Corporation make any representations about the suitability of
  * this software for any purpose.  It is provided "as is" without express
  * or implied warranty.
@@ -118,10 +121,10 @@ krb5_get_cred_from_kdc_opt(context, ccache, in_cred, out_cred, tgts, kdcopt)
   }
 
   if ((retval = krb5_cc_retrieve_cred(context, ccache,
-                                     KRB5_TC_MATCH_SRV_NAMEONLY,
+                                     KRB5_TC_MATCH_SRV_NAMEONLY | KRB5_TC_SUPPORTED_KTYPES,
                                      &tgtq, &tgt))) {
 
-    if (retval != KRB5_CC_NOTFOUND) {
+    if (retval != KRB5_CC_NOTFOUND && retval != KRB5_CC_NOT_KTYPE) {
        goto cleanup;
     }
 
@@ -154,7 +157,7 @@ krb5_get_cred_from_kdc_opt(context, ccache, in_cred, out_cred, tgts, kdcopt)
        goto cleanup;
 
     if ((retval = krb5_cc_retrieve_cred(context, ccache,
-                                       KRB5_TC_MATCH_SRV_NAMEONLY,
+                                       KRB5_TC_MATCH_SRV_NAMEONLY | KRB5_TC_SUPPORTED_KTYPES,
                                        &tgtq, &tgt))) {
        goto cleanup;
     }
@@ -217,10 +220,10 @@ krb5_get_cred_from_kdc_opt(context, ccache, in_cred, out_cred, tgts, kdcopt)
          goto cleanup;
 
       if ((retval = krb5_cc_retrieve_cred(context, ccache,
-                                         KRB5_TC_MATCH_SRV_NAMEONLY,
+                                         KRB5_TC_MATCH_SRV_NAMEONLY | KRB5_TC_SUPPORTED_KTYPES,
                                          &tgtq, &tgt))) {
     
-       if (retval != KRB5_CC_NOTFOUND) {
+       if (retval != KRB5_CC_NOTFOUND && retval != KRB5_CC_NOT_KTYPE) {
            goto cleanup;
        }
   
@@ -280,7 +283,7 @@ krb5_get_cred_from_kdc_opt(context, ccache, in_cred, out_cred, tgts, kdcopt)
                goto cleanup;
 
            if ((retval = krb5_cc_retrieve_cred(context, ccache,
-                                               KRB5_TC_MATCH_SRV_NAMEONLY,
+                                               KRB5_TC_MATCH_SRV_NAMEONLY | KRB5_TC_SUPPORTED_KTYPES,
                                                &tgtq, &tgt))) {
              if (retval != KRB5_CC_NOTFOUND) {
                  goto cleanup;
index 2ea4fc81584a3f44824cb0d0e6a6e6de0c48efb7..20098781c2f12d191e7c79b3bccf21d25cba8de4 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4b3cd6fe6ac9e8576a3a3139c0d56d5d821c18c6..0089c5d2a93c2e45381bb3fab4502c07c420f796 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 861d61e722c2988669f2654401d4a70ab9c56fe9..bf6eed93834b8383b55e8bccbab9b8a876122369 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4fbf4cf33b795622d721e633fc44a498b9105898..3bcaa0be2b3b5d066c4f1ed4bdffe0c5a0381f2d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -69,7 +72,8 @@ krb5_get_credentials_core(context, options, ccache, in_creds, out_creds,
     mcreds->client = in_creds->client;
     
     *fields = KRB5_TC_MATCH_TIMES /*XXX |KRB5_TC_MATCH_SKEY_TYPE */
-       | KRB5_TC_MATCH_AUTHDATA ;
+       | KRB5_TC_MATCH_AUTHDATA
+       | KRB5_TC_SUPPORTED_KTYPES;
     if (mcreds->keyblock.enctype)
        *fields |= KRB5_TC_MATCH_KTYPE;
     if (options & KRB5_GC_USER_USER) {
@@ -120,7 +124,8 @@ krb5_get_credentials(context, options, ccache, in_creds, out_creds)
        *out_creds = ncreds;
     }
 
-    if (retval != KRB5_CC_NOTFOUND || options & KRB5_GC_CACHED)
+    if ((retval != KRB5_CC_NOTFOUND && retval != KRB5_CC_NOT_KTYPE)
+       || options & KRB5_GC_CACHED)
        return retval;
 
     retval = krb5_get_cred_from_kdc(context, ccache, ncreds, out_creds, &tgts);
index ebf8e447777d4151b3a01b8e6504c50c0f2d52b0..86978f3602a046c85c5551d455e66363d56c1a78 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0c901c1b9f68966bb6610cd3bf13b3e5aebec0b9..10b920cefade557a7c529b3beadd56283f9c1125 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e03883e9d77445615dfd5c7c647834ecc2b72248..00293564eb6950b593fd89e74c21e7d96283c15e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3c7a0cd320dcd14e83cc4491600458cdaf01be77..7371f1e9552330fbed945c31a918d6ac53de9e45 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2ddd2d0c56fc8a77d1e939d47aecf987a6092556..6fa773f738eb5ccdf52946c515e6254e7c3f145a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
@@ -58,9 +61,26 @@ extern krb5_error_code krb5_vercheck();
 extern void krb5_win_ccdll_load(krb5_context context);
 #endif
 
+static krb5_error_code init_common ();
+
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
 krb5_init_context(context)
        krb5_context *context;
+{
+       return init_common (context, FALSE);
+}
+
+KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
+krb5_init_secure_context(context)
+       krb5_context *context;
+{
+       return init_common (context, TRUE);
+}
+
+static krb5_error_code
+init_common (context, secure)
+       krb5_context *context;
+       krb5_boolean secure;
 {
        krb5_context ctx = 0;
        krb5_error_code retval;
@@ -96,6 +116,8 @@ krb5_init_context(context)
        memset(ctx, 0, sizeof(struct _krb5_context));
        ctx->magic = KV5M_CONTEXT;
 
+       ctx->profile_secure = secure;
+
        /* Set the default encryption types, possible defined in krb5/conf */
        if ((retval = krb5_set_default_in_tkt_ktypes(ctx, NULL)))
                goto cleanup;
@@ -250,12 +272,13 @@ krb5_set_default_in_tkt_ktypes(context, ktypes)
 }
 
 static krb5_error_code
-get_profile_etype_list(context, ktypes, profstr, ctx_count, ctx_list)
+get_profile_etype_list(context, ktypes, profstr, ctx_count, ctx_list, desonly)
      krb5_context context;
      krb5_enctype **ktypes;
      char *profstr;
      int ctx_count;
      krb5_enctype FAR *ctx_list;
+     int desonly;
 {
     krb5_enctype *old_ktypes;
 
@@ -283,7 +306,7 @@ get_profile_etype_list(context, ktypes, profstr, ctx_count, ctx_list)
 
        code = profile_get_string(context->profile, "libdefaults", profstr,
                                  NULL,
-                                 "des3-hmac-sha1 des-cbc-md5 des-cbc-crc",
+                                 "des3-cbc-sha1 des-cbc-md5 des-cbc-crc",
                                  &retval);
        if (code)
            return code;
@@ -313,8 +336,21 @@ get_profile_etype_list(context, ktypes, profstr, ctx_count, ctx_list)
        j = 0;
        i = 1;
        while (1) {
-           if (! krb5_string_to_enctype(sp, &old_ktypes[j]))
+           if (! krb5_string_to_enctype(sp, &old_ktypes[j])) {
+             switch (old_ktypes[j]) {
+             default:
+               if (desonly)
+                 /* Other types not supported yet.  */
+                 break;
+               /* else fall through */
+
+             case ENCTYPE_NULL:
+             case ENCTYPE_DES_CBC_CRC:
+             case ENCTYPE_DES_CBC_MD5:
                j++;
+               break;
+             }
+           }
 
            if (i++ >= count)
                break;
@@ -328,6 +364,12 @@ get_profile_etype_list(context, ktypes, profstr, ctx_count, ctx_list)
        profile_release_string(retval);
     }
 
+    if (old_ktypes[0] == 0) {
+       free (old_ktypes);
+       *ktypes = 0;
+       return KRB5_CONFIG_ETYPE_NOSUPP;
+    }
+
     *ktypes = old_ktypes;
     return 0;
 }
@@ -339,7 +381,7 @@ krb5_get_default_in_tkt_ktypes(context, ktypes)
 {
     return(get_profile_etype_list(context, ktypes, "default_tkt_enctypes",
                                  context->in_tkt_ktype_count,
-                                 context->in_tkt_ktypes));
+                                 context->in_tkt_ktypes, 1));
 }
 
 krb5_error_code
@@ -382,7 +424,7 @@ krb5_get_tgs_ktypes(context, princ, ktypes)
 {
     return(get_profile_etype_list(context, ktypes, "default_tgs_enctypes",
                                  context->tgs_ktype_count,
-                                 context->tgs_ktypes));
+                                 context->tgs_ktypes, 1));
 }
 
 krb5_error_code
@@ -392,7 +434,7 @@ krb5_get_permitted_enctypes(context, ktypes)
 {
     return(get_profile_etype_list(context, ktypes, "permitted_enctypes",
                                  context->tgs_ktype_count,
-                                 context->tgs_ktypes));
+                                 context->tgs_ktypes, 0));
 }
 
 krb5_boolean
index 7ad90e0e86b76a7006ae1ebd3721faa5161ee980..53144b15de392118d4267476f06839fde647e7bf 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a9cbcf39bb36d4a1fbed007e84452d54b5a6ab5f..764c0a5c29abbc514b56d386f38fb59ba7da431f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 945bf5950b6b0891e501222c4c0edf826069401e..f3745dca9be1ebd60a1a24430ad78a74c67211c5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 77e502fdeaed314d0864731d5c81072a9d99d372..13bc15c34d9631b263f067554ab115bbc4b95c1f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2e7f2ce255b1a9bafa3e4317273459896607d90e..76858175089c15154888551b4eab38c286c7b7ba 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f0398475f5d7b6cfa4bf58b0fb361caec76b829b..6a0ffb743ca42bd1e32254d8284d8b36010d4ec3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a454a5759e6421a1d6dbe28f59175439e04efdd2..24c072823512a8001df30a7465952c81affee5b7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 1530f79616e910ccb13d2abf2094eecb2eef116e..a8b20ebcb877b87b8aa5e9590b71bcd26b97c9d2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0d5a4908045fb7bf718b23dd1a8167ac57cbb6d6..781e256c914ab1bb6d9d68ad8a9fdaaf6aa83a8e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2e6bc6bb071de8fd05c143b90df113631ede30e7..b628a0d0ea6fc323d771a14222e4bc31658c819a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index b8e9a1b925723a8f84e7939ed1a3f712b935846a..9ccc3b4cea05187fee91c8f00d27b6b3947a8375 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ab1432fdb02314624452508f89227ee679e6c47c..74de4dc6dc22408b9d3809b7314ea064b4fad14d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 9ede4312858be46a143a374e9e53d8f5d96a3293..f4629756e14a8313fb4d7e4c4467c40d3132a7d2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
@@ -411,6 +414,8 @@ krb5_do_preauth(krb5_context context,
 {
     int h, i, j, out_pa_list_size;
     krb5_pa_data *out_pa, **out_pa_list;
+    krb5_data scratch;
+    krb5_etype_info etype_info = NULL;
     krb5_error_code ret;
     static int paorder[] = { PA_INFO, PA_REAL };
     int realdone;
@@ -428,6 +433,37 @@ krb5_do_preauth(krb5_context context,
     for (h=0; h<(sizeof(paorder)/sizeof(paorder[0])); h++) {
        realdone = 0;
        for (i=0; in_padata[i] && !realdone; i++) {
+           /*
+            * This is really gross, but is necessary to prevent
+            * lossge when talking to a 1.0.x KDC, which returns an
+            * erroneous PA-PW-SALT when it returns a KRB-ERROR
+            * requiring additional preauth.
+            */
+           switch (in_padata[i]->pa_type) {
+           case KRB5_PADATA_ETYPE_INFO:
+               if (etype_info)
+                   continue;
+               scratch.length = in_padata[i]->length;
+               scratch.data = in_padata[i]->contents;
+               ret = decode_krb5_etype_info(&scratch, &etype_info);
+               if (ret) {
+                   if (out_pa_list) {
+                       out_pa_list[out_pa_list_size++] = NULL;
+                       krb5_free_pa_data(context, out_pa_list);
+                   }
+                   return ret;
+               }
+               salt->data = (char *) etype_info[0]->salt;
+               salt->length = etype_info[0]->length;
+               break;
+           case KRB5_PADATA_PW_SALT:
+           case KRB5_PADATA_AFS3_SALT:
+               if (etype_info)
+                   continue;
+               break;
+           default:
+               ;
+           }
            for (j=0; pa_types[j].type >= 0; j++) {
                if ((in_padata[i]->pa_type == pa_types[j].type) &&
                    (pa_types[j].flags & paorder[h])) {
@@ -442,6 +478,8 @@ krb5_do_preauth(krb5_context context,
                            out_pa_list[out_pa_list_size++] = NULL;
                            krb5_free_pa_data(context, out_pa_list);
                        }
+                       if (etype_info)
+                           krb5_free_etype_info(context, etype_info);
                        return(ret);
                    }
 
index 635d22cc39430f8fb767978c9fa324d52eeaf03a..cba26a6ac12b60ab3e965832305e6e7e9e7e5a96 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7f8e4226eacdeb9d63e16b16de7c7603f7302468..954f024c923cc6aaa2351c28eecf51e62358e575 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f08975f221fb8131fbbe5df52e0459ecb6798d59..9629b0c1947ea02ca84fdfe654b68f40b25c1d86 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 411a61ddbb6817b8a197baee4b2cd6d53a684999..3b6f7cb8d641b83d515161a76fdbe431c2796f10 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7fbe1727cfa94c7d7ea6357d2af144dbaec8f486..b25f78dc4ac524028477c7e3d32472e029c15b2c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index cdbdc81dff349f0fea791af508f31162dc44db23..442e78b2d836a3f37d6898b31bf08c92b47b50f2 100644 (file)
  * 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.  Neither M.I.T., the Open Computing Security Group, nor
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * Neither M.I.T., the Open Computing Security Group, nor
  * CyberSAFE Corporation make any representations about the suitability of
  * this software for any purpose.  It is provided "as is" without express
  * or implied warranty.
index 1c5aca21cafdf84bc35b2994a48ed5d4b5595172..19c541f0f89d0ea957ae35888ee6b1ef6ae6dc75 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 8ee99fbb15594afb2377a4b653bf5a6435ec5d1e..3d5bce4917e5ec3275cb4a4e4eecbc7ab98b67d9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 19de14e1aa6ad0f64d520ab1c34ca0dc377c9b43..520c0e21171fdb0f9e292f4a17b41000a445fc24 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3436118305653341b58625f9e967359c299bbee1..4e7c3a7c62ac193d3078c7b697a9f59c8d358552 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 42b9bfeb6469faf58bfe58bad6c44607ac7a5ea6..bac90e3fe55e7d60408268b2385cbeb30726a646 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index cfcced42b2132a34a0dbee95db6ac269c06e34fc..8fc04d0e5e1a8c919f21f287777863f03298ed9d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index a6a3877472f7796776f9f4fb2e67ef068fc35ddf..fd06b36ac936499fd929fbacd82063841d5e85e0 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 791bbcf34aceb4d4970b2ebb451b8e1fe4d5d460..4c97eb0f3873323beb0e31141719dda4965978e8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 3fc9d51967df2b84998468eeaee32a6e3e57a7c7..74657b1ca0ae08a2f075857868f0d0a79d1f4fd3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 13392a73888919eb74fd6bc4ca8f8e33a01a28f5..1b4720fe12105efbf538be4ae77a5be4d79c0041 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 04e21faab5e850f3c6b748c3c7ade79901eed961..bd4b4c5946029b0f9ed3c32031c28c7f72f6d2c9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index d999647b5331bcc40edf63065bca49b08e810340..3b457477dde616c43842ac18f2d11ee4f563a099 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 582875401f18f87d8d0c274ba2852c0b5589f9eb..956f508db573298d3359e37915074e00596a0a13 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 58a88e4ed7feeb8fc5dbbb897b5b250238eee62a..0afd502a1e6114b054d35357746ead62eff5220c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index a422c00ccefe8f96e14728c7e41686eb06b30d4b..3f0df6f84add8d2b50ff749625ef4731b66d1b00 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 8dce0bf167e74107546f3d82b2dbb991bbbce63e..c94201bad395824e6f137a0d467267ead4117a18 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7041f618c7df53672114d2dd13879d7e50a91944..61113db33c306738880e952feda5a02956b1906e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/kadm/str_conv.c
  *
- * Copyright 1995 by the Massachusetts Institute of Technology.
+ * Copyright 1995, 1999 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
@@ -45,6 +48,8 @@
 
 #include "k5-int.h"
 
+/* Salt type conversions */
+
 /*
  * Local data structures.
  */
@@ -54,277 +59,23 @@ struct salttype_lookup_entry {
     const char *       stt_output;             /* How to spit it out   */
 };
 
-struct deltat_match_entry {
-    const char *       dt_scan_format;         /* sscanf format        */
-    int                        dt_nmatch;              /* Number to match      */
-    int                        dt_dindex;              /* Day index            */
-    int                        dt_hindex;              /* Hour index           */
-    int                        dt_mindex;              /* Minute index         */
-    int                        dt_sindex;              /* Second index         */
-};
-
-/*
- * Local strings
- */
-
-/* Salttype strings */
-static const char stype_v5_in[]                = "normal";
-static const char stype_v4_in[]                = "v4";
-static const char stype_norealm_in[]   = "norealm";
-static const char stype_olrealm_in[]   = "onlyrealm";
-static const char stype_special_in[]   = "special";
-static const char stype_afs3_in[]      = "afs3";
-static const char stype_v5_out[]       = "Version 5";
-static const char stype_v4_out[]       = "Version 4";
-static const char stype_norealm_out[]  = "Version 5 - No Realm";
-static const char stype_olrealm_out[]  = "Version 5 - Realm Only";
-static const char stype_special_out[]  = "Special";
-static const char stype_afs3_out[]     = "AFS version 3";
-
-/* Absolute time strings */
-static const char atime_full_digits[]  = "%y%m%d%H%M%S";
-static const char atime_full_digits_d[]        = "%y.%m.%d.%H.%M.%S";
-static const char atime_full_digits_Y[]        = "%Y%m%d%H%M%S";
-static const char atime_full_digits_Yd[]= "%Y.%m.%d.%H.%M.%S";
-static const char atime_nsec_digits[]  = "%y%m%d%H%M";
-static const char atime_rel_hms[]      = "%H%M%S";
-static const char atime_rel_hm[]       = "%H%M";
-static const char atime_rel_col_hms[]  = "%T";
-static const char atime_rel_col_hm[]   = "%R";
-static const char atime_ldep_sfmt[]    = "%x:%X";
-static const char atime_full_text[]    = "%d-%b-%Y:%T";
-static const char atime_full_text_nos[]        = "%d-%b-%Y:%R";
-#if    !HAVE_STRPTIME
-static const char ascan_full_digits[]  = "%02d%02d%02d%02d%02d%02d";
-static const char ascan_full_digits_d[]        = "%02d.%02d.%02d.%02d.%02d.%02d";
-static const char ascan_full_digits_Y[]        = "%4d%02d%02d%02d%02d%02d";
-static const char ascan_full_digits_Yd[]= "%4d.%02d.%02d.%02d.%02d.%02d";
-static const char ascan_nsec_digits[]  = "%02d%02d%02d%02d%02d";
-static const char ascan_rel_hms[]      = "%02d%02d%02d";
-static const char ascan_rel_hm[]       = "%02d%02d";
-static const char ascan_rel_col_hms[]  = "%02d:%02d:%02d";
-static const char ascan_rel_col_hm[]   = "%02d:%02d";
-#endif /* !HAVE_STRPTIME */
-#ifdef HAVE_STRFTIME
-static const char sftime_ldep_time[]   = "%c";
-static const char sftime_med_fmt[]     = "%d %b %Y %T";
-static const char sftime_short_fmt[]   = "%x %X";
-static const char sftime_last_fmt[]    = "%d/%m/%Y %R";
-#endif /* HAVE_STRFTIME */
-static const char sftime_default_fmt[] = "%02d/%02d/%4d %02d:%02d";
-static const size_t sftime_default_len = 2+1+2+1+4+1+2+1+2+1;
-
-/* Delta time strings */
-static const char dtscan_dhms_notext[] = "%d-%02d:%02d:%02d";
-static const char dtscan_dhms_stext[]  = "%dd%dh%dm%ds";
-static const char dtscan_hms_notext[]  = "%d:%02d:%02d";
-static const char dtscan_hms_stext[]   = "%dh%dm%ds";
-static const char dtscan_hm_notext[]   = "%d:%02d";
-static const char dtscan_hm_stext[]    = "%dh%dm";
-static const char dtscan_days[]                = "%d%[d]";
-static const char dtscan_hours[]       = "%d%[h]";
-static const char dtscan_minutes[]     = "%d%[m]";
-static const char dtscan_seconds[]     = "%d%[s]";
-static const char dt_day_singular[]    = "day";
-static const char dt_day_plural[]      = "days";
-static const char dt_output_donly[]    = "%d %s";
-static const char dt_output_dhms[]     = "%d %s %02d:%02d:%02d";
-static const char dt_output_hms[]      = "%d:%02d:%02d";
-
 /*
  * Lookup tables.
  */
 
 static const struct salttype_lookup_entry salttype_table[] = {
-/* salt type                   input specifier         output string     */
-/*-----------------------------        ----------------------- ------------------*/
-{ KRB5_KDB_SALTTYPE_NORMAL,    stype_v5_in,            stype_v5_out      },
-{ KRB5_KDB_SALTTYPE_V4,                stype_v4_in,            stype_v4_out      },
-{ KRB5_KDB_SALTTYPE_NOREALM,   stype_norealm_in,       stype_norealm_out },
-{ KRB5_KDB_SALTTYPE_ONLYREALM, stype_olrealm_in,       stype_olrealm_out },
-{ KRB5_KDB_SALTTYPE_SPECIAL,   stype_special_in,       stype_special_out },
-{ KRB5_KDB_SALTTYPE_AFS3,      stype_afs3_in,          stype_afs3_out    }
+/* salt type                   input specifier output string  */
+/*-----------------------------        --------------- ---------------*/
+{ KRB5_KDB_SALTTYPE_NORMAL,    "normal",       "Version 5"       },
+{ KRB5_KDB_SALTTYPE_V4,                "v4",           "Version 4"       },
+{ KRB5_KDB_SALTTYPE_NOREALM,   "norealm",      "Version 5 - No Realm" },
+{ KRB5_KDB_SALTTYPE_ONLYREALM, "onlyrealm",    "Version 5 - Realm Only" },
+{ KRB5_KDB_SALTTYPE_SPECIAL,   "special",      "Special" },
+{ KRB5_KDB_SALTTYPE_AFS3,      "afs3",         "AFS version 3"    }
 };
 static const int salttype_table_nents = sizeof(salttype_table)/
                                        sizeof(salttype_table[0]);
 
-static const char * const atime_format_table[] = {
-atime_full_digits_Y,   /* yyyymmddhhmmss               */
-atime_full_digits_Yd,  /* yyyy.mm.dd.hh.mm.ss          */
-atime_full_digits,     /* yymmddhhmmss                 */
-atime_full_digits_d,   /* yy.mm.dd.hh.mm.ss            */
-atime_nsec_digits,     /* yymmddhhmm                   */
-atime_rel_hms,         /* hhmmss                       */
-atime_rel_hm,          /* hhmm                         */
-atime_rel_col_hms,     /* hh:mm:ss                     */
-atime_rel_col_hm,      /* hh:mm                        */
-/* The following not really supported unless native strptime present */
-atime_ldep_sfmt,       /*locale-dependent short format */
-atime_full_text,       /* dd-month-yyyy:hh:mm:ss       */
-atime_full_text_nos    /* dd-month-yyyy:hh:mm          */
-};
-static const int atime_format_table_nents = sizeof(atime_format_table)/
-                                           sizeof(atime_format_table[0]);
-
-#ifdef HAVE_STRFTIME
-static const char * const sftime_format_table[] = {
-sftime_ldep_time,      /* Default locale-dependent date and time       */
-sftime_med_fmt,                /* dd mon yy hh:mm:ss                           */
-sftime_short_fmt,      /* locale-dependent short format                */
-sftime_last_fmt                /* dd/mm/yy hh:mm                               */
-};
-static const int sftime_format_table_nents = sizeof(sftime_format_table)/
-                                           sizeof(sftime_format_table[0]);
-#endif /* HAVE_STRFTIME */
-
-static const struct deltat_match_entry deltat_table[] = {
-/* scan format         nmatch  daypos  hourpos minpos  secpos  */
-/*---------------------        ------- ------- ------- ------- --------*/
-{ dtscan_dhms_notext,  4,      0,      1,      2,      3       },
-{ dtscan_dhms_stext,   4,      0,      1,      2,      3       },
-{ dtscan_hms_notext,   3,      -1,     0,      1,      2       },
-{ dtscan_hms_stext,    3,      -1,     0,      1,      2       },
-{ dtscan_hm_notext,    2,      -1,     -1,     0,      1       },
-{ dtscan_hm_stext,     2,      -1,     -1,     0,      1       },
-{ dtscan_days,         2,      0,      -1,     -1,     -1      },
-{ dtscan_hours,                2,      -1,     0,      -1,     -1      },
-{ dtscan_minutes,      2,      -1,     -1,     0,      -1      },
-{ dtscan_seconds,      2,      -1,     -1,     -1,     0       }
-};
-static const int deltat_table_nents = sizeof(deltat_table)/
-                                     sizeof(deltat_table[0]);
-\f
-#if    !HAVE_STRPTIME
-/*
- * Rudimentary version of strptime for systems which don't have it.
- */
-static char *
-strptime(buf, format, tm)
-    char *buf;
-    const char *format;
-    struct tm *tm;
-{
-    int year, month, day, hour, minute, second;
-    char *bp;
-    time_t now;
-    
-    /*
-     * We only understand the following fixed formats:
-     *    %Y%m%d%H%M%S
-     *    %Y.%m.%d.%H.%M.%S
-     *    %y%m%d%H%M%S
-     *    %y.%m.%d.%H.%M.%S
-     *    %y%m%d%H%M
-     *    %H%M%S
-     *    %H%M
-     *    %T
-     *    %R
-     */
-    bp = (char *) NULL;
-    if (!strcmp(format, atime_full_digits_Y) &&
-       (sscanf(buf, ascan_full_digits_Y,
-               &year, &month, &day, &hour, &minute, &second) == 6)) {
-       if (year < 1900)
-               return NULL;
-       tm->tm_year = year-1900;
-       tm->tm_mon = month - 1;
-       tm->tm_mday = day;
-       tm->tm_hour = hour;
-       tm->tm_min = minute;
-       tm->tm_sec = second;
-       bp = &buf[strlen(atime_full_digits)];
-    }
-    else if (!strcmp(format,atime_full_digits_Yd) &&
-            (sscanf(buf, ascan_full_digits_Yd,
-                    &year, &month, &day, &hour, &minute, &second) == 6)) {
-       if (year < 1900)
-               return NULL;
-       tm->tm_year = year-1900;
-       tm->tm_mon = month - 1;
-       tm->tm_mday = day;
-       tm->tm_hour = hour;
-       tm->tm_min = minute;
-       tm->tm_sec = second;
-       bp = &buf[strlen(atime_full_digits_d)];
-    }
-    else if (!strcmp(format, atime_full_digits) &&
-       (sscanf(buf, ascan_full_digits,
-               &year, &month, &day, &hour, &minute, &second) == 6)) {
-       if (year <= 68)
-               year += 100;
-       tm->tm_year = year;
-       tm->tm_mon = month - 1;
-       tm->tm_mday = day;
-       tm->tm_hour = hour;
-       tm->tm_min = minute;
-       tm->tm_sec = second;
-       bp = &buf[strlen(atime_full_digits)];
-    }
-    else if (!strcmp(format,atime_full_digits_d) &&
-            (sscanf(buf, ascan_full_digits_d,
-                    &year, &month, &day, &hour, &minute, &second) == 6)) {
-       if (year <= 68)
-               year += 100;
-       tm->tm_year = year;
-       tm->tm_mon = month - 1;
-       tm->tm_mday = day;
-       tm->tm_hour = hour;
-       tm->tm_min = minute;
-       tm->tm_sec = second;
-       bp = &buf[strlen(atime_full_digits_d)];
-    }
-    else if (!strcmp(format, atime_nsec_digits) &&
-            (sscanf(buf, ascan_nsec_digits,
-               &year, &month, &day, &hour, &minute) == 5)) {
-       if (year <= 68)
-               year += 100;
-       tm->tm_year = year;
-       tm->tm_mon = month - 1;
-       tm->tm_mday = day;
-       tm->tm_hour = hour;
-       tm->tm_min = minute;
-       tm->tm_sec = 0;
-       bp = &buf[strlen(atime_nsec_digits)];
-    }
-    else if (!strcmp(format, atime_rel_hms) &&
-            (sscanf(buf, ascan_rel_hms, &hour, &minute, &second) == 3)) {
-       now = time((time_t *) NULL);
-       memcpy(tm, localtime(&now), sizeof(struct tm));
-       tm->tm_hour = hour;
-       tm->tm_min = minute;
-       tm->tm_sec = second;
-       bp = &buf[strlen(atime_rel_hms)];
-    }
-    else if (!strcmp(format, atime_rel_hm) &&
-            (sscanf(buf, ascan_rel_hm, &hour, &minute) == 2)) {
-       now = time((time_t *) NULL);
-       memcpy(tm, localtime(&now), sizeof(struct tm));
-       tm->tm_hour = hour;
-       tm->tm_min = minute;
-       bp = &buf[strlen(atime_rel_hm)];
-    }
-    else if (!strcmp(format, atime_rel_col_hms) &&
-            (sscanf(buf, ascan_rel_col_hms, &hour, &minute, &second) == 3)) {
-       now = time((time_t *) NULL);
-       memcpy(tm, localtime(&now), sizeof(struct tm));
-       tm->tm_hour = hour;
-       tm->tm_min = minute;
-       tm->tm_sec = second;
-       bp = &buf[strlen(atime_rel_col_hms)];
-    }
-    else if (!strcmp(format, atime_rel_col_hm) &&
-            (sscanf(buf, ascan_rel_col_hm, &hour, &minute) == 2)) {
-       now = time((time_t *) NULL);
-       memcpy(tm, localtime(&now), sizeof(struct tm));
-       tm->tm_hour = hour;
-       tm->tm_min = minute;
-       bp = &buf[strlen(atime_rel_col_hm)];
-    } else
-           return NULL;
-    return bp;
-}
-#endif /* HAVE_STRPTIME */
-\f
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
 krb5_string_to_salttype(string, salttypep)
     char       FAR * string;
@@ -344,79 +95,6 @@ krb5_string_to_salttype(string, salttypep)
     return((found) ? 0 : EINVAL);
 }
 
-KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
-krb5_string_to_timestamp(string, timestampp)
-    char               FAR * string;
-    krb5_timestamp     FAR * timestampp;
-{
-    int i;
-    struct tm timebuf;
-    time_t now, ret_time;
-    char *s;
-
-    now = time((time_t *) NULL);
-    for (i=0; i<atime_format_table_nents; i++) {
-        /* We reset every time throughout the loop as the manual page
-        * indicated that no guarantees are made as to preserving timebuf
-        * when parsing fails
-        */
-       memcpy(&timebuf, localtime(&now), sizeof(timebuf));
-       if ((s = strptime(string, atime_format_table[i], &timebuf))
-           && (s != string)) {
-           if (timebuf.tm_year <= 0)
-               continue;       /* clearly confused */
-           ret_time = mktime(&timebuf);
-           if (ret_time == (time_t) -1)
-               continue;       /* clearly confused */
-           *timestampp = (krb5_timestamp) ret_time;
-           return 0;
-       }
-    }
-    return(EINVAL);
-}
-
-KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
-krb5_string_to_deltat(string, deltatp)
-    char       FAR * string;
-    krb5_deltat        FAR * deltatp;
-{
-    int i;
-    int found;
-    int svalues[4];
-    int days, hours, minutes, seconds;
-    krb5_deltat        dt;
-
-    found = 0;
-    days = hours = minutes = seconds = 0;
-    for (i=0; i<deltat_table_nents; i++) {
-       if (sscanf(string, deltat_table[i].dt_scan_format,
-                  &svalues[0], &svalues[1], &svalues[2], &svalues[3]) ==
-           deltat_table[i].dt_nmatch) {
-           if (deltat_table[i].dt_dindex >= 0)
-               days = svalues[deltat_table[i].dt_dindex];
-           if (deltat_table[i].dt_hindex >= 0)
-               hours = svalues[deltat_table[i].dt_hindex];
-           if (deltat_table[i].dt_mindex >= 0)
-               minutes = svalues[deltat_table[i].dt_mindex];
-           if (deltat_table[i].dt_sindex >= 0)
-               seconds = svalues[deltat_table[i].dt_sindex];
-           found = 1;
-           break;
-       }
-    }
-    if (found) {
-       dt = days;
-       dt *= 24;
-       dt += hours;
-       dt *= 60;
-       dt += minutes;
-       dt *= 60;
-       dt += seconds;
-       *deltatp = dt;
-    }
-    return((found) ? 0 : EINVAL);
-}
-
 /*
  * Internal datatype to string routines.
  *
@@ -449,6 +127,69 @@ krb5_salttype_to_string(salttype, buffer, buflen)
     else
        return(EINVAL);
 }
+\f
+/* (absolute) time conversions */
+
+#ifndef HAVE_STRFTIME
+#undef strftime
+#define strftime my_strftime
+static size_t strftime (char *, size_t, const char *, const struct tm *);
+#endif
+
+#ifndef HAVE_STRPTIME
+#undef strptime
+#define strptime my_strptime
+static char *strptime (const char *, const char *, struct tm *);
+#endif
+
+KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
+krb5_string_to_timestamp(string, timestampp)
+    char               FAR * string;
+    krb5_timestamp     FAR * timestampp;
+{
+    int i;
+    struct tm timebuf;
+    time_t now, ret_time;
+    char *s;
+    static const char * const atime_format_table[] = {
+       "%Y%m%d%H%M%S",         /* yyyymmddhhmmss               */
+       "%Y.%m.%d.%H.%M.%S",    /* yyyy.mm.dd.hh.mm.ss          */
+       "%y%m%d%H%M%S",         /* yymmddhhmmss                 */
+       "%y.%m.%d.%H.%M.%S",    /* yy.mm.dd.hh.mm.ss            */
+       "%y%m%d%H%M",           /* yymmddhhmm                   */
+       "%H%M%S",               /* hhmmss                       */
+       "%H%M",                 /* hhmm                         */
+       "%T",                   /* hh:mm:ss                     */
+       "%R",                   /* hh:mm                        */
+       /* The following not really supported unless native strptime present */
+       "%x:%X",                /* locale-dependent short format */
+       "%d-%b-%Y:%T",          /* dd-month-yyyy:hh:mm:ss       */
+       "%d-%b-%Y:%R"           /* dd-month-yyyy:hh:mm          */
+    };
+    static const int atime_format_table_nents =
+       sizeof(atime_format_table)/sizeof(atime_format_table[0]);
+
+
+    now = time((time_t *) NULL);
+    for (i=0; i<atime_format_table_nents; i++) {
+        /* We reset every time throughout the loop as the manual page
+        * indicated that no guarantees are made as to preserving timebuf
+        * when parsing fails
+        */
+       memcpy(&timebuf, localtime(&now), sizeof(timebuf));
+       if ((s = strptime(string, atime_format_table[i], &timebuf))
+           && (s != string)) {
+           if (timebuf.tm_year <= 0)
+               continue;       /* clearly confused */
+           ret_time = mktime(&timebuf);
+           if (ret_time == (time_t) -1)
+               continue;       /* clearly confused */
+           *timestampp = (krb5_timestamp) ret_time;
+           return 0;
+       }
+    }
+    return(EINVAL);
+}
 
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
 krb5_timestamp_to_string(timestamp, buffer, buflen)
@@ -456,25 +197,13 @@ krb5_timestamp_to_string(timestamp, buffer, buflen)
     char               FAR * buffer;
     size_t             buflen;
 {
-#if    HAVE_STRFTIME
     int ret;
-       
-    ret = strftime(buffer, buflen, "%c", localtime((time_t *) &timestamp));
+    time_t timestamp2 = timestamp;
+
+    ret = strftime(buffer, buflen, "%c", localtime(&timestamp2));
     if (ret == 0 || ret == buflen)
        return(ENOMEM);
     return(0);
-#else  /* HAVE_STRFTIME */
-    char *cp;
-    time_t t = timestamp;
-    
-    cp = ctime(&t);
-    if (strlen(cp) >= buflen)
-       return ENOMEM;
-    strcpy(buffer, cp);
-    /* ctime returns <datestring>\n\0 */
-    buffer[strlen(buffer)-1] = '\0';
-    return(0);
-#endif /* HAVE_STRFTIME */
 }
 
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
@@ -487,20 +216,29 @@ krb5_timestamp_to_sfstring(timestamp, buffer, buflen, pad)
     struct tm  *tmp;
     size_t i;
     size_t     ndone;
+    time_t timestamp2 = timestamp;
 
-    tmp = localtime((time_t *) &timestamp);
+    static const char * const sftime_format_table[] = {
+       "%c",                   /* Default locale-dependent date and time */
+       "%d %b %Y %T",          /* dd mon yyyy hh:mm:ss                 */
+       "%x %X",                /* locale-dependent short format        */
+       "%d/%m/%Y %R"           /* dd/mm/yyyy hh:mm                     */
+    };
+    static const int sftime_format_table_nents =
+       sizeof(sftime_format_table)/sizeof(sftime_format_table[0]);
+
+    tmp = localtime(&timestamp2);
     ndone = 0;
-#if    HAVE_STRFTIME
     for (i=0; i<sftime_format_table_nents; i++) {
        if ((ndone = strftime(buffer, buflen, sftime_format_table[i], tmp)))
            break;
     }
-#endif /* HAVE_STRFTIME */
     if (!ndone) {
+#define sftime_default_len     2+1+2+1+4+1+2+1+2+1
        if (buflen >= sftime_default_len) {
-           sprintf(buffer, sftime_default_fmt,
+           sprintf(buffer, "%02d/%02d/%4d %02d:%02d",
                    tmp->tm_mday, tmp->tm_mon+1, 1900+tmp->tm_year,
-                   tmp->tm_hour, tmp->tm_min, tmp->tm_sec);
+                   tmp->tm_hour, tmp->tm_min);
            ndone = strlen(buffer);
        }
     }
@@ -511,6 +249,10 @@ krb5_timestamp_to_sfstring(timestamp, buffer, buflen, pad)
     }
     return((ndone) ? 0 : ENOMEM);
 }
+\f
+/* relative time (delta-t) conversions */
+
+/* string->deltat is in deltat.y */
 
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
 krb5_deltat_to_string(deltat, buffer, buflen)
@@ -520,38 +262,101 @@ krb5_deltat_to_string(deltat, buffer, buflen)
 {
     int                        days, hours, minutes, seconds;
     krb5_deltat                dt;
-    krb5_error_code    retval;
 
-    days = (int) (deltat / (24*3600l));
-    dt = deltat % (24*3600l);
+    /*
+     * We want something like ceil(log10(2**(nbits-1))) + 1.  That log
+     * value is log10(2)*(nbits-1) or log10(2**8)*(nbits-1)/8.  So,
+     * 2.4... is log10(256), rounded up.  Add one to handle leading
+     * minus, and one more to force int cast to round the value up.
+     * This doesn't include room for a trailing nul.
+     *
+     * This will break if bytes are more than 8 bits.
+     */
+#define MAX_CHARS_FOR_INT_TYPE(TYPE)   ((int) (2 + 2.408241 * sizeof (TYPE)))
+    char tmpbuf[MAX_CHARS_FOR_INT_TYPE(int) * 4 + 8];
+
+    days = (int) (deltat / (24*3600L));
+    dt = deltat % (24*3600L);
     hours = (int) (dt / 3600);
     dt %= 3600;
     minutes = (int) (dt / 60);
     seconds = (int) (dt % 60);
 
-    retval = 0;
-    if (days) {
-       if (hours || minutes || seconds) {
-           if (buflen < (strlen(dt_output_dhms)+strlen(dt_day_plural)))
-               retval = ENOMEM;
-           else
-               sprintf(buffer, dt_output_dhms, days,
-                       (days > 1) ? dt_day_plural : dt_day_singular,
-                       hours, minutes, seconds);
-       }
-       else {
-           if (buflen < (strlen(dt_output_donly)+strlen(dt_day_plural)))
-               retval = ENOMEM;
-           else
-               sprintf(buffer, dt_output_donly, days,
-                       (days > 1) ? dt_day_plural : dt_day_singular);
-       }
-    }
-    else {
-       if (buflen < strlen(dt_output_hms))
-           retval = ENOMEM;
-       else
-           sprintf(buffer, dt_output_hms, hours, minutes, seconds);
-    }
-    return(retval);
+    memset (tmpbuf, 0, sizeof (tmpbuf));
+    if (days == 0)
+       sprintf(buffer, "%d:%02d:%02d", hours, minutes, seconds);
+    else if (hours || minutes || seconds)
+       sprintf(buffer, "%d %s %02d:%02d:%02d", days,
+               (days > 1) ? "days" : "day",
+               hours, minutes, seconds);
+    else
+       sprintf(buffer, "%d %s", days,
+               (days > 1) ? "days" : "day");
+    if (tmpbuf[sizeof(tmpbuf)-1] != 0)
+       /* Something must be very wrong with my math above, or the
+          assumptions going into it...  */
+       abort ();
+    if (strlen (tmpbuf) > buflen)
+       return ENOMEM;
+    else
+       strncpy (buffer, tmpbuf, buflen);
+    return 0;
 }
+
+#undef __P
+#define __P(X) X
+
+#if !defined (HAVE_STRFTIME) || !defined (HAVE_STRPTIME)
+#undef _CurrentTimeLocale
+#define _CurrentTimeLocale (&dummy_locale_info)
+
+struct dummy_locale_info_t {
+    char d_t_fmt[15];
+    char t_fmt_ampm[12];
+    char t_fmt[9];
+    char d_fmt[9];
+    char day[7][10];
+    char abday[7][4];
+    char mon[12][10];
+    char abmon[12][4];
+    char am_pm[2][3];
+};
+static const struct dummy_locale_info_t dummy_locale_info = {
+    "%a %b %d %X %Y",          /* %c */
+    "%I:%M:%S %p",             /* %r */
+    "%H:%M:%S",                        /* %X */
+    "%m/%d/%y",                        /* %x */
+    { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday",
+      "Saturday" },
+    { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" },
+    { "January", "February", "March", "April", "May", "June",
+      "July", "August", "September", "October", "November", "December" },
+    { "Jan", "Feb", "Mar", "Apr", "May", "Jun",
+      "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" },
+    { "AM", "PM" },
+};
+#undef  TM_YEAR_BASE
+#define TM_YEAR_BASE 1900
+#endif
+
+#ifndef HAVE_STRFTIME
+#undef  DAYSPERLYEAR
+#define DAYSPERLYEAR 366
+#undef  DAYSPERNYEAR
+#define DAYSPERNYEAR 365
+#undef  DAYSPERWEEK
+#define DAYSPERWEEK 7
+#undef  isleap
+#define isleap(N)      ((N % 4) == 0 && (N % 100 != 0 || N % 400 == 0))
+#undef  tzname
+#define tzname my_tzname
+static const char *const tzname[2] = { 0, 0 };
+#undef  tzset
+#define tzset()
+
+#include "strftime.c"
+#endif
+
+#ifndef HAVE_STRPTIME
+#include "strptime.c"
+#endif
diff --git a/src/lib/krb5/krb/strftime.c b/src/lib/krb5/krb/strftime.c
new file mode 100644 (file)
index 0000000..f2a5cb7
--- /dev/null
@@ -0,0 +1,415 @@
+/*     $NetBSD: strftime.c,v 1.8 1999/02/07 17:33:30 augustss Exp $    */
+
+/*
+ * 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.
+ */
+
+#if defined(LIBC_SCCS) && !defined(lint)
+#if 0
+static char *sccsid = "@(#)strftime.c  5.11 (Berkeley) 2/24/91";
+#else
+__RCSID("$NetBSD: strftime.c,v 1.8 1999/02/07 17:33:30 augustss Exp $");
+#endif
+#endif /* LIBC_SCCS and not lint */
+
+#include <string.h>
+#include <time.h>
+
+static int _add __P((const char *, char **, const char *));
+static int _conv __P((int, int, int, char **, const char *));
+static int _secs __P((const struct tm *, char **, const char *));
+static size_t _fmt __P((const char *, const struct tm *, char **,
+           const char *));
+
+static size_t
+strftime(s, maxsize, format, t)
+       char *s;
+       size_t maxsize;
+       const char *format;
+       const struct tm *t;
+{
+       char *pt;
+
+       tzset();
+       if (maxsize < 1)
+               return (0);
+
+       pt = s;
+       if (_fmt(format, t, &pt, s + maxsize)) {
+               *pt = '\0';
+               return (pt - s);
+       } else
+               return (0);
+}
+
+#define SUN_WEEK(t)    (((t)->tm_yday + 7 - \
+                               ((t)->tm_wday)) / 7)
+#define MON_WEEK(t)    (((t)->tm_yday + 7 - \
+                               ((t)->tm_wday ? (t)->tm_wday - 1 : 6)) / 7)
+
+static size_t
+_fmt(format, t, pt, ptlim)
+       const char *format;
+       const struct tm *t;
+       char **pt;
+       const char * const ptlim;
+{
+       for (; *format; ++format) {
+               if (*format == '%') {
+                       ++format;
+                       if (*format == 'E') {
+                               /* Alternate Era */
+                               ++format;
+                       } else if (*format == 'O') {
+                               /* Alternate numeric symbols */
+                               ++format;
+                       }
+                       switch (*format) {
+                       case '\0':
+                               --format;
+                               break;
+                       case 'A':
+                               if (t->tm_wday < 0 || t->tm_wday > 6)
+                                       return (0);
+                               if (!_add(_CurrentTimeLocale->day[t->tm_wday],
+                                   pt, ptlim))
+                                       return (0);
+                               continue;
+
+                       case 'a':
+                               if (t->tm_wday < 0 || t->tm_wday > 6)
+                                       return (0);
+                               if (!_add(_CurrentTimeLocale->abday[t->tm_wday],
+                                   pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'B':
+                               if (t->tm_mon < 0 || t->tm_mon > 11)
+                                       return (0);
+                               if (!_add(_CurrentTimeLocale->mon[t->tm_mon],
+                                   pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'b':
+                       case 'h':
+                               if (t->tm_mon < 0 || t->tm_mon > 11)
+                                       return (0);
+                               if (!_add(_CurrentTimeLocale->abmon[t->tm_mon],
+                                   pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'C':
+                               if (!_conv((t->tm_year + TM_YEAR_BASE) / 100,
+                                   2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'c':
+                               if (!_fmt(_CurrentTimeLocale->d_t_fmt, t, pt,
+                                   ptlim))
+                                       return (0);
+                               continue;
+                       case 'D':
+                               if (!_fmt("%m/%d/%y", t, pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'd':
+                               if (!_conv(t->tm_mday, 2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'e':
+                               if (!_conv(t->tm_mday, 2, ' ', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'H':
+                               if (!_conv(t->tm_hour, 2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'I':
+                               if (!_conv(t->tm_hour % 12 ?
+                                   t->tm_hour % 12 : 12, 2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'j':
+                               if (!_conv(t->tm_yday + 1, 3, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'k':
+                               if (!_conv(t->tm_hour, 2, ' ', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'l':
+                               if (!_conv(t->tm_hour % 12 ?
+                                   t->tm_hour % 12: 12, 2, ' ', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'M':
+                               if (!_conv(t->tm_min, 2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'm':
+                               if (!_conv(t->tm_mon + 1, 2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'n':
+                               if (!_add("\n", pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'p':
+                               if (!_add(_CurrentTimeLocale->am_pm[t->tm_hour
+                                   >= 12], pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'R':
+                               if (!_fmt("%H:%M", t, pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'r':
+                               if (!_fmt(_CurrentTimeLocale->t_fmt_ampm, t, pt,
+                                   ptlim))
+                                       return (0);
+                               continue;
+                       case 'S':
+                               if (!_conv(t->tm_sec, 2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 's':
+                               if (!_secs(t, pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'T':
+                               if (!_fmt("%H:%M:%S", t, pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 't':
+                               if (!_add("\t", pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'U':
+                               if (!_conv(SUN_WEEK(t), 2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'u':
+                               if (!_conv(t->tm_wday ? t->tm_wday : 7, 1, '0',
+                                   pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'V':       /* ISO 8601 week number */
+                       case 'G':       /* ISO 8601 year (four digits) */
+                       case 'g':       /* ISO 8601 year (two digits) */
+/*
+** From Arnold Robbins' strftime version 3.0:  "the week number of the
+** year (the first Monday as the first day of week 1) as a decimal number
+** (01-53)."
+** (ado, 1993-05-24)
+**
+** From "http://www.ft.uni-erlangen.de/~mskuhn/iso-time.html" by Markus Kuhn:
+** "Week 01 of a year is per definition the first week which has the
+** Thursday in this year, which is equivalent to the week which contains
+** the fourth day of January. In other words, the first week of a new year
+** is the week which has the majority of its days in the new year. Week 01
+** might also contain days from the previous year and the week before week
+** 01 of a year is the last week (52 or 53) of the previous year even if
+** it contains days from the new year. A week starts with Monday (day 1)
+** and ends with Sunday (day 7).  For example, the first week of the year
+** 1997 lasts from 1996-12-30 to 1997-01-05..."
+** (ado, 1996-01-02)
+*/
+                               {
+                                       int     year;
+                                       int     yday;
+                                       int     wday;
+                                       int     w;
+
+                                       year = t->tm_year + TM_YEAR_BASE;
+                                       yday = t->tm_yday;
+                                       wday = t->tm_wday;
+                                       for ( ; ; ) {
+                                               int     len;
+                                               int     bot;
+                                               int     top;
+
+                                               len = isleap(year) ?
+                                                       DAYSPERLYEAR :
+                                                       DAYSPERNYEAR;
+                                               /*
+                                               ** What yday (-3 ... 3) does
+                                               ** the ISO year begin on?
+                                               */
+                                               bot = ((yday + 11 - wday) %
+                                                       DAYSPERWEEK) - 3;
+                                               /*
+                                               ** What yday does the NEXT
+                                               ** ISO year begin on?
+                                               */
+                                               top = bot -
+                                                       (len % DAYSPERWEEK);
+                                               if (top < -3)
+                                                       top += DAYSPERWEEK;
+                                               top += len;
+                                               if (yday >= top) {
+                                                       ++year;
+                                                       w = 1;
+                                                       break;
+                                               }
+                                               if (yday >= bot) {
+                                                       w = 1 + ((yday - bot) /
+                                                               DAYSPERWEEK);
+                                                       break;
+                                               }
+                                               --year;
+                                               yday += isleap(year) ?
+                                                       DAYSPERLYEAR :
+                                                       DAYSPERNYEAR;
+                                       }
+#ifdef XPG4_1994_04_09
+                                       if ((w == 52
+                                            && t->tm_mon == TM_JANUARY)
+                                           || (w == 1
+                                               && t->tm_mon == TM_DECEMBER))
+                                               w = 53;
+#endif /* defined XPG4_1994_04_09 */
+                                       if (*format == 'V') {
+                                               if (!_conv(w, 2, '0',
+                                                       pt, ptlim))
+                                                       return (0);
+                                       } else if (*format == 'g') {
+                                               if (!_conv(year % 100, 2, '0',
+                                                       pt, ptlim))
+                                                       return (0);
+                                       } else  if (!_conv(year, 4, '0',
+                                                       pt, ptlim))
+                                                       return (0);
+                               }
+                               continue;
+                       case 'W':
+                               if (!_conv(MON_WEEK(t), 2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'w':
+                               if (!_conv(t->tm_wday, 1, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'x':
+                               if (!_fmt(_CurrentTimeLocale->d_fmt, t, pt,
+                                   ptlim))
+                                       return (0);
+                               continue;
+                       case 'X':
+                               if (!_fmt(_CurrentTimeLocale->t_fmt, t, pt,
+                                   ptlim))
+                                       return (0);
+                               continue;
+                       case 'y':
+                               if (!_conv((t->tm_year + TM_YEAR_BASE) % 100,
+                                   2, '0', pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'Y':
+                               if (!_conv((t->tm_year + TM_YEAR_BASE), 4, '0',
+                                   pt, ptlim))
+                                       return (0);
+                               continue;
+                       case 'Z':
+                               if (tzname[t->tm_isdst ? 1 : 0] &&
+                                   !_add(tzname[t->tm_isdst ? 1 : 0], pt,
+                                   ptlim))
+                                       return (0);
+                               continue;
+                       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 (*pt == ptlim)
+                       return (0);
+               *(*pt)++ = *format;
+       }
+       return (ptlim - *pt);
+}
+
+static int
+_secs(t, pt, ptlim)
+       const struct tm *t;
+       char **pt;
+       const char * const ptlim;
+{
+       char buf[15];
+       time_t s;
+       char *p;
+       struct tm tmp;
+
+       buf[sizeof (buf) - 1] = '\0';
+       /* 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-- = (char)(s % 10 + '0');
+       return (_add(++p, pt, ptlim));
+}
+
+static int
+_conv(n, digits, pad, pt, ptlim)
+       int n, digits;
+       int pad;
+       char **pt;
+       const char * const ptlim;
+{
+       char buf[10];
+       char *p;
+
+       buf[sizeof (buf) - 1] = '\0';
+       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, pt, ptlim));
+}
+
+static int
+_add(str, pt, ptlim)
+       const char *str;
+       char **pt;
+       const char * const ptlim;
+{
+
+       for (;; ++(*pt)) {
+               if (*pt == ptlim)
+                       return (0);
+               if ((**pt = *str++) == '\0')
+                       return (1);
+       }
+}
diff --git a/src/lib/krb5/krb/strptime.c b/src/lib/krb5/krb/strptime.c
new file mode 100644 (file)
index 0000000..ac52d5c
--- /dev/null
@@ -0,0 +1,386 @@
+/*     $NetBSD: strptime.c,v 1.18 1999/04/29 02:58:30 tv Exp $ */
+
+/*-
+ * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
+ * All rights reserved.
+ *
+ * This code was contributed to The NetBSD Foundation by Klaus Klein.
+ *
+ * Redistribution and use in source 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 FOUNDATION 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)
+__RCSID("$NetBSD: strptime.c,v 1.18 1999/04/29 02:58:30 tv Exp $");
+#endif
+
+#include <ctype.h>
+#include <string.h>
+#include <time.h>
+
+#undef _ctloc
+#define _ctloc(x)              _CurrentTimeLocale->x
+
+/*
+ * We do not implement alternate representations. However, we always
+ * check whether a given modifier is allowed for a certain conversion.
+ */
+#define ALT_E                  0x01
+#define ALT_O                  0x02
+#define        LEGAL_ALT(x)            { if (alt_format & ~(x)) return (0); }
+
+
+static int conv_num __P((const char **, int *, int, int));
+
+
+static char *
+strptime(buf, fmt, tm)
+       const char *buf, *fmt;
+       struct tm *tm;
+{
+       char c;
+       const char *bp;
+       size_t len = 0;
+       int alt_format, i, split_year = 0;
+
+       bp = buf;
+
+       while ((c = *fmt) != '\0') {
+               /* Clear `alternate' modifier prior to new conversion. */
+               alt_format = 0;
+
+               /* Eat up white-space. */
+               if (isspace(c)) {
+                       while (isspace(*bp))
+                               bp++;
+
+                       fmt++;
+                       continue;
+               }
+                               
+               if ((c = *fmt++) != '%')
+                       goto literal;
+
+
+again:         switch (c = *fmt++) {
+               case '%':       /* "%%" is converted to "%". */
+literal:
+                       if (c != *bp++)
+                               return (0);
+                       break;
+
+               /*
+                * "Alternative" modifiers. Just set the appropriate flag
+                * and start over again.
+                */
+               case 'E':       /* "%E?" alternative conversion modifier. */
+                       LEGAL_ALT(0);
+                       alt_format |= ALT_E;
+                       goto again;
+
+               case 'O':       /* "%O?" alternative conversion modifier. */
+                       LEGAL_ALT(0);
+                       alt_format |= ALT_O;
+                       goto again;
+                       
+               /*
+                * "Complex" conversion rules, implemented through recursion.
+                */
+               case 'c':       /* Date and time, using the locale's format. */
+                       LEGAL_ALT(ALT_E);
+                       if (!(bp = strptime(bp, _ctloc(d_t_fmt), tm)))
+                               return (0);
+                       break;
+
+               case 'D':       /* The date as "%m/%d/%y". */
+                       LEGAL_ALT(0);
+                       if (!(bp = strptime(bp, "%m/%d/%y", tm)))
+                               return (0);
+                       break;
+
+               case 'R':       /* The time as "%H:%M". */
+                       LEGAL_ALT(0);
+                       if (!(bp = strptime(bp, "%H:%M", tm)))
+                               return (0);
+                       break;
+
+               case 'r':       /* The time in 12-hour clock representation. */
+                       LEGAL_ALT(0);
+                       if (!(bp = strptime(bp, _ctloc(t_fmt_ampm), tm)))
+                               return (0);
+                       break;
+
+               case 'T':       /* The time as "%H:%M:%S". */
+                       LEGAL_ALT(0);
+                       if (!(bp = strptime(bp, "%H:%M:%S", tm)))
+                               return (0);
+                       break;
+
+               case 'X':       /* The time, using the locale's format. */
+                       LEGAL_ALT(ALT_E);
+                       if (!(bp = strptime(bp, _ctloc(t_fmt), tm)))
+                               return (0);
+                       break;
+
+               case 'x':       /* The date, using the locale's format. */
+                       LEGAL_ALT(ALT_E);
+                       if (!(bp = strptime(bp, _ctloc(d_fmt), tm)))
+                               return (0);
+                       break;
+
+               /*
+                * "Elementary" conversion rules.
+                */
+               case 'A':       /* The day of week, using the locale's form. */
+               case 'a':
+                       LEGAL_ALT(0);
+                       for (i = 0; i < 7; i++) {
+                               /* Full name. */
+                               len = strlen(_ctloc(day[i]));
+                               if (strncasecmp(_ctloc(day[i]), bp, len) == 0)
+                                       break;
+
+                               /* Abbreviated name. */
+                               len = strlen(_ctloc(abday[i]));
+                               if (strncasecmp(_ctloc(abday[i]), bp, len) == 0)
+                                       break;
+                       }
+
+                       /* Nothing matched. */
+                       if (i == 7)
+                               return (0);
+
+                       tm->tm_wday = i;
+                       bp += len;
+                       break;
+
+               case 'B':       /* The month, using the locale's form. */
+               case 'b':
+               case 'h':
+                       LEGAL_ALT(0);
+                       for (i = 0; i < 12; i++) {
+                               /* Full name. */
+                               len = strlen(_ctloc(mon[i]));
+                               if (strncasecmp(_ctloc(mon[i]), bp, len) == 0)
+                                       break;
+
+                               /* Abbreviated name. */
+                               len = strlen(_ctloc(abmon[i]));
+                               if (strncasecmp(_ctloc(abmon[i]), bp, len) == 0)
+                                       break;
+                       }
+
+                       /* Nothing matched. */
+                       if (i == 12)
+                               return (0);
+
+                       tm->tm_mon = i;
+                       bp += len;
+                       break;
+
+               case 'C':       /* The century number. */
+                       LEGAL_ALT(ALT_E);
+                       if (!(conv_num(&bp, &i, 0, 99)))
+                               return (0);
+
+                       if (split_year) {
+                               tm->tm_year = (tm->tm_year % 100) + (i * 100);
+                       } else {
+                               tm->tm_year = i * 100;
+                               split_year = 1;
+                       }
+                       break;
+
+               case 'd':       /* The day of month. */
+               case 'e':
+                       LEGAL_ALT(ALT_O);
+                       if (!(conv_num(&bp, &tm->tm_mday, 1, 31)))
+                               return (0);
+                       break;
+
+               case 'k':       /* The hour (24-hour clock representation). */
+                       LEGAL_ALT(0);
+                       /* FALLTHROUGH */
+               case 'H':
+                       LEGAL_ALT(ALT_O);
+                       if (!(conv_num(&bp, &tm->tm_hour, 0, 23)))
+                               return (0);
+                       break;
+
+               case 'l':       /* The hour (12-hour clock representation). */
+                       LEGAL_ALT(0);
+                       /* FALLTHROUGH */
+               case 'I':
+                       LEGAL_ALT(ALT_O);
+                       if (!(conv_num(&bp, &tm->tm_hour, 1, 12)))
+                               return (0);
+                       if (tm->tm_hour == 12)
+                               tm->tm_hour = 0;
+                       break;
+
+               case 'j':       /* The day of year. */
+                       LEGAL_ALT(0);
+                       if (!(conv_num(&bp, &i, 1, 366)))
+                               return (0);
+                       tm->tm_yday = i - 1;
+                       break;
+
+               case 'M':       /* The minute. */
+                       LEGAL_ALT(ALT_O);
+                       if (!(conv_num(&bp, &tm->tm_min, 0, 59)))
+                               return (0);
+                       break;
+
+               case 'm':       /* The month. */
+                       LEGAL_ALT(ALT_O);
+                       if (!(conv_num(&bp, &i, 1, 12)))
+                               return (0);
+                       tm->tm_mon = i - 1;
+                       break;
+
+               case 'p':       /* The locale's equivalent of AM/PM. */
+                       LEGAL_ALT(0);
+                       /* AM? */
+                       if (strcasecmp(_ctloc(am_pm[0]), bp) == 0) {
+                               if (tm->tm_hour > 11)
+                                       return (0);
+
+                               bp += strlen(_ctloc(am_pm[0]));
+                               break;
+                       }
+                       /* PM? */
+                       else if (strcasecmp(_ctloc(am_pm[1]), bp) == 0) {
+                               if (tm->tm_hour > 11)
+                                       return (0);
+
+                               tm->tm_hour += 12;
+                               bp += strlen(_ctloc(am_pm[1]));
+                               break;
+                       }
+
+                       /* Nothing matched. */
+                       return (0);
+
+               case 'S':       /* The seconds. */
+                       LEGAL_ALT(ALT_O);
+                       if (!(conv_num(&bp, &tm->tm_sec, 0, 61)))
+                               return (0);
+                       break;
+
+               case 'U':       /* The week of year, beginning on sunday. */
+               case 'W':       /* The week of year, beginning on monday. */
+                       LEGAL_ALT(ALT_O);
+                       /*
+                        * XXX This is bogus, as we can not assume any valid
+                        * information present in the tm structure at this
+                        * point to calculate a real value, so just check the
+                        * range for now.
+                        */
+                        if (!(conv_num(&bp, &i, 0, 53)))
+                               return (0);
+                        break;
+
+               case 'w':       /* The day of week, beginning on sunday. */
+                       LEGAL_ALT(ALT_O);
+                       if (!(conv_num(&bp, &tm->tm_wday, 0, 6)))
+                               return (0);
+                       break;
+
+               case 'Y':       /* The year. */
+                       LEGAL_ALT(ALT_E);
+                       if (!(conv_num(&bp, &i, 0, 9999)))
+                               return (0);
+
+                       tm->tm_year = i - TM_YEAR_BASE;
+                       break;
+
+               case 'y':       /* The year within 100 years of the epoch. */
+                       LEGAL_ALT(ALT_E | ALT_O);
+                       if (!(conv_num(&bp, &i, 0, 99)))
+                               return (0);
+
+                       if (split_year) {
+                               tm->tm_year = ((tm->tm_year / 100) * 100) + i;
+                               break;
+                       }
+                       split_year = 1;
+                       if (i <= 68)
+                               tm->tm_year = i + 2000 - TM_YEAR_BASE;
+                       else
+                               tm->tm_year = i + 1900 - TM_YEAR_BASE;
+                       break;
+
+               /*
+                * Miscellaneous conversions.
+                */
+               case 'n':       /* Any kind of white-space. */
+               case 't':
+                       LEGAL_ALT(0);
+                       while (isspace(*bp))
+                               bp++;
+                       break;
+
+
+               default:        /* Unknown/unsupported conversion. */
+                       return (0);
+               }
+
+
+       }
+
+       /* LINTED functional specification */
+       return ((char *)bp);
+}
+
+
+static int
+conv_num(buf, dest, llim, ulim)
+       const char **buf;
+       int *dest;
+       int llim, ulim;
+{
+       int result = 0;
+
+       /* The limit also determines the number of valid digits. */
+       int rulim = ulim;
+
+       if (**buf < '0' || **buf > '9')
+               return (0);
+
+       do {
+               result *= 10;
+               result += *(*buf)++ - '0';
+               rulim /= 10;
+       } while ((result * 10 <= ulim) && rulim && **buf >= '0' && **buf <= '9');
+
+       if (result < llim || result > ulim)
+               return (0);
+
+       *dest = result;
+       return (1);
+}
diff --git a/src/lib/krb5/krb/t_deltat.c b/src/lib/krb5/krb/t_deltat.c
new file mode 100644 (file)
index 0000000..fc09c57
--- /dev/null
@@ -0,0 +1,102 @@
+/*
+ * lib/krb5/krb/t_deltat.c
+ *
+ * Copyright 1999 by the Massachusetts Institute of Technology.
+ * All Rights Reserved.
+ *
+ * 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.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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 "k5-int.h"
+
+int
+main ()
+{
+    struct {
+       char *string;
+       krb5_deltat expected;
+       int is_error;
+#define GOOD(STR,VAL) { STR, VAL, 0 }
+#define BAD(STR) { STR, 0, 1 }
+#define DAY (24 * 3600)
+#define HOUR 3600
+#define MIN 60
+    } values[] = {
+       /* d-h-m-s patterns */
+       GOOD ("3d", 3*DAY),
+       GOOD ("3h", 3*HOUR),
+       GOOD ("3m", 3*MIN),
+       GOOD ("3s", 3),
+       BAD ("3dd"),
+       GOOD ("3d4m    42s", 3 * DAY + 4 * MIN + 42),
+       GOOD ("3d-1h", 3 * DAY - 1 * HOUR),
+       GOOD ("3d -1h", 3 * DAY - HOUR),
+       GOOD ("3d4h5m6s", 3 * DAY + 4 * HOUR + 5 * MIN + 6),
+       BAD ("3d4m5h"),
+       GOOD ("12345s", 12345),
+       GOOD ("1m 12345s", MIN + 12345),
+       GOOD ("1m12345s", MIN + 12345),
+       GOOD ("3d 0m", 3 * DAY),
+       GOOD ("3d 0m  ", 3 * DAY),
+       GOOD ("3d \n\t 0m  ", 3 * DAY),
+       /* colon patterns */
+       GOOD ("42-13:42:47", 42 * DAY + 13 * HOUR + 42 * MIN + 47),
+       BAD ("3: 4"),
+       BAD ("13:0003"),
+       GOOD ("12:34", 12 * HOUR + 34 * MIN),
+       GOOD ("1:02:03", 1 * HOUR + 2 * MIN + 3),
+       BAD ("3:-4"),
+       /* XX We might want to require exactly two digits after a colon?  */
+       GOOD ("3:4", 3 * HOUR + 4 * MIN),
+       /* misc */
+       BAD ("42"),
+       BAD ("1-2"),
+    };
+    int fail = 0;
+    int i;
+
+    for (i = 0; i < sizeof(values)/sizeof(values[0]); i++) {
+       krb5_deltat result;
+       krb5_error_code code;
+
+       code = krb5_string_to_deltat (values[i].string, &result);
+       if (code && !values[i].is_error) {
+           fprintf (stderr, "unexpected error for `%s'\n", values[i].string);
+           fail++;
+       } else if (!code && values[i].is_error) {
+           fprintf (stderr, "expected but didn't get error for `%s'\n",
+                    values[i].string);
+           fail++;
+       } else if (code && values[i].is_error) {
+           /* do nothing */
+       } else if (result != values[i].expected) {
+           fprintf (stderr, "got %ld instead of expected %ld for `%s'\n",
+                    (long) result, (long) values[i].expected,
+                    values[i].string);
+           fail++;
+       }
+    }
+    if (fail == 0)
+       printf ("Passed all %d tests.\n", i);
+    else
+       printf ("Failed %d of %d tests.\n", fail, i);
+    return fail;
+}
index 576a0e0e64d1d3f1a9b6d1413836d003df066586..9423944534ff08b22ed4d4c899234fc599896cc8 100644 (file)
@@ -12,6 +12,6 @@ parsed (and unparsed) principal(\/slash/\@atsign/octa\/thorpe@\/slash\@at\/sign)
 425_converted principal(rcmd, lithium, ATHENA.MIT.EDU): 'host/lithium.lcs.mit.edu@ATHENA.MIT.EDU'
 425_converted principal(rcmd, tweedledumb, CYGNUS.COM): 'host/tweedledumb.cygnus.com@CYGNUS.COM'
 425_converted principal(rcmd, uunet, UU.NET): 'host/uunet.uu.net@UU.NET'
-425_converted principal(zephyr, zephyr, ATHENA.MIT.EDU): 'zephyr/zephyr.mit.edu@ATHENA.MIT.EDU'
+425_converted principal(zephyr, zephyr, ATHENA.MIT.EDU): 'zephyr/zephyr@ATHENA.MIT.EDU'
 425_converted principal(kadmin, ATHENA.MIT.EDU, ATHENA.MIT.EDU): 'kadmin/ATHENA.MIT.EDU@ATHENA.MIT.EDU'
 old principal: marc@MIT.EDU, modified principal: marc@CYGNUS.COM
index 4ca3b5399ad3d9a1b26723d113662ecac39ac9f1..19cff73c565628f555646a1aac8b3e4c1f052f41 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
@@ -167,8 +170,10 @@ ser_data(verbose, msg, ctx, dtype)
                    krb5_encrypt_block *eblock;
 
                    eblock = (krb5_encrypt_block *) nctx;
+#if 0
                    if (eblock->priv && eblock->priv_size)
                        krb5_xfree(eblock->priv);
+#endif
                    if (eblock->key)
                        krb5_free_keyblock(ser_ctx, eblock->key);
                    krb5_xfree(eblock);
@@ -525,8 +530,10 @@ ser_eblock_test(kcontext, verbose)
     krb5_use_enctype(kcontext, &eblock, DEFAULT_KDC_ENCTYPE);
     if (!(kret = ser_data(verbose, "> NULL eblock",
                          (krb5_pointer) &eblock, KV5M_ENCRYPT_BLOCK))) {
+#if 0
        eblock.priv = (krb5_pointer) stuff;
        eblock.priv_size = 8;
+#endif
        if (!(kret = ser_data(verbose, "> eblock with private data",
                              (krb5_pointer) &eblock,
                              KV5M_ENCRYPT_BLOCK))) {
@@ -676,9 +683,11 @@ main(argc, argv)
        case 'C':
            do_ctest = 1;
            break;
+#if 0
        case 'E':
            do_etest = 1;
            break;
+#endif
        case 'K':
            do_ktest = 1;
            break;
@@ -737,12 +746,14 @@ main(argc, argv)
            if (kret)
                    goto fail;
     }
+#if 0 /* code to be tested is currently disabled */
     if (do_etest) {
            ch_err = 'e';
            kret = ser_eblock_test(kcontext, verbose);
            if (kret)
                    goto fail;
     }
+#endif
     if (do_ptest) {
            ch_err = 'p';
            kret = ser_princ_test(kcontext, verbose);
index 5db4d986d4e15ce93211f33fff3a693f4063164c..2f7168656c7849af82bdc36b0acefa9d5a91f45b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 1f0c79110f6b90e48f46d0d03a24db52d6807c45..f7df6ab7d4b3e0ca44aadfae01a052251d1776b8 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ed377d16be0c2f40486a17b4a97634d422e1e4ea..f5d2def5ee0f63f550f3f98e192e206f6211696f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f45dede3a099cb70cf7bf9f13aa4776f7be04ae8..833ec61141ee80afba2675e8a30f64876cae09c9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
diff --git a/src/lib/krb5/krb/x-deltat.y b/src/lib/krb5/krb/x-deltat.y
new file mode 100644 (file)
index 0000000..be53ce3
--- /dev/null
@@ -0,0 +1,168 @@
+/*
+ * lib/krb5/krb/deltat.y
+ *
+ * Copyright 1999 by the Massachusetts Institute of Technology.
+ * All Rights Reserved.
+ *
+ * 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.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
+ * 
+ *
+ * krb5_string_to_deltat()
+ */
+
+/* For a clean, thread-safe interface, we must use the "pure parser"
+   facility of GNU Bison.  Unfortunately, standard YACC has no such
+   option.  */
+
+/* N.B.: For simplicity in dealing with the distribution, the
+   Makefile.in listing for deltat.c does *not* normally list this
+   file.  If you change this file, tweak the Makefile so it'll rebuild
+   deltat.c, or do it manually.  */
+%{
+
+#include <ctype.h>
+#include <errno.h>
+#include "k5-int.h"
+
+struct param {
+    krb5_deltat delta;
+    char *p;
+};
+
+#define YYPARSE_PARAM tmv
+
+#define DO(D,H,M,S) \
+ { \
+     ((struct param *)tmv)->delta = (((D * 24) + H) * 60 + M) * 60 + S; \
+ }
+
+static int mylex (int *, char **);
+#define YYLEX_PARAM (&((struct param *)tmv)->p)
+#undef yylex
+#define yylex(U, P)    mylex (&(U)->val, (P))
+
+#undef yyerror
+#define yyerror(MSG)
+
+static int yyparse (void *);
+
+%}
+
+%pure_parser
+
+%union { int val; }
+
+%token <val> NUM LONGNUM
+%token '-' ':' 'd' 'h' 'm' 's' WS
+
+%type <val> num opt_hms opt_ms opt_s wsnum posnum
+
+%start start
+
+%%
+
+start: deltat ;
+posnum: NUM | LONGNUM ;
+num: posnum | '-' posnum { $$ = - $2; } ;
+ws: /* nothing */ | WS ;
+wsnum: ws num { $$ = $2; };
+deltat:
+         wsnum 'd' opt_hms                     { DO ($1,  0,  0, $3); }
+       | wsnum 'h' opt_ms                      { DO ( 0, $1,  0, $3); }
+       | wsnum 'm' opt_s                       { DO ( 0,  0, $1, $3); }
+       | wsnum 's'                             { DO ( 0,  0,  0, $1); }
+       | wsnum '-' NUM ':' NUM ':' NUM         { DO ($1, $3, $5, $7); }
+       | wsnum ':' NUM ':' NUM                 { DO ( 0, $1, $3, $5); }
+       | wsnum ':' NUM                         { DO ( 0, $1, $3,  0); }
+       ;
+
+opt_hms:
+         opt_ms
+       | wsnum 'h' opt_ms                      { $$ = $1 * 3600 + $3; };
+opt_ms:
+         opt_s
+       | wsnum 'm' opt_s                       { $$ = $1 * 60 + $3; };
+opt_s:
+         ws                                    { $$ = 0; }
+       | wsnum 's' ;
+
+%%
+
+static int
+mylex (int *intp, char **pp)
+{
+    int num, c;
+#define P (*pp)
+    char *orig_p = P;
+
+#ifdef isascii
+    if (!isascii (*P))
+       return 0;
+#endif
+    switch (c = *P++) {
+    case '-':
+    case ':':
+    case 'd':
+    case 'h':
+    case 'm':
+    case 's':
+       return c;
+    case '0':
+    case '1':
+    case '2':
+    case '3':
+    case '4':
+    case '5':
+    case '6':
+    case '7':
+    case '8':
+    case '9':
+       /* XXX assumes ASCII */
+       num = c - '0';
+       while (isdigit (*P)) {
+           num *= 10;
+           num += *P++ - '0';
+       }
+       *intp = num;
+       return (P - orig_p > 2) ? LONGNUM : NUM;
+    case ' ':
+    case '\t':
+    case '\n':
+       while (isspace (*P))
+           P++;
+       return WS;
+    default:
+       return YYEOF;
+    }
+}
+
+KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
+krb5_string_to_deltat(string, deltatp)
+    char       FAR * string;
+    krb5_deltat        FAR * deltatp;
+{
+    struct param p;
+    p.delta = 0;
+    p.p = string;
+    if (yyparse (&p))
+       return EINVAL;
+    *deltatp = p.delta;
+    return 0;
+}
index 1cd8f2cbe3d0841e41fbab54409e18adb81488c4..957aadb77e95bfcdc5049133ed238666319265cd 100644 (file)
@@ -1,3 +1,108 @@
+2000-04-28  Nalin Dahyabhai  <nalin@redhat.com>
+
+       * kuserok.c (krb5_kuserok): Don't overflow buffer "pbuf".
+
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * changepw.c: Define ETIMEDOUT for Windows.
+
+1999-12-01  Ken Raeburn  <raeburn@mit.edu>
+
+       * init_os_ctx.c (krb5_secure_config_files): Do define; always
+       return an error, but perform old functionality in case the error
+       is ignored.  Delete when we can make a major version number
+       change.
+
+1999-11-23  Ken Raeburn  <raeburn@mit.edu>
+
+       * an_to_ln.c (default_an_to_ln): Avoid stomping byte after
+       supplied buffer.  Thanks to Matt Crawford.
+
+       * init_os_ctx.c (os_init_paths): Delete SECURE argument; read the
+       value from the profile structure instead.
+       (krb5_os_init_context, krb5_get_profile): Don't pass SECURE
+       argument.
+       (os_init_paths, krb5_get_profile): Cast first arg to
+       profile_init.
+       (krb5_secure_config_files): Don't define.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-10-22  Ken Raeburn  <raeburn@mit.edu>
+
+       * changepw.c (krb5_change_password): Wait only two minutes, not
+       indefinitely, for a response from the kpasswd server.
+
+1999-09-21  Ken Raeburn  <raeburn@mit.edu>
+
+       * changepw.c: Changes from Jeffrey Altman to look up kpasswd
+       server using DNS.  Placed entirely under #ifdef KRB5_DNS_LOOKUP so
+       currently-MIT-supported functionality (i.e., no DNS) can't be
+       impacted; without KRB5_DNS_LOOKUP defined, old code is used
+       unchanged.
+       (krb5_locate_kpasswd): New function, split out from
+       krb5_change_password.  Calls krb5_locate_srv_dns if use of DNS is
+       desired, and krb5_locate_srv_conf to check config file.
+       (krb5_change_password): Call it to find the server.
+       * locate_kdc.c (krb5_locate_srv_conf): No longer static.  Choose
+       default port numbers based on service name rather than a single
+       hard-coded value.
+       (krb5_locate_srv_dns): No longer static.
+
+1999-09-17  Tom Yu  <tlyu@mit.edu>
+
+       * def_realm.c: Patch from jaltman@columbia.edu to allow compiling
+       under non-Windows platforms with DNS lookup enabled.
+
+1999-08-26  Danilo Almeida  <dalmeida@mit.edu>
+
+       * kuserok.c (krb5_kuserok): Fix improper negation in
+       non-Unix localname check.  Also fix calling convention
+       before this function is exported by the Windows DLL.
+
+       * localaddr.c (krb5_os_localaddr): Fix memset to clear
+       right address list.  (Thanks to jaltman@columbia.edu).
+
+1999-08-21  Danilo Almeida  <dalmeida@mit.edu>
+
+       * localaddr.c (krb5_os_localaddr): Use multiple addresses, if
+       present, on Mac and Windows.
+
+1999-08-17  Ken Raeburn  <raeburn@mit.edu>
+
+       * get_krbhst.c (krb5_get_krbhst): Fix double-indirection
+       confusion.  Do actually copy string contents to newly allocated
+       storage.
+
+1999-08-10     Alexandra Ellwood       <lxs@mit.edu>
+
+       * changepw.c (krb5_change_password):
+               Reorganized code so that krb5_change_password actually frees
+               everything it allocated on error.  Also fixed some memory 
+               leaks which happened even without an error occurring.
+
+1999-08-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * prompter.c (krb5_prompter_posix): Provide Win32 implementation
+       so that kinit and such work under Win32.
+
+1999-08-06  Danilo Almeida  <dalmeida@mit.edu>
+
+       * def_realm.c (krb5_get_default_realm): 
+       * hst_realm.c (krb5_get_host_realm): Make sure we have FQDN
+       in the case where we use gethostname.
+
+       * def_realm.c (krb5_get_default_realm): Check that we have
+       a realm before trying to copy it (since profile_get_string
+       may return no error but not get anything).
+
+       * init_os_ctx.c (krb5_get_profile): Fix calling convention.
+
 1999-08-05  Danilo Almeida  <dalmeida@mit.edu>
 
        * t_std_conf.c (test_get_krbhst): Use krb5_free_krbhst to
index 21758dc280c647b86213776c849d86d79cbd5b7e..09df5a13d0b7f1c7f14ed837b6efccb75904fdda 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/krb5/os
 mydir=os
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 KRB5_RUN_ENV = @KRB5_RUN_ENV@
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
index 39528d27288bf203780bc90433c50f2d545b6302..3c721fb879356eb4af3c84a83b96517789c74d6c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -627,7 +630,7 @@ default_an_to_ln(context, aname, lnsize, lname)
     free(def_realm);
     strncpy(lname, krb5_princ_component(context, aname,0)->data, 
            min(krb5_princ_component(context, aname,0)->length,lnsize));
-    if (lnsize < krb5_princ_component(context, aname,0)->length ) {
+    if (lnsize <= krb5_princ_component(context, aname,0)->length ) {
        retval = KRB5_CONFIG_NOTENUFSPACE;
     } else {
        lname[krb5_princ_component(context, aname,0)->length] = '\0';
index 0ba0a6b2f9e05441277caa6df9ccbaf4879b616e..5f735871a59845d718cf8a3ceff4d332f98e94fd 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 11713e724787bc371d798b4a20a44e32aba782a7..b6eb4aea0c26360c666034b9d159e117ff6f2003 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 779fc89a8c23e1bd19414bea966aaeaac8f7775e..2e3f4460164d9c372d1e1c1511e4e537298488ae 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lib/krb5/os/changepw.c
  *
- * Copyright 1990 by the Massachusetts Institute of Technology.
+ * Copyright 1990,1999 by the Massachusetts Institute of Technology.
  * All Rights Reserved.
  *
  * Export of this software from the United States of America may
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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 EHOSTUNREACH
 #define EHOSTUNREACH WSAEHOSTUNREACH
 #endif
+#ifndef ETIMEDOUT
+#define ETIMEDOUT WSAETIMEDOUT
+#endif
 #endif /* _WIN32 && !__CYGWIN32__ */
 
+#ifdef KRB5_DNS_LOOKUP /* pbh says we can wrap this last-minute
+                         addition and ignore testing it since it's
+                         not part of what mit officially supports in
+                         this release */
+
+/*
+ * Wrapper function for the two backends
+ */
+
+krb5_error_code 
+krb5_locate_srv_conf(context, realm, name, addr_pp, naddrs, master_index, nmasters);
+#ifdef KRB5_DNS_LOOKUP
+krb5_error_code krb5_locate_srv_dns(realm, service, protocol, addr_pp, naddrs);
+#endif
+
+static krb5_error_code
+krb5_locate_kpasswd(context, realm, addr_pp, naddrs, master_index, nmasters)
+    krb5_context context;
+    const krb5_data *realm;
+    struct sockaddr **addr_pp;
+    int *naddrs;
+    int *master_index;
+    int *nmasters;
+{
+    krb5_error_code code;
+#ifdef KRB5_DNS_LOOKUP
+    struct sockaddr *admin_addr_p, *kdc_addr_p;
+    int nadmin_addrs, nkdc_addrs;
+    int i,j;
+#endif /* KRB5_DNS_LOOKUP */
+
+    /*
+     * We always try the local file first
+     */
+
+    code = krb5_locate_srv_conf(context, realm, "kpasswd_server", addr_pp, naddrs,
+                                 master_index, nmasters);
+    if (code) {
+        code = krb5_locate_srv_conf(context, realm, "admin_server", addr_pp, naddrs,
+                                     master_index, nmasters);
+        if ( !code ) {
+            /* success with admin_server but now we need to change the port */
+            /* number to use DEFAULT_KPASSWD_PORT.                          */
+            for ( i=0;i<*naddrs;i++ ) {
+                struct sockaddr_in *sin = (struct sockaddr_in *) &addr_pp[i];
+                sin->sin_port = htons(DEFAULT_KPASSWD_PORT);
+            }
+        }
+    }
+
+#ifdef KRB5_DNS_LOOKUP
+    if (code) {
+        int use_dns = _krb5_use_dns(context);
+        if ( use_dns ) {
+            code = krb5_locate_srv_dns(realm, "_kpasswd", "_udp",
+                                        addr_pp, naddrs);
+            if ( code ) {
+                code = krb5_locate_srv_dns(realm, 
+                                            "_kerberos-adm", 
+                                            "_tcp",
+                                            addr_pp, naddrs);
+                if ( !code ) {
+                    /* success with admin_server but now we need to change the port */
+                    /* number to use DEFAULT_KPASSWD_PORT.                          */
+                    for ( i=0;i<*naddrs;i++ ) {
+                        struct sockaddr_in *sin = (struct sockaddr_in *) &(*addr_pp)[i];
+                        sin->sin_port = htons(DEFAULT_KPASSWD_PORT);
+                    }
+                }
+            }
+            if ( !code && master_index && nmasters ) {
+                *master_index = 1;
+                *nmasters = *naddrs;
+            }
+        }
+    }
+#endif /* KRB5_DNS_LOOKUP */
+    return (code);
+}
+
+
+KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
+krb5_change_password(context, creds, newpw, result_code,
+                    result_code_string, result_string)
+    krb5_context context;
+    krb5_creds *creds;
+    char *newpw;
+    int *result_code;
+    krb5_data *result_code_string;
+    krb5_data *result_string;
+{
+    krb5_auth_context auth_context;
+    krb5_data ap_req, chpw_req, chpw_rep;
+    krb5_address local_kaddr, remote_kaddr;
+    char *code_string;
+    krb5_error_code code = 0;
+    int i, addrlen;
+    struct sockaddr *addr_p, local_addr, remote_addr, tmp_addr;
+    int naddr_p;
+    int cc, local_result_code, tmp_len;
+    SOCKET s1 = INVALID_SOCKET, s2 = INVALID_SOCKET;
+
+
+    /* Initialize values so that cleanup call can safely check for NULL */
+    auth_context = NULL;
+    addr_p = NULL;
+    memset(&chpw_req, 0, sizeof(krb5_data));
+    memset(&chpw_rep, 0, sizeof(krb5_data));
+    memset(&ap_req, 0, sizeof(krb5_data));
+    
+    /* initialize auth_context so that we know we have to free it */
+    if ((code = krb5_auth_con_init(context, &auth_context)))
+         goto cleanup;
+    
+    if (code = krb5_mk_req_extended(context, &auth_context, AP_OPTS_USE_SUBKEY,
+                                   NULL, creds, &ap_req))
+         goto cleanup;
+
+    if (code = krb5_locate_kpasswd(context, 
+                                    krb5_princ_realm(context, creds->client), 
+                                    &addr_p, &naddr_p,NULL,NULL))
+        goto cleanup;
+
+    /* this is really obscure.  s1 is used for all communications.  it
+       is left unconnected in case the server is multihomed and routes
+       are asymmetric.  s2 is connected to resolve routes and get
+       addresses.  this is the *only* way to get proper addresses for
+       multihomed hosts if routing is asymmetric.  
+
+       A related problem in the server, but not the client, is that
+       many os's have no way to disconnect a connected udp socket, so
+       the s2 socket needs to be closed and recreated for each
+       request.  The s1 socket must not be closed, or else queued
+       requests will be lost.
+
+       A "naive" client implementation (one socket, no connect,
+       hostname resolution to get the local ip addr) will work and
+       interoperate if the client is single-homed. */
+
+    if ((s1 = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET) 
+      {
+           code = SOCKET_ERRNO;
+           goto cleanup;
+      }
+
+    if ((s2 = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)
+      {
+           code = SOCKET_ERRNO;
+           goto cleanup;
+      }
+
+    for (i=0; i<naddr_p; i++) 
+      {
+               fd_set fdset;
+               struct timeval timeout;
+
+               if (connect(s2, &addr_p[i], sizeof(addr_p[i])) == SOCKET_ERROR) 
+                 {
+                   if ((SOCKET_ERRNO == ECONNREFUSED) || (SOCKET_ERRNO == EHOSTUNREACH))
+                         continue; /* try the next addr */
+                   
+                   code = SOCKET_ERRNO;
+                   goto cleanup;
+                 }
+      
+        addrlen = sizeof(local_addr);
+
+               if (getsockname(s2, &local_addr, &addrlen) < 0) 
+                 {
+                   if ((SOCKET_ERRNO == ECONNREFUSED) || (SOCKET_ERRNO == EHOSTUNREACH))
+                         continue; /* try the next addr */
+                   
+                   code = SOCKET_ERRNO;
+                       goto cleanup;
+                 }
+
+               /* some brain-dead OS's don't return useful information from
+                * the getsockname call.  Namely, windows and solaris.  */
+
+               if (((struct sockaddr_in *)&local_addr)->sin_addr.s_addr != 0) 
+                 {
+                   local_kaddr.addrtype = ADDRTYPE_INET;
+                   local_kaddr.length = sizeof(((struct sockaddr_in *) &local_addr)->sin_addr);
+                   local_kaddr.contents = (krb5_octet *) &(((struct sockaddr_in *) &local_addr)->sin_addr);
+                 } 
+               else 
+                 {
+                   krb5_address **addrs;
+
+                   krb5_os_localaddr(context, &addrs);
+                   
+                   local_kaddr.magic = addrs[0]->magic;
+                   local_kaddr.addrtype = addrs[0]->addrtype;
+                   local_kaddr.length = addrs[0]->length;
+                   local_kaddr.contents = malloc(addrs[0]->length);
+                   memcpy(local_kaddr.contents, addrs[0]->contents, addrs[0]->length);
+
+                   krb5_free_addresses(context, addrs);
+                 }
+
+               addrlen = sizeof(remote_addr);
+               if (getpeername(s2, &remote_addr, &addrlen) < 0) 
+                 {
+                   if ((SOCKET_ERRNO == ECONNREFUSED) || (SOCKET_ERRNO == EHOSTUNREACH))
+                         continue; /* try the next addr */
+                   
+                   code = SOCKET_ERRNO;
+                       goto cleanup;
+                 }
+
+               remote_kaddr.addrtype = ADDRTYPE_INET;
+               remote_kaddr.length = sizeof(((struct sockaddr_in *) &remote_addr)->sin_addr);
+               remote_kaddr.contents = (krb5_octet *) &(((struct sockaddr_in *) &remote_addr)->sin_addr);
+
+               /* mk_priv requires that the local address be set.
+                 getsockname is used for this.  rd_priv requires that the
+                 remote address be set.  recvfrom is used for this.  If
+                 rd_priv is given a local address, and the message has the
+                 recipient addr in it, this will be checked.  However, there
+                 is simply no way to know ahead of time what address the
+                 message will be delivered *to*.  Therefore, it is important
+                 that either no recipient address is in the messages when
+                 mk_priv is called, or that no local address is passed to
+                 rd_priv.  Both is a better idea, and I have done that.  In
+                 summary, when mk_priv is called, *only* a local address is
+                 specified.  when rd_priv is called, *only* a remote address
+                 is specified.  Are we having fun yet?  */
+
+               if (code = krb5_auth_con_setaddrs(context, auth_context, &local_kaddr, NULL)) 
+                 {
+                   code = SOCKET_ERRNO;
+                       goto cleanup;
+                 }
+
+               if (code = krb5_mk_chpw_req(context, auth_context, &ap_req, newpw, &chpw_req)) 
+                 {
+                   code = SOCKET_ERRNO;
+                       goto cleanup;
+                 }
+
+               if ((cc = sendto(s1, chpw_req.data, chpw_req.length, 0, 
+                                (struct sockaddr *) &addr_p[i], 
+                                sizeof(addr_p[i]))) != chpw_req.length) 
+                 {
+                   if ((cc < 0) && ((SOCKET_ERRNO == ECONNREFUSED) ||
+                                    (SOCKET_ERRNO == EHOSTUNREACH)))
+                         continue; /* try the next addr */
+                   
+                   code = (cc < 0) ? SOCKET_ERRNO : ECONNABORTED;
+                       goto cleanup;
+                 }
+
+               chpw_rep.length = 1500;
+               chpw_rep.data = (char *) malloc(chpw_rep.length);
+
+               /* XXX need a timeout/retry loop here */
+               FD_ZERO (&fdset);
+               FD_SET (s1, &fdset);
+               timeout.tv_sec = 120;
+               timeout.tv_usec = 0;
+               switch (select (s1 + 1, &fdset, 0, 0, &timeout)) {
+               case -1:
+                   code = SOCKET_ERRNO;
+                   goto cleanup;
+               case 0:
+                   code = ETIMEDOUT;
+                   goto cleanup;
+               default:
+                   /* fall through */
+                   ;
+               }
+
+               /* "recv" would be good enough here... except that Windows/NT
+                  commits the atrocity of returning -1 to indicate failure,
+                  but leaving errno set to 0.
+                  
+                  "recvfrom(...,NULL,NULL)" would seem to be a good enough
+                  alternative, and it works on NT, but it doesn't work on
+                  SunOS 4.1.4 or Irix 5.3.  Thus we must actually accept the
+                  value and discard it. */
+               tmp_len = sizeof(tmp_addr);
+               if ((cc = recvfrom(s1, chpw_rep.data, chpw_rep.length, 0, &tmp_addr, &tmp_len)) < 0) 
+                 {
+                   code = SOCKET_ERRNO;
+                   goto cleanup;
+                 }
+
+               closesocket(s1);
+               s1 = INVALID_SOCKET;
+               closesocket(s2);
+               s2 = INVALID_SOCKET;
+
+               chpw_rep.length = cc;
+
+               if (code = krb5_auth_con_setaddrs(context, auth_context, NULL, &remote_kaddr)) 
+                 goto cleanup;
+
+               if(code = krb5_rd_chpw_rep(context, auth_context, &chpw_rep,
+                                       &local_result_code, result_string))
+                 goto cleanup;
+
+               if (result_code)
+                 *result_code = local_result_code;
+
+               if (result_code_string) 
+                 {
+                   if (code = krb5_chpw_result_code_string(context, local_result_code,
+                                                           &code_string))
+                         goto cleanup;
+
+                   result_code_string->length = strlen(code_string);
+                   if ((result_code_string->data =
+                           (char *) malloc(result_code_string->length)) == NULL)
+                         return(ENOMEM);
+                   strncpy(result_code_string->data, code_string, result_code_string->length);
+                 }
+
+               code = 0;
+               goto cleanup;
+      }
+
+    code = SOCKET_ERRNO;
+    
+cleanup:
+    if(auth_context != NULL)
+      krb5_auth_con_free(context, auth_context);
+    
+    if(addr_p != NULL)
+      krb5_xfree(addr_p);
+    
+    if(s1 != INVALID_SOCKET)
+      closesocket(s1);
+    
+    if(s2 != INVALID_SOCKET)
+      closesocket(s2);
+      
+    krb5_free_data_contents(context, &chpw_req);
+    krb5_free_data_contents(context, &chpw_rep);
+       krb5_free_data_contents(context, &ap_req);
+    
+    return(code);
+}
+
+#else /* big KRB5_DNS_LOOKUP wrapper */
+
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
 krb5_change_password(context, creds, newpw, result_code,
                     result_code_string, result_string)
@@ -57,8 +408,8 @@ krb5_change_password(context, creds, newpw, result_code,
     krb5_address local_kaddr, remote_kaddr;
     const char *realm_kdc_names[4];
     int default_port;
-    char **hostlist, *host, *port, *cp, *code_string;
-    krb5_error_code code;
+    char **hostlist, *host, *tmphost, *port, *cp, *code_string;
+    krb5_error_code code = 0;
     int i, j, out, count, addrlen;
     struct sockaddr *addr_p, local_addr, remote_addr, tmp_addr;
     struct sockaddr_in *sin_p;
@@ -68,17 +419,30 @@ krb5_change_password(context, creds, newpw, result_code,
     u_short udpport = htons(KRB5_DEFAULT_PORT);
 #endif
     int cc, local_result_code, tmp_len;
-    SOCKET s1, s2;
+    SOCKET s1 = INVALID_SOCKET, s2 = INVALID_SOCKET;
 
+    /* Initialize values so that cleanup call can safely check for NULL */
     auth_context = NULL;
-
+    addr_p = NULL;
+    host = NULL;
+    hostlist = NULL;
+    memset(&chpw_req, 0, sizeof(krb5_data));
+    memset(&chpw_rep, 0, sizeof(krb5_data));
+    memset(&ap_req, 0, sizeof(krb5_data));
+    
+    /* initialize auth_context so that we know we have to free it */
+    if ((code = krb5_auth_con_init(context, &auth_context)))
+         goto cleanup;
+    
     if (code = krb5_mk_req_extended(context, &auth_context, AP_OPTS_USE_SUBKEY,
                                    NULL, creds, &ap_req))
-       return(code);
+         goto cleanup;
 
-    if ((host = malloc(krb5_princ_realm(context, creds->client)->length + 1))
-       == NULL) 
-       return ENOMEM;
+    if ((host = malloc(krb5_princ_realm(context, creds->client)->length + 1)) == NULL) 
+         {
+           code = ENOMEM;
+           goto cleanup;
+         }
 
     strncpy(host, krb5_princ_realm(context, creds->client)->data,
            krb5_princ_realm(context, creds->client)->length);
@@ -94,23 +458,27 @@ krb5_change_password(context, creds, newpw, result_code,
 
     code = profile_get_values(context->profile, realm_kdc_names, &hostlist);
 
-    if (code == PROF_NO_RELATION) {
-       realm_kdc_names[2] = "admin_server";
-
-       default_port = 1;
-
-       code = profile_get_values(context->profile, realm_kdc_names,
-                                 &hostlist);
-    }
-
-    krb5_xfree(host);
+    if (code == PROF_NO_RELATION) 
+      {
+        realm_kdc_names[2] = "admin_server";
+        default_port = 1;
+        code = profile_get_values(context->profile, realm_kdc_names, &hostlist);
+      }
 
     if (code == PROF_NO_SECTION)
-       return KRB5_REALM_UNKNOWN;
-    else if (code == PROF_NO_RELATION)
-       return KRB5_CONFIG_BADFORMAT;
-    else if (code)
-       return code;
+      {
+        code = KRB5_REALM_UNKNOWN;
+        goto cleanup;
+      }
+    else 
+      if (code == PROF_NO_RELATION)
+        {
+          code = KRB5_CONFIG_BADFORMAT;
+          goto cleanup;
+        }
+      else 
+        if (code)
+          goto cleanup;
 
 #ifdef HAVE_NETINET_IN_H
     /* XXX should look for "kpasswd" in /etc/services */
@@ -122,28 +490,34 @@ krb5_change_password(context, creds, newpw, result_code,
            count++;
     
     if (count == 0)
-       /* XXX */
-       return(KADM_NO_HOST);
+      {
+        /* XXX */
+        code = KADM_NO_HOST;
+        goto cleanup;
+      }
     
     addr_p = (struct sockaddr *) malloc(sizeof(struct sockaddr) * count);
     if (addr_p == NULL)
-        return ENOMEM;
+      {
+        code = ENOMEM;
+        goto cleanup;
+      }
 
-    host = hostlist[0];
+    tmphost = hostlist[0];
     out = 0;
 
     /*
      * Strip off excess whitespace
      */
-    cp = strchr(host, ' ');
+    cp = strchr(tmphost, ' ');
     if (cp)
-       *cp = 0;
-    cp = strchr(host, '\t');
+      *cp = 0;
+    cp = strchr(tmphost, '\t');
     if (cp)
-       *cp = 0;
-    port = strchr(host, ':');
+      *cp = 0;
+    port = strchr(tmphost, ':');
     if (port) {
-       *port = 0;
+      *port = 0;
        port++;
        /* if the admin_server line was used, ignore the specified
            port */
@@ -152,40 +526,46 @@ krb5_change_password(context, creds, newpw, result_code,
     }
     hp = gethostbyname(hostlist[0]);
 
-    if (hp != 0) {
-       switch (hp->h_addrtype) {
+    if (hp != 0) 
+      {
+        switch (hp->h_addrtype) 
+          {
 #ifdef HAVE_NETINET_IN_H
-       case AF_INET:
-           for (j=0; hp->h_addr_list[j]; j++) {
-               sin_p = (struct sockaddr_in *) &addr_p[out++];
-               memset ((char *)sin_p, 0, sizeof(struct sockaddr));
-               sin_p->sin_family = hp->h_addrtype;
-               sin_p->sin_port = port ? htons(atoi(port)) : udpport;
-               memcpy((char *)&sin_p->sin_addr,
-                      (char *)hp->h_addr_list[j],
-                      sizeof(struct in_addr));
-               if (out+1 >= count) {
-                   count += 5;
-                   addr_p = (struct sockaddr *)
-                       realloc ((char *)addr_p,
-                                sizeof(struct sockaddr) * count);
-                   if (addr_p == NULL)
-                       return ENOMEM;
-               }
-           }
-           break;
+          case AF_INET:
+            for (j=0; hp->h_addr_list[j]; j++) 
+              {
+                sin_p = (struct sockaddr_in *) &addr_p[out++];
+                memset ((char *)sin_p, 0, sizeof(struct sockaddr));
+                sin_p->sin_family = hp->h_addrtype;
+                sin_p->sin_port = port ? htons(atoi(port)) : udpport;
+                memcpy((char *)&sin_p->sin_addr,
+                       (char *)hp->h_addr_list[j],
+                       sizeof(struct in_addr));
+                if (out+1 >= count) 
+                  {
+                    count += 5;
+                    addr_p = (struct sockaddr *)
+                    realloc ((char *)addr_p, sizeof(struct sockaddr) * count);
+                    if (addr_p == NULL)
+                      {
+                        code = ENOMEM;
+                        goto cleanup;
+                      }
+                  }
+                }
+              break;
 #endif
-       default:
-           break;
-       }
-    }
-
-    profile_free_list(hostlist);
-
-    if (out == 0) {     /* Couldn't resolve any KDC names */
-        free (addr_p);
-        return(KADM_NO_HOST);
-    }
+          default:
+            break;
+        }
+      }
+
+    if (out == 0) 
+      {     
+        /* Couldn't resolve any KDC names */
+        code = KADM_NO_HOST;
+        goto cleanup;
+      }
 
     /* this is really obscure.  s1 is used for all communications.  it
        is left unconnected in case the server is multihomed and routes
@@ -203,187 +583,215 @@ krb5_change_password(context, creds, newpw, result_code,
        hostname resolution to get the local ip addr) will work and
        interoperate if the client is single-homed. */
 
-    if ((s1 = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET) {
-       free(addr_p);
-       return(SOCKET_ERRNO);
-    }
-
-    if ((s2 = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET) {
-       free(addr_p);
-       return(SOCKET_ERRNO);
-    }
-
-    for (i=0; i<out; i++) {
-       if (connect(s2, &addr_p[i], sizeof(addr_p[i])) == SOCKET_ERROR) {
-           if ((cc < 0) && ((SOCKET_ERRNO == ECONNREFUSED) ||
-                            (SOCKET_ERRNO == EHOSTUNREACH)))
-               continue; /* try the next addr */
-           free(addr_p);
-           closesocket(s1);
-           closesocket(s2);
-           return(SOCKET_ERRNO);
-       }
-
-       addrlen = sizeof(local_addr);
-
-       if (getsockname(s2, &local_addr, &addrlen) < 0) {
-           if ((SOCKET_ERRNO == ECONNREFUSED) ||
-               (SOCKET_ERRNO == EHOSTUNREACH))
-               continue; /* try the next addr */
-           free(addr_p);
-           closesocket(s1);
-           closesocket(s2);
-           return(SOCKET_ERRNO);
-       }
-
-       /* some brain-dead OS's don't return useful information from
-        * the getsockname call.  Namely, windows and solaris.  */
-
-       if (((struct sockaddr_in *)&local_addr)->sin_addr.s_addr != 0) {
-           local_kaddr.addrtype = ADDRTYPE_INET;
-           local_kaddr.length =
-             sizeof(((struct sockaddr_in *) &local_addr)->sin_addr);
-           local_kaddr.contents = 
-             (krb5_octet *) &(((struct sockaddr_in *) &local_addr)->sin_addr);
-       } else {
-           krb5_address **addrs;
-
-           krb5_os_localaddr(context, &addrs);
-           local_kaddr.magic = addrs[0]->magic;
-           local_kaddr.addrtype = addrs[0]->addrtype;
-           local_kaddr.length = addrs[0]->length;
-           local_kaddr.contents = malloc(addrs[0]->length);
-           memcpy(local_kaddr.contents, addrs[0]->contents, addrs[0]->length);
-
-           krb5_free_addresses(context, addrs);
-       }
-
-       addrlen = sizeof(remote_addr);
-       if (getpeername(s2, &remote_addr, &addrlen) < 0) {
-           if ((SOCKET_ERRNO == ECONNREFUSED) ||
-               (SOCKET_ERRNO == EHOSTUNREACH))
-               continue; /* try the next addr */
-           free(addr_p);
-           closesocket(s1);
-           closesocket(s2);
-           return(SOCKET_ERRNO);
-       }
-
-       remote_kaddr.addrtype = ADDRTYPE_INET;
-       remote_kaddr.length =
-           sizeof(((struct sockaddr_in *) &remote_addr)->sin_addr);
-       remote_kaddr.contents = 
-           (krb5_octet *) &(((struct sockaddr_in *) &remote_addr)->sin_addr);
-
-       /* mk_priv requires that the local address be set.
-         getsockname is used for this.  rd_priv requires that the
-         remote address be set.  recvfrom is used for this.  If
-         rd_priv is given a local address, and the message has the
-         recipient addr in it, this will be checked.  However, there
-         is simply no way to know ahead of time what address the
-         message will be delivered *to*.  Therefore, it is important
-         that either no recipient address is in the messages when
-         mk_priv is called, or that no local address is passed to
-         rd_priv.  Both is a better idea, and I have done that.  In
-         summary, when mk_priv is called, *only* a local address is
-         specified.  when rd_priv is called, *only* a remote address
-         is specified.  Are we having fun yet?  */
-
-       if (code = krb5_auth_con_setaddrs(context, auth_context, &local_kaddr,
-                                         NULL)) {
-           free(addr_p);
-           closesocket(s1);
-           closesocket(s2);
-           return(code);
-       }
-
-       if (code = krb5_mk_chpw_req(context, auth_context, &ap_req,
-                                   newpw, &chpw_req)) {
-           free(addr_p);
-           closesocket(s1);
-           closesocket(s2);
-           return(code);
-       }
-
-       if ((cc = sendto(s1, chpw_req.data, chpw_req.length, 0,
-                        (struct sockaddr *) &addr_p[i],
-                        sizeof(addr_p[i]))) !=
-           chpw_req.length) {
-           if ((cc < 0) && ((SOCKET_ERRNO == ECONNREFUSED) ||
-                            (SOCKET_ERRNO == EHOSTUNREACH)))
-               continue; /* try the next addr */
-           free(addr_p);
-           closesocket(s1);
-           closesocket(s2);
-           return((cc < 0)?SOCKET_ERRNO:ECONNABORTED);
-       }
-
-       krb5_xfree(chpw_req.data);
-
-       chpw_rep.length = 1500;
-       chpw_rep.data = (char *) malloc(chpw_rep.length);
-
-       /* XXX need a timeout/retry loop here */
-
-       /* "recv" would be good enough here... except that Windows/NT
-          commits the atrocity of returning -1 to indicate failure,
-          but leaving errno set to 0.
-          
-          "recvfrom(...,NULL,NULL)" would seem to be a good enough
-          alternative, and it works on NT, but it doesn't work on
-          SunOS 4.1.4 or Irix 5.3.  Thus we must actually accept the
-          value and discard it. */
-       tmp_len = sizeof(tmp_addr);
-       if ((cc = recvfrom(s1, chpw_rep.data, chpw_rep.length, 0, &tmp_addr, &tmp_len)) < 0) {
-           free(addr_p);
-           closesocket(s1);
-           closesocket(s2);
-           return(SOCKET_ERRNO);
-       }
-
-       closesocket(s1);
-       closesocket(s2);
-
-       chpw_rep.length = cc;
-
-       if (code = krb5_auth_con_setaddrs(context, auth_context, NULL,
-                                         &remote_kaddr)) {
-           free(addr_p);
-           closesocket(s1);
-           closesocket(s2);
-           return(code);
-       }
-
-       code = krb5_rd_chpw_rep(context, auth_context, &chpw_rep,
-                               &local_result_code, result_string);
-
-       free(chpw_rep.data);
-       free(addr_p);
-
-       if (code)
-           return(code);
-
-       if (result_code)
-           *result_code = local_result_code;
-
-       if (result_code_string) {
-           if (code = krb5_chpw_result_code_string(context, local_result_code,
-                                                   &code_string))
-               return(code);
-
-           result_code_string->length = strlen(code_string);
-           if ((result_code_string->data =
-                (char *) malloc(result_code_string->length)) == NULL)
-               return(ENOMEM);
-           strncpy(result_code_string->data, code_string,
-                   result_code_string->length);
-       }
-
-       return(0);
-    }
+    if ((s1 = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET) 
+      {
+           code = SOCKET_ERRNO;
+           goto cleanup;
+      }
+
+    if ((s2 = socket(AF_INET, SOCK_DGRAM, 0)) == INVALID_SOCKET)
+      {
+           code = SOCKET_ERRNO;
+           goto cleanup;
+      }
+
+    for (i=0; i<out; i++) 
+      {
+               fd_set fdset;
+               struct timeval timeout;
+
+               if (connect(s2, &addr_p[i], sizeof(addr_p[i])) == SOCKET_ERROR) 
+                 {
+                   if ((SOCKET_ERRNO == ECONNREFUSED) || (SOCKET_ERRNO == EHOSTUNREACH))
+                         continue; /* try the next addr */
+                   
+                   code = SOCKET_ERRNO;
+                   goto cleanup;
+                 }
+      
+        addrlen = sizeof(local_addr);
+
+               if (getsockname(s2, &local_addr, &addrlen) < 0) 
+                 {
+                   if ((SOCKET_ERRNO == ECONNREFUSED) || (SOCKET_ERRNO == EHOSTUNREACH))
+                         continue; /* try the next addr */
+                   
+                   code = SOCKET_ERRNO;
+                       goto cleanup;
+                 }
+
+               /* some brain-dead OS's don't return useful information from
+                * the getsockname call.  Namely, windows and solaris.  */
+
+               if (((struct sockaddr_in *)&local_addr)->sin_addr.s_addr != 0) 
+                 {
+                   local_kaddr.addrtype = ADDRTYPE_INET;
+                   local_kaddr.length = sizeof(((struct sockaddr_in *) &local_addr)->sin_addr);
+                   local_kaddr.contents = (krb5_octet *) &(((struct sockaddr_in *) &local_addr)->sin_addr);
+                 } 
+               else 
+                 {
+                   krb5_address **addrs;
+
+                   krb5_os_localaddr(context, &addrs);
+                   
+                   local_kaddr.magic = addrs[0]->magic;
+                   local_kaddr.addrtype = addrs[0]->addrtype;
+                   local_kaddr.length = addrs[0]->length;
+                   local_kaddr.contents = malloc(addrs[0]->length);
+                   memcpy(local_kaddr.contents, addrs[0]->contents, addrs[0]->length);
+
+                   krb5_free_addresses(context, addrs);
+                 }
+
+               addrlen = sizeof(remote_addr);
+               if (getpeername(s2, &remote_addr, &addrlen) < 0) 
+                 {
+                   if ((SOCKET_ERRNO == ECONNREFUSED) || (SOCKET_ERRNO == EHOSTUNREACH))
+                         continue; /* try the next addr */
+                   
+                   code = SOCKET_ERRNO;
+                       goto cleanup;
+                 }
+
+               remote_kaddr.addrtype = ADDRTYPE_INET;
+               remote_kaddr.length = sizeof(((struct sockaddr_in *) &remote_addr)->sin_addr);
+               remote_kaddr.contents = (krb5_octet *) &(((struct sockaddr_in *) &remote_addr)->sin_addr);
+
+               /* mk_priv requires that the local address be set.
+                 getsockname is used for this.  rd_priv requires that the
+                 remote address be set.  recvfrom is used for this.  If
+                 rd_priv is given a local address, and the message has the
+                 recipient addr in it, this will be checked.  However, there
+                 is simply no way to know ahead of time what address the
+                 message will be delivered *to*.  Therefore, it is important
+                 that either no recipient address is in the messages when
+                 mk_priv is called, or that no local address is passed to
+                 rd_priv.  Both is a better idea, and I have done that.  In
+                 summary, when mk_priv is called, *only* a local address is
+                 specified.  when rd_priv is called, *only* a remote address
+                 is specified.  Are we having fun yet?  */
+
+               if (code = krb5_auth_con_setaddrs(context, auth_context, &local_kaddr, NULL)) 
+                 {
+                   code = SOCKET_ERRNO;
+                       goto cleanup;
+                 }
+
+               if (code = krb5_mk_chpw_req(context, auth_context, &ap_req, newpw, &chpw_req)) 
+                 {
+                   code = SOCKET_ERRNO;
+                       goto cleanup;
+                 }
+
+               if ((cc = sendto(s1, chpw_req.data, chpw_req.length, 0, 
+                                (struct sockaddr *) &addr_p[i], 
+                                sizeof(addr_p[i]))) != chpw_req.length) 
+                 {
+                   if ((cc < 0) && ((SOCKET_ERRNO == ECONNREFUSED) ||
+                                    (SOCKET_ERRNO == EHOSTUNREACH)))
+                         continue; /* try the next addr */
+                   
+                   code = (cc < 0) ? SOCKET_ERRNO : ECONNABORTED;
+                       goto cleanup;
+                 }
+
+               chpw_rep.length = 1500;
+               chpw_rep.data = (char *) malloc(chpw_rep.length);
+
+               /* XXX need a timeout/retry loop here */
+
+               FD_ZERO (&fdset);
+               FD_SET (s1, &fdset);
+               timeout.tv_sec = 120;
+               timeout.tv_usec = 0;
+               switch (select (s1 + 1, &fdset, 0, 0, &timeout)) {
+               case -1:
+                   code = SOCKET_ERRNO;
+                   goto cleanup;
+               case 0:
+                   code = ETIMEDOUT;
+                   goto cleanup;
+               default:
+                   /* fall through */
+                   ;
+               }
 
-    free(addr_p);
-    closesocket(s1);
-    closesocket(s2);
-    return(SOCKET_ERRNO);
+               /* "recv" would be good enough here... except that Windows/NT
+                  commits the atrocity of returning -1 to indicate failure,
+                  but leaving errno set to 0.
+                  
+                  "recvfrom(...,NULL,NULL)" would seem to be a good enough
+                  alternative, and it works on NT, but it doesn't work on
+                  SunOS 4.1.4 or Irix 5.3.  Thus we must actually accept the
+                  value and discard it. */
+               tmp_len = sizeof(tmp_addr);
+               if ((cc = recvfrom(s1, chpw_rep.data, chpw_rep.length, 0, &tmp_addr, &tmp_len)) < 0) 
+                 {
+                   code = SOCKET_ERRNO;
+                   goto cleanup;
+                 }
+
+               closesocket(s1);
+               s1 = INVALID_SOCKET;
+               closesocket(s2);
+               s2 = INVALID_SOCKET;
+
+               chpw_rep.length = cc;
+
+               if (code = krb5_auth_con_setaddrs(context, auth_context, NULL, &remote_kaddr)) 
+                 goto cleanup;
+
+               if(code = krb5_rd_chpw_rep(context, auth_context, &chpw_rep,
+                                       &local_result_code, result_string))
+                 goto cleanup;
+
+               if (result_code)
+                 *result_code = local_result_code;
+
+               if (result_code_string) 
+                 {
+                   if (code = krb5_chpw_result_code_string(context, local_result_code,
+                                                           &code_string))
+                         goto cleanup;
+
+                   result_code_string->length = strlen(code_string);
+                   if ((result_code_string->data =
+                           (char *) malloc(result_code_string->length)) == NULL)
+                         return(ENOMEM);
+                   strncpy(result_code_string->data, code_string, result_code_string->length);
+                 }
+
+               code = 0;
+               goto cleanup;
+      }
+
+    code = SOCKET_ERRNO;
+    
+cleanup:
+    if(auth_context != NULL)
+      krb5_auth_con_free(context, auth_context);
+    
+    if(host != NULL)
+      krb5_xfree(host);
+    
+    if(addr_p != NULL)
+      krb5_xfree(addr_p);
+    
+    if(hostlist != NULL)
+      profile_free_list(hostlist);
+      
+    if(s1 != INVALID_SOCKET)
+      closesocket(s1);
+    
+    if(s2 != INVALID_SOCKET)
+      closesocket(s2);
+      
+    krb5_free_data_contents(context, &chpw_req);
+    krb5_free_data_contents(context, &chpw_rep);
+       krb5_free_data_contents(context, &ap_req);
+    
+    return(code);
 }
+
+#endif /* big KRB5_DNS_LOOKUP wrapper */
index 44a4e9381feb6fa174d059f302f0aed0f2eb6360..09a513e97d4caea33e9f51d937b40ee1de510515 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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 <stdio.h>
 
 #ifdef KRB5_DNS_LOOKUP      
+#ifdef WSHELPER
+#include <wshelper.h>
+#else /* WSHELPER */
+#include <arpa/inet.h>
+#include <arpa/nameser.h>
+#include <resolv.h>
+#include <netdb.h>
+#endif /* WSHELPER */
+
 /* for old Unixes and friends ... */
 #ifndef MAXHOSTNAMELEN
 #define MAXHOSTNAMELEN 64
@@ -76,7 +88,7 @@ krb5_get_default_realm(context, lrealm)
                                      "default_realm", 0, 0,
                                      &realm);
 
-        if (!retval) {
+        if (!retval && realm) {
             context->default_realm = malloc(strlen(realm) + 1);
             if (!context->default_realm) {
                 profile_release_string(realm);
@@ -101,10 +113,26 @@ krb5_get_default_realm(context, lrealm)
                 */
                char localhost[MAX_DNS_NAMELEN+1];
                char * p;
-               localhost[0] = localhost[sizeof(localhost)-1] = 0;
-               gethostname(localhost,MAX_DNS_NAMELEN);
-               
+               struct hostent * h;
+
+               localhost[0] = 0;
+               gethostname(localhost, sizeof(localhost));
+               localhost[sizeof(localhost) - 1] = 0;
+
                if ( localhost[0] ) {
+                   /*
+                    * Try to make sure that we have a fully qualified
+                    * name if possible.  We want to be able to handle
+                    * the case where gethostname returns a partial
+                    * name (i.e., it has a dot, but it is not a
+                    * FQDN).
+                    */
+                   h = gethostbyname(localhost);
+                   if (h) {
+                       strncpy(localhost, h->h_name, sizeof(localhost));
+                       localhost[sizeof(localhost) - 1] = '\0';
+                   }
+
                    p = localhost;
                    do {
                        retval = krb5_try_realm_txt_rr("_kerberos", p, 
index 63bd3b3389eed0e0c77f524c54b77870861cac32..afc427af20e431bad35da9fd903d57b97a4944cf 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 066acfcbf63ce4e41c83f238280cea88cd5ced72..ceb37650da969bd24b32a3f259e06f35568d13f4 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0a4e401c53848e5d4c4273bada00ba59475de968..c22ac1bd669b0c2d2653c5b4247cdfc74c0786c9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 1d84a0898ab6099ed8a07879b9f68aad99e7ef72..5da5e4a11e4a604cc73bf9547cd09155e488e52b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 8605d17285c746b10d76f11b16ad3a13634cd318..84b35503f1090c60533638eba88efbc7c50cb826 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5a9849066f144e0be719db35dd62061cc67a996c..1ff6ec01b50c8c3ebaa3e07ed78c37ad5a950e57 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c929bbabaf7f704304fb10ad9277aad37e6dce5a..1b42943a3176dc9d38c6cd6e6787590611b953e0 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -64,8 +67,9 @@ krb5_get_krbhst(context, realm, hostlist)
     const char *realm_kdc_names[4];
     krb5_error_code    retval;
     int        i, count;
+    char **rethosts;
 
-    *hostlist = 0;
+    rethosts = 0;
 
     realm_kdc_names[0] = "realms";
     realm_kdc_names[1] = realm->data;
@@ -99,25 +103,29 @@ krb5_get_krbhst(context, realm, hostlist)
            *cp = 0;
     }
     count = cpp - values;
-    *hostlist = malloc(sizeof(char *) * (count + 1));
-    if (!*hostlist) {
+    rethosts = malloc(sizeof(char *) * (count + 1));
+    if (!rethosts) {
         retval = ENOMEM;
         goto cleanup;
     }
     for (i = 0; i < count; i++) {
-        *hostlist[i] = malloc(strlen(values[i]) + 1);
-        if (!*hostlist[i]) {
+       int len = strlen (values[i]) + 1;
+        rethosts[i] = malloc(len);
+        if (!rethosts[i]) {
             retval = ENOMEM;
             goto cleanup;
         }
+       memcpy (rethosts[i], values[i], len);
     }
-    *hostlist[count] = 0;
+    rethosts[count] = 0;
  cleanup:
-    if (retval && *hostlist) {
-        for (cpp = *hostlist; *cpp; cpp++)
+    if (retval && rethosts) {
+        for (cpp = rethosts; *cpp; cpp++)
             free(*cpp);
-        free(*hostlist);
+        free(rethosts);
+       rethosts = 0;
     }
     profile_free_list(values);
+    *hostlist = rethosts;
     return retval;
 }
index 27aed5fa10a61b8a818913512675119d576dfe9f..5380caf160ee8bd5f34b17b0215f86f972f8f3b6 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index bda5e3706f71219042600625cf8cf8de7ea143e8..3c0005caf91ea69152a6412c41e5767bc040b135 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -234,14 +237,26 @@ krb5_get_host_realm(context, host, realmsp)
     krb5_error_code retval;
     int l;
     char local_host[MAX_DNS_NAMELEN+1];
+    struct hostent *h;
+
 
     if (host)
-       strncpy(local_host, host, MAX_DNS_NAMELEN);
+       strncpy(local_host, host, sizeof(local_host));
     else {
-       if (gethostname(local_host, sizeof(local_host)-1) == -1)
+       if (gethostname(local_host, sizeof(local_host)) == -1)
            return SOCKET_ERRNO;
+       /*
+        * Try to make sure that we have a fully qualified name if
+        * possible.  We need to handle the case where the host has a
+        * dot but is not FQDN, so we call gethostbyname.
+        */
+       h = gethostbyname(local_host);
+       if (h) {
+           strncpy(local_host, h->h_name, sizeof(local_host));
+       }
     }
-    local_host[MAX_DNS_NAMELEN] = '\0';
+    local_host[sizeof(local_host) - 1] = '\0';
+
     for (cp = local_host; *cp; cp++) {
        if (isupper(*cp))
            *cp = tolower(*cp);
index a9c69b30b5bfb3eb64c42d1111cb789ea936946c..0afef471d4922bba0333a0638663930f39ce1c28 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
@@ -313,14 +316,13 @@ os_get_default_config_files(pfiles, secure)
    do not include user paths (from environment variables, etc.)
 */
 static krb5_error_code
-os_init_paths(ctx, secure)
+os_init_paths(ctx)
        krb5_context ctx;
-       krb5_boolean secure;
 {
     krb5_error_code    retval = 0;
     profile_filespec_t *files = 0;
+    krb5_boolean secure = ctx->profile_secure;
 
-    ctx->profile_secure = secure;
 #ifdef KRB5_DNS_LOOKUP
     ctx->profile_in_memory = 0;
 #endif /* KRB5_DNS_LOOKUP */
@@ -328,7 +330,8 @@ os_init_paths(ctx, secure)
     retval = os_get_default_config_files(&files, secure);
 
     if (!retval) {
-        retval = profile_init(files, &ctx->profile);
+        retval = profile_init((const_profile_filespec_t *) files,
+                             &ctx->profile);
 #ifdef KRB5_DNS_LOOKUP
         /* if none of the filenames can be opened use an empty profile */
         if (retval == ENOENT) {
@@ -383,7 +386,7 @@ krb5_os_init_context(ctx)
 
        krb5_cc_set_default_name(ctx, NULL);
 
-       retval = os_init_paths(ctx, FALSE);
+       retval = os_init_paths(ctx);
 
        /*
         * If there's an error in the profile, return an error.  Just
@@ -393,7 +396,7 @@ krb5_os_init_context(ctx)
        return retval;
 }
 
-krb5_error_code
+KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
 krb5_get_profile (ctx, profile)
        krb5_context ctx;
        profile_t* profile;
@@ -404,7 +407,7 @@ krb5_get_profile (ctx, profile)
     retval = os_get_default_config_files(&files, ctx->profile_secure);
 
     if (!retval)
-        retval = profile_init(files, profile);
+        retval = profile_init((const_profile_filespec_t *) files, profile);
 
     if (files)
         free_filespecs(files);
@@ -465,6 +468,10 @@ krb5_error_code
 krb5_secure_config_files(ctx)
        krb5_context ctx;
 {
+       /* Obsolete interface; always return an error.
+
+          This function should be removed next time a major version
+          number change happens.  */
        krb5_error_code retval;
        
        if (ctx->profile) {
@@ -472,9 +479,12 @@ krb5_secure_config_files(ctx)
                ctx->profile = 0;
        }
 
-       retval = os_init_paths(ctx, TRUE);
+       ctx->profile_secure = TRUE;
+       retval = os_init_paths(ctx);
+       if (retval)
+               return retval;
 
-       return retval;
+       return KRB5_OBSOLETE_FN;
 }
 
 void
index 3875b8b193b66b354f6fa00dd0edc87c9afe007f..14e086d2072e70f0566002ce5caf2fb1c30f309a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index d8f394697be991fd47509dc4d3bd2218f39611ea..8c073fab0d1c426c69ba5199f70565a8caa02287 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 6d3032e8e0cda0d451ee759c7807366a44308ea6..6d2adb126e9790beb6dd1f48f4473dc64a5112a5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -56,7 +59,7 @@
  *
  */
 
-krb5_boolean
+krb5_boolean KRB5_CALLCONV
 krb5_kuserok(context, principal, luser)
     krb5_context context;
     krb5_principal principal;
@@ -77,8 +80,9 @@ krb5_kuserok(context, principal, luser)
     if ((pwd = getpwnam(luser)) == NULL) {
        return(FALSE);
     }
-    (void) strcpy(pbuf, pwd->pw_dir);
-    (void) strcat(pbuf, "/.k5login");
+    (void) strncpy(pbuf, pwd->pw_dir, sizeof(pbuf) - 1);
+    pbuf[sizeof(pbuf) - 1] = '\0';
+    (void) strncat(pbuf, "/.k5login", sizeof(pbuf) - 1 - strlen(pbuf));
 
     if (access(pbuf, F_OK)) {   /* not accessible */
        /*
@@ -143,7 +147,7 @@ krb5_kuserok(context, principal, luser)
  * If the given Kerberos name "server" translates to the same name as "luser"
  * (using * krb5_aname_to_lname()), returns TRUE.
  */
-krb5_boolean
+krb5_boolean KRB5_CALLCONV
 krb5_kuserok(context, principal, luser)
     krb5_context context;
     krb5_principal principal;
@@ -151,7 +155,7 @@ krb5_kuserok(context, principal, luser)
 {
     char kuser[50];
 
-    if (krb5_aname_to_localname(context, principal, sizeof(kuser), kuser))
+    if (krb5_aname_to_localname(context, principal, sizeof(kuser), kuser))
         return FALSE;
 
     if (strcmp(kuser, luser) == 0)
index f55c35c7899b2a63b0afe84dbccd5f2672a4bb15..5c5a27334274b8c9e169d5115593929d59580e6f 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -294,12 +297,11 @@ KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
 krb5_os_localaddr (krb5_context context, krb5_address ***addr) {
     char host[64];                              /* Name of local machine */
     struct hostent *hostrec;
-    int err;
-
-    *addr = calloc (2, sizeof (krb5_address *));
-    if (*addr == NULL)
-        return ENOMEM;
+    int err, count, i;
+    krb5_address ** paddr;
 
+    *addr = 0;
+    paddr = 0;
     err = 0;
     
     if (gethostname (host, sizeof(host))) {
@@ -319,27 +321,55 @@ krb5_os_localaddr (krb5_context context, krb5_address ***addr) {
                    return err;
     }
 
-    (*addr)[0] = calloc (1, sizeof(krb5_address));
-    if ((*addr)[0] == NULL) {
-        free (*addr);
-        return ENOMEM;
+    for (count = 0; hostrec->h_addr_list[count]; count++);
+
+
+    paddr = (krb5_address **)malloc(sizeof(krb5_address *) * (count+1));
+    if (!paddr) {
+        err = ENOMEM;
+        goto cleanup;
+    }
+
+    memset(paddr, 0, sizeof(krb5_address *) * (count+1));
+
+    for (i = 0; i < count; i++)
+    {
+        paddr[i] = (krb5_address *)malloc(sizeof(krb5_address));
+        if (paddr[i] == NULL) {
+            err = ENOMEM;
+            goto cleanup;
+        }
+
+        paddr[i]->magic = KV5M_ADDRESS;
+        paddr[i]->addrtype = hostrec->h_addrtype;
+        paddr[i]->length = hostrec->h_length;
+        paddr[i]->contents = (unsigned char *)malloc(paddr[i]->length);
+        if (!paddr[i]->contents) {
+            err = ENOMEM;
+            goto cleanup;
+        }
+        memcpy(paddr[i]->contents,
+               hostrec->h_addr_list[i],
+               paddr[i]->length);
     }
-    (*addr)[0]->magic = KV5M_ADDRESS;
-    (*addr)[0]->addrtype = hostrec->h_addrtype;
-    (*addr)[0]->length = hostrec->h_length;
-    (*addr)[0]->contents = (unsigned char *)malloc((*addr)[0]->length);
-    if (!(*addr)[0]->contents) {
-        free((*addr)[0]);
-        free(*addr);
-        return ENOMEM;
-    } else {
-        memcpy ((*addr)[0]->contents,
-                hostrec->h_addr,
-                (*addr)[0]->length);
+
+ cleanup:
+    if (err) {
+        if (paddr) {
+            for (i = 0; i < count; i++)
+            {
+                if (paddr[i]) {
+                    if (paddr[i]->contents)
+                        free(paddr[i]->contents);
+                    free(paddr[i]);
+                }
+            }
+            free(paddr);
+        }
     }
-       /* FIXME, deal with the case where gethostent returns multiple addrs */
+    else
+        *addr = paddr;
 
-    return(0);
+    return(err);
 }
 #endif
-
index 2c99a2c6f281699a74961791326daf452fb26b77..c5d68a5e004f448a3aa424b4435934b35e97efee 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
@@ -78,7 +81,7 @@ _krb5_use_dns(context)
  * the master kdc
  */
 
-static krb5_error_code
+krb5_error_code
 krb5_locate_srv_conf(context, realm, name, addr_pp, naddrs, master_index, nmasters)
     krb5_context context;
     const krb5_data *realm;
@@ -97,8 +100,8 @@ krb5_locate_srv_conf(context, realm, name, addr_pp, naddrs, master_index, nmaste
     struct hostent *hp;
     struct servent *sp;
 #ifdef HAVE_NETINET_IN_H
-    u_short udpport = htons(KRB5_DEFAULT_PORT);
-    u_short sec_udpport = htons(KRB5_DEFAULT_SEC_PORT);
+    u_short udpport;
+    u_short sec_udpport;
 #endif
 
     if ((host = malloc(realm->length + 1)) == NULL) 
@@ -125,10 +128,22 @@ krb5_locate_srv_conf(context, realm, name, addr_pp, naddrs, master_index, nmaste
      }
 
 #ifdef HAVE_NETINET_IN_H
+    if ( !strcmp(name,"kpasswd_server") ) {
+        if ((sp = getservbyname(KPASSWD_PORTNAME, "udp")))
+            udpport = sp->s_port;
+        else
+            udpport = htons(DEFAULT_KPASSWD_PORT);
+        sec_udpport = 0;
+    } else {
     if ((sp = getservbyname(KDC_PORTNAME, "udp")))
        udpport = sp->s_port;
+        else 
+            udpport = htons(KRB5_DEFAULT_PORT);
     if ((sp = getservbyname(KDC_SECONDARY_PORTNAME, "udp")))
        sec_udpport = sp->s_port;
+        else
+            sec_udpport = htons(KRB5_DEFAULT_SEC_PORT);
+    }
 #endif
     if (sec_udpport == udpport)
        sec_udpport = 0;
@@ -284,7 +299,7 @@ krb5_locate_srv_conf(context, realm, name, addr_pp, naddrs, master_index, nmaste
  * Lookup a KDC via DNS SRV records
  */
 
-static krb5_error_code
+krb5_error_code
 krb5_locate_srv_dns(realm, service, protocol, addr_pp, naddrs)
     const krb5_data *realm;
     const char *service;
index 79c1f97f18126093d8210e231887ae2a6b572e2c..55f86343a07a2f49fd87a9f26b49d5bef7dfa98d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index de22a9e289ce422cb71759ca92646fe31f2839d0..66167cd9663713e0bb4ebefea87dd83584fac4e6 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2b8a69241dd5536773af4c0e18a0acf8ca90f4e3..bea2b7bba458d682dddce192d13e9eb1b9f5c497 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 1da730e1e32ba048e8624ef9d451bfe4456ce3b6..e3c2eecebd01fed8aeae87f0af78c1c548319973 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 02c186f88dcd738f2df6f9f2219947d111c8651e..fed7a81db0d3aac5cbb3983df615afb92df4a596 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 228695ab7b7d35ecc9db504791a5136c09232e4b..2ae48009c3d3284102f884592db7d035249a76b3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 55249bd840f9ad0dd49e2f246a2cefe95b213b64..ba3fb9bd033b22358dcbdd04c90b8374fa14686c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 684c5b5099848b8870ef768c5ea598963df8f318..b43e0ae0e16d838c611e63de3911e4b34deb4e2e 100644 (file)
@@ -121,6 +121,102 @@ cleanup:
 }
 #else /* MSDOS */
 
+#if defined(_WIN32)
+
+#include <io.h>
+
+KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
+krb5_prompter_posix(krb5_context context,
+                   void *data,
+                   const char *name,
+                   const char *banner,
+                   int num_prompts,
+                   krb5_prompt prompts[])
+{
+    HANDLE             handle;
+    DWORD              old_mode, new_mode;
+    char               *ptr;
+    int                        scratchchar;
+    krb5_error_code    errcode = 0;
+    int                        i;
+
+    handle = GetStdHandle(STD_INPUT_HANDLE);
+    if (handle == INVALID_HANDLE_VALUE)
+       return ENOTTY;
+    if (!GetConsoleMode(handle, &old_mode))
+       return ENOTTY;
+
+    new_mode = old_mode;
+    new_mode |=  ( ENABLE_LINE_INPUT | ENABLE_PROCESSED_INPUT );
+    new_mode &= ~( ENABLE_ECHO_INPUT );
+
+    if (!SetConsoleMode(handle, new_mode))
+       return ENOTTY;
+
+    if (!SetConsoleMode(handle, old_mode))
+       return ENOTTY;
+
+    if (name) {
+       fputs(name, stdout);
+       fputs("\n", stdout);
+    }
+
+    if (banner) {
+       fputs(banner, stdout);
+       fputs("\n", stdout);
+    }
+
+    for (i = 0; i < num_prompts; i++) {
+       if (prompts[i].hidden) {
+           if (!SetConsoleMode(handle, new_mode)) {
+               errcode = ENOTTY;
+               goto cleanup;
+           }
+       }
+
+       fputs(prompts[i].prompt,stdout);
+       fputs(": ", stdout);
+       fflush(stdout);
+       memset(prompts[i].reply->data, 0, prompts[i].reply->length);
+
+       if (fgets(prompts[i].reply->data, prompts[i].reply->length, stdin)
+           == NULL) {
+           if (prompts[i].hidden)
+               putchar('\n');
+           errcode = KRB5_LIBOS_CANTREADPWD;
+           goto cleanup;
+       }
+       if (prompts[i].hidden)
+           putchar('\n');
+       /* fgets always null-terminates the returned string */
+
+       /* replace newline with null */
+       if ((ptr = strchr(prompts[i].reply->data, '\n')))
+           *ptr = '\0';
+       else /* flush rest of input line */
+           do {
+               scratchchar = getchar();
+           } while (scratchchar != EOF && scratchchar != '\n');
+    
+       prompts[i].reply->length = strlen(prompts[i].reply->data);
+
+       if (!SetConsoleMode(handle, old_mode)) {
+           errcode = ENOTTY;
+           goto cleanup;
+       }
+    }
+
+ cleanup:
+    if (errcode) {
+       for (i = 0; i < num_prompts; i++) {
+           memset(prompts[i].reply->data, 0, prompts[i].reply->length);
+       }
+    }
+    return errcode;
+}
+
+#else /* !_WIN32 */
+
 KRB5_DLLIMP krb5_error_code KRB5_CALLCONV
 krb5_prompter_posix(krb5_context context,
                    void *data,
@@ -129,7 +225,7 @@ krb5_prompter_posix(krb5_context context,
                    int num_prompts,
                    krb5_prompt prompts[])
 {
-   return(EINVAL);
+    return(EINVAL);
 }
-#endif   /* !MSDOS */
-   
+#endif /* !_WIN32 */
+#endif /* !MSDOS */
index 8ece718cc0cd44dba78cb501de6496a00f79ef62..c138ffb03c358677cb4abe35e87af6686d9dbcf5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7d68948afb922b5425bdb61285762bb8737306e2..4deabe2fd23290f1bb67f823c5d93ac8dfc148b9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3d0b64ebdfd5ea807caa664fee96371a95bb6c48..6afad2dbeb221f6a4647ba9cb277e1f1b9cf5bd0 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 0c3d127730acc29dd3091ab52e970ab26bb5b337..2e3276081117f07e9d529dfeeadeffd08cf456e1 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ff14863b48f80f1e8151c0c4273a4b3fcb8129ee..01b797e701baff7cee91a8144604f140c4dee45c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 766aa658e31127a894d343e8f7d24b5e00e20fd0..896567953a15218059b62923b2655b9f30750275 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 047eed82b6c940c07e7d5cdf7c471226a7c948af..11dffd732fe51ef16863cbb233520326f3c1bc29 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2debd9f987b513b503651b46af2e0f6d4b9d12b6..72d301df984f634023cc21e0a648e273404901c3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index bea19c123db45d1d47c4963e16526c0d88f73f18..886196d3ef68616caf3c7f2c71227f5c31970651 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 2c8b7d4ab367ee7f4002053a4945c5588ccd3369..ed60714e14f10b32745e25f55925ad557bd27f44 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 368ca6086c4d47648060d9a431a0b5ea9597841f..7f1bc242a46ec3f6fec1d4f1ed4ba656f1e37024 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 803dbc3087bbffb1c2eee700ec94ee77cf555c05..6f9a5ef7addde58888262c548b44cec096574436 100644 (file)
@@ -1,3 +1,17 @@
+2000-04-28  Ken Raeburn  <raeburn@mit.edu>
+           Nalin Dahyabhai  <nalin@redhat.com>
+
+       * syslog.c (vsyslog): Use strncpy and strncat instead of strcpy
+       and strcat when adding to buffer "tbuf".  If calling vsprintf,
+       abort if it appears to have overrun the buffer.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon May 10 15:26:38 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index e608d3bd8d77d344247b3cf40c10541856995805..8f33a92137e4989acc775a2a212291329e802a03 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/krb5/posix
 mydir=posix
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=posix
index 31e787493e2034004588eace49686fbc2009b269..f7ddbff16c6ba2d37920f9040321b5a5ab209fa6 100644 (file)
@@ -115,7 +115,7 @@ vsyslog(pri, fmt, ap)
        (void)sprintf(tbuf, "<%d>%.15s ", pri, ctime(&now) + 4);
        for (p = tbuf; *p; ++p);
        if (LogTag) {
-               (void)strcpy(p, LogTag);
+               (void)strncpy(p, LogTag, sizeof(tbuf) - 1 - (p - tbuf));
                for (; *p; ++p);
        }
        if (LogStat & LOG_PID) {
@@ -146,6 +146,11 @@ vsyslog(pri, fmt, ap)
        }
 
        (void)vsprintf(p, fmt_cpy, ap);
+       /* Bounds checking??  If a system doesn't have syslog, we
+          probably can't rely on it having vsnprintf either.  Try not
+          to let a buffer overrun be exploited.  */
+       if (strlen (tbuf) >= sizeof (tbuf))
+         abort ();
 
        /* output the message to the local logger */
        if (send(LogFile, tbuf, cnt = strlen(tbuf), 0) >= 0 ||
@@ -169,7 +174,8 @@ vsyslog(pri, fmt, ap)
                if ((fd = open(CONSOLE, O_WRONLY, 0)) < 0)
                        return;
                (void)alarm((u_int)0);
-               (void)strcat(tbuf, "\r");
+               tbuf[sizeof(tbuf) - 1] = '\0';
+               (void)strncat(tbuf, "\r", sizeof(tbuf) - 1 - strlen(tbuf));
                p = strchr(tbuf, '>') + 1;
                (void)write(fd, p, cnt + 1 - (p - tbuf));
                (void)close(fd);
index 3917175a43766dd94b914060c5c7459b1792cc72..a3b8b4fb963b3f0664c66030a3f036ab81a0f5e1 100644 (file)
@@ -1,3 +1,15 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-21  Ken Raeburn  <raeburn@mit.edu>
+
+       * rc_dfl.c (krb5_rc_io_fetch): Set client and server fields to
+       NULL after freeing them in the error case.
+
 Mon May 10 15:26:53 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index 248d7760b0d8ca893071be24863700a73adfa10a..9bb3d0f615a1fa3dcba77972c44ba0249d6b7871 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=lib/krb5/rcache
 mydir=rcache
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOS##BUILDTOP = ..\..\..
 ##DOS##PREFIXDIR=rcache
index 57679f3697333c9a2e50d2a541d320488365696b..a86f42e714f75765cff5ec38ec909235d3d834a2 100644 (file)
@@ -386,6 +386,7 @@ errout:
        krb5_xfree(rep->client);
     if (rep->server)
        krb5_xfree(rep->server);
+    rep->client = rep->server = 0;
     return retval;
 }
     
index 70b1fc696824c204c764e80580380bdcf0666a7e..338408fe009ade9be76033728ef448631e50f620 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f70dfbfe3e8a595bb52ce3d37eea828bfc989685..c6ea29cb4e256983adb7d469df161fa1dd7a5b98 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
diff --git a/src/lib/krb5_16.def b/src/lib/krb5_16.def
deleted file mode 100644 (file)
index 70bc344..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-;----------------------------------------------------
-;   KRB5.DEF - KRB5.DLL module definition file
-;----------------------------------------------------
-
-LIBRARY                KRB5_16
-DESCRIPTION    'DLL for Kerberos 5'
-EXETYPE                WINDOWS
-CODE           PRELOAD MOVEABLE DISCARDABLE
-DATA           PRELOAD MOVEABLE SINGLE
-HEAPSIZE       8192
-
-EXPORTS
-       WEP                                     @1001 RESIDENTNAME
-       LibMain                                 @1002
-; Kerberos 5
-       _krb5_build_principal
-       _krb5_build_principal_ext
-       krb5_copy_addr
-       krb5_copy_addresses
-       krb5_copy_authdata
-       krb5_copy_authenticator
-       krb5_copy_checksum
-       krb5_copy_creds
-       krb5_copy_data
-       krb5_copy_keyblock
-       krb5_copy_keyblock_contents
-       krb5_copy_principal
-       krb5_copy_ticket
-       krb5_decrypt_tkt_part
-       krb5_free_address
-       krb5_free_addresses
-       krb5_free_ap_rep
-       krb5_free_ap_rep_enc_part
-       krb5_free_ap_req
-       krb5_free_authdata
-       krb5_free_authenticator
-       krb5_free_authenticator_contents
-       krb5_free_checksum
-       krb5_free_context
-       krb5_free_cred
-       krb5_free_cred_contents
-       krb5_free_cred_enc_part
-       krb5_free_creds
-       krb5_free_data
-       krb5_free_data_contents
-       krb5_free_enc_kdc_rep_part
-       krb5_free_enc_tkt_part
-       krb5_free_error
-       krb5_free_host_realm
-       krb5_free_kdc_rep
-       krb5_free_kdc_req
-       krb5_free_keyblock
-       krb5_free_keyblock_contents
-       krb5_free_last_req
-       krb5_free_pa_data
-       krb5_free_principal
-       krb5_free_priv
-       krb5_free_priv_enc_part
-       krb5_free_pwd_data
-       krb5_free_pwd_sequences
-       krb5_free_safe
-       krb5_free_tgt_creds
-       krb5_free_ticket
-       krb5_free_tickets
-       krb5_free_tkt_authent
-       krb5_fwd_tgt_creds
-       krb5_get_credentials
-       krb5_get_credentials_renew
-       krb5_get_credentials_validate
-       krb5_get_default_realm
-       krb5_get_host_realm
-       krb5_get_realm_domain
-       krb5_get_in_tkt
-       krb5_get_in_tkt_with_keytab
-       krb5_get_in_tkt_with_password
-       krb5_get_in_tkt_with_skey
-       krb5_get_init_creds_opt_init
-       krb5_get_init_creds_opt_set_tkt_life
-       krb5_get_init_creds_opt_set_renew_life
-       krb5_get_init_creds_opt_set_forwardable
-       krb5_get_init_creds_opt_set_proxiable
-       krb5_get_init_creds_opt_set_etype_list
-       krb5_get_init_creds_opt_set_address_list
-       krb5_get_init_creds_opt_set_preauth_list
-       krb5_get_init_creds_opt_set_salt
-       krb5_get_init_creds_password
-       krb5_get_init_creds_keytab
-       krb5_get_init_creds_opt_init
-       krb5_get_validated_creds
-       krb5_get_renewed_creds
-       krb5_get_notification_message
-       krb5_init_context
-       krb5_mk_error
-       krb5_mk_priv
-       krb5_mk_rep
-       krb5_mk_req
-       krb5_mk_req_extended
-       krb5_mk_safe
-       krb5_os_localaddr
-       krb5_parse_name
-       krb5_principal_compare
-       krb5_prompter_posix
-       krb5_rd_cred
-       krb5_rd_error
-       krb5_rd_priv
-       krb5_rd_rep
-       krb5_rd_req
-       krb5_rd_safe
-       krb5_read_password
-       krb5_recvauth
-       krb5_sendauth
-       krb5_sname_to_principal
-       krb5_timeofday
-       krb5_unparse_name
-       krb5_unparse_name_ext
-       krb5_free_unparsed_name
-       krb5_us_timeofday
-;
-       krb5_use_enctype
-       krb5_checksum_size
-       krb5_encrypt_size
-       krb5_calculate_checksum
-       krb5_verify_checksum
-       krb5_eblock_enctype
-;
-       krb5_decrypt
-       krb5_encrypt
-       krb5_string_to_key
-       krb5_process_key
-       krb5_finish_key
-       krb5_init_random_key
-       krb5_finish_random_key
-       krb5_random_key
-;
-       krb5_425_conv_principal
-       krb5_524_conv_principal
-;
-       krb5_cksumtype_to_string
-       krb5_deltat_to_string
-       krb5_enctype_to_string
-       krb5_salttype_to_string
-       krb5_string_to_cksumtype
-       krb5_string_to_deltat
-       krb5_string_to_enctype
-       krb5_string_to_salttype
-       krb5_string_to_timestamp
-       krb5_timestamp_to_sfstring
-       krb5_timestamp_to_string
-;
-       krb5_auth_con_free
-       krb5_auth_con_genaddrs
-       krb5_auth_con_getflags
-       krb5_auth_con_getkey
-       krb5_auth_con_getlocalsubkey
-       krb5_auth_con_getremotesubkey
-       krb5_auth_con_init
-       krb5_auth_con_setflags
-       krb5_auth_con_getlocalseqnumber
-       krb5_auth_con_getremoteseqnumber
-       krb5_auth_con_setuseruserkey
-       krb5_auth_con_getauthenticator
-       krb5_auth_con_set_req_cksumtype
-;
-       krb5_cc_default
-       krb5_cc_register
-       krb5_cc_resolve
-;
-       krb5_kt_default
-       krb5_kt_register
-       krb5_kt_resolve
-       krb5_kt_add_entry
-       krb5_kt_free_entry
-       krb5_kt_read_service_key
-       krb5_kt_remove_entry
-;Kadm routines
-       krb5_adm_connect
-       krb5_adm_disconnect
-       krb5_free_adm_data
-       krb5_read_adm_reply
-       krb5_send_adm_cmd
-;
-;Temporary exports (DO NOT USE)
-       _sscanf
-       _decode_krb5_ticket
-       des_ecb_encrypt
-       des_new_random_key
-       des_key_sched
-       des_pcbc_encrypt
-       des_quad_cksum
-       des_string_to_key
-;      des_set_random_generator_seed
-       des_init_random_number_generator
-       profile_get_values
-       krb5_random_confounder
-       krb5_size_opaque
-       krb5_internalize_opaque
-       krb5_externalize_opaque
-       krb5_ser_pack_int32
-       krb5_ser_unpack_int32
-       krb5_ser_pack_bytes
-       krb5_ser_unpack_bytes
-       krb5_ser_auth_context_init
-       krb5_ser_context_init
-       krb5_ser_ccache_init
-       krb5_ser_keytab_init
-       krb5_ser_rcache_init
-       _decode_krb5_ap_req
index e4ef6c96cca948a889f8ca4c8c8dcfd2629f1f81..948c4fefbc05d2a5726fda31a2c4cfe1760f3baf 100644 (file)
@@ -229,10 +229,10 @@ EXPORTS
        krb5_ser_rcache_init
        decode_krb5_ap_req
        krb5_mcc_ops
-
 ;
 ;Added for Kermit 95
         krb5_address_search
         krb5_auth_con_getrcache
         krb5_c_enctype_compare
 
+       krb5_kuserok
index 9b2809f9810e964bb6424874bf25b493ca6bf40f..ec629cb91446c34fc5755e490140dbda77e20a4d 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index a254b42b7c45b69e03ff8366d33994d7ea8a7415..9e541a517823bd1e0d56e053d89ecf108a991f24 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=.
 myfulldir=lib/krb5util
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) 
 
 ##DOSBUILDTOP = ..\..
 ##DOSLIBNAME=krb5util.lib
index 72d82aa77da73bd872f4b769878de1dddbbfefa2..ec6b151149a6999be9203f2d6d0406c6d72e7b11 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index a8fcd4b20b0ed518c8eb1194764a33d7a12d0882..2b4f596c0a34a3f8482d699069d908e1147bf9e2 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 593599ef897687bd337642681d1891761adbbcf8..1d8174d62cc68b8f99d1547d72c1adc67f8e3744 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Fri Apr 23 20:05:38 1999  Tom Yu  <tlyu@mit.edu>
 
        * svc.c: Fix to reference the correct xprt because we're no longer
index de2ab2c26c769c11f4276816c6b45331b18d087a..487a1e4fdbb6b20972360263e1facdf5b240aaef 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=.
 myfulldir=lib/rpc
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) -DGSSAPI_KRB5 -DDEBUG_GSSAPI=0
+DEFINES = -DGSSAPI_KRB5 -DDEBUG_GSSAPI=0
 
 ##DOSBUILDTOP = ..\..
 ##DOSLIBNAME=libgssrpc.lib
index d3c846a1c6e1d6c0331781654d23f2a3ae790b82..9ea49bcee634a866e52239099a6bec3e1740c0fd 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 948b403345f1bb1086dec3a86206cb5a5765e617..ef2d93a954801ce067f21ae379e2091c14fb061a 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=.
 myfulldir=lib/rpc/unit-test
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE) -I.
+LOCALINCLUDES = -I.
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
diff --git a/src/lib/sapgss16.def b/src/lib/sapgss16.def
deleted file mode 100644 (file)
index ac6b7c9..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-;----------------------------------------------------
-;   SAPGSS16.DEF - GSSAPI.DLL module definition file
-;----------------------------------------------------
-
-LIBRARY                SAPGSS16
-DESCRIPTION    'Base Generic Security Service API'
-EXETYPE                WINDOWS
-CODE           PRELOAD MOVEABLE DISCARDABLE
-DATA           PRELOAD MOVEABLE SINGLE
-HEAPSIZE       8192
-
-EXPORTS
-       WEP                                     @1001 RESIDENTNAME
-       LibMain                                 @1002
-;
-       gss_acquire_cred
-       gss_release_cred
-       gss_init_sec_context
-       gss_accept_sec_context
-       gss_process_context_token
-       gss_delete_sec_context
-       gss_context_time
-       gss_sign
-       gss_verify
-       gss_seal
-       gss_unseal
-       gss_display_status
-       gss_indicate_mechs
-       gss_compare_name
-       gss_display_name
-       gss_import_name
-       gss_release_name
-       gss_release_buffer
-       gss_release_oid_set
-       gss_inquire_cred
-;
-; GSS-API v2  additional credential calls
-;
-       gss_add_cred
-       gss_inquire_cred_by_mech
-;
-; GSS-API v2  additional context-level calls
-;
-       gss_inquire_context
-       gss_wrap_size_limit
-       gss_export_sec_context
-       gss_import_sec_context
-;
-; GSS-API v2  additional calls for OID and OID_set operations
-;
-       gss_release_oid
-       gss_create_empty_oid_set
-       gss_add_oid_set_member
-       gss_test_oid_set_member
-       gss_oid_to_str
-       gss_str_to_oid
-;
-; GSS-API v2  renamed message protection calls
-;
-       gss_wrap
-       gss_unwrap
-       gss_get_mic
-       gss_verify_mic
-;
-; GSS-API v2  future extensions
-;
-       gss_inquire_names_for_mech
-;      gss_inquire_mechs_for_name
-       gss_canonicalize_name
-       gss_export_name
-       gss_duplicate_name
-;
-; GSS-API variables
-;
-       _gss_nt_user_name
-       _gss_nt_machine_uid_name
-       _gss_nt_string_uid_name
-       _gss_nt_service_name
diff --git a/src/lib/sapkrb16.def b/src/lib/sapkrb16.def
deleted file mode 100644 (file)
index 3095b20..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-;----------------------------------------------------
-;   SAPKRB16.DEF - KRB5.DLL module definition file
-;----------------------------------------------------
-
-LIBRARY                SAPKRB16
-DESCRIPTION    'DLL for Kerberos 5'
-EXETYPE                WINDOWS
-CODE           PRELOAD MOVEABLE DISCARDABLE
-DATA           PRELOAD MOVEABLE SINGLE
-HEAPSIZE       8192
-
-EXPORTS
-       WEP                                     @1001 RESIDENTNAME
-       LibMain                                 @1002
-; Kerberos 5
-       _krb5_build_principal
-       _krb5_build_principal_ext
-       krb5_copy_addr
-       krb5_copy_addresses
-       krb5_copy_authdata
-       krb5_copy_authenticator
-       krb5_copy_checksum
-       krb5_copy_creds
-       krb5_copy_data
-       krb5_copy_keyblock
-       krb5_copy_keyblock_contents
-       krb5_copy_principal
-       krb5_copy_ticket
-       krb5_decrypt_tkt_part
-       krb5_free_address
-       krb5_free_addresses
-       krb5_free_ap_rep
-       krb5_free_ap_rep_enc_part
-       krb5_free_ap_req
-       krb5_free_authdata
-       krb5_free_authenticator
-       krb5_free_authenticator_contents
-       krb5_free_checksum
-       krb5_free_context
-       krb5_free_cred
-       krb5_free_cred_contents
-       krb5_free_cred_enc_part
-       krb5_free_creds
-       krb5_free_data
-       krb5_free_data_contents
-       krb5_free_enc_kdc_rep_part
-       krb5_free_enc_tkt_part
-       krb5_free_error
-       krb5_free_host_realm
-       krb5_free_kdc_rep
-       krb5_free_kdc_req
-       krb5_free_keyblock
-       krb5_free_keyblock_contents
-       krb5_free_last_req
-       krb5_free_pa_data
-       krb5_free_principal
-       krb5_free_priv
-       krb5_free_priv_enc_part
-       krb5_free_pwd_data
-       krb5_free_pwd_sequences
-       krb5_free_safe
-       krb5_free_tgt_creds
-       krb5_free_ticket
-       krb5_free_tickets
-       krb5_free_tkt_authent
-       krb5_fwd_tgt_creds
-       krb5_get_credentials
-       krb5_get_credentials_renew
-       krb5_get_credentials_validate
-       krb5_get_default_realm
-       krb5_get_host_realm
-       krb5_get_in_tkt
-       krb5_get_in_tkt_with_keytab
-       krb5_get_in_tkt_with_password
-       krb5_get_in_tkt_with_skey
-       krb5_get_notification_message
-       krb5_init_context
-       krb5_mk_error
-       krb5_mk_priv
-       krb5_mk_rep
-       krb5_mk_req
-       krb5_mk_req_extended
-       krb5_mk_safe
-       krb5_os_localaddr
-       krb5_parse_name
-       krb5_principal_compare
-       krb5_rd_cred
-       krb5_rd_error
-       krb5_rd_priv
-       krb5_rd_rep
-       krb5_rd_req
-       krb5_rd_safe
-       krb5_read_password
-       krb5_recvauth
-       krb5_sendauth
-       krb5_sname_to_principal
-       krb5_timeofday
-       krb5_unparse_name
-       krb5_unparse_name_ext
-       krb5_us_timeofday
-;
-       krb5_use_enctype
-       krb5_checksum_size
-       krb5_encrypt_size
-       krb5_calculate_checksum
-       krb5_verify_checksum
-       krb5_eblock_enctype
-;
-       krb5_decrypt
-       krb5_encrypt
-       krb5_string_to_key
-       krb5_process_key
-       krb5_finish_key
-       krb5_init_random_key
-       krb5_finish_random_key
-       krb5_random_key
-;
-       krb5_425_conv_principal
-       krb5_524_conv_principal
-;
-       krb5_cksumtype_to_string
-       krb5_deltat_to_string
-       krb5_enctype_to_string
-       krb5_salttype_to_string
-       krb5_string_to_cksumtype
-       krb5_string_to_deltat
-       krb5_string_to_enctype
-       krb5_string_to_salttype
-       krb5_string_to_timestamp
-       krb5_timestamp_to_sfstring
-       krb5_timestamp_to_string
-;
-       krb5_auth_con_free
-       krb5_auth_con_genaddrs
-       krb5_auth_con_getflags
-       krb5_auth_con_getkey
-       krb5_auth_con_getlocalsubkey
-       krb5_auth_con_getremotesubkey
-       krb5_auth_con_init
-       krb5_auth_con_setflags
-       krb5_auth_con_getlocalseqnumber
-       krb5_auth_con_getremoteseqnumber
-       krb5_auth_con_setuseruserkey
-       krb5_auth_con_getauthenticator
-       krb5_auth_con_set_req_cksumtype
-;
-       krb5_cc_default
-       krb5_cc_register
-       krb5_cc_resolve
-;
-       krb5_kt_default
-       krb5_kt_register
-       krb5_kt_resolve
-       krb5_kt_add_entry
-       krb5_kt_free_entry
-       krb5_kt_read_service_key
-       krb5_kt_remove_entry
-;Kadm routines
-       krb5_adm_connect
-       krb5_adm_disconnect
-       krb5_free_adm_data
-       krb5_read_adm_reply
-       krb5_send_adm_cmd
-;
-;Temporary exports (DO NOT USE)
-       _sscanf
-       _decode_krb5_ticket
-       des_ecb_encrypt
-       des_new_random_key
-       des_key_sched
-       des_pcbc_encrypt
-       des_quad_cksum
-       des_string_to_key
-       des_set_random_generator_seed
-       profile_get_values
-       krb5_random_confounder
-       krb5_size_opaque
-       krb5_internalize_opaque
-       krb5_externalize_opaque
-       krb5_ser_pack_int32
-       krb5_ser_unpack_int32
-       krb5_ser_pack_bytes
-       krb5_ser_unpack_bytes
-       krb5_ser_auth_context_init
-       krb5_ser_context_init
-       krb5_ser_ccache_init
-       krb5_ser_keytab_init
-       krb5_ser_rcache_init
-       _decode_krb5_ap_req
diff --git a/src/lib/winsock.def b/src/lib/winsock.def
deleted file mode 100644 (file)
index cada779..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-;  
-;         File: winsock.def 
-;       System: MS-Windows 3.x 
-;      Summary: Module definition file for Windows Sockets DLL.  
-;  
-;      This file is from
-;  ftp://sunsite.unc.edu/pub/micro/pc-stuff/ms-windows/winsock/winsock-1.1
-;      except that we made all the routine names uppercase, to match what
-;      MicroSoft C does when you declare an interface routine PASCAL
-;      (the way all these routines are declared in .../include/winsock.h).
-;
-
-LIBRARY         WINSOCK         ; Application's module name 
-
-DESCRIPTION     'BSD Socket API for Windows' 
-
-EXETYPE         WINDOWS         ; required for all windows applications 
-
-STUB            'WINSTUB.EXE'   ; generates error message if application 
-                                ; is run without Windows 
-
-;CODE can be FIXED in memory because of potential upcalls 
-CODE            PRELOAD         FIXED 
-
-;DATA must be SINGLE and at a FIXED location since this is a DLL 
-DATA            PRELOAD         FIXED           SINGLE
-
-HEAPSIZE        1024 
-STACKSIZE       16384 
-
-; All functions that will be called by any Windows routine 
-; must be exported.  Any additional exports beyond those defined
-; here must have ordinal numbers 1000 or above. 
-
-EXPORTS 
-        ACCEPT                         @1 
-        BIND                           @2 
-        CLOSESOCKET                    @3 
-        CONNECT                        @4 
-        GETPEERNAME                    @5 
-        GETSOCKNAME                    @6 
-        GETSOCKOPT                     @7 
-        HTONL                          @8 
-        HTONS                          @9 
-        INET_ADDR                      @10 
-        INET_NTOA                      @11 
-        IOCTLSOCKET                    @12 
-        LISTEN                         @13 
-        NTOHL                          @14 
-        NTOHS                          @15 
-        RECV                           @16 
-        RECVFROM                       @17 
-        SELECT                         @18 
-        SEND                           @19 
-        SENDTO                         @20 
-        SETSOCKOPT                     @21 
-        SHUTDOWN                       @22 
-        SOCKET                         @23 
-
-        GETHOSTBYADDR                  @51 
-        GETHOSTBYNAME                  @52 
-        GETPROTOBYNAME                 @53 
-        GETPROTOBYNUMBER               @54 
-        GETSERVBYNAME                  @55 
-        GETSERVBYPORT                  @56 
-        GETHOSTNAME                    @57
-
-        WSAASYNCSELECT                 @101 
-        WSAASYNCGETHOSTBYADDR          @102 
-        WSAASYNCGETHOSTBYNAME          @103 
-        WSAASYNCGETPROTOBYNUMBER       @104 
-        WSAASYNCGETPROTOBYNAME         @105 
-        WSAASYNCGETSERVBYPORT          @106 
-        WSAASYNCGETSERVBYNAME          @107 
-        WSACANCELASYNCREQUEST          @108 
-        WSASETBLOCKINGHOOK             @109 
-        WSAUNHOOKBLOCKINGHOOK          @110 
-        WSAGETLASTERROR                @111 
-        WSASETLASTERROR                @112 
-        WSACANCELBLOCKINGCALL          @113 
-        WSAISBLOCKING                  @114 
-        WSASTARTUP                     @115 
-        WSACLEANUP                     @116 
-
-        __WSAFDISSET                   @151 
-
-        WEP                            @500    RESIDENTNAME 
-
-;eof 
-
diff --git a/src/lib/xpprof16.def b/src/lib/xpprof16.def
deleted file mode 100644 (file)
index e356718..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-;----------------------------------------------------
-;   XPPROF16.DEF - XPPROF16.DLL 
-;----------------------------------------------------
-
-LIBRARY                XPPROF16.DLL
-DESCRIPTION    'Cross Platform Profile DLL'
-EXETYPE                WINDOWS
-CODE           PRELOAD MOVEABLE DISCARDABLE
-DATA           PRELOAD MOVEABLE SINGLE
-HEAPSIZE       8192
-
-EXPORTS
-       WEP                                     @1001 RESIDENTNAME
-       LibMain                                 @1002
-;
-       profile_init
-       profile_init_path
-       profile_flush
-       profile_release
-       profile_get_values
-       profile_free_list
-       profile_get_string
-       profile_get_integer
-       profile_get_relation_names
-       profile_get_subsection_names
-       profile_iterator_create
-       profile_iterator_free
-       profile_iterator
-       profile_release_string
-       profile_update_relation
-       profile_clear_relation
-       profile_rename_section
-       profile_add_relation
index f74a3662d3a87e8c8be5b0f2c83035bef46b6b18..f6386bb806f3fff1ef89d057e70e9e91c515e2cc 100644 (file)
-#!/usr/athena/bin/perl -w
+#!/usr/local/bin/perl -w
 
+use strict; # Turn on careful syntax checking
+use 5.002;  # Require Perl 5.002 or later
+
+# Pre-declare globals, as required by "use strict"
+use vars qw(%RESERVEDWORDS $file $prototype);
+
+# C words which aren't a type or a parameter name
+# [digit] is special cased later on...
 %RESERVEDWORDS = (
-                 const  => "const",
-                 "*"    => "*",
-                 "[]"   => "[]",
-                 struct => "struct",
-                 enum   => "enum",
-                 union  => "union"
+                 const    => "const",
+                 "*"      => "*",
+                 "[]"     => "[]",
+                 struct   => "struct",
+                 enum     => "enum",
+                 union    => "union",
+                 unsigned => "unsigned",
+                 register => "register"
                  );
 
-while(<STDIN>)
+# Read the entire file into $file
+{
+    local $/;
+       undef $/; # Ignore end-of-line delimiters in the file
+    $file .= <STDIN>;
+}
+
+# Remove the C and C++ comments from the file.
+# If this regexp scares you, don't worry, it scares us too.
+$file =~ s@/ # Both kinds of comment begin with a /
+             # First, process /* ... */
+            ((\*[^*]*\*+                                 # 1: Identify /**, /***, /* foo *, etc.  
+                         ([^/*][^*]*\*+)*                        # 2: Match nothing, x*, x/*, x/y*, x*y* etc. 
+                        /)                                                       # 3: Look for the trailing /. If not present, back up
+                                                                                 #    through the matches from step 2 (x*y* becomes x*)
+                                                                                 #### if we get here, we have /* ... */
+                  |  # Or, it's // and we just need to match to the end of the line
+                  (/.*?\n))                                      # 4. Slash, shortest possible run of characters ending in newline (\n)
+                 @\n@xg;                                                 # => Replace match with a newline.
+                                                                                 ###  "x" modifier allows whitespace and comments in patterns
+                                                                                 ###  "g" modifier means "do this globally"
+
+$file =~ tr! \t\n! !s;                                           # Convert newlines, tabs, and runs of spaces into single spaces
+
+foreach $prototype (split /;/, $file)    # Break string apart at semicolons, pass each piece to our Convert routine
 {
-    chop($_);
-    $prototype = $_;
-    @splitup = split(/\s*\(\s*/, $prototype);
-    
-    # the return value type and the function name:
-    $temp = $splitup[0];
-    $temp =~ s/\s*\*\s*/ \* /g;         # add spaces around *
-    @funcAndArgs = split(/\s+/, $temp);
-    $functionName = $funcAndArgs[$#funcAndArgs];
-    
-    # Is this function already in the Hash Table?
-    if(!exists($FUNCTIONS{$functionName}))
-    {
-       $FUNCTIONS{$functionName}{prototypeText} = $prototype;
-       pop @{funcAndArgs};
-       $FUNCTIONS{$functionName}{returnType} = join(' ', @funcAndArgs);
+       Convert($prototype);
+}
+
+exit (0);
+
+# ========================================
+# Subroutines follow
+# ========================================
+
+sub Convert()
+{
+       # Take our special C-style function prototypes and print out the
+       # appropriate glue code.
+       
+       my $prototype = shift;
+       my ($returnType, $functionName, $paramString);
+       my (@parameters, @types);
+       
+       return if ($prototype =~ /^\s*$/);         # Ignore blank lines
+       # Use custom function to remove leading & trailing spaces & 
+       # collapse runs of spaces.
+       $prototype = StripSpaces($prototype);   
+       
+       # ====================
+       # STAGE 1.1: Get the function name and return type.
+       #            Do general syntax checking.
+       # ====================
+       
+       # See if we have a legal prototype and begin parsing. A legal prototype has
+       # a return type (optional), function name, and parameter list.
+       unless ($prototype =~ /((\w+\*? )*(\w+\*?)) (\w+)\s*\((.*)\)$/)
+       {
+               die "Prototype \"$prototype;\" does not appear to be a legal prototype.\n";
+       }
+       
+       # That unless had a nice side effect -- the parentheses in the regular expression
+       # stuffed the matching parts of the expression into variables $1, $2, and $3.
+       
+       ($returnType, $functionName) = ($1, $4);
+       # Kill 2 birds at a time -- get rid of leading & trailing spaces *and* get an
+       # empty string back if there are no parameters
+       $paramString = StripSpaces($5);                         
+       
+       # Insist on having an argument list in the prototype
+       unless ($paramString)
+       {
+               die("Prototype: \"$prototype;\" has no arguments.\n" .
+                        "This is ambiguous between C and C++ (please specify " .
+                        "either (int) or (void)).\n");
+       }
+       
+       # Check for variable arguments by looking for
+       # "va_list <something>" or "..."
+       if(($paramString =~ /va_list\s+\S+/) or # va_list + spaces + not-a-spaces
+          ($paramString =~ /\Q.../))                   # \Q = "quote metacharacters" => \.\.\.
+       {
+               die("Prototype: \"$prototype;\" takes a variable " .  
+                       "number of arguments. Variable arguments are not " . 
+                       "supported by CFM Glue.\n");
+       }
+
+       # ====================
+       # STAGE 1.2: Digest the parameter list.
+       # ====================
+
+       if ($paramString eq "void")
+       {
+               $parameters[0] = "void";
+               $types[0] = "void";
+       }
+       else
+       {
+               # The function has nonvoid arguments
                
-       # the arguments:
-       @splitup2 = split(/\s*\)\s*/, $splitup[1]);
-       @argsAndParams = split(/\s*,\s*/, $splitup2[0]);
+               # Add spaces around * and turn [#] into [#] with spaces around it
+        # for ease of parsing
+           $paramString =~ s/\s*\*\s*/ \* /g;
+           $paramString =~ s/\s*\[(\d*)\]\s*/ [$1] /g;
+
+               # Extract the list elements
+               my @arguments = split /,\s*/, $paramString;
                
-       for($i = 0, $j = 1; $i <= $#argsAndParams; $i++, $j++)
-       {
-           $temp = $argsAndParams[$i];
-           $temp =~ s/\s*\*\s*/ \* /g;         # add spaces around *
-           $temp =~ s/\s*\[\]\s*/ \[\] /g;     # add spaces around []
-
-           @elements = split(/\s+/, $temp);
-
-            # Is there a parameter name in this argument?
-           $identifierCount = 0;
-           foreach $element (@elements)
-           {
-               if(!exists($RESERVEDWORDS{$element})) {
-                   $identifierCount++;
+               # Make sure we don't have more than 13 arguments
+               if ($#arguments >= 13)
+               {
+                       die "Prototype \"$prototype;\" has more than 13 arguments,\n".
+                               "which the CFM68K glue will not support.";
                }
-           }
-           
-           if(($identifierCount > 2) or ($identifierCount < 1)) {
-               print("************** $argsAndParams ****************");
-               die;
-           }
-
-           if($identifierCount >= 2) {
-               $param = $elements[$#elements];
-               pop(@elements);
-               if($param eq "[]") {
-                   $param = $elements[$#elements];
-                   pop(@elements);
-                   push(@elements, '*');
+               
+               # We need to look at each argument and come out with two lists: a list
+               # of parameter names and a corresponding list of parameter types. For example:
+               # ( const int x, short y[], int )
+               # needs to become two lists:
+               # @parameters = ("x", "y", "__param0")
+               # @elements = ("const int", "short *", int)
+               my $i = 0; # parameter counter
+               foreach my $argument (@arguments)
+               {
+                   my @elements = split(' ', $argument);
+                       
+                       # A legal argument will have a name and/or a parameter type.
+                       # It might _also_ have some C keywords
+                       # We'll syntax check the argument by counting the number of things
+                       # which are names and/or variable types
+                       my $identifierCount = grep { !$RESERVEDWORDS{$_} && !/\[\d*\]/ } @elements;
+                       
+                       if ($identifierCount == 1) {
+                               # We have a type without a name, so generate an arbitrary unique name
+                               push @parameters, "__param" . $i;
+                       } 
+                       elsif ($identifierCount == 2) {
+                               # We have a type and a name. We'll assume the name is the last thing seen,
+                               my $paramName = pop @elements;
+                               # ...but have to make certain it's not a qualified array reference
+                               if ($paramName =~ /\[\d*\]/)
+                               {
+                               # Whoops...the argument ended in a [], so extract the name and put back
+                                       # the array notation
+                                       my $temp = $paramName;
+                                       $paramName = pop @elements;
+                                       push @elements, $temp;
+                               }
+                               push @parameters, $paramName;
+                       }
+                       else # $identifierCount == 0 or $identifierCount > 2
+                       {
+                       die("Prototype: \"$prototype;\" has an " .
+                           "invalid number ($identifierCount)" . 
+                           " of non-reserved words in argument '$argument'.\n");
+                       }
+                       
+                       # Replace all "[]" with "*" to turn array references into pointers.
+                       # "map" sets $_ to each array element in turn; modifying $_ modifies
+                       # the corresponding value in the array. (s -- substutition -- works
+                       # on $_ by default.)
+                       map { s/\[\d*\]/*/ } @elements;
+                       
+                       push @types, join(' ', @elements); # Construct a type definition
+                       
+                   # Increment the argument counter:
+                   $i++;
                }
-               $type = join(' ', @elements);
-           } else {
-               $type = $argsAndParams[$i];
-               $param = "param" . $j;
-           }
-           $FUNCTIONS{$functionName}{typeList}[$i] = $type;
-           $FUNCTIONS{$functionName}{paramList}[$i] = $param;
        }
-    }
-}
 
-foreach $function (keys(%FUNCTIONS))
-{
-    # the variables we will be playing with:
-    $name      = $function;
-    $retType   = $FUNCTIONS{$function}{returnType};
-    $prototype = $FUNCTIONS{$function}{prototypeText};
-    @args      = @{ $FUNCTIONS{$function}{typeList} };
-    @params    = @{ $FUNCTIONS{$function}{paramList} };
-    
-
-    # Now Generate the ProcInfo Macro:
-    # --------------------------------
-    print("/**** $name ****/\n");
-    print("/* $prototype */\n\n");
-    
-    print("enum {\n");
-    print("  $name" . "_ProcInfo = kThinkCStackBased\n");
-    if($retType ne "void") {
-       print("  | RESULT_SIZE(SIZE_CODE(sizeof($retType)))\n");
-    }
-    for($i = 0, $j = 1; $i <= $#args; $i++, $j++)
-    {
-       $arg = $args[$i];
-       print("  | STACK_ROUTINE_PARAMETER($j, SIZE_CODE(sizeof($arg)))\n");
-    }    
-    print("};\n\n");
-    
-    # Now Generate the ProcPtr Typedef
-    # --------------------------------
-    print("typedef ");
-    print("$retType ");
-    print("(*$name" . "_ProcPtrType)(");
-    
-    for($i = 0; $i<=$#args; $i++) {
-           $arg = $args[$i];
-           print("$arg");
-           if ($i ne $#args) {
-               print (", ");
-           }
-    }
-    print(");\n");
-  
-    
-    # Now Generate the Static 68K Function Declaration:
-    # -------------------------------------------------
-    print("$retType $name (\n");
-    for($i = 0; $i <= $#args; $i++)
-    {
-       for($j = 0; $j <= length($retType); $j++) {     
-           print(" ");
+       # ====================
+       # STAGE 2: Print out the glue.
+       # ====================
+
+       # Generate the ProcInfo Macro:
+       # ----------------------------
+       my $result = ""; # Will be inserted into the final macro
+       if ($returnType ne "void") {
+               $result = "\n  | RESULT_SIZE(SIZE_CODE(sizeof($returnType)))";
        }
-       print($args[$i] . ' ' . $params[$i]);
-       if($i >= $#args) {
-           print(")\n");
-       } else {
-           print(",\n");
+       
+       # Convert a list of parameter types into entries for the macro.
+       # All non-void parameters need to have a line in the final macro.
+       my @parameterMacros;
+       my $paramCount = -1;
+       @parameterMacros = map { $paramCount++; $_ eq "void" ? "" : 
+                                                       "  | STACK_ROUTINE_PARAMETER(" . ($paramCount + 1) . ", SIZE_CODE(sizeof($_)))" } @types;
+       my $macroString = join "\n", @parameterMacros;
+       
+       print <<HEADER; # Print everything from here to the word HEADER below, returns and all
+/**** $functionName ****/
+/* $prototype; */
+
+enum {
+  ${functionName}_ProcInfo = kThinkCStackBased $result
+$macroString
+};
+
+
+HEADER
+
+       
+       # Generate the ProcPtr Typedef
+       # --------------------------------
+       my $typeList = join ", ", @types;
+       print "typedef $returnType (*${functionName}_ProcPtrType)($typeList);\n";
+               
+       
+       # Generate the Static 68K Function Declaration:
+       # -------------------------------------------------
+       # Most of the complexity in this code comes from
+       # pretty-printing the declaration
+       
+       my $functionDec = "$returnType $functionName (";
+       my $fnArguments;
+       if($types[0] eq "void")
+       {
+               $fnArguments = "void";
        }
-    } 
-    print("{\n");
-    print("  static $name" . "_ProcPtrType $name" . "_ProcPtr = kUnresolvedCFragSymbolAddress;\n\n");
-
-    print("  // if this symbol has not been setup yet...\n");
-    print("  if((Ptr) $name" . "_ProcPtr == (Ptr) kUnresolvedCFragSymbolAddress)\n");
-    print("    Find_Symbol((Ptr *) &" . $name . "_ProcPtr, ");
-    print("\"\\p" . $name . "\", $name" . "_ProcInfo);\n");
-    print("  if((Ptr) $name" . "_ProcPtr != (Ptr) kUnresolvedCFragSymbolAddress)\n");
-    if($retType ne "void") {
-       print("    return $name" . "_ProcPtr(");
-    } else {
-       print("    $name" . "_ProcPtr(");
-    }      
-    for($i = 0; $i <= $#args; $i++)
-    {
-       print($params[$i]);
-       if($i >= $#args) {
-           print(");\n");
-       } else {
-           print(", ");
+       else
+       {
+               my @joinedList;
+               # Merge the parameter and type lists together
+               foreach my $i (0..$#types)
+               {
+                       push @joinedList, ($types[$i] . ' ' . $parameters[$i]);
+               }
+               
+               # Build a list of parameters where each parameter is aligned vertically
+               # beneath the one above.
+               # "' ' x 5" is a Perl technique to get a string of 5 spaces
+               $fnArguments = join (",\n".(' ' x length($functionDec)), @joinedList);
+       } 
+
+       # Create a list of parameters to pass to the 68K function
+       my $fnParams = "";
+       if($types[0] ne "void") {
+               $fnParams = join ", ", @parameters;
        }
-    } 
-    
-    print("}\n\n\n");
+
+       # Do we have an explicit return statement? This depends on the return type
+       my $returnAction = " ";
+       $returnAction = "return " if ($returnType ne "void");
+       
+       # The following code introduces a new Perl trick -- ${a} is the same as $a in a string
+       # (interpolate the value of variable $a); the brackets are used to seperate the variable
+       # name from the text immediately following the variable name so the Perl interpreter 
+       # doesn't go looking for the wrong variable.
+       print <<FUNCTION;
+${functionDec}$fnArguments)
+{
+  static ${functionName}_ProcPtrType ${functionName}_ProcPtr = kUnresolvedCFragSymbolAddress;
+       
+  // if this symbol has not been setup yet...
+  if((Ptr) ${functionName}_ProcPtr == (Ptr) kUnresolvedCFragSymbolAddress)
+    FindLibrarySymbol((Ptr *) &${functionName}_ProcPtr, "\\p$functionName", ${functionName}_ProcInfo);
+  if((Ptr) ${functionName}_ProcPtr != (Ptr) kUnresolvedCFragSymbolAddress)
+    $returnAction ${functionName}_ProcPtr($fnParams);
+}
+
+
+FUNCTION
+
+       # That's all!
+}
+
+sub StripSpaces()
+{
+       # Remove duplicate, leading, and trailing spaces from a string
+       my $string = shift;
+       return "" unless ($string);                     # If it's undefined, return an empty string
+       
+       $string =~ tr! ! !s;                        # remove duplicate spaces
+       $string =~ s/\s*(\w.+)?\s*$/$1/;    # Strip leading and trailing spaces
+       return $string;
 }
+
diff --git a/src/mac/ComErrLib ReadMe b/src/mac/ComErrLib ReadMe
new file mode 100644 (file)
index 0000000..3f1c8f4
--- /dev/null
@@ -0,0 +1,5 @@
+ComErrLib implements the UNIX com_err API. See the com_err man page on a UNIX
+machine for details about the API. 
+
+Note that you need both ComErrLib:Headers: and Kerberos5Lib:Headers in your
+include path to use com_err.h
\ No newline at end of file
diff --git a/src/mac/ComErrLib.glue.h b/src/mac/ComErrLib.glue.h
new file mode 100644 (file)
index 0000000..deb4aeb
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef _COMERR_CFMGLUE_H_
+#define _COMERR_CFMGLUE_H_
+
+Boolean ComErrLibraryIsPresent ();
+
+#endif /* _KERBEROSPROFILE_CFMGLUE_H_ */
\ No newline at end of file
diff --git a/src/mac/ComErrLib.glue.post.cin b/src/mac/ComErrLib.glue.post.cin
new file mode 100644 (file)
index 0000000..495af6b
--- /dev/null
@@ -0,0 +1,7 @@
+#include <ComErrLib.glue.h>
+
+Boolean ComErrLibraryIsPresent ()
+{
+       Ptr     symAddr;
+       return (Find_Symbol (&symAddr, "\perror_message", error_message_ProcInfo)) == noErr;
+}
\ No newline at end of file
diff --git a/src/mac/ComErrLib.glue.pre.cin b/src/mac/ComErrLib.glue.pre.cin
new file mode 100644 (file)
index 0000000..e461533
--- /dev/null
@@ -0,0 +1,5 @@
+/* Include prototypes for glue functions */
+#include <com_err.h>
+
+/* Hardcode library fragment name here */
+#define kLibraryName "\pMIT KerberosÂ¥ComErrLib"
diff --git a/src/mac/ComErrLib.glue.proto.h b/src/mac/ComErrLib.glue.proto.h
new file mode 100644 (file)
index 0000000..a079984
--- /dev/null
@@ -0,0 +1,3 @@
+const char* error_message(errcode_t);
+errcode_t add_error_table (const struct error_table *);
+errcode_t remove_error_table(const struct error_table *);
index 686ee20bfc00f6128f1a46d70abed12e3a8200aa..a7c7c64eceffff73174f16cd1c078bff91d37966 100644 (file)
@@ -1,9 +1,19 @@
-/*
- *   Copyright (C) 1997 by the Massachusetts Institute of Technology
- *   All rights reserved.
+/* Copyright 1998 by the Massachusetts Institute of Technology.
  *
- *   For copying and distribution information, please see the file
- *   COPYRIGHT.
+ * 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.
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
  
  
@@ -12,6 +22,7 @@
 #include "gssapi_err_generic.h"
 #include "gssapi_err_krb5.h"
 
+#include "gssapi.h"
 
 OSErr __initializeGSS(CFragInitBlockPtr ibp);
 void __terminateGSS(void);
@@ -34,6 +45,10 @@ OSErr __initializeGSS(CFragInitBlockPtr ibp)
 
 void __terminateGSS(void)
 {
+
+       OM_uint32 maj_stat, min_stat;
+
+       maj_stat = kg_release_defcred (&min_stat);
        
     remove_error_table(&et_k5g_error_table);
     remove_error_table(&et_ggss_error_table);
index 232b79c41e3ad61b1d52d2188e5b111a1b9fcf86..5940797c1e9b5451a7d5a67bb0cb3871d6e290b3 100644 (file)
@@ -1,10 +1,43 @@
-OM_uint32 gss_wrap(OM_uint32 *, gss_ctx_id_t, int, gss_qop_t, gss_buffer_t, int *, gss_buffer_t);
-OM_uint32 gss_release_buffer(OM_uint32 *, gss_buffer_t);
-OM_uint32 gss_unwrap(OM_uint32 *, gss_ctx_id_t, gss_buffer_t, gss_buffer_t, int *, gss_qop_t *);
-OM_uint32 gss_delete_sec_context(OM_uint32 *, gss_ctx_id_t *, gss_buffer_t);
-OM_uint32 gss_display_status(OM_uint32 *, OM_uint32, int, gss_OID, OM_uint32 *, gss_buffer_t);
-OM_uint32 gss_init_sec_context(OM_uint32 *, gss_cred_id_t, gss_ctx_id_t *, gss_name_t, gss_OID, OM_uint32, OM_uint32, gss_channel_bindings_t, gss_buffer_t, gss_OID *, gss_buffer_t, OM_uint32 *, OM_uint32 *);
-OM_uint32 gss_import_name(OM_uint32 *, gss_buffer_t, gss_OID, gss_name_t *);
-OM_uint32 gss_release_name(OM_uint32 *, gss_name_t *);
-OM_uint32 gss_wrap_size_limit(OM_uint32 *, gss_ctx_id_t, int, gss_qop_t, OM_uint32, OM_uint32 *);
+OM_uint32 gss_acquire_cred(OM_uint32 *, gss_name_t, OM_uint32, gss_OID_set, gss_cred_usage_t, gss_cred_id_t *, gss_OID_set *, OM_uint32 * );
+OM_uint32 gss_release_cred(OM_uint32 *, gss_cred_id_t * );
+OM_uint32 gss_init_sec_context(OM_uint32 *, gss_cred_id_t, gss_ctx_id_t *, gss_name_t, gss_OID, OM_uint32, OM_uint32, gss_channel_bindings_t, gss_buffer_t, gss_OID *, gss_buffer_t, OM_uint32 *, OM_uint32 * );
+OM_uint32 gss_accept_sec_context(OM_uint32 *, gss_ctx_id_t *, gss_cred_id_t, gss_buffer_t, gss_channel_bindings_t, gss_name_t *, gss_OID *, gss_buffer_t, OM_uint32 *, OM_uint32 *, gss_cred_id_t * );
+OM_uint32 gss_process_context_token(OM_uint32 *, gss_ctx_id_t, gss_buffer_t );
+OM_uint32 gss_delete_sec_context(OM_uint32 *, gss_ctx_id_t *, gss_buffer_t );
+OM_uint32 gss_context_time(OM_uint32 *, gss_ctx_id_t, OM_uint32 * );
+OM_uint32 gss_get_mic(OM_uint32 *, gss_ctx_id_t, gss_qop_t, gss_buffer_t, gss_buffer_t );
+OM_uint32 gss_verify_mic(OM_uint32 *, gss_ctx_id_t, gss_buffer_t, gss_buffer_t, gss_qop_t * );
+OM_uint32 gss_wrap(OM_uint32 *, gss_ctx_id_t, int, gss_qop_t, gss_buffer_t, int *, gss_buffer_t );
+OM_uint32 gss_unwrap(OM_uint32 *, gss_ctx_id_t, gss_buffer_t, gss_buffer_t, int *, gss_qop_t * );
+OM_uint32 gss_display_status(OM_uint32 *, OM_uint32, int, gss_OID, OM_uint32 *, gss_buffer_t );
+OM_uint32 gss_indicate_mechs(OM_uint32 *, gss_OID_set * );
+OM_uint32 gss_compare_name(OM_uint32 *, gss_name_t, gss_name_t, int * );
+OM_uint32 gss_display_name(OM_uint32 *, gss_name_t, gss_buffer_t, gss_OID * );
+OM_uint32 gss_import_name(OM_uint32 *, gss_buffer_t, gss_OID, gss_name_t * );
+OM_uint32 gss_release_name(OM_uint32 *, gss_name_t * );
+OM_uint32 gss_release_buffer(OM_uint32 *, gss_buffer_t );
+OM_uint32 gss_release_oid_set(OM_uint32 *, gss_OID_set * );
+OM_uint32 gss_inquire_cred(OM_uint32 *, gss_cred_id_t, gss_name_t *, OM_uint32 *, gss_cred_usage_t *, gss_OID_set * );
+OM_uint32 gss_inquire_context(OM_uint32 *, gss_ctx_id_t, gss_name_t *, gss_name_t *, OM_uint32 *, gss_OID *, OM_uint32 *, int *, int * );
+OM_uint32 gss_wrap_size_limit(OM_uint32 *, gss_ctx_id_t, int, gss_qop_t, OM_uint32, OM_uint32 * );
+OM_uint32 gss_import_name_object(OM_uint32 *, void *, gss_OID, gss_name_t * );
+OM_uint32 gss_export_name_object(OM_uint32 *, gss_name_t, gss_OID, void * * );
+OM_uint32 gss_add_cred(OM_uint32 *, gss_cred_id_t, gss_name_t, gss_OID, gss_cred_usage_t, OM_uint32, OM_uint32, gss_cred_id_t *, gss_OID_set *, OM_uint32 *, OM_uint32 * );
+OM_uint32 gss_inquire_cred_by_mech(OM_uint32 *, gss_cred_id_t, gss_OID, gss_name_t *, OM_uint32 *, OM_uint32 *, gss_cred_usage_t * );
+OM_uint32 gss_export_sec_context(OM_uint32 *, gss_ctx_id_t *, gss_buffer_t );
+OM_uint32 gss_import_sec_context(OM_uint32 *, gss_buffer_t, gss_ctx_id_t * );
+OM_uint32 gss_release_oid(OM_uint32 *, gss_OID * );
+OM_uint32 gss_create_empty_oid_set(OM_uint32 *, gss_OID_set * );
+OM_uint32 gss_add_oid_set_member(OM_uint32 *, gss_OID, gss_OID_set * );
+OM_uint32 gss_test_oid_set_member(OM_uint32 *, gss_OID, gss_OID_set, int * );
+OM_uint32 gss_str_to_oid(OM_uint32 *, gss_buffer_t, gss_OID * );
+OM_uint32 gss_oid_to_str(OM_uint32 *, gss_OID, gss_buffer_t );
+OM_uint32 gss_inquire_names_for_mech(OM_uint32 *, gss_OID, gss_OID_set * );
+OM_uint32 gss_sign(OM_uint32 *, gss_ctx_id_t, int, gss_buffer_t, gss_buffer_t );
+OM_uint32 gss_verify(OM_uint32 *, gss_ctx_id_t, gss_buffer_t, gss_buffer_t, int * );
+OM_uint32 gss_seal(OM_uint32 *, gss_ctx_id_t, int, int, gss_buffer_t, int *, gss_buffer_t );
+OM_uint32 gss_unseal(OM_uint32 *, gss_ctx_id_t, gss_buffer_t, gss_buffer_t, int *, int * );
+OM_uint32 gss_export_name(OM_uint32 *, const gss_name_t, gss_buffer_t );
+OM_uint32 gss_duplicate_name(OM_uint32 *, const gss_name_t, gss_name_t * );
+OM_uint32 gss_canonicalize_name(OM_uint32 *, const gss_name_t, const gss_OID, gss_name_t * );
 OM_uint32 gss_krb5_ccache_name(OM_uint32 *minor_status, const char *name, const char **out_name);
diff --git a/src/mac/GSSLib ReadMe b/src/mac/GSSLib ReadMe
new file mode 100644 (file)
index 0000000..1f92f55
--- /dev/null
@@ -0,0 +1,4 @@
+GSSLib implements the Generic Security Services API. The APi is documented in 
+RFC 2078, which you can find at <ftp://ftp.isi.edu/in-notes/rfc2078.txt>.
+
+The mechanism used by this implementation is Kerberos v5.
index feeec20f74ee0eff6cb96c6ba90a440eb0bd9cdf..8adbf9f88cc225ed180ae6a10f20339c8593ca21 100644 (file)
        gss_export_name
        gss_duplicate_name
 #
-# GSS-API variables
-#
-       gss_nt_user_name
-       gss_nt_machine_uid_name
-       gss_nt_string_uid_name
-       gss_nt_service_name
-#
 # krb5-specific CCache name    stuff
 #
        gss_krb5_ccache_name
index e838e4c0fe03992279d434c030c7da3fc0b8074e..57d1fbb26b4b3eb211c278a572648b4882a918c9 100644 (file)
@@ -1,9 +1,19 @@
-/*
- *   Copyright (C) 1997 by the Massachusetts Institute of Technology
- *   All rights reserved.
+/* Copyright 1998 by the Massachusetts Institute of Technology.
  *
- *   For copying and distribution information, please see the file
- *   COPYRIGHT.
+ * 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.
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
  
  
@@ -42,6 +52,8 @@ OSErr __initializeK5(CFragInitBlockPtr ibp)
 
 void __terminateK5(void)
 {
+
+       krb5_stdcc_shutdown();
        
     remove_error_table(&et_krb5_error_table);
     remove_error_table(&et_kv5m_error_table);
index 633eeb341ebbc97b3e0a117b9a92b9a72bc0e621..f0fe80e4cc54882b8d031248e06f316a6937faaa 100644 (file)
@@ -1,6 +1,5 @@
 /* Include prototypes for glue functions */
 #include <krb5.h>
-#include <des_int.h>
 
 /* Hardcode library fragment name here */
-#define kLibraryName "\pK5Library"
+#define kLibraryName "\pMIT KerberosÂ¥Kerberos5Lib"
index 65a04414de25d6ddccb8add923a9810dc61f97d5..ddf86adf5905011472d0ed740ec6a87f8423b5c8 100644 (file)
-krb5_error_code krb5_init_context(krb5_context *);
-void krb5_free_context(krb5_context);
-krb5_error_code krb5_get_credentials(krb5_context, const krb5_flags, krb5_ccache, krb5_creds *, krb5_creds **);
-krb5_error_code krb5_mk_req_extended(krb5_context, krb5_auth_context *, const krb5_flags, krb5_data *, krb5_creds *, krb5_data * );
-krb5_error_code krb5_rd_rep(krb5_context, krb5_auth_context, const krb5_data *, krb5_ap_rep_enc_part **);
-krb5_error_code krb5_copy_keyblock(krb5_context, const krb5_keyblock *, krb5_keyblock **);
-void krb5_init_ets(krb5_context);
-krb5_error_code krb5_cc_default(krb5_context, krb5_ccache *);
-void krb5_free_principal(krb5_context, krb5_principal );
-void krb5_free_creds(krb5_context, krb5_creds *);
-void krb5_free_cred_contents(krb5_context, krb5_creds *);
-void krb5_free_keyblock(krb5_context, krb5_keyblock *);
-void krb5_free_ap_rep_enc_part(krb5_context, krb5_ap_rep_enc_part *);
-krb5_error_code krb5_sname_to_principal(krb5_context, const char *, const char *, krb5_int32, krb5_principal *);
-krb5_error_code krb5_fwd_tgt_creds(krb5_context, krb5_auth_context, char *, krb5_principal, krb5_principal, krb5_ccache, int forwardable, krb5_data *);
-krb5_error_code krb5_auth_con_init(krb5_context, krb5_auth_context *);
-krb5_error_code krb5_auth_con_free(krb5_context, krb5_auth_context);
-krb5_error_code krb5_auth_con_setflags(krb5_context, krb5_auth_context, krb5_int32);
-krb5_error_code krb5_auth_con_setaddrs(krb5_context, krb5_auth_context, krb5_address *, krb5_address *);
-krb5_error_code krb5_auth_con_setports(krb5_context, krb5_auth_context, krb5_address *, krb5_address *);
-krb5_error_code krb5_auth_con_getlocalsubkey(krb5_context, krb5_auth_context, krb5_keyblock **);
-krb5_error_code krb5_auth_con_genaddrs(krb5_context, krb5_auth_context, int, int);
-int mit_des_ecb_encrypt(const mit_des_cblock  *, mit_des_cblock  *, mit_des_key_schedule , int );
-krb5_error_code mit_des_init_random_key( const krb5_encrypt_block  *, const krb5_keyblock  *, krb5_pointer  *);
-int mit_des_key_sched(mit_des_cblock , mit_des_key_schedule );
-krb5_error_code mit_des_random_key( const krb5_encrypt_block  *, krb5_pointer , krb5_keyblock  *  *);
-void com_err_va(const char  *whoami, errcode_t code, const char  *fmt, va_list ap));
+krb5_error_code krb5_c_encrypt (krb5_context context, const krb5_keyblock*key, krb5_keyusage usage, const krb5_data*ivec, const krb5_data*input, krb5_enc_data*output);
+krb5_error_code krb5_c_decrypt (krb5_context context, const krb5_keyblock*key, krb5_keyusage usage, const krb5_data*ivec, const krb5_enc_data*input, krb5_data*output);
+krb5_error_code krb5_c_encrypt_length (krb5_context context, krb5_enctype enctype, size_t inputlen, size_t*length);
+krb5_error_code krb5_c_block_size (krb5_context context, krb5_enctype enctype, size_t*blocksize);
+krb5_error_code krb5_c_make_random_key (krb5_context context, krb5_enctype enctype, krb5_keyblock*random_key);
+krb5_error_code krb5_c_random_make_octets (krb5_context context, krb5_data*data);
+krb5_error_code krb5_c_random_seed (krb5_context context, krb5_data*data);
+krb5_error_code krb5_c_string_to_key (krb5_context context, krb5_enctype enctype, const krb5_data*string, const krb5_data*salt, krb5_keyblock*key);
+krb5_error_code krb5_c_enctype_compare (krb5_context context, krb5_enctype e1, krb5_enctype e2, krb5_boolean*similar);
+krb5_error_code krb5_c_make_checksum (krb5_context context, krb5_cksumtype cksumtype, const krb5_keyblock*key, krb5_keyusage usage, const krb5_data*input, krb5_checksum*cksum);
+krb5_error_code krb5_c_verify_checksum (krb5_context context, const krb5_keyblock*key, krb5_keyusage usage, const krb5_data*data, const krb5_checksum*cksum, krb5_boolean*valid);
+krb5_error_code krb5_c_checksum_length (krb5_context context, krb5_cksumtype cksumtype, size_t*length);
+krb5_error_code krb5_c_keyed_checksum_types (krb5_context context, krb5_enctype enctype, unsigned int*count, krb5_cksumtype**cksumtypes);
+krb5_boolean valid_enctype (const krb5_enctype ktype);
+krb5_boolean valid_cksumtype (const krb5_cksumtype ctype);
+krb5_boolean is_coll_proof_cksum (const krb5_cksumtype ctype);
+krb5_boolean is_keyed_cksum (const krb5_cksumtype ctype);
+krb5_error_code krb5_encrypt (krb5_context context, const krb5_pointer inptr, krb5_pointer outptr, const size_t size, krb5_encrypt_block* eblock, krb5_pointer ivec);
+krb5_error_code krb5_decrypt (krb5_context context, const krb5_pointer inptr, krb5_pointer outptr, const size_t size, krb5_encrypt_block* eblock, krb5_pointer ivec);
+krb5_error_code krb5_process_key (krb5_context context, krb5_encrypt_block* eblock, const krb5_keyblock* key);
+krb5_error_code krb5_finish_key (krb5_context context, krb5_encrypt_block* eblock);
+krb5_error_code krb5_string_to_key (krb5_context context, const krb5_encrypt_block* eblock, krb5_keyblock* keyblock, const krb5_data* data, const krb5_data* salt);
+krb5_error_code krb5_init_random_key (krb5_context context, const krb5_encrypt_block* eblock, const krb5_keyblock* keyblock, krb5_pointer* ptr);
+krb5_error_code krb5_finish_random_key (krb5_context context, const krb5_encrypt_block* eblock, krb5_pointer* ptr);
+krb5_error_code krb5_random_key (krb5_context context, const krb5_encrypt_block* eblock, krb5_pointer ptr, krb5_keyblock** keyblock);
+krb5_enctype krb5_eblock_enctype (krb5_context context, const krb5_encrypt_block* eblock);
+krb5_error_code krb5_use_enctype (krb5_context context, krb5_encrypt_block* eblock, const krb5_enctype enctype);
+size_t krb5_encrypt_size (const size_t length, krb5_enctype crypto);
+size_t krb5_checksum_size (krb5_context context, const krb5_cksumtype ctype);
+krb5_error_code krb5_calculate_checksum (krb5_context context, const krb5_cksumtype ctype, const krb5_pointer in, const size_t in_length, const krb5_pointer seed, const size_t seed_length, krb5_checksum* outcksum);
+krb5_error_code krb5_verify_checksum (krb5_context context, const krb5_cksumtype ctype, const krb5_checksum* cksum, const krb5_pointer in, const size_t in_length, const krb5_pointer seed, const size_t seed_length);
+krb5_error_code krb5_random_confounder (size_t, krb5_pointer);
+krb5_error_code krb5_encrypt_data (krb5_context context, krb5_keyblock*key, krb5_pointer ivec, krb5_data*data, krb5_enc_data*enc_data);
+krb5_error_code krb5_decrypt_data (krb5_context context, krb5_keyblock*key, krb5_pointer ivec, krb5_enc_data*data, krb5_data*enc_data);
+krb5_error_code krb5_rc_default (krb5_context, krb5_rcache*);
+krb5_error_code krb5_rc_register_type (krb5_context, krb5_rc_ops*);
+krb5_error_code krb5_rc_resolve_type (krb5_context, krb5_rcache*,char*);
+krb5_error_code krb5_rc_resolve_full (krb5_context, krb5_rcache*,char*);
+char* krb5_rc_get_type (krb5_context, krb5_rcache);
+char* krb5_rc_default_type (krb5_context);
+char* krb5_rc_default_name (krb5_context);
+krb5_error_code krb5_auth_to_rep (krb5_context, krb5_tkt_authent*, krb5_donot_replay*);
+krb5_error_code krb5_init_context (krb5_context*);
+void krb5_free_context (krb5_context);
+krb5_error_code krb5_set_default_in_tkt_ktypes (krb5_context, const krb5_enctype*);
+krb5_error_code krb5_get_default_in_tkt_ktypes (krb5_context, krb5_enctype**);
+krb5_error_code krb5_set_default_tgs_ktypes (krb5_context, const krb5_enctype*);
+krb5_error_code krb5_get_tgs_ktypes (krb5_context, krb5_const_principal, krb5_enctype**);
+krb5_error_code krb5_get_permitted_enctypes (krb5_context, krb5_enctype**);
+krb5_boolean krb5_is_permitted_enctype (krb5_context, krb5_enctype);
+krb5_error_code krb5_kdc_rep_decrypt_proc (krb5_context, const krb5_keyblock*, krb5_const_pointer, krb5_kdc_rep* );
+krb5_error_code krb5_decrypt_tkt_part (krb5_context, const krb5_keyblock*, krb5_ticket* );
+krb5_error_code krb5_get_cred_from_kdc (krb5_context, krb5_ccache, krb5_creds*, krb5_creds**, krb5_creds*** );
+krb5_error_code krb5_get_cred_from_kdc_validate (krb5_context, krb5_ccache, krb5_creds*, krb5_creds**, krb5_creds***);
+krb5_error_code krb5_get_cred_from_kdc_renew (krb5_context, krb5_ccache, krb5_creds*, krb5_creds**, krb5_creds***);
+void krb5_free_tgt_creds (krb5_context, krb5_creds**);
+krb5_error_code krb5_get_credentials (krb5_context, const krb5_flags, krb5_ccache, krb5_creds*, krb5_creds**);
+krb5_error_code krb5_get_credentials_validate (krb5_context, const krb5_flags, krb5_ccache, krb5_creds*, krb5_creds**);
+krb5_error_code krb5_get_credentials_renew (krb5_context, const krb5_flags, krb5_ccache, krb5_creds*, krb5_creds**);
+krb5_error_code krb5_get_cred_via_tkt (krb5_context, krb5_creds*, const krb5_flags, krb5_address* const*, krb5_creds*, krb5_creds**);
+krb5_error_code krb5_mk_req (krb5_context, krb5_auth_context*, const krb5_flags, char*, char*, krb5_data*, krb5_ccache, krb5_data*);
+krb5_error_code krb5_mk_req_extended (krb5_context, krb5_auth_context*, const krb5_flags, krb5_data*, krb5_creds*, krb5_data*);
+krb5_error_code krb5_mk_rep (krb5_context, krb5_auth_context, krb5_data*);
+krb5_error_code krb5_rd_rep (krb5_context, krb5_auth_context, const krb5_data*, krb5_ap_rep_enc_part**);
+krb5_error_code krb5_mk_error (krb5_context, const krb5_error*, krb5_data*);
+krb5_error_code krb5_rd_error (krb5_context, const krb5_data*, krb5_error**);
+krb5_error_code krb5_rd_safe (krb5_context, krb5_auth_context, const krb5_data*, krb5_data*, krb5_replay_data*);
+krb5_error_code krb5_rd_priv (krb5_context, krb5_auth_context, const krb5_data*, krb5_data*, krb5_replay_data*);
+krb5_error_code krb5_parse_name (krb5_context, const char*, krb5_principal*);
+krb5_error_code krb5_unparse_name (krb5_context, krb5_const_principal, char**);
+krb5_error_code krb5_unparse_name_ext (krb5_context, krb5_const_principal, char**, int*);
+krb5_error_code krb5_set_principal_realm (krb5_context, krb5_principal, const char*);
+krb5_boolean krb5_address_search (krb5_context, const krb5_address*, krb5_address* const*);
+krb5_boolean krb5_address_compare (krb5_context, const krb5_address*, const krb5_address*);
+int krb5_address_order (krb5_context, const krb5_address*, const krb5_address*);
+krb5_boolean krb5_realm_compare (krb5_context, krb5_const_principal, krb5_const_principal);
+krb5_boolean krb5_principal_compare (krb5_context, krb5_const_principal, krb5_const_principal);
+krb5_error_code krb5_copy_keyblock (krb5_context, const krb5_keyblock*, krb5_keyblock**);
+krb5_error_code krb5_copy_keyblock_contents (krb5_context, const krb5_keyblock*, krb5_keyblock*);
+krb5_error_code krb5_copy_creds (krb5_context, const krb5_creds*, krb5_creds**);
+krb5_error_code krb5_copy_data (krb5_context, const krb5_data*, krb5_data**);
+krb5_error_code krb5_copy_principal (krb5_context, krb5_const_principal, krb5_principal*);
+krb5_error_code krb5_copy_addr (krb5_context, const krb5_address*, krb5_address**);
+krb5_error_code krb5_copy_addresses (krb5_context, krb5_address* const*, krb5_address***);
+krb5_error_code krb5_copy_ticket (krb5_context, const krb5_ticket*, krb5_ticket**);
+krb5_error_code krb5_copy_authdata (krb5_context, krb5_authdata* const*, krb5_authdata***);
+krb5_error_code krb5_copy_authenticator (krb5_context, const krb5_authenticator*, krb5_authenticator**);
+krb5_error_code krb5_copy_checksum (krb5_context, const krb5_checksum*, krb5_checksum**);
+void krb5_init_ets (krb5_context);
+void krb5_free_ets (krb5_context);
+krb5_error_code krb5_generate_subkey (krb5_context, const krb5_keyblock*, krb5_keyblock**);
+krb5_error_code krb5_generate_seq_number (krb5_context, const krb5_keyblock*, krb5_int32*);
+krb5_error_code krb5_get_server_rcache (krb5_context, const krb5_data*, krb5_rcache*);
+krb5_error_code krb5_build_principal_va (krb5_context, krb5_principal, int, const char*, va_list);
+krb5_error_code krb5_425_conv_principal (krb5_context, const char*name, const char*instance, const char*realm, krb5_principal*princ);
+krb5_error_code krb5_524_conv_principal (krb5_context context, const krb5_principal princ, char*name, char*inst, char*realm);
+krb5_error_code krb5_mk_chpw_req (krb5_context context, krb5_auth_context auth_context, krb5_data*ap_req, char*passwd, krb5_data*packet);
+krb5_error_code krb5_rd_chpw_rep (krb5_context context, krb5_auth_context auth_context, krb5_data*packet, int*result_code, krb5_data*result_data);
+krb5_error_code krb5_chpw_result_code_string (krb5_context context, int result_code, char**result_codestr);
+krb5_error_code krb5_kt_register (krb5_context, krb5_kt_ops*);
+krb5_error_code krb5_kt_resolve (krb5_context, const char*, krb5_keytab*);
+krb5_error_code krb5_kt_default_name (krb5_context, char*, int);
+krb5_error_code krb5_kt_default (krb5_context, krb5_keytab*);
+krb5_error_code krb5_kt_free_entry (krb5_context, krb5_keytab_entry*);
+krb5_error_code krb5_kt_remove_entry (krb5_context, krb5_keytab, krb5_keytab_entry*);
+krb5_error_code krb5_kt_add_entry (krb5_context, krb5_keytab, krb5_keytab_entry*);
+krb5_error_code krb5_principal2salt (krb5_context, krb5_const_principal, krb5_data*);
+krb5_error_code krb5_principal2salt_norealm (krb5_context, krb5_const_principal, krb5_data*);
+krb5_error_code krb5_cc_resolve (krb5_context, const char*, krb5_ccache*);
+const char* krb5_cc_default_name (krb5_context);
+krb5_error_code krb5_cc_set_default_name (krb5_context, const char*);
+krb5_error_code krb5_cc_default (krb5_context, krb5_ccache*);
+unsigned int krb5_get_notification_message (void);
+krb5_error_code krb5_cc_copy_creds (krb5_context context, krb5_ccache incc, krb5_ccache outcc);
+krb5_error_code krb5_check_transited_list (krb5_context, krb5_data*trans, krb5_data*realm1, krb5_data*realm2);
+void krb5_free_realm_tree (krb5_context, krb5_principal*);
+void krb5_free_principal (krb5_context, krb5_principal);
+void krb5_free_authenticator (krb5_context, krb5_authenticator*);
+void krb5_free_authenticator_contents (krb5_context, krb5_authenticator*);
+void krb5_free_addresses (krb5_context, krb5_address**);
+void krb5_free_address (krb5_context, krb5_address*);
+void krb5_free_authdata (krb5_context, krb5_authdata**);
+void krb5_free_enc_tkt_part (krb5_context, krb5_enc_tkt_part*);
+void krb5_free_ticket (krb5_context, krb5_ticket*);
+void krb5_free_tickets (krb5_context, krb5_ticket**);
+void krb5_free_kdc_req (krb5_context, krb5_kdc_req*);
+void krb5_free_kdc_rep (krb5_context, krb5_kdc_rep*);
+void krb5_free_last_req (krb5_context, krb5_last_req_entry**);
+void krb5_free_enc_kdc_rep_part (krb5_context, krb5_enc_kdc_rep_part*);
+void krb5_free_error (krb5_context, krb5_error*);
+void krb5_free_ap_req (krb5_context, krb5_ap_req*);
+void krb5_free_ap_rep (krb5_context, krb5_ap_rep*);
+void krb5_free_safe (krb5_context, krb5_safe*);
+void krb5_free_priv (krb5_context, krb5_priv*);
+void krb5_free_priv_enc_part (krb5_context, krb5_priv_enc_part*);
+void krb5_free_cred (krb5_context, krb5_cred*);
+void krb5_free_creds (krb5_context, krb5_creds*);
+void krb5_free_cred_contents (krb5_context, krb5_creds*);
+void krb5_free_cred_enc_part (krb5_context, krb5_cred_enc_part*);
+void krb5_free_checksum (krb5_context, krb5_checksum*);
+void krb5_free_checksum_contents (krb5_context, krb5_checksum*);
+void krb5_free_keyblock (krb5_context, krb5_keyblock*);
+void krb5_free_keyblock_contents (krb5_context, krb5_keyblock*);
+void krb5_free_pa_data (krb5_context, krb5_pa_data**);
+void krb5_free_ap_rep_enc_part (krb5_context, krb5_ap_rep_enc_part*);
+void krb5_free_tkt_authent (krb5_context, krb5_tkt_authent*);
+void krb5_free_pwd_data (krb5_context, krb5_pwd_data*);
+void krb5_free_pwd_sequences (krb5_context, passwd_phrase_element**);
+void krb5_free_data (krb5_context, krb5_data*);
+void krb5_free_data_contents (krb5_context, krb5_data*);
+void krb5_free_unparsed_name (krb5_context, char*);
+void krb5_free_cksumtypes (krb5_context, krb5_cksumtype*);
+krb5_error_code krb5_us_timeofday (krb5_context, krb5_int32*, krb5_int32*);
+krb5_error_code krb5_timeofday (krb5_context, krb5_int32*);
+krb5_error_code krb5_os_localaddr (krb5_context, krb5_address***);
+krb5_error_code krb5_get_default_realm (krb5_context, char**);
+krb5_error_code krb5_set_default_realm (krb5_context, const char*);
+krb5_error_code krb5_sname_to_principal (krb5_context, const char*, const char*, krb5_int32, krb5_principal*);
+krb5_error_code krb5_change_password (krb5_context context, krb5_creds*creds, char*newpw, int*result_code, krb5_data*result_code_string, krb5_data*result_string);
+krb5_error_code krb5_get_profile (krb5_context, profile_t*);
+krb5_error_code krb5_secure_config_files (krb5_context);
+krb5_error_code krb5_send_tgs (krb5_context, const krb5_flags, const krb5_ticket_times*, const krb5_enctype*, krb5_const_principal, krb5_address* const*, krb5_authdata* const*, krb5_pa_data* const*, const krb5_data*, krb5_creds*, krb5_response*);
+krb5_error_code krb5_get_in_tkt_with_password (krb5_context, const krb5_flags, krb5_address* const*, krb5_enctype*, krb5_preauthtype*, const char*, krb5_ccache, krb5_creds*, krb5_kdc_rep**);
+krb5_error_code krb5_get_in_tkt_with_skey (krb5_context, const krb5_flags, krb5_address* const*, krb5_enctype*, krb5_preauthtype*, const krb5_keyblock*, krb5_ccache, krb5_creds*, krb5_kdc_rep**);
+krb5_error_code krb5_get_in_tkt_with_keytab (krb5_context, const krb5_flags, krb5_address* const*, krb5_enctype*, krb5_preauthtype*, const krb5_keytab, krb5_ccache, krb5_creds*, krb5_kdc_rep**);
+krb5_error_code krb5_decode_kdc_rep (krb5_context, krb5_data*, const krb5_keyblock*, krb5_kdc_rep**);
+krb5_error_code krb5_rd_req (krb5_context, krb5_auth_context*, const krb5_data*, krb5_const_principal, krb5_keytab, krb5_flags*, krb5_ticket**);
+krb5_error_code krb5_rd_req_decoded (krb5_context, krb5_auth_context*, const krb5_ap_req*, krb5_const_principal, krb5_keytab, krb5_flags*, krb5_ticket**);
+krb5_error_code krb5_rd_req_decoded_anyflag (krb5_context, krb5_auth_context*, const krb5_ap_req*, krb5_const_principal, krb5_keytab, krb5_flags*, krb5_ticket**);
+krb5_error_code krb5_kt_read_service_key (krb5_context, krb5_pointer, krb5_principal, krb5_kvno, krb5_enctype, krb5_keyblock**);
+krb5_error_code krb5_mk_safe (krb5_context, krb5_auth_context, const krb5_data*, krb5_data*, krb5_replay_data*);
+krb5_error_code krb5_mk_priv (krb5_context, krb5_auth_context, const krb5_data*, krb5_data*, krb5_replay_data*);
+krb5_error_code krb5_cc_register (krb5_context, krb5_cc_ops*, krb5_boolean);
+krb5_error_code krb5_sendauth (krb5_context, krb5_auth_context*, krb5_pointer, char*, krb5_principal, krb5_principal, krb5_flags, krb5_data*, krb5_creds*, krb5_ccache, krb5_error**, krb5_ap_rep_enc_part**, krb5_creds**);
+krb5_error_code krb5_recvauth (krb5_context, krb5_auth_context*, krb5_pointer, char*, krb5_principal, krb5_int32, krb5_keytab, krb5_ticket**);
+krb5_error_code krb5_walk_realm_tree (krb5_context, const krb5_data*, const krb5_data*, krb5_principal**, int);
+krb5_error_code krb5_mk_ncred (krb5_context, krb5_auth_context, krb5_creds**, krb5_data**, krb5_replay_data*);
+krb5_error_code krb5_mk_1cred (krb5_context, krb5_auth_context, krb5_creds*, krb5_data**, krb5_replay_data*);
+krb5_error_code krb5_rd_cred (krb5_context, krb5_auth_context, krb5_data*, krb5_creds***, krb5_replay_data*);
+krb5_error_code krb5_fwd_tgt_creds (krb5_context, krb5_auth_context, char*, krb5_principal, krb5_principal, krb5_ccache, int forwardable, krb5_data*);
+krb5_error_code krb5_auth_con_init (krb5_context, krb5_auth_context*);
+krb5_error_code krb5_auth_con_free (krb5_context, krb5_auth_context);
+krb5_error_code krb5_auth_con_setflags (krb5_context, krb5_auth_context, krb5_int32);
+krb5_error_code krb5_auth_con_getflags (krb5_context, krb5_auth_context, krb5_int32*);
+krb5_error_code krb5_auth_con_setaddrs (krb5_context, krb5_auth_context, krb5_address*, krb5_address*);
+krb5_error_code krb5_auth_con_getaddrs (krb5_context, krb5_auth_context, krb5_address**, krb5_address**);
+krb5_error_code krb5_auth_con_setports (krb5_context, krb5_auth_context, krb5_address*, krb5_address*);
+krb5_error_code krb5_auth_con_setuseruserkey (krb5_context, krb5_auth_context, krb5_keyblock*);
+krb5_error_code krb5_auth_con_getkey (krb5_context, krb5_auth_context, krb5_keyblock**);
+krb5_error_code krb5_auth_con_getlocalsubkey (krb5_context, krb5_auth_context, krb5_keyblock**);
+krb5_error_code krb5_auth_con_set_req_cksumtype (krb5_context, krb5_auth_context, krb5_cksumtype);
+krb5_error_code krb5_auth_con_set_safe_cksumtype (krb5_context, krb5_auth_context, krb5_cksumtype);
+krb5_error_code krb5_auth_con_getcksumtype (krb5_context, krb5_auth_context, krb5_cksumtype*);
+krb5_error_code krb5_auth_con_getlocalseqnumber (krb5_context, krb5_auth_context, krb5_int32*);
+krb5_error_code krb5_auth_con_getremoteseqnumber (krb5_context, krb5_auth_context, krb5_int32*);
+krb5_error_code krb5_auth_con_initivector (krb5_context, krb5_auth_context);
+krb5_error_code krb5_auth_con_setivector (krb5_context, krb5_auth_context, krb5_pointer);
+krb5_error_code krb5_auth_con_getivector (krb5_context, krb5_auth_context, krb5_pointer*);
+krb5_error_code krb5_auth_con_setrcache (krb5_context, krb5_auth_context, krb5_rcache);
+krb5_error_code krb5_auth_con_getrcache (krb5_context, krb5_auth_context, krb5_rcache*);
+krb5_error_code krb5_auth_con_getauthenticator (krb5_context, krb5_auth_context, krb5_authenticator**);
+krb5_error_code krb5_auth_con_getremotesubkey (krb5_context, krb5_auth_context, krb5_keyblock**);
+krb5_error_code krb5_read_password (krb5_context, const char*, const char*, char*, int*);
+krb5_error_code krb5_aname_to_localname (krb5_context, krb5_const_principal, const int, char*);
+krb5_error_code krb5_get_host_realm (krb5_context, const char*, char***);
+krb5_error_code krb5_free_host_realm (krb5_context, char* const*);
+krb5_error_code krb5_get_realm_domain (krb5_context, const char*, char**);
+krb5_boolean krb5_kuserok (krb5_context, krb5_principal, const char*);
+krb5_error_code krb5_auth_con_genaddrs (krb5_context, krb5_auth_context, int, int);
+krb5_error_code krb5_gen_portaddr (krb5_context, const krb5_address*, krb5_const_pointer, krb5_address**);
+krb5_error_code krb5_make_fulladdr (krb5_context, krb5_address*, krb5_address*, krb5_address*);
+krb5_error_code krb5_os_hostaddr (krb5_context, const char*, krb5_address***);
+krb5_error_code krb5_set_real_time (krb5_context, krb5_int32, krb5_int32);
+krb5_error_code krb5_set_debugging_time (krb5_context, krb5_int32, krb5_int32);
+krb5_error_code krb5_use_natural_time (krb5_context);
+krb5_error_code krb5_get_time_offsets (krb5_context, krb5_int32*, krb5_int32*);
+krb5_error_code krb5_set_time_offsets (krb5_context, krb5_int32, krb5_int32);
+krb5_error_code krb5_string_to_enctype (char*, krb5_enctype*);
+krb5_error_code krb5_string_to_salttype (char*, krb5_int32*);
+krb5_error_code krb5_string_to_cksumtype (char*, krb5_cksumtype*);
+krb5_error_code krb5_string_to_timestamp (char*, krb5_timestamp*);
+krb5_error_code krb5_string_to_deltat (char*, krb5_deltat*);
+krb5_error_code krb5_enctype_to_string (krb5_enctype, char*, size_t);
+krb5_error_code krb5_salttype_to_string (krb5_int32, char*, size_t);
+krb5_error_code krb5_cksumtype_to_string (krb5_cksumtype, char*, size_t);
+krb5_error_code krb5_timestamp_to_string (krb5_timestamp, char*, size_t);
+krb5_error_code krb5_timestamp_to_sfstring (krb5_timestamp, char*, size_t, char*);
+krb5_error_code krb5_deltat_to_string (krb5_deltat, char*, size_t);
+krb5_error_code krb5_prompter_posix (krb5_context context, void*data, const char*name, const char*banner, int num_prompts, krb5_prompt prompts[]);
+void krb5_get_init_creds_opt_init (krb5_get_init_creds_opt*opt);
+void krb5_get_init_creds_opt_set_tkt_life (krb5_get_init_creds_opt*opt, krb5_deltat tkt_life);
+void krb5_get_init_creds_opt_set_renew_life (krb5_get_init_creds_opt*opt, krb5_deltat renew_life);
+void krb5_get_init_creds_opt_set_forwardable (krb5_get_init_creds_opt*opt, int forwardable);
+void krb5_get_init_creds_opt_set_proxiable (krb5_get_init_creds_opt*opt, int proxiable);
+void krb5_get_init_creds_opt_set_etype_list (krb5_get_init_creds_opt*opt, krb5_enctype*etype_list, int etype_list_length);
+void krb5_get_init_creds_opt_set_address_list (krb5_get_init_creds_opt*opt, krb5_address**addresses);
+void krb5_get_init_creds_opt_set_preauth_list (krb5_get_init_creds_opt*opt, krb5_preauthtype*preauth_list, int preauth_list_length);
+void krb5_get_init_creds_opt_set_salt (krb5_get_init_creds_opt*opt, krb5_data*salt);
+krb5_error_code krb5_get_init_creds_password (krb5_context context, krb5_creds*creds, krb5_principal client, char*password, krb5_prompter_fct prompter, void*data, krb5_deltat start_time, char*in_tkt_service, krb5_get_init_creds_opt*options);
+krb5_error_code krb5_get_init_creds_keytab (krb5_context context, krb5_creds*creds, krb5_principal client, krb5_keytab arg_keytab, krb5_deltat start_time, char*in_tkt_service, krb5_get_init_creds_opt*options);
+void krb5_verify_init_creds_opt_init (krb5_verify_init_creds_opt*options);
+void krb5_verify_init_creds_opt_set_ap_req_nofail (krb5_verify_init_creds_opt*options, int ap_req_nofail);
+krb5_error_code krb5_verify_init_creds (krb5_context context, krb5_creds*creds, krb5_principal ap_req_server, krb5_keytab ap_req_keytab, krb5_ccache*ccache, krb5_verify_init_creds_opt*options);
+krb5_error_code krb5_get_validated_creds (krb5_context context, krb5_creds*creds, krb5_principal client, krb5_ccache ccache, char*in_tkt_service);
+krb5_error_code krb5_get_renewed_creds (krb5_context context, krb5_creds*creds, krb5_principal client, krb5_ccache ccache, char*in_tkt_service);
+krb5_error_code krb5_realm_iterator_create (krb5_context context, void**iter_p);
+krb5_error_code krb5_realm_iterator (krb5_context context, void**iter_p, char**ret_realm);
+void krb5_realm_iterator_free (krb5_context context, void**iter_p);
+void krb5_free_realm_string (krb5_context context, char*str);
index f81e27c395a41b9eee1e91f13aaa5d3f2801000d..9d7ace9768850dcad6effdbfc5e4c50c22a5f4d8 100644 (file)
 
 #Temporary exports (DO NOT USE)
        decode_krb5_ticket
-#      profile_get_values
        krb5_random_confounder
        krb5_size_opaque
        krb5_internalize_opaque
        krb5_ser_rcache_init
        decode_krb5_ap_req
        krb5_mcc_ops
-
-#com_err -- we should really have this in a separate lib!
-#      add_error_table
-#      remove_error_table
-       error_message
-       
\ No newline at end of file
diff --git a/src/mac/KerberosProfileLib ReadMe b/src/mac/KerberosProfileLib ReadMe
new file mode 100644 (file)
index 0000000..96fea11
--- /dev/null
@@ -0,0 +1,11 @@
+KerberosProfileLib implements the Kerberos 5 profile API, used for reading and writing
+Kerberos configuration files. See profile.h for API documentation.
+
+Note that you should rarely, if ever, use profile_init or profile_init_path. You 
+probably mean to use krb5_get_profile, to avoid making your code depend on the
+location of a specific Kerberos 5 preferences file. This is especially important
+as the name and possibly the location of Kerberos configuration file is going to
+change in the future.
+
+Also note that you need both Kerberos5Lib:Headers: and KerberosProfileLib:Headers:
+in your include path to use profile.h
\ No newline at end of file
diff --git a/src/mac/KrbProfileLib.glue.h b/src/mac/KrbProfileLib.glue.h
new file mode 100644 (file)
index 0000000..05748ee
--- /dev/null
@@ -0,0 +1,6 @@
+#ifndef _KERBEROSPROFILE_CFMGLUE_H_
+#define _KERBEROSPROFILE_CFMGLUE_H_
+
+Boolean KerberosProfileLibraryIsPresent ();
+
+#endif /* _KERBEROSPROFILE_CFMGLUE_H_ */
\ No newline at end of file
diff --git a/src/mac/KrbProfileLib.glue.post.cin b/src/mac/KrbProfileLib.glue.post.cin
new file mode 100644 (file)
index 0000000..bc3bf9a
--- /dev/null
@@ -0,0 +1,7 @@
+#include <KrbProfileLib.glue.h>
+
+Boolean KerberosProfileLibraryIsPresent ()
+{
+       Ptr     symAddr;
+       return (Find_Symbol (&symAddr, "\pprofile_init", profile_init_ProcInfo)) == noErr;
+}
\ No newline at end of file
diff --git a/src/mac/KrbProfileLib.glue.pre.cin b/src/mac/KrbProfileLib.glue.pre.cin
new file mode 100644 (file)
index 0000000..37b20e8
--- /dev/null
@@ -0,0 +1,5 @@
+/* Include prototypes for glue functions */
+#include <profile.h>
+
+/* Hardcode library fragment name here */
+#define kLibraryName "\pMIT KerberosÂ¥KerberosProfileLib"
diff --git a/src/mac/KrbProfileLib.glue.proto.h b/src/mac/KrbProfileLib.glue.proto.h
new file mode 100644 (file)
index 0000000..80e3337
--- /dev/null
@@ -0,0 +1,18 @@
+long profile_init (profile_filespec_t *files, profile_t *ret_profile);
+long profile_init_path (profile_filespec_list_t filelist, profile_t *ret_profile);
+long profile_flush (profile_t profile);
+void profile_abandon (profile_t profile);
+void profile_release (profile_t profile);
+long profile_get_values (profile_t profile, const char **names, char ***ret_values);
+void profile_free_list (char **list);
+long profile_get_string (profile_t profile, const char *name, const char *subname, const char *subsubname, const char *def_val, char **ret_string); long profile_get_integer (profile_t profile, const char *name, const char *subname, const char *subsubname, int def_val, int *ret_default);
+long profile_get_relation_names (profile_t profile, const char **names, char ***ret_names);
+long profile_get_subsection_names (profile_t profile, const char **names, char ***ret_names);
+long profile_iterator_create (profile_t profile, const char **names, int flags, void **ret_iter);
+void profile_iterator_free (void **iter_p);
+long profile_iterator (void    **iter_p, char **ret_name, char **ret_value);
+void profile_release_string (char *str);
+long profile_update_relation (profile_t profile, const char **names, const char *old_value, const char *new_value);
+long profile_clear_relation (profile_t profile, const char **names);
+long profile_rename_section (profile_t profile, const char **names, const char *new_name);
+long profile_add_relation (profile_t profile, const char **names, const char *new_value);
index 9797fe5ad000982d10c19f786588edbc9a1c5af3..dad6c6f8eb8673557a5ccd6594cd7e3a6e5f010a 100644 (file)
@@ -20,16 +20,23 @@ library-kind-final                                          =
 ##############################################################################################################
 
 #      Everything
-all Ã„ glue all-debug all-final
+all Ã„ unset-echo all-debug all-final
 
 #      Debugging versions
-all-debug Ã„ ppc-debug 68k-debug headers
+all-debug Ã„ unset-echo ppc-debug 68k-debug
 
 #      Final versions
-all-final Ã„ ppc-final 68k-final headers
+all-final Ã„ unset-echo ppc-final 68k-final
 
 #      Clasic 68K glue
-glue Ã„ glue-gss glue-krb5
+glue Ã„ unset-echo glue-gss glue-krb5
+
+unset-echo Ã„
+       If ({MacdevScriptDebug})
+               Set Echo 1
+       Else
+               Unset Echo
+       End
 
 ##############################################################################################################
 ###                    More global constants
@@ -42,42 +49,49 @@ krb5-library-output-folder                                                  = {root-folder}:Kerberos5Lib:Binaries:
 krb5-globals-library-output-folder                                     = {root-folder}:Kerberos5GlobalsLib:Binaries:
 krb5-globals-data-library-output-folder                                = {krb5-globals-library-output-folder}
 profile-library-output-folder                                          = {root-folder}:KerberosProfileLib:Binaries:
+comerr-library-output-folder                                           = {root-folder}:ComErrLib:Binaries:
 
 gss-library-name                                                                       = GSSLib
 krb5-library-name                                                                      = Kerberos5Lib
 krb5-globals-library-name                                                      = Krb5GlobalsLib
 krb5-globals-data-library-name                                         = Krb5GlobalsDataLib
 profile-library-name                                                           = KrbProfileLib
+comerr-library-name                                                                    = ComErrLib
 
 gss-library-export                                                                     = {root-folder}mac:GSSLibrary.exp
 krb5-library-export                                                                    = {root-folder}mac:K5Library.exp
 krb5-globals-library-export                                                    = {krb5-globals-root-folder}Krb5Globals.exp
 krb5-globals-data-library-export                                       = {krb5-globals-root-folder}Krb5GlobalsData.exp
 profile-library-export                                                         = {root-folder}util:profile:profile.exp
+comerr-library-export                                                          = {root-folder}util:et:et.exp
 
 gss-library-fragment-name                                                      = "GSSLibrary"
 krb5-library-fragment-name                                                     = "MIT KerberosÂ¥Kerberos5Lib"
 krb5-globals-library-fragment-name                                     = "MIT KerberosÂ¥Kerberos5GlobalsLib"
 krb5-globals-data-library-fragment-name                                = "MIT KerberosÂ¥Kerberos5GlobalsDataLib"
 profile-library-fragment-name                                          = "MIT KerberosÂ¥KerberosProfileLib"
+comerr-library-fragment-name                                           = "MIT KerberosÂ¥ComErrLib"
 
 gss-library-main                                                                       = Â¶"¶"
 krb5-library-main                                                                      = Â¶"¶"
 krb5-globals-library-main                                                      = Â¶"¶"
 krb5-globals-data-library-main                                         = Â¶"¶"
 profile-library-main                                                           = Â¶"¶"
+comerr-library-main                                                                    = Â¶"¶"
 
 gss-library-init                                                                       = __initializeGSS
 krb5-library-init                                                                      = __initializeK5
 krb5-globals-library-init                                                      = __initialize_Kerberos5GlobalsLib
 krb5-globals-data-library-init                                         = __initialize
 profile-library-init                                                           = InitializeProfileLib
+comerr-library-init                                                                    = __initialize
        
 gss-library-term                                                                       = __terminateGSS
 krb5-library-term                                                                      = __terminateK5
 krb5-globals-library-term                                                      = __terminate_Kerberos5GlobalsLib
 krb5-globals-data-library-term                                         = __terminate
 profile-library-term                                                           = TerminateProfileLib
+comerr-library-term                                                                    = __terminate
 
 gss-library-current-version                                                    = 1
 gss-library-definition-version                                         = 0
@@ -99,14 +113,18 @@ profile-library-current-version                                            = 0
 profile-library-definition-version                                     = 0
 profile-library-implementation-version                         = 0
 
+comerr-library-current-version                                         = 0
+comerr-library-definition-version                                      = 0
+comerr-library-implementation-version                          = 0
+
 ##############################################################################################################
 ###                    Generation of file lists
 ##############################################################################################################
 
+list-generation-script-working-folder = "{root-folder}mac:"
 list-generation-script-folder = "{root-folder}mac:"
 list-generation-script = "{list-generation-script-folder}macfile_gen.pl"
 list-generation-script-root = ".."
-list-generation-script-prefix = "{root-folder}"
 
 all-files-list                                                                 = {root-folder}"All files.list"
 all-sources-list                                                               = {root-folder}"All sources.list"
@@ -132,6 +150,11 @@ profile-objects-68k-debug-list                                     = {root-folder}"Profile objects 68K debug.lis
 profile-objects-ppc-final-list                                 = {root-folder}"Profile objects PPC final.list"
 profile-objects-68k-final-list                                 = {root-folder}"Profile objects 68K final.list"
 
+comerr-objects-ppc-debug-list                                  = {root-folder}"ComErr objects PPC debug.list"
+comerr-objects-68k-debug-list                                  = {root-folder}"ComErr objects 68K debug.list"
+comerr-objects-ppc-final-list                                  = {root-folder}"ComErr objects PPC final.list"
+comerr-objects-68k-final-list                                  = {root-folder}"ComErr objects 68K final.list"
+
 all-lists = Â¶
        {all-files-list} Â¶
        {all-sources-list} Â¶
@@ -150,7 +173,11 @@ all-lists = 
        {profile-objects-ppc-debug-list} Â¶
        {profile-objects-68k-debug-list} Â¶
        {profile-objects-ppc-final-list} Â¶
-       {profile-objects-68k-final-list}
+       {profile-objects-68k-final-list} Â¶
+       {comerr-objects-ppc-debug-list} Â¶
+       {comerr-objects-68k-debug-list} Â¶
+       {comerr-objects-ppc-final-list} Â¶
+       {comerr-objects-68k-final-list}
 
 file-lists Ã„ {all-lists}
 
@@ -159,75 +186,91 @@ file-lists 
 # path to root Makefile.in. This is why we run it with -x to specify the root.
 
 {all-files-list} Ã„ {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} all-files {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} all-files {list-generation-script-root} Â¶
  > {Targ}
 
 {all-sources-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} all-sources {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} all-sources {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {all-folders-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} all-folders {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} all-folders {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {include-folders-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} include-folders {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} include-folders {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {gss-sources-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} gss-sources {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} gss-sources {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {krb5-sources-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} krb5-sources {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} krb5-sources {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {gss-objects-ppc-debug-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} gss-objects-ppc-debug {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} gss-objects-ppc-debug {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {gss-objects-68k-debug-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} gss-objects-68k-debug {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} gss-objects-68k-debug {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {gss-objects-ppc-final-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} gss-objects-ppc-final {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} gss-objects-ppc-final {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {gss-objects-68k-final-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} gss-objects-68k-final {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} gss-objects-68k-final {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {krb5-objects-ppc-debug-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} krb5-objects-ppc-debug {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} krb5-objects-ppc-debug {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {krb5-objects-68k-debug-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} krb5-objects-68k-debug {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} krb5-objects-68k-debug {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {krb5-objects-ppc-final-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} krb5-objects-ppc-final {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} krb5-objects-ppc-final {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {krb5-objects-68k-final-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} krb5-objects-68k-final {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} krb5-objects-68k-final {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {profile-objects-ppc-debug-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} profile-objects-ppc-debug {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} profile-objects-ppc-debug {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {profile-objects-68k-debug-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} profile-objects-68k-debug {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} profile-objects-68k-debug {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {profile-objects-ppc-final-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} profile-objects-ppc-final {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} profile-objects-ppc-final {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 {profile-objects-68k-final-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
-       perl -x"{list-generation-script-folder}" {list-generation-script} profile-objects-68k-final {list-generation-script-root} {list-generation-script-prefix} Â¶
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} profile-objects-68k-final {list-generation-script-root} Â¶
+ < {all-files-list} > {Targ}
+
+{comerr-objects-ppc-debug-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} comerr-objects-ppc-debug {list-generation-script-root} Â¶
+ < {all-files-list} > {Targ}
+
+{comerr-objects-68k-debug-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} comerr-objects-68k-debug {list-generation-script-root} Â¶
+ < {all-files-list} > {Targ}
+
+{comerr-objects-ppc-final-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} comerr-objects-ppc-final {list-generation-script-root} Â¶
+ < {all-files-list} > {Targ}
+
+{comerr-objects-68k-final-list} Ã„ {all-files-list} {list-generation-script} {makefile-name}
+       perl -x"{list-generation-script-working-folder}" {list-generation-script} comerr-objects-68k-final {list-generation-script-root} Â¶
  < {all-files-list} > {Targ}
 
 ##############################################################################################################
@@ -324,19 +367,19 @@ autogenerated-files = 
        Catenate {root-folder}util:profile:profile.hin {root-folder}util:profile:prof_err.h > {root-folder}util:profile:profile.h
        
 {root-folder}include:profile.h Ã„ {root-folder}util:profile:profile.h
-       Duplicate -y {root-folder}util:profile:profile.h {root-folder}include:profile.h
+       Catenate {root-folder}util:profile:profile.h > {root-folder}include:profile.h
        SetFile -a l "{Targ}"
 
 {root-folder}include:krb5:osconf.h Ã„ {root-folder}include:krb5:stock:osconf.h
-       Duplicate -y {root-folder}include:krb5:stock:osconf.h {root-folder}include:krb5:osconf.h
+       Catenate {root-folder}include:krb5:stock:osconf.h > {root-folder}include:krb5:osconf.h
        SetFile -a l "{Targ}"
 
 {root-folder}lib:gssapi:generic:gssapi.h Ã„ {root-folder}lib:gssapi:generic:gssapi.hin
-       Duplicate -y {root-folder}lib:gssapi:generic:gssapi.hin {root-folder}lib:gssapi:generic:gssapi.h
+       Catenate {root-folder}lib:gssapi:generic:gssapi.hin > {root-folder}lib:gssapi:generic:gssapi.h
        SetFile -a l "{Targ}"
        
 {root-folder}include:autoconf.h Ã„ {root-folder}mac:libraries:autoconf.h
-       Duplicate -y {root-folder}mac:libraries:autoconf.h {root-folder}include:autoconf.h
+       Catenate {root-folder}mac:libraries:autoconf.h > {root-folder}include:autoconf.h
        SetFile -a l "{Targ}"
 
 ##############################################################################################################
@@ -377,16 +420,27 @@ autogenerated-files = 
 ###                    krb5-globals-library-term                                               -- name of Krb5 globals library termination routine
 ###                    krb5-globals-library-linker-options                             -- all other Krb5 globals library linker options
 ###            For profile library
-###                    profile-library-output-folder                                   -- destination of Krb5 globals library output
-###                    profile-library-name                                                    -- name of the Krb5 globals library
-###                    profile-library-export                                                  -- name of gss Krb5 globals library export file
-###                    profile-library-libraries                                               -- list of libraries Krb5 globals library links against
-###                    profile-library-objects                                                 -- list of object files Krb5 globals library links
-###                    profile-library-fragment-name                                   -- name of Krb5 globals library fragment
-###                    profile-library-main                                                    -- name of Krb5 globals library main entry point
-###                    profile-library-init                                                    -- name of Krb5 globals library initialization routine
-###                    profile-library-term                                                    -- name of Krb5 globals library termination routine
-###                    profile-library-linker-options                                  -- all other Krb5 globals library linker options
+###                    profile-library-output-folder                                   -- destination of profile library output
+###                    profile-library-name                                                    -- name of the profile library
+###                    profile-library-export                                                  -- name of gss profile library export file
+###                    profile-library-libraries                                               -- list of libraries profile library links against
+###                    profile-library-objects                                                 -- list of object files profile library links
+###                    profile-library-fragment-name                                   -- name of profile library fragment
+###                    profile-library-main                                                    -- name of profile library main entry point
+###                    profile-library-init                                                    -- name of profile library initialization routine
+###                    profile-library-term                                                    -- name of profile library termination routine
+###                    profile-library-linker-options                                  -- all other profile library linker options
+###            For comerr library
+###                    comerr-library-output-folder                                    -- destination of comerr library output
+###                    comerr-library-name                                                             -- name of the comerr library
+###                    comerr-library-export                                                   -- name of gss comerr library export file
+###                    comerr-library-libraries                                                -- list of libraries comerr library links against
+###                    comerr-library-objects                                                  -- list of object files comerr library links
+###                    comerr-library-fragment-name                                    -- name of comerr library fragment
+###                    comerr-library-main                                                             -- name of comerr library main entry point
+###                    comerr-library-init                                                             -- name of comerr library initialization routine
+###                    comerr-library-term                                                             -- name of comerr library termination routine
+###                    comerr-library-linker-options                                   -- all other comerr library linker options
 ###            General
 ###                    library-linker                                                                  -- linker to use
 ###                    autogenerated-files                                                             -- list of autogenerated files
@@ -458,19 +512,23 @@ object-suffix-68k-data                                    = .68k.o
 gss-library-libraries-ppc-debug = Â¶
        {standard-libraries-ppc-debug} Â¶
        {krb5-library-output-folder}{krb5-library-name}{library-platform-ppc}{library-kind-debug} Â¶
-       {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-debug}
+       {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-debug} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-debug}
 gss-library-libraries-68k-debug = Â¶
        {standard-libraries-68k-debug} Â¶
        {krb5-library-output-folder}{krb5-library-name}{library-platform-68k}{library-kind-debug} Â¶
-       {profile-library-output-folder}{profile-library-name}{library-platform-68k}{library-kind-debug}
+       {profile-library-output-folder}{profile-library-name}{library-platform-68k}{library-kind-debug} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-68k}{library-kind-debug}
 gss-library-libraries-ppc-final = Â¶
        {standard-libraries-ppc-final} Â¶
        {krb5-library-output-folder}{krb5-library-name}{library-platform-ppc}{library-kind-final} Â¶
-       {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-final}
+       {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-final} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-final}
 gss-library-libraries-68k-final = Â¶
        {standard-libraries-68k-final} Â¶
        {krb5-library-output-folder}{krb5-library-name}{library-platform-68k}{library-kind-final} Â¶
-       {profile-library-output-folder}{profile-library-name}{library-platform-68k}{library-kind-final}
+       {profile-library-output-folder}{profile-library-name}{library-platform-68k}{library-kind-final} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-68k}{library-kind-final}
 
 krb5-library-libraries-ppc-debug = Â¶
        {standard-libraries-ppc-debug} Â¶
@@ -479,6 +537,7 @@ krb5-library-libraries-ppc-debug = 
        {errorlib-ppc-debug} Â¶
        {krb5-globals-library-output-folder}{krb5-globals-library-name}{library-platform-ppc}{library-kind-debug} Â¶
        {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-debug} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-debug} Â¶
        Â¶"{PPCLibraries}PPCMath64Lib.o¶" Â¶
        Â¶"{SharedLibraries}DriverServicesLib¶"
 krb5-library-libraries-68k-debug = Â¶
@@ -487,7 +546,8 @@ krb5-library-libraries-68k-debug = 
        {socketslib-68k-debug} Â¶
        {errorlib-68k-debug} Â¶
        {krb5-globals-library-output-folder}{krb5-globals-library-name}{library-platform-68k}{library-kind-debug} Â¶
-       {profile-library-output-folder}{profile-library-name}{library-platform-68k}{library-kind-debug}
+       {profile-library-output-folder}{profile-library-name}{library-platform-68k}{library-kind-debug} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-68k}{library-kind-debug}
 krb5-library-libraries-ppc-final = Â¶
        {standard-libraries-ppc-final} Â¶
        {ccachelib-ppc-final} Â¶
@@ -495,6 +555,7 @@ krb5-library-libraries-ppc-final = 
        {errorlib-ppc-final} Â¶
        {krb5-globals-library-output-folder}{krb5-globals-library-name}{library-platform-ppc}{library-kind-final} Â¶
        {profile-library-output-folder}{profile-library-name}{library-platform-ppc}{library-kind-final} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-final} Â¶
        Â¶"{PPCLibraries}PPCMath64Lib.o¶" Â¶
        Â¶"{SharedLibraries}DriverServicesLib¶"
 krb5-library-libraries-68k-final = Â¶
@@ -503,7 +564,8 @@ krb5-library-libraries-68k-final = 
        {socketslib-68k-final} Â¶
        {errorlib-68k-final} Â¶
        {krb5-globals-library-output-folder}{krb5-globals-library-name}{library-platform-68k}{library-kind-final} Â¶
-       {profile-library-output-folder}{profile-library-name}{library-platform-68k}{library-kind-final}
+       {profile-library-output-folder}{profile-library-name}{library-platform-68k}{library-kind-final} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-68k}{library-kind-final}
 
 krb5-globals-library-libraries-ppc-debug = Â¶
        {standard-libraries-ppc-debug} Â¶
@@ -526,12 +588,25 @@ krb5-globals-data-library-libraries-ppc = 
 krb5-globals-data-library-libraries-68k = Â¶"{MW68KLibraries}MSL MWCFM68KRuntime.Lib¶"
 
 profile-library-libraries-ppc-debug = Â¶
-       {standard-libraries-ppc-debug}
+       {standard-libraries-ppc-debug} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-debug}
 profile-library-libraries-68k-debug = Â¶
-       {standard-libraries-68k-debug}
+       {standard-libraries-68k-debug} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-68k}{library-kind-debug}
 profile-library-libraries-ppc-final = Â¶
-       {standard-libraries-ppc-final}
+       {standard-libraries-ppc-final} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-ppc}{library-kind-final}
 profile-library-libraries-68k-final = Â¶
+       {standard-libraries-68k-final} Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform-68k}{library-kind-final}
+
+comerr-library-libraries-ppc-debug = Â¶
+       {standard-libraries-ppc-debug}
+comerr-library-libraries-68k-debug = Â¶
+       {standard-libraries-68k-debug}
+comerr-library-libraries-ppc-final = Â¶
+       {standard-libraries-ppc-final}
+comerr-library-libraries-68k-final = Â¶
        {standard-libraries-68k-final}
 
 ### Construct linker options. 
@@ -555,9 +630,9 @@ krb5-library-common-linker-options = 
        -dv {krb5-library-definition-version} Â¶
        -uv {krb5-library-implementation-version}
 
-krb5-library-linker-options-ppc-debug = {common-linker-options-debug} {krb5-library-common-linker-options}
+krb5-library-linker-options-ppc-debug = {common-linker-options-debug} {krb5-library-common-linker-options} -weaklib "DriverServicesLib"
 krb5-library-linker-options-68k-debug = {common-linker-options-debug} {krb5-library-common-linker-options}
-krb5-library-linker-options-ppc-final = {common-linker-options-final} {krb5-library-common-linker-options}
+krb5-library-linker-options-ppc-final = {common-linker-options-final} {krb5-library-common-linker-options} -weaklib "DriverServicesLib"
 krb5-library-linker-options-68k-final = {common-linker-options-final} {krb5-library-common-linker-options}
 
 krb5-globals-library-common-linker-options = Â¶
@@ -589,15 +664,33 @@ profile-library-linker-options-68k-debug = {common-linker-options-debug} {profil
 profile-library-linker-options-ppc-final = {common-linker-options-final} {profile-library-common-linker-options}
 profile-library-linker-options-68k-final = {common-linker-options-final} {profile-library-common-linker-options}
 
-gss-library-objects-ppc-debug = `catenate {gss-objects-ppc-debug-list}` {root-folder}mac:GSS.CFM{object-suffix-ppc-debug}
-gss-library-objects-68k-debug = `catenate {gss-objects-68k-debug-list}` {root-folder}mac:GSS.CFM{object-suffix-68k-debug}
-gss-library-objects-ppc-final = `catenate {gss-objects-ppc-final-list}` {root-folder}mac:GSS.CFM{object-suffix-ppc-final}
-gss-library-objects-68k-final = `catenate {gss-objects-68k-final-list}` {root-folder}mac:GSS.CFM{object-suffix-68k-final}
-
-krb5-library-objects-ppc-debug = `catenate {krb5-objects-ppc-debug-list}` {root-folder}mac:K5.CFM{object-suffix-ppc-debug}
-krb5-library-objects-68k-debug = `catenate {krb5-objects-68k-debug-list}` {root-folder}mac:K5.CFM{object-suffix-68k-debug}
-krb5-library-objects-ppc-final = `catenate {krb5-objects-ppc-final-list}` {root-folder}mac:K5.CFM{object-suffix-ppc-final}
-krb5-library-objects-68k-final = `catenate {krb5-objects-68k-final-list}` {root-folder}mac:K5.CFM{object-suffix-68k-final}
+comerr-library-common-linker-options = Â¶
+       -cv {comerr-library-current-version} Â¶
+       -dv {comerr-library-definition-version} Â¶
+       -uv {comerr-library-implementation-version}
+
+comerr-library-linker-options-ppc-debug = {common-linker-options-debug} {comerr-library-common-linker-options}
+comerr-library-linker-options-68k-debug = {common-linker-options-debug} {comerr-library-common-linker-options}
+comerr-library-linker-options-ppc-final = {common-linker-options-final} {comerr-library-common-linker-options}
+comerr-library-linker-options-68k-final = {common-linker-options-final} {comerr-library-common-linker-options}
+
+gss-library-objects-ppc-debug = `catenate {gss-objects-ppc-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:GSS.CFM{object-suffix-ppc-debug}
+gss-library-objects-68k-debug = `catenate {gss-objects-68k-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:GSS.CFM{object-suffix-68k-debug}
+gss-library-objects-ppc-final = `catenate {gss-objects-ppc-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:GSS.CFM{object-suffix-ppc-final}
+gss-library-objects-68k-final = `catenate {gss-objects-68k-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:GSS.CFM{object-suffix-68k-final}
+
+krb5-library-objects-ppc-debug = `catenate {krb5-objects-ppc-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:K5.CFM{object-suffix-ppc-debug}
+krb5-library-objects-68k-debug = `catenate {krb5-objects-68k-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:K5.CFM{object-suffix-68k-debug}
+krb5-library-objects-ppc-final = `catenate {krb5-objects-ppc-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:K5.CFM{object-suffix-ppc-final}
+krb5-library-objects-68k-final = `catenate {krb5-objects-68k-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:K5.CFM{object-suffix-68k-final}
 
 krb5-globals-library-objects-ppc-debug = Â¶
        {krb5-globals-root-folder}Krb5Globals{object-suffix-ppc-debug} Â¶
@@ -615,10 +708,19 @@ krb5-globals-library-objects-68k-final = 
 krb5-globals-data-library-objects-ppc = {krb5-globals-root-folder}Krb5GlobalsData{object-suffix-ppc-data}
 krb5-globals-data-library-objects-68k = {krb5-globals-root-folder}Krb5GlobalsData{object-suffix-68k-data}
 
-profile-library-objects-ppc-debug = `catenate {profile-objects-ppc-debug-list}` {root-folder}mac:ProfileLib.CFM{object-suffix-ppc-debug}
-profile-library-objects-68k-debug = `catenate {profile-objects-68k-debug-list}` {root-folder}mac:ProfileLib.CFM{object-suffix-68k-debug}
-profile-library-objects-ppc-final = `catenate {profile-objects-ppc-final-list}` {root-folder}mac:ProfileLib.CFM{object-suffix-ppc-final}
-profile-library-objects-68k-final = `catenate {profile-objects-68k-final-list}` {root-folder}mac:ProfileLib.CFM{object-suffix-68k-final}
+profile-library-objects-ppc-debug = `catenate {profile-objects-ppc-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:ProfileLib.CFM{object-suffix-ppc-debug}
+profile-library-objects-68k-debug = `catenate {profile-objects-68k-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:ProfileLib.CFM{object-suffix-68k-debug}
+profile-library-objects-ppc-final = `catenate {profile-objects-ppc-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:ProfileLib.CFM{object-suffix-ppc-final}
+profile-library-objects-68k-final = `catenate {profile-objects-68k-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"` Â¶
+       {root-folder}mac:ProfileLib.CFM{object-suffix-68k-final}
+
+comerr-library-objects-ppc-debug = `catenate {comerr-objects-ppc-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"`
+comerr-library-objects-68k-debug = `catenate {comerr-objects-68k-debug-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"`
+comerr-library-objects-ppc-final = `catenate {comerr-objects-ppc-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"`
+comerr-library-objects-68k-final = `catenate {comerr-objects-68k-final-list} | StreamEdit -d -set prefix="{root-folder}" -e "/Â¥:(Ã…)¨2/ Print prefix¨2"`
 
 library-linker-ppc                                             = MWLinkPPC
 library-linker-68K                                             = MWLink68K
@@ -632,7 +734,7 @@ common-compiler-options = 
                -model farData
 
 # Don't put the prefix file in these options because they are used to precompile the prefix file
-ppc-compiler-options = 
+ppc-compiler-options = -tb on
 68k-compiler-options = -model cfmflat 
 debug-compiler-options = -sym on
 final-compiler-options = -sym off
@@ -642,7 +744,7 @@ mitsupportlib-include-paths = 
        -i {mitsupportlib-root-folder}ErrorLib:Headers: Â¶
        -i {mitsupportlib-root-folder}UtilitiesLib:Headers:
 
-include-paths = `catenate {include-folders-list}` Â¶
+include-paths = `catenate {include-folders-list} | StreamEdit -d -set prefix="{root-folder}mac:" -e "/-i (Ã…)¨1/ Print '-i 'prefix¨1"` Â¶
        -i {mitkerberoslib-root-folder}CCacheLib:Headers: Â¶
        -i {krb5-globals-root-folder} Â¶
        {mitsupportlib-include-paths}
@@ -714,7 +816,14 @@ make-options-common = 
        -d profile-library-fragment-name={profile-library-fragment-name} Â¶
        -d profile-library-main="{profile-library-main}" Â¶
        -d profile-library-init="{profile-library-init}" Â¶
-       -d profile-library-term="{profile-library-term}"
+       -d profile-library-term="{profile-library-term}" Â¶
+       -d comerr-library-output-folder="{comerr-library-output-folder}" Â¶
+       -d comerr-library-name="{comerr-library-name}" Â¶
+       -d comerr-library-export="{comerr-library-export}" Â¶
+       -d comerr-library-fragment-name={comerr-library-fragment-name} Â¶
+       -d comerr-library-main="{comerr-library-main}" Â¶
+       -d comerr-library-init="{comerr-library-init}" Â¶
+       -d comerr-library-term="{comerr-library-term}"
 
 make-options-ppc-debug = Â¶
        -d library-linker="{library-linker-ppc}" Â¶
@@ -735,6 +844,9 @@ make-options-ppc-debug = 
        -d profile-library-libraries="{profile-library-libraries-ppc-debug}" Â¶
        -d profile-library-objects="{profile-library-objects-ppc-debug}" Â¶
        -d profile-library-linker-options="{profile-library-linker-options-ppc-debug}" Â¶
+       -d comerr-library-libraries="{comerr-library-libraries-ppc-debug}" Â¶
+       -d comerr-library-objects="{comerr-library-objects-ppc-debug}" Â¶
+       -d comerr-library-linker-options="{comerr-library-linker-options-ppc-debug}" Â¶
        -d object-suffix="{object-suffix-ppc-debug}" Â¶
        -d object-suffix-data="{object-suffix-ppc-data}" Â¶
        -d compiler-options="{compiler-options-ppc-debug}" Â¶
@@ -760,6 +872,9 @@ make-options-68k-debug = 
        -d profile-library-libraries="{profile-library-libraries-68k-debug}" Â¶
        -d profile-library-objects="{profile-library-objects-68k-debug}" Â¶
        -d profile-library-linker-options="{profile-library-linker-options-68k-debug}" Â¶
+       -d comerr-library-libraries="{comerr-library-libraries-68k-debug}" Â¶
+       -d comerr-library-objects="{comerr-library-objects-68k-debug}" Â¶
+       -d comerr-library-linker-options="{comerr-library-linker-options-68k-debug}" Â¶
        -d object-suffix="{object-suffix-68k-debug}" Â¶
        -d object-suffix-data="{object-suffix-68k-data}" Â¶
        -d compiler-options="{compiler-options-68k-debug}" Â¶
@@ -786,6 +901,9 @@ make-options-ppc-final = 
        -d profile-library-libraries="{profile-library-libraries-ppc-final}" Â¶
        -d profile-library-objects="{profile-library-objects-ppc-final}" Â¶
        -d profile-library-linker-options="{profile-library-linker-options-ppc-final}" Â¶
+       -d comerr-library-libraries="{comerr-library-libraries-ppc-final}" Â¶
+       -d comerr-library-objects="{comerr-library-objects-ppc-final}" Â¶
+       -d comerr-library-linker-options="{comerr-library-linker-options-ppc-final}" Â¶
        -d object-suffix="{object-suffix-ppc-final}" Â¶
        -d object-suffix-data="{object-suffix-ppc-data}" Â¶
        -d compiler-options="{compiler-options-ppc-final}" Â¶
@@ -811,6 +929,9 @@ make-options-68k-final = 
        -d profile-library-libraries="{profile-library-libraries-68k-final}" Â¶
        -d profile-library-objects="{profile-library-objects-68k-final}" Â¶
        -d profile-library-linker-options="{profile-library-linker-options-68k-final}" Â¶
+       -d comerr-library-libraries="{comerr-library-libraries-68k-final}" Â¶
+       -d comerr-library-objects="{comerr-library-objects-68k-final}" Â¶
+       -d comerr-library-linker-options="{comerr-library-linker-options-68k-final}" Â¶
        -d object-suffix="{object-suffix-68k-final}" Â¶
        -d object-suffix-data="{object-suffix-68k-data}" Â¶
        -d compiler-options="{compiler-options-68k-final}" Â¶
@@ -820,23 +941,23 @@ make-options-68k-final = 
 make-output = "{TempFolder}GSS/Kerberos Makefile script"
 submakefile-target = gss-library
 
-ppc-debug Ã„ {makefile-name} {gss-objects-ppc-debug-list} {krb5-objects-ppc-debug-list} Â¶
-       {profile-objects-ppc-debug-list} {include-folders-list}
+ppc-debug Ã„ glue headers documentation {makefile-name} {gss-objects-ppc-debug-list} {krb5-objects-ppc-debug-list} Â¶
+       {profile-objects-ppc-debug-list} {comerr-objects-ppc-debug-list} {include-folders-list}
        Make {make-options-common} {make-options-ppc-debug} {submakefile-target} > {make-output}
        {make-output}
        
-68k-debug Ã„ {makefile-name} {gss-objects-68k-debug-list} {krb5-objects-68k-debug-list} Â¶
-        {profile-objects-68k-debug-list} {include-folders-list}
+68k-debug Ã„ glue headers documentation  {makefile-name} {gss-objects-68k-debug-list} {krb5-objects-68k-debug-list} Â¶
+        {profile-objects-68k-debug-list} {comerr-objects-68k-debug-list} {include-folders-list}
        Make {make-options-common} {make-options-68k-debug} {submakefile-target} > {make-output}
        {make-output}
        
-ppc-final Ã„ {makefile-name} {gss-objects-ppc-final-list} {krb5-objects-ppc-final-list} Â¶
-       {profile-objects-ppc-final-list} {include-folders-list}
+ppc-final Ã„ glue headers documentation  {makefile-name} {gss-objects-ppc-final-list} {krb5-objects-ppc-final-list} Â¶
+       {profile-objects-ppc-final-list} {comerr-objects-ppc-final-list} {include-folders-list}
        Make {make-options-common} {make-options-ppc-final} {submakefile-target} > {make-output}
        {make-output}
        
-68k-final Ã„ {makefile-name} {gss-objects-68k-final-list} {krb5-objects-68k-final-list} Â¶
-       {profile-objects-68k-final-list} {include-folders-list}
+68k-final Ã„ glue headers documentation  {makefile-name} {gss-objects-68k-final-list} {krb5-objects-68k-final-list} Â¶
+       {profile-objects-68k-final-list} {comerr-objects-68k-final-list} {include-folders-list}
        Make {make-options-common} {make-options-68k-final} {submakefile-target} > {make-output}
        {make-output}
        
@@ -900,6 +1021,17 @@ ppc-final 
 ###                    profile-library-init                                                    -- name of profile library initialization routine
 ###                    profile-library-term                                                    -- name of profile library termination routine
 ###                    profile-library-linker-options                                  -- all other profile library linker options
+###            For comerr library
+###                    comerr-library-output-folder                                    -- destination of comerr library output
+###                    comerr-library-name                                                             -- name of the comerr library
+###                    comerr-library-export                                                   -- name of comerr library export file
+###                    comerr-library-libraries                                                -- list of libraries comerr library links against
+###                    comerr-library-objects                                                  -- list of object files comerr library links
+###                    comerr-library-fragment-name                                    -- name of comerr library fragment
+###                    comerr-library-main                                                             -- name of comerr library main entry point
+###                    comerr-library-init                                                             -- name of comerr library initialization routine
+###                    comerr-library-term                                                             -- name of comerr library termination routine
+###                    comerr-library-linker-options                                   -- all other comerr library linker options
 ###            General
 ###                    library-linker                                                                  -- linker to use
 ###                    autogenerated-files                                                             -- list of autogenerated files
@@ -933,6 +1065,9 @@ object-suffix-data = .ignore.me.too
 profile-library-libraries =
 profile-library-objects =
 profile-library-linker-options =
+comerr-library-libraries =
+comerr-library-objects =
+comerr-library-linker-options =
 
 ###    Generate various major components of build commands from the above variables
 gss-library-output-files = Â¶
@@ -1015,6 +1150,22 @@ profile-library-build-command = 
        {profile-library-linker-options} Â¶
        {profile-library-objects} {profile-library-libraries}
 
+comerr-library-output-files = Â¶
+       {comerr-library-output-folder}{comerr-library-name}{library-platform}{library-kind}
+comerr-library-dependencies = Â¶
+       {autogenerated-files} {comerr-library-export} {comerr-library-libraries} {comerr-library-objects}
+comerr-library-build-command = Â¶
+       {library-linker} Â¶
+       -name "{comerr-library-fragment-name}{library-kind}" Â¶
+       -main {comerr-library-main} Â¶
+       -init {comerr-library-init} Â¶
+       -term {comerr-library-term} Â¶
+       -@export {comerr-library-export} Â¶
+       -map {comerr-library-output-folder}{comerr-library-name}{library-platform}{library-kind}.MAP Â¶
+       -o {comerr-library-output-folder}{comerr-library-name}{library-platform}{library-kind} Â¶
+       {comerr-library-linker-options} Â¶
+       {comerr-library-objects} {comerr-library-libraries}
+
 ###    Build commands
 
 gss-library Ã„ {gss-library-output-files}
@@ -1022,6 +1173,7 @@ krb5-library 
 krb5-globals-library Ã„ {krb5-globals-library-output-files}
 krb5-globals-data-library Ã„ {krb5-globals-data-library-output-files}
 profile-library Ã„ {profile-library-output-files}
+comerr-library Ã„ {comerr-library-output-files}
 
 {gss-library-output-files} Ã„Ä {gss-library-dependencies} {makefile-name}
        {create-folder} {gss-library-output-folder}
@@ -1043,14 +1195,20 @@ profile-library 
        {create-folder} {profile-library-output-folder}
        {profile-library-build-command}
 
+{comerr-library-output-files} Ã„Ä {comerr-library-dependencies} {makefile-name}
+       {create-folder} {comerr-library-output-folder}
+       {comerr-library-build-command}
+
 ##############################################################################################################
 ###                    Default compilation rules
 ##############################################################################################################
 
 {object-suffix} Ã„ .c {autogenerated-files} {makefile-name} {precompiled-headers}
+       echo {DepDir}{Default}{object-suffix}
        {compiler} {DepDir}{Default}.c -o {DepDir}{Default}{object-suffix} {compiler-options}
 
 {object-suffix-data} Ã„ .c {autogenerated-files} {makefile-name} {precompiled-headers}
+       echo {DepDir}{Default}{object-suffix-data}
        {compiler} {DepDir}{Default}.c -o {DepDir}{Default}{object-suffix-data} {compiler-options}
 
 ##############################################################################################################
@@ -1060,18 +1218,26 @@ profile-library 
 classic-glue-generation-script                                                 = {root-folder}mac:CFMGlue.pl
 gss-library-glue-output-folder                                         = {root-folder}:GSSLib:ClassicGlue:
 krb5-library-glue-output-folder                                                = {root-folder}:Kerberos5Lib:ClassicGlue:
+profile-library-glue-output-folder                                     = {root-folder}:KerberosProfileLib:ClassicGlue:
+comerr-library-glue-output-folder                                      = {root-folder}:ComErrLib:ClassicGlue:
 
 gss-library-glue-output                                                                = {gss-library-glue-output-folder}GSSLib.glue.c
 krb5-library-glue-output                                                       = {krb5-library-glue-output-folder}Kerberos5Lib.glue.c
+profile-library-glue-output                                                    = {profile-library-glue-output-folder}KrbProfileLib.glue.c
+comerr-library-glue-output                                                     = {comerr-library-glue-output-folder}ComErrLib.glue.c
 
 classic-glue-output = Â¶
        {gss-library-glue-output} Â¶
-       {krb5-library-glue-output}
+       {krb5-library-glue-output} Â¶
+       {profile-library-glue-output} Â¶
+       {comerr-library-glue-output}
 
 glue Ã„ {classic-glue-output}
 
 glue-gss Ã„ {gss-library-glue-output}
 glue-krb5 Ã„ {krb5-library-glue-output}
+glue-profile Ã„ {profile-library-glue-output}
+glue-comerr Ã„ {comerr-library-glue-output}
 
 {krb5-library-glue-output} Ã„ {root-folder}mac:K5.CFMglue.cin {root-folder}mac:K5.CFMglue.proto.h Â¶
        {root-folder}mac:CFMglue.c {root-folder}mac:K5.moreCFMglue.cin {classic-glue-generation-script}
@@ -1087,6 +1253,20 @@ glue-krb5 
        Catenate {root-folder}mac:GSS.CFMglue.cin {root-folder}mac:CFMglue.c {root-folder}mac:GSS.CFMglue.c Â¶
        {root-folder}mac:GSS.moreCFMglue.cin | Catenate > {gss-library-glue-output}
 
+{profile-library-glue-output} Ã„ {root-folder}mac:KrbProfileLib.glue.pre.cin {root-folder}mac:KrbProfileLib.glue.proto.h Â¶
+       {root-folder}mac:CFMglue.c {root-folder}mac:KrbProfileLib.glue.post.cin {classic-glue-generation-script}
+       {create-folder} {profile-library-glue-output-folder}
+       perl {classic-glue-generation-script} < {root-folder}mac:KrbProfileLib.glue.proto.h > {root-folder}mac:KrbProfileLib.CFMglue.c
+       Catenate {root-folder}mac:KrbProfileLib.glue.pre.cin {root-folder}mac:CFMglue.c {root-folder}mac:KrbProfileLib.CFMglue.c Â¶
+       {root-folder}mac:KrbProfileLib.glue.post.cin | Catenate > {profile-library-glue-output}
+
+{comerr-library-glue-output} Ã„ {root-folder}mac:ComErrLib.glue.pre.cin {root-folder}mac:ComErrLib.glue.proto.h Â¶
+       {root-folder}mac:CFMglue.c {root-folder}mac:ComErrLib.glue.post.cin {classic-glue-generation-script}
+       {create-folder} {comerr-library-glue-output-folder}
+       perl {classic-glue-generation-script} < {root-folder}mac:ComErrLib.glue.proto.h > {root-folder}mac:ComErrLib.CFMglue.c
+       Catenate {root-folder}mac:ComErrLib.glue.pre.cin {root-folder}mac:CFMglue.c {root-folder}mac:ComErrLib.CFMglue.c Â¶
+       {root-folder}mac:ComErrLib.glue.post.cin | Catenate > {comerr-library-glue-output}
+
 ##############################################################################################################
 ###                    Clean target deletes all generated files
 ##############################################################################################################
@@ -1108,6 +1288,7 @@ clean 
 gss-headers-output-folder                                                      = {root-folder}:GSSLib:Headers:
 krb5-headers-output-folder                                                     = {root-folder}:Kerberos5Lib:Headers:
 krb5-globals-headers-output-folder                                     = {root-folder}:Kerberos5GlobalsLib:Headers:
+comerr-headers-output-folder                                           = {root-folder}:ComErrLib:Headers:
 profile-headers-output-folder                                          = {root-folder}:KerberosProfileLib:Headers:
 
 gss-headers-output = Â¶
@@ -1116,26 +1297,28 @@ gss-headers-output = 
 
 krb5-headers-output = Â¶
        "{krb5-headers-output-folder}krb5.h" Â¶
-       "{krb5-headers-output-folder}com_err.h" Â¶
-       "{krb5-headers-output-folder}profile.h" Â¶
        "{krb5-headers-output-folder}win-mac.h"
 
 krb5-globals-headers-output = Â¶
        "{krb5-globals-headers-output-folder}Kerberos5Globals.h"
        
+comerr-headers-output = Â¶
+       "{comerr-headers-output-folder}com_err.h"
+       
 profile-headers-output = Â¶
        "{profile-headers-output-folder}profile.h"
        
-headers-output = {gss-headers-output} {krb5-headers-output} {krb5-globals-headers-output} {profile-headers-output}
+headers-output = {gss-headers-output} {krb5-headers-output} {krb5-globals-headers-output} Â¶
+       {comerr-headers-output} {profile-headers-output} 
 
-headers Ã„ {headers-output}
+headers Ã„ unset-echo {headers-output}
 
 "{gss-headers-output-folder}gssapi.h" Ã„ "{root-folder}lib:gssapi:generic:gssapi.h" {makefile-name}
        "{create-folder}" "{TargDir}"
        If (`Exists "{Targ}" | Count -l`)
                SetFile -a l "{Targ}"
        End
-       Duplicate -y "{root-folder}lib:gssapi:generic:gssapi.h" "{Targ}"
+       Catenate "{root-folder}lib:gssapi:generic:gssapi.h" > "{Targ}"
        SetFile -a l "{Targ}"
 
 "{gss-headers-output-folder}gssapi_krb5.h" Ã„ "{root-folder}lib:gssapi:krb5:gssapi_krb5.h" {makefile-name}
@@ -1143,7 +1326,7 @@ headers 
        If (`Exists "{Targ}" | Count -l`)
                SetFile -a l "{Targ}"
        End
-       Duplicate -y "{root-folder}lib:gssapi:krb5:gssapi_krb5.h" "{Targ}"
+       Catenate "{root-folder}lib:gssapi:krb5:gssapi_krb5.h" > "{Targ}"
        SetFile -a l "{Targ}"
 
 "{krb5-headers-output-folder}krb5.h" Ã„ "{root-folder}include:krb5.h" {makefile-name}
@@ -1151,45 +1334,110 @@ headers 
        If (`Exists "{Targ}" | Count -l`)
                SetFile -a l "{Targ}"
        End
-       Duplicate -y "{root-folder}include:krb5.h" "{Targ}"
+       Catenate "{root-folder}include:krb5.h" > "{Targ}"
        SetFile -a l "{Targ}"
 
-"{krb5-headers-output-folder}com_err.h" Ã„ "{root-folder}util:et:com_err.h" {makefile-name}
+"{krb5-headers-output-folder}win-mac.h" Ã„ "{root-folder}include:win-mac.h" {makefile-name}
        "{create-folder}" "{TargDir}"
        If (`Exists "{Targ}" | Count -l`)
                SetFile -a l "{Targ}"
        End
-       Duplicate -y "{root-folder}util:et:com_err.h" "{Targ}"
+       Catenate "{root-folder}include:win-mac.h" > "{Targ}"
        SetFile -a l "{Targ}"
 
-"{krb5-headers-output-folder}profile.h" Ã„ "{root-folder}util:profile:profile.h" {makefile-name}
+"{krb5-globals-headers-output-folder}Kerberos5Globals.h" Ã„ "{root-folder}mac:libraries:Kerberos v5 Globals:Krb5Globals.h" {makefile-name}
        "{create-folder}" "{TargDir}"
        If (`Exists "{Targ}" | Count -l`)
                SetFile -a l "{Targ}"
        End
-       Duplicate -y "{root-folder}util:profile:profile.h" "{Targ}"
+       Catenate "{root-folder}mac:libraries:Kerberos v5 Globals:Krb5Globals.h" > "{Targ}"
        SetFile -a l "{Targ}"
 
-"{krb5-headers-output-folder}win-mac.h" Ã„ "{root-folder}include:win-mac.h" {makefile-name}
+"{comerr-headers-output-folder}com_err.h" Ã„ "{root-folder}util:et:com_err.h" {makefile-name}
        "{create-folder}" "{TargDir}"
        If (`Exists "{Targ}" | Count -l`)
                SetFile -a l "{Targ}"
        End
-       Duplicate -y "{root-folder}include:win-mac.h" "{Targ}"
+       Catenate "{root-folder}util:et:com_err.h" > "{Targ}"
        SetFile -a l "{Targ}"
 
-"{krb5-globals-headers-output-folder}Kerberos5Globals.h" Ã„ "{root-folder}mac:libraries:Kerberos v5 Globals:Krb5Globals.h" {makefile-name}
+"{profile-headers-output-folder}profile.h" Ã„ "{root-folder}util:profile:profile.h" {makefile-name}
        "{create-folder}" "{TargDir}"
        If (`Exists "{Targ}" | Count -l`)
                SetFile -a l "{Targ}"
        End
-       Duplicate -y "{root-folder}mac:libraries:Kerberos v5 Globals:Krb5Globals.h" "{Targ}"
+       Catenate "{root-folder}util:profile:profile.h" > "{Targ}"
        SetFile -a l "{Targ}"
 
-"{profile-headers-output-folder}profile.h" Ã„ "{root-folder}util:profile:profile.h" {makefile-name}
+##############################################################################################################
+###                    Copying documentation around
+##############################################################################################################
+
+gss-documentation-output-folder                                                = {root-folder}:GSSLib:Documentation:
+krb5-documentation-output-folder                                       = {root-folder}:Kerberos5Lib:Documentation:
+krb5-globals-documentation-output-folder                       = {root-folder}:Kerberos5GlobalsLib:Documentation:
+comerr-documentation-output-folder                                     = {root-folder}:ComErrLib:Documentation:
+profile-documentation-output-folder                                    = {root-folder}:KerberosProfileLib:Documentation:
+
+gss-documentation-output = Â¶
+       {gss-documentation-output-folder}"GSSLib ReadMe"
+
+krb5-documentation-output = Â¶
+       {krb5-documentation-output-folder}"krb5api.pdf"
+
+krb5-globals-documentation-output = Â¶
+       {krb5-globals-documentation-output-folder}"Kerberos5Globals.html"
+       
+comerr-documentation-output = Â¶
+       {comerr-documentation-output-folder}"ComErrLib ReadMe"
+       
+profile-documentation-output = Â¶
+       {profile-documentation-output-folder}"KerberosProfileLib ReadMe"
+       
+documentation-output = {gss-documentation-output} {krb5-documentation-output} Â¶
+       {krb5-globals-documentation-output} {profile-documentation-output} Â¶
+       {comerr-documentation-output}
+
+documentation Ã„ unset-echo {documentation-output}
+
+{gss-documentation-output-folder}"GSSLib ReadMe" Ã„ {root-folder}"mac:GSSLib ReadMe" {makefile-name}
        "{create-folder}" "{TargDir}"
        If (`Exists "{Targ}" | Count -l`)
-               SetFile -a l "{Targ}"
+               SetFile -a l {Targ}
        End
-       Duplicate -y "{root-folder}util:profile:profile.h" "{Targ}"
-       SetFile -a l "{Targ}"
+       Catenate {root-folder}"mac:GSSLib ReadMe" > {Targ}
+       SetFile -a l {Targ}
+
+{krb5-documentation-output-folder}"krb5api.pdf" Ã„ {makefile-name}
+       "{create-folder}" "{TargDir}"
+       If (`Exists "{Targ}" | Count -l`)
+               SetFile -a l {Targ}
+       End
+       If (`Exists {root-folder}":::Documentation:pdf:krb5api.pdf"`)
+               Catenate {root-folder}":::Documentation:pdf:krb5api.pdf" > {Targ}
+               SetFile -a l -t 'PDF ' -c 'CARO' {Targ}
+       End
+
+{krb5-globals-documentation-output-folder}"Kerberos5Globals.html" Ã„ {root-folder}"mac:libraries:Kerberos v5 Globals:Krb5Globals.html" {makefile-name}
+       "{create-folder}" "{TargDir}"
+       If (`Exists "{Targ}" | Count -l`)
+               SetFile -a l {Targ}
+       End
+       Catenate {root-folder}"mac:libraries:Kerberos v5 Globals:Krb5Globals.html" > {Targ}
+       SetFile -a l -c 'MOSS' {Targ}
+
+{comerr-documentation-output-folder}"ComErrLib ReadMe" Ã„ {root-folder}"mac:ComErrLib ReadMe" {makefile-name}
+       "{create-folder}" "{TargDir}"
+       If (`Exists "{Targ}" | Count -l`)
+               SetFile -a l {Targ}
+       End
+       Catenate {root-folder}"mac:ComErrLib ReadMe" > {Targ}
+       SetFile -a l {Targ}
+
+{profile-documentation-output-folder}"KerberosProfileLib ReadMe" Ã„ {root-folder}"mac:KerberosProfileLib ReadMe" {makefile-name}
+       "{create-folder}" "{TargDir}"
+       If (`Exists "{Targ}" | Count -l`)
+               SetFile -a l {Targ}
+       End
+       Catenate {root-folder}"mac:KerberosProfileLib ReadMe" > {Targ}
+       SetFile -a l {Targ}
index 3ef8ef60de1fd6d0bb9ce7ce7a81d435817da07d..9b5ea87cf5de7a147c79d7c42b77be2309321602 100644 (file)
@@ -1,9 +1,19 @@
-/*
- *   Copyright (C) 1997 by the Massachusetts Institute of Technology
- *   All rights reserved.
+/* Copyright 1998 by the Massachusetts Institute of Technology.
  *
- *   For copying and distribution information, please see the file
- *   COPYRIGHT.
+ * 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.
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
  
  
index 9e5226b69151fb70d2d3f248bb4112a9b1857054..da851c48bf13549d07ff917e79309ae8594271eb 100644 (file)
@@ -6,134 +6,8 @@ Building the Macintosh version of Kerberos 5 and GSS
 If you have questions or comments about the Macintosh build process,
 send e-mail to <macdev@mit.edu> .
 
+You should not be building Macintosh Kerberos v5 and GSS libraries
+from the standard Kerberos v5 distribution. Instead, you should look
+for MIT Kerberos Library sources from
+<http://web.mit.edu/macdev/Development/MITKerberos/Common/Documentation/download.html>
 
-To build the Macintosh version of Kerberos 5 and GSS:
-
---- Installing tools ---
-
-       1) Install CodeWarrior Pro 4, including MPW.
-               This build of Kerberos v5 and GSS requires CodeWarrior Pro4 MPW tools.
-               Don't forget to run one of 4 Metrowerks MPW scripts, as described at the
-               bottom of MPW worksheet the first time you launch it.
-
-       2) Download MacPerl and MacPerl MPW tool from
-       
-          <ftp://sunsite.cnlab-switch.ch/software/platform/macos/perl/>
-          
-          The MacPerl directory contains several versions of the app and the MPW
-          tool.  The *_appl and *_tool versions work properly with our scripts, e.g.,
-          you should download "Mac_Perl_520r4_appl.bin" and "Mac_Perl_520r4_tool.bin".
-
-       3) Install MacPerl and MacPerl MPW tool by following the installation 
-          instructions provided with them:
-           - install MacPerl application before installing MacPerl tool
-               - after installing MacPerl tool, run its MPW configuration script
-                 and follow the instructions
-
---- Preparing Kerberos v5 build tree ---
-
-       4) Launch MPW.
-
-       5) Set directory in MPW to the top level of Kerberos 5 distribution
-          (e.g. "GSS-Kerberos5").
-
-       6) Build target "prebuild" in MPW.
-               This will create a new Makefile, so you may be asked whether you 
-               want to save changes to the Makefile if you opened it before step
-               6. Save the changes.
-           
---- Building libraries ---
-
-       7) Build target "all" in MPW. Wait.
-       
-          Example build times: 30-40 minutes on a G3 machine, 80 minutes
-          on a PowerMac 9600/233.
-          
-          You may receive some compile warnings about an ignored pragma, warnings
-          about illegal implicit const pointer conversions, and some link warnings.
-          These are normal and can be ignored.
-          
-          We used to see MPW crash during the link stage of the build. We think this 
-          has been fixed. If this happens to you, you should restart MPW and start
-          the build again, and report the problem to macdev@mit.edu.
-
---- Binaries ---
-
-       The following assumes that you have followed the steps above to build
-       the GSS & Kerberos 5 libraries.  What you now have supports both the
-       Kerberos 5 and GSS APIs.  Each is supported as both CFM shared libraries
-       and CodeWarrior static link libraries for both 68k & PowerPC Macs.
-       We strongly recommend you use the CFM shared libraries.
-       
-       The following binary components are provided/built in this release:
-
-       ":MIT Kerberos Library"
-       * Fat CFM Shared Library including GSS, and Kerberos v5, CCache, and DES
-          libraries.
-       * Not for linking against in your projects; include in distributions to
-         be placed in System Folder:Extensions.
-       
-       :GSSLib.68K
-       * CFM Shared Library including GSS for 68k Macs.
-       
-       :GSSLib.PPC
-       * CFM Shared Library including GSS for PowerPC Macs.
-       
-       :Kerberos5Lib.68K
-       * CFM Shared Library including Kerberos 5 for 68k Macs.
-       
-       :Kerberos5Lib.68K
-       * CFM Shared Library including Kerberos 5 for PowerPC Macs.
-       
-          :mac:krb5.ini
-          * Sample krb5.ini file using CYGNUS.COM as the default realm
-            
-          :include
-          * An include directory containing the files necessary for development
-
---- Installation ---
-
-        To install the Kerberos 5 system on your Mac:
-
-          1) Copy the :mac:krb5.ini file (configured for your site) into
-             the "Preferences" folder in the "System Folder".
-          
-          2) Install the shared libraries by copying the  "MIT Kerberos Library" file
-             to the "Extensions" folder in the "System Folder".
-          
-          3) If you are using System 7.6 or earlier on a 68K Mac, install
-             the CFM-68K Runtime Enabler 4.0, available from Apple at:
-             
-             <ftp://ftp.info.apple.com/Apple_Support_Area/Apple_Software_Updates/US/Macintosh/System/CFM-68K/>
-
---- Getting Started Programming ---
-
-       You can program using either the Kerberos 5 or GSS APIs.
-
-       To add Kerberos functionality to a Code Warrior based application:
-       
-          1) PPC application: use shared libraries:
-                       For GSSAPI, add GSSLibraryPPC to your project
-                       For Kerberos v5 API, add K5LibraryPPC to your project
-                       Set the project options to 4 byte integers and enums treated as ints.
-
-          2) CFM-68K application: use shared libraries
-                       For GSSAPI, add GSSLibrary68K to your project
-                       For Kerberos v5 API, add K5Library68K to your project
-                       Set the project options to 4 byte integers and enums treated as ints.
-
-          3) Classic 68K application: use glue for shared libraries
-                       For GSSAPI, add GSSLib.glue.c to your project
-                       For Kerberos v5 API, add Kerberos5.glue.c to your project
-                       Set the project options to 4 byte integers and enums treated as ints.
-
-    A PDF document describing the Kerberos 5 API is located at:
-    
-      <http://web.mit.edu/macdev/mit/doc/pdf/krb5api.pdf>
-    
-    (That document was created from tex files in the main Kerberos 5 source tree.)
-    
-    The GSSAPI is described in Internet RFC's 1508 and 1509:
-    
-      <http://info.internet.isi.edu/in-notes/rfc/files/rfc1508.txt>
-      <http://info.internet.isi.edu/in-notes/rfc/files/rfc1509.txt>
index 3aeaf2bb854852eea107a014f0e69c466c52a0e5..c4a0336fe495bff4cb4d1d4f50ae363633025702 100644 (file)
@@ -110,6 +110,8 @@ Changes in 1.1a3:
  separated profile lib
  fixed krb5 library CFM version numbers
  fixed makefile and perl scripts to build form arbitrary root
+--- version upped to 2.5a1 ---
 
 2.5a1 - Monday, July 26, 1999 1:00:00 PM
  changed profile lib to use FSSpecs
@@ -118,4 +120,29 @@ Changes in 1.1a3:
  removed "MIT KerberosÂ¥GSSLib" alias
  removed "K5Library alias"
  removed com_err exports from krb5 lib
- fixed win-mac.h redefinition of size_t
\ No newline at end of file
+ fixed win-mac.h redefinition of size_t
+2.5a2 - Friday, August 6, 1999 1:40:00 PM
+ fixed huge profile memory leak
+ fixed memory leak in krb5_stdcc_destroy
+ added traceback tables to PPC versions
+
+2.5b1
+ from tag Mac_GSSKerberos5_2_5b1
+ separated com_err lib
+ now tracking krb5-1-1 branch
+ added CCache cleanup to CFM termination procs
+2.5b2
+ from tag Mac_GSSKerberos5_2_5b2
+ cleaned up glue for all libraries
+2.5
+ from tag Mac_GSSKerberos5_2_5
+ added documentation and fixed makefile so that documentation,
+ headers, and cfrm glue are always built correctly
+
+2.5.1
+ from tag Mac_GSSKerberos5_2_5_1
+ fixed pre-PCI strong-link against DriverServicesLib
+ added krb5_change_password 2 minute timeout (changepw.c)
\ No newline at end of file
index 923863d15512cb55b84bdd6574937590d87ca3c3..0c629413545f9f497d48cc3e51fd146469736cd1 100644 (file)
@@ -8,6 +8,9 @@
  * 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.
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
  * 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.
index 45116c15f3c7bd1498e7f74ecd48a6eb2436e6b4..cecd3173d10cd295ed96564db4ee00d82121c26d 100644 (file)
@@ -8,6 +8,9 @@
  * 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.
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
  * 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.
diff --git a/src/mac/libraries/Kerberos v5 Globals/Krb5Globals.html b/src/mac/libraries/Kerberos v5 Globals/Krb5Globals.html
new file mode 100644 (file)
index 0000000..7ed8353
--- /dev/null
@@ -0,0 +1,81 @@
+<!-- #include "header.html"
+  #TITLE#="Kerberos v5 Globals Library API Functions"
+  #BASEHREF#="" 
+-->
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<HTML> 
+<HEAD>  
+  <TITLE> Kerberos v5 Globals Library API Functions </TITLE>
+</HEAD>
+<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#663399">
+<CENTER>
+  <TABLE BORDER=0 CELLSPACING=8>
+    <TR> 
+      <TD><IMG SRC="http://web.mit.edu/macdev/www/is-logo.gif" ALT="MIT Information Systems"></TD>
+      <TD><BR><H1>Macintosh Development</H1></TD> 
+    </TR>
+  </TABLE> <BR>
+  [<A HREF="http://web.mit.edu/macdev/www/macdev.html">Home</A>]
+  [<A HREF="http://web.mit.edu/macdev/www/about.html">About Us</A>]
+  [<A HREF="http://web.mit.edu/macdev/www/people.html">People</A>]
+  [<A HREF="http://web.mit.edu/macdev/www/applications.html">Applications</A>]
+  [<A HREF="http://web.mit.edu/macdev/www/support.html">MIT Support Library</A>] <BR>
+  [<A HREF="http://web.mit.edu/macdev/www/kerberos.html">MIT Kerberos</A>]
+  [<A HREF="http://web.mit.edu/macdev/www/macosx.html">Mac OS X</A>]
+  [<A HREF="http://web.mit.edu/macdev/www/documentation.html">Developer Documentation</A>]
+  [<A HREF="http://web.mit.edu/is/">Information Systems</A>]
+<P> </CENTER> <HR>
+<!-- end include -->
+<TABLE BORDER=0 CELLSPACING=4>
+    <TR> 
+      <TD><IMG SRC="../../Common/Documentation/graphics/MITKerberosLib.gif"></TD>
+      <TD><B><FONT SIZE="+3">Kerberos v5 Globals Library API Functions</FONT></B></TD>
+    </TR>
+</TABLE>
+<BLOCKQUOTE>
+  <FONT SIZE="+1"><CODE>OSStatus <A NAME="Krb5GlobalsSetDefaultCacheName"><B>Krb5GlobalsSetDefaultCacheName</B></A>
+  (char*       inName);</CODE></FONT><BR>
+  <BLOCKQUOTE>
+     Krb5GlobalsSetDefaultCacheName sets the systemwide default cache for the Kerberos 5
+     library to <CODE>inName</CODE>.
+     <P>
+     If successful, the function returns <CODE>noErr</CODE>.  If it fails to allocate
+     memory for the cache name, it returns <CODE>memFullErr</CODE>.
+  </BLOCKQUOTE>
+  <FONT SIZE="+1"><CODE>UInt32 <A HREF = "Krb5GlobalsGetDefaultCacheName"><B>Krb5GlobalsGetDefaultCacheName</B></A>
+   (char*      inName, UInt32  inLength);
+</CODE></FONT>
+  <BLOCKQUOTE>
+     Krb5GlobalsGetDefaultCacheName returns the name of the current systemwide default
+     credentials cache for the Kerberos v5 library. <CODE>inName</CODE> should point
+     to at least <CODE>inLength</CODE> bytes of memory. Actual length of the cache
+     name is returned. <P>
+     If <CODE>inName</CODE> is <CODE>nil</CODE>, the length of the cache name is
+     returned.
+  </BLOCKQUOTE>
+  <FONT SIZE="+1"><CODE>OSStatus <A NAME="Krb5GlobalsSetUniqueDefaultCacheName"><B>Krb5GlobalsSetUniqueDefaultCacheName</B></A>
+  ();</CODE></FONT><BR>
+  <BLOCKQUOTE>
+     Krb5GlobalsSetUniqueDefaultCacheName sets the systemwide default credentials cache
+     name for Kerberos v5 library to a unique string (i.e., one that is not the name
+     of any of the existing credentials caches).
+     <P>
+     If successful, the function returns <CODE>noErr</CODE>.  If it fails to allocate
+     memory for the cache name, it returns <CODE>memFullErr</CODE>.
+  </BLOCKQUOTE>
+  <FONT SIZE="+1"><CODE>UInt32 <A NAME="Krb5GlobalsGetDefaultCacheNameModification"><B>Krb5GlobalsGetDefaultCacheNameModification</B></A>
+  ();</CODE></FONT><BR>
+  <BLOCKQUOTE>
+     Krb5GlobalsGetDefaultCacheNameModification returns modification counter for the
+     systemwide default credentials cache name for the Kerberos v5 library. If result
+     of two calls to Krb5GlobalsGetDefaultCacheNameModification is different, the
+     default cache name has changed between them.
+  </BLOCKQUOTE>
+</BLOCKQUOTE>
+<!-- #include "footer.html" -->
+<P> <HR> <FONT SIZE="+1"> <B> Questions or comments? Send mail to 
+<A HREF="mailto:macdev@mit.edu">macdev@mit.edu</A> </B> </FONT> <BR>
+Last updated on $Date$ <BR> 
+Last modified by $Author$
+</BODY> </HTML>
+<!-- end include -->
index 6bddb238776d478835f3e1ea9758a6a648bba41f..00d53657a7c7f73597116a1e6fcc4f157fd84d5d 100644 (file)
@@ -8,6 +8,7 @@
 #              gss-sources                                     -- complete list of mac GSS sources, relative to root
 #              krb5-sources                            -- complete list of mac Krb5 sources, relative to root
 #              profile-sources                         -- complete list of mac profile sources, relative to root
+#              comerr-sources                          -- complete list of mac com_err sources, relative to root
 #              gss-objects-ppc-debug           -- complete list of mac GSS PPC debug objects, relative to root
 #              gss-objects-68k-debug           -- complete list of mac GSS 68K debug objects, relative to root
 #              gss-objects-ppc-final           -- complete list of mac GSS PPC final objects, relative to root
 #              profile-objects-68k-debug       -- complete list of mac profile v5 68K debug objects, relative to root
 #              profile-objects-ppc-final       -- complete list of mac profile v5 PPC final objects, relative to root
 #              profile-objects-68k-final       -- complete list of mac profile v5 68K final objects, relative to root
+#              comerr-objects-ppc-debug        -- complete list of mac com_err PPC debug objects, relative to root
+#              comerr-objects-68k-debug        -- complete list of mac com_err v5 68K debug objects, relative to root
+#              comerr-objects-ppc-final        -- complete list of mac com_err v5 PPC final objects, relative to root
+#              comerr-objects-68k-final        -- complete list of mac com_err v5 68K final objects, relative to root
 #              include-folders                         -- complete list of include paths, relative to root
 #
 #      input on stdin
 #      output on stdout
 
 # Check number of arguments
-if (scalar @ARGV != 3) {
+if (scalar @ARGV != 2) {
        print (STDERR "Got " . scalar @ARGV . " arguments, expected 2");
        &usage;
        exit;
@@ -35,7 +40,7 @@ if (scalar @ARGV != 3) {
 # Parse arguments
 $action = $ARGV [0];
 $ROOT = $ARGV [1];
-$prefix = $ARGV [2];
+#$prefix = $ARGV [2];
 
 # Read source list
 if ($action ne "all-files") {
@@ -46,9 +51,9 @@ if ($action ne "all-files") {
 } else {
 
        @sourceList = &make_macfile_maclist (&make_macfile_list ());
-       foreach (@sourceList) {
-               $_ =~ s/^:/$prefix/;
-       }
+#      foreach (@sourceList) {
+#              $_ =~ s/^:/$prefix/;
+#      }
 #      @sourceList = map { $prefix . $_;} @sourceList;
        
 }
@@ -92,6 +97,12 @@ if ($action eq "all-folders") {
        @outputList = grep (/:profile:/, @sourceList);
        print (STDERR "Done. \n");
        
+} elsif ($action eq "comerr-sources") {
+
+       print (STDERR "# Building profile source listÉ ");
+       @outputList = grep (/:et:/, @sourceList);
+       print (STDERR "Done. \n");
+       
 } elsif ($action eq "gss-objects-ppc-debug") {
 
        print (STDERR "# Building GSS PPC debug object listÉ ");
@@ -152,28 +163,56 @@ if ($action eq "all-folders") {
 
        print (STDERR "# Building profile PPC debug object listÉ ");
        @outputList = grep (s/\.c$/\.ppcd.o/, @sourceList);
-       @outputList = grep (/:profile:|:et:/, @outputList);
+       @outputList = grep (/:profile:/, @outputList);
        print (STDERR "Done. \n");
 
 } elsif ($action eq "profile-objects-68k-debug") {
 
        print (STDERR "# Building profile 68K debug object listÉ ");
        @outputList = grep (s/\.c$/\.68kd.o/, @sourceList);
-       @outputList = grep (/:profile:|:et:/, @outputList);
+       @outputList = grep (/:profile:/, @outputList);
        print (STDERR "Done. \n");
 
 } elsif ($action eq "profile-objects-ppc-final") {
 
        print (STDERR "# Building profile PPC final object listÉ ");
        @outputList = grep (s/\.c$/\.ppcf.o/, @sourceList);
-       @outputList = grep (/:profile:|:et:/, @outputList);
+       @outputList = grep (/:profile:/, @outputList);
        print (STDERR "Done. \n");
 
 } elsif ($action eq "profile-objects-68k-final") {
 
        print (STDERR "# Building profile 68K final object listÉ ");
        @outputList = grep (s/\.c$/\.68kf.o/, @sourceList);
-       @outputList = grep (/:profile:|:et:/, @outputList);
+       @outputList = grep (/:profile:/, @outputList);
+       print (STDERR "Done. \n");
+
+} elsif ($action eq "comerr-objects-ppc-debug") {
+
+       print (STDERR "# Building com_err PPC debug object listÉ ");
+       @outputList = grep (s/\.c$/\.ppcd.o/, @sourceList);
+       @outputList = grep (/:et:/, @outputList);
+       print (STDERR "Done. \n");
+
+} elsif ($action eq "comerr-objects-68k-debug") {
+
+       print (STDERR "# Building com_err 68K debug object listÉ ");
+       @outputList = grep (s/\.c$/\.68kd.o/, @sourceList);
+       @outputList = grep (/:et:/, @outputList);
+       print (STDERR "Done. \n");
+
+} elsif ($action eq "comerr-objects-ppc-final") {
+
+       print (STDERR "# Building com_err PPC final object listÉ ");
+       @outputList = grep (s/\.c$/\.ppcf.o/, @sourceList);
+       @outputList = grep (/:et:/, @outputList);
+       print (STDERR "Done. \n");
+
+} elsif ($action eq "comerr-objects-68k-final") {
+
+       print (STDERR "# Building com_err 68K final object listÉ ");
+       @outputList = grep (s/\.c$/\.68kf.o/, @sourceList);
+       @outputList = grep (/:et:/, @outputList);
        print (STDERR "Done. \n");
 
 } elsif ($action eq "include-folders") {
diff --git a/src/mit/windows/include/v.h b/src/mit/windows/include/v.h
deleted file mode 100644 (file)
index 79bb2ad..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/* v.h -- header for vlib.c */
-
-#ifndef _VERSION_INC
-#define _VERSION_INC
-
-/*
- * values for op_code field
- */
-
-enum v_op_code
-       {
-       V_CHECK,                                /* op codes from server to client */
-       V_CHECK_AND_LOG,
-       V_LOG,
-       V_LOG_PANIC,
-       V_OK,                                   /* op codes from client to server */
-       V_ERROR,
-       V_BAD_OP_CODE                           /* make sure this one is last */
-               };
-
-/*
- * Values for status field
- */
-
-
-#define V_REQUIRED             'R'             /* new verison is absolutely required!! */
-#define V_RECOMMENDED          'r'             /* new version is recommended. */
-#define V_OPTIONAL             'o'             /* new version is optional */
-#define V_UP_TO_DATE           'u'
-#define V_NEW_DOCUMENTATION    'd'
-#define V_MESSAGE              'm'             /* arbitrary message */
-#define V_BAD_STATUS           '?'             /* make sure this one is last */
-
-static struct 
-       {
-       char status;
-       char *status_name;
-       } version_status[] = 
-       {
-       V_REQUIRED,             "required",
-       V_RECOMMENDED,          "recommended",
-       V_OPTIONAL,             "optional",
-       V_UP_TO_DATE,           "up_to_date",
-       V_NEW_DOCUMENTATION,    "new_documentation",
-       V_MESSAGE,              "message",
-       V_BAD_STATUS,           "bad_status" 
-               };
-
-#define V_MAXDATA 700
-
-
-/*
- * The general strategy here is we have two formats, a parsed format and a network format...
- * "v_info" is parsed, and "v_pkt" is for the network.  Note that the total size of all the 
- * strings in "v_info" had better fit into V_MAXDATA or we'll have some trouble assembling
- * the packet.  In a future protocol version, perhaps we'll actually USE the packet sequencing
- * fields we've already declared, and send things in multiple packets....
- */
-
-struct v_info 
-       {
-       char *appl_name;                        /* Typically, these are pointers into */
-       char *appl_vers;                        /* a struct v_pkt's */
-       char *platform;                         /* data field (and are null-terminated strings) */
-       char *status;                           /* status of this version */
-                                               /* this string should be length 1, eg, V_OPTIONAL */
-       char *message;
-       };
-
-struct v_pkt 
-       {
-       unsigned short protocol_version;
-       unsigned short packet_number;
-       unsigned short number_of_packets;
-       unsigned short op_code;
-       unsigned long  seq;
-       char data[V_MAXDATA];                   /* buffer of null delimited strings */
-       };
-
-#ifdef TEST
-# define VERSION_FILE    "/afs/net/project/net_dev/versions/test-version.txt"
-# define VERSION_DB_FILE "/afs/net/project/net_dev/versions/test-db"
-#else
-# define VERSION_FILE    "/afs/net/project/net_dev/version_db/version.txt"
-# define VERSION_DB_FILE "/afs/net/project/net_dev/version_db/db"
-#endif
-
-#define VERSION_LOG_DIR "/site/versions/"
-#define VERSION_ERROR_LOG "bad-requests"
-#define VERSION_SERVER_HOST "versions.mit.edu"
-#define VERSION_SERVER_PORT 8500
-#define VERSION_CLIENT_PORT (VERSION_SERVER_PORT+1)
-#define VERSION_PROTOCOL_VERSION 1
-#define V_BASE_SIZE    (sizeof(struct v_pkt)-V_MAXDATA)
-#define DLM ':'
-#define KEY_SIZE   100
-#define LOG_CLASS LOG_LOCAL4
-
-#define V_MACOS "MacOS"
-#endif /* _VERSION_INC */
-/* end of file */
diff --git a/src/mit/windows/include/vs.h b/src/mit/windows/include/vs.h
deleted file mode 100644 (file)
index 2f22865..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- *----------------------------------------------------------------
- *
- *  $Source$
- *  $Revision$
- *  $Date$
- *  $State$
- *  $Author$ Jason Sachs (nosaj)
- *  $Locker$
- *
- *  $Log$
- *  Revision 1.2  1997/04/29 10:45:02  tytso
- *  Remove #include of "mitcpyrt.h" (since it's of dubious legal value, and
- *  the file doesn't exist.)
- *
- *  Revision 1.1  1997/04/17 15:25:52  tytso
- *  Add MIT's version server include files and libraries.
- *
- * Revision 1.3  92/08/27  10:44:51  pbh
- * alpha 0.2a check in
- * rebuilt manually
- * 
- * Revision 0.1  92/08/25  10:00:20  pbh
- * alpha 0.1a
- */
-
-
-
-/* vs.h -- defines for the Version Server checking routines. */
-
-/* jms 6/3/92 */
-
-#ifndef VS_HEADER_STUFF
-#define VS_HEADER_STUFF
-
-#include "v.h"
-#include <stdlib.h>
-
-typedef unsigned char VS_Status;
-typedef unsigned long VS_Request; /* For compatibility reasons */
-
-#if defined(WINDOWS) || defined(MEWEL)
-  #ifdef VS_INCWINDOWS
-    #include <windows.h>
-  #endif /* should we include windows.h here? */
-#else
-  #ifndef FAR /* il 7/25/95 */
-    #define FAR
-    /* no need for that here */
-  #endif
-
-  #ifndef BOOL /* il 7/25/95 */
-    #define BOOL int
-  #endif
-    
-  #ifndef NULL
-    #define NULL 0
-  #endif /* Null */
-
-#endif
-
-/* patch for nt.  il 7/24/95 -- adding nt */
-#include "vs_nt.h"
-
-typedef struct v_req_info VS_ReqInfo, *VS_ReqInfoPtr;
-#define VS_NAT_ReqInfoPtr VS_ReqInfo *
-
-#if defined(MEWEL) || defined(WINDOWS)
-  #if defined(WIN32) /* il 7/27/95 -- added nt */
-    #define RequestAlloc (VS_Request) LocalAlloc
-    #define RequestLock(request) (VS_ReqInfoPtr) LocalLock((LOCALHANDLE)(request))
-    #define RequestFree(request) LocalFree((LOCALHANDLE)(request))
-    #define RequestUnlock(request) LocalUnlock((LOCALHANDLE)(request))
-  #else
-    #define RequestAlloc (VS_Request) LocalAlloc
-    #define RequestLock(request) (VS_ReqInfoPtr) LocalLock((LOCALHANDLE)(LOWORD(request)))
-    #define RequestFree(request) LocalFree((LOCALHANDLE)(LOWORD(request)))
-    #define RequestUnlock(request) LocalUnlock((LOCALHANDLE)(LOWORD(request)))
-  #endif
-#else                            
-    #define RequestAlloc(flags,size) (VS_Request) malloc(size)
-    #define RequestLock (char *)
-    #define RequestFree(request) free((char *) request)
-    #define RequestUnlock(request) /* nothin' */
-#endif /* jms 08/13/93 */
-
-/* status codes */
-
-#define V_E_SELECT                              255
-#define V_E_TIMEOUT                             254
-#define V_E_SELECT_STRANGEFD                    253
-#define V_E_RECVFROM                            252
-#define V_E_UNKNOWN                             251
-#define V_E_BAD_OP_CODE                         250
-#define V_E_HOSTNOTFOUND                        249
-#define V_E_SOCKET                              248
-#define V_E_BIND                                247
-#define V_E_SENDTO                              246
-#define V_E_DLLNOTFOUND                         245
-#define V_E_NOMEMORY                            244
-#define V_E_CANCEL                              243
-
-#define VSR_OK                                    0
-
-/* classifications of errors */
-
-#define V_C_NOERROR                             0
-#define V_C_TRY_AGAIN                           1
-#define V_C_DEFINITE                            2
-#define V_C_FAIL                                3
-
-extern VS_Status _far _cdecl err_classify(VS_Status error);
-#if defined(MEWEL) || defined(WINDOWS)
-/* jms 2/16/93 */
-extern BOOL _far _cdecl v_complain(VS_Status error, LPSTR inifilename);
-#endif
-
-#define V_TRY_AGAIN(status) (err_classify(status)==V_C_TRY_AGAIN)
-#define V_FAIL(status)     (err_classify(status)==V_C_FAIL)
-#define V_DEFINITE(status)  (err_classify(status)==V_C_DEFINITE)
-
-#define V_STATUS(vinfo) ((VS_Status)*((vinfo).status))
- /* grumble... this abstraction should be in v.h... */
-
-/* the main routines */
-
-#if defined(MEWEL) || defined(WINDOWS)
-#ifndef NOCODECOVER
-extern VS_Request _far _cdecl VSFormRequest(char FAR *name, char FAR *version,
-                char FAR *ininame, char FAR *codecover, HWND hWnd,
-                int HowToCheck);
-#else
-extern VS_Request _far _cdecl VSFormRequest(char FAR *name, char FAR *version,
-                char FAR *ininame, HWND hWnd,
-                int HowToCheck);
-#endif
-
-#else
-extern VS_Request _far _cdecl VSFormRequest(char *name, char *version, int HowToCheck);
-#endif
-
-extern VS_Status _far _cdecl VSProcessRequest(VS_Request request);
-#if defined(WINDOWS) || defined(MEWEL)
-extern void _far _cdecl WinVSReportRequest(VS_Request request, HWND hWnd, char FAR *title);
-extern void _far _cdecl TTChangeRegistration(char FAR *ininame, HWND hWnd, LPSTR DlgBoxName);
-extern BOOL _far _cdecl v_complain(VS_Status error, LPSTR inifilename);
-#else
-extern void _far _cdecl TTYVSReportRequest(VS_Request request);
-#endif
-extern void _far _cdecl VSDestroyRequest(VS_Request request);
-extern void _far _cdecl PickVersionServer(char FAR *name);
-#define HNAMESIZE 40 /* max. chars in the VS server name. */
-#define HSPSIZE 2    /* no. chars in send packets option */
-
-#ifndef VS_INTERNAL
-extern VS_Request _far _cdecl MakeRequest( VS_Status status );
-extern VS_Status _far _cdecl ReqStatus ( VS_Request hrequest );
-#endif
-
-#endif /* VS_HEADER_STUFF */
-
-/*
- * The application should call the first two routines, and optionally
- * the third, in order. It should only quit if CheckVS returns V_REQUIRED.
- * If this is a Windows/Mewel program, a call to PostQuitMessage(0) is the
- * best way to do things, unless some cleanup needs to be done... but the
- * Version Server checking should be done as early as possible so this
- * shouldn't be a problem.
- */
-
-#if 0
-/* here's an example: */
-  VS_Request request;
-  VS_Status status;
-
-  request = VSFormRequest(APPLICATION_NAME, APP_VER, "1st alpha");
-  status = VSProcessRequest(request);
-  WinVSReportRequest(request, hMainWin, "Version Server Status Report");
-  if (status == V_REQUIRED)
-    PostQuitMessage(0); /* This is an outdated version of TechInfo! */
-  VSDestroyRequest(request);
-#endif
diff --git a/src/mit/windows/include/vs_nt.h b/src/mit/windows/include/vs_nt.h
deleted file mode 100644 (file)
index 18ec615..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/* il 7/24/95 -- adding nt */
-
-#ifndef _vs_nt_h_
-#define _ve_nt_h_
-
-#ifdef _WIN32
-
-
-
-/* the #undef instructions are not needed, but left to avoid possible
- * conflicts with windows.h's similar definitions */
-
-#undef FAR
-#undef far
-#undef _far
-#undef __far
-
-#define FAR
-#define far
-#define _far
-#define __far
-
-#undef _osmajor
-#undef _osmanor
-#define _osmajor _winmajor
-#define _osminor _winminor
-
-#undef _fstrlen
-#undef _fstrcat
-#define _fstrlen strlen
-#define _fstrcat strcat
-
-#include <stdlib.h>
-
-
-#undef WINDOWS
-#define WINDOWS
-
-#endif
-#endif
diff --git a/src/mit/windows/lib/ChangeLog b/src/mit/windows/lib/ChangeLog
deleted file mode 100644 (file)
index 1e755bb..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-Mon May 17 18:47:15 1999  Danilo Almeida  <dalmeida@mit.edu>
-
-       * vs.dll, vswin.lib: Remove as we no longer support win16.
-       * vs32.dll, vsnt.lib: Move to i386 subdirectory.
-       * i386: Add directory for i386-specific win32 libraries.
-
diff --git a/src/mit/windows/lib/i386/ChangeLog b/src/mit/windows/lib/i386/ChangeLog
deleted file mode 100644 (file)
index 42e1c14..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-Mon May 17 18:54:35 1999  Danilo Almeida  <dalmeida@mit.edu>
-
-       * vs32.dll, vsnt.lib: Set -kb sticky bits.
-
-Mon May 17 18:47:15 1999  Danilo Almeida  <dalmeida@mit.edu>
-
-       * vs32.dll, vsnt.lib: Move from .. into this subdirectory.
-
diff --git a/src/mit/windows/lib/i386/vs32.dll b/src/mit/windows/lib/i386/vs32.dll
deleted file mode 100644 (file)
index 4cacfdb..0000000
Binary files a/src/mit/windows/lib/i386/vs32.dll and /dev/null differ
diff --git a/src/mit/windows/lib/i386/vsnt.lib b/src/mit/windows/lib/i386/vsnt.lib
deleted file mode 100644 (file)
index efeedab..0000000
Binary files a/src/mit/windows/lib/i386/vsnt.lib and /dev/null differ
index 3d96b20c690f9022dc2c8a2a2d17945cc1c5f9e0..0723899fccfe0583944464ca1ce2f7642336476b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 3ca6411998e82d857f6ef5408ff942b99bfc23b7..ca554a7e078fd9bd20b57a1f260f8f7f752c2b9a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ca86faf881b35df7aed2b9f2fb880658675974b3..e80bb3892b304a14002c5505aecc29a7f8907fc7 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 927fb1e913458675f95365c6de269a6b4aa9ad9c..3caec4a48ead5d5c86d6f58af3568b73c7e88347 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=.
 myfulldir=slave
 mydir=.
 BUILDTOP=$(REL)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index a0b5ac840e3c7f0c0aa3a1aa4a3d3a6a97c82d19..0a442a21eb9740f4377ffd837338953be1941428 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" 
index 94b0b7a96a7d2d8441132778bc5349787ced8fc5..5b6b5969b0f9b5bb7002dc0a415e990b1c6e6194 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e5481f3afbb06239c0e5868e03801ee4eee63167..50210132e5920cb2affe25b833908e63e912c253 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index e037a11210c1ff7c1c58306e3dba3bd23cf3e8ff..6c7d6a159ec683ee188e6f19736f460147255ca5 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" 
index c2556b6e9a3350b9eeb47dac895f24278c908952..23a75e0478410d996791f4dfa8a56fb24f794351 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index df541eb4bc7961d36430b27fcfdaed1e2a93563c..04f650974bdae5b43d1747c14c89c2a05ced697a 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Wed Feb 18 16:27:44 1998  Tom Yu  <tlyu@mit.edu>
 
        * Makefile.in (thisconfigdir): Remove trailing slash.
index 02c94d240df5493dbc5704979bf09ca47ee035fd..4c7eed06a7faeec69ecc5243a7e6187a9d24253b 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=.
 BUILDTOP=$(REL)$(U)
 LOCAL_SUBDIRS = resolve asn.1 create hammer verify gssapi dejagnu
 
-CFLAGS = $(CCOPTS)
 RUN_SETUP = @KRB5_RUN_ENV@ KRB5_KDC_PROFILE=kdc.conf KRB5_CONFIG=$(SRCTOP)/config-files/krb5.conf
 KRB5_RUN_ENV= @KRB5_RUN_ENV@
 PROG_LIBPATH=-L$(TOPLIBD)
index ae8f98bf18047263a1844d2b398223002e9f254b..f6ce2622189b2ff367fa81139f6d2891efd3a6f7 100644 (file)
@@ -1,3 +1,15 @@
+1999-11-01  Tom Yu  <tlyu@mit.edu>
+
+       * krb5_decode_test.c (main): Add test case for zero-length
+       SequenceOfType.
+
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Sat Jul 10 10:32:31 1999  Tom Yu  <chaoself@mit.edu>
 
        * krb5_decode_test.c (main): Add additional test cases in
index 54ee75e2adae624d262f500448aed1398f5192cb..19b774963cd8844baff80ae950776469fdfc933e 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=tests/asn.1
 mydir=asn.1
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDES)
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
@@ -27,7 +26,7 @@ krb5_decode_test: $(DECOBJS) $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o krb5_decode_test $(DECOBJS) $(KRB5_BASE_LIBS)
 
 trval: $(srcdir)/trval.c
-       $(CC) -o trval $(CFLAGS) -DSTANDALONE $(srcdir)/trval.c
+       $(CC) -o trval $(ALL_CFLAGS) -DSTANDALONE $(srcdir)/trval.c
 
 check:: krb5_decode_test krb5_encode_test
        KRB5_CONFIG=$(SRCTOP)/config-files/krb5.conf ; \
index f1f3b702f5783f9684344817871cca8c3940ba88..8ec075b93846eeb283545e2673099ba980e4b061 100644 (file)
@@ -274,6 +274,10 @@ int main(argc, argv)
 #endif
     ref.kdc_options &= ~KDC_OPT_ENC_TKT_IN_SKEY;
     decode_run("kdc_req_body","(optionals NULL except server)","30 59 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 08 30 06 02 01 00 02 01 01",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body);
+    ref.nktypes = 0;
+    free(ref.ktype);
+    ref.ktype = NULL;
+    decode_run("kdc_req_body","(optionals NULL except server; zero-length etypes)","30 53 A0 07 03 05 00 FE DC BA 90 A2 10 1B 0E 41 54 48 45 4E 41 2E 4D 49 54 2E 45 44 55 A3 1A 30 18 A0 03 02 01 01 A1 11 30 0F 1B 06 68 66 74 73 61 69 1B 05 65 78 74 72 61 A5 11 18 0F 31 39 39 34 30 36 31 30 30 36 30 33 31 37 5A A7 03 02 01 2A A8 02 30 00",decode_krb5_kdc_req_body,ktest_equal_kdc_req_body);
   }
   
   /****************************************************************/
index bfe0abda4f0d113f06fd456b2d3deb11031bde4e..7a1ddc3681d53a626c9fb2edb42bc5e9c7fddbb9 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5cf06cc9a24c1f56338724ad8990ced1f07b68d5..55733523c7faf6d244e5edf801791c44fa4317a4 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 6ba741b21ca595739127c2fc3ef5c6ad3e3a9e66..15ebb9a18ea11eaa798a6004789623fc9cba6929 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=tests/create
 mydir=create
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) 
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 SRCS=$(srcdir)/kdb5_mkdums.c
index be8b5a3fdf022ea4b2e04fb15a4852b18037e1d3..23e25853265e2f6d7dc729e0ad95ae997e5287d5 100644 (file)
 .\" 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
+.\" permission.  Furthermore if you modify this software you must label
+.\" your software as modified software and not distribute it in such a
+.\" fashion that it might be confused with the original M.I.T. software.
+.\" 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.
 .\" 
index 4f93766706d250c7937f9c01939b639fb69b24a7..3cacc19df18572a24eec9367f51a300d4648a048 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 5029e6d8c15a03904d4ff91c61ce0b902d0dff93..ee65f85fdc2c97e1f305c0b131d2363887d54a6e 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 60de335bec6247f92ae12eca617838769179cdf3..a93bae008f9a86fecb413a53da129879ff4965ae 100644 (file)
@@ -23,8 +23,6 @@ check-::
 check-runtest:: t_inetd site.exp
        $(HAVE_RUNTEST) --tool krb --srcdir $(srcdir) $(RUNTESTFLAGS)
 
-CFLAGS = $(CCOPTS) $(DEFS)
-
 t_inetd:: t_inetd.o $(KRB5_BASE_DEPLIBS)
        $(CC_LINK) -o t_inetd t_inetd.o $(KRB5_BASE_LIBS)
 
index f464d3ee2e1382298bfcb69518a4d32573088b06..4cecec79137f8d7e7250c4e98896685d3de00317 100644 (file)
@@ -1,3 +1,28 @@
+1999-08-31  Ken Raeburn  <raeburn@mit.edu>
+
+       * default.exp (setup_kerberos_files): Set kdc_supported_enctypes
+       in kdc.conf, and include des3-cbc-sha1:normal.
+       (setup_kerberos_db): If setting up krbtgt to use des3, now use
+       only des3, not des3 and des-crc both.
+
+1999-08-30  Ken Raeburn  <raeburn@raeburn.org>
+
+       * default.exp (des3_krbtgt): New variable.
+       (setup_kerberos_files): Remove des3 from supported_enctypes in
+       kdc.conf.
+       (setup_kerberos_db): If des3_krbtgt is set, change krbtgt key, and
+       get a des3 key in addition to des.
+
+1999-08-27  Ken Raeburn  <raeburn@raeburn.org>
+
+       * default.exp: Set default principal expiration a bit further into
+       the future.
+
+1999-08-26  Tom Yu  <tlyu@mit.edu>
+
+       * default.exp (setup_kerberos_files): Tweak enctypes entered into
+       config files to exercise 3DES a little.
+
 Fri Jan 30 23:48:57 1998  Tom Yu  <tlyu@mit.edu>
 
        * default.exp: Add kpasswd_server to krb5.conf.
index c5b62619236549f412f8c06b9cff4e4195238096..6b53e35225b85046859c751e007feec1344f761f 100644 (file)
@@ -15,6 +15,8 @@ set timeout 100
 set stty_init {erase \^h kill \^u}
 set env(TERM) dumb
 
+set des3_krbtgt 1
+
 # We do everything in a temporary directory.
 if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status}
 
@@ -309,7 +311,7 @@ proc setup_kerberos_files { } {
     set conffile [open tmpdir/krb5.conf w]
     puts $conffile "\[libdefaults\]"
     puts $conffile "   default_realm = $REALMNAME"
-    puts $conffile "default_tgs_enctypes = des3-cbc-md5 des-cbc-md5 des-cbc-crc"
+    puts $conffile "default_tgs_enctypes = des-cbc-md5 des-cbc-crc"
     puts $conffile ""
     puts $conffile "\[realms\]"
     puts $conffile "   $REALMNAME = \{"
@@ -350,9 +352,11 @@ proc setup_kerberos_files { } {
        puts $conffile "                max_renewable_life = 3:00:00"
        puts $conffile "                master_key_type = des-cbc-md5"
        puts $conffile "                master_key_name = master/key"
-       puts $conffile "                supported_enctypes = des-cbc-crc:normal des-cbc-md5:normal des-cbc-crc:v4 des-cbc-md5:norealm"
+# des3-cbc-sha1:normal
+       puts $conffile "                supported_enctypes =  des-cbc-crc:normal des-cbc-md5:normal des-cbc-crc:v4 des-cbc-md5:norealm"
+       puts $conffile "                kdc_supported_enctypes = des3-cbc-sha1:normal des-cbc-crc:normal des-cbc-md5:normal des-cbc-crc:v4 des-cbc-md5:norealm"
        puts $conffile "                kdc_ports = 3088"
-       puts $conffile "                default_principal_expiration = 99.12.31.23.59.59"
+       puts $conffile "                default_principal_expiration = 2037.12.31.23.59.59"
        puts $conffile "                default_principal_flags = -postdateable forwardable"
        puts $conffile "        \}"
        puts $conffile ""
@@ -579,6 +583,7 @@ proc setup_kerberos_db { standalone } {
     global KEY
     global tmppwd
     global spawn_id
+    global des3_krbtgt
 
     if {!$standalone && [file exists tmpdir/db.ok]} {
        return 1
@@ -730,6 +735,46 @@ proc setup_kerberos_db { standalone } {
        return 0
     }
 
+    if $des3_krbtgt {
+       # Set the TGT key to DES3.
+       spawn $KADMIN_LOCAL -r $REALMNAME -e des3-cbc-sha1:normal
+       expect_after {
+           timeout {
+               catch "expect_after"
+               fail "kadmin.local (timeout)"
+               if {!$standalone} {
+                   catch "exec rm -f tmpdir/db.ok tmpdir/adb.db"
+               }
+               return 0
+           }
+           eof {
+               catch "expect_after"
+               fail "kadmin.local (eof)"
+               if {!$standalone} {
+                   catch "exec rm -f tmpdir/db.ok tmpdir/adb.db"
+               }
+               return 0
+           }
+       }
+       expect "kadmin.local: "
+       send "cpw -randkey krbtgt/$REALMNAME@$REALMNAME\r"
+       # It echos...
+       expect "cpw -randkey krbtgt/$REALMNAME@$REALMNAME\r"
+       expect {
+           "Key for \"krbtgt/$REALMNAME@$REALMNAME\" randomized." { }
+       }
+       expect "kadmin.local: "
+       send "quit\r"
+       expect "\r"
+       expect_after
+       if ![check_exit_status kadmin_local] {
+           if {!$standalone} {
+               catch "exec rm -f tmpdir/db.ok tmpdir/adb.db"
+           }
+           return 0
+       }
+    }
+
     if ![setup_kadmind_srvtab] {
        return 0
     }
index 0fe4db834e662649589fc69568294e9517399b4a..fba21da5eaf4339dd38d35354a0a0a510f9591f3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4cef05f535a5fea27019c6bbd494ad0ee1d98b87..1e40ffeda03a3b32c3dd69f0b683aa3eecfa3404 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index f546808d2d8f5ecd5ab3277aad6a18dd21a3580c..cec37c2829fa0e17095a90c733b98099994a7b7d 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-04-14    <tytso@rsts-11.mit.edu>
 
        * t_imp_name.c: Initialize display_file variable in main(),
index 4854683f58636c9dacc262459709e3f4af0c72ec..df8db19d517d62d0b22021bc96021e155e1da078 100644 (file)
@@ -2,7 +2,7 @@ thisconfigdir=./..
 myfulldir=tests/gssapi
 mydir=gssapi
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE) -DUSE_AUTOCONF_H
+DEFINES = -DUSE_AUTOCONF_H
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index 182c37361911d5adba6152204a8825786909d2c8..04a6cc7f9814aa20cf8a34fff245acb12e7fe79a 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 10d59e11ae3c0bc7f91dc57dcb54fff49787564b..1504de43402f9599121c99b735ffb4cacb1ba9e6 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index e4d14aa2377d7c130d8374c990edf2eb2a02709a..367ba8890acdf6fa6cf4706e24490d214b2adcf4 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=tests/hammer
 mydir=hammer
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) 
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index 54d567c430c47507b10c398b79fc3a7d0622c2dd..780f92d83ec89f6cd1e01ca3887107a5a87afe70 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 679cce16830bef98c3471c2ccfedc476fce1a802..0e5b12a2af15bea24bce363cbe99e10cbf40ba72 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 5e14eb028f9e32cd560f9beed19eb3a69363177e..f528d48897ea8e85d1ce3dc4616b3c9c27a4a7fb 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=tests/resolve
 mydir=resolve
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDES)
 RUN_SETUP = @KRB5_RUN_ENV@
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
index 39020e54b6cf0ccd62a1fbc732fa75416c518f03..023c378f4e6e565df5599d06d1c0d4600b6007e7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 9e5890e500b035e857ce1d83bd9e7dd92933bf44..bb142ead4f898f32f8c2f5d3573525a02abe0165 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 1f466c7b6eabbd2bd3334ceeeb5b93f1a4c91a85..7d0a88f2e66f527b10b56b059c099edbfa602d51 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1998-11-13  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Set the myfulldir and mydir variables (which are
index 137ef379c2b21bd422f1121146cce601dfbc466d..cb4d4bdbb155da0c5e8756bdaf236f91e95b41e5 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=./..
 myfulldir=tests/verify
 mydir=verify
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) 
 PROG_LIBPATH=-L$(TOPLIBD)
 PROG_RPATH=$(KRB5_LIBDIR)
 
index 558ef25335526f68218f168ec0791ce71e277e32..bfb0661369a300ca8046aa83cde0908b1d908437 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c72703068ee6f8f146d2b2532d5946af85f03c52..3862b2530e24473041154ca67e5386cc30e21f9b 100644 (file)
@@ -1,3 +1,14 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-16  Tom Yu  <tlyu@mit.edu>
+
+       * mkrel (reldate): Fix to deal with release branch snapshots.
+
 Wed May 19 11:43:36 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Add all and cleanup rules for windows for windows,
index b374d7cd493fc1033afdc88b1fb07d97acfa646e..3b4fd5d9bfc7494c03e5130f92db8c50a28940b1 100644 (file)
@@ -3,7 +3,6 @@ myfulldir=util
 mydir=util
 MY_SUBDIRS=et ss profile pty dyn db2 send-pr
 BUILDTOP=$(REL)$(U)
-CFLAGS = $(CCOPTS)
 
 MAC_SUBDIRS = profile et
 
index f7617d5f6b0f0780c4597a2b8914b7e463f37d17..7972728d647a396b8bdc4455ff2cf73c1c079859 100644 (file)
@@ -1,3 +1,13 @@
+1999-08-15  Tom Yu  <tlyu@mit.edu>
+
+       * README.NOT.SLEEPYCAT.DB: New file; pointer to README to
+       hopefully unconfuse people.
+
+       * README: Add notice to the effect that this is not Berkeley or
+       Sleepycat DB.
+
+       * README.db2: Renamed from README.
+
 Fri Feb 13 14:37:47 1998  Tom Yu  <tlyu@mit.edu>
 
        * recno/extern.h: Additional renaming.
index 5700b739326224e7ce44d6af8d39f979ff622676..70118bef5ff5ab9171aa392f36360c9369a7a536 100644 (file)
@@ -1,41 +1,17 @@
-#      @(#)README      8.28 (Berkeley) 11/2/95
-
-This is version 2.0-ALPHA of the Berkeley DB code.
-THIS IS A PRELIMINARY RELEASE.
-
-For information on compiling and installing this software, see the file
-PORT/README.
-
-Newer versions of this software will periodically be made available by
-anonymous ftp from ftp.cs.berkeley.edu:ucb/4bsd/db.tar.{Z,gz} and from
-ftp.harvard.edu:margo/db.tar.{Z,gz}.  If you want to receive announcements
-of future releases of this software, send email to the contact address
-below.
-
-Email questions may be addressed to dbinfo@eecs.harvard.edu.
-
-============================================
-Distribution contents:
-
-README         This file.
-CHANGELOG      List of changes, per version.
-btree          B+tree access method.
-db             The db_open interface routine.
-docs           Various USENIX papers, and the formatted manual pages.
-hash           Extended linear hashing access method.
-lock           Lock manager.
-log            Log manager.
-man            The unformatted manual pages.
-mpool          The buffer manager support.
-mutex          Mutex support.
-recno          The fixed/variable length record access method.
-test           Test package.
-txn            Transaction support.
-
-============================================
-Debugging:
-
-If you're running a memory checker (e.g. Purify) on DB, make sure that
-you recompile it with "-DPURIFY" in the CFLAGS, first.  By default,
-allocated pages are not initialized by the DB code, and they will show
-up as reads of uninitialized memory in the buffer write routines.
+                         IMPORTANT NOTICE:
+
+This directory contains code of somewhat unknown origin that is
+INCOMPATIBLE with both Berkeley DB 1.85 and Sleepycat DB 2.x.  Do NOT
+contact Sleepycat regarding bugs in code found here; they do not
+appreciate it.  All bug reports about this code should go to the MIT
+Kerberos team via krb5-send-pr or email to krb5-bugs@mit.edu, as
+usual.
+
+It is believed that this "db" code originated from Berkeley DB 1.85
+and was further modified by Cygnus and the MIT Kerberos team.  Some
+significant changes to the hash code occured at some point.
+
+The file README.db2 contains the README file provided with the
+2.0-alpha release of Berkeley/Sleepycat DB, which may contain
+marginally useful information.  It is not known at this time how well
+this code matches that of the 2.0-alpha release.
diff --git a/src/util/db2/README.NOT.SLEEPYCAT.DB b/src/util/db2/README.NOT.SLEEPYCAT.DB
new file mode 100644 (file)
index 0000000..112454e
--- /dev/null
@@ -0,0 +1,2 @@
+THIS IS NOT THE SLEEPYCAT DB.
+Please see the README file for more information.
diff --git a/src/util/db2/README.db2 b/src/util/db2/README.db2
new file mode 100644 (file)
index 0000000..5700b73
--- /dev/null
@@ -0,0 +1,41 @@
+#      @(#)README      8.28 (Berkeley) 11/2/95
+
+This is version 2.0-ALPHA of the Berkeley DB code.
+THIS IS A PRELIMINARY RELEASE.
+
+For information on compiling and installing this software, see the file
+PORT/README.
+
+Newer versions of this software will periodically be made available by
+anonymous ftp from ftp.cs.berkeley.edu:ucb/4bsd/db.tar.{Z,gz} and from
+ftp.harvard.edu:margo/db.tar.{Z,gz}.  If you want to receive announcements
+of future releases of this software, send email to the contact address
+below.
+
+Email questions may be addressed to dbinfo@eecs.harvard.edu.
+
+============================================
+Distribution contents:
+
+README         This file.
+CHANGELOG      List of changes, per version.
+btree          B+tree access method.
+db             The db_open interface routine.
+docs           Various USENIX papers, and the formatted manual pages.
+hash           Extended linear hashing access method.
+lock           Lock manager.
+log            Log manager.
+man            The unformatted manual pages.
+mpool          The buffer manager support.
+mutex          Mutex support.
+recno          The fixed/variable length record access method.
+test           Test package.
+txn            Transaction support.
+
+============================================
+Debugging:
+
+If you're running a memory checker (e.g. Purify) on DB, make sure that
+you recompile it with "-DPURIFY" in the CFLAGS, first.  By default,
+allocated pages are not initialized by the DB code, and they will show
+up as reads of uninitialized memory in the buffer write routines.
index 6f09fcd60ed91a1f4f1f179aa68ea0e650d64705..a85532034a98e3fa67b73f3d07244c391178959c 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 Mon Nov 25 16:20:35 1996  Sam Hartman  <hartmans@mit.edu>
 
        * Makefile.in (check): Remove install rule to fix pmake problem. [236]
index b81a78efbf3069264bd4a2d305f66a5de67b0b65..6c6f840f70e70c79b284c2e174f4c538ed7e822a 100644 (file)
@@ -36,9 +36,10 @@ libdir = @libdir@
 
 CDEBUGFLAGS = @CFLAGS@
 
-CFLAGS = $(CDEBUGFLAGS) @CPPFLAGS@ @DEFS@ \
-       -I. -I$(top_srcdir)/include -I$(top_srcdir)/mpool -I$(top_srcdir)/db \
+CFLAGS = $(CDEBUGFLAGS)
+LOCALINCLUDES = -I. -I$(top_srcdir)/include -I$(top_srcdir)/mpool -I$(top_srcdir)/db \
        -I$(top_srcdir)/hash -I$(top_srcdir)/btree -I$(top_srcdir)/recno
+ALL_CFLAGS = $(DEFS) $(LOCALINCLUDES) $(CPPFLAGS) $(CFLAGS)
 
 all:: $(LIBDB) db.h
 
@@ -71,83 +72,83 @@ clean::
 ## but it doesn't, so I do this instead:
 
 db.o: $(top_srcdir)/db/db.c
-       $(CC) $(CFLAGS) -c -o db.o $(top_srcdir)/db/db.c
+       $(CC) $(ALL_CFLAGS) -c -o db.o $(top_srcdir)/db/db.c
 
 mpool.o: $(top_srcdir)/mpool/mpool.c
-       $(CC) $(CFLAGS) -c -o mpool.o $(top_srcdir)/mpool/mpool.c
+       $(CC) $(ALL_CFLAGS) -c -o mpool.o $(top_srcdir)/mpool/mpool.c
 
 hash.o: $(top_srcdir)/hash/hash.c
-       $(CC) $(CFLAGS) -c -o hash.o $(top_srcdir)/hash/hash.c
+       $(CC) $(ALL_CFLAGS) -c -o hash.o $(top_srcdir)/hash/hash.c
 hash_bigkey.o: $(top_srcdir)/hash/hash_bigkey.c
-       $(CC) $(CFLAGS) -c -o hash_bigkey.o $(top_srcdir)/hash/hash_bigkey.c
+       $(CC) $(ALL_CFLAGS) -c -o hash_bigkey.o $(top_srcdir)/hash/hash_bigkey.c
 hash_debug.o: $(top_srcdir)/hash/hash_debug.c
-       $(CC) $(CFLAGS) -c -o hash_debug.o $(top_srcdir)/hash/hash_debug.c
+       $(CC) $(ALL_CFLAGS) -c -o hash_debug.o $(top_srcdir)/hash/hash_debug.c
 hash_func.o: $(top_srcdir)/hash/hash_func.c
-       $(CC) $(CFLAGS) -c -o hash_func.o $(top_srcdir)/hash/hash_func.c
+       $(CC) $(ALL_CFLAGS) -c -o hash_func.o $(top_srcdir)/hash/hash_func.c
 hash_log2.o: $(top_srcdir)/hash/hash_log2.c
-       $(CC) $(CFLAGS) -c -o hash_log2.o $(top_srcdir)/hash/hash_log2.c
+       $(CC) $(ALL_CFLAGS) -c -o hash_log2.o $(top_srcdir)/hash/hash_log2.c
 hash_page.o: $(top_srcdir)/hash/hash_page.c
-       $(CC) $(CFLAGS) -c -o hash_page.o $(top_srcdir)/hash/hash_page.c
+       $(CC) $(ALL_CFLAGS) -c -o hash_page.o $(top_srcdir)/hash/hash_page.c
 hsearch.o: $(top_srcdir)/hash/hsearch.c
-       $(CC) $(CFLAGS) -c -o hsearch.o $(top_srcdir)/hash/hsearch.c
+       $(CC) $(ALL_CFLAGS) -c -o hsearch.o $(top_srcdir)/hash/hsearch.c
 dbm.o: $(top_srcdir)/hash/dbm.c
-       $(CC) $(CFLAGS) -c -o dbm.o $(top_srcdir)/hash/dbm.c
+       $(CC) $(ALL_CFLAGS) -c -o dbm.o $(top_srcdir)/hash/dbm.c
 
 bt_close.o: $(top_srcdir)/btree/bt_close.c
-       $(CC) $(CFLAGS) -c -o bt_close.o $(top_srcdir)/btree/bt_close.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_close.o $(top_srcdir)/btree/bt_close.c
 bt_conv.o: $(top_srcdir)/btree/bt_conv.c
-       $(CC) $(CFLAGS) -c -o bt_conv.o $(top_srcdir)/btree/bt_conv.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_conv.o $(top_srcdir)/btree/bt_conv.c
 bt_debug.o: $(top_srcdir)/btree/bt_debug.c
-       $(CC) $(CFLAGS) -c -o bt_debug.o $(top_srcdir)/btree/bt_debug.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_debug.o $(top_srcdir)/btree/bt_debug.c
 bt_delete.o: $(top_srcdir)/btree/bt_delete.c
-       $(CC) $(CFLAGS) -c -o bt_delete.o $(top_srcdir)/btree/bt_delete.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_delete.o $(top_srcdir)/btree/bt_delete.c
 bt_get.o: $(top_srcdir)/btree/bt_get.c
-       $(CC) $(CFLAGS) -c -o bt_get.o $(top_srcdir)/btree/bt_get.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_get.o $(top_srcdir)/btree/bt_get.c
 bt_open.o: $(top_srcdir)/btree/bt_open.c
-       $(CC) $(CFLAGS) -c -o bt_open.o $(top_srcdir)/btree/bt_open.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_open.o $(top_srcdir)/btree/bt_open.c
 bt_overflow.o: $(top_srcdir)/btree/bt_overflow.c
-       $(CC) $(CFLAGS) -c -o bt_overflow.o $(top_srcdir)/btree/bt_overflow.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_overflow.o $(top_srcdir)/btree/bt_overflow.c
 bt_page.o: $(top_srcdir)/btree/bt_page.c
-       $(CC) $(CFLAGS) -c -o bt_page.o $(top_srcdir)/btree/bt_page.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_page.o $(top_srcdir)/btree/bt_page.c
 bt_put.o: $(top_srcdir)/btree/bt_put.c
-       $(CC) $(CFLAGS) -c -o bt_put.o $(top_srcdir)/btree/bt_put.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_put.o $(top_srcdir)/btree/bt_put.c
 bt_search.o: $(top_srcdir)/btree/bt_search.c
-       $(CC) $(CFLAGS) -c -o bt_search.o $(top_srcdir)/btree/bt_search.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_search.o $(top_srcdir)/btree/bt_search.c
 bt_seq.o: $(top_srcdir)/btree/bt_seq.c
-       $(CC) $(CFLAGS) -c -o bt_seq.o $(top_srcdir)/btree/bt_seq.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_seq.o $(top_srcdir)/btree/bt_seq.c
 bt_split.o: $(top_srcdir)/btree/bt_split.c
-       $(CC) $(CFLAGS) -c -o bt_split.o $(top_srcdir)/btree/bt_split.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_split.o $(top_srcdir)/btree/bt_split.c
 bt_stack.o: $(top_srcdir)/btree/bt_stack.c
-       $(CC) $(CFLAGS) -c -o bt_stack.o $(top_srcdir)/btree/bt_stack.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_stack.o $(top_srcdir)/btree/bt_stack.c
 bt_utils.o: $(top_srcdir)/btree/bt_utils.c
-       $(CC) $(CFLAGS) -c -o bt_utils.o $(top_srcdir)/btree/bt_utils.c
+       $(CC) $(ALL_CFLAGS) -c -o bt_utils.o $(top_srcdir)/btree/bt_utils.c
 
 rec_close.o: $(top_srcdir)/recno/rec_close.c
-       $(CC) $(CFLAGS) -c -o rec_close.o $(top_srcdir)/recno/rec_close.c
+       $(CC) $(ALL_CFLAGS) -c -o rec_close.o $(top_srcdir)/recno/rec_close.c
 rec_delete.o: $(top_srcdir)/recno/rec_delete.c
-       $(CC) $(CFLAGS) -c -o rec_delete.o $(top_srcdir)/recno/rec_delete.c
+       $(CC) $(ALL_CFLAGS) -c -o rec_delete.o $(top_srcdir)/recno/rec_delete.c
 rec_get.o: $(top_srcdir)/recno/rec_get.c
-       $(CC) $(CFLAGS) -c -o rec_get.o $(top_srcdir)/recno/rec_get.c
+       $(CC) $(ALL_CFLAGS) -c -o rec_get.o $(top_srcdir)/recno/rec_get.c
 rec_open.o: $(top_srcdir)/recno/rec_open.c
-       $(CC) $(CFLAGS) -c -o rec_open.o $(top_srcdir)/recno/rec_open.c
+       $(CC) $(ALL_CFLAGS) -c -o rec_open.o $(top_srcdir)/recno/rec_open.c
 rec_put.o: $(top_srcdir)/recno/rec_put.c
-       $(CC) $(CFLAGS) -c -o rec_put.o $(top_srcdir)/recno/rec_put.c
+       $(CC) $(ALL_CFLAGS) -c -o rec_put.o $(top_srcdir)/recno/rec_put.c
 rec_search.o: $(top_srcdir)/recno/rec_search.c
-       $(CC) $(CFLAGS) -c -o rec_search.o $(top_srcdir)/recno/rec_search.c
+       $(CC) $(ALL_CFLAGS) -c -o rec_search.o $(top_srcdir)/recno/rec_search.c
 rec_seq.o: $(top_srcdir)/recno/rec_seq.c
-       $(CC) $(CFLAGS) -c -o rec_seq.o $(top_srcdir)/recno/rec_seq.c
+       $(CC) $(ALL_CFLAGS) -c -o rec_seq.o $(top_srcdir)/recno/rec_seq.c
 rec_utils.o: $(top_srcdir)/recno/rec_utils.c
-       $(CC) $(CFLAGS) -c -o rec_utils.o $(top_srcdir)/recno/rec_utils.c
+       $(CC) $(ALL_CFLAGS) -c -o rec_utils.o $(top_srcdir)/recno/rec_utils.c
 
 dbtest.o: $(top_srcdir)/test/dbtest.c
-       $(CC) $(CFLAGS) -c -o dbtest.o $(top_srcdir)/test/dbtest.c
+       $(CC) $(ALL_CFLAGS) -c -o dbtest.o $(top_srcdir)/test/dbtest.c
 
 memmove.o: $(top_srcdir)/clib/memmove.c
-       $(CC) $(CFLAGS) -Dmemmove=my_memmove -DMEMMOVE -c -o memmove.o $(top_srcdir)/clib/memmove.c
+       $(CC) $(ALL_CFLAGS) -Dmemmove=my_memmove -DMEMMOVE -c -o memmove.o $(top_srcdir)/clib/memmove.c
 mkstemp.o: $(top_srcdir)/clib/mkstemp.c
-       $(CC) $(CFLAGS) -Dmkstemp=my_mkstemp -c -o mkstemp.o $(top_srcdir)/clib/mkstemp.c
+       $(CC) $(ALL_CFLAGS) -Dmkstemp=my_mkstemp -c -o mkstemp.o $(top_srcdir)/clib/mkstemp.c
 strerror.o: $(top_srcdir)/clib/strerror.c
-       $(CC) $(CFLAGS) -Dstrerror=my_strerror -c -o strerror.o $(top_srcdir)/clib/strerror.c
+       $(CC) $(ALL_CFLAGS) -Dstrerror=my_strerror -c -o strerror.o $(top_srcdir)/clib/strerror.c
 
 distclean:: clean
        rm -f Makefile
index d5102d5a5f6e22877b5d99e69f1eec9624dfaa10..cf8845d8f178998b730247aecfa85980b2feb6a1 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-01-27  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in, configure.in: Move the responsibility for
index 00315e3719376a3e90e6598eef6d7cc0d86aeebb..1215998cbf4e21fe2470a4d4dd554ec816831c2c 100644 (file)
@@ -4,7 +4,6 @@ mydir=util/dyn
 MY_SUBDIRS=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
 RELDIR=../util/dyn
-CFLAGS = $(CCOPTS) $(DEFS)
 
 ##DOSBUILDTOP = ..\..
 ##DOSLIBNAME=libdyn.lib
index f5707d3e9ef6ddfca58b3efb285e2023ea010371..0f832913e2e93aa0485f0283f0d62915e51bb3b4 100644 (file)
@@ -1,3 +1,14 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-08-18  Miro Jurisic  <meeroh@mit.edu>
+
+       * et.exp: Added et.exp, MacOS export file for com_err library
+
 1999-06-15  Danilo Almeida  <dalmeida@mit.edu>
 
        * texinfo.tex: Get rid of control characters in text file.
index 7385943dfbd7a311d107c3910402b9e833aefcc1..aa512ea1ec9ccdadedef46cfe6b2dccc9bcb6b5c 100644 (file)
@@ -3,7 +3,6 @@ myfulldir=util/et
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
 RELDIR=../util/et
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 SED = sed
 
 ##DOS##BUILDTOP = ..\..
@@ -28,7 +27,7 @@ LIBOBJS=$(OUTPRE)com_err.$(OBJEXT) \
        $(OUTPRE)et_name.$(OBJEXT) \
        $(OUTPRE)init_et.$(OBJEXT)
 # for et_lex.lex.c include in error_table.y
-LOCALINCLUDE=-I. -I$(srcdir)
+LOCALINCLUDES=-I. -I$(srcdir)
 
 FILES= Makefile et_name.c error_message.c compile_et.c \
                et_lex.lex.l error_table.y init_et.c \
@@ -72,7 +71,7 @@ error_table.c: et_lex.lex.c
 error_table.c: $(srcdir)/error_table.y
 
 error_table.o: error_table.c et_lex.lex.c
-       $(CC) $(CFLAGS) -c error_table.c
+       $(CC) $(ALL_CFLAGS) -c error_table.c
 
 et_lex.lex.o: et_lex.lex.c
 test1.o: test1.c
index 0919689236b5d1f2b95f2ddbfea8d71ae7e2f5bd..31da130db261baf5af5928ebe95ab753cc682597 100644 (file)
@@ -11,6 +11,9 @@
  * 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.
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
  * 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.
index 8b6399930b01029147d6c80d529a7aa8ae0bf66b..918f152769c189903efa7ecbde19cd7c261ff741 100644 (file)
@@ -41,7 +41,10 @@ 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.
+without specific, written prior permission.  Furthermore if you modify this
+software you must label your software as modified software and not
+distribute it in such a fashion that it might be confused with the
+original M.I.T. software.  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.
 
index 95223d7c3f3b7dfbc4593d439e529e91e99b50e9..7d03d34e01207a495eb2a2d8c8b110fa8665f971 100644 (file)
@@ -11,6 +11,9 @@
  * 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.
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
  * 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.
diff --git a/src/util/et/et.exp b/src/util/et/et.exp
new file mode 100644 (file)
index 0000000..00e15a2
--- /dev/null
@@ -0,0 +1,8 @@
+#
+# comerr library Macintosh export file
+#
+# $Header$
+
+error_message
+add_error_table
+remove_error_table
index 34edbca15f02fabc6b5784334cb34da189e090e8..267f20b28b32165b1dc6c548513e58905f3dd911 100644 (file)
@@ -11,6 +11,9 @@
  * 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.
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
  * 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.
index d40ed62487dca85efb6754b92fa81a899e767baa..c3d0398114c024b8a53bae4ba75a386ff1c49945 100644 (file)
@@ -11,6 +11,9 @@
  * 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.
+ * Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
  * 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.
index 2f7eb295014d701350fe80fc445fa002ef2eb03f..d7c4ee096efaf06d60caa1ee6fb26c978e6d44b0 100644 (file)
@@ -11,6 +11,9 @@ 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.
+Furthermore if you modify this software you must label
+your software as modified software and not distribute it in such a
+fashion that it might be confused with the original M.I.T. software.
 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.
index ae7a1ed37a8e6df3793e6fbc941eb95979224b1e..e534a478f18ad2141c6d7de0a640afaf1d488023 100644 (file)
@@ -54,6 +54,19 @@ krb5-*.*.*)
        relminor=`echo $release|awk -F. '{print $2}'`
        relpatch=`echo $release|awk -F. '{print $3}'`
        ;;
+krb5-*.*-current)
+       release=`echo $reldir|sed -e 's/krb5-//'`
+       relhead=`echo $release|sed -e 's/-.*//'`
+       relmajor=`echo $relhead|awk -F. '{print $1}'`
+       relminor=`echo $relhead|awk -F. '{print $2}'`
+       release=${relhead}-$reldate
+       ;;
+krb5-*.*-*)
+       release=`echo $reldir|sed -e 's/krb5-//'`
+       relhead=`echo $release|sed -e 's/-.*//'`
+       relmajor=`echo $relhead|awk -F. '{print $1}'`
+       relminor=`echo $relhead|awk -F. '{print $2}'`
+       ;;
 krb5-*.*)
        release=`echo $reldir|sed -e 's/krb5-//'`
        relmajor=`echo $release|awk -F. '{print $1}'`
@@ -62,9 +75,18 @@ krb5-*.*)
 krb5-current)
        release=current-$reldate
        ;;
-*);;
+*)
+       release="$reldir"
+       ;;
 esac
 
+echo "release=$release"
+echo "major=$relmajor minor=$relminor patch=$relpatch"
+
+# $release is used for send-pr
+# $reltag, $release, $reldate are used for brand.c currently
+# $relmajor, $relminor, $relpatch are used for patchlevel.h currently
+
 if test $checkout = t; then
        echo "Checking out krb5 with tag $reltag into directory $reldir..."
        cvs -q -d $repository export -r$reltag -d $reldir krb5
index 6bf48732b5674f5c6cb4e8853e1b8d2da7245a74..172d7acd3a4c6201a8ae813a8940f0d6cd428433 100644 (file)
@@ -1,3 +1,30 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
+1999-09-01  Danilo Almeida  <dalmeida@mit.edu>
+
+       * profile.hin (profile_init, profile_init_path): Define and use
+       const_profile_filespec_t.
+
+       * prof_init.c (profile_init, profile_init_path):
+       * prof_file.c (profile_open_file):
+       * prof_int.h (profile_open_file): Use const_profile_filespec_t.
+
+       * prof_int.h (PROFILE_LAST_FILESPEC): Compare a char against a char,
+       not a void*.
+
+       * Makefile.in: Remove DOSDEFS to avoid warnings.  The thing it
+       defined is already set in win-mac.h.
+
+1999-08-18  Miro Jurisic  <meeroh@mit.edu>
+
+       * profile.exp: removed com_err functions (they are in a library
+       of their own now) from MacOS export file
+
 1999-08-05  Danilo Almeida  <dalmeida@mit.edu>
 
        * prof_get.c (profile_free_string): 
index 4d15050a3d508fbe6379c30c9c0da6caeb0106e3..3955ca8cfaf4218a5fcccc1846070435a359e03f 100644 (file)
@@ -7,11 +7,8 @@ PROG_RPATH=$(KRB5_LIBDIR)
 ##DOS##BUILDTOP = ..\..
 ##DOS##OBJFILE=$(OUTPRE)profile.lst
 ##DOS##LIBNAME=$(OUTPRE)profile.lib
-##DOS##DOSDEFS=-DHAVE_STDLIB_H
 
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE) $(DOSDEFS)
-
-LOCALINCLUDE=-I. -I$(srcdir)/../et
+LOCALINCLUDES=-I. -I$(srcdir)/../et
 
 STLIBOBJS = \
        prof_tree.o \
index 53f4ab706191bfd538ced9724211e158590caa50..77c4f551e679cb0dd52790cebb8fc64db57b89c6 100644 (file)
@@ -67,7 +67,7 @@ static int rw_access(filespec)
 }
 
 errcode_t profile_open_file(filespec, ret_prof)
-       profile_filespec_t filespec;
+       const_profile_filespec_t filespec;
        prf_file_t *ret_prof;
 {
        prf_file_t      prf;
index 5668d98f3d7a1e4ed6d835eac286efa26c428d81..7f35e442190c568bdec54a7315831d3afaabbbc1 100644 (file)
@@ -25,16 +25,16 @@ error(do not have a 4-byte integer type)
 
 KRB5_DLLIMP errcode_t KRB5_CALLCONV
 profile_init(files, ret_profile)
-       profile_filespec_t *files;
+       const_profile_filespec_t *files;
        profile_t *ret_profile;
 {
-       profile_filespec_t *fs;
+       const_profile_filespec_t *fs;
        profile_t profile;
        prf_file_t  new_file, last = 0;
        errcode_t retval = 0;
 
        initialize_prof_error_table();
-       
+
        profile = malloc(sizeof(struct _profile_t));
        if (!profile)
                return ENOMEM;
@@ -79,7 +79,7 @@ profile_init(files, ret_profile)
  */
 KRB5_DLLIMP errcode_t KRB5_CALLCONV
 profile_init_path(filepath, ret_profile)
-       profile_filespec_list_t filepath;
+       const_profile_filespec_list_t filepath;
        profile_t *ret_profile;
 {
        int n_entries, i;
index 970b42e0186decc05de8a30e17cd00e6c8b7b54d..76cebf136953ca8403f7677068ece0132e7463ba 100644 (file)
@@ -80,7 +80,7 @@ struct _profile_t {
  */
 
 #ifdef PROFILE_USES_PATHS
-#define        PROFILE_LAST_FILESPEC(x) (((x) == NULL) || ((x)[0] == NULL))
+#define        PROFILE_LAST_FILESPEC(x) (((x) == NULL) || ((x)[0] == '\0'))
 #else
 #define PROFILE_LAST_FILESPEC(x) (((x).vRefNum == 0) && ((x).parID == 0) && ((x).name[0] == '\0'))
 #endif
@@ -173,7 +173,7 @@ errcode_t profile_rename_node
 /* prof_file.c */
 
 errcode_t profile_open_file
-       PROTOTYPE ((profile_filespec_t file, prf_file_t *ret_prof));
+       PROTOTYPE ((const_profile_filespec_t file, prf_file_t *ret_prof));
 
 errcode_t profile_update_file
        PROTOTYPE ((prf_file_t profile));
index 23629094be5077197d2452e45555b66b284f9eaf..3eaeb1dfdf9faa3b390a1eb6c97d77e6191576a2 100644 (file)
@@ -25,9 +25,6 @@ profile_add_relation
 
 ### Temporary -- DO NOT USE
 
-error_message
-add_error_table
-remove_error_table
 profile_ser_internalize
 profile_ser_externalize
 profile_ser_size
index 420b955d4b94b6a539a3263d00bf05cfac927f86..f681f36f46b6d5a1f8123126525351f7cdd9a469 100644 (file)
@@ -51,21 +51,25 @@ extern "C" {
 #endif
 
 #ifdef PROFILE_USES_PATHS
-typedef char* profile_filespec_t;              /* path as C string */
+typedef char* profile_filespec_t;      /* path as C string */
 typedef char* profile_filespec_list_t; /* list of : separated paths, C string */
+typedef const char* const_profile_filespec_t;  /* path as C string */
+typedef const char* const_profile_filespec_list_t;     /* list of : separated paths, C string */
 #else
 /* On MacOS, we use native file specifiers as unique file identifiers */
 #include <Files.h>
 typedef FSSpec profile_filespec_t;
-typedef FSSpec* profile_filespec_list_t;       
-                                                       /* array should be terminated with {0, 0, ""} */
+typedef FSSpec* profile_filespec_list_t;
+/* array should be terminated with {0, 0, ""} */
+typedef FSSpec const_profile_filespec_t;
+typedef FSSpec* const_profile_filespec_list_t; 
 #endif
 
 KRB5_DLLIMP long KRB5_CALLCONV profile_init
-       PROTOTYPE ((profile_filespec_t *files, profile_t *ret_profile));
+       PROTOTYPE ((const_profile_filespec_t *files, profile_t *ret_profile));
 
 KRB5_DLLIMP long KRB5_CALLCONV profile_init_path
-       PROTOTYPE ((profile_filespec_list_t filelist, profile_t *ret_profile));
+       PROTOTYPE ((const_profile_filespec_list_t filelist, profile_t *ret_profile));
 
 KRB5_DLLIMP long KRB5_CALLCONV profile_flush
        PROTOTYPE ((profile_t profile));
index 859b4a7cd08184d3a9118c9c8c62f9a825e57e9b..ff815b74cf96057eef1fc11effdf70783b4f55ad 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-08-03  Ken Raeburn  <raeburn@mit.edu>
 
        * update_utmp.c (pty_update_utmp): Use "co" instead of "cons" for
index 8f573d84e1f04c588e845c50451eea89c5f7a2d1..83d61dc63a82f79b5ff740255d92be37fc374390 100644 (file)
@@ -3,7 +3,6 @@ myfulldir=util/pty
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
 RELDIR=../util/pty
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 
 SED = sed
 
@@ -20,7 +19,7 @@ STOBJLISTS=OBJS.ST
 INSTALLFILE = cp
 
 # for pty-int.h
-LOCALINCLUDE=-I. -I$(srcdir)
+LOCALINCLUDES=-I. -I$(srcdir)
 
 FILES= Makefile cleanup.c getpty.c init_slave.c open_ctty.c open_slave.c update_utmp.c update_wtmp.c vhangup.c void_assoc.c pty_err.h pty_err.c\
 logwtmp.c init.c
index 0e9104ef94bfb117291b59cd331f32ae189dfde9..cf0b451f79c3ce830aee9be13736d53d6bf9739d 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 9b18aff5724a33ef52cc3b5abb67214a7bb655e1..3683ba6410c393f85b80c84770621baf365baf16 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index c2375aa40c5df53b40bdeba9b4f257cc6ee38052..df3b2f8760a04834926db2b9b3e00380160f61e7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 74564763b292841dda0ea1fae7f707f514f39796..edfad5a48da4473df3863fa2ec5e5c512d621462 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 552a3ef8655f083883a9ab65e65e85be792ce3f6..82d2d81cc352cd92cd1f4cc425c41d62fb3b07b0 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 4fbac3427a9adafdb7d100bfa2dc6ca20253c54f..e3611f6a915b840e4835bc95f791a2ca712743d7 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 00a7eac8038d59d7f8f4a9fdb11d70fa83af712f..d02a8c13585e3d0129b07c2743b13776d86724b5 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 7d28ea26498a5031e2209706ed9128ee5cc6f7a4..aea04de1fb6bd1000d43df1427cb5899518a5d18 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 08c126d62cef1ffe1c49753ceaf905bce5c6b01b..bad54d9c3e3aeebaecd423cf82ffcabaf3b0e9d3 100644 (file)
 # 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
+# permission.  Furthermore if you modify this software you must label
+# your software as modified software and not distribute it in such a
+# fashion that it might be confused with the original M.I.T. software.
+# 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.
 # 
index 3f9ed6b64eb527b43b1de4f35f66b91797da2438..43814df539cab6cfebc292e9a0dc55e455feb0eb 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index ce8b546f20c5623140a86b22e73c73558e0d737c..0c089d6d40b141694e8be78b9512ade691c78ec3 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 9d3af21285cf20142bbcbaa639bee6d2aeac5a60..7e8d57303f80825220150c42761b9b5ceeabaa1c 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 09d83c7be7afb9a341c400462a8dc564942b379d..fd6e04523f465e5de7da9ae8f13f83cf5437d480 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 9e7c64368ec3dcfa4a46faa0755cbd5e4db7a5a9..a6ec33d754873258317c895112da107b3847d1db 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  * 
index 066fea2409f14a251b5e8a31b7837bbb8f32ce03..1475690b676be4f41f2f9390a21b11dd837e46e1 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-01-27  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in, configure.in: Move the responsibility for
index bafa04504558ba2ec43578ff4c067b54084cbfee..4168db767f3c5df6be63f245ffa3d9cd917c6bed 100644 (file)
@@ -13,7 +13,8 @@ EMACS=emacs
 
 infodir = $(prefix)/info
 lispdir = $(prefix)/lib/emacs/site-lisp
-man1dir = $(KRB5MANROOT)/man1
+mandir  = $(KRB5MANROOT)
+man1dir = $(mandir)/man1
 datadir = @datadir@
 
 all:: send-pr  install-sid
index 102ec3d319e857fdfcf7fa32e178bfdf4ce64277..aeddbb25d6fe0e3baf659490240386d3154762f6 100644 (file)
@@ -1,3 +1,10 @@
+1999-10-26  Tom Yu  <tlyu@mit.edu>
+
+       * Makefile.in: Clean up usage of CFLAGS, CPPFLAGS, DEFS, DEFINES,
+       LOCAL_INCLUDES such that one can override CFLAGS from the command
+       line without losing CPP search patchs and defines. Some associated
+       Makefile cleanup. [from wsanchez@apple.com]
+
 1999-01-20  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * listen.c (print_prompt): Replace BSD-style ioctl with termios
index 87f7e8e5b24774bf21f836f02b7f284b24982e7c..ce16e48d43d303e055385b516b7dd1c62447c29b 100644 (file)
@@ -2,7 +2,6 @@ thisconfigdir=.
 myfulldir=util/ss
 mydir=.
 BUILDTOP=$(REL)$(U)$(S)$(U)
-CFLAGS = $(CCOPTS) $(DEFS) $(LOCALINCLUDE)
 SED = sed
 
 INSTALLLIB=cp
@@ -26,8 +25,9 @@ install-unix:: install-libs
 
 # hard coded .. is so that ss/ss_err.h works
 # hard coded ../et is so com_err.h works
-# CFLAGS= -I${INCDIR} -I. -I.. -I../et -g
-LOCALINCLUDE= -I. -I$(srcdir)/ -I$(srcdir)/.. -I$(srcdir)/../et -I..
+# CFLAGS= -g
+# CPPFLAGS= -I${INCDIR} -I. -I.. -I../et
+LOCALINCLUDES= -I. -I$(srcdir)/ -I$(srcdir)/.. -I$(srcdir)/../et -I..
 
 # with ss_err.o first, ss_err.h should get rebuilt first too.  should not
 # be relying on this, though.
@@ -137,7 +137,7 @@ ct.tab.c ct.tab.h: ct.y
 # install_library_target(ss,$(OBJS),$(SRCS),)
 
 #mk_cmds: $(MKCMDSOBJS)
-#      $(CC) $(CFLAGS) -o $@ $(MKCMDSOBJS) $(LEXLIB) $(BSDLIB)
+#      $(CC) $(ALL_CFLAGS) -o $@ $(MKCMDSOBJS) $(LEXLIB) $(BSDLIB)
 #
 #mk_cmds.o:    ss_err.h
 #
index e0d15722485916b864488a8a489deef9d365cfe1..d118f10bf8ad38efdb4519d4b569e32791231f59 100644 (file)
@@ -11,6 +11,9 @@ 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.
+Furthermore if you modify this software you must label
+your software as modified software and not distribute it in such a
+fashion that it might be confused with the original M.I.T. software.
 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.
index ffcfc380c8c98ea81ce4c99f2d56dc1848b62f5d..d6d5f1edc4654e75688d146f8b1094ed2e4379dd 100644 (file)
@@ -11,6 +11,9 @@ 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.
+Furthermore if you modify this software you must label
+your software as modified software and not distribute it in such a
+fashion that it might be confused with the original M.I.T. software.
 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.
index 0b1a112df00954f939085847f127733132a55516..afc7b565d5ba602072e60ddbc0adb0ab4250b397 100644 (file)
@@ -1,3 +1,8 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Fix build flags with respect to win-pre.in build
+       changes.
+
 Mon May 10 15:27:34 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Do win32 build in subdir.
index a260600d425dc45c4566a00ae7db87b1183691c0..61c96ab14cecd4460e3021191d411bb52b00aa53 100644 (file)
@@ -1,14 +1,9 @@
 BUILDTOP = ..\..
 
-CFLAGS          = $(COPTS) $(INCLUDES)
-
-##WIN16##LFLAGS         = /nologo /nod /nopackcode
-##WIN32##LFLAGS         = /nologo /nod
-
-##WIN32##all-windows:: $(OUTPRE)libecho.exe $(OUTPRE)getopt.obj
+all-windows:: $(OUTPRE)libecho.exe $(OUTPRE)getopt.obj
 
 $(OUTPRE)libecho.exe: $(OUTPRE)libecho.obj
-       link -out:$@ $**
+       link -nologo -out:$@ $**
 
 install-windows::
 
index acf888a27bbfffe969ee7270c2dd0902042aa6e9..0671a1ed6bb269bbd83b5ad70dc3ea61f4e5d25b 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  *
index 8e874b79cd105bcd1f6dffd236c4cb6a99ce5383..e4051e38967e98cf72c16dcc7a4c27428361aa55 100644 (file)
@@ -1,3 +1,28 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * version.rc: Bump version up to 1.1.1.
+
+1999-09-15  Danilo Almeida  <dalmeida@mit.edu>
+
+       * README: Add documentation about configuration under windows and
+       krbcc32.dll.
+
+1999-09-09  Danilo Almeida  <dalmeida@mit.edu>
+
+       * README: Explicitly say that we support only Win32 and not Win16.
+
+1999-09-08  Danilo Almeida  <dalmeida@mit.edu>
+
+       * README: Update with install target information and more.
+       * mkbin.bat: Remove mkbin.bat as it is no longer used.
+
+1999-09-01  Danilo Almeida  <dalmeida@mit.edu>
+
+       * readme, README: readme renamed to README.
+
+       * version.rc: Boost version to 1.1.  Include 1998 & 1999 in copyright
+       years.
+
 1999-06-21  Danilo Almeida  <dalmeida@mit.edu>
 
        * version.rc: Boost version to 1.0.8.
diff --git a/src/windows/README b/src/windows/README
new file mode 100644 (file)
index 0000000..c4c2f75
--- /dev/null
@@ -0,0 +1,132 @@
+              Building & Running Kerberos 5 on Windows
+              ----------------------------------------
+
+Kerberos 5 Windows support now only includes Win32 and no longer
+includes Win16.
+
+We build Kerberos 5 on Windows just with MSVC++ 6.0.  You should
+not need anything else.  We do not know whether it currently
+builds with other compilers or make utilities.
+
+These build instructions assume that you got a standalong source
+distribution of Kerberos 5 rather than the MIT Kerberos for Win32
+distribution (which includes a working Kerberos 4).
+
+There are two methods for building a Windows version of Kerberos 5.
+The traditional method involves starting on a Unix machine and
+creating a distribution that can be built on Windows.  The second
+method works from the sources that come from the Unix distribution if
+you have certain Unix-type utilities.
+
+
+Traditional Build Method:
+------------------------
+
+On the Unix side
+1) cd xxx/src                          # Go to where the source lives
+2) make -f Makefile.in kerbsrc.zip     # Do some Unix-side configuring
+                                       # ...and create kerbsrc.zip
+3) <transfer kerbsrc.zip to the PC>
+
+
+On the PC side
+1) md \krb5                            # Create where we'll put the tree
+2) cd \krb5
+3) unzip kerbsrc.zip
+        - or -
+   pkunzip -d kerbsrc.zip
+4) nmake -nologo                       # Build the sources
+5) nmake install                      # Copy headers, libs, executables
+
+
+All-Windows Build Method:
+------------------------
+
+First, make sure you have sed, gawk, cat, and cp.
+
+1) cd xxx/src                          # Go to where the source lives
+2) nmake -f Makefile.in prep-windows   # Create Makefile for Windows
+3) nmake -nologo                       # Build the sources
+4) nmake install                      # Copy headers, libs, executables
+
+
+Notes on the install Target:
+---------------------------
+
+For the install target, you will need to define KRB_INSTALL_DIR to
+point to the directory where the header, library, and executable files
+will be installed.  You can either define this in the environment or
+at the nmake command-line.  For example:
+
+nmake install KRB_INSTALL_DIR=c:\sdk\krb5
+
+Make sure you create the directory first.  Otherwise, nmake will
+complain.  The files will get installed into include, lib, and bin
+subdirectories.  You can then copy the binaries to where ever you want
+have them (probably somewhere in your path).
+
+
+Running Kerberos 5 Apps:
+-----------------------
+
+Make sure you have a valid krb5.ini file.  That will look just like a
+Unix krb5.conf file.  You can place this file in the same directory as
+your krb5_32.dll or in your Windows directory.  You should then be
+able to run the applications that are built.  Note that Kerberos 5
+will not look for the krb5.ini file in your path.
+
+
+Krb5.ini File:
+-------------
+
+WARNING: Despite its name, this is not a Windows .ini file.
+Therefore, do not try to use any .ini tools, including the Windows API
+or any installer tools to manipulate this file.  Its format is subtly
+different from Windows .ini files!
+
+
+Controlling the Kerberos 5 Run-Time Environment:
+-----------------------------------------------
+
+The Kerberos 5 configuration file and credentials cache can be
+controlled with environment variables and registry settings.  The
+environment variable for a particular setting always takes precedence.
+Next in precedence comes the setting in the registry under
+HKEY_CURRENT_USER\Software\MIT\Kerberos5.  Then comes the registry
+setting under HKEY_LOCAL_MACHINE\Software\MIT\Kerberos5.  If none of
+those are found, a default value is used.
+
+Configuration File:
+- Environment: KRB5_CONFIG
+- Registry Value: config
+- Default: looks in krb5_32.dll's dir and Windows directory
+
+Default Credentials Cache:
+- Environment: KRB5CCNAME
+- Registry Value: ccname
+- Default: API:krb5cc or FILE:%TEMP%\krb5cc or FILE:<windows dir>\krb5cc
+
+
+Credentials Cache:
+-----------------
+
+In addition to standard FILE: (disk file) and MEMORY: (in-process
+non-shared memory) Windows supports the API: cache type, which is a
+shared memory cache.  This is implemented by krbcc32.dll, which is not
+included the the krb5-only distribution.  Rather, it is part of MIT's
+Kerberos for Win32 suite.
+
+
+Othes Issues:
+------------
+
+The krb4_32.dll that is built (but not installed) is not supported.
+If you need Kerberos 4, you can use the krbv4w32.dll that MIT
+distributes as part of the MIT Kerberos for Win32 distribution.
+
+
+More Information:
+----------------
+
+For more information, please read the Kerberos 5 documentation in
+the doc directory of the distribution.
index 3d42fe7b7502b899e01f9bb23de8e8e9356538ef..f99c56a53acb8a25a8182a85adb915f482d6c108 100644 (file)
@@ -1,3 +1,12 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Windows fix for updated win-pre.in.
+
+1999-08-26  Danilo Almeida  <dalmeida@mit.edu>
+
+       * cns_reg.c (cns_load_registry, cns_save_registry): Honor setting
+       in cns_res.cc_override.
+
 Mon May 17 19:55:08 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Add included version resouce script to 
index b584973c2bcb820699b5d30b22d1e9a6cf9e3789..095b46cba2cb9caa019b8919c970801acfbbf7cd 100644 (file)
@@ -15,30 +15,30 @@ KRB          = KRB$(KVERSION)
 BUILDTOP = ..
 LIBDIR          = $(BUILDTOP)\lib\krb
 KLIB    = $(LIBDIR)\kerberos.lib 
-INCLUDES = /I$(BUILDTOP)\include
 RESFILE  = $(OUTPRE)cnsres4.res
 XOBJS    = $(RESFILE)
+LOCALINCLUDES = /I$(BUILDTOP)\include
 !endif
 
 !if $(KVERSION) == 5
 BUILDTOP =..\..
 LIBDIR  = $(BUILDTOP)\lib
-INCLUDES = /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5
 RESFILE  = $(OUTPRE)cnsres5.res
 XOBJS    = $(RESFILE) $(OUTPRE)kpasswd.obj $(OUTPRE)cns_reg.obj
+LOCALINCLUDES = /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5
 !endif
 
 ##### C Compiler
 #CC     = cl
 !ifdef NODEBUG
-CFLAGS          = $(CCOPTS2) $(INCLUDES) /D$(KRB)=1
+DEFINES  = /D$(KRB)=1
 !else
-CFLAGS          = $(CCOPTS2) $(INCLUDES) /D$(KRB)=1 /DDEBUG
+DEFINES  = /D$(KRB)=1 /DDEBUG
 !endif
 
 ##### RC Compiler
 #RC     = rc
-RFLAGS          = /D$(KRB)=1 $(INCLUDES)
+RFLAGS          = /D$(KRB)=1 $(LOCALINCLUDES)
 RCFLAGS  = $(RFLAGS) -DKRB5_APP
 
 ##### CVSRES -- .res -> .obj converter
index 95a5a5f87f357fdf90a033bc4e3ffdc0fbb1fc48..400d72d235595776ab4debbab05126f1069c5e57 100644 (file)
@@ -135,7 +135,7 @@ cns_load_registry(void)
   } else
          strcpy(cns_res.confname, cns_res.def_confname);
 
-  if (registry_string_get(key, "ccname", &ts) == 0) {
+  if (cns_res.cc_override && (registry_string_get(key, "ccname", &ts) == 0)) {
        strcpy(cns_res.ccname, ts);
        free(ts);
   } else
@@ -197,15 +197,20 @@ cns_save_registry(void)
   registry_string_set(key, "realm", cns_res.realm);
 
   if (cns_res.conf_override)
-         if (strcmp(cns_res.confname, cns_res.def_confname))
-               registry_string_set(key, "confname", cns_res.confname);
-         else
-               registry_value_delete(key, "confname");
+  {
+      if (strcmp(cns_res.confname, cns_res.def_confname))
+         registry_string_set(key, "confname", cns_res.confname);
+      else
+         registry_value_delete(key, "confname");
+  }
 
-  if (strcmp(cns_res.ccname, cns_res.def_ccname))
+  if (cns_res.cc_override)
+  {
+      if (strcmp(cns_res.ccname, cns_res.def_ccname))
          registry_string_set(key, "ccname", cns_res.ccname);
-  else
+      else
          registry_value_delete(key, "ccname");
+  }
 
   for (i = 0 ; i < FILE_MENU_MAX_LOGINS ; i++)
     if (cns_res.logins[i][0] != '\0') {
index 7ddbd838e755b5686c5a00cf7be21ce9ba13cfb2..d2e378bbf8bf8642feb25200c64062b51b220104 100644 (file)
@@ -1,3 +1,7 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Windows fix for updated win-pre.in.
+
 Mon May 17 14:24:25 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Reflect that we only build this under win32.
index 5cd317376910c271b19bd8d4c628ab951214c7a2..6cdda3d8ab44779ee422d6ed51b1abf11291ec93 100644 (file)
@@ -4,7 +4,7 @@ OBJS=   $(OUTPRE)ginastub.$(OBJEXT)
 
 # Set NODEBUG if building release instead of debug
 
-INCLUDES = -I$(BUILDTOP)\include
+LOCALINCLUDES = -I$(BUILDTOP)\include
 
 WINLIBS = advapi32.lib comctl32.lib \
        libc.lib kernel32.lib wsock32.lib user32.lib shell32.lib oldnames.lib
@@ -12,10 +12,11 @@ WINLIBS = advapi32.lib comctl32.lib \
 WINDLLFLAGS = /nodefaultlib /incremental:no /release \
        /nologo /base:0x1c000000 /dll $(LOPTS)
 
+DEFINES = -DUNICODE -D_UNICODE
 !ifdef NODEBUG
-CFLAGS = $(CCOPTS2) $(INCLUDES) -DUNICODE -D_UNICODE
+DEFINES = $(DEFINES)
 !else
-CFLAGS = $(CCOPTS2) $(INCLUDES) -DUNICODE -D_UNICODE -DDBG
+DEFINES = $(DEFINES) -DDBG
 !endif
 
 all-windows::
index 7ce6319a3ce40dc27222987f47758c3977f2141f..e192111b077a71c376cb8139f25246b99982a98b 100644 (file)
@@ -1,3 +1,7 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in:  * Makefile.in: Windows fix for updated win-pre.in.
+
 Mon May 17 19:53:58 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Add included version resouce script to 
index fcfee6cc7ec5580229c27e3386b02d14d14bda56..306f7c79a503ca6e54adbf42aaf0e075270b875a 100644 (file)
@@ -8,13 +8,10 @@ XOBJS = $(RESFILE)
 ##### Options
 # Set NODEBUG if building release instead of debug
 BUILDTOP=..\..
-INCLUDES= /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5
-
-##### C Compiler
-CFLAGS = $(CCOPTS2) $(INCLUDES)
+LOCALINCLUDES= /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5
 
 ##### RC Compiler
-RFLAGS = $(INCLUDES)
+RFLAGS = $(LOCALINCLUDES)
 RCFLAGS        = $(RFLAGS) -D_WIN32 -DGSS_APP
 
 ##### Linker
index d6e2395e6882bcc242a52cfc0dfada847a2f505c..25f20f41d0259791d3ec93cd382ef8a86d29e1b0 100644 (file)
@@ -1,3 +1,7 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Fix of build flags with updated win-pre.in.
+
 Mon May 17 14:26:27 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Uncomment BUILDTOP since we always want it.
index ba95a9dcd5ac33cc4f4b2f505dd4c59070ef9f39..c911de701612e8b266a7e11a420138dd5a190db5 100644 (file)
@@ -1,5 +1,3 @@
-CFLAGS = $(CCOPTS2) $(DEFS)
-
 BUILDTOP = ..\..
 
 lib-windows: $(OUTPRE)libwin.lib
diff --git a/src/windows/mkbin.bat b/src/windows/mkbin.bat
deleted file mode 100644 (file)
index 889debd..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-mkdir kbin
-copy lib\*.dll kbin
-copy windows\cns\krb5.exe kbin
-copy windows\wintel\telnet.exe kbin
-copy windows\gss\gss.exe kbin
-copy clients\klist\klist.exe kbin
-copy clients\kinit\kinit.exe kbin 
-copy clients\kdestroy\kdestroy.exe kbin
diff --git a/src/windows/readme b/src/windows/readme
deleted file mode 100644 (file)
index 0bcedaf..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-Building Windows Kerberos 5
-
-We build Kerberos 5 on Windows just with MSVC++ 6.0.  You should
-not need anything else.  We do not know whether it currently
-builds with other compilers or make utilities.
-
-There are two basic methods for making the Windows version of Kerberos
-5.  The traditional method involves starting on a Unix machine and
-creating a distribution that can be built on Windows.  The second
-method works from the sources that come from the CVS tree if you have
-certain Unix-type utilities.
-
-Traditional Method:
-------------------
-
-On the Unix side
-1) cd xxx/src                          # Go to where the source lives
-2) make -f Makefile.in kerbsrc.zip     # Do some Unix-side configuring
-                                       # ...and create kerbsrc.zip
-3) <transfer kerbsrc.zip to the PC>
-
-
-On the PC side
-1) md \k5                              # Create where we'll put the tree
-2) cd \k5
-3) unzip kerbsrc.zip
-        - or -
-   pkunzip -d kerbsrc.zip
-4) nmake -nologo                       # Build the sources
-5) nmake mkbin                        # Place binaries generated by the 
-                                       # ...build in the kbin directory
-6) <make sure the configuration file krb5.ini is in the \windows or \winnt 
-    directory.>
-
-
-All-Windows Method:
-------------------
-
-First, make sure you have sed, gawk, cat, and cp.
-
-1) cd xxx/src                          # Go to where the source lives
-2) nmake -f Makefile.in prep-windows   # Create Makefile for Windows
-3) nmake -nologo                       # Build the sources
-4) nmake mkbin                        # Place binaries generated by the 
-                                       # ...build in the kbin directory
index 6a6896f1fc094c71b8763861af4a0acd68fe3fbe..67660fc42b8fbebc652eb61a62345fcc765e94de 100644 (file)
 
 /* we're going to stamp all the DLLs with the same version number */
 
-#define K5_PRODUCT_VERSION_STRING "1.0.8\0"
-#define K5_PRODUCT_VERSION        1, 0, 8, 0
+#define K5_PRODUCT_VERSION_STRING "1.1.1\0"
+#define K5_PRODUCT_VERSION        1, 1, 1, 0
 
-#define K5_COPYRIGHT "Copyright (C) 1997 by the Massachusetts Institute of Technology\0"
+#define K5_COPYRIGHT "Copyright (C) 1997-1999 by the Massachusetts Institute of Technology\0"
 #define K5_COMPANY_NAME "Massachusetts Institute of Technology.\0"
 
 /* 
index 1bb01059148e86c93dd9c067d06d57bd70616d93..a9d6900902a9c3011f18c3fc8bb4e41f77d86e5a 100644 (file)
@@ -1,3 +1,7 @@
+1999-12-03  Danilo Almeida  <dalmeida@mit.edu>
+
+       * Makefile.in: Windows fix for updated win-pre.in.
+
 Mon May 17 19:54:51 1999  Danilo Almeida  <dalmeida@mit.edu>
 
        * Makefile.in: Add included version resouce script to 
index 6abad615cdc9b284fa400ff884d473668f7f3774..56cddb188dc78145a6cc9bac095039b777d7cb60 100644 (file)
@@ -15,13 +15,13 @@ KVERSION= 5
 KRB    = KRB$(KVERSION)
 
 BUILDTOP=..\..
-INCLUDES= /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5 \
+LOCALINCLUDES= /I$(BUILDTOP)\include /I$(BUILDTOP)\include\krb5 \
           /I$(BUILDTOP)\lib\crypto\des
 RESFILE        = $(OUTPRE)telnet.res
 XOBJS  = $(RESFILE) $(OUTPRE)k5stream.obj $(OUTPRE)enc_des.obj
 
-CFLAGS = $(CCOPTS2) $(INCLUDES) /D$(KRB)=1 $(KRBOPT)
-RFLAGS = $(INCLUDES)
+DEFINES        = /D$(KRB)=1 $(KRBOPT)
+RFLAGS = $(LOCALINCLUDES)
 RCFLAGS        = $(RFLAGS) -D_WIN32 -DTELNET_APP
 
 ##### Linker
index 996a4f5d06b63d96233261080bae5751ecacaf68..dbfb99e4af6ee9828eb496767b5c956ba1d2f63e 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 17216dec34df74b3c1c292652fe8ed7313a787b8..f1a1301fb09aa9c60e1064b6a4ed1a7c63a66d78 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */
index 605c0de329778a12a00745da805fd8f6b24d3b2f..d00aa6517aaa0206c47dbaebe06413fd6cb94025 100644 (file)
  * 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
+ * permission.  Furthermore if you modify this software you must label
+ * your software as modified software and not distribute it in such a
+ * fashion that it might be confused with the original M.I.T. software.
+ * 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.
  */