- Import Heimdal 1.5 distribution.
This commit is contained in:
parent
b4e3a10e93
commit
7c450da7b4
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/vendor-crypto/heimdal/dist/; revision=226031 svn path=/vendor-crypto/heimdal/1.5/; revision=226033; tag=vendor/heimdal/1.5
@ -663,7 +663,7 @@
|
||||
|
||||
* lib/krb5/keytab_keyfile.c (akf_add_entry): don't create the file
|
||||
before we need to write to it
|
||||
(from Åke Sandgren)
|
||||
(from Åke Sandgren)
|
||||
|
||||
2002-02-14 Johan Danielsson <joda@pdc.kth.se>
|
||||
|
||||
|
286
ChangeLog.2003
286
ChangeLog.2003
File diff suppressed because it is too large
Load Diff
246
ChangeLog.2004
246
ChangeLog.2004
@ -1,9 +1,9 @@
|
||||
2004-12-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/Makefile.am (CHECK_SYMBOLS): add heim_ and pkcs7_ for
|
||||
now (used in pkinit)
|
||||
|
||||
2004-12-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/Makefile.am: add CHECK_SYMBOLS
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
|
||||
* lib/krb5/krb5.h: add key usage for server referrals
|
||||
|
||||
2004-12-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/principal.c: make default_v4_name_convert static
|
||||
|
||||
@ -40,7 +40,7 @@
|
||||
|
||||
* lib/krb5/acache.c: make default_acc_name static
|
||||
|
||||
2004-12-28 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-28 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* doc/setup.texi: add some text about samba, use example.com
|
||||
|
||||
@ -48,24 +48,24 @@
|
||||
F. Hranicky <jfh@cise.ufl.edu>.
|
||||
Add LDAP_addmod_integer and use it.
|
||||
|
||||
2004-12-27 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-27 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* doc/{Makefile.am,setup.texi,win2k.texi}: spelling and text
|
||||
fixes, from Dave Love
|
||||
|
||||
2004-12-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/heim_threads.h: NetBSD 2.99.11 (any maybe 2.1) just
|
||||
needs pthread.h, threadlib is dead
|
||||
|
||||
2004-12-17 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-17 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/config.c (configure): check for deprecated
|
||||
enforce-transited-policy is set and fail if it is
|
||||
|
||||
* lib/asn1/asn1_print.c: don't print garabage for octet strings
|
||||
|
||||
2004-12-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/main.c (main): catch sigpipe, we don't bother select()ing
|
||||
for errors
|
||||
@ -81,7 +81,7 @@
|
||||
|
||||
* lib/hdb/hdb-ldap.c (pos): uppercase in character
|
||||
|
||||
2004-12-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c (LDAP__bytes2hex,LDAP__hex2bytes): encode
|
||||
nibbels in the other order
|
||||
@ -90,7 +90,7 @@
|
||||
attribute exists before we try to delete it LDAP__bytes2hex
|
||||
encodes in strange byte order, is this really right ?
|
||||
|
||||
2004-12-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c (LDAP_firstkey): When iterating over all
|
||||
entries, search for samba accounts too, From: "James F. Hranicky"
|
||||
@ -103,13 +103,13 @@
|
||||
both krb5PrincipalName and uid, it must be broken, ignore it and
|
||||
return it doesn't exists.
|
||||
|
||||
2004-12-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/hpropd.8: spelling, from OpenBSD
|
||||
|
||||
* kdc/kdc.8: use keeps for options, From OpenBSD k
|
||||
|
||||
2004-12-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* doc/setup.texi: document --random-key and the need to do backup
|
||||
of the master key
|
||||
@ -118,7 +118,7 @@
|
||||
|
||||
* kdc/kstash.c: add --random-key
|
||||
|
||||
2004-12-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-12-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/verify_krb5_conf.8: spelling, from openbsd
|
||||
|
||||
@ -135,25 +135,25 @@
|
||||
|
||||
* kdc/hprop.8: use keeps around options, from OpenBSD
|
||||
|
||||
2004-11-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-11-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/context.c (krb5_free_context): clear error string
|
||||
before destroying mutex
|
||||
(krb5_init_context): don't call krb5_free_context before there is a
|
||||
mutex initialized
|
||||
|
||||
2004-11-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-11-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kuser/kinit.c (get_new_tickets): only complain about ticket
|
||||
renewable lifetime when the user asked for a specific renewable
|
||||
lifetime
|
||||
|
||||
2004-11-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-11-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/kerberos5.c (find_keys): log what principal is missing
|
||||
enctypes
|
||||
|
||||
2004-11-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-11-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/get_in_tkt.c (krb5_get_in_cred): clear pointer after
|
||||
freeing data
|
||||
@ -161,21 +161,21 @@
|
||||
* lib/krb5/init_creds_pw.c (change_password): handle old_options
|
||||
being NULL From Guenther Deschner on samba-technical.
|
||||
|
||||
2004-11-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-11-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5_get_init_creds.3: add more text describing the
|
||||
krb5_get_init_creds functions
|
||||
|
||||
2004-11-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-11-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/init_creds_pw.c: make krb5_get_init_creds_keytab work
|
||||
again
|
||||
|
||||
2004-11-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-11-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb.asn1: use constrained integers
|
||||
|
||||
2004-11-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-11-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5_get_init_creds.3: add description for opt_init,
|
||||
opt_alloc, opt_free
|
||||
@ -191,12 +191,12 @@
|
||||
* lib/krb5/init_creds.c (_krb5_get_init_creds_opt_copy): if the in
|
||||
options NULL, just make a clean copy
|
||||
|
||||
2004-11-01 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-11-01 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/sendauth.c (krb5_rd_rep): free ap_rep message earlier
|
||||
so we don't leak it on error
|
||||
|
||||
2004-10-31 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-10-31 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5.conf.5: unbreak 2b entry
|
||||
|
||||
@ -204,18 +204,18 @@
|
||||
sockaddr but rather a kerberos address, deal with that. Based on
|
||||
bug report from Jakob Schlyter <jakob@rfc.se>.
|
||||
|
||||
2004-10-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-10-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/connect.c: Make sure argument passed to ctype isn't signed
|
||||
char
|
||||
|
||||
2004-10-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-10-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c: match new error names
|
||||
|
||||
* lib/krb5/krb5_err.et: make error messages sane again
|
||||
|
||||
2004-10-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-10-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/keytab.c: use KRB5_KT_BADNAME
|
||||
|
||||
@ -238,7 +238,7 @@
|
||||
|
||||
* lib/asn1/lex.l: support hex numbers
|
||||
|
||||
2004-10-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-10-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/pkinit.c: use ETYPE_DES3_CBC_NONE_CMS
|
||||
|
||||
@ -250,7 +250,7 @@
|
||||
Requested by Andrew Bartlett <abartlet@samba.org> for hdb-ldb
|
||||
backend.
|
||||
|
||||
2004-10-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-10-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kuser/kinit.c: adapt to new signature of
|
||||
krb5_get_init_creds_opt_set_pkinit
|
||||
@ -266,7 +266,7 @@
|
||||
|
||||
* kuser/klist.c: use rtbl_set_separator
|
||||
|
||||
2004-10-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-10-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c: filter out dup openssl engine keys, parse
|
||||
user options first
|
||||
@ -280,7 +280,7 @@
|
||||
|
||||
* kdc/pkinit.c: stop using AlgorithmIdentifierNonOpt
|
||||
|
||||
2004-09-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-09-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5.conf.5: assume minutes for time
|
||||
|
||||
@ -294,7 +294,7 @@
|
||||
minute for compatibility with MIT Kerberos.
|
||||
|
||||
|
||||
2004-09-28 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-09-28 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/get_cred.c (get_cred_kdc_usage): retry using "large
|
||||
message safe" transport if we get back
|
||||
@ -319,7 +319,7 @@
|
||||
|
||||
* kuser/kinit.c: make sure we don't always get renewable creds
|
||||
|
||||
2004-09-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-09-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/acache.c: use krb5_ccapi.h
|
||||
|
||||
@ -329,12 +329,12 @@
|
||||
* lib/krb5/Makefile.am: add AM_CPPFLAGS to libkrb5_la_CPPFLAGS
|
||||
since AM_CPPFLAGS overridden by target specific _CPPFLAGS
|
||||
|
||||
2004-09-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-09-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c: make variable shorter, make error messages
|
||||
from pkinit, make freeing easier
|
||||
|
||||
2004-09-06 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-09-06 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/Makefile.am: link libkrb5 with LIB_dlopen
|
||||
|
||||
@ -342,7 +342,7 @@
|
||||
is uninitialized, make valgrind unhappy. Pointd out by
|
||||
abartlet@samba.org. While where, plug the fd leak.
|
||||
|
||||
2004-09-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-09-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/asn1/der_get.c (decode_*): name all tag-length variables the
|
||||
same
|
||||
@ -351,18 +351,18 @@
|
||||
* lib/asn1/der_get.c (decode_boolean): fail if length of tag is
|
||||
larger then len
|
||||
|
||||
2004-08-31 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-31 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/init_creds_pw.c (krb5_get_init_creds): kdc_reply can be
|
||||
set in case of failure too, free unconditionally on exit to avoid
|
||||
memory leak
|
||||
|
||||
2004-08-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/get_cred.c (set_auth_data): set pointer to NULL after
|
||||
free
|
||||
|
||||
2004-08-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/context.c (krb5_get_err_text): if neither of com_right
|
||||
nor strerror finds the error-code, return Unknown error.
|
||||
@ -374,7 +374,7 @@
|
||||
* lib/krb5/kuserok.c: if a .k5login file exist, don't give
|
||||
implicit rights to anyone; also check owner/mode of .k5login
|
||||
|
||||
2004-08-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/Makefile.am: man_MANS = krb5_getportbyname.3
|
||||
|
||||
@ -386,19 +386,19 @@
|
||||
|
||||
* lib/krb5/krb5_encrypt.3: document krb5_enctype_valid
|
||||
|
||||
2004-08-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/kerberos5.c (get_pa_etype_info{,2}): check for dup enctypes
|
||||
from the client and filter them out.
|
||||
|
||||
* lib/krb5/krb5_string_to_key.3: document krb5_free_salt
|
||||
|
||||
2004-08-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5_ticket.3: data needs to be freed when using
|
||||
krb5_ticket_get_authorization_data_type
|
||||
|
||||
2004-08-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/test_cc.c: test variables in default_cc_name
|
||||
|
||||
@ -416,7 +416,7 @@
|
||||
* lib/krb5/cache.c (krb5_cc_set_default_name):
|
||||
s/libdefault/libdefaults/
|
||||
|
||||
2004-08-06 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-06 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/acache.c: replace magic 3 with ccapi_version_3
|
||||
|
||||
@ -434,13 +434,13 @@
|
||||
since its not possible to glue in user information (like uid), but
|
||||
for CCAPI it works just fine
|
||||
|
||||
2004-08-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kuser/kgetcred.1: document --cache/-c
|
||||
|
||||
* kuser/kgetcred.c: allow to specify what credential cache to use
|
||||
|
||||
2004-08-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/Makefile.am: add krb5_eai_to_heim_errno.3
|
||||
|
||||
@ -450,7 +450,7 @@
|
||||
* lib/krb5/krb5.3: add krb5_eai_to_heim_errno,
|
||||
krb5_h_errno_to_heim_errno
|
||||
|
||||
2004-07-26 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-26 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5_expand_hostname.3: krb5_expand_hostname_realms
|
||||
result should be free with krb5_free_host_realm drop
|
||||
@ -483,39 +483,39 @@
|
||||
* lib/krb5/krb5_get_credentials.3: krb5_get_credentials and
|
||||
friends
|
||||
|
||||
2004-07-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kuser/klist.c (print_cred_verbose): keytypes are no longer, use
|
||||
enctype
|
||||
|
||||
2004-07-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c (LDAP_entry2mods): allow for pre-c99
|
||||
compilers, From metze at samba.org
|
||||
|
||||
2004-07-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/test_cc.c: more cc tests
|
||||
|
||||
* lib/krb5/krb5_check_transited.3: document krb5_check_transited
|
||||
|
||||
2004-07-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/pkinit.c (pk_principal_from_X509): reverse test, makes
|
||||
principal in cert work From: Mayur Patel <patelm4@rpi.edu>
|
||||
|
||||
2004-07-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/Makefile.am: add krb5_verify_init_creds.3
|
||||
|
||||
* lib/krb5/krb5_verify_init_creds.3: add krb5_verify_init_creds
|
||||
|
||||
2004-07-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5_set_password.3: spelling from wiz@netbsd.org
|
||||
description for krb5_passwd_result_to_string
|
||||
|
||||
2004-07-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5_set_password.3: Remove superfluous comma; grammar
|
||||
fixes; split sentence in two for better understanding. From
|
||||
@ -527,21 +527,21 @@
|
||||
* lib/krb5/changepw.c (process_reply): cast ssize_t to long and
|
||||
print that From NetBSD via Havard Eidnes.
|
||||
|
||||
2004-07-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* configure.in: fix helpstring for hdb-openldap-module
|
||||
|
||||
* lib/krb5/test_cc.c: don't use krb5_err on error code 0
|
||||
|
||||
2004-07-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c (LDAP_seq): try handling errors better
|
||||
|
||||
2004-07-02 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-02 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/get_in_tkt.c (set_ptypes): make ptypes const
|
||||
|
||||
2004-07-01 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-01 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c (LDAP__connect): call ldap_initialize with
|
||||
right argument
|
||||
@ -572,27 +572,27 @@
|
||||
OtherName of subjectAltName Based on patch from Mayur Patel
|
||||
<patelm4@rpi.edu>
|
||||
|
||||
2004-06-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-06-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/get_cred.c (init_tgs_req): if subkey not avaible, use
|
||||
session key for authorization-data
|
||||
|
||||
2004-06-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-06-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/connect.c (handle_tcp): note who is what that closed the
|
||||
connection on us
|
||||
|
||||
2004-06-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-06-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* admin/get.c (kt_get): catch errors from krb5_parse_name
|
||||
|
||||
2004-06-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-06-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c: if its the entry just contains the
|
||||
structural object (no samba nor heimdal object), add an aux
|
||||
heimdal object on to it.
|
||||
|
||||
2004-06-02 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-06-02 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kpasswd/kpasswd.c: use krb5_set_password_using_ccache
|
||||
|
||||
@ -611,7 +611,7 @@
|
||||
|
||||
* lib/hdb/hdb-ldap.c: indent like the rest of the code
|
||||
|
||||
2004-06-01 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-06-01 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c: check return values from ldap operations and
|
||||
close it we get back LDAP_SERVER_DOWN. stupid ldap client lib, you
|
||||
@ -620,19 +620,19 @@
|
||||
* lib/hdb/hdb-ldap.c: require search base to be configured, create
|
||||
local context structure
|
||||
|
||||
2004-05-31 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-05-31 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* doc/setup.texi: more ldap text, partly from Tarjei Huse
|
||||
<tarjei@nu.no>
|
||||
|
||||
2004-05-28 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-05-28 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c: clean, indent
|
||||
|
||||
* lib/hdb/hdb-ldap.c (LDAP_entry2mods): make sure
|
||||
krb5KeyVersionNumber is added on new entires
|
||||
|
||||
2004-05-27 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-05-27 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* doc/setup.texi: minor fixes, partly from Tarjei Huse
|
||||
<tarjei@nu.no>
|
||||
@ -642,15 +642,15 @@
|
||||
* lib/krb5/krb5.conf.5: default value for
|
||||
hdb-ldap-structural-object is account
|
||||
|
||||
2004-05-26 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-05-26 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* tools/Makefile.am: use ! instead of , as sed delimiter
|
||||
|
||||
2004-05-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-05-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/*.c: add KRB5_LIB_FUNCTION to all exported functions
|
||||
|
||||
2004-05-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-05-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c: make samba_forwardable a krb5_boolean
|
||||
|
||||
@ -667,11 +667,11 @@
|
||||
case, make sure ent->etypes are allocated, From: Andrew Bartlett
|
||||
<abartlet@samba.org>
|
||||
|
||||
2004-05-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-05-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kuser/kinit.c: move "setpag if (argc < 1)" to common path
|
||||
|
||||
2004-05-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-05-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/verify_krb5_conf.c: pacify pre c99 compilers
|
||||
|
||||
@ -681,7 +681,7 @@
|
||||
|
||||
* kuser/kinit.c: print some diagnostics if the exec fails
|
||||
|
||||
2004-04-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c (pk_rd_pa_reply_dh): use krb5_random_to_key
|
||||
From: Luke Howard <lukeh@padl.com>
|
||||
@ -689,11 +689,11 @@
|
||||
* lib/krb5/rd_req.c (krb5_verify_ap_req2): clear the whole ticket,
|
||||
not just a pointer size of it From: Luke Howard <lukeh@padl.com>
|
||||
|
||||
2004-04-28 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-28 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* fix-export: add -E flag where needed to make-proto
|
||||
|
||||
2004-04-26 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-26 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/crypto.c: add set_param for RC2
|
||||
|
||||
@ -772,7 +772,7 @@
|
||||
* lib/krb5/store.c (krb5_store_creds): set is_skey flag if length
|
||||
of second ticket is > 0
|
||||
|
||||
2004-04-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c: use the right oid for pkauthdata
|
||||
|
||||
@ -806,7 +806,7 @@
|
||||
* lib/krb5/{krb5.h,store.c,fcache.c}: Fix the cache flags bitorder
|
||||
issue with a storage flag instead of a separate function.
|
||||
|
||||
2004-04-24 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-24 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c: move out the oid check from get_reply_key
|
||||
|
||||
@ -830,7 +830,7 @@
|
||||
digestAlgorithm to sha1 (both for SignerInfo and SignedData, add
|
||||
new function _set_digest_alg to set it
|
||||
|
||||
2004-04-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* include/make_crypto.c: include rc2.h, and when I'm here, make
|
||||
aes mandatory
|
||||
@ -852,7 +852,7 @@
|
||||
* lib/krb5/string-to-key-test.c: comment out the "@"/"" test for
|
||||
now
|
||||
|
||||
2004-04-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5_string_to_key.3: document that
|
||||
krb5_string_to_key_derived is broken for non 3des enctypes and
|
||||
@ -868,7 +868,7 @@
|
||||
|
||||
* lib/krb5/krb5_keyblock.3: document krb5_random_to_key
|
||||
|
||||
2004-04-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/pkinit.c: use the first proposed enable enctype
|
||||
|
||||
@ -877,28 +877,28 @@
|
||||
|
||||
* kdc/pkinit.c: at least try to handle diffrent enveloped enctypes
|
||||
|
||||
2004-04-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/asn1/der_get.c: 1.28.2.16: (der_get_oid): handle all oid
|
||||
components being smaller then 127 and allocate one extra element
|
||||
since first byte is split to to elements.
|
||||
|
||||
2004-04-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/asn1/k5.asn1: ETYPE_DIGEST_MD5_NONE, ETYPE_CRAM_MD5_NONE:
|
||||
private use, lukeh@padl.com
|
||||
|
||||
2004-04-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c (build_auth_pack): use heim_integer to encode
|
||||
DH public key
|
||||
|
||||
2004-04-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5_init_context.3: add krb5_context to so its added
|
||||
as manpage-link too
|
||||
|
||||
2004-04-17 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-17 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/fcache.c (fcc_remove_cred): simplistic implementation,
|
||||
XXX add locking
|
||||
@ -913,7 +913,7 @@
|
||||
|
||||
* kdc/config.c: merge certificate/private_key to a user_id
|
||||
|
||||
2004-04-16 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-16 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/kdc_locl.h: update prototype for pk_initialize
|
||||
|
||||
@ -926,11 +926,11 @@
|
||||
* kdc/pkinit.c: adapt to heim_integer changes,
|
||||
merge certificate/private_key to a user_id
|
||||
|
||||
2004-04-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c: use KRB5_PADATA_PK_AS_REQ_WIN free X509_STORE
|
||||
|
||||
2004-04-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/Makefile.am: define BUILD_KRB5_LIB when building
|
||||
libkrb5.la, add KRB5_LIB_FUNCTION proto
|
||||
@ -957,25 +957,25 @@
|
||||
|
||||
* lib/krb5/krb5_ccache.3: add krb5_cc_get_prefix_ops
|
||||
|
||||
2004-04-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* appl/test/http_client.c: support GSS_C_DELEG_FLAG and
|
||||
GSS_C_MUTUAL_FLAG
|
||||
|
||||
* appl/test/http_client.c: verbose logging
|
||||
|
||||
2004-04-02 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-02 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/connect.c: case size_t to unsigned long for LP64 platforms
|
||||
|
||||
2004-04-01 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-04-01 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c (hdb_ldap_create): allow configuration of
|
||||
default structural object
|
||||
|
||||
* tools/Makefile.am: handle sed expression breaking
|
||||
|
||||
2004-03-31 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-31 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krbhst.c: also lookup _kpasswd._tcp SRV-rr
|
||||
|
||||
@ -987,7 +987,7 @@
|
||||
* lib/krb5/krb5_acl_match_file.3: try to pacify mdoc macros on
|
||||
osf/1
|
||||
|
||||
2004-03-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/init_creds_pw.c (pa_data_add_pac_request): don't
|
||||
increase md->len, krb5_padata_add already does that
|
||||
@ -999,11 +999,11 @@
|
||||
* kdc/kerberos4.c: stop the client from renewing tickets into the
|
||||
future From: Jeffrey Hutzelman <jhutz@cmu.edu>
|
||||
|
||||
2004-03-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* configure.in: try to handle sys/strtty.h needing sys/stream.h
|
||||
|
||||
2004-03-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/send_to_kdc.c: remove function krb5_sendto_kdc2, its no
|
||||
longer used
|
||||
@ -1018,11 +1018,11 @@
|
||||
* lib/krb5/mk_req_ext.c: unexport krb5_mk_req_internal to external
|
||||
users by prefixing it with _
|
||||
|
||||
2004-03-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c: add missing }
|
||||
|
||||
2004-03-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/pkinit.c: adapt to change of signature of
|
||||
_krb5_pk_load_openssl_id
|
||||
@ -1076,7 +1076,7 @@
|
||||
* lib/krb5/krb5_ticket.3: document
|
||||
krb5_ticket_get_authorization_data_type
|
||||
|
||||
2004-03-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/aes-test.c: remove #if 0'ed code
|
||||
|
||||
@ -1157,7 +1157,7 @@
|
||||
make it not fall over when no non matching acl,
|
||||
make fnmatch matching useful by switching arguments
|
||||
|
||||
2004-03-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/config.c: add --builtin-hdb command
|
||||
|
||||
@ -1176,7 +1176,7 @@
|
||||
* lib/krb5/krb5.conf.5: add a bunch of Li and document [kadmin]
|
||||
password_lifetime; from Henry B. Hotz
|
||||
|
||||
2004-03-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/mk_rep.c (krb5_mk_rep): if KRB5_AUTH_CONTEXT_USE_SUBKEY
|
||||
is set send subkey
|
||||
@ -1184,13 +1184,13 @@
|
||||
|
||||
* lib/krb5/krb5.h: add KRB5_AUTH_CONTEXT_USE_SUBKEY
|
||||
|
||||
2004-03-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c: clean up error handling, plug memory leaks,
|
||||
and free memory in error path, assume realloc(NULL, ...) works,
|
||||
factor out common code, indent
|
||||
|
||||
2004-03-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/verify_krb5_conf.c: understand [password_quality]
|
||||
spelling
|
||||
@ -1199,12 +1199,12 @@
|
||||
|
||||
* kuser/kgetcred.c: add --canonicalize
|
||||
|
||||
2004-03-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/fcache.c (fcc_store_cred): NULL terminate
|
||||
krb5_config_get_bool_default' arglist
|
||||
|
||||
2004-03-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/kerberos5.c: add missing req argument to pk_mk_pa_reply
|
||||
|
||||
@ -1234,7 +1234,7 @@
|
||||
* lib/krb5/store.c (krb5_ret_creds): Runtime detect the what is
|
||||
the higher bits of the bitfield
|
||||
|
||||
2004-03-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/store.c (krb5_store_creds): add disabled code that
|
||||
store the ticket flags in reverse order
|
||||
@ -1244,7 +1244,7 @@
|
||||
are set, its a mit cache, reverse the bits, bug pointed out by
|
||||
Sergio Gelato <Sergio.Gelato@astro.su.se>
|
||||
|
||||
2004-03-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/hdb-ldap.c: use macro for HDB * -> LDAP *
|
||||
|
||||
@ -1280,7 +1280,7 @@
|
||||
|
||||
* lib/asn1/k5.asn1: drop SMTP_NAME
|
||||
|
||||
2004-03-06 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-06 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/hdb/Makefile.am: support building ldap backend as module
|
||||
sort asn1 hdb files
|
||||
@ -1300,7 +1300,7 @@
|
||||
the original data test case from Ronnie Sahlberg
|
||||
<ronnie_sahlberg@ozemail.com.au>
|
||||
|
||||
2004-03-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/test_cc.c: more cc tests, mostly related to mcc
|
||||
behavior
|
||||
@ -1312,7 +1312,7 @@
|
||||
as dead since that doesn't always work. Based on patch from
|
||||
Jeffrey Hutzelman <jhutz@cmu.edu>, tweeked by me
|
||||
|
||||
2004-02-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-02-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/pkinit.c: adapt to rename of oid_cmp to heim_oid_cmp
|
||||
|
||||
@ -1323,7 +1323,7 @@
|
||||
* doc/setup.texi: add text about hostname to realm mapping using
|
||||
DNS
|
||||
|
||||
2004-02-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-02-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/pkinit.c: update error codes
|
||||
|
||||
@ -1331,7 +1331,7 @@
|
||||
|
||||
* lib/krb5/pkinit.c: update error codes
|
||||
|
||||
2004-02-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-02-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/pkinit.c: indent, use krb5_abortx() instead of abort()
|
||||
|
||||
@ -1342,7 +1342,7 @@
|
||||
* lib/krb5/fcache.c (_krb5_xlock): handle that everything was ok,
|
||||
and don't put an error in the error strings then
|
||||
|
||||
2004-02-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-02-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kdc/pkinit.c: s/heim_big_integer/heim_integer/
|
||||
|
||||
@ -1355,18 +1355,18 @@
|
||||
|
||||
* lib/krb5/heim_err.et: add HEIM_PKINIT specific errors
|
||||
|
||||
2004-02-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-02-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* configure.in: rename AC_WFLAGS to rk_WFLAGS
|
||||
|
||||
* acinclude.m4: use m4_define, over-quote string
|
||||
|
||||
2004-02-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-02-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/init_creds_pw.c (change_password): handle that
|
||||
printf("%.*s", 0, (void*)NULL); doesn't work on solaris
|
||||
|
||||
2004-02-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-02-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kpasswd/kpasswd.c (change_password): handle that printf("%.*s",
|
||||
0, (void*)NULL); doesn't work on solaris
|
||||
@ -1375,7 +1375,7 @@
|
||||
some locate.updatedb, use FILES section to describe where the file
|
||||
is instead.
|
||||
|
||||
2004-02-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-02-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/asn1/check-der.c: test for "der_length.c: Fix len_unsigned
|
||||
for certain negative integers, it got the length wrong" , from
|
||||
@ -1393,7 +1393,7 @@
|
||||
* configure.in: Check for sys/socket.h, net/if.h. Modify term.h,
|
||||
security/pam_appl.h tests.
|
||||
|
||||
2004-02-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-02-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/asn1/check-gen.c: test for: (length_type): TSequenceOf: add
|
||||
up the size of all the elements, don't use just the size of the
|
||||
@ -1431,11 +1431,11 @@
|
||||
* lib/krb5/build_ap_req.c (krb5_build_ap_req): abort on internal
|
||||
asn1 encode error
|
||||
|
||||
2004-01-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-01-30 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* doc/setup.texi: some text about order of [capaths] realms
|
||||
|
||||
2004-01-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-01-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/context.c: register WRFILE ops
|
||||
|
||||
@ -1446,30 +1446,30 @@
|
||||
* kpasswd/kpasswdd.c (change): use the right password when
|
||||
changing the password
|
||||
|
||||
2004-01-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-01-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/fcache.c (_krb5_xlock): catch EINVAL and assume that it
|
||||
means that the filesystem doesn't support locking
|
||||
|
||||
* lib/krb5/keytab.c: remove #if 0 out file locking code
|
||||
|
||||
2004-01-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-01-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/asn1/gen_length.c (length_type): TSequenceOf: add up the
|
||||
size of all the elements, don't use just the size of the last
|
||||
element.
|
||||
|
||||
2004-01-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-01-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* kuser/kinit.c (renew_validate): if renewable_flag and not time
|
||||
specifed, use "1 month"
|
||||
|
||||
2004-01-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-01-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/krb5_keyblock.3: add prototypes, describe
|
||||
krb5_keyblock_zero
|
||||
|
||||
2004-01-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-01-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* lib/krb5/get_for_creds.c (add_addrs): don't add same address
|
||||
multiple times
|
||||
|
330
ChangeLog.2005
330
ChangeLog.2005
File diff suppressed because it is too large
Load Diff
366
ChangeLog.2006
366
ChangeLog.2006
File diff suppressed because it is too large
Load Diff
5
LICENSE
5
LICENSE
@ -1,4 +1,4 @@
|
||||
Copyright (c) 1995 - 2007 Kungliga Tekniska Högskolan
|
||||
Copyright (c) 1995 - 2011 Kungliga Tekniska Högskolan
|
||||
(Royal Institute of Technology, Stockholm, Sweden).
|
||||
All rights reserved.
|
||||
|
||||
@ -28,3 +28,6 @@ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
|
||||
Please see info documentation for the complete list of licenses.
|
||||
|
14
Makefile.am
14
Makefile.am
@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.am 22497 2008-01-21 12:12:23Z lha $
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
@ -6,13 +6,21 @@ if KCM
|
||||
kcm_dir = kcm
|
||||
endif
|
||||
|
||||
SUBDIRS= include lib kuser kdc admin kadmin kpasswd
|
||||
SUBDIRS+= $(kcm_dir) appl doc tools tests packages etc
|
||||
SUBDIRS= include base lib kuser kdc admin kadmin kpasswd
|
||||
SUBDIRS+= $(kcm_dir) appl tools tests packages etc po
|
||||
|
||||
if HEIMDAL_DOCUMENTATION
|
||||
SUBDIRS+= doc
|
||||
endif
|
||||
|
||||
|
||||
|
||||
## ACLOCAL = @ACLOCAL@ -I cf
|
||||
ACLOCAL_AMFLAGS = -I cf
|
||||
|
||||
EXTRA_DIST = \
|
||||
NTMakefile \
|
||||
windows \
|
||||
TODO \
|
||||
LICENSE \
|
||||
README \
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/cf/Makefile.am.common
|
||||
|
||||
|
340
Makefile.in
340
Makefile.in
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,15 +15,16 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# $Id: Makefile.am 22497 2008-01-21 12:12:23Z lha $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
|
||||
# $Id$
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -40,12 +42,13 @@ host_triplet = @host@
|
||||
DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
|
||||
$(srcdir)/Makefile.in $(top_srcdir)/Makefile.am.common \
|
||||
$(top_srcdir)/cf/Makefile.am.common $(top_srcdir)/configure \
|
||||
ChangeLog NEWS TODO compile config.guess config.sub install-sh \
|
||||
ltmain.sh missing ylwrap
|
||||
ChangeLog NEWS TODO compile config.guess config.sub depcomp \
|
||||
install-sh ltmain.sh missing ylwrap
|
||||
@HEIMDAL_DOCUMENTATION_TRUE@am__append_1 = doc
|
||||
subdir = .
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 \
|
||||
$(top_srcdir)/cf/broken-getaddrinfo.m4 \
|
||||
$(top_srcdir)/cf/broken-glob.m4 \
|
||||
$(top_srcdir)/cf/broken-realloc.m4 \
|
||||
@ -60,7 +63,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
|
||||
$(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
|
||||
$(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
|
||||
$(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/dispatch.m4 $(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs2.m4 \
|
||||
$(top_srcdir)/cf/find-func.m4 \
|
||||
@ -74,9 +77,12 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/krb-readline.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-spwd.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-winsize.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
|
||||
$(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
|
||||
$(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/libtool.m4 \
|
||||
$(top_srcdir)/cf/ltoptions.m4 $(top_srcdir)/cf/ltsugar.m4 \
|
||||
$(top_srcdir)/cf/ltversion.m4 $(top_srcdir)/cf/lt~obsolete.m4 \
|
||||
$(top_srcdir)/cf/mips-abi.m4 $(top_srcdir)/cf/misc.m4 \
|
||||
$(top_srcdir)/cf/need-proto.m4 $(top_srcdir)/cf/osfc2.m4 \
|
||||
$(top_srcdir)/cf/otp.m4 $(top_srcdir)/cf/pkg.m4 \
|
||||
$(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
|
||||
$(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
|
||||
$(top_srcdir)/cf/roken-frag.m4 \
|
||||
@ -84,7 +90,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
|
||||
$(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
|
||||
$(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
@ -92,8 +98,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
@ -105,17 +110,45 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir dist dist-all distcheck
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = include lib kuser kdc admin kadmin kpasswd kcm appl doc \
|
||||
tools tests packages etc
|
||||
DIST_SUBDIRS = include base lib kuser kdc admin kadmin kpasswd kcm \
|
||||
appl tools tests packages etc po doc
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
distdir = $(PACKAGE)-$(VERSION)
|
||||
top_distdir = $(distdir)
|
||||
am__remove_distdir = \
|
||||
{ test ! -d $(distdir) \
|
||||
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr $(distdir); }; }
|
||||
{ test ! -d "$(distdir)" \
|
||||
|| { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
|
||||
&& rm -fr "$(distdir)"; }; }
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
DIST_ARCHIVES = $(distdir).tar.gz
|
||||
GZIP_ENV = --best
|
||||
distuninstallcheck_listfiles = find . -type f -print
|
||||
@ -124,49 +157,58 @@ ACLOCAL = @ACLOCAL@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASN1_COMPILE = @ASN1_COMPILE@
|
||||
ASN1_COMPILE_DEP = @ASN1_COMPILE_DEP@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CAPNG_CFLAGS = @CAPNG_CFLAGS@
|
||||
CAPNG_LIBS = @CAPNG_LIBS@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE_ET = @COMPILE_ET@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBHEADER = @DBHEADER@
|
||||
DBLIB = @DBLIB@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIR_com_err = @DIR_com_err@
|
||||
DIR_hcrypto = @DIR_hcrypto@
|
||||
DIR_hdbdir = @DIR_hdbdir@
|
||||
DIR_roken = @DIR_roken@
|
||||
ECHO = @ECHO@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INCLUDES_roken = @INCLUDES_roken@
|
||||
INCLUDE_hcrypto = @INCLUDE_hcrypto@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
INCLUDE_libedit = @INCLUDE_libedit@
|
||||
INCLUDE_libintl = @INCLUDE_libintl@
|
||||
INCLUDE_openldap = @INCLUDE_openldap@
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
INCLUDE_sqlite3 = @INCLUDE_sqlite3@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
|
||||
LEX = @LEX@
|
||||
@ -190,10 +232,11 @@ LIB_crypt = @LIB_crypt@
|
||||
LIB_db_create = @LIB_db_create@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dispatch_async_f = @LIB_dispatch_async_f@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_dns_search = @LIB_dns_search@
|
||||
LIB_door_create = @LIB_door_create@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_freeaddrinfo = @LIB_freeaddrinfo@
|
||||
LIB_gai_strerror = @LIB_gai_strerror@
|
||||
LIB_getaddrinfo = @LIB_getaddrinfo@
|
||||
@ -210,6 +253,8 @@ LIB_hesiod = @LIB_hesiod@
|
||||
LIB_hstrerror = @LIB_hstrerror@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
LIB_libedit = @LIB_libedit@
|
||||
LIB_libintl = @LIB_libintl@
|
||||
LIB_loadquery = @LIB_loadquery@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
@ -225,31 +270,45 @@ LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_sqlite3 = @LIB_sqlite3@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_AFS = @NO_AFS@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
|
||||
PTHREADS_LIBS = @PTHREADS_LIBS@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
PTHREAD_LDADD = @PTHREAD_LDADD@
|
||||
PTHREAD_LIBADD = @PTHREAD_LIBADD@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLC = @SLC@
|
||||
SLC_DEP = @SLC_DEP@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VERSIONING = @VERSIONING@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
@ -264,10 +323,12 @@ abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
@ -308,35 +369,42 @@ psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken)
|
||||
SUFFIXES = .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = $(INCLUDES_roken)
|
||||
@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
CP = cp
|
||||
buildinclude = $(top_builddir)/include
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
libexec_heimdaldir = $(libexecdir)/heimdal
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
|
||||
@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
|
||||
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
|
||||
LIB_heimbase = $(top_builddir)/base/libheimbase.la
|
||||
@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
|
||||
@KCM_TRUE@kcm_dir = kcm
|
||||
SUBDIRS = include lib kuser kdc admin kadmin kpasswd $(kcm_dir) appl \
|
||||
doc tools tests packages etc
|
||||
SUBDIRS = include base lib kuser kdc admin kadmin kpasswd $(kcm_dir) \
|
||||
appl tools tests packages etc po $(am__append_1)
|
||||
ACLOCAL_AMFLAGS = -I cf
|
||||
EXTRA_DIST = \
|
||||
NTMakefile \
|
||||
windows \
|
||||
TODO \
|
||||
LICENSE \
|
||||
README \
|
||||
@ -373,22 +441,22 @@ EXTRA_DIST = \
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c
|
||||
.SUFFIXES: .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c
|
||||
am--refresh:
|
||||
@:
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps'; \
|
||||
cd $(srcdir) && $(AUTOMAKE) --foreign --ignore-deps \
|
||||
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
|
||||
$(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
|
||||
&& exit 0; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign --ignore-deps Makefile
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -404,9 +472,10 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC
|
||||
$(SHELL) ./config.status --recheck
|
||||
|
||||
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(srcdir) && $(AUTOCONF)
|
||||
$(am__cd) $(srcdir) && $(AUTOCONF)
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
@ -415,7 +484,7 @@ clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
|
||||
distclean-libtool:
|
||||
-rm -f libtool
|
||||
-rm -f libtool config.lt
|
||||
|
||||
# This directory's subdirectories are mostly independent; you can cd
|
||||
# into them and run `make' without going through this Makefile.
|
||||
@ -424,7 +493,7 @@ distclean-libtool:
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@ -441,7 +510,7 @@ $(RECURSIVE_TARGETS):
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
@ -449,7 +518,7 @@ $(RECURSIVE_TARGETS):
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@ -475,16 +544,16 @@ $(RECURSIVE_CLEAN_TARGETS):
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
@ -492,14 +561,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
@ -511,46 +580,50 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
$(am__remove_distdir)
|
||||
test -d $(distdir) || mkdir $(distdir)
|
||||
test -d "$(distdir)" || mkdir "$(distdir)"
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@ -566,29 +639,44 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
@ -596,11 +684,13 @@ distdir: $(DISTFILES)
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$(top_distdir)" distdir="$(distdir)" \
|
||||
dist-hook
|
||||
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
|
||||
-test -n "$(am__skip_mode_fix)" \
|
||||
|| find "$(distdir)" -type d ! -perm -755 \
|
||||
-exec chmod u+rwx,go+rx {} \; -o \
|
||||
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
|
||||
! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|
||||
|| chmod -R a+r $(distdir)
|
||||
|| chmod -R a+r "$(distdir)"
|
||||
dist-gzip: distdir
|
||||
tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
|
||||
$(am__remove_distdir)
|
||||
@ -609,6 +699,14 @@ dist-bzip2: distdir
|
||||
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-lzma: distdir
|
||||
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-xz: distdir
|
||||
tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
|
||||
$(am__remove_distdir)
|
||||
|
||||
dist-tarZ: distdir
|
||||
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
|
||||
$(am__remove_distdir)
|
||||
@ -632,13 +730,17 @@ dist dist-all: distdir
|
||||
distcheck: dist
|
||||
case '$(DIST_ARCHIVES)' in \
|
||||
*.tar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
|
||||
*.tar.bz2*) \
|
||||
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
|
||||
*.tar.lzma*) \
|
||||
lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
|
||||
*.tar.xz*) \
|
||||
xz -dc $(distdir).tar.xz | $(am__untar) ;;\
|
||||
*.tar.Z*) \
|
||||
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
|
||||
*.shar.gz*) \
|
||||
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
|
||||
GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\
|
||||
*.zip*) \
|
||||
unzip $(distdir).zip ;;\
|
||||
esac
|
||||
@ -646,9 +748,11 @@ distcheck: dist
|
||||
mkdir $(distdir)/_build
|
||||
mkdir $(distdir)/_inst
|
||||
chmod a-w $(distdir)
|
||||
test -d $(distdir)/_build || exit 0; \
|
||||
dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
|
||||
&& dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
|
||||
&& cd $(distdir)/_build \
|
||||
&& am__cwd=`pwd` \
|
||||
&& $(am__cd) $(distdir)/_build \
|
||||
&& ../configure --srcdir=.. --prefix="$$dc_install_base" \
|
||||
$(DISTCHECK_CONFIGURE_FLAGS) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) \
|
||||
@ -670,13 +774,15 @@ distcheck: dist
|
||||
&& rm -rf "$$dc_destdir" \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) dist \
|
||||
&& rm -rf $(DIST_ARCHIVES) \
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
|
||||
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
|
||||
&& cd "$$am__cwd" \
|
||||
|| exit 1
|
||||
$(am__remove_distdir)
|
||||
@(echo "$(distdir) archives ready for distribution: "; \
|
||||
list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
|
||||
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
|
||||
distuninstallcheck:
|
||||
@cd $(distuninstallcheck_dir) \
|
||||
@$(am__cd) '$(distuninstallcheck_dir)' \
|
||||
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
|
||||
|| { echo "ERROR: files left after uninstall:" ; \
|
||||
if test -n "$(DESTDIR)"; then \
|
||||
@ -719,6 +825,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -739,6 +846,8 @@ dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
@ -746,23 +855,31 @@ info-am:
|
||||
install-data-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
@ -786,26 +903,27 @@ ps-am:
|
||||
uninstall-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-data-am install-exec-am install-strip uninstall-am
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \
|
||||
ctags-recursive install-am install-data-am install-exec-am \
|
||||
install-strip tags-recursive uninstall-am
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am all-local am--refresh check check-am check-local \
|
||||
clean clean-generic clean-libtool ctags ctags-recursive dist \
|
||||
dist-all dist-bzip2 dist-gzip dist-hook dist-shar dist-tarZ \
|
||||
dist-zip distcheck distclean distclean-generic \
|
||||
distclean-libtool distclean-tags distcleancheck distdir \
|
||||
distuninstallcheck dvi dvi-am html html-am info info-am \
|
||||
install install-am install-data install-data-am \
|
||||
install-data-hook install-dvi install-dvi-am install-exec \
|
||||
install-exec-am install-exec-hook install-html install-html-am \
|
||||
install-info install-info-am install-man install-pdf \
|
||||
install-pdf-am install-ps install-ps-am install-strip \
|
||||
installcheck installcheck-am installdirs installdirs-am \
|
||||
maintainer-clean maintainer-clean-generic mostlyclean \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags tags-recursive uninstall uninstall-am uninstall-hook
|
||||
dist-all dist-bzip2 dist-gzip dist-hook dist-lzma dist-shar \
|
||||
dist-tarZ dist-xz dist-zip distcheck distclean \
|
||||
distclean-generic distclean-libtool distclean-tags \
|
||||
distcleancheck distdir distuninstallcheck dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-data-hook install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-exec-hook install-html \
|
||||
install-html-am install-info install-info-am install-man \
|
||||
install-pdf install-pdf-am install-ps install-ps-am \
|
||||
install-strip installcheck installcheck-am installdirs \
|
||||
installdirs-am maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
|
||||
ps ps-am tags tags-recursive uninstall uninstall-am \
|
||||
uninstall-hook
|
||||
|
||||
|
||||
install-suid-programs:
|
||||
@ -876,6 +994,9 @@ check-local::
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
.hx.h:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
@ -961,7 +1082,7 @@ uninstall-hook: uninstall-cat-mans
|
||||
check-valgrind:
|
||||
tobjdir=`cd $(top_builddir) && pwd` ; \
|
||||
tsrcdir=`cd $(top_srcdir) && pwd` ; \
|
||||
env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
|
||||
env TESTS_ENVIRONMENT="$${tsrcdir}/cf/maybe-valgrind.sh -s $${tsrcdir} -o $${tobjdir}" make check
|
||||
|
||||
#
|
||||
# Target to please samba build farm, builds distfiles in-tree.
|
||||
@ -977,6 +1098,7 @@ distdir-in-tree: $(DISTFILES) $(INFO_DEPS)
|
||||
|
||||
print-distdir:
|
||||
@echo $(distdir)
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
159
NEWS
159
NEWS
@ -1,3 +1,162 @@
|
||||
Release Notes - Heimdal - Version Heimdal 1.5
|
||||
|
||||
New features
|
||||
|
||||
- Support GSS name extensions/attributes
|
||||
- SHA512 support
|
||||
- No Kerberos 4 support
|
||||
- Basic support for MIT Admin protocol (SECGSS flavor)
|
||||
in kadmind (extract keytab)
|
||||
- Replace editline with libedit
|
||||
|
||||
Release Notes - Heimdal - Version Heimdal 1.4
|
||||
|
||||
New features
|
||||
|
||||
- Support for reading MIT database file directly
|
||||
- KCM is polished up and now used in production
|
||||
- NTLM first class citizen, credentials stored in KCM
|
||||
- Table driven ASN.1 compiler, smaller!, not enabled by default
|
||||
- Native Windows client support
|
||||
|
||||
Notes
|
||||
|
||||
- Disabled write support NDBM hdb backend (read still in there) since
|
||||
it can't handle large records, please migrate to a diffrent backend
|
||||
(like BDB4)
|
||||
|
||||
Release Notes - Heimdal - Version Heimdal 1.3.3
|
||||
|
||||
Bug fixes
|
||||
- Check the GSS-API checksum exists before trying to use it [CVE-2010-1321]
|
||||
- Check NULL pointers before dereference them [kdc]
|
||||
|
||||
Release Notes - Heimdal - Version Heimdal 1.3.2
|
||||
|
||||
Bug fixes
|
||||
|
||||
- Don't mix length when clearing hmac (could memset too much)
|
||||
- More paranoid underrun checking when decrypting packets
|
||||
- Check the password change requests and refuse to answer empty packets
|
||||
- Build on OpenSolaris
|
||||
- Renumber AD-SIGNED-TICKET since it was stolen from US
|
||||
- Don't cache /dev/*random file descriptor, it doesn't get unloaded
|
||||
- Make C++ safe
|
||||
- Misc warnings
|
||||
|
||||
Release Notes - Heimdal - Version Heimdal 1.3.1
|
||||
|
||||
Bug fixes
|
||||
|
||||
- Store KDC offset in credentials
|
||||
- Many many more bug fixes
|
||||
|
||||
Release Notes - Heimdal - Version Heimdal 1.3.1
|
||||
|
||||
New features
|
||||
|
||||
- Make work with OpenLDAPs krb5 overlay
|
||||
|
||||
Release Notes - Heimdal - Version Heimdal 1.3
|
||||
|
||||
New features
|
||||
|
||||
- Partial support for MIT kadmind rpc protocol in kadmind
|
||||
- Better support for finding keytab entries when using SPN aliases in the KDC
|
||||
- Support BER in ASN.1 library (needed for CMS)
|
||||
- Support decryption in Keychain private keys
|
||||
- Support for new sqlite based credential cache
|
||||
- Try both KDC referals and the common DNS reverse lookup in GSS-API
|
||||
- Fix the KCM to not leak resources on failure
|
||||
- Add IPv6 support to iprop
|
||||
- Support localization of error strings in
|
||||
kinit/klist/kdestroy and Kerberos library
|
||||
- Remove Kerberos 4 support in application (still in KDC)
|
||||
- Deprecate DES
|
||||
- Support i18n password in windows domains (using UTF-8)
|
||||
- More complete API emulation of OpenSSL in hcrypto
|
||||
- Support for ECDSA and ECDH when linking with OpenSSL
|
||||
|
||||
API changes
|
||||
|
||||
- Support for settin friendly name on credential caches
|
||||
- Move to using doxygen to generate documentation.
|
||||
- Sprinkling __attribute__((depricated)) for old function to be removed
|
||||
- Support to export LAST-REQUST information in AS-REQ
|
||||
- Support for client deferrals in in AS-REQ
|
||||
- Add seek support for krb5_storage.
|
||||
- Support for split AS-REQ, first step for IA-KERB
|
||||
- Fix many memory leaks and bugs
|
||||
- Improved regression test
|
||||
- Support krb5_cccol
|
||||
- Switch to krb5_set_error_message
|
||||
- Support krb5_crypto_*_iov
|
||||
- Switch to use EVP for most function
|
||||
- Use SOCK_CLOEXEC and O_CLOEXEC (close on exec)
|
||||
- Add support for GSS_C_DELEG_POLICY_FLAG
|
||||
- Add krb5_cc_[gs]et_config to store data in the credential caches
|
||||
- PTY testing application
|
||||
|
||||
Bugfixes
|
||||
- Make building on AIX6 possible.
|
||||
- Bugfixes in LDAP KDC code to make it more stable
|
||||
- Make ipropd-slave reconnect when master down gown
|
||||
|
||||
|
||||
Release Notes - Heimdal - Version Heimdal 1.2.1
|
||||
|
||||
* Bug
|
||||
|
||||
[HEIMDAL-147] - Heimdal 1.2 not compiling on Solaris
|
||||
[HEIMDAL-151] - Make canned tests work again after cert expired
|
||||
[HEIMDAL-152] - iprop test: use full hostname to avoid realm
|
||||
resolving errors
|
||||
[HEIMDAL-153] - ftp: Use the correct length for unmap, msync
|
||||
|
||||
Release Notes - Heimdal - Version Heimdal 1.2
|
||||
|
||||
* Bug
|
||||
|
||||
[HEIMDAL-10] - Follow-up on bug report for SEGFAULT in
|
||||
gss_display_name/gss_export_name when using SPNEGO
|
||||
[HEIMDAL-15] - Re: [Heimdal-bugs] potential bug in Heimdal 1.1
|
||||
[HEIMDAL-17] - Remove support for depricated [libdefaults]capath
|
||||
[HEIMDAL-52] - hdb overwrite aliases for db databases
|
||||
[HEIMDAL-54] - Two issues which affect credentials delegation
|
||||
[HEIMDAL-58] - sockbuf.c calls setsockopt with bad args
|
||||
[HEIMDAL-62] - Fix printing of sig_atomic_t
|
||||
[HEIMDAL-87] - heimdal 1.1 not building under cygwin in hcrypto
|
||||
[HEIMDAL-105] - rcp: sync rcp with upstream bsd rcp codebase
|
||||
[HEIMDAL-117] - Use libtool to detect symbol versioning (Debian Bug#453241)
|
||||
|
||||
* Improvement
|
||||
[HEIMDAL-67] - Fix locking and store credential in atomic writes
|
||||
in the FILE credential cache
|
||||
[HEIMDAL-106] - make compile on cygwin again
|
||||
[HEIMDAL-107] - Replace old random key generation in des module
|
||||
and use it with RAND_ function instead
|
||||
[HEIMDAL-115] - Better documentation and compatibility in hcrypto
|
||||
in regards to OpenSSL
|
||||
|
||||
* New Feature
|
||||
[HEIMDAL-3] - pkinit alg agility PRF test vectors
|
||||
[HEIMDAL-14] - Add libwind to Heimdal
|
||||
[HEIMDAL-16] - Use libwind in hx509
|
||||
[HEIMDAL-55] - Add flag to krb5 to not add GSS-API INT|CONF to
|
||||
the negotiation
|
||||
[HEIMDAL-74] - Add support to report extended error message back
|
||||
in AS-REQ to support windows clients
|
||||
[HEIMDAL-116] - test pty based application (using rkpty)
|
||||
[HEIMDAL-120] - Use new OpenLDAP API (older deprecated)
|
||||
|
||||
* Task
|
||||
[HEIMDAL-63] - Dont try key usage KRB5_KU_AP_REQ_AUTH for TGS-REQ.
|
||||
This drop compatibility with pre 0.3d KDCs.
|
||||
[HEIMDAL-64] - kcm: first implementation of kcm-move-cache
|
||||
[HEIMDAL-65] - Failed to compile with --disable-pk-init
|
||||
[HEIMDAL-80] - verify that [VU#162289]: gcc silently discards some
|
||||
wraparound checks doesn't apply to Heimdal
|
||||
|
||||
Changes in release 1.1
|
||||
|
||||
* Read-only PKCS11 provider built-in to hx509.
|
||||
|
42
NTMakefile
Normal file
42
NTMakefile
Normal file
@ -0,0 +1,42 @@
|
||||
########################################################################
|
||||
#
|
||||
# Copyright (c) 2009, Secure Endpoints Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
# COPYRIGHT HOLDER 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 exist(thirdparty/NTMakefile)
|
||||
thirdparty=thirdparty
|
||||
!endif
|
||||
|
||||
SUBDIRS = include lib\roken base lib kuser kdc admin kadmin kpasswd appl doc \
|
||||
tools tests packages etc $(thirdparty) packages\windows\installer
|
||||
|
||||
!include windows/NTMakefile.w32
|
||||
|
||||
all::
|
||||
@echo Build finished succesfully
|
11
README
11
README
@ -1,16 +1,15 @@
|
||||
$Id: README 8839 2000-07-27 02:33:54Z assar $
|
||||
|
||||
Heimdal is a Kerberos 5 implementation.
|
||||
|
||||
Please see the manual in doc, by default installed in
|
||||
/usr/heimdal/info/heimdal.info for information on how to install.
|
||||
There are also briefer man pages for most of the commands.
|
||||
For information how to install see <http://www.h5l.org/compile.html>.
|
||||
|
||||
There are briefer man pages for most of the commands.
|
||||
|
||||
Bug reports and bugs are appreciated, see more under Bug reports in
|
||||
the manual on how we prefer them.
|
||||
the manual on how we prefer them: <heimdal-bugs@h5l.org>.
|
||||
|
||||
For more information see the web-page at
|
||||
<http://www.pdc.kth.se/heimdal/> or the mailing lists:
|
||||
<http://www.h5l.org/> or the mailing lists:
|
||||
|
||||
heimdal-announce@sics.se low-volume announcement
|
||||
heimdal-discuss@sics.se high-volume discussion
|
||||
|
30
TODO
Normal file
30
TODO
Normal file
@ -0,0 +1,30 @@
|
||||
-*- indented-text -*-
|
||||
|
||||
** lib/gssapi
|
||||
|
||||
cache delegation credentials to avoid hitting the kdc ? require time
|
||||
stampless tickets, and was supported in the recv'ing end with 0.6.1.
|
||||
|
||||
make iov work for arcfour
|
||||
|
||||
make iov work for ntlm
|
||||
|
||||
interop test
|
||||
|
||||
make TYPE_STREAM work
|
||||
|
||||
** lib/kadm5
|
||||
|
||||
add policies?
|
||||
|
||||
** lib/krb5
|
||||
|
||||
verify_user: handle non-secure verification failing because of
|
||||
host->realm mapping
|
||||
|
||||
* windows stuff
|
||||
|
||||
-- drop all double negation #ifndef NO_
|
||||
-- got though windows specific ifdefs to minimized them
|
||||
-- switch to use heim-ipc for services, like the kadmin change notification socket
|
||||
-- Unify lib/krb5/expand_path_w32.c
|
@ -1,4 +1,4 @@
|
||||
dnl $Id: acinclude.m4 13337 2004-02-12 14:19:16Z lha $
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Only put things that for some reason can't live in the `cf'
|
||||
dnl directory in this file.
|
||||
|
6923
aclocal.m4
vendored
6923
aclocal.m4
vendored
File diff suppressed because it is too large
Load Diff
@ -1,10 +1,10 @@
|
||||
2006-10-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2006-10-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am: Add man_MANS to EXTRA_DIST
|
||||
|
||||
* Makefile.am: split build files into dist_ and noinst_ SOURCES
|
||||
|
||||
2005-07-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-07-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ktutil.c: rename optind to optidx
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
shadowing; make a copy of realm and admin_server to avoid
|
||||
un-consting.
|
||||
|
||||
2005-05-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-05-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* change.c (kt_change): plug memory leak from
|
||||
krb5_kt_remove_entry, print principal on error.
|
||||
@ -27,11 +27,11 @@
|
||||
|
||||
* ktutil.c (help): Don't use non-constant initializer for `fake'.
|
||||
|
||||
2005-04-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-04-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ktutil_locl.h: include <hex.h>
|
||||
|
||||
2005-04-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-04-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* add.c: add option -H --hex to the add command
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
|
||||
* ktutil.8: document option -H --hex to the add command
|
||||
|
||||
2004-09-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-09-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* list.c: un c99'ify, from Anders.Magnusson@ltu.se
|
||||
|
||||
|
@ -1,11 +1,9 @@
|
||||
# $Id: Makefile.am 20466 2007-04-20 08:29:05Z lha $
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
AM_CPPFLAGS += $(INCLUDE_readline) $(INCLUDE_hcrypto)
|
||||
|
||||
SLC = $(top_builddir)/lib/sl/slc
|
||||
|
||||
man_MANS = ktutil.8
|
||||
|
||||
sbin_PROGRAMS = ktutil
|
||||
@ -14,6 +12,7 @@ dist_ktutil_SOURCES = \
|
||||
add.c \
|
||||
change.c \
|
||||
copy.c \
|
||||
destroy.c \
|
||||
get.c \
|
||||
ktutil.c \
|
||||
ktutil_locl.h \
|
||||
@ -41,4 +40,4 @@ LDADD = \
|
||||
$(LIB_readline) \
|
||||
$(LIB_roken)
|
||||
|
||||
EXTRA_DIST = $(man_MANS) ktutil-commands.in
|
||||
EXTRA_DIST = NTMakefile ktutil-version.rc $(man_MANS) ktutil-commands.in
|
||||
|
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,16 +15,17 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# $Id: Makefile.am 20466 2007-04-20 08:29:05Z lha $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
|
||||
# $Id$
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -45,7 +47,7 @@ sbin_PROGRAMS = ktutil$(EXEEXT)
|
||||
subdir = admin
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 \
|
||||
$(top_srcdir)/cf/broken-getaddrinfo.m4 \
|
||||
$(top_srcdir)/cf/broken-glob.m4 \
|
||||
$(top_srcdir)/cf/broken-realloc.m4 \
|
||||
@ -60,7 +62,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
|
||||
$(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
|
||||
$(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
|
||||
$(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/dispatch.m4 $(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs2.m4 \
|
||||
$(top_srcdir)/cf/find-func.m4 \
|
||||
@ -74,9 +76,12 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/krb-readline.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-spwd.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-winsize.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
|
||||
$(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
|
||||
$(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/libtool.m4 \
|
||||
$(top_srcdir)/cf/ltoptions.m4 $(top_srcdir)/cf/ltsugar.m4 \
|
||||
$(top_srcdir)/cf/ltversion.m4 $(top_srcdir)/cf/lt~obsolete.m4 \
|
||||
$(top_srcdir)/cf/mips-abi.m4 $(top_srcdir)/cf/misc.m4 \
|
||||
$(top_srcdir)/cf/need-proto.m4 $(top_srcdir)/cf/osfc2.m4 \
|
||||
$(top_srcdir)/cf/otp.m4 $(top_srcdir)/cf/pkg.m4 \
|
||||
$(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
|
||||
$(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
|
||||
$(top_srcdir)/cf/roken-frag.m4 \
|
||||
@ -84,18 +89,19 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
|
||||
$(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
|
||||
$(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(man8dir)"
|
||||
sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(sbin_PROGRAMS)
|
||||
dist_ktutil_OBJECTS = add.$(OBJEXT) change.$(OBJEXT) copy.$(OBJEXT) \
|
||||
get.$(OBJEXT) ktutil.$(OBJEXT) list.$(OBJEXT) purge.$(OBJEXT) \
|
||||
remove.$(OBJEXT) rename.$(OBJEXT)
|
||||
destroy.$(OBJEXT) get.$(OBJEXT) ktutil.$(OBJEXT) \
|
||||
list.$(OBJEXT) purge.$(OBJEXT) remove.$(OBJEXT) \
|
||||
rename.$(OBJEXT)
|
||||
nodist_ktutil_OBJECTS = ktutil-commands.$(OBJEXT)
|
||||
ktutil_OBJECTS = $(dist_ktutil_OBJECTS) $(nodist_ktutil_OBJECTS)
|
||||
ktutil_LDADD = $(LDADD)
|
||||
@ -105,9 +111,9 @@ ktutil_DEPENDENCIES = $(top_builddir)/lib/kadm5/libkadm5clnt.la \
|
||||
$(top_builddir)/lib/asn1/libasn1.la \
|
||||
$(top_builddir)/lib/sl/libsl.la $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1)
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)/include@am__isrc@
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
@ -119,6 +125,27 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(dist_ktutil_SOURCES) $(nodist_ktutil_SOURCES)
|
||||
DIST_SOURCES = $(dist_ktutil_SOURCES)
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
man8dir = $(mandir)/man8
|
||||
MANS = $(man_MANS)
|
||||
ETAGS = etags
|
||||
@ -128,49 +155,58 @@ ACLOCAL = @ACLOCAL@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASN1_COMPILE = @ASN1_COMPILE@
|
||||
ASN1_COMPILE_DEP = @ASN1_COMPILE_DEP@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CAPNG_CFLAGS = @CAPNG_CFLAGS@
|
||||
CAPNG_LIBS = @CAPNG_LIBS@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE_ET = @COMPILE_ET@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBHEADER = @DBHEADER@
|
||||
DBLIB = @DBLIB@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIR_com_err = @DIR_com_err@
|
||||
DIR_hcrypto = @DIR_hcrypto@
|
||||
DIR_hdbdir = @DIR_hdbdir@
|
||||
DIR_roken = @DIR_roken@
|
||||
ECHO = @ECHO@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INCLUDES_roken = @INCLUDES_roken@
|
||||
INCLUDE_hcrypto = @INCLUDE_hcrypto@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
INCLUDE_libedit = @INCLUDE_libedit@
|
||||
INCLUDE_libintl = @INCLUDE_libintl@
|
||||
INCLUDE_openldap = @INCLUDE_openldap@
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
INCLUDE_sqlite3 = @INCLUDE_sqlite3@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
|
||||
LEX = @LEX@
|
||||
@ -194,10 +230,11 @@ LIB_crypt = @LIB_crypt@
|
||||
LIB_db_create = @LIB_db_create@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dispatch_async_f = @LIB_dispatch_async_f@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_dns_search = @LIB_dns_search@
|
||||
LIB_door_create = @LIB_door_create@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_freeaddrinfo = @LIB_freeaddrinfo@
|
||||
LIB_gai_strerror = @LIB_gai_strerror@
|
||||
LIB_getaddrinfo = @LIB_getaddrinfo@
|
||||
@ -214,6 +251,8 @@ LIB_hesiod = @LIB_hesiod@
|
||||
LIB_hstrerror = @LIB_hstrerror@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
LIB_libedit = @LIB_libedit@
|
||||
LIB_libintl = @LIB_libintl@
|
||||
LIB_loadquery = @LIB_loadquery@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
@ -229,31 +268,45 @@ LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_sqlite3 = @LIB_sqlite3@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_AFS = @NO_AFS@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
|
||||
PTHREADS_LIBS = @PTHREADS_LIBS@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
PTHREAD_LDADD = @PTHREAD_LDADD@
|
||||
PTHREAD_LIBADD = @PTHREAD_LIBADD@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLC = @SLC@
|
||||
SLC_DEP = @SLC_DEP@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VERSIONING = @VERSIONING@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
@ -268,10 +321,12 @@ abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
@ -312,37 +367,41 @@ psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken) \
|
||||
$(INCLUDE_readline) $(INCLUDE_hcrypto)
|
||||
SUFFIXES = .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = $(INCLUDES_roken) $(INCLUDE_readline) $(INCLUDE_hcrypto)
|
||||
@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
CP = cp
|
||||
buildinclude = $(top_builddir)/include
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
libexec_heimdaldir = $(libexecdir)/heimdal
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
|
||||
@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
|
||||
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
|
||||
LIB_heimbase = $(top_builddir)/base/libheimbase.la
|
||||
@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
|
||||
SLC = $(top_builddir)/lib/sl/slc
|
||||
man_MANS = ktutil.8
|
||||
dist_ktutil_SOURCES = \
|
||||
add.c \
|
||||
change.c \
|
||||
copy.c \
|
||||
destroy.c \
|
||||
get.c \
|
||||
ktutil.c \
|
||||
ktutil_locl.h \
|
||||
@ -364,23 +423,23 @@ LDADD = \
|
||||
$(LIB_readline) \
|
||||
$(LIB_roken)
|
||||
|
||||
EXTRA_DIST = $(man_MANS) ktutil-commands.in
|
||||
EXTRA_DIST = NTMakefile ktutil-version.rc $(man_MANS) ktutil-commands.in
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
|
||||
.SUFFIXES: .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps admin/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign --ignore-deps admin/Makefile
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign admin/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign admin/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -398,34 +457,50 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-sbinPROGRAMS: $(sbin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(sbindir)" || $(MKDIR_P) "$(DESTDIR)$(sbindir)"
|
||||
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
|| test -f $$p1 \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p || test -f $$p1; \
|
||||
then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-sbinPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(sbindir)/$$f"; \
|
||||
done
|
||||
@list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' `; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(sbindir)" && rm -f $$files
|
||||
|
||||
clean-sbinPROGRAMS:
|
||||
@list='$(sbin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f $$p $$f"; \
|
||||
rm -f $$p $$f ; \
|
||||
done
|
||||
@list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list || exit $$?; \
|
||||
test -n "$(EXEEXT)" || exit 0; \
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
ktutil$(EXEEXT): $(ktutil_OBJECTS) $(ktutil_DEPENDENCIES)
|
||||
@rm -f ktutil$(EXEEXT)
|
||||
$(LINK) $(ktutil_OBJECTS) $(ktutil_LDADD) $(LIBS)
|
||||
@ -436,115 +511,149 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/add.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/change.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/copy.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/destroy.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ktutil-commands.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ktutil.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/list.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/purge.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/remove.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rename.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
$(COMPILE) -c $<
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(LTCOMPILE) -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-man8: $(man8_MANS) $(man_MANS)
|
||||
install-man8: $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
|
||||
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.8*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
@list=''; test -n "$(man8dir)" || exit 0; \
|
||||
{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.8[a-z]*$$/p'; \
|
||||
} | while read p; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; echo "$$p"; \
|
||||
done | \
|
||||
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
|
||||
sed 'N;N;s,\n, ,g' | { \
|
||||
list=; while read file base inst; do \
|
||||
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \
|
||||
fi; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||
else file=$$i; fi; \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
8*) ;; \
|
||||
*) ext='8' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
|
||||
done
|
||||
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \
|
||||
done; }
|
||||
|
||||
uninstall-man8:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.8*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
8*) ;; \
|
||||
*) ext='8' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
|
||||
rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
|
||||
done
|
||||
@list=''; test -n "$(man8dir)" || exit 0; \
|
||||
files=`{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.8[a-z]*$$/p'; \
|
||||
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||
test -z "$$files" || { \
|
||||
echo " ( cd '$(DESTDIR)$(man8dir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(man8dir)" && rm -f $$files; }
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@list='$(MANS)'; if test -n "$$list"; then \
|
||||
list=`for p in $$list; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
|
||||
if test -n "$$list" && \
|
||||
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
|
||||
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
|
||||
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
|
||||
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
|
||||
echo " typically \`make maintainer-clean' will remove them" >&2; \
|
||||
exit 1; \
|
||||
else :; fi; \
|
||||
else :; fi
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@ -560,13 +669,17 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@ -602,6 +715,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -612,6 +726,7 @@ clean-am: clean-generic clean-libtool clean-sbinPROGRAMS \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
@ -622,6 +737,8 @@ dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -629,26 +746,35 @@ info-am:
|
||||
install-data-am: install-man
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-sbinPROGRAMS
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man: install-man8
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
@ -668,11 +794,10 @@ ps-am:
|
||||
uninstall-am: uninstall-man uninstall-sbinPROGRAMS
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||
|
||||
uninstall-man: uninstall-man8
|
||||
|
||||
.MAKE: install-am install-data-am install-exec-am install-strip \
|
||||
uninstall-am
|
||||
.MAKE: check-am install-am install-data-am install-exec-am \
|
||||
install-strip uninstall-am
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am all-local check check-am check-local \
|
||||
clean clean-generic clean-libtool clean-sbinPROGRAMS ctags \
|
||||
@ -759,6 +884,9 @@ check-local::
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
.hx.h:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
@ -844,7 +972,7 @@ uninstall-hook: uninstall-cat-mans
|
||||
check-valgrind:
|
||||
tobjdir=`cd $(top_builddir) && pwd` ; \
|
||||
tsrcdir=`cd $(top_srcdir) && pwd` ; \
|
||||
env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
|
||||
env TESTS_ENVIRONMENT="$${tsrcdir}/cf/maybe-valgrind.sh -s $${tsrcdir} -o $${tobjdir}" make check
|
||||
|
||||
#
|
||||
# Target to please samba build farm, builds distfiles in-tree.
|
||||
@ -862,6 +990,7 @@ $(ktutil_OBJECTS): ktutil-commands.h
|
||||
|
||||
ktutil-commands.c ktutil-commands.h: ktutil-commands.in
|
||||
$(SLC) $(srcdir)/ktutil-commands.in
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
74
admin/NTMakefile
Normal file
74
admin/NTMakefile
Normal file
@ -0,0 +1,74 @@
|
||||
########################################################################
|
||||
#
|
||||
# Copyright (c) 2009, Secure Endpoints Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
# COPYRIGHT HOLDER 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.
|
||||
#
|
||||
|
||||
RELDIR=admin
|
||||
cincdirs=$(cincdirs) -I$(OBJ)
|
||||
!include ../windows/NTMakefile.w32
|
||||
|
||||
SBINPROGRAMS=$(SBINDIR)\ktutil.exe
|
||||
|
||||
KTUTIL_OBJS= \
|
||||
$(OBJ)\add.obj \
|
||||
$(OBJ)\change.obj \
|
||||
$(OBJ)\copy.obj \
|
||||
$(OBJ)\destroy.obj \
|
||||
$(OBJ)\get.obj \
|
||||
$(OBJ)\ktutil.obj \
|
||||
$(OBJ)\ktutil-commands.obj \
|
||||
$(OBJ)\list.obj \
|
||||
$(OBJ)\purge.obj \
|
||||
$(OBJ)\remove.obj \
|
||||
$(OBJ)\rename.obj
|
||||
|
||||
KTUTIL_LIBS= \
|
||||
$(LIBHEIMDAL) \
|
||||
$(LIBKADM5SRV) \
|
||||
$(LIBSL) \
|
||||
$(LIBROKEN) \
|
||||
$(LIBVERS)
|
||||
|
||||
$(SBINDIR)\ktutil.exe: $(KTUTIL_OBJS) $(KTUTIL_LIBS) $(OBJ)\ktutil-version.res
|
||||
$(EXECONLINK)
|
||||
$(EXEPREP)
|
||||
|
||||
$(OBJ)\ktutil-commands.c $(OBJ)\ktutil-commands.h: ktutil-commands.in
|
||||
cd $(OBJ)
|
||||
$(CP) $(SRCDIR)\ktutil-commands.in $(OBJ)
|
||||
$(BINDIR)\slc.exe ktutil-commands.in
|
||||
cd $(SRCDIR)
|
||||
|
||||
INCFILES=\
|
||||
$(OBJ)\ktutil-commands.h
|
||||
|
||||
all:: $(INCFILES) $(SBINPROGRAMS)
|
||||
|
||||
clean::
|
||||
-$(RM) $(SBINPROGRAMS:.exe=.*)
|
60
admin/add.c
60
admin/add.c
@ -1,39 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
|
||||
RCSID("$Id: add.c 14793 2005-04-14 16:45:14Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
static char *
|
||||
readstring(const char *prompt, char *buf, size_t len)
|
||||
@ -104,7 +104,7 @@ kt_add(struct add_options *opt, int argc, char **argv)
|
||||
if (opt->hex_flag) {
|
||||
size_t len;
|
||||
void *data;
|
||||
|
||||
|
||||
len = (strlen(opt->password_string) + 1) / 2;
|
||||
|
||||
data = malloc(len);
|
||||
@ -113,13 +113,13 @@ kt_add(struct add_options *opt, int argc, char **argv)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (hex_decode(opt->password_string, data, len) != len) {
|
||||
if ((size_t)hex_decode(opt->password_string, data, len) != len) {
|
||||
free(data);
|
||||
krb5_warn(context, ENOMEM, "hex decode failed");
|
||||
goto out;
|
||||
}
|
||||
|
||||
ret = krb5_keyblock_init(context, enctype,
|
||||
ret = krb5_keyblock_init(context, enctype,
|
||||
data, len, &entry.keyblock);
|
||||
free(data);
|
||||
} else if (!opt->salt_flag) {
|
||||
@ -134,7 +134,7 @@ kt_add(struct add_options *opt, int argc, char **argv)
|
||||
ret = krb5_string_to_key_data_salt(context, enctype, pw, salt,
|
||||
&entry.keyblock);
|
||||
} else {
|
||||
ret = krb5_string_to_key(context, enctype, opt->password_string,
|
||||
ret = krb5_string_to_key(context, enctype, opt->password_string,
|
||||
entry.principal, &entry.keyblock);
|
||||
}
|
||||
memset (opt->password_string, 0, strlen(opt->password_string));
|
||||
|
@ -1,39 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
|
||||
RCSID("$Id: change.c 15578 2005-07-07 20:44:48Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
static krb5_error_code
|
||||
change_entry (krb5_keytab keytab,
|
||||
@ -61,19 +61,19 @@ change_entry (krb5_keytab keytab,
|
||||
conf.realm = strdup(realm);
|
||||
if (conf.realm == NULL) {
|
||||
free (client_name);
|
||||
krb5_set_error_string(context, "malloc failed");
|
||||
krb5_set_error_message(context, ENOMEM, "malloc failed");
|
||||
return ENOMEM;
|
||||
}
|
||||
conf.mask |= KADM5_CONFIG_REALM;
|
||||
|
||||
|
||||
if (admin_server) {
|
||||
conf.admin_server = strdup(admin_server);
|
||||
if (conf.admin_server == NULL) {
|
||||
free(client_name);
|
||||
free(conf.realm);
|
||||
krb5_set_error_string(context, "malloc failed");
|
||||
krb5_set_error_message(context, ENOMEM, "malloc failed");
|
||||
return ENOMEM;
|
||||
}
|
||||
}
|
||||
conf.mask |= KADM5_CONFIG_ADMIN_SERVER;
|
||||
}
|
||||
|
||||
@ -140,7 +140,7 @@ kt_change (struct change_options *opt, int argc, char **argv)
|
||||
int i, j, max;
|
||||
struct change_set *changeset;
|
||||
int errors = 0;
|
||||
|
||||
|
||||
if((keytab = ktutil_open_keytab()) == NULL)
|
||||
return 1;
|
||||
|
||||
@ -222,20 +222,20 @@ kt_change (struct change_options *opt, int argc, char **argv)
|
||||
if (verbose_flag) {
|
||||
char *client_name;
|
||||
|
||||
ret = krb5_unparse_name (context, changeset[i].principal,
|
||||
ret = krb5_unparse_name (context, changeset[i].principal,
|
||||
&client_name);
|
||||
if (ret) {
|
||||
krb5_warn (context, ret, "krb5_unparse_name");
|
||||
} else {
|
||||
printf("Changing %s kvno %d\n",
|
||||
printf("Changing %s kvno %d\n",
|
||||
client_name, changeset[i].kvno);
|
||||
free(client_name);
|
||||
}
|
||||
}
|
||||
ret = change_entry (keytab,
|
||||
ret = change_entry (keytab,
|
||||
changeset[i].principal, changeset[i].kvno,
|
||||
opt->realm_string,
|
||||
opt->admin_server_string,
|
||||
opt->realm_string,
|
||||
opt->admin_server_string,
|
||||
opt->server_port_integer);
|
||||
if (ret != 0)
|
||||
errors = 1;
|
||||
|
106
admin/copy.c
106
admin/copy.c
@ -1,39 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
|
||||
RCSID("$Id: copy.c 14260 2004-09-23 14:45:29Z joda $");
|
||||
RCSID("$Id$");
|
||||
|
||||
|
||||
static krb5_boolean
|
||||
@ -46,13 +46,15 @@ compare_keyblock(const krb5_keyblock *a, const krb5_keyblock *b)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static int
|
||||
kt_copy_int (const char *from, const char *to)
|
||||
int
|
||||
kt_copy (void *opt, int argc, char **argv)
|
||||
{
|
||||
krb5_error_code ret;
|
||||
krb5_keytab src_keytab, dst_keytab;
|
||||
krb5_kt_cursor cursor;
|
||||
krb5_keytab_entry entry, dummy;
|
||||
const char *from = argv[0];
|
||||
const char *to = argv[1];
|
||||
|
||||
ret = krb5_kt_resolve (context, from, &src_keytab);
|
||||
if (ret) {
|
||||
@ -90,9 +92,9 @@ kt_copy_int (const char *from, const char *to)
|
||||
krb5_warn(context, ret, "krb5_enctype_to_string");
|
||||
etype_str = NULL; /* XXX */
|
||||
}
|
||||
ret = krb5_kt_get_entry(context, dst_keytab,
|
||||
entry.principal,
|
||||
entry.vno,
|
||||
ret = krb5_kt_get_entry(context, dst_keytab,
|
||||
entry.principal,
|
||||
entry.vno,
|
||||
entry.keyblock.keytype,
|
||||
&dummy);
|
||||
if(ret == 0) {
|
||||
@ -101,7 +103,7 @@ kt_copy_int (const char *from, const char *to)
|
||||
is weird, so complain about that */
|
||||
if(!compare_keyblock(&entry.keyblock, &dummy.keyblock)) {
|
||||
krb5_warnx(context, "entry with different keyvalue "
|
||||
"already exists for %s, keytype %s, kvno %d",
|
||||
"already exists for %s, keytype %s, kvno %d",
|
||||
name_str, etype_str, entry.vno);
|
||||
}
|
||||
krb5_kt_free_entry(context, &dummy);
|
||||
@ -110,7 +112,7 @@ kt_copy_int (const char *from, const char *to)
|
||||
free(etype_str);
|
||||
continue;
|
||||
} else if(ret != KRB5_KT_NOTFOUND) {
|
||||
krb5_warn (context, ret, "%s: fetching %s/%s/%u",
|
||||
krb5_warn (context, ret, "%s: fetching %s/%s/%u",
|
||||
to, name_str, etype_str, entry.vno);
|
||||
krb5_kt_free_entry (context, &entry);
|
||||
free(name_str);
|
||||
@ -118,12 +120,12 @@ kt_copy_int (const char *from, const char *to)
|
||||
break;
|
||||
}
|
||||
if (verbose_flag)
|
||||
fprintf (stderr, "copying %s, keytype %s, kvno %d\n", name_str,
|
||||
fprintf (stderr, "copying %s, keytype %s, kvno %d\n", name_str,
|
||||
etype_str, entry.vno);
|
||||
ret = krb5_kt_add_entry (context, dst_keytab, &entry);
|
||||
krb5_kt_free_entry (context, &entry);
|
||||
if (ret) {
|
||||
krb5_warn (context, ret, "%s: adding %s/%s/%u",
|
||||
krb5_warn (context, ret, "%s: adding %s/%s/%u",
|
||||
to, name_str, etype_str, entry.vno);
|
||||
free(name_str);
|
||||
free(etype_str);
|
||||
@ -139,37 +141,3 @@ kt_copy_int (const char *from, const char *to)
|
||||
krb5_kt_close (context, dst_keytab);
|
||||
return ret != 0;
|
||||
}
|
||||
|
||||
int
|
||||
kt_copy (void *opt, int argc, char **argv)
|
||||
{
|
||||
return kt_copy_int(argv[0], argv[1]);
|
||||
}
|
||||
|
||||
int
|
||||
srvconv(struct srvconvert_options *opt, int argc, char **argv)
|
||||
{
|
||||
char kt4[1024], kt5[1024];
|
||||
|
||||
snprintf(kt4, sizeof(kt4), "krb4:%s", opt->srvtab_string);
|
||||
|
||||
if(keytab_string != NULL)
|
||||
return kt_copy_int(kt4, keytab_string);
|
||||
|
||||
krb5_kt_default_modify_name(context, kt5, sizeof(kt5));
|
||||
return kt_copy_int(kt4, kt5);
|
||||
}
|
||||
|
||||
int
|
||||
srvcreate(struct srvcreate_options *opt, int argc, char **argv)
|
||||
{
|
||||
char kt4[1024], kt5[1024];
|
||||
|
||||
snprintf(kt4, sizeof(kt4), "krb4:%s", opt->srvtab_string);
|
||||
|
||||
if(keytab_string != NULL)
|
||||
return kt_copy_int(keytab_string, kt4);
|
||||
|
||||
krb5_kt_default_name(context, kt5, sizeof(kt5));
|
||||
return kt_copy_int(kt5, kt4);
|
||||
}
|
||||
|
52
admin/destroy.c
Normal file
52
admin/destroy.c
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
|
||||
int
|
||||
kt_destroy (void *opt, int argc, char **argv)
|
||||
{
|
||||
krb5_error_code ret;
|
||||
krb5_keytab keytab;
|
||||
|
||||
if((keytab = ktutil_open_keytab()) == NULL)
|
||||
return 1;
|
||||
|
||||
ret = krb5_kt_destroy (context, keytab);
|
||||
if (ret) {
|
||||
krb5_warn (context, ret, "destroy keytab failed");
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
107
admin/get.c
107
admin/get.c
@ -1,44 +1,44 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
|
||||
RCSID("$Id: get.c 15583 2005-07-07 21:44:37Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
static void*
|
||||
open_kadmin_connection(char *principal,
|
||||
const char *realm,
|
||||
char *admin_server,
|
||||
const char *realm,
|
||||
char *admin_server,
|
||||
int server_port)
|
||||
{
|
||||
static kadm5_config_params conf;
|
||||
@ -49,12 +49,12 @@ open_kadmin_connection(char *principal,
|
||||
if(realm) {
|
||||
conf.realm = strdup(realm);
|
||||
if (conf.realm == NULL) {
|
||||
krb5_set_error_string(context, "malloc: out of memory");
|
||||
krb5_set_error_message(context, 0, "malloc: out of memory");
|
||||
return NULL;
|
||||
}
|
||||
conf.mask |= KADM5_CONFIG_REALM;
|
||||
}
|
||||
|
||||
|
||||
if (admin_server) {
|
||||
conf.admin_server = admin_server;
|
||||
conf.mask |= KADM5_CONFIG_ADMIN_SERVER;
|
||||
@ -68,11 +68,11 @@ open_kadmin_connection(char *principal,
|
||||
/* should get realm from each principal, instead of doing
|
||||
everything with the same (local) realm */
|
||||
|
||||
ret = kadm5_init_with_password_ctx(context,
|
||||
ret = kadm5_init_with_password_ctx(context,
|
||||
principal,
|
||||
NULL,
|
||||
KADM5_ADMIN_SERVICE,
|
||||
&conf, 0, 0,
|
||||
&conf, 0, 0,
|
||||
&kadm_handle);
|
||||
free(conf.realm);
|
||||
if(ret) {
|
||||
@ -90,9 +90,10 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
||||
void *kadm_handle = NULL;
|
||||
krb5_enctype *etypes = NULL;
|
||||
size_t netypes = 0;
|
||||
int i, j;
|
||||
size_t i;
|
||||
int a, j;
|
||||
unsigned int failed = 0;
|
||||
|
||||
|
||||
if((keytab = ktutil_open_keytab()) == NULL)
|
||||
return 1;
|
||||
|
||||
@ -108,8 +109,8 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
||||
}
|
||||
netypes = opt->enctypes_strings.num_strings;
|
||||
for(i = 0; i < netypes; i++) {
|
||||
ret = krb5_string_to_enctype(context,
|
||||
opt->enctypes_strings.strings[i],
|
||||
ret = krb5_string_to_enctype(context,
|
||||
opt->enctypes_strings.strings[i],
|
||||
&etypes[i]);
|
||||
if(ret) {
|
||||
krb5_warnx(context, "unrecognized enctype: %s",
|
||||
@ -119,8 +120,8 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for(i = 0; i < argc; i++){
|
||||
|
||||
for(a = 0; a < argc; a++){
|
||||
krb5_principal princ_ent;
|
||||
kadm5_principal_ent_rec princ;
|
||||
int mask = 0;
|
||||
@ -129,9 +130,9 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
||||
int created = 0;
|
||||
krb5_keytab_entry entry;
|
||||
|
||||
ret = krb5_parse_name(context, argv[i], &princ_ent);
|
||||
ret = krb5_parse_name(context, argv[a], &princ_ent);
|
||||
if (ret) {
|
||||
krb5_warn(context, ret, "can't parse principal %s", argv[i]);
|
||||
krb5_warn(context, ret, "can't parse principal %s", argv[a]);
|
||||
failed++;
|
||||
continue;
|
||||
}
|
||||
@ -149,35 +150,35 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
||||
r = opt->realm_string;
|
||||
else
|
||||
r = krb5_principal_get_realm(context, princ_ent);
|
||||
kadm_handle = open_kadmin_connection(opt->principal_string,
|
||||
r,
|
||||
opt->admin_server_string,
|
||||
kadm_handle = open_kadmin_connection(opt->principal_string,
|
||||
r,
|
||||
opt->admin_server_string,
|
||||
opt->server_port_integer);
|
||||
if(kadm_handle == NULL)
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
ret = kadm5_create_principal(kadm_handle, &princ, mask, "x");
|
||||
if(ret == 0)
|
||||
created = 1;
|
||||
else if(ret != KADM5_DUP) {
|
||||
krb5_warn(context, ret, "kadm5_create_principal(%s)", argv[i]);
|
||||
krb5_warn(context, ret, "kadm5_create_principal(%s)", argv[a]);
|
||||
krb5_free_principal(context, princ_ent);
|
||||
failed++;
|
||||
continue;
|
||||
}
|
||||
ret = kadm5_randkey_principal(kadm_handle, princ_ent, &keys, &n_keys);
|
||||
if (ret) {
|
||||
krb5_warn(context, ret, "kadm5_randkey_principal(%s)", argv[i]);
|
||||
krb5_warn(context, ret, "kadm5_randkey_principal(%s)", argv[a]);
|
||||
krb5_free_principal(context, princ_ent);
|
||||
failed++;
|
||||
continue;
|
||||
}
|
||||
|
||||
ret = kadm5_get_principal(kadm_handle, princ_ent, &princ,
|
||||
|
||||
ret = kadm5_get_principal(kadm_handle, princ_ent, &princ,
|
||||
KADM5_PRINCIPAL | KADM5_KVNO | KADM5_ATTRIBUTES);
|
||||
if (ret) {
|
||||
krb5_warn(context, ret, "kadm5_get_principal(%s)", argv[i]);
|
||||
krb5_warn(context, ret, "kadm5_get_principal(%s)", argv[a]);
|
||||
for (j = 0; j < n_keys; j++)
|
||||
krb5_free_keyblock_contents(context, &keys[j]);
|
||||
krb5_free_principal(context, princ_ent);
|
||||
@ -185,7 +186,7 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
||||
continue;
|
||||
}
|
||||
if(!created && (princ.attributes & KRB5_KDB_DISALLOW_ALL_TIX))
|
||||
krb5_warnx(context, "%s: disallow-all-tix flag set - clearing", argv[i]);
|
||||
krb5_warnx(context, "%s: disallow-all-tix flag set - clearing", argv[a]);
|
||||
princ.attributes &= (~KRB5_KDB_DISALLOW_ALL_TIX);
|
||||
mask = KADM5_ATTRIBUTES;
|
||||
if(created) {
|
||||
@ -194,7 +195,7 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
||||
}
|
||||
ret = kadm5_modify_principal(kadm_handle, &princ, mask);
|
||||
if (ret) {
|
||||
krb5_warn(context, ret, "kadm5_modify_principal(%s)", argv[i]);
|
||||
krb5_warn(context, ret, "kadm5_modify_principal(%s)", argv[a]);
|
||||
for (j = 0; j < n_keys; j++)
|
||||
krb5_free_keyblock_contents(context, &keys[j]);
|
||||
krb5_free_principal(context, princ_ent);
|
||||
@ -205,7 +206,7 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
||||
int do_add = TRUE;
|
||||
|
||||
if (netypes) {
|
||||
int k;
|
||||
size_t k;
|
||||
|
||||
do_add = FALSE;
|
||||
for (k = 0; k < netypes; ++k)
|
||||
@ -225,7 +226,7 @@ kt_get(struct get_options *opt, int argc, char **argv)
|
||||
}
|
||||
krb5_free_keyblock_contents(context, &keys[j]);
|
||||
}
|
||||
|
||||
|
||||
kadm5_free_principal_ent(kadm_handle, &princ);
|
||||
krb5_free_principal(context, princ_ent);
|
||||
}
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2004 Kungliga Tekniska Högskolan
|
||||
* Copyright (c) 2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
@ -30,7 +30,7 @@
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
/* $Id: ktutil-commands.in 14793 2005-04-14 16:45:14Z lha $ */
|
||||
/* $Id$ */
|
||||
|
||||
command = {
|
||||
name = "add"
|
||||
@ -227,36 +227,17 @@ command = {
|
||||
min_args = "2"
|
||||
max_args = "2"
|
||||
help = "Renames an entry in the keytab."
|
||||
option = {
|
||||
long = "delete"
|
||||
type = "-flag"
|
||||
help = "don't delete orignal entry"
|
||||
}
|
||||
}
|
||||
command = {
|
||||
name = "srvconvert"
|
||||
name = "srv2keytab"
|
||||
option = {
|
||||
long = "srvtab"
|
||||
short = "s"
|
||||
type = "string"
|
||||
argument = "file"
|
||||
help = "name of Kerberos 4 srvtab"
|
||||
default = "/etc/srvtab"
|
||||
}
|
||||
name = "destroy"
|
||||
function = "kt_destroy"
|
||||
max_args = "0"
|
||||
function = "srvconv"
|
||||
help = "Convert a Kerberos 4 srvtab to a keytab."
|
||||
}
|
||||
command = {
|
||||
name = "srvcreate"
|
||||
name = "key2srvtab"
|
||||
option = {
|
||||
long = "srvtab"
|
||||
short = "s"
|
||||
type = "string"
|
||||
argument = "file"
|
||||
help = "name of Kerberos 4 srvtab"
|
||||
default = "/etc/srvtab"
|
||||
}
|
||||
max_args = "0"
|
||||
function = "srvcreate"
|
||||
help = "Convert a keytab to a Kerberos 4 srvtab."
|
||||
help = "Destroy (remove) the keytab."
|
||||
}
|
||||
command = {
|
||||
name = "help"
|
||||
|
36
admin/ktutil-version.rc
Normal file
36
admin/ktutil-version.rc
Normal file
@ -0,0 +1,36 @@
|
||||
/***********************************************************************
|
||||
* Copyright (c) 2010, Secure Endpoints Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* - Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* - Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
* COPYRIGHT HOLDER 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.
|
||||
*
|
||||
**********************************************************************/
|
||||
|
||||
#define RC_FILE_TYPE VFT_APP
|
||||
#define RC_FILE_DESC_0409 "Kerberos Keytab Tool"
|
||||
#define RC_FILE_ORIG_0409 "ktutil.exe"
|
||||
|
||||
#include "../windows/version.rc"
|
178
admin/ktutil.8
178
admin/ktutil.8
@ -1,35 +1,35 @@
|
||||
.\" Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
.\" (Royal Institute of Technology, Stockholm, Sweden).
|
||||
.\" All rights reserved.
|
||||
.\" Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
.\" (Royal Institute of Technology, Stockholm, Sweden).
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\"
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\"
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" 3. Neither the name of the Institute nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\" 3. Neither the name of the Institute nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id: ktutil.8 14792 2005-04-14 16:43:57Z lha $
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd April 14, 2005
|
||||
.Dt KTUTIL 8
|
||||
@ -40,12 +40,12 @@
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Oo Fl k Ar keytab \*(Ba Xo
|
||||
.Fl -keytab= Ns Ar keytab
|
||||
.Fl Fl keytab= Ns Ar keytab
|
||||
.Xc
|
||||
.Oc
|
||||
.Op Fl v | Fl -verbose
|
||||
.Op Fl -version
|
||||
.Op Fl h | Fl -help
|
||||
.Op Fl v | Fl Fl verbose
|
||||
.Op Fl Fl version
|
||||
.Op Fl h | Fl Fl help
|
||||
.Ar command
|
||||
.Op Ar args
|
||||
.Sh DESCRIPTION
|
||||
@ -53,72 +53,43 @@
|
||||
is a program for managing keytabs.
|
||||
Supported options:
|
||||
.Bl -tag -width Ds
|
||||
.It Xo
|
||||
.Fl v ,
|
||||
.Fl -verbose
|
||||
.Xc
|
||||
.It Fl v , Fl Fl verbose
|
||||
Verbose output.
|
||||
.El
|
||||
.Pp
|
||||
.Ar command
|
||||
can be one of the following:
|
||||
.Bl -tag -width srvconvert
|
||||
.It add Xo
|
||||
.Op Fl p Ar principal
|
||||
.Op Fl -principal= Ns Ar principal
|
||||
.Op Fl V Ar kvno
|
||||
.Op Fl -kvno= Ns Ar kvno
|
||||
.Op Fl e Ar enctype
|
||||
.Op Fl -enctype= Ns Ar enctype
|
||||
.Op Fl w Ar password
|
||||
.Op Fl -password= Ns Ar password
|
||||
.Op Fl r
|
||||
.Op Fl -random
|
||||
.Op Fl s
|
||||
.Op Fl -no-salt
|
||||
.Op Fl H
|
||||
.Op Fl -hex
|
||||
.Xc
|
||||
.It add Oo Fl p Ar principal Oc Oo Fl Fl principal= Ns Ar principal Oc \
|
||||
Oo Fl V Ar kvno Oc Oo Fl Fl kvno= Ns Ar kvno Oc Oo Fl e Ar enctype Oc \
|
||||
Oo Fl Fl enctype= Ns Ar enctype Oc Oo Fl w Ar password Oc \
|
||||
Oo Fl Fl password= Ns Ar password Oc Oo Fl r Oc Oo Fl Fl random Oc \
|
||||
Oo Fl s Oc Oo Fl Fl no-salt Oc Oo Fl H Oc Op Fl Fl hex
|
||||
Adds a key to the keytab. Options that are not specified will be
|
||||
prompted for. This requires that you know the password or the hex key of the
|
||||
principal to add; if what you really want is to add a new principal to
|
||||
the keytab, you should consider the
|
||||
.Ar get
|
||||
command, which talks to the kadmin server.
|
||||
.It change Xo
|
||||
.Op Fl r Ar realm
|
||||
.Op Fl -realm= Ns Ar realm
|
||||
.Op Fl -a Ar host
|
||||
.Op Fl -admin-server= Ns Ar host
|
||||
.Op Fl -s Ar port
|
||||
.Op Fl -server-port= Ns Ar port
|
||||
.Xc
|
||||
.It change Oo Fl r Ar realm Oc Oo Fl Fl realm= Ns Ar realm Oc \
|
||||
Oo Fl Fl a Ar host Oc Oo Fl Fl admin-server= Ns Ar host Oc \
|
||||
Oo Fl Fl s Ar port Oc Op Fl Fl server-port= Ns Ar port
|
||||
Update one or several keys to new versions. By default, use the admin
|
||||
server for the realm of a keytab entry. Otherwise it will use the
|
||||
values specified by the options.
|
||||
.Pp
|
||||
If no principals are given, all the ones in the keytab are updated.
|
||||
.It copy Xo
|
||||
.Ar keytab-src
|
||||
.Ar keytab-dest
|
||||
.Xc
|
||||
.It copy Ar keytab-src Ar keytab-dest
|
||||
Copies all the entries from
|
||||
.Ar keytab-src
|
||||
to
|
||||
.Ar keytab-dest .
|
||||
.It get Xo
|
||||
.Op Fl p Ar admin principal
|
||||
.Op Fl -principal= Ns Ar admin principal
|
||||
.Op Fl e Ar enctype
|
||||
.Op Fl -enctypes= Ns Ar enctype
|
||||
.Op Fl r Ar realm
|
||||
.Op Fl -realm= Ns Ar realm
|
||||
.Op Fl a Ar admin server
|
||||
.Op Fl -admin-server= Ns Ar admin server
|
||||
.Op Fl s Ar server port
|
||||
.Op Fl -server-port= Ns Ar server port
|
||||
.Ar principal ...
|
||||
.Xc
|
||||
.It get Oo Fl p Ar admin principal Oc \
|
||||
Oo Fl Fl principal= Ns Ar admin principal Oc Oo Fl e Ar enctype Oc \
|
||||
Oo Fl Fl enctypes= Ns Ar enctype Oc Oo Fl r Ar realm Oc \
|
||||
Oo Fl Fl realm= Ns Ar realm Oc Oo Fl a Ar admin server Oc \
|
||||
Oo Fl Fl admin-server= Ns Ar admin server Oc Oo Fl s Ar server port Oc \
|
||||
Oo Fl Fl server-port= Ns Ar server port Oc Ar principal ...
|
||||
For each
|
||||
.Ar principal ,
|
||||
generate a new key for it (creating it if it doesn't already exist),
|
||||
@ -128,69 +99,26 @@ If no
|
||||
.Ar realm
|
||||
is specified, the realm to operate on is taken from the first
|
||||
principal.
|
||||
.It list Xo
|
||||
.Op Fl -keys
|
||||
.Op Fl -timestamp
|
||||
.Xc
|
||||
.It list Oo Fl Fl keys Oc Op Fl Fl timestamp
|
||||
List the keys stored in the keytab.
|
||||
.It remove Xo
|
||||
.Op Fl p Ar principal
|
||||
.Op Fl -principal= Ns Ar principal
|
||||
.Op Fl V kvno
|
||||
.Op Fl -kvno= Ns Ar kvno
|
||||
.Op Fl e enctype
|
||||
.Op Fl -enctype= Ns Ar enctype
|
||||
.Xc
|
||||
.It remove Oo Fl p Ar principal Oc Oo Fl Fl principal= Ns Ar principal Oc \
|
||||
Oo Fl V kvno Oc Oo Fl Fl kvno= Ns Ar kvno Oc Oo Fl e enctype Oc \
|
||||
Oo Fl Fl enctype= Ns Ar enctype Oc
|
||||
Removes the specified key or keys. Not specifying a
|
||||
.Ar kvno
|
||||
removes keys with any version number. Not specifying an
|
||||
.Ar enctype
|
||||
removes keys of any type.
|
||||
.It rename Xo
|
||||
.Ar from-principal
|
||||
.Ar to-principal
|
||||
.Xc
|
||||
.It rename Ar from-principal Ar to-principal
|
||||
Renames all entries in the keytab that match the
|
||||
.Ar from-principal
|
||||
to
|
||||
.Ar to-principal .
|
||||
.It purge Xo
|
||||
.Op Fl -age= Ns Ar age
|
||||
.Xc
|
||||
.It purge Op Fl Fl age= Ns Ar age
|
||||
Removes all old versions of a key for which there is a newer version
|
||||
that is at least
|
||||
.Ar age
|
||||
(default one week) old.
|
||||
.It srvconvert
|
||||
.It srv2keytab Xo
|
||||
.Op Fl s Ar srvtab
|
||||
.Op Fl -srvtab= Ns Ar srvtab
|
||||
.Xc
|
||||
Converts the version 4 srvtab in
|
||||
.Ar srvtab
|
||||
to a version 5 keytab and stores it in
|
||||
.Ar keytab .
|
||||
Identical to:
|
||||
.Bd -ragged -offset indent
|
||||
.Li ktutil copy
|
||||
.Li krb4: Ns Ar srvtab
|
||||
.Ar keytab
|
||||
.Ed
|
||||
.It srvcreate
|
||||
.It key2srvtab Xo
|
||||
.Op Fl s Ar srvtab
|
||||
.Op Fl -srvtab= Ns Ar srvtab
|
||||
.Xc
|
||||
Converts the version 5 keytab in
|
||||
.Ar keytab
|
||||
to a version 4 srvtab and stores it in
|
||||
.Ar srvtab .
|
||||
Identical to:
|
||||
.Bd -ragged -offset indent
|
||||
.Li ktutil copy
|
||||
.Ar keytab
|
||||
.Li krb4: Ns Ar srvtab
|
||||
.Ed
|
||||
.El
|
||||
.Sh SEE ALSO
|
||||
.Xr kadmin 8
|
||||
|
@ -1,71 +1,71 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
#include <err.h>
|
||||
|
||||
RCSID("$Id: ktutil.c 15585 2005-07-07 21:52:04Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
static int help_flag;
|
||||
static int version_flag;
|
||||
int verbose_flag;
|
||||
char *keytab_string;
|
||||
char *keytab_string;
|
||||
static char keytab_buf[256];
|
||||
|
||||
static struct getargs args[] = {
|
||||
{
|
||||
{
|
||||
"version",
|
||||
0,
|
||||
arg_flag,
|
||||
&version_flag,
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{
|
||||
"help",
|
||||
'h',
|
||||
arg_flag,
|
||||
&help_flag,
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{
|
||||
"keytab",
|
||||
'k',
|
||||
arg_string,
|
||||
&keytab_string,
|
||||
"keytab",
|
||||
"keytab to operate on"
|
||||
{
|
||||
"help",
|
||||
'h',
|
||||
arg_flag,
|
||||
&help_flag,
|
||||
NULL,
|
||||
NULL
|
||||
},
|
||||
{
|
||||
"keytab",
|
||||
'k',
|
||||
arg_string,
|
||||
&keytab_string,
|
||||
"keytab",
|
||||
"keytab to operate on"
|
||||
},
|
||||
{
|
||||
"verbose",
|
||||
@ -101,7 +101,7 @@ ktutil_open_keytab(void)
|
||||
}
|
||||
if (verbose_flag)
|
||||
fprintf (stderr, "Using keytab %s\n", keytab_string);
|
||||
|
||||
|
||||
return keytab;
|
||||
}
|
||||
|
||||
@ -118,8 +118,11 @@ help(void *opt, int argc, char **argv)
|
||||
argv[0]);
|
||||
} else {
|
||||
if(c->func) {
|
||||
char *fake[] = { NULL, "--help", NULL };
|
||||
char shelp[] = "--help";
|
||||
char *fake[3];
|
||||
fake[0] = argv[0];
|
||||
fake[1] = shelp;
|
||||
fake[2] = NULL;
|
||||
(*c->func)(2, fake);
|
||||
fprintf(stderr, "\n");
|
||||
}
|
||||
|
71
admin/ktutil.cat8
Normal file
71
admin/ktutil.cat8
Normal file
@ -0,0 +1,71 @@
|
||||
|
||||
KTUTIL(8) BSD System Manager's Manual KTUTIL(8)
|
||||
|
||||
NNAAMMEE
|
||||
kkttuuttiill -- manage Kerberos keytabs
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
kkttuuttiill [--kk _k_e_y_t_a_b | ----kkeeyyttaabb==_k_e_y_t_a_b] [--vv | ----vveerrbboossee] [----vveerrssiioonn]
|
||||
[--hh | ----hheellpp] _c_o_m_m_a_n_d [_a_r_g_s]
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
kkttuuttiill is a program for managing keytabs. Supported options:
|
||||
|
||||
--vv, ----vveerrbboossee
|
||||
Verbose output.
|
||||
|
||||
_c_o_m_m_a_n_d can be one of the following:
|
||||
|
||||
add [--pp _p_r_i_n_c_i_p_a_l] [----pprriinncciippaall==_p_r_i_n_c_i_p_a_l] [--VV _k_v_n_o] [----kkvvnnoo==_k_v_n_o] [--ee
|
||||
_e_n_c_t_y_p_e] [----eennccttyyppee==_e_n_c_t_y_p_e] [--ww _p_a_s_s_w_o_r_d]
|
||||
[----ppaasssswwoorrdd==_p_a_s_s_w_o_r_d] [--rr] [----rraannddoomm] [--ss] [----nnoo--ssaalltt] [--HH]
|
||||
[----hheexx]
|
||||
Adds a key to the keytab. Options that are not specified will
|
||||
be prompted for. This requires that you know the password or
|
||||
the hex key of the principal to add; if what you really want
|
||||
is to add a new principal to the keytab, you should consider
|
||||
the _g_e_t command, which talks to the kadmin server.
|
||||
|
||||
change [--rr _r_e_a_l_m] [----rreeaallmm==_r_e_a_l_m] [----aa _h_o_s_t] [----aaddmmiinn--sseerrvveerr==_h_o_s_t] [----ss
|
||||
_p_o_r_t] [----sseerrvveerr--ppoorrtt==_p_o_r_t]
|
||||
Update one or several keys to new versions. By default, use
|
||||
the admin server for the realm of a keytab entry. Otherwise
|
||||
it will use the values specified by the options.
|
||||
|
||||
If no principals are given, all the ones in the keytab are
|
||||
updated.
|
||||
|
||||
copy _k_e_y_t_a_b_-_s_r_c _k_e_y_t_a_b_-_d_e_s_t
|
||||
Copies all the entries from _k_e_y_t_a_b_-_s_r_c to _k_e_y_t_a_b_-_d_e_s_t.
|
||||
|
||||
get [--pp _a_d_m_i_n _p_r_i_n_c_i_p_a_l] [----pprriinncciippaall==_a_d_m_i_n _p_r_i_n_c_i_p_a_l] [--ee _e_n_c_t_y_p_e]
|
||||
[----eennccttyyppeess==_e_n_c_t_y_p_e] [--rr _r_e_a_l_m] [----rreeaallmm==_r_e_a_l_m] [--aa _a_d_m_i_n
|
||||
_s_e_r_v_e_r] [----aaddmmiinn--sseerrvveerr==_a_d_m_i_n _s_e_r_v_e_r] [--ss _s_e_r_v_e_r _p_o_r_t]
|
||||
[----sseerrvveerr--ppoorrtt==_s_e_r_v_e_r _p_o_r_t] _p_r_i_n_c_i_p_a_l _._._.
|
||||
For each _p_r_i_n_c_i_p_a_l, generate a new key for it (creating it if
|
||||
it doesn't already exist), and put that key in the keytab.
|
||||
|
||||
If no _r_e_a_l_m is specified, the realm to operate on is taken
|
||||
from the first principal.
|
||||
|
||||
list [----kkeeyyss] [----ttiimmeessttaammpp]
|
||||
List the keys stored in the keytab.
|
||||
|
||||
remove [--pp _p_r_i_n_c_i_p_a_l] [----pprriinncciippaall==_p_r_i_n_c_i_p_a_l] [--VV --kkvvnnoo] [----kkvvnnoo==_k_v_n_o]
|
||||
[--ee --eennccttyyppee] [----eennccttyyppee==_e_n_c_t_y_p_e]
|
||||
Removes the specified key or keys. Not specifying a _k_v_n_o
|
||||
removes keys with any version number. Not specifying an
|
||||
_e_n_c_t_y_p_e removes keys of any type.
|
||||
|
||||
rename _f_r_o_m_-_p_r_i_n_c_i_p_a_l _t_o_-_p_r_i_n_c_i_p_a_l
|
||||
Renames all entries in the keytab that match the
|
||||
_f_r_o_m_-_p_r_i_n_c_i_p_a_l to _t_o_-_p_r_i_n_c_i_p_a_l.
|
||||
|
||||
purge [----aaggee==_a_g_e]
|
||||
Removes all old versions of a key for which there is a newer
|
||||
version that is at least _a_g_e (default one week) old.
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
kadmin(8)
|
||||
|
||||
HEIMDAL April 14, 2005 HEIMDAL
|
@ -1,46 +1,45 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/*
|
||||
* $Id: ktutil_locl.h 14799 2005-04-15 05:02:39Z lha $
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
#ifndef __KTUTIL_LOCL_H__
|
||||
#define __KTUTIL_LOCL_H__
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -66,7 +65,7 @@
|
||||
extern krb5_context context;
|
||||
|
||||
extern int verbose_flag;
|
||||
extern char *keytab_string;
|
||||
extern char *keytab_string;
|
||||
|
||||
krb5_keytab ktutil_open_keytab(void);
|
||||
|
||||
|
80
admin/list.c
80
admin/list.c
@ -1,40 +1,40 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
#include <rtbl.h>
|
||||
|
||||
RCSID("$Id: list.c 21745 2007-07-31 16:11:25Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
static int
|
||||
do_list(struct list_options *opt, const char *keytab_str)
|
||||
@ -51,7 +51,7 @@ do_list(struct list_options *opt, const char *keytab_str)
|
||||
char buf[1024];
|
||||
keytab_str += 4;
|
||||
ret = 0;
|
||||
while (strsep_copy((const char**)&keytab_str, ",",
|
||||
while (strsep_copy((const char**)&keytab_str, ",",
|
||||
buf, sizeof(buf)) != -1) {
|
||||
if(flag)
|
||||
printf("\n");
|
||||
@ -76,7 +76,7 @@ do_list(struct list_options *opt, const char *keytab_str)
|
||||
}
|
||||
|
||||
printf ("%s:\n\n", keytab_str);
|
||||
|
||||
|
||||
table = rtbl_create();
|
||||
rtbl_add_column_by_id(table, 0, "Vno", RTBL_ALIGN_RIGHT);
|
||||
rtbl_add_column_by_id(table, 1, "Type", 0);
|
||||
@ -85,15 +85,16 @@ do_list(struct list_options *opt, const char *keytab_str)
|
||||
rtbl_add_column_by_id(table, 3, "Date", 0);
|
||||
if(opt->keys_flag)
|
||||
rtbl_add_column_by_id(table, 4, "Key", 0);
|
||||
rtbl_add_column_by_id(table, 5, "Aliases", 0);
|
||||
rtbl_set_separator(table, " ");
|
||||
|
||||
while((ret = krb5_kt_next_entry(context, keytab, &entry, &cursor)) == 0){
|
||||
while(krb5_kt_next_entry(context, keytab, &entry, &cursor) == 0){
|
||||
char buf[1024], *s;
|
||||
|
||||
snprintf(buf, sizeof(buf), "%d", entry.vno);
|
||||
rtbl_add_column_entry_by_id(table, 0, buf);
|
||||
|
||||
ret = krb5_enctype_to_string(context,
|
||||
ret = krb5_enctype_to_string(context,
|
||||
entry.keyblock.keytype, &s);
|
||||
if (ret != 0) {
|
||||
snprintf(buf, sizeof(buf), "unknown (%d)", entry.keyblock.keytype);
|
||||
@ -107,12 +108,12 @@ do_list(struct list_options *opt, const char *keytab_str)
|
||||
rtbl_add_column_entry_by_id(table, 2, buf);
|
||||
|
||||
if (opt->timestamp_flag) {
|
||||
krb5_format_time(context, entry.timestamp, buf,
|
||||
krb5_format_time(context, entry.timestamp, buf,
|
||||
sizeof(buf), FALSE);
|
||||
rtbl_add_column_entry_by_id(table, 3, buf);
|
||||
}
|
||||
if(opt->keys_flag) {
|
||||
int i;
|
||||
size_t i;
|
||||
s = malloc(2 * entry.keyblock.keyvalue.length + 1);
|
||||
if (s == NULL) {
|
||||
krb5_warnx(context, "malloc failed");
|
||||
@ -120,11 +121,24 @@ do_list(struct list_options *opt, const char *keytab_str)
|
||||
goto out;
|
||||
}
|
||||
for(i = 0; i < entry.keyblock.keyvalue.length; i++)
|
||||
snprintf(s + 2 * i, 3, "%02x",
|
||||
snprintf(s + 2 * i, 3, "%02x",
|
||||
((unsigned char*)entry.keyblock.keyvalue.data)[i]);
|
||||
rtbl_add_column_entry_by_id(table, 4, s);
|
||||
free(s);
|
||||
}
|
||||
if (entry.aliases) {
|
||||
unsigned int i;
|
||||
struct rk_strpool *p = NULL;
|
||||
|
||||
for (i = 0; i< entry.aliases->len; i++) {
|
||||
krb5_unparse_name_fixed(context, entry.principal, buf, sizeof(buf));
|
||||
rk_strpoolprintf(p, "%s%s", buf,
|
||||
i + 1 < entry.aliases->len ? ", " : "");
|
||||
|
||||
}
|
||||
rtbl_add_column_entry_by_id(table, 5, rk_strpoolcollect(p));
|
||||
}
|
||||
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
}
|
||||
ret = krb5_kt_end_seq_get(context, keytab, &cursor);
|
||||
|
@ -1,39 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
|
||||
RCSID("$Id: purge.c 14261 2004-09-23 14:46:43Z joda $");
|
||||
RCSID("$Id$");
|
||||
|
||||
/*
|
||||
* keep track of the highest version for every principal.
|
||||
@ -125,11 +125,11 @@ kt_purge(struct purge_options *opt, int argc, char **argv)
|
||||
goto out;
|
||||
}
|
||||
|
||||
while((ret = krb5_kt_next_entry(context, keytab, &entry, &cursor)) == 0) {
|
||||
while(krb5_kt_next_entry(context, keytab, &entry, &cursor) == 0) {
|
||||
add_entry (entry.principal, entry.vno, entry.timestamp, &head);
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
}
|
||||
ret = krb5_kt_end_seq_get(context, keytab, &cursor);
|
||||
krb5_kt_end_seq_get(context, keytab, &cursor);
|
||||
|
||||
judgement_day = time (NULL);
|
||||
|
||||
@ -139,7 +139,7 @@ kt_purge(struct purge_options *opt, int argc, char **argv)
|
||||
goto out;
|
||||
}
|
||||
|
||||
while((ret = krb5_kt_next_entry(context, keytab, &entry, &cursor)) == 0) {
|
||||
while(krb5_kt_next_entry(context, keytab, &entry, &cursor) == 0) {
|
||||
struct e *e = get_entry (entry.principal, head);
|
||||
|
||||
if (e == NULL) {
|
||||
|
@ -1,39 +1,39 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
|
||||
RCSID("$Id: remove.c 17004 2006-04-07 13:06:37Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
int
|
||||
kt_remove(struct remove_options *opt, int argc, char **argv)
|
||||
@ -66,7 +66,7 @@ kt_remove(struct remove_options *opt, int argc, char **argv)
|
||||
}
|
||||
}
|
||||
if (!principal && !enctype && !opt->kvno_integer) {
|
||||
krb5_warnx(context,
|
||||
krb5_warnx(context,
|
||||
"You must give at least one of "
|
||||
"principal, enctype or kvno.");
|
||||
ret = EINVAL;
|
||||
|
@ -1,42 +1,42 @@
|
||||
/*
|
||||
* Copyright (c) 2001-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2001-2004 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include "ktutil_locl.h"
|
||||
|
||||
RCSID("$Id: rename.c 14260 2004-09-23 14:45:29Z joda $");
|
||||
RCSID("$Id$");
|
||||
|
||||
int
|
||||
kt_rename(void *opt, int argc, char **argv)
|
||||
kt_rename(struct rename_options *opt, int argc, char **argv)
|
||||
{
|
||||
krb5_error_code ret = 0;
|
||||
krb5_keytab_entry entry;
|
||||
@ -89,13 +89,15 @@ kt_rename(void *opt, int argc, char **argv)
|
||||
krb5_warn(context, ret, "adding entry");
|
||||
break;
|
||||
}
|
||||
entry.principal = from_princ;
|
||||
ret = krb5_kt_remove_entry(context, keytab, &entry);
|
||||
if(ret) {
|
||||
entry.principal = NULL;
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
krb5_warn(context, ret, "removing entry");
|
||||
break;
|
||||
if (opt->delete_flag) {
|
||||
entry.principal = from_princ;
|
||||
ret = krb5_kt_remove_entry(context, keytab, &entry);
|
||||
if(ret) {
|
||||
entry.principal = NULL;
|
||||
krb5_kt_free_entry(context, &entry);
|
||||
krb5_warn(context, ret, "removing entry");
|
||||
break;
|
||||
}
|
||||
}
|
||||
entry.principal = NULL;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.am 17775 2006-06-30 20:26:15Z lha $
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
@ -25,3 +25,5 @@ SUBDIRS = \
|
||||
kx \
|
||||
kf \
|
||||
$(dir_dce)
|
||||
|
||||
EXTRA_DIST = NTMakefile
|
251
appl/Makefile.in
251
appl/Makefile.in
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,15 +15,16 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# $Id: Makefile.am 17775 2006-06-30 20:26:15Z lha $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
|
||||
# $Id$
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -43,7 +45,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
subdir = appl
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 \
|
||||
$(top_srcdir)/cf/broken-getaddrinfo.m4 \
|
||||
$(top_srcdir)/cf/broken-glob.m4 \
|
||||
$(top_srcdir)/cf/broken-realloc.m4 \
|
||||
@ -58,7 +60,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
|
||||
$(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
|
||||
$(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
|
||||
$(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/dispatch.m4 $(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs2.m4 \
|
||||
$(top_srcdir)/cf/find-func.m4 \
|
||||
@ -72,9 +74,12 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/krb-readline.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-spwd.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-winsize.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
|
||||
$(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
|
||||
$(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/libtool.m4 \
|
||||
$(top_srcdir)/cf/ltoptions.m4 $(top_srcdir)/cf/ltsugar.m4 \
|
||||
$(top_srcdir)/cf/ltversion.m4 $(top_srcdir)/cf/lt~obsolete.m4 \
|
||||
$(top_srcdir)/cf/mips-abi.m4 $(top_srcdir)/cf/misc.m4 \
|
||||
$(top_srcdir)/cf/need-proto.m4 $(top_srcdir)/cf/osfc2.m4 \
|
||||
$(top_srcdir)/cf/otp.m4 $(top_srcdir)/cf/pkg.m4 \
|
||||
$(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
|
||||
$(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
|
||||
$(top_srcdir)/cf/roken-frag.m4 \
|
||||
@ -82,14 +87,13 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
|
||||
$(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
|
||||
$(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
@ -101,58 +105,95 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = afsutil ftp login otp gssmask popper push rsh rcp su \
|
||||
xnlock telnet test kx kf dceutils
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASN1_COMPILE = @ASN1_COMPILE@
|
||||
ASN1_COMPILE_DEP = @ASN1_COMPILE_DEP@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CAPNG_CFLAGS = @CAPNG_CFLAGS@
|
||||
CAPNG_LIBS = @CAPNG_LIBS@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE_ET = @COMPILE_ET@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBHEADER = @DBHEADER@
|
||||
DBLIB = @DBLIB@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIR_com_err = @DIR_com_err@
|
||||
DIR_hcrypto = @DIR_hcrypto@
|
||||
DIR_hdbdir = @DIR_hdbdir@
|
||||
DIR_roken = @DIR_roken@
|
||||
ECHO = @ECHO@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INCLUDES_roken = @INCLUDES_roken@
|
||||
INCLUDE_hcrypto = @INCLUDE_hcrypto@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
INCLUDE_libedit = @INCLUDE_libedit@
|
||||
INCLUDE_libintl = @INCLUDE_libintl@
|
||||
INCLUDE_openldap = @INCLUDE_openldap@
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
INCLUDE_sqlite3 = @INCLUDE_sqlite3@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
|
||||
LEX = @LEX@
|
||||
@ -176,10 +217,11 @@ LIB_crypt = @LIB_crypt@
|
||||
LIB_db_create = @LIB_db_create@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dispatch_async_f = @LIB_dispatch_async_f@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_dns_search = @LIB_dns_search@
|
||||
LIB_door_create = @LIB_door_create@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_freeaddrinfo = @LIB_freeaddrinfo@
|
||||
LIB_gai_strerror = @LIB_gai_strerror@
|
||||
LIB_getaddrinfo = @LIB_getaddrinfo@
|
||||
@ -196,6 +238,8 @@ LIB_hesiod = @LIB_hesiod@
|
||||
LIB_hstrerror = @LIB_hstrerror@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
LIB_libedit = @LIB_libedit@
|
||||
LIB_libintl = @LIB_libintl@
|
||||
LIB_loadquery = @LIB_loadquery@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
@ -211,31 +255,45 @@ LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_sqlite3 = @LIB_sqlite3@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_AFS = @NO_AFS@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
|
||||
PTHREADS_LIBS = @PTHREADS_LIBS@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
PTHREAD_LDADD = @PTHREAD_LDADD@
|
||||
PTHREAD_LIBADD = @PTHREAD_LIBADD@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLC = @SLC@
|
||||
SLC_DEP = @SLC_DEP@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VERSIONING = @VERSIONING@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
@ -250,10 +308,12 @@ abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
@ -294,29 +354,34 @@ psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken)
|
||||
SUFFIXES = .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = $(INCLUDES_roken)
|
||||
@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
CP = cp
|
||||
buildinclude = $(top_builddir)/include
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
libexec_heimdaldir = $(libexecdir)/heimdal
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
|
||||
@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
|
||||
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
|
||||
LIB_heimbase = $(top_builddir)/base/libheimbase.la
|
||||
@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
|
||||
@OTP_TRUE@dir_otp = otp
|
||||
@DCE_TRUE@dir_dce = dceutils
|
||||
@ -338,22 +403,23 @@ SUBDIRS = \
|
||||
kf \
|
||||
$(dir_dce)
|
||||
|
||||
EXTRA_DIST = NTMakefile
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c
|
||||
.SUFFIXES: .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps appl/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign --ignore-deps appl/Makefile
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign appl/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign appl/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -371,6 +437,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
@ -385,7 +452,7 @@ clean-libtool:
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@ -402,7 +469,7 @@ $(RECURSIVE_TARGETS):
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
@ -410,7 +477,7 @@ $(RECURSIVE_TARGETS):
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@ -436,16 +503,16 @@ $(RECURSIVE_CLEAN_TARGETS):
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
@ -453,14 +520,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
@ -472,39 +539,43 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
@ -525,29 +596,44 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
@ -581,6 +667,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -599,6 +686,8 @@ dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
@ -606,23 +695,31 @@ info-am:
|
||||
install-data-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
@ -644,9 +741,9 @@ ps-am:
|
||||
uninstall-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-data-am install-exec-am install-strip uninstall-am
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \
|
||||
ctags-recursive install-am install-data-am install-exec-am \
|
||||
install-strip tags-recursive uninstall-am
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am all-local check check-am check-local clean \
|
||||
@ -732,6 +829,9 @@ check-local::
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
.hx.h:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
@ -817,7 +917,7 @@ uninstall-hook: uninstall-cat-mans
|
||||
check-valgrind:
|
||||
tobjdir=`cd $(top_builddir) && pwd` ; \
|
||||
tsrcdir=`cd $(top_srcdir) && pwd` ; \
|
||||
env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
|
||||
env TESTS_ENVIRONMENT="$${tsrcdir}/cf/maybe-valgrind.sh -s $${tsrcdir} -o $${tobjdir}" make check
|
||||
|
||||
#
|
||||
# Target to please samba build farm, builds distfiles in-tree.
|
||||
@ -830,6 +930,7 @@ distdir-in-tree: $(DISTFILES) $(INFO_DEPS)
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) distdir-in-tree) ; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
35
appl/NTMakefile
Normal file
35
appl/NTMakefile
Normal file
@ -0,0 +1,35 @@
|
||||
########################################################################
|
||||
#
|
||||
# Copyright (c) 2009, Secure Endpoints Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
# COPYRIGHT HOLDER 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.
|
||||
#
|
||||
|
||||
RELDIR=appl
|
||||
|
||||
!include ../windows/NTMakefile.w32
|
||||
|
@ -1,4 +1,4 @@
|
||||
2007-04-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2007-04-11 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* pagsh.1,afslog.1: - options must be lexicographically ordered;
|
||||
again, options without arguments must be placed before options
|
||||
@ -8,11 +8,11 @@
|
||||
|
||||
From Igor Sobrado.
|
||||
|
||||
2006-10-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2006-10-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am: Add man_MANS to EXTRA_DIST
|
||||
|
||||
2006-01-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2006-01-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* afslog.1: Document options to allow select principal or
|
||||
credential cache when doing afslog.
|
||||
@ -20,7 +20,7 @@
|
||||
* afslog.c: Add options to allow select principal or credential
|
||||
cache when doing afslog.
|
||||
|
||||
2005-02-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-02-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am: man_MANS += pagsh.1
|
||||
|
||||
@ -30,12 +30,12 @@
|
||||
|
||||
* pagsh.1: manpage for pagsh
|
||||
|
||||
2004-09-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-09-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* afslog.c: use negative string help string for arg_negative_flag
|
||||
Pointed out by Harald Barth
|
||||
|
||||
2004-07-27 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-07-27 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* pagsh.c: use setprogname, if we stripped off -c, try use the
|
||||
fallback code
|
||||
@ -44,22 +44,22 @@
|
||||
|
||||
* pagsh.c: mkstemp formats must end in exactly six X's
|
||||
|
||||
2003-07-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-07-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* afslog.c (do_afslog): is cell is unset, set it "<default cell>"
|
||||
for error printing
|
||||
|
||||
* pagsh.c: unconditionally set KRBTKFILE
|
||||
|
||||
2003-04-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-04-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* afslog.c (log_func): drop the error number
|
||||
|
||||
2003-04-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-04-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* afslog.c: set kafs log function if verbose is turned on
|
||||
|
||||
2003-03-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-03-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am (LDADD): use LIB_kafs
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.am 20466 2007-04-20 08:29:05Z lha $
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
@ -19,4 +19,4 @@ LDADD = $(LIB_kafs) \
|
||||
$(LIB_hcrypto) \
|
||||
$(LIB_roken)
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
EXTRA_DIST = NTMakefile $(man_MANS)
|
||||
|
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,16 +15,17 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# $Id: Makefile.am 20466 2007-04-20 08:29:05Z lha $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
|
||||
# $Id$
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -45,7 +47,7 @@ bin_PROGRAMS = afslog$(EXEEXT) pagsh$(EXEEXT)
|
||||
subdir = appl/afsutil
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 \
|
||||
$(top_srcdir)/cf/broken-getaddrinfo.m4 \
|
||||
$(top_srcdir)/cf/broken-glob.m4 \
|
||||
$(top_srcdir)/cf/broken-realloc.m4 \
|
||||
@ -60,7 +62,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
|
||||
$(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
|
||||
$(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
|
||||
$(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/dispatch.m4 $(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs2.m4 \
|
||||
$(top_srcdir)/cf/find-func.m4 \
|
||||
@ -74,9 +76,12 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/krb-readline.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-spwd.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-winsize.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
|
||||
$(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
|
||||
$(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/libtool.m4 \
|
||||
$(top_srcdir)/cf/ltoptions.m4 $(top_srcdir)/cf/ltsugar.m4 \
|
||||
$(top_srcdir)/cf/ltversion.m4 $(top_srcdir)/cf/lt~obsolete.m4 \
|
||||
$(top_srcdir)/cf/mips-abi.m4 $(top_srcdir)/cf/misc.m4 \
|
||||
$(top_srcdir)/cf/need-proto.m4 $(top_srcdir)/cf/osfc2.m4 \
|
||||
$(top_srcdir)/cf/otp.m4 $(top_srcdir)/cf/pkg.m4 \
|
||||
$(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
|
||||
$(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
|
||||
$(top_srcdir)/cf/roken-frag.m4 \
|
||||
@ -84,14 +89,14 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
|
||||
$(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
|
||||
$(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am_afslog_OBJECTS = afslog.$(OBJEXT)
|
||||
afslog_OBJECTS = $(am_afslog_OBJECTS)
|
||||
@ -110,9 +115,9 @@ pagsh_DEPENDENCIES = $(am__DEPENDENCIES_2) $(am__DEPENDENCIES_1) \
|
||||
$(top_builddir)/lib/krb5/libkrb5.la \
|
||||
$(top_builddir)/lib/asn1/libasn1.la $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1)
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)/include@am__isrc@
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
@ -124,6 +129,27 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(afslog_SOURCES) $(pagsh_SOURCES)
|
||||
DIST_SOURCES = $(afslog_SOURCES) $(pagsh_SOURCES)
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
man1dir = $(mandir)/man1
|
||||
MANS = $(man_MANS)
|
||||
ETAGS = etags
|
||||
@ -133,49 +159,58 @@ ACLOCAL = @ACLOCAL@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASN1_COMPILE = @ASN1_COMPILE@
|
||||
ASN1_COMPILE_DEP = @ASN1_COMPILE_DEP@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CAPNG_CFLAGS = @CAPNG_CFLAGS@
|
||||
CAPNG_LIBS = @CAPNG_LIBS@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE_ET = @COMPILE_ET@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBHEADER = @DBHEADER@
|
||||
DBLIB = @DBLIB@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIR_com_err = @DIR_com_err@
|
||||
DIR_hcrypto = @DIR_hcrypto@
|
||||
DIR_hdbdir = @DIR_hdbdir@
|
||||
DIR_roken = @DIR_roken@
|
||||
ECHO = @ECHO@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INCLUDES_roken = @INCLUDES_roken@
|
||||
INCLUDE_hcrypto = @INCLUDE_hcrypto@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
INCLUDE_libedit = @INCLUDE_libedit@
|
||||
INCLUDE_libintl = @INCLUDE_libintl@
|
||||
INCLUDE_openldap = @INCLUDE_openldap@
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
INCLUDE_sqlite3 = @INCLUDE_sqlite3@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
|
||||
LEX = @LEX@
|
||||
@ -199,10 +234,11 @@ LIB_crypt = @LIB_crypt@
|
||||
LIB_db_create = @LIB_db_create@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dispatch_async_f = @LIB_dispatch_async_f@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_dns_search = @LIB_dns_search@
|
||||
LIB_door_create = @LIB_door_create@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_freeaddrinfo = @LIB_freeaddrinfo@
|
||||
LIB_gai_strerror = @LIB_gai_strerror@
|
||||
LIB_getaddrinfo = @LIB_getaddrinfo@
|
||||
@ -219,6 +255,8 @@ LIB_hesiod = @LIB_hesiod@
|
||||
LIB_hstrerror = @LIB_hstrerror@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
LIB_libedit = @LIB_libedit@
|
||||
LIB_libintl = @LIB_libintl@
|
||||
LIB_loadquery = @LIB_loadquery@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
@ -234,31 +272,45 @@ LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_sqlite3 = @LIB_sqlite3@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_AFS = @NO_AFS@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
|
||||
PTHREADS_LIBS = @PTHREADS_LIBS@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
PTHREAD_LDADD = @PTHREAD_LDADD@
|
||||
PTHREAD_LIBADD = @PTHREAD_LIBADD@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLC = @SLC@
|
||||
SLC_DEP = @SLC_DEP@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VERSIONING = @VERSIONING@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
@ -273,10 +325,12 @@ abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
@ -317,30 +371,34 @@ psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken) \
|
||||
$(INCLUDE_krb4)
|
||||
SUFFIXES = .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = $(INCLUDES_roken) $(INCLUDE_krb4)
|
||||
@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
CP = cp
|
||||
buildinclude = $(top_builddir)/include
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
libexec_heimdaldir = $(libexecdir)/heimdal
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
|
||||
@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
|
||||
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
|
||||
LIB_heimbase = $(top_builddir)/base/libheimbase.la
|
||||
@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
|
||||
afslog_SOURCES = afslog.c
|
||||
pagsh_SOURCES = pagsh.c
|
||||
@ -352,23 +410,23 @@ LDADD = $(LIB_kafs) \
|
||||
$(LIB_hcrypto) \
|
||||
$(LIB_roken)
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
EXTRA_DIST = NTMakefile $(man_MANS)
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
|
||||
.SUFFIXES: .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps appl/afsutil/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign --ignore-deps appl/afsutil/Makefile
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign appl/afsutil/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign appl/afsutil/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -386,34 +444,50 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
|| test -f $$p1 \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p || test -f $$p1; \
|
||||
then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' `; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bindir)" && rm -f $$files
|
||||
|
||||
clean-binPROGRAMS:
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f $$p $$f"; \
|
||||
rm -f $$p $$f ; \
|
||||
done
|
||||
@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list || exit $$?; \
|
||||
test -n "$(EXEEXT)" || exit 0; \
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
afslog$(EXEEXT): $(afslog_OBJECTS) $(afslog_DEPENDENCIES)
|
||||
@rm -f afslog$(EXEEXT)
|
||||
$(LINK) $(afslog_OBJECTS) $(afslog_LDADD) $(LIBS)
|
||||
@ -427,115 +501,140 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/afslog.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pagsh.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
$(COMPILE) -c $<
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(LTCOMPILE) -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-man1: $(man1_MANS) $(man_MANS)
|
||||
install-man1: $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
|
||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
@list=''; test -n "$(man1dir)" || exit 0; \
|
||||
{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.1[a-z]*$$/p'; \
|
||||
} | while read p; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; echo "$$p"; \
|
||||
done | \
|
||||
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
|
||||
sed 'N;N;s,\n, ,g' | { \
|
||||
list=; while read file base inst; do \
|
||||
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
|
||||
fi; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||
else file=$$i; fi; \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
1*) ;; \
|
||||
*) ext='1' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||
done
|
||||
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
|
||||
done; }
|
||||
|
||||
uninstall-man1:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
1*) ;; \
|
||||
*) ext='1' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||
done
|
||||
@list=''; test -n "$(man1dir)" || exit 0; \
|
||||
files=`{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.1[a-z]*$$/p'; \
|
||||
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||
test -z "$$files" || { \
|
||||
echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@list='$(MANS)'; if test -n "$$list"; then \
|
||||
list=`for p in $$list; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
|
||||
if test -n "$$list" && \
|
||||
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
|
||||
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
|
||||
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
|
||||
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
|
||||
echo " typically \`make maintainer-clean' will remove them" >&2; \
|
||||
exit 1; \
|
||||
else :; fi; \
|
||||
else :; fi
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@ -551,13 +650,17 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@ -592,6 +695,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -601,6 +705,7 @@ clean: clean-am
|
||||
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
@ -611,6 +716,8 @@ dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -618,26 +725,35 @@ info-am:
|
||||
install-data-am: install-man
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man: install-man1
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
@ -657,11 +773,10 @@ ps-am:
|
||||
uninstall-am: uninstall-binPROGRAMS uninstall-man
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||
|
||||
uninstall-man: uninstall-man1
|
||||
|
||||
.MAKE: install-am install-data-am install-exec-am install-strip \
|
||||
uninstall-am
|
||||
.MAKE: check-am install-am install-data-am install-exec-am \
|
||||
install-strip uninstall-am
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am all-local check check-am check-local \
|
||||
clean clean-binPROGRAMS clean-generic clean-libtool ctags \
|
||||
@ -748,6 +863,9 @@ check-local::
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
.hx.h:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
@ -833,7 +951,7 @@ uninstall-hook: uninstall-cat-mans
|
||||
check-valgrind:
|
||||
tobjdir=`cd $(top_builddir) && pwd` ; \
|
||||
tsrcdir=`cd $(top_srcdir) && pwd` ; \
|
||||
env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
|
||||
env TESTS_ENVIRONMENT="$${tsrcdir}/cf/maybe-valgrind.sh -s $${tsrcdir} -o $${tobjdir}" make check
|
||||
|
||||
#
|
||||
# Target to please samba build farm, builds distfiles in-tree.
|
||||
@ -846,6 +964,7 @@ distdir-in-tree: $(DISTFILES) $(INFO_DEPS)
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) distdir-in-tree) ; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
35
appl/afsutil/NTMakefile
Normal file
35
appl/afsutil/NTMakefile
Normal file
@ -0,0 +1,35 @@
|
||||
########################################################################
|
||||
#
|
||||
# Copyright (c) 2009, Secure Endpoints Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
# COPYRIGHT HOLDER 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.
|
||||
#
|
||||
|
||||
RELDIR=appl\afsutil
|
||||
|
||||
!include ../../windows/NTMakefile.w32
|
||||
|
@ -1,66 +1,65 @@
|
||||
.\" Copyright (c) 2002 - 2007 Kungliga Tekniska Högskolan
|
||||
.\" (Royal Institute of Technology, Stockholm, Sweden).
|
||||
.\" All rights reserved.
|
||||
.\" Copyright (c) 2002 - 2007 Kungliga Tekniska Högskolan
|
||||
.\" (Royal Institute of Technology, Stockholm, Sweden).
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\"
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\"
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" 3. Neither the name of the Institute nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\" 3. Neither the name of the Institute nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id: afslog.1 20310 2007-04-11 11:22:23Z lha $
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd November 26, 2002
|
||||
.Dt AFSLOG 1
|
||||
.Os HEIMDAL
|
||||
.Sh NAME
|
||||
.Nm afslog
|
||||
.Nd
|
||||
obtain AFS tokens
|
||||
.Nd obtain AFS tokens
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl h | Fl -help
|
||||
.Op Fl -no-v4
|
||||
.Op Fl -no-v5
|
||||
.Op Fl u | Fl -unlog
|
||||
.Op Fl v | Fl -verbose
|
||||
.Op Fl -version
|
||||
.Op Fl h | Fl Fl help
|
||||
.Op Fl Fl no-v4
|
||||
.Op Fl Fl no-v5
|
||||
.Op Fl u | Fl Fl unlog
|
||||
.Op Fl v | Fl Fl verbose
|
||||
.Op Fl Fl version
|
||||
.Oo Fl c Ar cell \*(Ba Xo
|
||||
.Fl -cell= Ns Ar cell
|
||||
.Fl Fl cell= Ns Ar cell
|
||||
.Xc
|
||||
.Oc
|
||||
.Oo Fl k Ar realm \*(Ba Xo
|
||||
.Fl -realm= Ns Ar realm
|
||||
.Fl Fl realm= Ns Ar realm
|
||||
.Xc
|
||||
.Oc
|
||||
.Oo Fl P Ar principal \*(Ba Xo
|
||||
.Fl -principal= Ns Ar principal
|
||||
.Fl Fl principal= Ns Ar principal
|
||||
.Xc
|
||||
.Oc
|
||||
.Bk -words
|
||||
.Oo Fl p Ar path \*(Ba Xo
|
||||
.Fl -file= Ns Ar path
|
||||
.Fl Fl file= Ns Ar path
|
||||
.Xc
|
||||
.Oc
|
||||
.Ek
|
||||
@ -71,57 +70,57 @@ obtains AFS tokens for a number of cells. What cells to get tokens for
|
||||
can either be specified as an explicit list, as file paths to get
|
||||
tokens for, or be left unspecified, in which case
|
||||
.Nm
|
||||
will use whatever magic
|
||||
will use whatever magic
|
||||
.Xr krb_afslog 3
|
||||
decides upon.
|
||||
.Pp
|
||||
Supported options:
|
||||
.Bl -tag -width Ds
|
||||
.It Fl -no-v4
|
||||
.It Fl Fl no-v4
|
||||
This makes
|
||||
.Nm
|
||||
not try using Kerberos 4.
|
||||
.It Fl -no-v5
|
||||
.It Fl Fl no-v5
|
||||
This makes
|
||||
.Nm
|
||||
not try using Kerberos 5.
|
||||
.It Xo
|
||||
.Fl P Ar principal ,
|
||||
.Fl -principal Ar principal
|
||||
.Fl Fl principal Ar principal
|
||||
.Xc
|
||||
select what Kerberos 5 principal to use.
|
||||
.It Fl -cache Ar cache
|
||||
.It Fl Fl cache Ar cache
|
||||
select what Kerberos 5 credential cache to use.
|
||||
.Fl -principal
|
||||
.Fl Fl principal
|
||||
overrides this option.
|
||||
.It Xo
|
||||
.Fl u ,
|
||||
.Fl -unlog
|
||||
.Fl Fl unlog
|
||||
.Xc
|
||||
Destroy tokens instead of obtaining new. If this is specified, all
|
||||
other options are ignored (except for
|
||||
.Fl -help
|
||||
.Fl Fl help
|
||||
and
|
||||
.Fl -version ) .
|
||||
.Fl Fl version ) .
|
||||
.It Xo
|
||||
.Fl v ,
|
||||
.Fl -verbose
|
||||
.Fl Fl verbose
|
||||
.Xc
|
||||
Adds more verbosity for what is actually going on.
|
||||
.It Xo
|
||||
.Fl c Ar cell,
|
||||
.Fl -cell= Ns Ar cell
|
||||
.Fl Fl cell= Ns Ar cell
|
||||
.Xc
|
||||
This specified one or more cell names to get tokens for.
|
||||
.It Xo
|
||||
.Fl k Ar realm ,
|
||||
.Fl -realm= Ns Ar realm
|
||||
.Fl Fl realm= Ns Ar realm
|
||||
.Xc
|
||||
This is the Kerberos realm the AFS servers live in, this should
|
||||
normally not be specified.
|
||||
.It Xo
|
||||
.Fl p Ar path ,
|
||||
.Fl -file= Ns Ar path
|
||||
.Fl Fl file= Ns Ar path
|
||||
.Xc
|
||||
This specified one or more file paths for which tokens should be
|
||||
obtained.
|
||||
@ -132,22 +131,22 @@ Instead of using
|
||||
and
|
||||
.Fl p ,
|
||||
you may also pass a list of cells and file paths after any other
|
||||
options. These arguments are considered files if they are either
|
||||
options. These arguments are considered files if they are either
|
||||
the strings
|
||||
.Do . Dc
|
||||
or
|
||||
.Dq ..
|
||||
.Dq ..
|
||||
or they contain a slash, or if there exists a file by that name.
|
||||
.Sh EXAMPLES
|
||||
Assuming that there is no file called
|
||||
Assuming that there is no file called
|
||||
.Dq openafs.org
|
||||
in the current directory, and that
|
||||
in the current directory, and that
|
||||
.Pa /afs/openafs.org
|
||||
points to that cell, the follwing should be identical:
|
||||
.Bd -literal -offset indent
|
||||
$ afslog -c openafs.org
|
||||
$ afslog openafs.org
|
||||
$ afslog /afs/openafs.org/some/file
|
||||
.Ed
|
||||
.Ed
|
||||
.Sh SEE ALSO
|
||||
.Xr krb_afslog 3
|
||||
|
@ -1,47 +1,44 @@
|
||||
/*
|
||||
* Copyright (c) 1997-2003 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997-2003 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
RCSID("$Id: afslog.c 16438 2006-01-03 09:27:54Z lha $");
|
||||
RCSID("$Id$");
|
||||
#endif
|
||||
#include <ctype.h>
|
||||
#ifdef KRB5
|
||||
#include <krb5.h>
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
#include <krb.h>
|
||||
#endif
|
||||
#include <kafs.h>
|
||||
#include <roken.h>
|
||||
#include <getarg.h>
|
||||
@ -54,9 +51,6 @@ static char *realm;
|
||||
static getarg_strings files;
|
||||
static int unlog_flag;
|
||||
static int verbose;
|
||||
#ifdef KRB4
|
||||
static int use_krb4 = 1;
|
||||
#endif
|
||||
#ifdef KRB5
|
||||
static char *client_string;
|
||||
static char *cache_string;
|
||||
@ -68,9 +62,6 @@ struct getargs args[] = {
|
||||
{ "file", 'p', arg_strings, &files, "files to get tokens for", "path" },
|
||||
{ "realm", 'k', arg_string, &realm, "realm for afs cell", "realm" },
|
||||
{ "unlog", 'u', arg_flag, &unlog_flag, "remove tokens" },
|
||||
#ifdef KRB4
|
||||
{ "v4", 0, arg_negative_flag, &use_krb4, "don't use Kerberos 4" },
|
||||
#endif
|
||||
#ifdef KRB5
|
||||
{ "principal",'P',arg_string,&client_string,"principal to use","principal"},
|
||||
{ "cache", 0, arg_string, &cache_string, "ccache to use", "cache"},
|
||||
@ -189,9 +180,9 @@ afslog_file(const char *path)
|
||||
static int
|
||||
do_afslog(const char *cell)
|
||||
{
|
||||
int k5ret, k4ret;
|
||||
int k5ret;
|
||||
|
||||
k5ret = k4ret = 0;
|
||||
k5ret = 0;
|
||||
|
||||
#ifdef KRB5
|
||||
if(context != NULL && id != NULL && use_krb5) {
|
||||
@ -199,25 +190,14 @@ do_afslog(const char *cell)
|
||||
if(k5ret == 0)
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#if KRB4
|
||||
if (use_krb4) {
|
||||
k4ret = krb_afslog(cell, realm);
|
||||
if(k4ret == 0)
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
if (cell == NULL)
|
||||
cell = "<default cell>";
|
||||
#ifdef KRB5
|
||||
if (k5ret)
|
||||
warnx("krb5_afslog(%s): %s", cell, krb5_get_err_text(context, k5ret));
|
||||
krb5_warn(context, k5ret, "krb5_afslog(%s)", cell);
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
if (k4ret)
|
||||
warnx("krb_afslog(%s): %s", cell, krb_get_err_text(k4ret));
|
||||
#endif
|
||||
if (k5ret || k4ret)
|
||||
if (k5ret)
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
@ -237,7 +217,7 @@ main(int argc, char **argv)
|
||||
int ret = 0;
|
||||
int failed = 0;
|
||||
struct cell_list *p;
|
||||
|
||||
|
||||
setprogname(argv[0]);
|
||||
|
||||
if(getarg(args, num_args, argc, argv, &optind))
|
||||
@ -266,7 +246,7 @@ main(int argc, char **argv)
|
||||
|
||||
ret = krb5_parse_name(context, client_string, &client);
|
||||
if (ret == 0)
|
||||
ret = krb5_cc_cache_match(context, client, NULL, &id);
|
||||
ret = krb5_cc_cache_match(context, client, &id);
|
||||
if (ret)
|
||||
id = NULL;
|
||||
}
|
||||
@ -306,7 +286,7 @@ main(int argc, char **argv)
|
||||
afslog_file(argv[i]);
|
||||
else
|
||||
afslog_cell(argv[i], 1);
|
||||
}
|
||||
}
|
||||
if(num == 0) {
|
||||
if(do_afslog(NULL))
|
||||
failed++;
|
||||
|
69
appl/afsutil/afslog.cat1
Normal file
69
appl/afsutil/afslog.cat1
Normal file
@ -0,0 +1,69 @@
|
||||
|
||||
AFSLOG(1) BSD General Commands Manual AFSLOG(1)
|
||||
|
||||
NNAAMMEE
|
||||
aaffsslloogg -- obtain AFS tokens
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
aaffsslloogg [--hh | ----hheellpp] [----nnoo--vv44] [----nnoo--vv55] [--uu | ----uunnlloogg] [--vv | ----vveerrbboossee]
|
||||
[----vveerrssiioonn] [--cc _c_e_l_l | ----cceellll==_c_e_l_l] [--kk _r_e_a_l_m | ----rreeaallmm==_r_e_a_l_m] [--PP
|
||||
_p_r_i_n_c_i_p_a_l | ----pprriinncciippaall==_p_r_i_n_c_i_p_a_l] [--pp _p_a_t_h | ----ffiillee==_p_a_t_h]
|
||||
[_c_e_l_l | _p_a_t_h _._._.]
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
aaffsslloogg obtains AFS tokens for a number of cells. What cells to get tokens
|
||||
for can either be specified as an explicit list, as file paths to get
|
||||
tokens for, or be left unspecified, in which case aaffsslloogg will use what-
|
||||
ever magic krb_afslog(3) decides upon.
|
||||
|
||||
Supported options:
|
||||
|
||||
----nnoo--vv44
|
||||
This makes aaffsslloogg not try using Kerberos 4.
|
||||
|
||||
----nnoo--vv55
|
||||
This makes aaffsslloogg not try using Kerberos 5.
|
||||
|
||||
--PP _p_r_i_n_c_i_p_a_l, ----pprriinncciippaall _p_r_i_n_c_i_p_a_l
|
||||
select what Kerberos 5 principal to use.
|
||||
|
||||
----ccaacchhee _c_a_c_h_e
|
||||
select what Kerberos 5 credential cache to use. ----pprriinncciippaall
|
||||
overrides this option.
|
||||
|
||||
--uu, ----uunnlloogg
|
||||
Destroy tokens instead of obtaining new. If this is specified,
|
||||
all other options are ignored (except for ----hheellpp and ----vveerrssiioonn).
|
||||
|
||||
--vv, ----vveerrbboossee
|
||||
Adds more verbosity for what is actually going on.
|
||||
|
||||
--cc _c_e_l_l_, ----cceellll==_c_e_l_l
|
||||
This specified one or more cell names to get tokens for.
|
||||
|
||||
--kk _r_e_a_l_m, ----rreeaallmm==_r_e_a_l_m
|
||||
This is the Kerberos realm the AFS servers live in, this should
|
||||
normally not be specified.
|
||||
|
||||
--pp _p_a_t_h, ----ffiillee==_p_a_t_h
|
||||
This specified one or more file paths for which tokens should be
|
||||
obtained.
|
||||
|
||||
Instead of using --cc and --pp, you may also pass a list of cells and file
|
||||
paths after any other options. These arguments are considered files if
|
||||
they are either the strings ``.'' or ``..'' or they contain a slash, or
|
||||
if there exists a file by that name.
|
||||
|
||||
EEXXAAMMPPLLEESS
|
||||
Assuming that there is no file called ``openafs.org'' in the current
|
||||
directory, and that _/_a_f_s_/_o_p_e_n_a_f_s_._o_r_g points to that cell, the follwing
|
||||
should be identical:
|
||||
|
||||
$ afslog -c openafs.org
|
||||
$ afslog openafs.org
|
||||
$ afslog /afs/openafs.org/some/file
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
krb_afslog(3)
|
||||
|
||||
HEIMDAL November 26, 2002 HEIMDAL
|
@ -1,79 +1,80 @@
|
||||
.\" Copyright (c) 2005 Kungliga Tekniska Högskolan
|
||||
.\" (Royal Institute of Technology, Stockholm, Sweden).
|
||||
.\" All rights reserved.
|
||||
.\" Copyright (c) 2005 Kungliga Tekniska Högskolan
|
||||
.\" (Royal Institute of Technology, Stockholm, Sweden).
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\"
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\"
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" 3. Neither the name of the Institute nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\" 3. Neither the name of the Institute nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id: pagsh.1 20311 2007-04-11 11:27:51Z lha $
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd February 12, 2005
|
||||
.Dt PAGSH 1
|
||||
.Os Heimdal
|
||||
.Sh NAME
|
||||
.Nm pagsh
|
||||
.Nd
|
||||
creates a new credential cache sandbox
|
||||
.Nd creates a new credential cache sandbox
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Op Fl c
|
||||
.Op Fl h | Fl -help
|
||||
.Op Fl -version
|
||||
.Op Fl -cache-type= Ns Ar string
|
||||
.Op Fl c Ar command-string
|
||||
.Op Fl h | Fl Fl help
|
||||
.Op Fl Fl version
|
||||
.Op Fl Fl cache-type= Ns Ar string
|
||||
.Ar command [args...]
|
||||
.Sh DESCRIPTION
|
||||
Supported options:
|
||||
.Bl -tag -width Ds
|
||||
.It Xo
|
||||
.Fl c
|
||||
.Fl c Ar command-string
|
||||
Executes command(s) contained in
|
||||
.Ar command-string .
|
||||
.Xc
|
||||
.It Xo
|
||||
.Fl -cache-type= Ns Ar string
|
||||
.Fl Fl cache-type= Ns Ar string
|
||||
.Xc
|
||||
.It Xo
|
||||
.Fl h ,
|
||||
.Fl -help
|
||||
.Fl Fl help
|
||||
.Xc
|
||||
.It Xo
|
||||
.Fl -version
|
||||
.Fl Fl version
|
||||
.Xc
|
||||
.El
|
||||
.Pp
|
||||
.Nm
|
||||
creates a new credential cache sandbox for the user to live in.
|
||||
If AFS is installed on the computer, the user is put in a newly
|
||||
created PAG.
|
||||
created Process Authentication Group (PAG).
|
||||
.Pp
|
||||
For Kerberos 5, the credential cache type that is used is the same as
|
||||
the credential cache type that was used at the time of
|
||||
.Nm
|
||||
invocation.
|
||||
The credential cache type can be controlled by the option
|
||||
.Fl -cache-type .
|
||||
.Fl Fl cache-type .
|
||||
.Sh EXAMPLES
|
||||
Create a new sandbox where new credentials can be used, while the old
|
||||
credentials can be used by other processes.
|
||||
@ -89,4 +90,5 @@ $ klist
|
||||
klist: No ticket file: /tmp/krb5cc_03014a
|
||||
.Ed
|
||||
.Sh SEE ALSO
|
||||
.Xr afslog 1
|
||||
.Xr afslog 1 ,
|
||||
.Xr kinit 1
|
||||
|
@ -1,23 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 1995 - 2005 Kungliga Tekniska Högskolan
|
||||
* Copyright (c) 1995 - 2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
@ -35,7 +35,7 @@
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
RCSID("$Id: pagsh.c 14574 2005-02-12 14:23:28Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
@ -55,9 +55,6 @@ RCSID("$Id: pagsh.c 14574 2005-02-12 14:23:28Z lha $");
|
||||
#ifdef KRB5
|
||||
#include <krb5.h>
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
#include <krb.h>
|
||||
#endif
|
||||
#include <kafs.h>
|
||||
|
||||
#include <err.h>
|
||||
@ -106,7 +103,7 @@ main(int argc, char **argv)
|
||||
|
||||
char *path;
|
||||
char **args;
|
||||
int i;
|
||||
unsigned int i;
|
||||
int optind = 0;
|
||||
|
||||
setprogname(argv[0]);
|
||||
@ -124,7 +121,6 @@ main(int argc, char **argv)
|
||||
|
||||
#ifdef KRB5
|
||||
{
|
||||
const krb5_cc_ops *type;
|
||||
krb5_error_code ret;
|
||||
krb5_context context;
|
||||
krb5_ccache id;
|
||||
@ -134,29 +130,7 @@ main(int argc, char **argv)
|
||||
if (ret) /* XXX should this really call exit ? */
|
||||
errx(1, "no kerberos 5 support");
|
||||
|
||||
if (typename_arg == NULL) {
|
||||
char *s;
|
||||
|
||||
name = krb5_cc_default_name(context);
|
||||
if (name == NULL)
|
||||
krb5_errx(context, 1, "Failed getting default "
|
||||
"credential cache type");
|
||||
|
||||
typename_arg = strdup(name);
|
||||
if (typename_arg == NULL)
|
||||
errx(1, "strdup");
|
||||
|
||||
s = strchr(typename_arg, ':');
|
||||
if (s)
|
||||
*s = '\0';
|
||||
}
|
||||
|
||||
type = krb5_cc_get_prefix_ops(context, typename_arg);
|
||||
if (type == NULL)
|
||||
krb5_err(context, 1, ret, "Failed getting ops for %s "
|
||||
"credential cache", typename_arg);
|
||||
|
||||
ret = krb5_cc_gen_new(context, type, &id);
|
||||
ret = krb5_cc_new_unique(context, typename_arg, NULL, &id);
|
||||
if (ret)
|
||||
krb5_err(context, 1, ret, "Failed generating credential cache");
|
||||
|
||||
@ -164,7 +138,7 @@ main(int argc, char **argv)
|
||||
if (name == NULL)
|
||||
krb5_errx(context, 1, "Generated credential cache have no name");
|
||||
|
||||
snprintf(tf, sizeof(tf), "%s:%s", typename_arg, name);
|
||||
snprintf(tf, sizeof(tf), "%s:%s", krb5_cc_get_type(context, id), name);
|
||||
|
||||
ret = krb5_cc_close(context, id);
|
||||
if (ret)
|
||||
@ -190,11 +164,13 @@ main(int argc, char **argv)
|
||||
if (args == NULL)
|
||||
errx (1, "Out of memory allocating %lu bytes",
|
||||
(unsigned long)((argc + 10)*sizeof(char *)));
|
||||
|
||||
|
||||
if(*argv == NULL) {
|
||||
path = getenv("SHELL");
|
||||
if(path == NULL){
|
||||
struct passwd *pw = k_getpwuid(geteuid());
|
||||
if (pw == NULL)
|
||||
errx(1, "no such user: %d", (int)geteuid());
|
||||
path = strdup(pw->pw_shell);
|
||||
}
|
||||
} else {
|
||||
@ -202,7 +178,7 @@ main(int argc, char **argv)
|
||||
}
|
||||
if (path == NULL)
|
||||
errx (1, "Out of memory copying path");
|
||||
|
||||
|
||||
p=strrchr(path, '/');
|
||||
if(p)
|
||||
args[i] = strdup(p+1);
|
||||
@ -211,7 +187,7 @@ main(int argc, char **argv)
|
||||
|
||||
if (args[i++] == NULL)
|
||||
errx (1, "Out of memory copying arguments");
|
||||
|
||||
|
||||
while(*argv)
|
||||
args[i++] = *argv++;
|
||||
|
||||
@ -224,7 +200,7 @@ main(int argc, char **argv)
|
||||
execvp(path, args);
|
||||
if (errno == ENOENT || c_flag) {
|
||||
char **sh_args = malloc ((i + 2) * sizeof(char *));
|
||||
int j;
|
||||
unsigned int j;
|
||||
|
||||
if (sh_args == NULL)
|
||||
errx (1, "Out of memory copying sh arguments");
|
||||
|
47
appl/afsutil/pagsh.cat1
Normal file
47
appl/afsutil/pagsh.cat1
Normal file
@ -0,0 +1,47 @@
|
||||
|
||||
PAGSH(1) BSD General Commands Manual PAGSH(1)
|
||||
|
||||
NNAAMMEE
|
||||
ppaaggsshh -- creates a new credential cache sandbox
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
ppaaggsshh [--cc _c_o_m_m_a_n_d_-_s_t_r_i_n_g] [--hh | ----hheellpp] [----vveerrssiioonn] [----ccaacchhee--ttyyppee==_s_t_r_i_n_g]
|
||||
_c_o_m_m_a_n_d _[_a_r_g_s_._._._]
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
Supported options:
|
||||
|
||||
--cc _c_o_m_m_a_n_d_-_s_t_r_i_n_g Executes command(s) contained in _c_o_m_m_a_n_d_-_s_t_r_i_n_g.
|
||||
|
||||
----ccaacchhee--ttyyppee==_s_t_r_i_n_g
|
||||
|
||||
--hh, ----hheellpp
|
||||
|
||||
----vveerrssiioonn
|
||||
|
||||
ppaaggsshh creates a new credential cache sandbox for the user to live in. If
|
||||
AFS is installed on the computer, the user is put in a newly created
|
||||
Process Authentication Group (PAG).
|
||||
|
||||
For Kerberos 5, the credential cache type that is used is the same as the
|
||||
credential cache type that was used at the time of ppaaggsshh invocation. The
|
||||
credential cache type can be controlled by the option ----ccaacchhee--ttyyppee.
|
||||
|
||||
EEXXAAMMPPLLEESS
|
||||
Create a new sandbox where new credentials can be used, while the old
|
||||
credentials can be used by other processes.
|
||||
|
||||
$ klist
|
||||
Credentials cache: FILE:/tmp/krb5cc_913
|
||||
Principal: lha@E.KTH.SE
|
||||
|
||||
Issued Expires Principal
|
||||
Feb 12 10:08:31 Feb 12 20:06:36 krbtgt/E.KTH.SE@E.KTH.SE
|
||||
$ pagsh
|
||||
$ klist
|
||||
klist: No ticket file: /tmp/krb5cc_03014a
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
afslog(1), kinit(1)
|
||||
|
||||
Heimdal February 12, 2005 Heimdal
|
39
appl/dceutils/ChangeLog
Normal file
39
appl/dceutils/ChangeLog
Normal file
@ -0,0 +1,39 @@
|
||||
2007-12-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am: Add missing files, from Buchan Milne.
|
||||
|
||||
2006-08-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* k5dcecon.c: Check for seteuid failure, prompted by MIT advisory.
|
||||
|
||||
2005-04-06 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* testpag.c: use NULL as last argument to execl, not 0
|
||||
|
||||
2002-08-12 Johan Danielsson <joda@pdc.kth.se>
|
||||
|
||||
* Makefile.am: rename dpagaix_LDFLAGS etc to appease automake
|
||||
|
||||
2001-08-24 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.am (dpagaix): make sure of using $(EXEEXT) just to
|
||||
please automake (this is aix-only code)
|
||||
|
||||
2001-02-07 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.am (dpagaix): needs to be linked with ld, add an
|
||||
explicit command for it. from Ake Sandgren <ake@cs.umu.se>
|
||||
|
||||
2000-10-02 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.am: link with roken on everything except irix, where
|
||||
apperently it fails. reported by Ake Sandgren <ake@cs.umu.se>
|
||||
|
||||
2000-07-17 Johan Danielsson <joda@pdc.kth.se>
|
||||
|
||||
* Makefile.am: set compiler flags
|
||||
|
||||
2000-07-01 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* imported stuff from Ake Sandgren <ake@cs.umu.se>
|
||||
|
37
appl/dceutils/Makefile.am
Normal file
37
appl/dceutils/Makefile.am
Normal file
@ -0,0 +1,37 @@
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
|
||||
DFSPROGS = k5dcecon
|
||||
if AIX
|
||||
AIX_DFSPROGS = dpagaix
|
||||
endif
|
||||
|
||||
libexec_PROGRAMS = $(DFSPROGS) $(AIX_DFSPROGS)
|
||||
|
||||
dpagaix_CFLAGS = $(dpagaix_cflags)
|
||||
dpagaix_LDFLAGS = $(dpagaix_ldflags)
|
||||
dpagaix_LDADD = $(dpagaix_ldadd)
|
||||
|
||||
dpagaix$(EXEEXT): $(dpagaix_OBJECTS)
|
||||
ld -edpagaix -o dpagaix$(EXEEXT) $(dpagaix_OBJECTS) $(srcdir)/dfspag.exp
|
||||
|
||||
LIB_dce = -ldce
|
||||
|
||||
k5dcecon_SOURCES = k5dcecon.c k5dce.h
|
||||
|
||||
dpagaix_SOURCES = dpagaix.c
|
||||
|
||||
EXTRA_DIST = \
|
||||
NTMakefile \
|
||||
dfspag.exp \
|
||||
README.dcedfs \
|
||||
README.original \
|
||||
testpag.c
|
||||
|
||||
if IRIX
|
||||
LDADD = $(LIB_dce)
|
||||
else
|
||||
LDADD = $(LIB_roken) $(LIB_dce)
|
||||
endif
|
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,16 +15,17 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# $Id: Makefile.am 22299 2007-12-14 06:39:19Z lha $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
|
||||
# $Id$
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -40,11 +42,12 @@ build_triplet = @build@
|
||||
host_triplet = @host@
|
||||
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
$(top_srcdir)/Makefile.am.common \
|
||||
$(top_srcdir)/cf/Makefile.am.common
|
||||
subdir = lib/auth/pam
|
||||
$(top_srcdir)/cf/Makefile.am.common ChangeLog
|
||||
libexec_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2)
|
||||
subdir = appl/dceutils
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 \
|
||||
$(top_srcdir)/cf/broken-getaddrinfo.m4 \
|
||||
$(top_srcdir)/cf/broken-glob.m4 \
|
||||
$(top_srcdir)/cf/broken-realloc.m4 \
|
||||
@ -59,7 +62,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
|
||||
$(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
|
||||
$(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
|
||||
$(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/dispatch.m4 $(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs2.m4 \
|
||||
$(top_srcdir)/cf/find-func.m4 \
|
||||
@ -73,9 +76,12 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/krb-readline.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-spwd.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-winsize.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
|
||||
$(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
|
||||
$(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/libtool.m4 \
|
||||
$(top_srcdir)/cf/ltoptions.m4 $(top_srcdir)/cf/ltsugar.m4 \
|
||||
$(top_srcdir)/cf/ltversion.m4 $(top_srcdir)/cf/lt~obsolete.m4 \
|
||||
$(top_srcdir)/cf/mips-abi.m4 $(top_srcdir)/cf/misc.m4 \
|
||||
$(top_srcdir)/cf/need-proto.m4 $(top_srcdir)/cf/osfc2.m4 \
|
||||
$(top_srcdir)/cf/otp.m4 $(top_srcdir)/cf/pkg.m4 \
|
||||
$(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
|
||||
$(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
|
||||
$(top_srcdir)/cf/roken-frag.m4 \
|
||||
@ -83,73 +89,103 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
|
||||
$(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
|
||||
$(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
|
||||
am__installdirs = "$(DESTDIR)$(foodir)"
|
||||
fooDATA_INSTALL = $(INSTALL_DATA)
|
||||
DATA = $(foo_DATA)
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__EXEEXT_1 = k5dcecon$(EXEEXT)
|
||||
@AIX_TRUE@am__EXEEXT_2 = dpagaix$(EXEEXT)
|
||||
am__installdirs = "$(DESTDIR)$(libexecdir)"
|
||||
PROGRAMS = $(libexec_PROGRAMS)
|
||||
am_dpagaix_OBJECTS = dpagaix-dpagaix.$(OBJEXT)
|
||||
dpagaix_OBJECTS = $(am_dpagaix_OBJECTS)
|
||||
am__DEPENDENCIES_1 =
|
||||
dpagaix_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
||||
dpagaix_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(dpagaix_CFLAGS) $(CFLAGS) \
|
||||
$(dpagaix_LDFLAGS) $(LDFLAGS) -o $@
|
||||
am_k5dcecon_OBJECTS = k5dcecon.$(OBJEXT)
|
||||
k5dcecon_OBJECTS = $(am_k5dcecon_OBJECTS)
|
||||
k5dcecon_LDADD = $(LDADD)
|
||||
@IRIX_FALSE@k5dcecon_DEPENDENCIES = $(am__DEPENDENCIES_1) \
|
||||
@IRIX_FALSE@ $(am__DEPENDENCIES_1)
|
||||
@IRIX_TRUE@k5dcecon_DEPENDENCIES = $(am__DEPENDENCIES_1)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
|
||||
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
CCLD = $(CC)
|
||||
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(dpagaix_SOURCES) $(k5dcecon_SOURCES)
|
||||
DIST_SOURCES = $(dpagaix_SOURCES) $(k5dcecon_SOURCES)
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASN1_COMPILE = @ASN1_COMPILE@
|
||||
ASN1_COMPILE_DEP = @ASN1_COMPILE_DEP@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CAPNG_CFLAGS = @CAPNG_CFLAGS@
|
||||
CAPNG_LIBS = @CAPNG_LIBS@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE_ET = @COMPILE_ET@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBHEADER = @DBHEADER@
|
||||
DBLIB = @DBLIB@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIR_com_err = @DIR_com_err@
|
||||
DIR_hcrypto = @DIR_hcrypto@
|
||||
DIR_hdbdir = @DIR_hdbdir@
|
||||
DIR_roken = @DIR_roken@
|
||||
ECHO = @ECHO@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INCLUDES_roken = @INCLUDES_roken@
|
||||
INCLUDE_hcrypto = @INCLUDE_hcrypto@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
INCLUDE_libedit = @INCLUDE_libedit@
|
||||
INCLUDE_libintl = @INCLUDE_libintl@
|
||||
INCLUDE_openldap = @INCLUDE_openldap@
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
INCLUDE_sqlite3 = @INCLUDE_sqlite3@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
|
||||
LEX = @LEX@
|
||||
@ -173,10 +209,11 @@ LIB_crypt = @LIB_crypt@
|
||||
LIB_db_create = @LIB_db_create@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dispatch_async_f = @LIB_dispatch_async_f@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_dns_search = @LIB_dns_search@
|
||||
LIB_door_create = @LIB_door_create@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_freeaddrinfo = @LIB_freeaddrinfo@
|
||||
LIB_gai_strerror = @LIB_gai_strerror@
|
||||
LIB_getaddrinfo = @LIB_getaddrinfo@
|
||||
@ -193,6 +230,8 @@ LIB_hesiod = @LIB_hesiod@
|
||||
LIB_hstrerror = @LIB_hstrerror@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
LIB_libedit = @LIB_libedit@
|
||||
LIB_libintl = @LIB_libintl@
|
||||
LIB_loadquery = @LIB_loadquery@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
@ -208,32 +247,46 @@ LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_sqlite3 = @LIB_sqlite3@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_AFS = @NO_AFS@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
|
||||
PTHREADS_LIBS = @PTHREADS_LIBS@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
PTHREAD_LDADD = @PTHREAD_LDADD@
|
||||
PTHREAD_LIBADD = @PTHREAD_LIBADD@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLC = @SLC@
|
||||
SLC_DEP = @SLC_DEP@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VERSIONING = @VERSIONING@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@ $(WFLAGS_NOIMPLICITINT)
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
XMKMF = @XMKMF@
|
||||
@ -247,10 +300,12 @@ abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
@ -291,71 +346,68 @@ psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .o
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken) \
|
||||
$(INCLUDE_krb4)
|
||||
SUFFIXES = .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = $(INCLUDES_roken)
|
||||
@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
CP = cp
|
||||
buildinclude = $(top_builddir)/include
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
libexec_heimdaldir = $(libexecdir)/heimdal
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
|
||||
@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
|
||||
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
|
||||
LIB_heimbase = $(top_builddir)/base/libheimbase.la
|
||||
@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
|
||||
@KRB4_TRUE@KAFS = $(top_builddir)/lib/kafs/.libs/libkafs.a
|
||||
@KRB4_TRUE@KAFS_S = $(top_builddir)/lib/kafs/.libs/libkafs.so
|
||||
@KRB4_TRUE@L = \
|
||||
@KRB4_TRUE@ $(KAFS) \
|
||||
@KRB4_TRUE@ $(top_builddir)/lib/krb/.libs/libkrb.a \
|
||||
@KRB4_TRUE@ $(LIB_hcrypto_a) \
|
||||
@KRB4_TRUE@ $(top_builddir)/lib/roken/.libs/libroken.a \
|
||||
@KRB4_TRUE@ -lc
|
||||
DFSPROGS = k5dcecon
|
||||
@AIX_TRUE@AIX_DFSPROGS = dpagaix
|
||||
dpagaix_CFLAGS = $(dpagaix_cflags)
|
||||
dpagaix_LDFLAGS = $(dpagaix_ldflags)
|
||||
dpagaix_LDADD = $(dpagaix_ldadd)
|
||||
LIB_dce = -ldce
|
||||
k5dcecon_SOURCES = k5dcecon.c k5dce.h
|
||||
dpagaix_SOURCES = dpagaix.c
|
||||
EXTRA_DIST = \
|
||||
NTMakefile \
|
||||
dfspag.exp \
|
||||
README.dcedfs \
|
||||
README.original \
|
||||
testpag.c
|
||||
|
||||
@KRB4_TRUE@L_shared = \
|
||||
@KRB4_TRUE@ $(KAFS_S) \
|
||||
@KRB4_TRUE@ $(top_builddir)/lib/krb/.libs/libkrb.so \
|
||||
@KRB4_TRUE@ $(LIB_hcrypto_so) \
|
||||
@KRB4_TRUE@ $(top_builddir)/lib/roken/.libs/libroken.so \
|
||||
@KRB4_TRUE@ $(LIB_getpwnam_r) \
|
||||
@KRB4_TRUE@ -lc
|
||||
|
||||
@KRB4_TRUE@MOD = pam_krb4.so
|
||||
foodir = $(libdir)
|
||||
foo_DATA = $(MOD)
|
||||
SRCS = pam.c
|
||||
OBJS = pam.o
|
||||
CLEANFILES = $(MOD) $(OBJS)
|
||||
EXTRA_DIST = pam.conf.add $(SRCS)
|
||||
@IRIX_FALSE@LDADD = $(LIB_roken) $(LIB_dce)
|
||||
@IRIX_TRUE@LDADD = $(LIB_dce)
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .o
|
||||
.SUFFIXES: .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps lib/auth/pam/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign --ignore-deps lib/auth/pam/Makefile
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign appl/dceutils/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign appl/dceutils/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -373,35 +425,155 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-libexecPROGRAMS: $(libexec_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)"
|
||||
@list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p || test -f $$p1; \
|
||||
then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-libexecPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' `; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
|
||||
|
||||
clean-libexecPROGRAMS:
|
||||
@list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list || exit $$?; \
|
||||
test -n "$(EXEEXT)" || exit 0; \
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
k5dcecon$(EXEEXT): $(k5dcecon_OBJECTS) $(k5dcecon_DEPENDENCIES)
|
||||
@rm -f k5dcecon$(EXEEXT)
|
||||
$(LINK) $(k5dcecon_OBJECTS) $(k5dcecon_LDADD) $(LIBS)
|
||||
|
||||
mostlyclean-compile:
|
||||
-rm -f *.$(OBJEXT)
|
||||
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dpagaix-dpagaix.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/k5dcecon.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
dpagaix-dpagaix.o: dpagaix.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dpagaix_CFLAGS) $(CFLAGS) -MT dpagaix-dpagaix.o -MD -MP -MF $(DEPDIR)/dpagaix-dpagaix.Tpo -c -o dpagaix-dpagaix.o `test -f 'dpagaix.c' || echo '$(srcdir)/'`dpagaix.c
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dpagaix-dpagaix.Tpo $(DEPDIR)/dpagaix-dpagaix.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dpagaix.c' object='dpagaix-dpagaix.o' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dpagaix_CFLAGS) $(CFLAGS) -c -o dpagaix-dpagaix.o `test -f 'dpagaix.c' || echo '$(srcdir)/'`dpagaix.c
|
||||
|
||||
dpagaix-dpagaix.obj: dpagaix.c
|
||||
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dpagaix_CFLAGS) $(CFLAGS) -MT dpagaix-dpagaix.obj -MD -MP -MF $(DEPDIR)/dpagaix-dpagaix.Tpo -c -o dpagaix-dpagaix.obj `if test -f 'dpagaix.c'; then $(CYGPATH_W) 'dpagaix.c'; else $(CYGPATH_W) '$(srcdir)/dpagaix.c'; fi`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/dpagaix-dpagaix.Tpo $(DEPDIR)/dpagaix-dpagaix.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dpagaix.c' object='dpagaix-dpagaix.obj' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dpagaix_CFLAGS) $(CFLAGS) -c -o dpagaix-dpagaix.obj `if test -f 'dpagaix.c'; then $(CYGPATH_W) 'dpagaix.c'; else $(CYGPATH_W) '$(srcdir)/dpagaix.c'; fi`
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-fooDATA: $(foo_DATA)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(foodir)" || $(MKDIR_P) "$(DESTDIR)$(foodir)"
|
||||
@list='$(foo_DATA)'; for p in $$list; do \
|
||||
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
|
||||
f=$(am__strip_dir) \
|
||||
echo " $(fooDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(foodir)/$$f'"; \
|
||||
$(fooDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(foodir)/$$f"; \
|
||||
done
|
||||
|
||||
uninstall-fooDATA:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(foo_DATA)'; for p in $$list; do \
|
||||
f=$(am__strip_dir) \
|
||||
echo " rm -f '$(DESTDIR)$(foodir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(foodir)/$$f"; \
|
||||
done
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
TAGS:
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS:
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
@ -419,13 +591,17 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@ -435,9 +611,9 @@ distdir: $(DISTFILES)
|
||||
check-am: all-am
|
||||
$(MAKE) $(AM_MAKEFLAGS) check-local
|
||||
check: check-am
|
||||
all-am: Makefile $(DATA) all-local
|
||||
all-am: Makefile $(PROGRAMS) all-local
|
||||
installdirs:
|
||||
for dir in "$(DESTDIR)$(foodir)"; do \
|
||||
for dir in "$(DESTDIR)$(libexecdir)"; do \
|
||||
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
|
||||
done
|
||||
install: install-am
|
||||
@ -457,21 +633,24 @@ install-strip:
|
||||
mostlyclean-generic:
|
||||
|
||||
clean-generic:
|
||||
-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@echo "it deletes files that may require special tools to rebuild."
|
||||
clean: clean-am
|
||||
|
||||
clean-am: clean-generic clean-libtool mostlyclean-am
|
||||
clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-generic
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
|
||||
dvi: dvi-am
|
||||
|
||||
@ -479,39 +658,51 @@ dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
|
||||
install-data-am: install-fooDATA
|
||||
install-data-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-exec-am:
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-libexecPROGRAMS
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
mostlyclean: mostlyclean-am
|
||||
|
||||
mostlyclean-am: mostlyclean-generic mostlyclean-libtool
|
||||
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
|
||||
mostlyclean-libtool
|
||||
|
||||
pdf: pdf-am
|
||||
|
||||
@ -521,26 +712,27 @@ ps: ps-am
|
||||
|
||||
ps-am:
|
||||
|
||||
uninstall-am: uninstall-fooDATA
|
||||
uninstall-am: uninstall-libexecPROGRAMS
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||
.MAKE: check-am install-am install-data-am install-exec-am \
|
||||
install-strip uninstall-am
|
||||
|
||||
.MAKE: install-am install-data-am install-exec-am install-strip \
|
||||
uninstall-am
|
||||
|
||||
.PHONY: all all-am all-local check check-am check-local clean \
|
||||
clean-generic clean-libtool dist-hook distclean \
|
||||
distclean-generic distclean-libtool distdir dvi dvi-am html \
|
||||
.PHONY: CTAGS GTAGS all all-am all-local check check-am check-local \
|
||||
clean clean-generic clean-libexecPROGRAMS clean-libtool ctags \
|
||||
dist-hook distclean distclean-compile distclean-generic \
|
||||
distclean-libtool distclean-tags distdir dvi dvi-am html \
|
||||
html-am info info-am install install-am install-data \
|
||||
install-data-am install-data-hook install-dvi install-dvi-am \
|
||||
install-exec install-exec-am install-exec-hook install-fooDATA \
|
||||
install-html install-html-am install-info install-info-am \
|
||||
install-man install-pdf install-pdf-am install-ps \
|
||||
install-ps-am install-strip installcheck installcheck-am \
|
||||
installdirs maintainer-clean maintainer-clean-generic \
|
||||
mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
|
||||
ps ps-am uninstall uninstall-am uninstall-fooDATA \
|
||||
uninstall-hook
|
||||
install-exec install-exec-am install-exec-hook install-html \
|
||||
install-html-am install-info install-info-am \
|
||||
install-libexecPROGRAMS install-man install-pdf install-pdf-am \
|
||||
install-ps install-ps-am install-strip installcheck \
|
||||
installcheck-am installdirs maintainer-clean \
|
||||
maintainer-clean-generic mostlyclean mostlyclean-compile \
|
||||
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
|
||||
tags uninstall uninstall-am uninstall-hook \
|
||||
uninstall-libexecPROGRAMS
|
||||
|
||||
|
||||
install-suid-programs:
|
||||
@ -611,6 +803,9 @@ check-local::
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
.hx.h:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
@ -696,7 +891,7 @@ uninstall-hook: uninstall-cat-mans
|
||||
check-valgrind:
|
||||
tobjdir=`cd $(top_builddir) && pwd` ; \
|
||||
tsrcdir=`cd $(top_srcdir) && pwd` ; \
|
||||
env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
|
||||
env TESTS_ENVIRONMENT="$${tsrcdir}/cf/maybe-valgrind.sh -s $${tsrcdir} -o $${tobjdir}" make check
|
||||
|
||||
#
|
||||
# Target to please samba build farm, builds distfiles in-tree.
|
||||
@ -710,24 +905,9 @@ distdir-in-tree: $(DISTFILES) $(INFO_DEPS)
|
||||
fi ; \
|
||||
done
|
||||
|
||||
pam_krb4.so: $(OBJS)
|
||||
@if test -f $(top_builddir)/lib/krb/.libs/libkrb.a; then \
|
||||
echo "$(LIBTOOL) --mode=link --tag=CC $(CC) -shared -o $@ $(LDFLAGS) $(OBJS) $(L)"; \
|
||||
$(LIBTOOL) --mode=link --tag=CC $(CC) -shared -o $@ $(LDFLAGS) $(OBJS) $(L); \
|
||||
elif test -f $(top_builddir)/lib/krb/.libs/libkrb.so; then \
|
||||
echo "$(LIBTOOL) --mode=link --tag=CC $(CC) -shared -o $@ $(LDFLAGS) $(OBJS) $(L_shared)"; \
|
||||
$(LIBTOOL) --mode=link --tag=CC $(CC) -shared -o $@ $(LDFLAGS) $(OBJS) $(L_shared); \
|
||||
else \
|
||||
echo "missing libraries"; exit 1; \
|
||||
fi
|
||||
dpagaix$(EXEEXT): $(dpagaix_OBJECTS)
|
||||
ld -edpagaix -o dpagaix$(EXEEXT) $(dpagaix_OBJECTS) $(srcdir)/dfspag.exp
|
||||
|
||||
# XXX inline COMPILE since automake wont add it
|
||||
|
||||
.c.o:
|
||||
$(LIBTOOL) --mode=compile --tag=CC $(CC) \
|
||||
$(DEFS) $(DEFAULT_AM_CPPFLAGS) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) \
|
||||
-c `test -f '$<' || echo '$(srcdir)/'`$<
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
35
appl/dceutils/NTMakefile
Normal file
35
appl/dceutils/NTMakefile
Normal file
@ -0,0 +1,35 @@
|
||||
########################################################################
|
||||
#
|
||||
# Copyright (c) 2009, Secure Endpoints Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
# COPYRIGHT HOLDER 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.
|
||||
#
|
||||
|
||||
RELDIR=appl\dceutils
|
||||
|
||||
!include ../../windows/NTMakefile.w32
|
||||
|
59
appl/dceutils/README.dcedfs
Normal file
59
appl/dceutils/README.dcedfs
Normal file
@ -0,0 +1,59 @@
|
||||
This is a set of patches and files to get a DFS ticket from a k5 ticket.
|
||||
This code comes from Doug Engert, Argonne Nat. Lab (See dce/README.original
|
||||
for more info)
|
||||
|
||||
The files in dce are;
|
||||
testpag: for testing if this is at all possible.
|
||||
k5dfspag: included in libkrb5
|
||||
k5dcecon: Creates (or searches for) the actual DFSPAG ticketfile.
|
||||
dpagaix: An AIX syscall stub.
|
||||
README.original: Original README file from Doug Engert
|
||||
|
||||
|
||||
Certain applications (rshd/telnetd) have been patched to call the
|
||||
functions in k5dfspag when the situation is right. They are ifdef
|
||||
with DCE. The patches are also originally from Doug but they
|
||||
where against MIT krb5 code and have been merged into heimdal by me.
|
||||
I will try to fix ftpd soon...
|
||||
|
||||
There is also an ifdefs for DCE && AIX that can be used to make AIX
|
||||
use DCE for getting group/passwd entries. This is needed if one is running
|
||||
with a bare bones passwd/group file and AUTHSTATE set to DCE (This will be
|
||||
more or less clear to people doing this...) I have forced this on for now.
|
||||
|
||||
k5dfspag.c is in lib/krb5
|
||||
k5dfspag.c is dependent on DCE only.
|
||||
It is also POSIX systems only. There are defines for the location of
|
||||
k5dcecon and dpagaix that needs a correct configure setting.
|
||||
|
||||
k5dcecon needs no special things for the compile except whatever is needed
|
||||
on the target system to compile dce programs.
|
||||
(On aix the dce compile flags are: -D_THREAD_SAFE -D_AIX32_THREADS=1 -D_AIX41 -D_AES_SOURCE or one can use xlc_r4 if it is version 3.6.4 or later)
|
||||
|
||||
k5dcecon wants the following libs (on aix 4.3):
|
||||
-ldce (and setenv from somewhere)
|
||||
|
||||
dpagaix is only needed on AIX (see k5dfspag.c).
|
||||
dpagaix needs dfspag.exp and is linked with
|
||||
ld -edpagaix -o dpagaix dpagaix.o dfspag.exp
|
||||
|
||||
|
||||
Hope to get this into heimdal soon :-) although I know that you will have to
|
||||
change some things to get it cleanly into configure. Since I don't know the
|
||||
structure of the code (heimdal), nor enough of configure, good enough I
|
||||
just won't try it myself.
|
||||
|
||||
One more thing, to get this to work one has to put fcache_version = x in
|
||||
krb5.conf where x = whatever the DCE implementation understands, (usually
|
||||
1 or 2).
|
||||
Thanks for adding that...
|
||||
|
||||
|
||||
Åke Sandgren (ake@hpc2n.umu.se)
|
||||
HPC2N
|
||||
Umeå University
|
||||
Sweden
|
||||
|
||||
PS
|
||||
I have now added patches for configure.in and some Makefile.am's to get this
|
||||
all cleanly (I hope) into heimdal.
|
335
appl/dceutils/README.original
Normal file
335
appl/dceutils/README.original
Normal file
@ -0,0 +1,335 @@
|
||||
KERBEROS and DCE INTEROPERABILITY ROUTINES
|
||||
|
||||
WHAT'S NEW
|
||||
|
||||
When k5dcecon was examining the ticket caches looking to
|
||||
update one with a newer TGT, it might update the wrong
|
||||
one for the correct user. This problem was reported by PNNL,
|
||||
and is now fixed.
|
||||
|
||||
Any Kerberized application can now use a forwarded TGT to establish a
|
||||
DCE context, or can use a previously established DCE context. This is
|
||||
both a functional improvement and a performance improvement.
|
||||
|
||||
BACKGROUND
|
||||
|
||||
The MIT Kerberos 5 Release 1.x and DCE 1.1 can interoperate in a
|
||||
number of ways. This is possible because:
|
||||
|
||||
o DCE used Kerberos 5 internally. Based on the MIT code as of beta 4
|
||||
or so, with additional changes.
|
||||
|
||||
o The DCE security server can act as a K5 KDC, as defined in RFC 1510
|
||||
and responds on port 88.
|
||||
|
||||
o On the clients, DCE and Kerberos use the same format for the ticket
|
||||
cache, and then can share it. The KRB5CCNAME environment variable points
|
||||
at the cache.
|
||||
|
||||
o On the clients, DCE and Kerberos use the same format for the srvtab
|
||||
file. DCE refers to is a /krb5/v5srvtab and Kerberos as
|
||||
/etc/krb5.keytab. They can be symlinked.
|
||||
|
||||
o MIT has added many options to the krb5.conf configuration file
|
||||
which allows newer features of Release 1.0 to be turned off to match
|
||||
the earlier version of Kerberos upon which DCE is based.
|
||||
|
||||
o DCE will accept a externally obtained Kerberos TGT in place of a
|
||||
password when establishing a DCE context.
|
||||
|
||||
There are some areas where they differ, including the following:
|
||||
|
||||
o Administration of the database and the keytab files is done by the
|
||||
DCE routines, rather the the Kerberos kadmin.
|
||||
|
||||
o User password changes must be done using the DCE commands. Kpasswd
|
||||
does not work. (But there are mods to Kerberos to use the v5passwd
|
||||
with DCE.
|
||||
|
||||
o DCE goes beyond authentication only, and provides authorization via
|
||||
the PAC, and the dce-ptgt tickets stored in the cache. Thus a
|
||||
Kerberos KDC can not act as a DCE security server.
|
||||
|
||||
o A DCE cell and Kerberos realm can cross-realm authenticate, but
|
||||
there can be no intermediate realms. (There are other problems
|
||||
in this area as well. But directly connected realms/cells do work.)
|
||||
|
||||
o You can't link a module with the DCE library and the Kerberos
|
||||
library. They have conflicting routines, static data and structures.
|
||||
|
||||
One of the main features of DCE is the Distributed File System
|
||||
DFS. Access to DFS requires authentication and authorization, and when
|
||||
one uses a Kerberized network utility such as telnet, a forwarded
|
||||
Kerberos ticket can be used to establish the DCE context to allow
|
||||
access to DFS.
|
||||
|
||||
|
||||
NEW TO THIS RELEASE
|
||||
|
||||
This release introduces sharing of a DCE context, and PAG, and allows
|
||||
any Kerberized application to establish or share the context. This is
|
||||
made possible by using an undocumented feature of DCE which is on at
|
||||
least the Transarc and IBM releases of DCE 1.1.
|
||||
|
||||
I am in the process of trying to get this contributed to the general
|
||||
DCE 1.2.2 release as a patch, so it could be included in other vendors
|
||||
products. HP has expressed interest in doing this, as well as the
|
||||
OpenGroup if the modification is contributed. You can help by
|
||||
requesting Transarc and/or IBM to submit this modification to the
|
||||
OpenGroup and ask your vendor to adopt this modification.
|
||||
|
||||
The feature is a modification to the setpag() system call which will
|
||||
allow an authorized process to set the PAG to a specific value, and
|
||||
thus allow unrelated processes to share the same PAG.
|
||||
|
||||
This then allows the Kerberized daemons such as kshd, to exec a DCE
|
||||
module which established the DCE context. Kshd then sets the
|
||||
KRB5CCNAME environment variable and then issues the setpag() to use
|
||||
this context. This solves the linking problem. This is done via the
|
||||
k5dfspag.c routine.
|
||||
|
||||
The k5dfspag.c code is compiled with the lib/krb5/os routines and
|
||||
included in the libkrb5. A daemon calls krb5_dfs_pag after the
|
||||
krb5_kuserok has determined that the Kerberos principal and local
|
||||
userid pair are acceptable. This should be done early so as to give
|
||||
the daemon access to the home directory which may be located on DFS.
|
||||
If the .k5login file is used by krb5_kuserok it will need to be
|
||||
accessed by the daemon and will need special ACL handling.
|
||||
|
||||
The krb5_dfs_pag routine will exec the k5dcecon module to do all the
|
||||
real work. Upon return, if a PAG is obtained, krb5_dfs_pag with set
|
||||
the PAG for the current process to the returned PAG value. It will
|
||||
also set the KRB5CCNAME environment as well. Under DCE the PAG value
|
||||
is the nnnnnnn part of the name of the cache:
|
||||
FILE:/opt/dcelocal/var/security/creds/dcecred_nnnnnnnn.
|
||||
|
||||
The k5dcecon routine will attempt to use TGT which may have been
|
||||
forwarded, to convert it to a DCE context. If there is no TGT, an
|
||||
attempt will be made to join an existing PAG for the local userid, and
|
||||
Kerberos principal. If there are existing PAGs, and a forwarded TGT,
|
||||
k5dcecon will check the lifetime of the forwarded TGT, and if it is
|
||||
less than the lifetime of the PAG, it will just join the PAG. If it
|
||||
is greater, it will refresh the PAG using the forwarded TGT.
|
||||
This approach has the advantage of not requiring many new tickets from
|
||||
having to be obtained, and allows one to refresh a DCE context, or use
|
||||
an already established context.
|
||||
|
||||
If the system also has AFS, the AFS krb5_afs_pag should be called
|
||||
after the krb5_dfs_pag, since cache pointed at via the KRB5CCNAME may
|
||||
have changed, such as if a DFS PAG has been joined. The AFS code does
|
||||
not have the capability to join an existing AFS PAG, but can use the
|
||||
same cache which might already had a
|
||||
afsx/<afs.cell.name>@<k5.realm.name> service ticket.
|
||||
|
||||
|
||||
WHAT'S IN THIS RELEASE
|
||||
|
||||
The k5prelogin, k5dcelogin, k5afslogin (with ak5log) were designed to
|
||||
be slipped in between telnetd or klogind and login.krb5. They would
|
||||
use a forwarded Kerberos ticket to establish a DCE context. They are
|
||||
the older programs which are included here. They work on all DCE
|
||||
platforms, and don't take advantage of the undocumented setpag
|
||||
feature. (A version of k5dcelogin is being included with DCE 1.2.2)
|
||||
|
||||
K5dcecon is the new program which can be used to create, update or
|
||||
join a DCE context. k5dcecon returns KRB5CCNAME string which contains
|
||||
the PAG.
|
||||
|
||||
k5dfspag.c is to be built in the MIT Kerberos 5 release 1.0 patchlevel
|
||||
1 and added to the libkrb5. It will exec k5dcecon and upon return set
|
||||
the KRB5CCNAME and PAG. Mods to Kerberized klogind, rshd, telnetd,
|
||||
ftpd are available to use the k5dfspag.
|
||||
|
||||
Testpag.c is a test programs to see if the PAG can be set.
|
||||
|
||||
The cpwkey.c routine can be used to change a key in the DCE registry,
|
||||
by adding the key directly, or by setting the salt/pepper and password
|
||||
or by providing the key and the pepper. This could be useful when
|
||||
coping keys from a K4 or AFS database to DCE. It can also be used when
|
||||
setting a DCE to K5 cross-cell key. This program is a test program
|
||||
For mass inserts, it should be rewritten to read from stdin.
|
||||
|
||||
K5dcelogin can also be called directly, much like dce_login.
|
||||
I use the following commands in effect do the same thing as dce_login
|
||||
and get a forwardable ticket, DCE context and an AFS token:
|
||||
|
||||
#!/bin/csh
|
||||
# simulate a dce_login using krb5 kinit and k5dcelogin
|
||||
#
|
||||
setenv KRB5CCNAME FILE:/tmp/krb5cc_p$$
|
||||
/krb5/bin/kinit -f
|
||||
exec /krb5/sbin/k5dcelogin /krb5/sbin/k5afslogin /bin/csh
|
||||
#exec /krb5/sbin/k5dcelogin /bin/csh
|
||||
|
||||
This could be useful in a mixed cell where "AS_REQ" messages are
|
||||
handled by a K5 KDC, but DCE RPCs are handled by the DCE security
|
||||
server.
|
||||
|
||||
TESTING THE SETPAG
|
||||
|
||||
The krb5_dfs_pag routine relies on an undocumented feature which is
|
||||
in the AIX and Transarc Solaris ports of DCE and has been recently
|
||||
added to the SGI version. To test if this feature is present
|
||||
on some other DFS implementation use the testpag routine.
|
||||
|
||||
The testpag routine attempts to set a PAG value to one you supply. It
|
||||
uses the afs_syscall with the afs_setpag, and passes the supplied
|
||||
PAG value as the next parameter. On an unmodifed system, this
|
||||
will be ignored, and a new will be set. You should also check that
|
||||
if run as a user, you cannot join a PAG owned by another user.
|
||||
When run as root, any PAG should be usable.
|
||||
|
||||
On a machine with DFS running, do a dce_login to get a DCE context and
|
||||
PAG. ECHO the KRB5CCNAME and look at the nnnnnnnn at the end. It
|
||||
should look like an 8 char hex value, which may be 41ffxxxx on some
|
||||
systems.
|
||||
|
||||
Su to root and unsetenv KRB5CCNAME. Do a testpag -n nnnnnnnn where
|
||||
nnnnnnnn is the PAG obtained for the above name.
|
||||
|
||||
It should look like this example on an AIX 4.1.4 system:
|
||||
|
||||
pembroke# ./testpag -n 63dc9997
|
||||
calling k5dcepag newpag=63dc9997
|
||||
PAG returned = 63dc9997
|
||||
|
||||
You will be running under a new shell with the PAG and KRB5CCNAME set.
|
||||
If the PAG returned is the same as the newpag, then it worked. You can
|
||||
further verify this by doing a DCE klist, cd to DFS and a DCE klist
|
||||
again. The klist should show some tickets for DFS servers.
|
||||
|
||||
If the PAG returned is not the same, and repeated attempts show a
|
||||
returned PAG decremented by 1 from the previous returned PAG, then
|
||||
this system does not have the modification For example:
|
||||
|
||||
# ./testpag -n 41fffff9
|
||||
calling k5dcepag newpag=41fffff9
|
||||
PAG returned = 41fffff8
|
||||
# ./testpag -n 41fffff9
|
||||
calling k5dcepag newpag=41fffff9
|
||||
PAG returned = 41fffff7
|
||||
|
||||
In this case the syscall is ignoring the newpag parameter.
|
||||
|
||||
Running it with -n 0 should get the next PAG value with or without
|
||||
this modification.
|
||||
|
||||
If the DFS kernel extensions are not installed, you would get
|
||||
something like this:
|
||||
|
||||
caliban.ctd.anl.gov% ./testpag -n 012345678
|
||||
calling k5dcepag newpag=012345678
|
||||
Setpag failed with a system error
|
||||
PAG returned = ffffffff
|
||||
Not a good pag value
|
||||
|
||||
If you DFS implementation does not have this modification, you could
|
||||
attempt to install it yourself. But this requires source and requires
|
||||
modifications to the kernel extensions. At the end of this note is an
|
||||
untested sample using the DCE 1.2.2 source code. You can also contact
|
||||
your system vendor and ask for this modification.
|
||||
|
||||
UNICOS has a similar function setppag(newpag) which can be used to set
|
||||
the PAG of the parent. Contact me if you are interested.
|
||||
|
||||
HOW TO INSTALL
|
||||
|
||||
Examine the k5dfspag.c file to make sure the DFS syscalls are correct
|
||||
for your platform. See the /opt/dcelocal/share/include/dcedfs/syscall.h
|
||||
on Solaris for example.
|
||||
|
||||
You should build the testpag routine and make sure it works before
|
||||
adding all the other mods. If it fails you can still use the klogind
|
||||
and telnetd with the k5prelogin and k5dcelogin code.
|
||||
|
||||
If you intend to install with a prefix other than /krb5, change:
|
||||
DPAGAIX and K5DCECON in k5dfspag.c; the three references in
|
||||
k5prelogin.c; and the DESTDIR in the Makefile.
|
||||
|
||||
Get k5101.cdiff.xxxxxx.tar file and install the mods for ANL_DFS_PAG
|
||||
and ANL_DCE to the MIT Kerberos 5 source. These mods turn on some DCE
|
||||
related changes and the calls to krb5_dfs_pag.
|
||||
|
||||
Symlink or copy the k5dfspag.c to the src/lib/krb5/os directory.
|
||||
|
||||
Add the -DANL_DFS_PAG and -DANL_DCE flags to the configuration.
|
||||
|
||||
Configure and Build the Kerberos v5.
|
||||
|
||||
Modify the k5dce Makefile for your system.
|
||||
|
||||
Build the k5dcecon and related programs.
|
||||
|
||||
Install both the MIT Kerberos v5 and the k5dcecon and dpagaix if AIX.
|
||||
|
||||
The makefile can also build k5dcelogin and k5prelogin. The install
|
||||
can install k5dcelogin, k5prelogin and update the links for login.krb5
|
||||
-> k5prelogin and moving login.krb5 to login.k5. If you will be using
|
||||
the k5dcecon/k5dfspag with the Kerberos mods, you don't need
|
||||
k5prelogin, or the links changed, and may not need k5dcelogin.
|
||||
|
||||
Note that Transarc has obfuscated the entries to the lib, and
|
||||
the 1.0.3a is different from the 1.1. You may need to build two
|
||||
versions of the k5dcelogin and/or k5dcecon one for each.
|
||||
|
||||
AIX ONLY
|
||||
|
||||
The dpagaix routine is needed for AIX because of the way they do the
|
||||
syscalls.
|
||||
|
||||
The following fix.aix.libdce.mk is not needed if dce 2.1.0.21
|
||||
has been installed. This PTF exposed the needed entrypoints.
|
||||
|
||||
The fix.aix.libdce.mk is a Makefile for AIX 4.x to add the required
|
||||
external entry points to the libdce.a. These are needed by k5dcecon
|
||||
and k5dcelogin. A bug report was submitted to IBM on this, and it was
|
||||
rejected. But since DCE 1.2.2 will have a k5dcelogin, this should not
|
||||
be needed with 1.2.2
|
||||
|
||||
Copy /usr/lib/libdce.a to /usr/libdce.a.orig before starting. Copy the
|
||||
makefile to its own directory. It will create a new libdce.a which you
|
||||
need to copy back to /usr/lib/libdce.a You will need to reboot the
|
||||
machine. See the /usr/lpp/dce/examples/inst/README.AIX for a similar
|
||||
procedure. IBM was not responsive in a request to have these added.
|
||||
|
||||
UNTESTED KERNEL EXTENSION FOR SETPAG
|
||||
|
||||
*** src/file/osi/,osi_pag.c Wed Oct 2 13:03:05 1996
|
||||
--- src/file/osi/osi_pag.c Mon Jul 28 13:53:13 1997
|
||||
***************
|
||||
*** 293,298 ****
|
||||
--- 293,302 ----
|
||||
int code;
|
||||
|
||||
osi_MakePreemptionRight();
|
||||
+ /* allow sharing of a PAG by non child processes DEE- 6/6/97 */
|
||||
+ if (unused && osi_GetUID(osi_getucred()) == 0) {
|
||||
+ newpag = unused;
|
||||
+ } else {
|
||||
osi_mutex_enter(&osi_pagLock);
|
||||
now = osi_Time();
|
||||
soonest = osi_firstPagTime +
|
||||
***************
|
||||
*** 309,314 ****
|
||||
--- 313,319 ----
|
||||
}
|
||||
osi_mutex_exit(&osi_pagLock);
|
||||
newpag = osi_genpag();
|
||||
+ }
|
||||
osi_pcred_lock(p);
|
||||
credp = crcopy(osi_getucred());
|
||||
code = osi_SetPagInCred(credp, newpag);
|
||||
|
||||
Created 07/08/96
|
||||
Modified 09/30/96
|
||||
Modified 11/19/96
|
||||
Modified 12/19/96
|
||||
Modified 06/20/97
|
||||
Modified 07/28/97
|
||||
Modified 02/18/98
|
||||
|
||||
Douglas E. Engert <DEEngert@anl.gov>
|
||||
Argonne National Laboratory
|
||||
9700 South Cass Avenue
|
||||
Argonne, Illinois 60439
|
||||
(630) 252-5444
|
3
appl/dceutils/dfspag.exp
Normal file
3
appl/dceutils/dfspag.exp
Normal file
@ -0,0 +1,3 @@
|
||||
#!/unix
|
||||
* kernel extentions used to get the pag
|
||||
kafs_syscall syscall
|
23
appl/dceutils/dpagaix.c
Normal file
23
appl/dceutils/dpagaix.c
Normal file
@ -0,0 +1,23 @@
|
||||
/*
|
||||
* dpagaix.c
|
||||
* On AIX we need to get the kernel extentions
|
||||
* with the DFS kafs_syscall in it.
|
||||
* We might be running on a system
|
||||
* where DFS is not active.
|
||||
* So we use this dummy routine which
|
||||
* might not load to do the dirty work
|
||||
*
|
||||
* DCE does this with the /usr/lib/drivers/dfsloadobj
|
||||
*
|
||||
*/
|
||||
|
||||
int dpagaix(parm1, parm2, parm3, parm4, parm5, parm6)
|
||||
int parm1;
|
||||
int parm2;
|
||||
int parm3;
|
||||
int parm4;
|
||||
int parm5;
|
||||
int parm6;
|
||||
{
|
||||
return(kafs_syscall(parm1, parm2, parm3, parm4, parm5, parm6));
|
||||
}
|
165
appl/dceutils/k5dce.h
Normal file
165
appl/dceutils/k5dce.h
Normal file
@ -0,0 +1,165 @@
|
||||
/* dummy K5 routines which are needed to get this to
|
||||
* compile without having access ti the DCE versions
|
||||
* of the header files.
|
||||
* Thiis is very crude, and OSF needs to expose the K5
|
||||
* API.
|
||||
*/
|
||||
|
||||
#ifdef sun
|
||||
/* Transarc obfascates these routines */
|
||||
#ifdef DCE_1_1
|
||||
|
||||
#define krb5_init_ets _dce_PkjKqOaklP
|
||||
#define krb5_copy_creds _dce_LuFxPiITzD
|
||||
#define krb5_unparse_name _dce_LWHtAuNgRV
|
||||
#define krb5_get_default_realm _dce_vDruhprWGh
|
||||
#define krb5_build_principal _dce_qwAalSzTtF
|
||||
#define krb5_build_principal_ext _dce_vhafIQlejW
|
||||
#define krb5_build_principal_va _dce_alsqToMmuJ
|
||||
#define krb5_cc_default _dce_KZRshhTXhE
|
||||
#define krb5_cc_default_name _dce_bzJVAjHXVQ
|
||||
#define sec_login_krb5_add_cred _dce_ePDtOJTZvU
|
||||
|
||||
#else /* DCE 1.0.3a */
|
||||
|
||||
#define krb5_init_ets _dce_BmLRpOVsBo
|
||||
#define krb5_copy_creds _dce_VGwSEBNwaf
|
||||
#define krb5_unparse_name _dce_PgAOkJoMXA
|
||||
#define krb5_get_default_realm _dce_plVOzStKyK
|
||||
#define krb5_build_principal _dce_uAKSsluIFy
|
||||
#define krb5_build_principal_ext _dce_tRMpPiRada
|
||||
#define krb5_build_principal_va _dce_SxnLejZemH
|
||||
#define krb5_cc_default _dce_SeKosWFnsv
|
||||
#define krb5_cc_default_name _dce_qJeaphJWVc
|
||||
#define sec_login_krb5_add_cred _dce_uHwRasumsN
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Define the bare minimum k5 structures which are needed
|
||||
* by this program. Since the krb5 includes are not supplied
|
||||
* with DCE, these were based on the MIT Kerberos 5 beta 3
|
||||
* which should match the DCE as of 1.0.3 at least.
|
||||
* The tricky one is the krb5_creds, since one is allocated
|
||||
* by this program, and it needs access to the client principal
|
||||
* in it.
|
||||
* Note that there are no function prototypes, so there is no
|
||||
* compile time checking.
|
||||
* DEE 07/11/95
|
||||
*/
|
||||
#define NPROTOTYPE(x) ()
|
||||
typedef int krb5_int32; /* assuming all DCE systems are 32 bit */
|
||||
typedef short krb5short; /* assuming short is 16 bit */
|
||||
typedef krb5_int32 krb5_error_code;
|
||||
typedef unsigned char krb5_octet;
|
||||
typedef krb5_octet krb5_boolean;
|
||||
typedef krb5short krb5_keytype; /* in k5.2 it's a short */
|
||||
typedef krb5_int32 krb5_flags;
|
||||
typedef krb5_int32 krb5_timestamp; /* is a time_t in krb5.h */
|
||||
|
||||
typedef char * krb5_pointer; /* pointer to unexposed data */
|
||||
|
||||
typedef struct _krb5_ccache {
|
||||
struct _krb5_cc_ops *ops;
|
||||
krb5_pointer data;
|
||||
} *krb5_ccache;
|
||||
|
||||
typedef struct _krb5_cc_ops {
|
||||
char *prefix;
|
||||
char *(*get_name) NPROTOTYPE((krb5_ccache));
|
||||
krb5_error_code (*resolve) NPROTOTYPE((krb5_ccache *, char *));
|
||||
krb5_error_code (*gen_new) NPROTOTYPE((krb5_ccache *));
|
||||
krb5_error_code (*init) NPROTOTYPE((krb5_ccache, krb5_principal));
|
||||
krb5_error_code (*destroy) NPROTOTYPE((krb5_ccache));
|
||||
krb5_error_code (*close) NPROTOTYPE((krb5_ccache));
|
||||
krb5_error_code (*store) NPROTOTYPE((krb5_ccache, krb5_creds *));
|
||||
krb5_error_code (*retrieve) NPROTOTYPE((krb5_ccache, krb5_flags,
|
||||
krb5_creds *, krb5_creds *));
|
||||
krb5_error_code (*get_princ) NPROTOTYPE((krb5_ccache,
|
||||
krb5_principal *));
|
||||
krb5_error_code (*get_first) NPROTOTYPE((krb5_ccache,
|
||||
krb5_cc_cursor *));
|
||||
krb5_error_code (*get_next) NPROTOTYPE((krb5_ccache, krb5_cc_cursor *,
|
||||
krb5_creds *));
|
||||
krb5_error_code (*end_get) NPROTOTYPE((krb5_ccache, krb5_cc_cursor *));
|
||||
krb5_error_code (*remove_cred) NPROTOTYPE((krb5_ccache, krb5_flags,
|
||||
krb5_creds *));
|
||||
krb5_error_code (*set_flags) NPROTOTYPE((krb5_ccache, krb5_flags));
|
||||
} krb5_cc_ops;
|
||||
|
||||
typedef struct _krb5_keyblock {
|
||||
krb5_keytype keytype;
|
||||
int length;
|
||||
krb5_octet *contents;
|
||||
} krb5_keyblock;
|
||||
|
||||
typedef struct _krb5_ticket_times {
|
||||
krb5_timestamp authtime;
|
||||
krb5_timestamp starttime;
|
||||
krb5_timestamp endtime;
|
||||
krb5_timestamp renew_till;
|
||||
} krb5_ticket_times;
|
||||
|
||||
typedef krb5_pointer krb5_cc_cursor;
|
||||
|
||||
typedef struct _krb5_data {
|
||||
int length;
|
||||
char *data;
|
||||
} krb5_data;
|
||||
|
||||
typedef struct _krb5_authdata {
|
||||
int ad_type;
|
||||
int length;
|
||||
krb5_octet *contents;
|
||||
} krb5_authdata;
|
||||
|
||||
typedef struct _krb5_creds {
|
||||
krb5_pointer client;
|
||||
krb5_pointer server;
|
||||
krb5_keyblock keyblock;
|
||||
krb5_ticket_times times;
|
||||
krb5_boolean is_skey;
|
||||
krb5_flags ticket_flags;
|
||||
krb5_pointer **addresses;
|
||||
krb5_data ticket;
|
||||
krb5_data second_ticket;
|
||||
krb5_pointer **authdata;
|
||||
} krb5_creds;
|
||||
|
||||
typedef krb5_pointer krb5_principal;
|
||||
|
||||
#define KRB5_CC_END 336760974
|
||||
#define KRB5_TC_OPENCLOSE 0x00000001
|
||||
|
||||
/* Ticket flags */
|
||||
/* flags are 32 bits; each host is responsible to put the 4 bytes
|
||||
representing these bits into net order before transmission */
|
||||
/* #define TKT_FLG_RESERVED 0x80000000 */
|
||||
#define TKT_FLG_FORWARDABLE 0x40000000
|
||||
#define TKT_FLG_FORWARDED 0x20000000
|
||||
#define TKT_FLG_PROXIABLE 0x10000000
|
||||
#define TKT_FLG_PROXY 0x08000000
|
||||
#define TKT_FLG_MAY_POSTDATE 0x04000000
|
||||
#define TKT_FLG_POSTDATED 0x02000000
|
||||
#define TKT_FLG_INVALID 0x01000000
|
||||
#define TKT_FLG_RENEWABLE 0x00800000
|
||||
#define TKT_FLG_INITIAL 0x00400000
|
||||
#define TKT_FLG_PRE_AUTH 0x00200000
|
||||
#define TKT_FLG_HW_AUTH 0x00100000
|
||||
#ifdef PK_INIT
|
||||
#define TKT_FLG_PUBKEY_PREAUTH 0x00080000
|
||||
#define TKT_FLG_DIGSIGN_PREAUTH 0x00040000
|
||||
#define TKT_FLG_PRIVKEY_PREAUTH 0x00020000
|
||||
#endif
|
||||
|
||||
|
||||
#define krb5_cc_get_principal(cache, principal) (*(cache)->ops->get_princ)(cache, principal)
|
||||
#define krb5_cc_set_flags(cache, flags) (*(cache)->ops->set_flags)(cache, flags)
|
||||
#define krb5_cc_get_name(cache) (*(cache)->ops->get_name)(cache)
|
||||
#define krb5_cc_start_seq_get(cache, cursor) (*(cache)->ops->get_first)(cache, cursor)
|
||||
#define krb5_cc_next_cred(cache, cursor, creds) (*(cache)->ops->get_next)(cache, cursor, creds)
|
||||
#define krb5_cc_destroy(cache) (*(cache)->ops->destroy)(cache)
|
||||
#define krb5_cc_end_seq_get(cache, cursor) (*(cache)->ops->end_get)(cache, cursor)
|
||||
|
||||
/* end of k5 dummy typedefs */
|
||||
|
792
appl/dceutils/k5dcecon.c
Normal file
792
appl/dceutils/k5dcecon.c
Normal file
@ -0,0 +1,792 @@
|
||||
/*
|
||||
* (c) Copyright 1995 HEWLETT-PACKARD COMPANY
|
||||
*
|
||||
* To anyone who acknowledges that this file is provided
|
||||
* "AS IS" without any express or implied warranty:
|
||||
* permission to use, copy, modify, and distribute this
|
||||
* file for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice and this
|
||||
* notice appears in all copies, and that the name of
|
||||
* Hewlett-Packard Company not be used in advertising or
|
||||
* publicity pertaining to distribution of the software
|
||||
* without specific, written prior permission. Hewlett-
|
||||
* Packard Company makes no representations about the
|
||||
* suitability of this software for any purpose.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
* k5dcecon - Program to convert a K5 TGT to a DCE context,
|
||||
* for use with DFS and its PAG.
|
||||
*
|
||||
* The program is designed to be called as a sub process,
|
||||
* and return via stdout the name of the cache which implies
|
||||
* the PAG which should be used. This program itself does not
|
||||
* use the cache or PAG itself, so the PAG in the kernel for
|
||||
* this program may not be set.
|
||||
*
|
||||
* The calling program can then use the name of the cache
|
||||
* to set the KRB5CCNAME and PAG for itself and its children.
|
||||
*
|
||||
* If no ticket was passed, an attemplt to join an existing
|
||||
* PAG will be made.
|
||||
*
|
||||
* If a forwarded K5 TGT is passed in, either a new DCE
|
||||
* context will be created, or an existing one will be updated.
|
||||
* If the same ticket was already used to create an existing
|
||||
* context, it will be joined instead.
|
||||
*
|
||||
* Parts of this program are based on k5dceauth,c which was
|
||||
* given to me by HP and by the k5dcelogin.c which I developed.
|
||||
* A slightly different version of k5dcelogin.c, was added to
|
||||
* DCE 1.2.2
|
||||
*
|
||||
* D. E. Engert 6/17/97 ANL
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/types.h>
|
||||
#include <dirent.h>
|
||||
#include <sys/stat.h>
|
||||
#include <locale.h>
|
||||
#include <pwd.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <errno.h>
|
||||
#include "k5dce.h"
|
||||
|
||||
#include <dce/sec_login.h>
|
||||
#include <dce/dce_error.h>
|
||||
#include <dce/passwd.h>
|
||||
|
||||
/* #define DEBUG */
|
||||
#if defined(DEBUG)
|
||||
#define DEEDEBUG(A) fprintf(stderr,A); fflush(stderr)
|
||||
#define DEEDEBUG2(A,B) fprintf(stderr,A,B); fflush(stderr)
|
||||
#else
|
||||
#define DEEDEBUG(A)
|
||||
#define DEEDEBUG2(A,B)
|
||||
#endif
|
||||
|
||||
#ifdef __hpux
|
||||
#define seteuid(A) setresuid(-1,A,-1)
|
||||
#endif
|
||||
|
||||
|
||||
int k5dcecreate (uid_t, char *, char*, krb5_creds **);
|
||||
int k5dcecon (uid_t, char *, char *);
|
||||
int k5dcegettgt (krb5_ccache *, char *, char *, krb5_creds **);
|
||||
int k5dcematch (uid_t, char *, char *, off_t *, krb5_creds **);
|
||||
int k5dcesession (uid_t, char *, krb5_creds **, int *,krb5_flags);
|
||||
|
||||
|
||||
char *progname = "k5dcecon";
|
||||
static time_t now;
|
||||
|
||||
#ifdef notdef
|
||||
#ifdef _AIX
|
||||
/*---------------------------------------------*/
|
||||
/* AIX with DCE 1.1 does not have the com_err in the libdce.a
|
||||
* do a half hearted job of substituting for it.
|
||||
*/
|
||||
void com_err(char *p1, int code, ...)
|
||||
{
|
||||
int lst;
|
||||
dce_error_string_t err_string;
|
||||
dce_error_inq_text(code, err_string, &lst);
|
||||
fprintf(stderr,"Error %d in %s: %s\n", code, p1, err_string );
|
||||
}
|
||||
|
||||
/*---------------------------------------------*/
|
||||
void krb5_init_ets()
|
||||
{
|
||||
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
/*------------------------------------------------*/
|
||||
/* find a cache to use for our new pag */
|
||||
/* Since there is no simple way to determine which
|
||||
* caches are associated with a pag, we will have
|
||||
* do look around and see what makes most sense on
|
||||
* different systems.
|
||||
* on a Solaris system, and in the DCE source,
|
||||
* the pags always start with a 41.
|
||||
* this is not true on the IBM, where there does not
|
||||
* appear to be any pattern.
|
||||
*
|
||||
* But since we are always certifing our creds when
|
||||
* they are received, we can us that fact, and look
|
||||
* at the first word of the associated data file
|
||||
* to see that it has a "5". If not don't use.
|
||||
*/
|
||||
|
||||
int k5dcesession(luid, pname, tgt, ppag, tflags)
|
||||
uid_t luid;
|
||||
char *pname;
|
||||
krb5_creds **tgt;
|
||||
int *ppag;
|
||||
krb5_flags tflags;
|
||||
{
|
||||
DIR *dirp;
|
||||
struct dirent *direntp;
|
||||
off_t size;
|
||||
krb5_timestamp endtime;
|
||||
int better = 0;
|
||||
krb5_creds *xtgt;
|
||||
|
||||
char prev_name[17] = "";
|
||||
krb5_timestamp prev_endtime;
|
||||
off_t prev_size;
|
||||
u_long prev_pag = 0;
|
||||
|
||||
char ccname[64] = "FILE:/opt/dcelocal/var/security/creds/";
|
||||
|
||||
error_status_t st;
|
||||
sec_login_handle_t lcontext = 0;
|
||||
dce_error_string_t err_string;
|
||||
int lst;
|
||||
|
||||
DEEDEBUG2("k5dcesession looking for flags %8.8x\n",tflags);
|
||||
|
||||
dirp = opendir("/opt/dcelocal/var/security/creds/");
|
||||
if (dirp == NULL) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
while ( (direntp = readdir( dirp )) != NULL ) {
|
||||
|
||||
/*
|
||||
* (but root has the ffffffff which we are not interested in)
|
||||
*/
|
||||
if (!strncmp(direntp->d_name,"dcecred_",8)
|
||||
&& (strlen(direntp->d_name) == 16)) {
|
||||
|
||||
/* looks like a cache name, lets do the stat, etc */
|
||||
|
||||
strcpy(ccname+38,direntp->d_name);
|
||||
if (!k5dcematch(luid, pname, ccname, &size, &xtgt)) {
|
||||
|
||||
/* it's one of our caches, see if it is better
|
||||
* i.e. the endtime is farther, and if the endtimes
|
||||
* are the same, take the larger, as he who has the
|
||||
* most tickets wins.
|
||||
* it must also had the same set of flags at least
|
||||
* i.e. if the forwarded TGT is forwardable, this one must
|
||||
* be as well.
|
||||
*/
|
||||
|
||||
DEEDEBUG2("Cache:%s",direntp->d_name);
|
||||
DEEDEBUG2(" size:%d",size);
|
||||
DEEDEBUG2(" flags:%8.8x",xtgt->ticket_flags);
|
||||
DEEDEBUG2(" %s",ctime((time_t *)&xtgt->times.endtime));
|
||||
|
||||
if ((xtgt->ticket_flags & tflags) == tflags ) {
|
||||
if (prev_name[0]) {
|
||||
if (xtgt->times.endtime > prev_endtime) {
|
||||
better = 1;
|
||||
} else if ((xtgt->times.endtime = prev_endtime)
|
||||
&& (size > prev_size)){
|
||||
better = 1;
|
||||
}
|
||||
} else { /* the first */
|
||||
if (xtgt->times.endtime >= now) {
|
||||
better = 1;
|
||||
}
|
||||
}
|
||||
if (better) {
|
||||
strcpy(prev_name, direntp->d_name);
|
||||
prev_endtime = xtgt->times.endtime;
|
||||
prev_size = size;
|
||||
sscanf(prev_name+8,"%8X",&prev_pag);
|
||||
*tgt = xtgt;
|
||||
better = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
(void)closedir( dirp );
|
||||
|
||||
if (!prev_name[0])
|
||||
return 1; /* failed to find one */
|
||||
|
||||
DEEDEBUG2("Best: %s\n",prev_name);
|
||||
|
||||
if (ppag)
|
||||
*ppag = prev_pag;
|
||||
|
||||
strcpy(ccname+38,prev_name);
|
||||
setenv("KRB5CCNAME",ccname,1);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------------*/
|
||||
/* see if this cache is for this this principal */
|
||||
|
||||
int k5dcematch(luid, pname, ccname, sizep, tgt)
|
||||
uid_t luid;
|
||||
char *pname;
|
||||
char *ccname;
|
||||
off_t *sizep; /* size of the file */
|
||||
krb5_creds **tgt;
|
||||
{
|
||||
|
||||
krb5_ccache cache;
|
||||
struct stat stbuf;
|
||||
char ccdata[256];
|
||||
int fd;
|
||||
int status;
|
||||
|
||||
/* DEEDEBUG2("k5dcematch called: cache=%s\n",ccname+38); */
|
||||
|
||||
if (!strncmp(ccname,"FILE:",5)) {
|
||||
|
||||
strcpy(ccdata,ccname+5);
|
||||
strcat(ccdata,".data");
|
||||
|
||||
/* DEEDEBUG2("Checking the .data file for %s\n",ccdata); */
|
||||
|
||||
if (stat(ccdata, &stbuf))
|
||||
return(1);
|
||||
|
||||
if (stbuf.st_uid != luid)
|
||||
return(1);
|
||||
|
||||
if ((fd = open(ccdata,O_RDONLY)) == -1)
|
||||
return(1);
|
||||
|
||||
if ((read(fd,&status,4)) != 4) {
|
||||
close(fd);
|
||||
return(1);
|
||||
}
|
||||
|
||||
/* DEEDEBUG2(".data file status = %d\n", status); */
|
||||
|
||||
if (status != 5)
|
||||
return(1);
|
||||
|
||||
if (stat(ccname+5, &stbuf))
|
||||
return(1);
|
||||
|
||||
if (stbuf.st_uid != luid)
|
||||
return(1);
|
||||
|
||||
*sizep = stbuf.st_size;
|
||||
}
|
||||
|
||||
return(k5dcegettgt(&cache, ccname, pname, tgt));
|
||||
}
|
||||
|
||||
|
||||
/*----------------------------------------*/
|
||||
/* k5dcegettgt - get the tgt from a cache */
|
||||
|
||||
int k5dcegettgt(pcache, ccname, pname, tgt)
|
||||
krb5_ccache *pcache;
|
||||
char *ccname;
|
||||
char *pname;
|
||||
krb5_creds **tgt;
|
||||
|
||||
{
|
||||
krb5_ccache cache;
|
||||
krb5_cc_cursor cur;
|
||||
krb5_creds creds;
|
||||
int code;
|
||||
int found = 1;
|
||||
krb5_principal princ;
|
||||
char *kusername;
|
||||
krb5_flags flags;
|
||||
char *sname, *realm, *tgtname = NULL;
|
||||
|
||||
/* Since DCE does not expose much of the Kerberos interface,
|
||||
* we will have to use what we can. This means setting the
|
||||
* KRB5CCNAME for each file we want to test
|
||||
* We will also not worry about freeing extra cache structures
|
||||
* as this this routine is also not exposed, and this should not
|
||||
* effect this module.
|
||||
* We should also free the creds contents, but that is not exposed
|
||||
* either.
|
||||
*/
|
||||
|
||||
setenv("KRB5CCNAME",ccname,1);
|
||||
cache = NULL;
|
||||
*tgt = NULL;
|
||||
|
||||
if (code = krb5_cc_default(pcache)) {
|
||||
com_err(progname, code, "while getting ccache");
|
||||
goto return2;
|
||||
}
|
||||
|
||||
DEEDEBUG("Got cache\n");
|
||||
flags = 0;
|
||||
if (code = krb5_cc_set_flags(*pcache, flags)) {
|
||||
com_err(progname, code,"While setting flags");
|
||||
goto return2;
|
||||
}
|
||||
DEEDEBUG("Set flags\n");
|
||||
if (code = krb5_cc_get_principal(*pcache, &princ)) {
|
||||
com_err(progname, code, "While getting princ");
|
||||
goto return1;
|
||||
}
|
||||
DEEDEBUG("Got principal\n");
|
||||
if (code = krb5_unparse_name(princ, &kusername)) {
|
||||
com_err(progname, code, "While unparsing principal");
|
||||
goto return1;
|
||||
}
|
||||
|
||||
DEEDEBUG2("Unparsed to \"%s\"\n", kusername);
|
||||
DEEDEBUG2("pname is \"%s\"\n", pname);
|
||||
if (strcmp(kusername, pname)) {
|
||||
DEEDEBUG("Principals not equal\n");
|
||||
goto return1;
|
||||
}
|
||||
DEEDEBUG("Principals equal\n");
|
||||
|
||||
realm = strchr(pname,'@');
|
||||
realm++;
|
||||
|
||||
if ((tgtname = malloc(9 + 2 * strlen(realm))) == 0) {
|
||||
fprintf(stderr,"Malloc failed for tgtname\n");
|
||||
goto return1;
|
||||
}
|
||||
|
||||
strcpy(tgtname,"krbtgt/");
|
||||
strcat(tgtname,realm);
|
||||
strcat(tgtname,"@");
|
||||
strcat(tgtname,realm);
|
||||
|
||||
DEEDEBUG2("Getting tgt %s\n", tgtname);
|
||||
if (code = krb5_cc_start_seq_get(*pcache, &cur)) {
|
||||
com_err(progname, code, "while starting to retrieve tickets");
|
||||
goto return1;
|
||||
}
|
||||
|
||||
while (!(code = krb5_cc_next_cred(*pcache, &cur, &creds))) {
|
||||
krb5_creds *cred = &creds;
|
||||
|
||||
if (code = krb5_unparse_name(cred->server, &sname)) {
|
||||
com_err(progname, code, "while unparsing server name");
|
||||
continue;
|
||||
}
|
||||
|
||||
if (strncmp(sname, tgtname, strlen(tgtname)) == 0) {
|
||||
DEEDEBUG("FOUND\n");
|
||||
if (code = krb5_copy_creds(&creds, tgt)) {
|
||||
com_err(progname, code, "while copying TGT");
|
||||
goto return1;
|
||||
}
|
||||
found = 0;
|
||||
break;
|
||||
}
|
||||
/* we should do a krb5_free_cred_contents(creds); */
|
||||
}
|
||||
|
||||
if (code = krb5_cc_end_seq_get(*pcache, &cur)) {
|
||||
com_err(progname, code, "while finishing retrieval");
|
||||
goto return2;
|
||||
}
|
||||
|
||||
return1:
|
||||
flags = KRB5_TC_OPENCLOSE;
|
||||
krb5_cc_set_flags(*pcache, flags); /* force a close */
|
||||
|
||||
return2:
|
||||
if (tgtname)
|
||||
free(tgtname);
|
||||
|
||||
return(found);
|
||||
}
|
||||
|
||||
|
||||
/*------------------------------------------*/
|
||||
/* Convert a forwarded TGT to a DCE context */
|
||||
int k5dcecon(luid, luser, pname)
|
||||
uid_t luid;
|
||||
char *luser;
|
||||
char *pname;
|
||||
{
|
||||
|
||||
krb5_creds *ftgt = NULL;
|
||||
krb5_creds *tgt = NULL;
|
||||
unsigned32 dfspag;
|
||||
boolean32 reset_passwd = 0;
|
||||
int lst;
|
||||
dce_error_string_t err_string;
|
||||
char *shell_prog;
|
||||
krb5_ccache fcache;
|
||||
char *ccname;
|
||||
char *kusername;
|
||||
char *urealm;
|
||||
char *cp;
|
||||
int pag;
|
||||
int code;
|
||||
krb5_timestamp endtime;
|
||||
|
||||
|
||||
/* If there is no cache to be converted, we should not be here */
|
||||
|
||||
if ((ccname = getenv("KRB5CCNAME")) == NULL) {
|
||||
DEEDEBUG("No KRB5CCNAME\n");
|
||||
return(1);
|
||||
}
|
||||
|
||||
if (k5dcegettgt(&fcache, ccname, pname, &ftgt)) {
|
||||
fprintf(stderr, "%s: Did not find TGT\n", progname);
|
||||
return(1);
|
||||
}
|
||||
|
||||
|
||||
DEEDEBUG2("flags=%x\n",ftgt->ticket_flags);
|
||||
if (!(ftgt->ticket_flags & TKT_FLG_FORWARDABLE)){
|
||||
fprintf(stderr,"Ticket not forwardable\n");
|
||||
return(0); /* but OK to continue */
|
||||
}
|
||||
|
||||
setenv("KRB5CCNAME","",1);
|
||||
|
||||
#define TKT_ACCEPTABLE (TKT_FLG_FORWARDABLE | TKT_FLG_PROXIABLE \
|
||||
| TKT_FLG_MAY_POSTDATE | TKT_FLG_RENEWABLE | TKT_FLG_HW_AUTH \
|
||||
| TKT_FLG_PRE_AUTH)
|
||||
|
||||
if (!k5dcesession(luid, pname, &tgt, &pag,
|
||||
(ftgt->ticket_flags & TKT_ACCEPTABLE))) {
|
||||
if (ftgt->times.endtime > tgt->times.endtime) {
|
||||
DEEDEBUG("Updating existing cache\n");
|
||||
return(k5dceupdate(&ftgt, pag));
|
||||
} else {
|
||||
DEEDEBUG("Using existing cache\n");
|
||||
return(0); /* use the original one */
|
||||
}
|
||||
}
|
||||
/* see if the tgts match up */
|
||||
|
||||
if ((code = k5dcecreate(luid, luser, pname, &ftgt))) {
|
||||
return (code);
|
||||
}
|
||||
|
||||
/*
|
||||
* Destroy the Kerberos5 cred cache file.
|
||||
* but dont care aout the return code.
|
||||
*/
|
||||
|
||||
DEEDEBUG("Destroying the old cache\n");
|
||||
if ((code = krb5_cc_destroy(fcache))) {
|
||||
com_err(progname, code, "while destroying Kerberos5 ccache");
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
|
||||
/*--------------------------------------------------*/
|
||||
/* k5dceupdate - update the cache with a new TGT */
|
||||
/* Assumed that the KRB5CCNAME has been set */
|
||||
|
||||
int k5dceupdate(krbtgt, pag)
|
||||
krb5_creds **krbtgt;
|
||||
int pag;
|
||||
{
|
||||
|
||||
krb5_ccache ccache;
|
||||
int code;
|
||||
|
||||
if (code = krb5_cc_default(&ccache)) {
|
||||
com_err(progname, code, "while opening cache for update");
|
||||
return(2);
|
||||
}
|
||||
|
||||
if (code = ccache->ops->init(ccache,(*krbtgt)->client)) {
|
||||
com_err(progname, code, "while reinitilizing cache");
|
||||
return(3);
|
||||
}
|
||||
|
||||
/* krb5_cc_store_cred */
|
||||
if (code = ccache->ops->store(ccache, *krbtgt)) {
|
||||
com_err(progname, code, "while updating cache");
|
||||
return(2);
|
||||
}
|
||||
|
||||
sec_login_pag_new_tgt(pag, (*krbtgt)->times.endtime);
|
||||
return(0);
|
||||
}
|
||||
/*--------------------------------------------------*/
|
||||
/* k5dcecreate - create a new DCE context */
|
||||
|
||||
int k5dcecreate(luid, luser, pname, krbtgt)
|
||||
uid_t luid;
|
||||
char *luser;
|
||||
char *pname;
|
||||
krb5_creds **krbtgt;
|
||||
{
|
||||
|
||||
char *cp;
|
||||
char *urealm;
|
||||
char *username;
|
||||
char *defrealm;
|
||||
uid_t uid;
|
||||
|
||||
error_status_t st;
|
||||
sec_login_handle_t lcontext = 0;
|
||||
sec_login_auth_src_t auth_src = 0;
|
||||
boolean32 reset_passwd = 0;
|
||||
int lst;
|
||||
dce_error_string_t err_string;
|
||||
|
||||
setenv("KRB5CCNAME","",1); /* make sure it not misused */
|
||||
|
||||
uid = getuid();
|
||||
DEEDEBUG2("uid=%d\n",uid);
|
||||
|
||||
/* if run as root, change to user, so as to have the
|
||||
* cache created for the local user even if cross-cell
|
||||
* If run as a user, let standard file protection work.
|
||||
*/
|
||||
|
||||
if (uid == 0) {
|
||||
if (seteuid(luid) < 0)
|
||||
goto abort;
|
||||
}
|
||||
|
||||
cp = strchr(pname,'@');
|
||||
*cp = '\0';
|
||||
urealm = ++cp;
|
||||
|
||||
DEEDEBUG2("basename=%s\n",cp);
|
||||
DEEDEBUG2("realm=%s\n",urealm);
|
||||
|
||||
/* now build the username as a single string or a /.../cell/user
|
||||
* if this is a cross cell
|
||||
*/
|
||||
|
||||
if ((username = malloc(7+strlen(pname)+strlen(urealm))) == 0) {
|
||||
fprintf(stderr,"Malloc failed for username\n");
|
||||
goto abort;
|
||||
}
|
||||
if (krb5_get_default_realm(&defrealm)) {
|
||||
DEEDEBUG("krb5_get_default_realm failed\n");
|
||||
goto abort;
|
||||
}
|
||||
|
||||
|
||||
if (!strcmp(urealm,defrealm)) {
|
||||
strcpy(username,pname);
|
||||
} else {
|
||||
strcpy(username,"/.../");
|
||||
strcat(username,urealm);
|
||||
strcat(username,"/");
|
||||
strcat(username,pname);
|
||||
}
|
||||
|
||||
/*
|
||||
* Setup a DCE login context
|
||||
*/
|
||||
|
||||
if (sec_login_setup_identity((unsigned_char_p_t)username,
|
||||
(sec_login_external_tgt|sec_login_proxy_cred),
|
||||
&lcontext, &st)) {
|
||||
/*
|
||||
* Add our TGT.
|
||||
*/
|
||||
DEEDEBUG("Adding our new TGT\n");
|
||||
sec_login_krb5_add_cred(lcontext, *krbtgt, &st);
|
||||
if (st) {
|
||||
dce_error_inq_text(st, err_string, &lst);
|
||||
fprintf(stderr,
|
||||
"Error while adding credentials for %s because %s\n",
|
||||
username, err_string);
|
||||
goto abort;
|
||||
}
|
||||
DEEDEBUG("validating and certifying\n");
|
||||
/*
|
||||
* Now "validate" and certify the identity,
|
||||
* usually we would pass a password here, but...
|
||||
* sec_login_valid_and_cert_ident
|
||||
* sec_login_validate_identity
|
||||
*/
|
||||
|
||||
if (sec_login_validate_identity(lcontext, 0, &reset_passwd,
|
||||
&auth_src, &st)) {
|
||||
DEEDEBUG2("validate_identity st=%d\n",st);
|
||||
if (st) {
|
||||
dce_error_inq_text(st, err_string, &lst);
|
||||
fprintf(stderr, "Validation error for %s because %s\n",
|
||||
username, err_string);
|
||||
goto abort;
|
||||
}
|
||||
if (!sec_login_certify_identity(lcontext,&st)) {
|
||||
dce_error_inq_text(st, err_string, &lst);
|
||||
fprintf(stderr,
|
||||
"Credentials not certified because %s\n",err_string);
|
||||
}
|
||||
if (reset_passwd) {
|
||||
fprintf(stderr,
|
||||
"Password must be changed for %s\n", username);
|
||||
}
|
||||
if (auth_src == sec_login_auth_src_local) {
|
||||
fprintf(stderr,
|
||||
"Credentials obtained from local registry for %s\n",
|
||||
username);
|
||||
}
|
||||
if (auth_src == sec_login_auth_src_overridden) {
|
||||
fprintf(stderr, "Validated %s from local override entry, no network credentials obtained\n", username);
|
||||
goto abort;
|
||||
|
||||
}
|
||||
/*
|
||||
* Actually create the cred files.
|
||||
*/
|
||||
DEEDEBUG("Ceating new cred files.\n");
|
||||
sec_login_set_context(lcontext, &st);
|
||||
if (st) {
|
||||
dce_error_inq_text(st, err_string, &lst);
|
||||
fprintf(stderr,
|
||||
"Unable to set context for %s because %s\n",
|
||||
username, err_string);
|
||||
goto abort;
|
||||
}
|
||||
|
||||
/*
|
||||
* Now free up the local context and leave the
|
||||
* network context with its pag
|
||||
*/
|
||||
#if 0
|
||||
sec_login_release_context(&lcontext, &st);
|
||||
if (st) {
|
||||
dce_error_inq_text(st, err_string, &lst);
|
||||
fprintf(stderr,
|
||||
"Unable to release context for %s because %s\n",
|
||||
username, err_string);
|
||||
goto abort;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
DEEDEBUG2("validate failed %d\n",st);
|
||||
dce_error_inq_text(st, err_string, &lst);
|
||||
fprintf(stderr,
|
||||
"Unable to validate %s because %s\n", username,
|
||||
err_string);
|
||||
goto abort;
|
||||
}
|
||||
}
|
||||
else {
|
||||
dce_error_inq_text(st, err_string, &lst);
|
||||
fprintf(stderr,
|
||||
"Unable to setup login entry for %s because %s\n",
|
||||
username, err_string);
|
||||
goto abort;
|
||||
}
|
||||
|
||||
done:
|
||||
/* if we were root, get back to root */
|
||||
|
||||
DEEDEBUG2("sec_login_inq_pag %8.8x\n",
|
||||
sec_login_inq_pag(lcontext, &st));
|
||||
|
||||
if (uid == 0) {
|
||||
seteuid(0);
|
||||
}
|
||||
|
||||
DEEDEBUG("completed\n");
|
||||
return(0);
|
||||
|
||||
abort:
|
||||
if (uid == 0) {
|
||||
seteuid(0);
|
||||
}
|
||||
|
||||
DEEDEBUG("Aborting\n");
|
||||
return(2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*-------------------------------------------------*/
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
int status;
|
||||
extern int optind;
|
||||
extern char *optarg;
|
||||
int rv;
|
||||
|
||||
char *lusername = NULL;
|
||||
char *pname = NULL;
|
||||
int fflag = 0;
|
||||
struct passwd *pw;
|
||||
uid_t luid;
|
||||
uid_t myuid;
|
||||
char *ccname;
|
||||
krb5_creds *tgt = NULL;
|
||||
|
||||
#ifdef DEBUG
|
||||
close(2);
|
||||
open("/tmp/k5dce.debug",O_WRONLY|O_CREAT|O_APPEND, 0600);
|
||||
#endif
|
||||
|
||||
if (myuid = getuid()) {
|
||||
DEEDEBUG2("UID = %d\n",myuid);
|
||||
exit(33); /* must be root to run this, get out now */
|
||||
}
|
||||
|
||||
while ((rv = getopt(argc,argv,"l:p:fs")) != -1) {
|
||||
DEEDEBUG2("Arg = %c\n", rv);
|
||||
switch(rv) {
|
||||
case 'l': /* user name */
|
||||
lusername = optarg;
|
||||
DEEDEBUG2("Optarg = %s\n", optarg);
|
||||
break;
|
||||
case 'p': /* principal name */
|
||||
pname = optarg;
|
||||
DEEDEBUG2("Optarg = %s\n", optarg);
|
||||
break;
|
||||
case 'f': /* convert a forwarded TGT to a context */
|
||||
fflag++;
|
||||
break;
|
||||
case 's': /* old test parameter, ignore it */
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
setlocale(LC_ALL, "");
|
||||
krb5_init_ets();
|
||||
time(&now); /* set time to check expired tickets */
|
||||
|
||||
/* if lusername == NULL, Then user is passed as the USER= variable */
|
||||
|
||||
if (!lusername) {
|
||||
lusername = getenv("USER");
|
||||
if (!lusername) {
|
||||
fprintf(stderr, "USER not in environment\n");
|
||||
return(3);
|
||||
}
|
||||
}
|
||||
|
||||
if ((pw = getpwnam(lusername)) == NULL) {
|
||||
fprintf(stderr, "Who are you?\n");
|
||||
return(44);
|
||||
}
|
||||
|
||||
luid = pw->pw_uid;
|
||||
|
||||
if (fflag) {
|
||||
status = k5dcecon(luid, lusername, pname);
|
||||
} else {
|
||||
status = k5dcesession(luid, pname, &tgt, NULL, 0);
|
||||
}
|
||||
|
||||
if (!status) {
|
||||
printf("%s",getenv("KRB5CCNAME")); /* return via stdout to caller */
|
||||
DEEDEBUG2("KRB5CCNAME=%s\n",getenv("KRB5CCNAME"));
|
||||
}
|
||||
|
||||
DEEDEBUG2("Returning status %d\n",status);
|
||||
return (status);
|
||||
}
|
150
appl/dceutils/testpag.c
Normal file
150
appl/dceutils/testpag.c
Normal file
@ -0,0 +1,150 @@
|
||||
/* Test the k5dcepag routine by setting a pag, and
|
||||
* and execing a shell under this pag.
|
||||
*
|
||||
* This allows you to join a PAG which was created
|
||||
* earlier by some other means.
|
||||
* for example k5dcecon
|
||||
*
|
||||
* Must be run as root for testing only.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/wait.h>
|
||||
#include <fcntl.h>
|
||||
#include <signal.h>
|
||||
#include <setjmp.h>
|
||||
#include <errno.h>
|
||||
|
||||
#define POSIX_SETJMP
|
||||
#define POSIX_SIGNALS
|
||||
|
||||
#ifdef POSIX_SIGNALS
|
||||
typedef struct sigaction handler;
|
||||
#define handler_init(H,F) (sigemptyset(&(H).sa_mask), \
|
||||
(H).sa_flags=0, \
|
||||
(H).sa_handler=(F))
|
||||
#define handler_swap(S,NEW,OLD) sigaction(S, &NEW, &OLD)
|
||||
#define handler_set(S,OLD) sigaction(S, &OLD, NULL)
|
||||
#else
|
||||
typedef sigtype (*handler)();
|
||||
#define handler_init(H,F) ((H) = (F))
|
||||
#define handler_swap(S,NEW,OLD) ((OLD) = signal ((S), (NEW)))
|
||||
|
||||
#define handler_set(S,OLD) (signal ((S), (OLD)))
|
||||
#endif
|
||||
|
||||
typedef void sigtype;
|
||||
|
||||
/*
|
||||
* We could include the dcedfs/syscall.h which should have these
|
||||
* numbers, but it has extra baggage. So for
|
||||
* simplicity sake now, we define these here.
|
||||
*/
|
||||
|
||||
|
||||
#define AFSCALL_SETPAG 2
|
||||
#define AFSCALL_GETPAG 11
|
||||
|
||||
#if defined(sun)
|
||||
#define AFS_SYSCALL 72
|
||||
|
||||
#elif defined(hpux)
|
||||
/* assume HPUX 10 + or is it 50 */
|
||||
#define AFS_SYSCALL 326
|
||||
|
||||
#elif defined(_AIX)
|
||||
#define DPAGAIX "dpagaix"
|
||||
/* #define DPAGAIX "/krb5/sbin/dpagaix" */
|
||||
|
||||
#elif defined(sgi) || defined(_sgi)
|
||||
#define AFS_SYSCALL 206+1000
|
||||
|
||||
#else
|
||||
#define AFS_SYSCALL (Unknown_DFS_AFS_SYSCALL)
|
||||
#endif
|
||||
|
||||
static sigjmp_buf setpag_buf;
|
||||
|
||||
static sigtype mysig()
|
||||
{
|
||||
siglongjmp(setpag_buf, 1);
|
||||
}
|
||||
|
||||
|
||||
int krb5_dfs_newpag(new_pag)
|
||||
int new_pag;
|
||||
{
|
||||
handler sa1, osa1;
|
||||
handler sa2, osa2;
|
||||
int pag = -1;
|
||||
|
||||
handler_init (sa1, mysig);
|
||||
handler_init (sa2, mysig);
|
||||
handler_swap (SIGSYS, sa1, osa1);
|
||||
handler_swap (SIGSEGV, sa2, osa2);
|
||||
|
||||
if (sigsetjmp(setpag_buf, 1) == 0) {
|
||||
#if defined(_AIX)
|
||||
int (*dpagaix)(int, int, int, int, int, int);
|
||||
|
||||
if (dpagaix = load(DPAGAIX, 0, 0))
|
||||
pag = (*dpagaix)(AFSCALL_SETPAG, new_pag, 0, 0, 0, 0);
|
||||
#else
|
||||
pag = syscall(AFS_SYSCALL,AFSCALL_SETPAG, new_pag, 0, 0, 0, 0);
|
||||
#endif
|
||||
handler_set (SIGSYS, osa1);
|
||||
handler_set (SIGSEGV, osa2);
|
||||
return(pag);
|
||||
}
|
||||
|
||||
fprintf(stderr,"Setpag failed with a system error\n");
|
||||
/* syscall failed! return 0 */
|
||||
handler_set (SIGSYS, osa1);
|
||||
handler_set (SIGSEGV, osa2);
|
||||
return(-1);
|
||||
}
|
||||
|
||||
main(argc, argv)
|
||||
int argc;
|
||||
char *argv[];
|
||||
{
|
||||
extern int optind;
|
||||
extern char *optarg;
|
||||
int rv;
|
||||
int rc;
|
||||
unsigned int pag;
|
||||
unsigned int newpag = 0;
|
||||
char ccname[256];
|
||||
int nflag = 0;
|
||||
|
||||
while((rv = getopt(argc,argv,"n:")) != -1) {
|
||||
switch(rv) {
|
||||
case 'n':
|
||||
nflag++;
|
||||
sscanf(optarg,"%8x",&newpag);
|
||||
break;
|
||||
default:
|
||||
printf("Usage: k5dcepagt -n pag \n");
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
if (nflag) {
|
||||
fprintf (stderr,"calling k5dcepag newpag=%8.8x\n",newpag);
|
||||
pag = krb5_dfs_newpag(newpag);
|
||||
|
||||
fprintf (stderr,"PAG returned = %8.8x\n",pag);
|
||||
if ((pag != 0) && (pag != -1)) {
|
||||
sprintf (ccname,
|
||||
"FILE:/opt/dcelocal/var/security/creds/dcecred_%8.8x",
|
||||
pag);
|
||||
esetenv("KRB5CCNAME",ccname,1);
|
||||
execl("/bin/csh", "csh", NULL);
|
||||
}
|
||||
else {
|
||||
fprintf(stderr," Not a good pag value\n");
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +1,24 @@
|
||||
2007-07-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2008-05-29 Love Hörnquist Åstrand <lha@kth.se>
|
||||
|
||||
* ftp/ftp.c: use the correct length to munmap and use msync.
|
||||
|
||||
2008-05-28 Love Hörnquist Åstrand <lha@kth.se>
|
||||
|
||||
* ftp/ftp.c: Rewrite sliding window code so it doesn't have a
|
||||
integer overrun.
|
||||
|
||||
* ftp/ftp.c: Try sliding mmap window over memory file (10MB
|
||||
window), works better with larger files (ie doesn't fail).
|
||||
|
||||
2008-04-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/logwtmp.c: Use asl for logging ftpd wtmp messages.
|
||||
|
||||
2007-07-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/gssapi.c: Fix pointer vs strict alias rules.
|
||||
|
||||
2007-06-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2007-06-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/security.c: if no mech have no session, its ok, just don't
|
||||
call it.
|
||||
@ -11,20 +27,20 @@
|
||||
|
||||
* move ksetpag after initgroups to make it work on Linux when its
|
||||
without syscall hooks to change sys_setgroups preserve the
|
||||
pag. From Alexsander Boström.
|
||||
pag. From Alexsander Boström.
|
||||
|
||||
2007-06-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2007-06-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/Makefile.am: don't clean yacc/lex files in CLEANFILES,
|
||||
maintainers clean will do that for us.
|
||||
|
||||
2006-10-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2006-10-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/Makefile.am: Add man_MANS to EXTRA_DIST
|
||||
|
||||
* ftp/Makefile.am: Add man_MANS to EXTRA_DIST
|
||||
|
||||
2006-08-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2006-08-08 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpd.c: Add comment by seteuid call isn't not needed.
|
||||
|
||||
@ -32,16 +48,16 @@
|
||||
advisory. Thanks to Tom Yu at MIT, and Michael Calmer and Marcus
|
||||
Meissner at SUSE. Either of CVE-2006-3083 or CVE-2006-3084.
|
||||
|
||||
2006-06-27 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2006-06-27 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/gss_userok.c (gss_userok): create a local krb5_context and
|
||||
use that instead of the libgssapi context (that might not exist).
|
||||
|
||||
2006-05-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2006-05-05 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Rename u_intXX_t to uintXX_t
|
||||
|
||||
2006-03-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2006-03-23 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/ftp.1: Add undocument flags and spelling, from Ted Percival
|
||||
<Ted.Percival@quest.com>
|
||||
@ -51,7 +67,7 @@
|
||||
* ftpd/ftpd.8: fix grammar in --no-insecure-oob option (partly
|
||||
from Thomas Klausner)
|
||||
|
||||
2006-01-24 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2006-01-24 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/ftp.c: Indent.
|
||||
|
||||
@ -59,20 +75,20 @@
|
||||
|
||||
* ftpd/ftpd.c (pass): remove unused variable in the !OTP case
|
||||
|
||||
2005-10-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-10-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ls.c: Check return value from asprintf instead of string !=
|
||||
NULL since it undefined behavior on Linux. From Björn Sandell
|
||||
NULL since it undefined behavior on Linux. From Björn Sandell
|
||||
|
||||
* ftpd/gss_userok.c: Check return value from asprintf instead of
|
||||
string != NULL since it undefined behavior on Linux. From Björn
|
||||
string != NULL since it undefined behavior on Linux. From Björn
|
||||
Sandell
|
||||
|
||||
* ftpd/ftpd.c: Check return value from asprintf instead of string
|
||||
!= NULL since it undefined behavior on Linux. From Björn Sandell
|
||||
!= NULL since it undefined behavior on Linux. From Björn Sandell
|
||||
|
||||
* ftp/gssapi.c: Check return value from asprintf instead of string
|
||||
!= NULL since it undefined behavior on Linux. From Björn Sandell
|
||||
!= NULL since it undefined behavior on Linux. From Björn Sandell
|
||||
|
||||
2005-10-12 Johan Danielsson <joda@pdc.kth.se>
|
||||
|
||||
@ -95,7 +111,7 @@
|
||||
|
||||
* ftp/main.c: add -x (encrypt) option
|
||||
|
||||
2005-07-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-07-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpcmd.y: Fix shadow warning.
|
||||
|
||||
@ -108,11 +124,11 @@
|
||||
|
||||
* ftp/cmds.c: fix shadow warnings
|
||||
|
||||
* Add Kerberos 5 klist, old patch from Tomas Nyström (remove krb4
|
||||
* Add Kerberos 5 klist, old patch from Tomas Nyström (remove krb4
|
||||
support). Support klist in client for kerberos 5 clase.
|
||||
Clean up delegation of gss tokens and do afslog.
|
||||
|
||||
2005-07-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-07-13 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/gssapi.c (gss_adat): avoid leaking memory
|
||||
(gss_auth): always try next kname if there is one, independant of
|
||||
@ -121,7 +137,7 @@
|
||||
* ftp/gssapi.c: avoid const warning, use sin4 instead of sin to
|
||||
avoid shadow warning, free target_name
|
||||
|
||||
2005-07-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-07-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/security.c: keep track of if CCC was passed
|
||||
|
||||
@ -130,12 +146,12 @@
|
||||
* ftpd/ftpcmd.y: sprinkel check_secure, check if CCC was passed in
|
||||
check_secure
|
||||
|
||||
2005-06-02 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-06-02 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpd.c (filename_check): change signednes of p to avoid
|
||||
warning, move typecasts
|
||||
|
||||
2005-05-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-05-29 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpd.c: avoid 'unused variable' warnings
|
||||
|
||||
@ -143,45 +159,45 @@
|
||||
|
||||
* ftpd/pathnames.h: #ifdef protect _PATH_ISSUE
|
||||
|
||||
2005-04-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-04-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/domacro.c: handle string trunctions
|
||||
|
||||
2005-04-24 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-04-24 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/security.c: use strlcat
|
||||
|
||||
* ftp/domacro.c: use strlcpy
|
||||
|
||||
2005-04-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-04-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/security.c: cast size_t to unsigned long
|
||||
|
||||
2005-04-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-04-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpd.c (statcmd): cast argument to isdigit to unsigned char
|
||||
|
||||
* ftp/cmds.c (mget): cast char to unsigned char to make sure its
|
||||
not negative when passing it to tolower
|
||||
|
||||
2005-04-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-04-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/ftp.c: fix 3 'var' might be used uninitialized warnings
|
||||
|
||||
2005-04-04 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-04-04 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/cmds.c: MacOS is also a unix that doesn't define
|
||||
__unix__/unix While here, rewrite this part of the function to not
|
||||
modify that string, but rather take a copy of it and them modify
|
||||
is, all this just to pacify gcc
|
||||
|
||||
2005-01-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2005-01-09 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/domacro.c: cast argument to is* to unsigned char
|
||||
|
||||
* ftp/ftp.c: cast argument to tolower to unsigned char
|
||||
|
||||
2004-08-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-08-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/ftp.c: send ABOR protect with security layer if its there
|
||||
|
||||
@ -200,16 +216,16 @@
|
||||
* ftp/main.c: reverse help strings for --no-gss-bindings and
|
||||
--no-gss-delegate
|
||||
|
||||
2004-06-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-06-20 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpcmd.y: make cbuf 64k to handle lager tickets From:
|
||||
MAAAAA MOOOR <huaraz@btinternet.com>
|
||||
|
||||
2004-03-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2004-03-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpd.c (main): setpag if there is krb4 OR krb5 support
|
||||
|
||||
2003-12-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-12-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/security.h: add ftp_do_gss_delegate
|
||||
|
||||
@ -217,13 +233,13 @@
|
||||
|
||||
* ftp/gssapi.c (ftp_do_gss_delegate): delegate creds (default on)
|
||||
|
||||
2003-09-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-09-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/ftp.c: s/des_read_pw_string/UI_UTIL_read_pw_string/
|
||||
|
||||
* ftp/cmds.c: s/des_read_pw_string/UI_UTIL_read_pw_string/
|
||||
|
||||
2003-07-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-07-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/security.h: add ftp_do_gss_bindings
|
||||
|
||||
@ -246,7 +262,7 @@
|
||||
|
||||
* ftp/gssapi.c (gss_adat): fix name allocation bug
|
||||
|
||||
2003-05-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-05-21 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/gss_userok.c (gss_userok): release delegated cred handle
|
||||
|
||||
@ -256,12 +272,12 @@
|
||||
* ftpd/gss_userok.c (gss_userok): remove poking inside the
|
||||
delegated handle
|
||||
|
||||
2003-05-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-05-14 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpcmd.y: support afslog <cell> and afslog when compiled
|
||||
with krb5
|
||||
|
||||
2003-05-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-05-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/cmdtab.c: include afslog in both the krb4 and krb5 case
|
||||
|
||||
@ -269,21 +285,21 @@
|
||||
|
||||
* ftp/Makefile.am: always include auth.c
|
||||
|
||||
2003-05-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-05-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/Makefile.am: always include auth.c
|
||||
|
||||
* ftpd/kauth.c: do afslog in the krb5 case too
|
||||
|
||||
2003-04-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-04-22 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/ftp.1: replace > with \*[Gt]
|
||||
|
||||
2003-04-16 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-04-16 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpd.c: make sure argument to is* functions are unsigned
|
||||
|
||||
2003-04-06 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-04-06 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpd.8: s/kerberos/Kerberos/
|
||||
|
||||
@ -291,7 +307,7 @@
|
||||
|
||||
* ftpd/pathnames.h (_PATH_FTPUSERS): conditionalize
|
||||
|
||||
2003-03-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-03-18 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ftpd.c (krb5_verify): always do krb5_afslog, remove setpag
|
||||
(its done in main)
|
||||
@ -305,17 +321,17 @@
|
||||
|
||||
* ftpd/ftpd_locl.h: always include kafs
|
||||
|
||||
2003-03-16 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-03-16 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/gssapi.c (gss_adat): now that gss_export_name exports a
|
||||
principal, bandaid with gss_display_name, and check that oid is
|
||||
GSS_KRB5_NT_PRINCIPAL_NAME, also free memory
|
||||
|
||||
2003-02-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-02-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftp/gssapi.c (gss_auth): print out the name we authenticated too
|
||||
|
||||
2003-02-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
2003-02-25 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* ftpd/ls.c: use readlink with bufsize - 1, From NetBSD
|
||||
|
||||
@ -329,7 +345,7 @@
|
||||
|
||||
2002-10-29 Johan Danielsson <joda@pdc.kth.se>
|
||||
|
||||
* ftp/main.c: reinstate -n flag (from Torbjörn Granlund)
|
||||
* ftp/main.c: reinstate -n flag (from Torbjörn Granlund)
|
||||
|
||||
2002-10-16 Johan Danielsson <joda@pdc.kth.se>
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
# $Id: Makefile.am 5652 1999-03-20 13:58:20Z joda $
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
SUBDIRS = common ftp ftpd
|
||||
|
||||
EXTRA_DIST = NTMakefile
|
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,15 +15,16 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# $Id: Makefile.am 5652 1999-03-20 13:58:20Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
|
||||
# $Id$
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -43,7 +45,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
subdir = appl/ftp
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 \
|
||||
$(top_srcdir)/cf/broken-getaddrinfo.m4 \
|
||||
$(top_srcdir)/cf/broken-glob.m4 \
|
||||
$(top_srcdir)/cf/broken-realloc.m4 \
|
||||
@ -58,7 +60,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
|
||||
$(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
|
||||
$(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
|
||||
$(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/dispatch.m4 $(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs2.m4 \
|
||||
$(top_srcdir)/cf/find-func.m4 \
|
||||
@ -72,9 +74,12 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/krb-readline.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-spwd.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-winsize.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
|
||||
$(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
|
||||
$(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/libtool.m4 \
|
||||
$(top_srcdir)/cf/ltoptions.m4 $(top_srcdir)/cf/ltsugar.m4 \
|
||||
$(top_srcdir)/cf/ltversion.m4 $(top_srcdir)/cf/lt~obsolete.m4 \
|
||||
$(top_srcdir)/cf/mips-abi.m4 $(top_srcdir)/cf/misc.m4 \
|
||||
$(top_srcdir)/cf/need-proto.m4 $(top_srcdir)/cf/osfc2.m4 \
|
||||
$(top_srcdir)/cf/otp.m4 $(top_srcdir)/cf/pkg.m4 \
|
||||
$(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
|
||||
$(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
|
||||
$(top_srcdir)/cf/roken-frag.m4 \
|
||||
@ -82,14 +87,13 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
|
||||
$(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
|
||||
$(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
SOURCES =
|
||||
DIST_SOURCES =
|
||||
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
@ -101,57 +105,94 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
|
||||
ps-recursive uninstall-recursive
|
||||
RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
|
||||
distclean-recursive maintainer-clean-recursive
|
||||
AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
|
||||
$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
|
||||
distdir
|
||||
ETAGS = etags
|
||||
CTAGS = ctags
|
||||
DIST_SUBDIRS = $(SUBDIRS)
|
||||
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
|
||||
am__relativize = \
|
||||
dir0=`pwd`; \
|
||||
sed_first='s,^\([^/]*\)/.*$$,\1,'; \
|
||||
sed_rest='s,^[^/]*/*,,'; \
|
||||
sed_last='s,^.*/\([^/]*\)$$,\1,'; \
|
||||
sed_butlast='s,/*[^/]*$$,,'; \
|
||||
while test -n "$$dir1"; do \
|
||||
first=`echo "$$dir1" | sed -e "$$sed_first"`; \
|
||||
if test "$$first" != "."; then \
|
||||
if test "$$first" = ".."; then \
|
||||
dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
|
||||
dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
|
||||
else \
|
||||
first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
|
||||
if test "$$first2" = "$$first"; then \
|
||||
dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
|
||||
else \
|
||||
dir2="../$$dir2"; \
|
||||
fi; \
|
||||
dir0="$$dir0"/"$$first"; \
|
||||
fi; \
|
||||
fi; \
|
||||
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
|
||||
done; \
|
||||
reldir="$$dir2"
|
||||
ACLOCAL = @ACLOCAL@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASN1_COMPILE = @ASN1_COMPILE@
|
||||
ASN1_COMPILE_DEP = @ASN1_COMPILE_DEP@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CAPNG_CFLAGS = @CAPNG_CFLAGS@
|
||||
CAPNG_LIBS = @CAPNG_LIBS@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE_ET = @COMPILE_ET@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBHEADER = @DBHEADER@
|
||||
DBLIB = @DBLIB@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIR_com_err = @DIR_com_err@
|
||||
DIR_hcrypto = @DIR_hcrypto@
|
||||
DIR_hdbdir = @DIR_hdbdir@
|
||||
DIR_roken = @DIR_roken@
|
||||
ECHO = @ECHO@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INCLUDES_roken = @INCLUDES_roken@
|
||||
INCLUDE_hcrypto = @INCLUDE_hcrypto@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
INCLUDE_libedit = @INCLUDE_libedit@
|
||||
INCLUDE_libintl = @INCLUDE_libintl@
|
||||
INCLUDE_openldap = @INCLUDE_openldap@
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
INCLUDE_sqlite3 = @INCLUDE_sqlite3@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
|
||||
LEX = @LEX@
|
||||
@ -175,10 +216,11 @@ LIB_crypt = @LIB_crypt@
|
||||
LIB_db_create = @LIB_db_create@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dispatch_async_f = @LIB_dispatch_async_f@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_dns_search = @LIB_dns_search@
|
||||
LIB_door_create = @LIB_door_create@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_freeaddrinfo = @LIB_freeaddrinfo@
|
||||
LIB_gai_strerror = @LIB_gai_strerror@
|
||||
LIB_getaddrinfo = @LIB_getaddrinfo@
|
||||
@ -195,6 +237,8 @@ LIB_hesiod = @LIB_hesiod@
|
||||
LIB_hstrerror = @LIB_hstrerror@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
LIB_libedit = @LIB_libedit@
|
||||
LIB_libintl = @LIB_libintl@
|
||||
LIB_loadquery = @LIB_loadquery@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
@ -210,31 +254,45 @@ LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_sqlite3 = @LIB_sqlite3@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_AFS = @NO_AFS@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
|
||||
PTHREADS_LIBS = @PTHREADS_LIBS@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
PTHREAD_LDADD = @PTHREAD_LDADD@
|
||||
PTHREAD_LIBADD = @PTHREAD_LIBADD@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLC = @SLC@
|
||||
SLC_DEP = @SLC_DEP@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VERSIONING = @VERSIONING@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
@ -249,10 +307,12 @@ abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
@ -293,47 +353,53 @@ psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken)
|
||||
SUFFIXES = .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = $(INCLUDES_roken)
|
||||
@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
CP = cp
|
||||
buildinclude = $(top_builddir)/include
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
libexec_heimdaldir = $(libexecdir)/heimdal
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
|
||||
@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
|
||||
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
|
||||
LIB_heimbase = $(top_builddir)/base/libheimbase.la
|
||||
@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
|
||||
SUBDIRS = common ftp ftpd
|
||||
EXTRA_DIST = NTMakefile
|
||||
all: all-recursive
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c
|
||||
.SUFFIXES: .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps appl/ftp/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign --ignore-deps appl/ftp/Makefile
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign appl/ftp/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign appl/ftp/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -351,6 +417,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
@ -365,7 +432,7 @@ clean-libtool:
|
||||
# (which will cause the Makefiles to be regenerated when you run `make');
|
||||
# (2) otherwise, pass the desired values on the `make' command line.
|
||||
$(RECURSIVE_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@ -382,7 +449,7 @@ $(RECURSIVE_TARGETS):
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done; \
|
||||
if test "$$dot_seen" = "no"; then \
|
||||
@ -390,7 +457,7 @@ $(RECURSIVE_TARGETS):
|
||||
fi; test -z "$$fail"
|
||||
|
||||
$(RECURSIVE_CLEAN_TARGETS):
|
||||
@failcom='exit 1'; \
|
||||
@fail= failcom='exit 1'; \
|
||||
for f in x $$MAKEFLAGS; do \
|
||||
case $$f in \
|
||||
*=* | --[!k]*);; \
|
||||
@ -416,16 +483,16 @@ $(RECURSIVE_CLEAN_TARGETS):
|
||||
else \
|
||||
local_target="$$target"; \
|
||||
fi; \
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
|
||||
|| eval $$failcom; \
|
||||
done && test -z "$$fail"
|
||||
tags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
|
||||
done
|
||||
ctags-recursive:
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
|
||||
done
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
@ -433,14 +500,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
|
||||
include_option=--etags-include; \
|
||||
@ -452,39 +519,43 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
list='$(SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test ! -f $$subdir/TAGS || \
|
||||
tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
|
||||
set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
|
||||
fi; \
|
||||
done; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
@ -505,29 +576,44 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
test -d "$(distdir)/$$subdir" \
|
||||
|| $(MKDIR_P) "$(distdir)/$$subdir" \
|
||||
|| exit 1; \
|
||||
distdir=`$(am__cd) $(distdir) && pwd`; \
|
||||
top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
|
||||
(cd $$subdir && \
|
||||
fi; \
|
||||
done
|
||||
@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
|
||||
if test "$$subdir" = .; then :; else \
|
||||
dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
|
||||
$(am__relativize); \
|
||||
new_distdir=$$reldir; \
|
||||
dir1=$$subdir; dir2="$(top_distdir)"; \
|
||||
$(am__relativize); \
|
||||
new_top_distdir=$$reldir; \
|
||||
echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
|
||||
echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
|
||||
($(am__cd) $$subdir && \
|
||||
$(MAKE) $(AM_MAKEFLAGS) \
|
||||
top_distdir="$$top_distdir" \
|
||||
distdir="$$distdir/$$subdir" \
|
||||
top_distdir="$$new_top_distdir" \
|
||||
distdir="$$new_distdir" \
|
||||
am__remove_distdir=: \
|
||||
am__skip_length_check=: \
|
||||
am__skip_mode_fix=: \
|
||||
distdir) \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
@ -561,6 +647,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -579,6 +666,8 @@ dvi-am:
|
||||
|
||||
html: html-recursive
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-recursive
|
||||
|
||||
info-am:
|
||||
@ -586,23 +675,31 @@ info-am:
|
||||
install-data-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-recursive
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
|
||||
install-html: install-html-recursive
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-recursive
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-recursive
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-recursive
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-recursive
|
||||
@ -624,9 +721,9 @@ ps-am:
|
||||
uninstall-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
|
||||
install-data-am install-exec-am install-strip uninstall-am
|
||||
.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \
|
||||
ctags-recursive install-am install-data-am install-exec-am \
|
||||
install-strip tags-recursive uninstall-am
|
||||
|
||||
.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
|
||||
all all-am all-local check check-am check-local clean \
|
||||
@ -712,6 +809,9 @@ check-local::
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
.hx.h:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
@ -797,7 +897,7 @@ uninstall-hook: uninstall-cat-mans
|
||||
check-valgrind:
|
||||
tobjdir=`cd $(top_builddir) && pwd` ; \
|
||||
tsrcdir=`cd $(top_srcdir) && pwd` ; \
|
||||
env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
|
||||
env TESTS_ENVIRONMENT="$${tsrcdir}/cf/maybe-valgrind.sh -s $${tsrcdir} -o $${tobjdir}" make check
|
||||
|
||||
#
|
||||
# Target to please samba build farm, builds distfiles in-tree.
|
||||
@ -810,6 +910,7 @@ distdir-in-tree: $(DISTFILES) $(INFO_DEPS)
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) distdir-in-tree) ; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
35
appl/ftp/NTMakefile
Normal file
35
appl/ftp/NTMakefile
Normal file
@ -0,0 +1,35 @@
|
||||
########################################################################
|
||||
#
|
||||
# Copyright (c) 2009, Secure Endpoints Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
# COPYRIGHT HOLDER 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.
|
||||
#
|
||||
|
||||
RELDIR=appl\ftp
|
||||
|
||||
!include ../../windows/NTMakefile.w32
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.am 14164 2004-08-26 11:55:29Z joda $
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
@ -10,3 +10,5 @@ libcommon_a_SOURCES = \
|
||||
sockbuf.c \
|
||||
buffer.c \
|
||||
common.h
|
||||
|
||||
EXTRA_DIST = NTMakefile
|
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,16 +15,17 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# $Id: Makefile.am 14164 2004-08-26 11:55:29Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
|
||||
# $Id$
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -44,7 +46,7 @@ DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
|
||||
subdir = appl/ftp/common
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 \
|
||||
$(top_srcdir)/cf/broken-getaddrinfo.m4 \
|
||||
$(top_srcdir)/cf/broken-glob.m4 \
|
||||
$(top_srcdir)/cf/broken-realloc.m4 \
|
||||
@ -59,7 +61,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
|
||||
$(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
|
||||
$(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
|
||||
$(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/dispatch.m4 $(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs2.m4 \
|
||||
$(top_srcdir)/cf/find-func.m4 \
|
||||
@ -73,9 +75,12 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/krb-readline.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-spwd.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-winsize.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
|
||||
$(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
|
||||
$(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/libtool.m4 \
|
||||
$(top_srcdir)/cf/ltoptions.m4 $(top_srcdir)/cf/ltsugar.m4 \
|
||||
$(top_srcdir)/cf/ltversion.m4 $(top_srcdir)/cf/lt~obsolete.m4 \
|
||||
$(top_srcdir)/cf/mips-abi.m4 $(top_srcdir)/cf/misc.m4 \
|
||||
$(top_srcdir)/cf/need-proto.m4 $(top_srcdir)/cf/osfc2.m4 \
|
||||
$(top_srcdir)/cf/otp.m4 $(top_srcdir)/cf/pkg.m4 \
|
||||
$(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
|
||||
$(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
|
||||
$(top_srcdir)/cf/roken-frag.m4 \
|
||||
@ -83,21 +88,22 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
|
||||
$(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
|
||||
$(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
LIBRARIES = $(noinst_LIBRARIES)
|
||||
ARFLAGS = cru
|
||||
libcommon_a_AR = $(AR) $(ARFLAGS)
|
||||
libcommon_a_LIBADD =
|
||||
am_libcommon_a_OBJECTS = sockbuf.$(OBJEXT) buffer.$(OBJEXT)
|
||||
libcommon_a_OBJECTS = $(am_libcommon_a_OBJECTS)
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)/include@am__isrc@
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
@ -116,49 +122,58 @@ ACLOCAL = @ACLOCAL@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASN1_COMPILE = @ASN1_COMPILE@
|
||||
ASN1_COMPILE_DEP = @ASN1_COMPILE_DEP@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CAPNG_CFLAGS = @CAPNG_CFLAGS@
|
||||
CAPNG_LIBS = @CAPNG_LIBS@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE_ET = @COMPILE_ET@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBHEADER = @DBHEADER@
|
||||
DBLIB = @DBLIB@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIR_com_err = @DIR_com_err@
|
||||
DIR_hcrypto = @DIR_hcrypto@
|
||||
DIR_hdbdir = @DIR_hdbdir@
|
||||
DIR_roken = @DIR_roken@
|
||||
ECHO = @ECHO@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INCLUDES_roken = @INCLUDES_roken@
|
||||
INCLUDE_hcrypto = @INCLUDE_hcrypto@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
INCLUDE_libedit = @INCLUDE_libedit@
|
||||
INCLUDE_libintl = @INCLUDE_libintl@
|
||||
INCLUDE_openldap = @INCLUDE_openldap@
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
INCLUDE_sqlite3 = @INCLUDE_sqlite3@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
|
||||
LEX = @LEX@
|
||||
@ -182,10 +197,11 @@ LIB_crypt = @LIB_crypt@
|
||||
LIB_db_create = @LIB_db_create@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dispatch_async_f = @LIB_dispatch_async_f@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_dns_search = @LIB_dns_search@
|
||||
LIB_door_create = @LIB_door_create@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_freeaddrinfo = @LIB_freeaddrinfo@
|
||||
LIB_gai_strerror = @LIB_gai_strerror@
|
||||
LIB_getaddrinfo = @LIB_getaddrinfo@
|
||||
@ -202,6 +218,8 @@ LIB_hesiod = @LIB_hesiod@
|
||||
LIB_hstrerror = @LIB_hstrerror@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
LIB_libedit = @LIB_libedit@
|
||||
LIB_libintl = @LIB_libintl@
|
||||
LIB_loadquery = @LIB_loadquery@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
@ -217,31 +235,45 @@ LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_sqlite3 = @LIB_sqlite3@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_AFS = @NO_AFS@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
|
||||
PTHREADS_LIBS = @PTHREADS_LIBS@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
PTHREAD_LDADD = @PTHREAD_LDADD@
|
||||
PTHREAD_LIBADD = @PTHREAD_LIBADD@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLC = @SLC@
|
||||
SLC_DEP = @SLC_DEP@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VERSIONING = @VERSIONING@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
@ -256,10 +288,12 @@ abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
@ -300,30 +334,34 @@ psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken) \
|
||||
$(INCLUDE_krb4)
|
||||
SUFFIXES = .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = $(INCLUDES_roken) $(INCLUDE_krb4)
|
||||
@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
CP = cp
|
||||
buildinclude = $(top_builddir)/include
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
libexec_heimdaldir = $(libexecdir)/heimdal
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
|
||||
@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
|
||||
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
|
||||
LIB_heimbase = $(top_builddir)/base/libheimbase.la
|
||||
@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
|
||||
noinst_LIBRARIES = libcommon.a
|
||||
libcommon_a_SOURCES = \
|
||||
@ -331,22 +369,23 @@ libcommon_a_SOURCES = \
|
||||
buffer.c \
|
||||
common.h
|
||||
|
||||
EXTRA_DIST = NTMakefile
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
|
||||
.SUFFIXES: .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps appl/ftp/common/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign --ignore-deps appl/ftp/common/Makefile
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign appl/ftp/common/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign appl/ftp/common/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -364,6 +403,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
|
||||
clean-noinstLIBRARIES:
|
||||
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
||||
@ -378,14 +418,29 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sockbuf.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
$(COMPILE) -c $<
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(LTCOMPILE) -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
@ -398,45 +453,49 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
@ -457,13 +516,17 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@ -495,6 +558,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -505,6 +569,7 @@ clean-am: clean-generic clean-libtool clean-noinstLIBRARIES \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
@ -515,6 +580,8 @@ dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -522,26 +589,35 @@ info-am:
|
||||
install-data-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man:
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
@ -561,9 +637,8 @@ ps-am:
|
||||
uninstall-am:
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||
|
||||
.MAKE: install-am install-data-am install-exec-am install-strip \
|
||||
uninstall-am
|
||||
.MAKE: check-am install-am install-data-am install-exec-am \
|
||||
install-strip uninstall-am
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am all-local check check-am check-local \
|
||||
clean clean-generic clean-libtool clean-noinstLIBRARIES ctags \
|
||||
@ -648,6 +723,9 @@ check-local::
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
.hx.h:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
@ -733,7 +811,7 @@ uninstall-hook: uninstall-cat-mans
|
||||
check-valgrind:
|
||||
tobjdir=`cd $(top_builddir) && pwd` ; \
|
||||
tsrcdir=`cd $(top_srcdir) && pwd` ; \
|
||||
env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
|
||||
env TESTS_ENVIRONMENT="$${tsrcdir}/cf/maybe-valgrind.sh -s $${tsrcdir} -o $${tobjdir}" make check
|
||||
|
||||
#
|
||||
# Target to please samba build farm, builds distfiles in-tree.
|
||||
@ -746,6 +824,7 @@ distdir-in-tree: $(DISTFILES) $(INFO_DEPS)
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) distdir-in-tree) ; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
35
appl/ftp/common/NTMakefile
Normal file
35
appl/ftp/common/NTMakefile
Normal file
@ -0,0 +1,35 @@
|
||||
########################################################################
|
||||
#
|
||||
# Copyright (c) 2009, Secure Endpoints Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
# COPYRIGHT HOLDER 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.
|
||||
#
|
||||
|
||||
RELDIR=appl\ftp\common
|
||||
|
||||
!include ../../../windows/NTMakefile.w32
|
||||
|
@ -1,23 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 1995-2000 Kungliga Tekniska Högskolan
|
||||
* Copyright (c) 1995-2000 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
@ -36,7 +36,7 @@
|
||||
#include <err.h>
|
||||
#include "roken.h"
|
||||
|
||||
RCSID("$Id: buffer.c 9129 2000-10-23 04:49:25Z joda $");
|
||||
RCSID("$Id$");
|
||||
|
||||
/*
|
||||
* Allocate a buffer enough to handle st->st_blksize, if
|
||||
|
@ -1,23 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
|
||||
* Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: common.h 7463 1999-12-02 16:58:55Z joda $ */
|
||||
/* $Id$ */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
|
@ -1,23 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
|
||||
* Copyright (c) 1995, 1996, 1997 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
@ -39,16 +39,30 @@
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
RCSID("$Id: sockbuf.c 7463 1999-12-02 16:58:55Z joda $");
|
||||
RCSID("$Id$");
|
||||
|
||||
void
|
||||
set_buffer_size(int fd, int read)
|
||||
{
|
||||
#if defined(SO_RCVBUF) && defined(SO_SNDBUF) && defined(HAVE_SETSOCKOPT)
|
||||
size_t size = 4194304;
|
||||
while(size >= 131072 &&
|
||||
setsockopt(fd, SOL_SOCKET, read ? SO_RCVBUF : SO_SNDBUF,
|
||||
(void *)&size, sizeof(size)) < 0)
|
||||
int size = 4194304;
|
||||
int optname = read ? SO_RCVBUF : SO_SNDBUF;
|
||||
|
||||
#ifdef HAVE_GETSOCKOPT
|
||||
int curr=0;
|
||||
socklen_t optlen;
|
||||
|
||||
optlen = sizeof(curr);
|
||||
if(getsockopt(fd, SOL_SOCKET, optname, (void *)&curr, &optlen) == 0) {
|
||||
if(curr >= size) {
|
||||
/* Already large enough */
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_GETSOCKOPT */
|
||||
|
||||
while(size >= 131072 &&
|
||||
setsockopt(fd, SOL_SOCKET, optname, (void *)&size, sizeof(size)) < 0)
|
||||
size /= 2;
|
||||
#endif
|
||||
}
|
||||
|
@ -1,16 +1,13 @@
|
||||
# $Id: Makefile.am 20466 2007-04-20 08:29:05Z lha $
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
AM_CPPFLAGS += -I$(srcdir)/../common $(INCLUDE_readline) $(INCLUDE_krb4) $(INCLUDE_hcrypto)
|
||||
AM_CPPFLAGS += -I$(srcdir)/../common $(INCLUDE_readline) $(INCLUDE_hcrypto)
|
||||
|
||||
bin_PROGRAMS = ftp
|
||||
|
||||
CHECK_LOCAL =
|
||||
|
||||
if KRB4
|
||||
krb4_sources = krb4.c
|
||||
endif
|
||||
if KRB5
|
||||
krb5_sources = gssapi.c
|
||||
endif
|
||||
@ -30,10 +27,9 @@ ftp_SOURCES = \
|
||||
security.c \
|
||||
security.h \
|
||||
kauth.c \
|
||||
$(krb4_sources) \
|
||||
$(krb5_sources)
|
||||
|
||||
EXTRA_ftp_SOURCES = krb4.c gssapi.c
|
||||
EXTRA_ftp_SOURCES = gssapi.c
|
||||
|
||||
man_MANS = ftp.1
|
||||
|
||||
@ -41,9 +37,8 @@ LDADD = \
|
||||
../common/libcommon.a \
|
||||
$(LIB_gssapi) \
|
||||
$(LIB_krb5) \
|
||||
$(LIB_krb4) \
|
||||
$(LIB_hcrypto) \
|
||||
$(LIB_roken) \
|
||||
$(LIB_readline)
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
EXTRA_DIST = NTMakefile $(man_MANS)
|
||||
|
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,16 +15,17 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# $Id: Makefile.am 20466 2007-04-20 08:29:05Z lha $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
|
||||
# $Id$
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -45,7 +47,7 @@ bin_PROGRAMS = ftp$(EXEEXT)
|
||||
subdir = appl/ftp/ftp
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 \
|
||||
$(top_srcdir)/cf/broken-getaddrinfo.m4 \
|
||||
$(top_srcdir)/cf/broken-glob.m4 \
|
||||
$(top_srcdir)/cf/broken-realloc.m4 \
|
||||
@ -60,7 +62,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
|
||||
$(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
|
||||
$(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
|
||||
$(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/dispatch.m4 $(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs2.m4 \
|
||||
$(top_srcdir)/cf/find-func.m4 \
|
||||
@ -74,9 +76,12 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/krb-readline.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-spwd.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-winsize.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
|
||||
$(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
|
||||
$(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/libtool.m4 \
|
||||
$(top_srcdir)/cf/ltoptions.m4 $(top_srcdir)/cf/ltsugar.m4 \
|
||||
$(top_srcdir)/cf/ltversion.m4 $(top_srcdir)/cf/lt~obsolete.m4 \
|
||||
$(top_srcdir)/cf/mips-abi.m4 $(top_srcdir)/cf/misc.m4 \
|
||||
$(top_srcdir)/cf/need-proto.m4 $(top_srcdir)/cf/osfc2.m4 \
|
||||
$(top_srcdir)/cf/otp.m4 $(top_srcdir)/cf/pkg.m4 \
|
||||
$(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
|
||||
$(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
|
||||
$(top_srcdir)/cf/roken-frag.m4 \
|
||||
@ -84,33 +89,32 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
|
||||
$(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
|
||||
$(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
|
||||
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(bin_PROGRAMS)
|
||||
am__ftp_SOURCES_DIST = cmds.c cmdtab.c extern.h ftp.c ftp_locl.h \
|
||||
ftp_var.h main.c pathnames.h ruserpass.c domacro.c globals.c \
|
||||
security.c security.h kauth.c krb4.c gssapi.c
|
||||
@KRB4_TRUE@am__objects_1 = krb4.$(OBJEXT)
|
||||
@KRB5_TRUE@am__objects_2 = gssapi.$(OBJEXT)
|
||||
security.c security.h kauth.c gssapi.c
|
||||
@KRB5_TRUE@am__objects_1 = gssapi.$(OBJEXT)
|
||||
am_ftp_OBJECTS = cmds.$(OBJEXT) cmdtab.$(OBJEXT) ftp.$(OBJEXT) \
|
||||
main.$(OBJEXT) ruserpass.$(OBJEXT) domacro.$(OBJEXT) \
|
||||
globals.$(OBJEXT) security.$(OBJEXT) kauth.$(OBJEXT) \
|
||||
$(am__objects_1) $(am__objects_2)
|
||||
$(am__objects_1)
|
||||
ftp_OBJECTS = $(am_ftp_OBJECTS)
|
||||
ftp_LDADD = $(LDADD)
|
||||
am__DEPENDENCIES_1 =
|
||||
ftp_DEPENDENCIES = ../common/libcommon.a $(LIB_gssapi) $(LIB_krb5) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)/include@am__isrc@
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
$(am__DEPENDENCIES_1)
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
@ -122,6 +126,27 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
$(LDFLAGS) -o $@
|
||||
SOURCES = $(ftp_SOURCES) $(EXTRA_ftp_SOURCES)
|
||||
DIST_SOURCES = $(am__ftp_SOURCES_DIST) $(EXTRA_ftp_SOURCES)
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
man1dir = $(mandir)/man1
|
||||
MANS = $(man_MANS)
|
||||
ETAGS = etags
|
||||
@ -131,49 +156,58 @@ ACLOCAL = @ACLOCAL@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASN1_COMPILE = @ASN1_COMPILE@
|
||||
ASN1_COMPILE_DEP = @ASN1_COMPILE_DEP@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CAPNG_CFLAGS = @CAPNG_CFLAGS@
|
||||
CAPNG_LIBS = @CAPNG_LIBS@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE_ET = @COMPILE_ET@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBHEADER = @DBHEADER@
|
||||
DBLIB = @DBLIB@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIR_com_err = @DIR_com_err@
|
||||
DIR_hcrypto = @DIR_hcrypto@
|
||||
DIR_hdbdir = @DIR_hdbdir@
|
||||
DIR_roken = @DIR_roken@
|
||||
ECHO = @ECHO@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INCLUDES_roken = @INCLUDES_roken@
|
||||
INCLUDE_hcrypto = @INCLUDE_hcrypto@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
INCLUDE_libedit = @INCLUDE_libedit@
|
||||
INCLUDE_libintl = @INCLUDE_libintl@
|
||||
INCLUDE_openldap = @INCLUDE_openldap@
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
INCLUDE_sqlite3 = @INCLUDE_sqlite3@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
|
||||
LEX = @LEX@
|
||||
@ -197,10 +231,11 @@ LIB_crypt = @LIB_crypt@
|
||||
LIB_db_create = @LIB_db_create@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dispatch_async_f = @LIB_dispatch_async_f@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_dns_search = @LIB_dns_search@
|
||||
LIB_door_create = @LIB_door_create@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_freeaddrinfo = @LIB_freeaddrinfo@
|
||||
LIB_gai_strerror = @LIB_gai_strerror@
|
||||
LIB_getaddrinfo = @LIB_getaddrinfo@
|
||||
@ -217,6 +252,8 @@ LIB_hesiod = @LIB_hesiod@
|
||||
LIB_hstrerror = @LIB_hstrerror@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
LIB_libedit = @LIB_libedit@
|
||||
LIB_libintl = @LIB_libintl@
|
||||
LIB_loadquery = @LIB_loadquery@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
@ -232,31 +269,45 @@ LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_sqlite3 = @LIB_sqlite3@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_AFS = @NO_AFS@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
|
||||
PTHREADS_LIBS = @PTHREADS_LIBS@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
PTHREAD_LDADD = @PTHREAD_LDADD@
|
||||
PTHREAD_LIBADD = @PTHREAD_LIBADD@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLC = @SLC@
|
||||
SLC_DEP = @SLC_DEP@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VERSIONING = @VERSIONING@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
@ -271,10 +322,12 @@ abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
@ -315,34 +368,37 @@ psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken) \
|
||||
-I$(srcdir)/../common $(INCLUDE_readline) $(INCLUDE_krb4) \
|
||||
$(INCLUDE_hcrypto)
|
||||
SUFFIXES = .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = $(INCLUDES_roken) -I$(srcdir)/../common \
|
||||
$(INCLUDE_readline) $(INCLUDE_hcrypto)
|
||||
@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
CP = cp
|
||||
buildinclude = $(top_builddir)/include
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
libexec_heimdaldir = $(libexecdir)/heimdal
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
|
||||
@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
|
||||
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
|
||||
LIB_heimbase = $(top_builddir)/base/libheimbase.la
|
||||
@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
|
||||
CHECK_LOCAL =
|
||||
@KRB4_TRUE@krb4_sources = krb4.c
|
||||
@KRB5_TRUE@krb5_sources = gssapi.c
|
||||
ftp_SOURCES = \
|
||||
cmds.c \
|
||||
@ -359,37 +415,35 @@ ftp_SOURCES = \
|
||||
security.c \
|
||||
security.h \
|
||||
kauth.c \
|
||||
$(krb4_sources) \
|
||||
$(krb5_sources)
|
||||
|
||||
EXTRA_ftp_SOURCES = krb4.c gssapi.c
|
||||
EXTRA_ftp_SOURCES = gssapi.c
|
||||
man_MANS = ftp.1
|
||||
LDADD = \
|
||||
../common/libcommon.a \
|
||||
$(LIB_gssapi) \
|
||||
$(LIB_krb5) \
|
||||
$(LIB_krb4) \
|
||||
$(LIB_hcrypto) \
|
||||
$(LIB_roken) \
|
||||
$(LIB_readline)
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
EXTRA_DIST = NTMakefile $(man_MANS)
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
|
||||
.SUFFIXES: .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps appl/ftp/ftp/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign --ignore-deps appl/ftp/ftp/Makefile
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign appl/ftp/ftp/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign appl/ftp/ftp/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -407,34 +461,50 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-binPROGRAMS: $(bin_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
|| test -f $$p1 \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p || test -f $$p1; \
|
||||
then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-binPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(bindir)/$$f"; \
|
||||
done
|
||||
@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' `; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(bindir)" && rm -f $$files
|
||||
|
||||
clean-binPROGRAMS:
|
||||
@list='$(bin_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f $$p $$f"; \
|
||||
rm -f $$p $$f ; \
|
||||
done
|
||||
@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list || exit $$?; \
|
||||
test -n "$(EXEEXT)" || exit 0; \
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
ftp$(EXEEXT): $(ftp_OBJECTS) $(ftp_DEPENDENCIES)
|
||||
@rm -f ftp$(EXEEXT)
|
||||
$(LINK) $(ftp_OBJECTS) $(ftp_LDADD) $(LIBS)
|
||||
@ -445,115 +515,148 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmds.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cmdtab.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/domacro.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftp.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/globals.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gssapi.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kauth.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ruserpass.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/security.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
$(COMPILE) -c $<
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(LTCOMPILE) -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
mostlyclean-libtool:
|
||||
-rm -f *.lo
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-man1: $(man1_MANS) $(man_MANS)
|
||||
install-man1: $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
|
||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
@list=''; test -n "$(man1dir)" || exit 0; \
|
||||
{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.1[a-z]*$$/p'; \
|
||||
} | while read p; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; echo "$$p"; \
|
||||
done | \
|
||||
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
|
||||
sed 'N;N;s,\n, ,g' | { \
|
||||
list=; while read file base inst; do \
|
||||
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
|
||||
fi; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||
else file=$$i; fi; \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
1*) ;; \
|
||||
*) ext='1' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||
done
|
||||
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
|
||||
done; }
|
||||
|
||||
uninstall-man1:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.1*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
1*) ;; \
|
||||
*) ext='1' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
|
||||
rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
|
||||
done
|
||||
@list=''; test -n "$(man1dir)" || exit 0; \
|
||||
files=`{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.1[a-z]*$$/p'; \
|
||||
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||
test -z "$$files" || { \
|
||||
echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@list='$(MANS)'; if test -n "$$list"; then \
|
||||
list=`for p in $$list; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
|
||||
if test -n "$$list" && \
|
||||
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
|
||||
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
|
||||
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
|
||||
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
|
||||
echo " typically \`make maintainer-clean' will remove them" >&2; \
|
||||
exit 1; \
|
||||
else :; fi; \
|
||||
else :; fi
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@ -569,13 +672,17 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@ -610,6 +717,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -619,6 +727,7 @@ clean: clean-am
|
||||
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
@ -629,6 +738,8 @@ dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -636,26 +747,35 @@ info-am:
|
||||
install-data-am: install-man
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-binPROGRAMS
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man: install-man1
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
@ -675,11 +795,10 @@ ps-am:
|
||||
uninstall-am: uninstall-binPROGRAMS uninstall-man
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||
|
||||
uninstall-man: uninstall-man1
|
||||
|
||||
.MAKE: install-am install-data-am install-exec-am install-strip \
|
||||
uninstall-am
|
||||
.MAKE: check-am install-am install-data-am install-exec-am \
|
||||
install-strip uninstall-am
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am all-local check check-am check-local \
|
||||
clean clean-binPROGRAMS clean-generic clean-libtool ctags \
|
||||
@ -766,6 +885,9 @@ check-local::
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
.hx.h:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
@ -851,7 +973,7 @@ uninstall-hook: uninstall-cat-mans
|
||||
check-valgrind:
|
||||
tobjdir=`cd $(top_builddir) && pwd` ; \
|
||||
tsrcdir=`cd $(top_srcdir) && pwd` ; \
|
||||
env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
|
||||
env TESTS_ENVIRONMENT="$${tsrcdir}/cf/maybe-valgrind.sh -s $${tsrcdir} -o $${tobjdir}" make check
|
||||
|
||||
#
|
||||
# Target to please samba build farm, builds distfiles in-tree.
|
||||
@ -864,6 +986,7 @@ distdir-in-tree: $(DISTFILES) $(INFO_DEPS)
|
||||
(cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) distdir-in-tree) ; \
|
||||
fi ; \
|
||||
done
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
35
appl/ftp/ftp/NTMakefile
Normal file
35
appl/ftp/ftp/NTMakefile
Normal file
@ -0,0 +1,35 @@
|
||||
########################################################################
|
||||
#
|
||||
# Copyright (c) 2009, Secure Endpoints Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
# COPYRIGHT HOLDER 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.
|
||||
#
|
||||
|
||||
RELDIR=appl\ftp\ftp
|
||||
|
||||
!include ../../../windows/NTMakefile.w32
|
||||
|
@ -36,7 +36,7 @@
|
||||
*/
|
||||
|
||||
#include "ftp_locl.h"
|
||||
RCSID("$Id: cmds.c 15673 2005-07-19 18:19:33Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
typedef void (*sighand)(int);
|
||||
|
||||
@ -189,7 +189,7 @@ setpeer(int argc, char **argv)
|
||||
unix_proxy = 0;
|
||||
else
|
||||
unix_server = 0;
|
||||
if (overbose &&
|
||||
if (overbose &&
|
||||
!strncmp(reply_string, "215 TOPS20", 10))
|
||||
printf(
|
||||
"Remember to set tenex mode when transfering binary files from this machine.\n");
|
||||
@ -682,15 +682,15 @@ getit(int argc, char **argv, int restartit, char *filemode)
|
||||
tm->tm_year += 1900;
|
||||
|
||||
if ((tm->tm_year > yy) ||
|
||||
(tm->tm_year == yy &&
|
||||
(tm->tm_year == yy &&
|
||||
tm->tm_mon > mo) ||
|
||||
(tm->tm_mon == mo &&
|
||||
(tm->tm_mon == mo &&
|
||||
tm->tm_mday > day) ||
|
||||
(tm->tm_mday == day &&
|
||||
(tm->tm_mday == day &&
|
||||
tm->tm_hour > hour) ||
|
||||
(tm->tm_hour == hour &&
|
||||
(tm->tm_hour == hour &&
|
||||
tm->tm_min > min) ||
|
||||
(tm->tm_min == min &&
|
||||
(tm->tm_min == min &&
|
||||
tm->tm_sec > sec))
|
||||
return (1);
|
||||
}
|
||||
@ -868,7 +868,7 @@ status(int argc, char **argv)
|
||||
sec_status();
|
||||
printf("Mode: %s; Type: %s; Form: %s; Structure: %s\n",
|
||||
modename, typename, formname, structname);
|
||||
printf("Verbose: %s; Bell: %s; Prompting: %s; Globbing: %s\n",
|
||||
printf("Verbose: %s; Bell: %s; Prompting: %s; Globbing: %s\n",
|
||||
onoff(verbose), onoff(bell), onoff(interactive),
|
||||
onoff(doglob));
|
||||
printf("Store unique: %s; Receive unique: %s\n", onoff(sunique),
|
||||
@ -987,7 +987,7 @@ setprompt(int argc, char **argv)
|
||||
void
|
||||
setglob(int argc, char **argv)
|
||||
{
|
||||
|
||||
|
||||
doglob = !doglob;
|
||||
printf("Globbing %s.\n", onoff(doglob));
|
||||
code = doglob;
|
||||
@ -1171,7 +1171,7 @@ ls(int argc, char **argv)
|
||||
return;
|
||||
}
|
||||
if (strcmp(argv[2], "-") && *argv[2] != '|')
|
||||
if (!globulize(&argv[2]) || !confirm("output to local-file:",
|
||||
if (!globulize(&argv[2]) || !confirm("output to local-file:",
|
||||
argv[2])) {
|
||||
code = -1;
|
||||
return;
|
||||
@ -1237,7 +1237,7 @@ shell(int argc, char **argv)
|
||||
{
|
||||
pid_t pid;
|
||||
RETSIGTYPE (*old1)(int), (*old2)(int);
|
||||
char shellnam[40], *shellpath, *namep;
|
||||
char shellnam[40], *shellpath, *namep;
|
||||
int waitstatus;
|
||||
|
||||
old1 = signal (SIGINT, SIG_IGN);
|
||||
@ -1759,6 +1759,11 @@ setnmap(int argc, char **argv)
|
||||
mapflag = 1;
|
||||
code = 1;
|
||||
cp = strchr(altarg, ' ');
|
||||
if (cp == NULL) {
|
||||
printf("Usage: %s missing space\n",argv[0]);
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
if (proxy) {
|
||||
while(*++cp == ' ')
|
||||
continue;
|
||||
@ -1833,7 +1838,7 @@ domap(char *name)
|
||||
break;
|
||||
case '[':
|
||||
LOOP:
|
||||
if (*++cp2 == '$' && isdigit((unsigned char)*(cp2+1))) {
|
||||
if (*++cp2 == '$' && isdigit((unsigned char)*(cp2+1))) {
|
||||
if (*++cp2 == '0') {
|
||||
char *cp3 = name;
|
||||
|
||||
@ -1852,7 +1857,7 @@ domap(char *name)
|
||||
}
|
||||
}
|
||||
else {
|
||||
while (*cp2 && *cp2 != ',' &&
|
||||
while (*cp2 && *cp2 != ',' &&
|
||||
*cp2 != ']') {
|
||||
if (*cp2 == '\\') {
|
||||
cp2++;
|
||||
@ -2137,7 +2142,7 @@ klist(int argc, char **argv)
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
ret = command("SITE KLIST");
|
||||
code = (ret == COMPLETE);
|
||||
}
|
||||
|
@ -106,17 +106,10 @@ char verbosehelp[] = "toggle verbose mode";
|
||||
|
||||
char prothelp[] = "set protection level";
|
||||
char prothelp_c[] = "set command protection level";
|
||||
#ifdef KRB4
|
||||
char kauthhelp[] = "get remote tokens";
|
||||
#endif
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
char klisthelp[] = "show remote tickets";
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
char kdestroyhelp[] = "destroy remote tickets";
|
||||
char krbtkfilehelp[] = "set filename of remote tickets";
|
||||
#endif
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
char afsloghelp[] = "obtain remote AFS tokens";
|
||||
#endif
|
||||
|
||||
@ -197,20 +190,13 @@ struct cmd cmdtab[] = {
|
||||
{ "protect", prothelp, 0, 1, 0, sec_prot },
|
||||
/* what MIT uses */
|
||||
{ "cprotect", prothelp_c, 0, 1, 1, sec_prot_command },
|
||||
#ifdef KRB4
|
||||
{ "kauth", kauthhelp, 0, 1, 0, kauth },
|
||||
#endif
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
{ "klist", klisthelp, 0, 1, 0, klist },
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
{ "kdestroy", kdestroyhelp, 0, 1, 0, kdestroy },
|
||||
{ "krbtkfile", krbtkfilehelp, 0, 1, 0, krbtkfile },
|
||||
#endif
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
{ "afslog", afsloghelp, 0, 1, 0, afslog },
|
||||
#endif
|
||||
|
||||
|
||||
{ 0 },
|
||||
};
|
||||
|
||||
|
@ -32,7 +32,7 @@
|
||||
*/
|
||||
|
||||
#include "ftp_locl.h"
|
||||
RCSID("$Id: domacro.c 14951 2005-04-25 13:09:26Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
void
|
||||
domacro(int argc, char **argv)
|
||||
|
@ -33,7 +33,7 @@
|
||||
* @(#)extern.h 8.3 (Berkeley) 10/9/94
|
||||
*/
|
||||
|
||||
/* $Id: extern.h 9075 2000-09-19 13:15:12Z assar $ */
|
||||
/* $Id$ */
|
||||
|
||||
#include <setjmp.h>
|
||||
#include <stdlib.h>
|
||||
@ -117,7 +117,7 @@ void reset (int, char **);
|
||||
void restart (int, char **);
|
||||
void rmthelp (int, char **);
|
||||
void rmtstatus (int, char **);
|
||||
int ruserpass (char *, char **, char **, char **);
|
||||
int ruserpassword (char *, char **, char **, char **);
|
||||
void sendrequest (char *, char *, char *, char *, int);
|
||||
void setascii (int, char **);
|
||||
void setbell (int, char **);
|
||||
|
@ -53,8 +53,8 @@ file transfer program
|
||||
.Op Fl t
|
||||
.Op Fl v
|
||||
.Op Fl x
|
||||
.Op Fl -no-gss-bindings
|
||||
.Op Fl -no-gss-delegate
|
||||
.Op Fl Fl no-gss-bindings
|
||||
.Op Fl Fl no-gss-delegate
|
||||
.Op Ar host
|
||||
.Sh DESCRIPTION
|
||||
.Nm
|
||||
@ -103,10 +103,10 @@ Turn on passive mode.
|
||||
Enables debugging.
|
||||
.It Fl g
|
||||
Disables file name globbing.
|
||||
.It Fl -no-gss-bindings
|
||||
.It Fl Fl no-gss-bindings
|
||||
Don't use GSS-API bindings when talking to peer. IP addresses will not
|
||||
be checked to ensure they match.
|
||||
.It Fl -no-gss-delegate
|
||||
.It Fl Fl no-gss-delegate
|
||||
Disable delegation of GSSAPI credentials.
|
||||
.It Fl l
|
||||
Disables command line editing.
|
||||
|
@ -32,7 +32,7 @@
|
||||
*/
|
||||
|
||||
#include "ftp_locl.h"
|
||||
RCSID ("$Id: ftp.c 16650 2006-01-24 08:16:08Z lha $");
|
||||
RCSID ("$Id$");
|
||||
|
||||
struct sockaddr_storage hisctladdr_ss;
|
||||
struct sockaddr *hisctladdr = (struct sockaddr *)&hisctladdr_ss;
|
||||
@ -89,7 +89,7 @@ hookup (const char *host, int port)
|
||||
strlcpy (hostnamebuf, a->ai_canonname, sizeof(hostnamebuf));
|
||||
|
||||
memcpy (hisctladdr, a->ai_addr, a->ai_addrlen);
|
||||
|
||||
|
||||
error = connect (s, a->ai_addr, a->ai_addrlen);
|
||||
if (error < 0) {
|
||||
char addrstr[256];
|
||||
@ -98,7 +98,7 @@ hookup (const char *host, int port)
|
||||
addrstr, sizeof(addrstr),
|
||||
NULL, 0, NI_NUMERICHOST) != 0)
|
||||
strlcpy (addrstr, "unknown address", sizeof(addrstr));
|
||||
|
||||
|
||||
warn ("connect %s", addrstr);
|
||||
close (s);
|
||||
s = -1;
|
||||
@ -167,6 +167,7 @@ login (char *host)
|
||||
char tmp[80];
|
||||
char defaultpass[128];
|
||||
char *userstr, *pass, *acctstr;
|
||||
char *ruserstr, *rpass, *racctstr;
|
||||
int n, aflag = 0;
|
||||
|
||||
char *myname = NULL;
|
||||
@ -175,7 +176,7 @@ login (char *host)
|
||||
if (pw != NULL)
|
||||
myname = pw->pw_name;
|
||||
|
||||
userstr = pass = acctstr = 0;
|
||||
ruserstr = rpass = racctstr = NULL;
|
||||
|
||||
if(sec_login(host))
|
||||
printf("\n*** Using plaintext user and password ***\n\n");
|
||||
@ -183,10 +184,14 @@ login (char *host)
|
||||
printf("Authentication successful.\n\n");
|
||||
}
|
||||
|
||||
if (ruserpass (host, &userstr, &pass, &acctstr) < 0) {
|
||||
if (ruserpassword (host, &ruserstr, &rpass, &racctstr) < 0) {
|
||||
code = -1;
|
||||
return (0);
|
||||
}
|
||||
userstr = ruserstr;
|
||||
pass = rpass;
|
||||
acctstr = racctstr;
|
||||
|
||||
while (userstr == NULL) {
|
||||
if (myname)
|
||||
printf ("Name (%s:%s): ", host, myname);
|
||||
@ -201,17 +206,20 @@ login (char *host)
|
||||
userstr = tmp;
|
||||
}
|
||||
strlcpy(username, userstr, sizeof(username));
|
||||
if (ruserstr)
|
||||
free(ruserstr);
|
||||
|
||||
n = command("USER %s", userstr);
|
||||
if (n == COMPLETE)
|
||||
if (n == COMPLETE)
|
||||
n = command("PASS dummy"); /* DK: Compatibility with gssftp daemon */
|
||||
else if(n == CONTINUE) {
|
||||
if (pass == NULL) {
|
||||
char prompt[128];
|
||||
if(myname &&
|
||||
if(myname &&
|
||||
(!strcmp(userstr, "ftp") || !strcmp(userstr, "anonymous"))) {
|
||||
snprintf(defaultpass, sizeof(defaultpass),
|
||||
snprintf(defaultpass, sizeof(defaultpass),
|
||||
"%s@%s", myname, mydomain);
|
||||
snprintf(prompt, sizeof(prompt),
|
||||
snprintf(prompt, sizeof(prompt),
|
||||
"Password (%s): ", defaultpass);
|
||||
} else if (sec_complete) {
|
||||
pass = myname;
|
||||
@ -227,19 +235,25 @@ login (char *host)
|
||||
}
|
||||
}
|
||||
n = command ("PASS %s", pass);
|
||||
if (rpass)
|
||||
free(rpass);
|
||||
}
|
||||
if (n == CONTINUE) {
|
||||
aflag++;
|
||||
UI_UTIL_read_pw_string (tmp, sizeof(tmp), "Account:", 0);
|
||||
acctstr = tmp;
|
||||
UI_UTIL_read_pw_string (acctstr, 128, "Account:", 0);
|
||||
n = command ("ACCT %s", acctstr);
|
||||
}
|
||||
if (n != COMPLETE) {
|
||||
if (racctstr)
|
||||
free(racctstr);
|
||||
warnx ("Login failed.");
|
||||
return (0);
|
||||
}
|
||||
if (!aflag && acctstr != NULL)
|
||||
command ("ACCT %s", acctstr);
|
||||
if (racctstr)
|
||||
free(racctstr);
|
||||
if (proxy)
|
||||
return (1);
|
||||
for (n = 0; n < macnum; ++n) {
|
||||
@ -417,7 +431,7 @@ getreply (int expecteof)
|
||||
continue;
|
||||
default:
|
||||
if(p < buf + sizeof(buf) - 1)
|
||||
*p++ = c;
|
||||
*p++ = c;
|
||||
else if(long_warn == 0) {
|
||||
fprintf(stderr, "WARNING: incredibly long line received\n");
|
||||
long_warn = 1;
|
||||
@ -579,6 +593,9 @@ copy_stream (FILE * from, FILE * to)
|
||||
|
||||
#if defined(HAVE_MMAP) && !defined(NO_MMAP)
|
||||
void *chunk;
|
||||
size_t off;
|
||||
|
||||
#define BLOCKSIZE (1024 * 1024 * 10)
|
||||
|
||||
#ifndef MAP_FAILED
|
||||
#define MAP_FAILED (-1)
|
||||
@ -590,17 +607,35 @@ copy_stream (FILE * from, FILE * to)
|
||||
*/
|
||||
if (st.st_size == 0)
|
||||
return 0;
|
||||
chunk = mmap (0, st.st_size, PROT_READ, MAP_SHARED, fileno (from), 0);
|
||||
if (chunk != (void *) MAP_FAILED) {
|
||||
int res;
|
||||
off = 0;
|
||||
while (off != st.st_size) {
|
||||
size_t len;
|
||||
ssize_t res;
|
||||
|
||||
res = sec_write (fileno (to), chunk, st.st_size);
|
||||
if (munmap (chunk, st.st_size) < 0)
|
||||
len = st.st_size - off;
|
||||
if (len > BLOCKSIZE)
|
||||
len = BLOCKSIZE;
|
||||
|
||||
chunk = mmap (0, len, PROT_READ, MAP_SHARED, fileno (from), off);
|
||||
if (chunk == (void *) MAP_FAILED) {
|
||||
if (off == 0) /* try read if mmap doesn't work */
|
||||
goto try_read;
|
||||
break;
|
||||
}
|
||||
|
||||
res = sec_write (fileno (to), chunk, len);
|
||||
if (msync (chunk, len, MS_ASYNC))
|
||||
warn ("msync");
|
||||
if (munmap (chunk, len) < 0)
|
||||
warn ("munmap");
|
||||
sec_fflush (to);
|
||||
return res;
|
||||
if (res != len)
|
||||
return off;
|
||||
off += len;
|
||||
}
|
||||
return off;
|
||||
}
|
||||
try_read:
|
||||
#endif
|
||||
|
||||
buf = alloc_buffer (buf, &bufsize,
|
||||
@ -643,7 +678,7 @@ sendrequest (char *cmd, char *local, char *remote, char *lmode, int printnames)
|
||||
char *rmode = "w";
|
||||
|
||||
if (verbose && printnames) {
|
||||
if (local && strcmp (local, "-") != 0)
|
||||
if (strcmp (local, "-") != 0)
|
||||
printf ("local: %s ", local);
|
||||
if (remote)
|
||||
printf ("remote: %s\n", remote);
|
||||
@ -696,8 +731,7 @@ sendrequest (char *cmd, char *local, char *remote, char *lmode, int printnames)
|
||||
return;
|
||||
}
|
||||
closefunc = fclose;
|
||||
if (fstat (fileno (fin), &st) < 0 ||
|
||||
(st.st_mode & S_IFMT) != S_IFREG) {
|
||||
if (fstat (fileno (fin), &st) < 0 || !S_ISREG(st.st_mode)) {
|
||||
fprintf (stdout, "%s: not a plain file.\n", local);
|
||||
signal (SIGINT, oldintr);
|
||||
fclose (fin);
|
||||
@ -875,7 +909,7 @@ recvrequest (char *cmd, char *local, char *remote,
|
||||
|
||||
is_retr = strcmp (cmd, "RETR") == 0;
|
||||
if (is_retr && verbose && printnames) {
|
||||
if (local && strcmp (local, "-") != 0)
|
||||
if (strcmp (local, "-") != 0)
|
||||
printf ("local: %s ", local);
|
||||
if (remote)
|
||||
printf ("remote: %s\n", remote);
|
||||
@ -902,7 +936,7 @@ recvrequest (char *cmd, char *local, char *remote,
|
||||
return;
|
||||
}
|
||||
oldintr = signal (SIGINT, abortrecv);
|
||||
if (!local_given || (strcmp (local, "-") && *local != '|')) {
|
||||
if (!local_given || (strcmp(local, "-") && *local != '|')) {
|
||||
if (access (local, 2) < 0) {
|
||||
char *dir = strrchr (local, '/');
|
||||
|
||||
@ -1317,7 +1351,7 @@ active_mode (void)
|
||||
verbose = -1;
|
||||
|
||||
result = command ("EPRT |%d|%s|%d|",
|
||||
inet_af, addr_str,
|
||||
inet_af, addr_str,
|
||||
ntohs(socket_get_port (data_addr)));
|
||||
verbose = overbose;
|
||||
|
||||
@ -1332,7 +1366,7 @@ active_mode (void)
|
||||
goto bad;
|
||||
}
|
||||
|
||||
result = command("PORT %d,%d,%d,%d,%d,%d",
|
||||
result = command("PORT %d,%d,%d,%d,%d,%d",
|
||||
(a >> 24) & 0xff,
|
||||
(a >> 16) & 0xff,
|
||||
(a >> 8) & 0xff,
|
||||
@ -1371,7 +1405,7 @@ active_mode (void)
|
||||
int
|
||||
initconn (void)
|
||||
{
|
||||
if (passivemode)
|
||||
if (passivemode)
|
||||
return passive_mode ();
|
||||
else
|
||||
return active_mode ();
|
||||
|
658
appl/ftp/ftp/ftp.cat1
Normal file
658
appl/ftp/ftp/ftp.cat1
Normal file
@ -0,0 +1,658 @@
|
||||
|
||||
FTP(1) BSD General Commands Manual FTP(1)
|
||||
|
||||
NNAAMMEE
|
||||
ffttpp -- ARPANET file transfer program
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
ffttpp [--KK] [--dd] [--gg] [--ii] [--ll] [--nn] [--pp] [--tt] [--vv] [--xx] [----nnoo--ggssss--bbiinnddiinnggss]
|
||||
[----nnoo--ggssss--ddeelleeggaattee] [_h_o_s_t]
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
ffttpp is the user interface to the ARPANET standard File Transfer Protocol.
|
||||
The program allows a user to transfer files to and from a remote network
|
||||
site.
|
||||
|
||||
Modifications have been made so that it almost follows the FTP Security
|
||||
Extensions, RFC 2228.
|
||||
|
||||
Options may be specified at the command line, or to the command inter-
|
||||
preter.
|
||||
|
||||
--KK Disable Kerberos authentication.
|
||||
|
||||
--tt Enables packet tracing.
|
||||
|
||||
--vv Verbose option forces ffttpp to show all responses from the remote
|
||||
server, as well as report on data transfer statistics.
|
||||
|
||||
--nn Restrains ffttpp from attempting ``auto-login'' upon initial connec-
|
||||
tion. If auto-login is enabled, ffttpp will check the _._n_e_t_r_c (see
|
||||
below) file in the user's home directory for an entry describing an
|
||||
account on the remote machine. If no entry exists, ffttpp will prompt
|
||||
for the remote machine login name (default is the user identity on
|
||||
the local machine), and, if necessary, prompt for a password and an
|
||||
account with which to login.
|
||||
|
||||
--ii Turns off interactive prompting during multiple file transfers.
|
||||
|
||||
--pp Turn on passive mode.
|
||||
|
||||
--dd Enables debugging.
|
||||
|
||||
--gg Disables file name globbing.
|
||||
.It Fl Fl no-gss-bindings Don't use GSS-API bindings when talking
|
||||
to peer. IP addresses will not be checked to ensure they match.
|
||||
|
||||
----nnoo--ggssss--ddeelleeggaattee
|
||||
Disable delegation of GSSAPI credentials.
|
||||
|
||||
--ll Disables command line editing.
|
||||
|
||||
--xx Encrypt command and data channel.
|
||||
|
||||
The client host with which ffttpp is to communicate may be specified on the
|
||||
command line. If this is done, ffttpp will immediately attempt to establish
|
||||
a connection to an FTP server on that host; otherwise, ffttpp will enter its
|
||||
command interpreter and await instructions from the user. When ffttpp is
|
||||
awaiting commands from the user the prompt `ftp>' is provided to the
|
||||
user. The following commands are recognized by ffttpp:
|
||||
|
||||
!! [_c_o_m_m_a_n_d [_a_r_g_s]]
|
||||
Invoke an interactive shell on the local machine. If there
|
||||
are arguments, the first is taken to be a command to execute
|
||||
directly, with the rest of the arguments as its arguments.
|
||||
|
||||
$$ _m_a_c_r_o_-_n_a_m_e [_a_r_g_s]
|
||||
Execute the macro _m_a_c_r_o_-_n_a_m_e that was defined with the mmaaccddeeff
|
||||
command. Arguments are passed to the macro unglobbed.
|
||||
|
||||
aaccccoouunntt [_p_a_s_s_w_d]
|
||||
Supply a supplemental password required by a remote system
|
||||
for access to resources once a login has been successfully
|
||||
completed. If no argument is included, the user will be
|
||||
prompted for an account password in a non-echoing input mode.
|
||||
|
||||
aappppeenndd _l_o_c_a_l_-_f_i_l_e [_r_e_m_o_t_e_-_f_i_l_e]
|
||||
Append a local file to a file on the remote machine. If
|
||||
_r_e_m_o_t_e_-_f_i_l_e is left unspecified, the local file name is used
|
||||
in naming the remote file after being altered by any nnttrraannss
|
||||
or nnmmaapp setting. File transfer uses the current settings for
|
||||
ttyyppee, ffoorrmmaatt, mmooddee, and ssttrruuccttuurree.
|
||||
|
||||
aasscciiii Set the file transfer ttyyppee to network ASCII. This is the
|
||||
default type.
|
||||
|
||||
bbeellll Arrange that a bell be sounded after each file transfer com-
|
||||
mand is completed.
|
||||
|
||||
bbiinnaarryy Set the file transfer ttyyppee to support binary image transfer.
|
||||
|
||||
bbyyee Terminate the FTP session with the remote server and exit
|
||||
ffttpp. An end of file will also terminate the session and
|
||||
exit.
|
||||
|
||||
ccaassee Toggle remote computer file name case mapping during mmggeett
|
||||
commands. When ccaassee is on (default is off), remote computer
|
||||
file names with all letters in upper case are written in the
|
||||
local directory with the letters mapped to lower case.
|
||||
|
||||
ccdd _r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y
|
||||
Change the working directory on the remote machine to
|
||||
_r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y.
|
||||
|
||||
ccdduupp Change the remote machine working directory to the parent of
|
||||
the current remote machine working directory.
|
||||
|
||||
cchhmmoodd _m_o_d_e _f_i_l_e_-_n_a_m_e
|
||||
Change the permission modes of the file _f_i_l_e_-_n_a_m_e on the
|
||||
remote sytem to _m_o_d_e.
|
||||
|
||||
cclloossee Terminate the FTP session with the remote server, and return
|
||||
to the command interpreter. Any defined macros are erased.
|
||||
|
||||
ccrr Toggle carriage return stripping during ascii type file
|
||||
retrieval. Records are denoted by a carriage return/linefeed
|
||||
sequence during ascii type file transfer. When ccrr is on (the
|
||||
default), carriage returns are stripped from this sequence to
|
||||
conform with the UNIX single linefeed record delimiter.
|
||||
Records on non-UNIX remote systems may contain single line-
|
||||
feeds; when an ascii type transfer is made, these linefeeds
|
||||
may be distinguished from a record delimiter only when ccrr is
|
||||
off.
|
||||
|
||||
ddeelleettee _r_e_m_o_t_e_-_f_i_l_e
|
||||
Delete the file _r_e_m_o_t_e_-_f_i_l_e on the remote machine.
|
||||
|
||||
ddeebbuugg [_d_e_b_u_g_-_v_a_l_u_e]
|
||||
Toggle debugging mode. If an optional _d_e_b_u_g_-_v_a_l_u_e is speci-
|
||||
fied it is used to set the debugging level. When debugging
|
||||
is on, ffttpp prints each command sent to the remote machine,
|
||||
preceded by the string `-->'
|
||||
|
||||
ddiirr [_r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y] [_l_o_c_a_l_-_f_i_l_e]
|
||||
Print a listing of the directory contents in the directory,
|
||||
_r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y, and, optionally, placing the output in
|
||||
_l_o_c_a_l_-_f_i_l_e. If interactive prompting is on, ffttpp will prompt
|
||||
the user to verify that the last argument is indeed the tar-
|
||||
get local file for receiving ddiirr output. If no directory is
|
||||
specified, the current working directory on the remote
|
||||
machine is used. If no local file is specified, or
|
||||
_l_o_c_a_l_-_f_i_l_e is --, output comes to the terminal.
|
||||
|
||||
ddiissccoonnnneecctt A synonym for _c_l_o_s_e.
|
||||
|
||||
ffoorrmm _f_o_r_m_a_t
|
||||
Set the file transfer ffoorrmm to _f_o_r_m_a_t. The default format is
|
||||
``file''.
|
||||
|
||||
ggeett _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
|
||||
Retrieve the _r_e_m_o_t_e_-_f_i_l_e and store it on the local machine.
|
||||
If the local file name is not specified, it is given the same
|
||||
name it has on the remote machine, subject to alteration by
|
||||
the current ccaassee, nnttrraannss, and nnmmaapp settings. The current
|
||||
settings for ttyyppee, ffoorrmm, mmooddee, and ssttrruuccttuurree are used while
|
||||
transferring the file.
|
||||
|
||||
gglloobb Toggle filename expansion for mmddeelleettee, mmggeett and mmppuutt. If
|
||||
globbing is turned off with gglloobb, the file name arguments are
|
||||
taken literally and not expanded. Globbing for mmppuutt is done
|
||||
as in csh(1). For mmddeelleettee and mmggeett, each remote file name is
|
||||
expanded separately on the remote machine and the lists are
|
||||
not merged. Expansion of a directory name is likely to be
|
||||
different from expansion of the name of an ordinary file: the
|
||||
exact result depends on the foreign operating system and ftp
|
||||
server, and can be previewed by doing `mls remote-files -'.
|
||||
As a security measure, remotely globbed files that starts
|
||||
with `/' or contains `../', will not be automatically
|
||||
received. If you have interactive prompting turned off, these
|
||||
filenames will be ignored. Note: mmggeett and mmppuutt are not meant
|
||||
to transfer entire directory subtrees of files. That can be
|
||||
done by transferring a tar(1) archive of the subtree (in
|
||||
binary mode).
|
||||
|
||||
hhaasshh Toggle hash-sign (``#'') printing for each data block trans-
|
||||
ferred. The size of a data block is 1024 bytes.
|
||||
|
||||
hheellpp [_c_o_m_m_a_n_d]
|
||||
Print an informative message about the meaning of _c_o_m_m_a_n_d.
|
||||
If no argument is given, ffttpp prints a list of the known com-
|
||||
mands.
|
||||
|
||||
iiddllee [_s_e_c_o_n_d_s]
|
||||
Set the inactivity timer on the remote server to _s_e_c_o_n_d_s sec-
|
||||
onds. If _s_e_c_o_n_d_s is omitted, the current inactivity timer is
|
||||
printed.
|
||||
|
||||
llccdd [_d_i_r_e_c_t_o_r_y]
|
||||
Change the working directory on the local machine. If no
|
||||
_d_i_r_e_c_t_o_r_y is specified, the user's home directory is used.
|
||||
|
||||
llss [_r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y] [_l_o_c_a_l_-_f_i_l_e]
|
||||
Print a listing of the contents of a directory on the remote
|
||||
machine. The listing includes any system-dependent informa-
|
||||
tion that the server chooses to include; for example, most
|
||||
UNIX systems will produce output from the command `ls -l'.
|
||||
(See also nnlliisstt.) If _r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y is left unspecified,
|
||||
the current working directory is used. If interactive
|
||||
prompting is on, ffttpp will prompt the user to verify that the
|
||||
last argument is indeed the target local file for receiving
|
||||
llss output. If no local file is specified, or if _l_o_c_a_l_-_f_i_l_e
|
||||
is `--', the output is sent to the terminal.
|
||||
|
||||
mmaaccddeeff _m_a_c_r_o_-_n_a_m_e
|
||||
Define a macro. Subsequent lines are stored as the macro
|
||||
_m_a_c_r_o_-_n_a_m_e; a null line (consecutive newline characters in a
|
||||
file or carriage returns from the terminal) terminates macro
|
||||
input mode. There is a limit of 16 macros and 4096 total
|
||||
characters in all defined macros. Macros remain defined
|
||||
until a cclloossee command is executed. The macro processor
|
||||
interprets `$' and `\' as special characters. A `$' followed
|
||||
by a number (or numbers) is replaced by the corresponding
|
||||
argument on the macro invocation command line. A `$' fol-
|
||||
lowed by an `i' signals that macro processor that the execut-
|
||||
ing macro is to be looped. On the first pass `$i' is
|
||||
replaced by the first argument on the macro invocation com-
|
||||
mand line, on the second pass it is replaced by the second
|
||||
argument, and so on. A `\' followed by any character is
|
||||
replaced by that character. Use the `\' to prevent special
|
||||
treatment of the `$'.
|
||||
|
||||
mmddeelleettee [_r_e_m_o_t_e_-_f_i_l_e_s]
|
||||
Delete the _r_e_m_o_t_e_-_f_i_l_e_s on the remote machine.
|
||||
|
||||
mmddiirr _r_e_m_o_t_e_-_f_i_l_e_s _l_o_c_a_l_-_f_i_l_e
|
||||
Like ddiirr, except multiple remote files may be specified. If
|
||||
interactive prompting is on, ffttpp will prompt the user to ver-
|
||||
ify that the last argument is indeed the target local file
|
||||
for receiving mmddiirr output.
|
||||
|
||||
mmggeett _r_e_m_o_t_e_-_f_i_l_e_s
|
||||
Expand the _r_e_m_o_t_e_-_f_i_l_e_s on the remote machine and do a ggeett
|
||||
for each file name thus produced. See gglloobb for details on
|
||||
the filename expansion. Resulting file names will then be
|
||||
processed according to ccaassee, nnttrraannss, and nnmmaapp settings.
|
||||
Files are transferred into the local working directory, which
|
||||
can be changed with `lcd directory'; new local directories
|
||||
can be created with `! mkdir directory'.
|
||||
|
||||
mmkkddiirr _d_i_r_e_c_t_o_r_y_-_n_a_m_e
|
||||
Make a directory on the remote machine.
|
||||
|
||||
mmllss _r_e_m_o_t_e_-_f_i_l_e_s _l_o_c_a_l_-_f_i_l_e
|
||||
Like nnlliisstt, except multiple remote files may be specified,
|
||||
and the _l_o_c_a_l_-_f_i_l_e must be specified. If interactive prompt-
|
||||
ing is on, ffttpp will prompt the user to verify that the last
|
||||
argument is indeed the target local file for receiving mmllss
|
||||
output.
|
||||
|
||||
mmooddee [_m_o_d_e_-_n_a_m_e]
|
||||
Set the file transfer mmooddee to _m_o_d_e_-_n_a_m_e. The default mode is
|
||||
``stream'' mode.
|
||||
|
||||
mmooddttiimmee _f_i_l_e_-_n_a_m_e
|
||||
Show the last modification time of the file on the remote
|
||||
machine.
|
||||
|
||||
mmppuutt _l_o_c_a_l_-_f_i_l_e_s
|
||||
Expand wild cards in the list of local files given as argu-
|
||||
ments and do a ppuutt for each file in the resulting list. See
|
||||
gglloobb for details of filename expansion. Resulting file names
|
||||
will then be processed according to nnttrraannss and nnmmaapp settings.
|
||||
|
||||
nneewweerr _f_i_l_e_-_n_a_m_e
|
||||
Get the file only if the modification time of the remote file
|
||||
is more recent that the file on the current system. If the
|
||||
file does not exist on the current system, the remote file is
|
||||
considered nneewweerr. Otherwise, this command is identical to
|
||||
_g_e_t.
|
||||
|
||||
nnlliisstt [_r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y] [_l_o_c_a_l_-_f_i_l_e]
|
||||
Print a list of the files in a directory on the remote
|
||||
machine. If _r_e_m_o_t_e_-_d_i_r_e_c_t_o_r_y is left unspecified, the cur-
|
||||
rent working directory is used. If interactive prompting is
|
||||
on, ffttpp will prompt the user to verify that the last argument
|
||||
is indeed the target local file for receiving nnlliisstt output.
|
||||
If no local file is specified, or if _l_o_c_a_l_-_f_i_l_e is --, the
|
||||
output is sent to the terminal.
|
||||
|
||||
nnmmaapp [_i_n_p_a_t_t_e_r_n _o_u_t_p_a_t_t_e_r_n]
|
||||
Set or unset the filename mapping mechanism. If no arguments
|
||||
are specified, the filename mapping mechanism is unset. If
|
||||
arguments are specified, remote filenames are mapped during
|
||||
mmppuutt commands and ppuutt commands issued without a specified
|
||||
remote target filename. If arguments are specified, local
|
||||
filenames are mapped during mmggeett commands and ggeett commands
|
||||
issued without a specified local target filename. This com-
|
||||
mand is useful when connecting to a non-UNIX remote computer
|
||||
with different file naming conventions or practices. The
|
||||
mapping follows the pattern set by _i_n_p_a_t_t_e_r_n and _o_u_t_p_a_t_t_e_r_n.
|
||||
[_I_n_p_a_t_t_e_r_n] is a template for incoming filenames (which may
|
||||
have already been processed according to the nnttrraannss and ccaassee
|
||||
settings). Variable templating is accomplished by including
|
||||
the sequences `$1', `$2', ..., `$9' in _i_n_p_a_t_t_e_r_n. Use `\' to
|
||||
prevent this special treatment of the `$' character. All
|
||||
other characters are treated literally, and are used to
|
||||
determine the nnmmaapp [_i_n_p_a_t_t_e_r_n] variable values. For example,
|
||||
given _i_n_p_a_t_t_e_r_n $1.$2 and the remote file name "mydata.data",
|
||||
$1 would have the value "mydata", and $2 would have the value
|
||||
"data". The _o_u_t_p_a_t_t_e_r_n determines the resulting mapped file-
|
||||
name. The sequences `$1', `$2', ...., `$9' are replaced by
|
||||
any value resulting from the _i_n_p_a_t_t_e_r_n template. The
|
||||
sequence `$0' is replace by the original filename. Addition-
|
||||
ally, the sequence `[_s_e_q_1, _s_e_q_2]' is replaced by [_s_e_q_1] if
|
||||
_s_e_q_1 is not a null string; otherwise it is replaced by _s_e_q_2.
|
||||
For example, the command
|
||||
|
||||
nmap $1.$2.$3 [$1,$2].[$2,file]
|
||||
|
||||
would yield the output filename "myfile.data" for input file-
|
||||
names "myfile.data" and "myfile.data.old", "myfile.file" for
|
||||
the input filename "myfile", and "myfile.myfile" for the
|
||||
input filename ".myfile". Spaces may be included in
|
||||
_o_u_t_p_a_t_t_e_r_n, as in the example: `nmap $1 sed "s/ *$//" > $1'
|
||||
. Use the `\' character to prevent special treatment of the
|
||||
`$','[','[', and `,' characters.
|
||||
|
||||
nnttrraannss [_i_n_c_h_a_r_s [_o_u_t_c_h_a_r_s]]
|
||||
Set or unset the filename character translation mechanism.
|
||||
If no arguments are specified, the filename character trans-
|
||||
lation mechanism is unset. If arguments are specified, char-
|
||||
acters in remote filenames are translated during mmppuutt com-
|
||||
mands and ppuutt commands issued without a specified remote tar-
|
||||
get filename. If arguments are specified, characters in
|
||||
local filenames are translated during mmggeett commands and ggeett
|
||||
commands issued without a specified local target filename.
|
||||
This command is useful when connecting to a non-UNIX remote
|
||||
computer with different file naming conventions or practices.
|
||||
Characters in a filename matching a character in _i_n_c_h_a_r_s are
|
||||
replaced with the corresponding character in _o_u_t_c_h_a_r_s. If
|
||||
the character's position in _i_n_c_h_a_r_s is longer than the length
|
||||
of _o_u_t_c_h_a_r_s, the character is deleted from the file name.
|
||||
|
||||
ooppeenn _h_o_s_t [_p_o_r_t]
|
||||
Establish a connection to the specified _h_o_s_t FTP server. An
|
||||
optional port number may be supplied, in which case, ffttpp will
|
||||
attempt to contact an FTP server at that port. If the
|
||||
aauuttoo--llooggiinn option is on (default), ffttpp will also attempt to
|
||||
automatically log the user in to the FTP server (see below).
|
||||
|
||||
ppaassssiivvee Toggle passive mode. If passive mode is turned on (default
|
||||
is off), the ftp client will send a PASV command for all data
|
||||
connections instead of the usual PORT command. The PASV com-
|
||||
mand requests that the remote server open a port for the data
|
||||
connection and return the address of that port. The remote
|
||||
server listens on that port and the client connects to it.
|
||||
When using the more traditional PORT command, the client lis-
|
||||
tens on a port and sends that address to the remote server,
|
||||
who connects back to it. Passive mode is useful when using
|
||||
ffttpp through a gateway router or host that controls the direc-
|
||||
tionality of traffic. (Note that though ftp servers are
|
||||
required to support the PASV command by RFC 1123, some do
|
||||
not.)
|
||||
|
||||
pprroommpptt Toggle interactive prompting. Interactive prompting occurs
|
||||
during multiple file transfers to allow the user to selec-
|
||||
tively retrieve or store files. If prompting is turned off
|
||||
(default is on), any mmggeett or mmppuutt will transfer all files,
|
||||
and any mmddeelleettee will delete all files.
|
||||
|
||||
pprrooxxyy _f_t_p_-_c_o_m_m_a_n_d
|
||||
Execute an ftp command on a secondary control connection.
|
||||
This command allows simultaneous connection to two remote ftp
|
||||
servers for transferring files between the two servers. The
|
||||
first pprrooxxyy command should be an ooppeenn, to establish the sec-
|
||||
ondary control connection. Enter the command "proxy ?" to
|
||||
see other ftp commands executable on the secondary connec-
|
||||
tion. The following commands behave differently when pref-
|
||||
aced by pprrooxxyy: ooppeenn will not define new macros during the
|
||||
auto-login process, cclloossee will not erase existing macro defi-
|
||||
nitions, ggeett and mmggeett transfer files from the host on the
|
||||
primary control connection to the host on the secondary con-
|
||||
trol connection, and ppuutt, mmppuutt, and aappppeenndd transfer files
|
||||
from the host on the secondary control connection to the host
|
||||
on the primary control connection. Third party file trans-
|
||||
fers depend upon support of the ftp protocol PASV command by
|
||||
the server on the secondary control connection.
|
||||
|
||||
ppuutt _l_o_c_a_l_-_f_i_l_e [_r_e_m_o_t_e_-_f_i_l_e]
|
||||
Store a local file on the remote machine. If _r_e_m_o_t_e_-_f_i_l_e is
|
||||
left unspecified, the local file name is used after process-
|
||||
ing according to any nnttrraannss or nnmmaapp settings in naming the
|
||||
remote file. File transfer uses the current settings for
|
||||
ttyyppee, ffoorrmmaatt, mmooddee, and ssttrruuccttuurree.
|
||||
|
||||
ppwwdd Print the name of the current working directory on the remote
|
||||
machine.
|
||||
|
||||
qquuiitt A synonym for bbyyee.
|
||||
|
||||
qquuoottee _a_r_g_1 _a_r_g_2 _._._.
|
||||
The arguments specified are sent, verbatim, to the remote FTP
|
||||
server.
|
||||
|
||||
rreeccvv _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
|
||||
A synonym for get.
|
||||
|
||||
rreeggeett _r_e_m_o_t_e_-_f_i_l_e [_l_o_c_a_l_-_f_i_l_e]
|
||||
Reget acts like get, except that if _l_o_c_a_l_-_f_i_l_e exists and is
|
||||
smaller than _r_e_m_o_t_e_-_f_i_l_e, _l_o_c_a_l_-_f_i_l_e is presumed to be a par-
|
||||
tially transferred copy of _r_e_m_o_t_e_-_f_i_l_e and the transfer is
|
||||
continued from the apparent point of failure. This command
|
||||
is useful when transferring very large files over networks
|
||||
that are prone to dropping connections.
|
||||
|
||||
rreemmootteehheellpp [_c_o_m_m_a_n_d_-_n_a_m_e]
|
||||
Request help from the remote FTP server. If a _c_o_m_m_a_n_d_-_n_a_m_e
|
||||
is specified it is supplied to the server as well.
|
||||
|
||||
rreemmootteessttaattuuss [_f_i_l_e_-_n_a_m_e]
|
||||
With no arguments, show status of remote machine. If
|
||||
_f_i_l_e_-_n_a_m_e is specified, show status of _f_i_l_e_-_n_a_m_e on remote
|
||||
machine.
|
||||
|
||||
rreennaammee [_f_r_o_m] [_t_o]
|
||||
Rename the file _f_r_o_m on the remote machine, to the file _t_o.
|
||||
|
||||
rreesseett Clear reply queue. This command re-synchronizes com-
|
||||
mand/reply sequencing with the remote ftp server. Resynchro-
|
||||
nization may be necessary following a violation of the ftp
|
||||
protocol by the remote server.
|
||||
|
||||
rreessttaarrtt _m_a_r_k_e_r
|
||||
Restart the immediately following ggeett or ppuutt at the indicated
|
||||
_m_a_r_k_e_r. On UNIX systems, marker is usually a byte offset
|
||||
into the file.
|
||||
|
||||
rrmmddiirr _d_i_r_e_c_t_o_r_y_-_n_a_m_e
|
||||
Delete a directory on the remote machine.
|
||||
|
||||
rruunniiqquuee Toggle storing of files on the local system with unique file-
|
||||
names. If a file already exists with a name equal to the
|
||||
target local filename for a ggeett or mmggeett command, a ".1" is
|
||||
appended to the name. If the resulting name matches another
|
||||
existing file, a ".2" is appended to the original name. If
|
||||
this process continues up to ".99", an error message is
|
||||
printed, and the transfer does not take place. The generated
|
||||
unique filename will be reported. Note that rruunniiqquuee will not
|
||||
affect local files generated from a shell command (see
|
||||
below). The default value is off.
|
||||
|
||||
sseenndd _l_o_c_a_l_-_f_i_l_e [_r_e_m_o_t_e_-_f_i_l_e]
|
||||
A synonym for put.
|
||||
|
||||
sseennddppoorrtt Toggle the use of PORT commands. By default, ffttpp will
|
||||
attempt to use a PORT command when establishing a connection
|
||||
for each data transfer. The use of PORT commands can prevent
|
||||
delays when performing multiple file transfers. If the PORT
|
||||
command fails, ffttpp will use the default data port. When the
|
||||
use of PORT commands is disabled, no attempt will be made to
|
||||
use PORT commands for each data transfer. This is useful for
|
||||
certain FTP implementations which do ignore PORT commands
|
||||
but, incorrectly, indicate they've been accepted.
|
||||
|
||||
ssiittee _a_r_g_1 _a_r_g_2 _._._.
|
||||
The arguments specified are sent, verbatim, to the remote FTP
|
||||
server as a SITE command.
|
||||
|
||||
ssiizzee _f_i_l_e_-_n_a_m_e
|
||||
Return size of _f_i_l_e_-_n_a_m_e on remote machine.
|
||||
|
||||
ssttaattuuss Show the current status of ffttpp.
|
||||
|
||||
ssttrruucctt [_s_t_r_u_c_t_-_n_a_m_e]
|
||||
Set the file transfer _s_t_r_u_c_t_u_r_e to _s_t_r_u_c_t_-_n_a_m_e. By default
|
||||
``stream'' structure is used.
|
||||
|
||||
ssuunniiqquuee Toggle storing of files on remote machine under unique file
|
||||
names. Remote ftp server must support ftp protocol STOU com-
|
||||
mand for successful completion. The remote server will
|
||||
report unique name. Default value is off.
|
||||
|
||||
ssyysstteemm Show the type of operating system running on the remote
|
||||
machine.
|
||||
|
||||
tteenneexx Set the file transfer type to that needed to talk to TENEX
|
||||
machines.
|
||||
|
||||
ttrraaccee Toggle packet tracing.
|
||||
|
||||
ttyyppee [_t_y_p_e_-_n_a_m_e]
|
||||
Set the file transfer ttyyppee to _t_y_p_e_-_n_a_m_e. If no type is spec-
|
||||
ified, the current type is printed. The default type is net-
|
||||
work ASCII.
|
||||
|
||||
uummaasskk [_n_e_w_m_a_s_k]
|
||||
Set the default umask on the remote server to _n_e_w_m_a_s_k. If
|
||||
_n_e_w_m_a_s_k is omitted, the current umask is printed.
|
||||
|
||||
uusseerr _u_s_e_r_-_n_a_m_e [_p_a_s_s_w_o_r_d] [_a_c_c_o_u_n_t]
|
||||
Identify yourself to the remote FTP server. If the _p_a_s_s_w_o_r_d
|
||||
is not specified and the server requires it, ffttpp will prompt
|
||||
the user for it (after disabling local echo). If an _a_c_c_o_u_n_t
|
||||
field is not specified, and the FTP server requires it, the
|
||||
user will be prompted for it. If an _a_c_c_o_u_n_t field is speci-
|
||||
fied, an account command will be relayed to the remote server
|
||||
after the login sequence is completed if the remote server
|
||||
did not require it for logging in. Unless ffttpp is invoked
|
||||
with ``auto-login'' disabled, this process is done automati-
|
||||
cally on initial connection to the FTP server.
|
||||
|
||||
vveerrbboossee Toggle verbose mode. In verbose mode, all responses from the
|
||||
FTP server are displayed to the user. In addition, if ver-
|
||||
bose is on, when a file transfer completes, statistics
|
||||
regarding the efficiency of the transfer are reported. By
|
||||
default, verbose is on.
|
||||
|
||||
?? [_c_o_m_m_a_n_d]
|
||||
A synonym for help.
|
||||
|
||||
The following command can be used with ftpsec-aware servers.
|
||||
|
||||
pprroott _c_l_e_a_r | _s_a_f_e | _c_o_n_f_i_d_e_n_t_i_a_l | _p_r_i_v_a_t_e
|
||||
Set the data protection level to the requested level.
|
||||
|
||||
The following command can be used with ftp servers that has implemented
|
||||
the KAUTH site command.
|
||||
|
||||
kkaauutthh [_p_r_i_n_c_i_p_a_l]
|
||||
Obtain remote tickets.
|
||||
|
||||
Command arguments which have embedded spaces may be quoted with quote `"'
|
||||
marks.
|
||||
|
||||
AABBOORRTTIINNGG AA FFIILLEE TTRRAANNSSFFEERR
|
||||
To abort a file transfer, use the terminal interrupt key (usually Ctrl-
|
||||
C). Sending transfers will be immediately halted. Receiving transfers
|
||||
will be halted by sending a ftp protocol ABOR command to the remote
|
||||
server, and discarding any further data received. The speed at which
|
||||
this is accomplished depends upon the remote server's support for ABOR
|
||||
processing. If the remote server does not support the ABOR command, an
|
||||
`ftp>' prompt will not appear until the remote server has completed send-
|
||||
ing the requested file.
|
||||
|
||||
The terminal interrupt key sequence will be ignored when ffttpp has com-
|
||||
pleted any local processing and is awaiting a reply from the remote
|
||||
server. A long delay in this mode may result from the ABOR processing
|
||||
described above, or from unexpected behavior by the remote server,
|
||||
including violations of the ftp protocol. If the delay results from
|
||||
unexpected remote server behavior, the local ffttpp program must be killed
|
||||
by hand.
|
||||
|
||||
FFIILLEE NNAAMMIINNGG CCOONNVVEENNTTIIOONNSS
|
||||
Files specified as arguments to ffttpp commands are processed according to
|
||||
the following rules.
|
||||
|
||||
1. If the file name `--' is specified, the _s_t_d_i_n (for reading) or _s_t_d_o_u_t
|
||||
(for writing) is used.
|
||||
|
||||
2. If the first character of the file name is `|', the remainder of the
|
||||
argument is interpreted as a shell command. FFttpp then forks a shell,
|
||||
using popen(3) with the argument supplied, and reads (writes) from
|
||||
the stdout (stdin). If the shell command includes spaces, the argu-
|
||||
ment must be quoted; e.g. ``" ls -lt"''. A particularly useful
|
||||
example of this mechanism is: ``dir more''.
|
||||
|
||||
3. Failing the above checks, if ``globbing'' is enabled, local file
|
||||
names are expanded according to the rules used in the csh(1); c.f.
|
||||
the gglloobb command. If the ffttpp command expects a single local file
|
||||
(.e.g. ppuutt), only the first filename generated by the "globbing"
|
||||
operation is used.
|
||||
|
||||
4. For mmggeett commands and ggeett commands with unspecified local file
|
||||
names, the local filename is the remote filename, which may be
|
||||
altered by a ccaassee, nnttrraannss, or nnmmaapp setting. The resulting filename
|
||||
may then be altered if rruunniiqquuee is on.
|
||||
|
||||
5. For mmppuutt commands and ppuutt commands with unspecified remote file
|
||||
names, the remote filename is the local filename, which may be
|
||||
altered by a nnttrraannss or nnmmaapp setting. The resulting filename may
|
||||
then be altered by the remote server if ssuunniiqquuee is on.
|
||||
|
||||
FFIILLEE TTRRAANNSSFFEERR PPAARRAAMMEETTEERRSS
|
||||
The FTP specification specifies many parameters which may affect a file
|
||||
transfer. The ttyyppee may be one of ``ascii'', ``image'' (binary),
|
||||
``ebcdic'', and ``local byte size'' (for PDP-10's and PDP-20's mostly).
|
||||
FFttpp supports the ascii and image types of file transfer, plus local byte
|
||||
size 8 for tteenneexx mode transfers.
|
||||
|
||||
FFttpp supports only the default values for the remaining file transfer
|
||||
parameters: mmooddee, ffoorrmm, and ssttrruucctt.
|
||||
|
||||
TTHHEE ..nneettrrcc FFIILLEE
|
||||
The _._n_e_t_r_c file contains login and initialization information used by the
|
||||
auto-login process. It resides in the user's home directory. The fol-
|
||||
lowing tokens are recognized; they may be separated by spaces, tabs, or
|
||||
new-lines:
|
||||
|
||||
mmaacchhiinnee _n_a_m_e
|
||||
Identify a remote machine _n_a_m_e. The auto-login process
|
||||
searches the _._n_e_t_r_c file for a mmaacchhiinnee token that matches the
|
||||
remote machine specified on the ffttpp command line or as an ooppeenn
|
||||
command argument. Once a match is made, the subsequent _._n_e_t_r_c
|
||||
tokens are processed, stopping when the end of file is reached
|
||||
or another mmaacchhiinnee or a ddeeffaauulltt token is encountered.
|
||||
|
||||
ddeeffaauulltt This is the same as mmaacchhiinnee _n_a_m_e except that ddeeffaauulltt matches
|
||||
any name. There can be only one ddeeffaauulltt token, and it must be
|
||||
after all mmaacchhiinnee tokens. This is normally used as:
|
||||
|
||||
default login anonymous password user@site
|
||||
|
||||
thereby giving the user _a_u_t_o_m_a_t_i_c anonymous ftp login to
|
||||
machines not specified in _._n_e_t_r_c. This can be overridden by
|
||||
using the --nn flag to disable auto-login.
|
||||
|
||||
llooggiinn _n_a_m_e
|
||||
Identify a user on the remote machine. If this token is
|
||||
present, the auto-login process will initiate a login using the
|
||||
specified _n_a_m_e.
|
||||
|
||||
ppaasssswwoorrdd _s_t_r_i_n_g
|
||||
Supply a password. If this token is present, the auto-login
|
||||
process will supply the specified string if the remote server
|
||||
requires a password as part of the login process. Note that if
|
||||
this token is present in the _._n_e_t_r_c file for any user other
|
||||
than _a_n_o_n_y_m_o_u_s, ffttpp will abort the auto-login process if the
|
||||
_._n_e_t_r_c is readable by anyone besides the user.
|
||||
|
||||
aaccccoouunntt _s_t_r_i_n_g
|
||||
Supply an additional account password. If this token is
|
||||
present, the auto-login process will supply the specified
|
||||
string if the remote server requires an additional account
|
||||
password, or the auto-login process will initiate an ACCT com-
|
||||
mand if it does not.
|
||||
|
||||
mmaaccddeeff _n_a_m_e
|
||||
Define a macro. This token functions like the ffttpp mmaaccddeeff com-
|
||||
mand functions. A macro is defined with the specified name;
|
||||
its contents begin with the next _._n_e_t_r_c line and continue until
|
||||
a null line (consecutive new-line characters) is encountered.
|
||||
If a macro named iinniitt is defined, it is automatically executed
|
||||
as the last step in the auto-login process.
|
||||
|
||||
EENNVVIIRROONNMMEENNTT
|
||||
FFttpp uses the following environment variables.
|
||||
|
||||
HOME For default location of a _._n_e_t_r_c file, if one exists.
|
||||
|
||||
SHELL For default shell.
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
ftpd(8)
|
||||
|
||||
_R_F_C_2_2_2_8.
|
||||
|
||||
HHIISSTTOORRYY
|
||||
The ffttpp command appeared in 4.2BSD.
|
||||
|
||||
BBUUGGSS
|
||||
Correct execution of many commands depends upon proper behavior by the
|
||||
remote server.
|
||||
|
||||
An error in the treatment of carriage returns in the 4.2BSD ascii-mode
|
||||
transfer code has been corrected. This correction may result in incor-
|
||||
rect transfers of binary files to and from 4.2BSD servers using the ascii
|
||||
type. Avoid this problem by using the binary image type.
|
||||
|
||||
4.2 Berkeley Distribution March 23, 2006 4.2 Berkeley Distribution
|
@ -1,23 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 1995 - 2001 Kungliga Tekniska Högskolan
|
||||
* Copyright (c) 1995 - 2001 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
@ -31,7 +31,7 @@
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: ftp_locl.h 11444 2002-09-10 20:03:49Z joda $ */
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef __FTP_LOCL_H__
|
||||
#define __FTP_LOCL_H__
|
||||
|
@ -1,5 +1,5 @@
|
||||
#include "ftp_locl.h"
|
||||
RCSID("$Id: globals.c 16160 2005-10-12 09:42:47Z joda $");
|
||||
RCSID("$Id$");
|
||||
|
||||
/*
|
||||
* Options and other state info.
|
||||
@ -74,6 +74,6 @@ char macbuf[4096];
|
||||
|
||||
char username[32];
|
||||
|
||||
/* these are set in ruserpass */
|
||||
/* these are set in ruserpassword */
|
||||
char myhostname[MaxHostNameLen];
|
||||
char *mydomain;
|
||||
|
@ -1,34 +1,34 @@
|
||||
/*
|
||||
* Copyright (c) 1998 - 2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1998 - 2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifdef FTP_SERVER
|
||||
@ -36,17 +36,18 @@
|
||||
#else
|
||||
#include "ftp_locl.h"
|
||||
#endif
|
||||
#include <gssapi.h>
|
||||
#include <gssapi/gssapi.h>
|
||||
#include <gssapi/gssapi_krb5.h>
|
||||
#include <krb5_err.h>
|
||||
|
||||
RCSID("$Id: gssapi.c 21513 2007-07-12 12:45:25Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
int ftp_do_gss_bindings = 0;
|
||||
int ftp_do_gss_delegate = 1;
|
||||
|
||||
struct gss_data {
|
||||
struct gssapi_data {
|
||||
gss_ctx_id_t context_hdl;
|
||||
char *client_name;
|
||||
gss_name_t client_name;
|
||||
gss_cred_id_t delegated_cred_handle;
|
||||
void *mech_data;
|
||||
};
|
||||
@ -54,7 +55,7 @@ struct gss_data {
|
||||
static int
|
||||
gss_init(void *app_data)
|
||||
{
|
||||
struct gss_data *d = app_data;
|
||||
struct gssapi_data *d = app_data;
|
||||
d->context_hdl = GSS_C_NO_CONTEXT;
|
||||
d->delegated_cred_handle = GSS_C_NO_CREDENTIAL;
|
||||
#if defined(FTP_SERVER)
|
||||
@ -84,7 +85,7 @@ gss_decode(void *app_data, void *buf, int len, int level)
|
||||
gss_buffer_desc input, output;
|
||||
gss_qop_t qop_state;
|
||||
int conf_state;
|
||||
struct gss_data *d = app_data;
|
||||
struct gssapi_data *d = app_data;
|
||||
size_t ret_len;
|
||||
|
||||
input.length = len;
|
||||
@ -116,7 +117,7 @@ gss_encode(void *app_data, void *from, int length, int level, void **to)
|
||||
OM_uint32 maj_stat, min_stat;
|
||||
gss_buffer_desc input, output;
|
||||
int conf_state;
|
||||
struct gss_data *d = app_data;
|
||||
struct gssapi_data *d = app_data;
|
||||
|
||||
input.length = length;
|
||||
input.value = from;
|
||||
@ -157,7 +158,7 @@ sockaddr_to_gss_address (struct sockaddr *sa,
|
||||
}
|
||||
default :
|
||||
errx (1, "unknown address family %d", sa->sa_family);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -172,7 +173,7 @@ gss_adat(void *app_data, void *buf, size_t len)
|
||||
gss_buffer_desc input_token, output_token;
|
||||
OM_uint32 maj_stat, min_stat;
|
||||
gss_name_t client_name;
|
||||
struct gss_data *d = app_data;
|
||||
struct gssapi_data *d = app_data;
|
||||
gss_channel_bindings_t bindings;
|
||||
|
||||
if (ftp_do_gss_bindings) {
|
||||
@ -186,7 +187,7 @@ gss_adat(void *app_data, void *buf, size_t len)
|
||||
sockaddr_to_gss_address (ctrl_addr,
|
||||
&bindings->acceptor_addrtype,
|
||||
&bindings->acceptor_address);
|
||||
|
||||
|
||||
bindings->application_data.length = 0;
|
||||
bindings->application_data.value = NULL;
|
||||
} else
|
||||
@ -218,32 +219,8 @@ gss_adat(void *app_data, void *buf, size_t len)
|
||||
gss_release_buffer(&min_stat, &output_token);
|
||||
}
|
||||
if(maj_stat == GSS_S_COMPLETE){
|
||||
char *name;
|
||||
gss_buffer_desc export_name;
|
||||
gss_OID oid;
|
||||
|
||||
maj_stat = gss_display_name(&min_stat, client_name,
|
||||
&export_name, &oid);
|
||||
if(maj_stat != 0) {
|
||||
reply(500, "Error displaying name");
|
||||
goto out;
|
||||
}
|
||||
/* XXX kerberos */
|
||||
if(oid != GSS_KRB5_NT_PRINCIPAL_NAME) {
|
||||
reply(500, "OID not kerberos principal name");
|
||||
gss_release_buffer(&min_stat, &export_name);
|
||||
goto out;
|
||||
}
|
||||
name = malloc(export_name.length + 1);
|
||||
if(name == NULL) {
|
||||
reply(500, "Out of memory");
|
||||
gss_release_buffer(&min_stat, &export_name);
|
||||
goto out;
|
||||
}
|
||||
memcpy(name, export_name.value, export_name.length);
|
||||
name[export_name.length] = '\0';
|
||||
gss_release_buffer(&min_stat, &export_name);
|
||||
d->client_name = name;
|
||||
d->client_name = client_name;
|
||||
client_name = GSS_C_NO_NAME;
|
||||
if(p)
|
||||
reply(235, "ADAT=%s", p);
|
||||
else
|
||||
@ -265,24 +242,25 @@ gss_adat(void *app_data, void *buf, size_t len)
|
||||
GSS_C_NO_OID,
|
||||
&msg_ctx,
|
||||
&status_string);
|
||||
syslog(LOG_ERR, "gss_accept_sec_context: %s",
|
||||
syslog(LOG_ERR, "gss_accept_sec_context: %.*s",
|
||||
(int)status_string.length,
|
||||
(char*)status_string.value);
|
||||
gss_release_buffer(&new_stat, &status_string);
|
||||
reply(431, "Security resource unavailable");
|
||||
}
|
||||
out:
|
||||
|
||||
if (client_name)
|
||||
gss_release_name(&min_stat, &client_name);
|
||||
free(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int gss_userok(void*, char*);
|
||||
int gss_session(void*, char*);
|
||||
int gssapi_userok(void*, char*);
|
||||
int gssapi_session(void*, char*);
|
||||
|
||||
struct sec_server_mech gss_server_mech = {
|
||||
"GSSAPI",
|
||||
sizeof(struct gss_data),
|
||||
sizeof(struct gssapi_data),
|
||||
gss_init, /* init */
|
||||
NULL, /* end */
|
||||
gss_check_prot,
|
||||
@ -294,8 +272,8 @@ struct sec_server_mech gss_server_mech = {
|
||||
gss_adat,
|
||||
NULL, /* pbsz */
|
||||
NULL, /* ccc */
|
||||
gss_userok,
|
||||
gss_session
|
||||
gssapi_userok,
|
||||
gssapi_session
|
||||
};
|
||||
|
||||
#else /* FTP_SERVER */
|
||||
@ -324,15 +302,17 @@ import_name(const char *kname, const char *host, gss_name_t *target_name)
|
||||
OM_uint32 new_stat;
|
||||
OM_uint32 msg_ctx = 0;
|
||||
gss_buffer_desc status_string;
|
||||
|
||||
|
||||
gss_display_status(&new_stat,
|
||||
min_stat,
|
||||
GSS_C_MECH_CODE,
|
||||
GSS_C_NO_OID,
|
||||
&msg_ctx,
|
||||
&status_string);
|
||||
printf("Error importing name %s: %s\n",
|
||||
printf("Error importing name %.*s: %.*s\n",
|
||||
(int)name.length,
|
||||
(char *)name.value,
|
||||
(int)status_string.length,
|
||||
(char *)status_string.value);
|
||||
free(name.value);
|
||||
gss_release_buffer(&new_stat, &status_string);
|
||||
@ -345,7 +325,7 @@ import_name(const char *kname, const char *host, gss_name_t *target_name)
|
||||
static int
|
||||
gss_auth(void *app_data, char *host)
|
||||
{
|
||||
|
||||
|
||||
OM_uint32 maj_stat, min_stat;
|
||||
gss_name_t target_name;
|
||||
gss_buffer_desc input, output_token;
|
||||
@ -353,12 +333,12 @@ gss_auth(void *app_data, char *host)
|
||||
char *p;
|
||||
int n;
|
||||
gss_channel_bindings_t bindings;
|
||||
struct gss_data *d = app_data;
|
||||
struct gssapi_data *d = app_data;
|
||||
OM_uint32 mech_flags = GSS_C_MUTUAL_FLAG | GSS_C_SEQUENCE_FLAG;
|
||||
|
||||
const char *knames[] = { "ftp", "host", NULL }, **kname = knames;
|
||||
|
||||
|
||||
|
||||
|
||||
if(import_name(*kname++, host, &target_name))
|
||||
return AUTH_ERROR;
|
||||
|
||||
@ -369,14 +349,14 @@ gss_auth(void *app_data, char *host)
|
||||
bindings = malloc(sizeof(*bindings));
|
||||
if (bindings == NULL)
|
||||
errx(1, "out of memory");
|
||||
|
||||
|
||||
sockaddr_to_gss_address (myctladdr,
|
||||
&bindings->initiator_addrtype,
|
||||
&bindings->initiator_address);
|
||||
sockaddr_to_gss_address (hisctladdr,
|
||||
&bindings->acceptor_addrtype,
|
||||
&bindings->acceptor_address);
|
||||
|
||||
|
||||
bindings->application_data.length = 0;
|
||||
bindings->application_data.value = NULL;
|
||||
} else
|
||||
@ -417,7 +397,7 @@ gss_auth(void *app_data, char *host)
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (bindings != GSS_C_NO_CHANNEL_BINDINGS)
|
||||
free(bindings);
|
||||
|
||||
@ -427,7 +407,8 @@ gss_auth(void *app_data, char *host)
|
||||
GSS_C_NO_OID,
|
||||
&msg_ctx,
|
||||
&status_string);
|
||||
printf("Error initializing security context: %s\n",
|
||||
printf("Error initializing security context: %.*s\n",
|
||||
(int)status_string.length,
|
||||
(char*)status_string.value);
|
||||
gss_release_buffer(&new_stat, &status_string);
|
||||
return AUTH_CONTINUE;
|
||||
@ -501,13 +482,15 @@ gss_auth(void *app_data, char *host)
|
||||
&name,
|
||||
NULL);
|
||||
if (GSS_ERROR(maj_stat) == 0) {
|
||||
printf("Authenticated to <%s>\n", (char *)name.value);
|
||||
printf("Authenticated to <%.*s>\n",
|
||||
(int)name.length,
|
||||
(char *)name.value);
|
||||
gss_release_buffer(&min_stat, &name);
|
||||
}
|
||||
gss_release_name(&min_stat, &targ_name);
|
||||
} else
|
||||
printf("Failed to get gss name of peer.\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return AUTH_OK;
|
||||
@ -515,7 +498,7 @@ gss_auth(void *app_data, char *host)
|
||||
|
||||
struct sec_client_mech gss_client_mech = {
|
||||
"GSSAPI",
|
||||
sizeof(struct gss_data),
|
||||
sizeof(struct gssapi_data),
|
||||
gss_init,
|
||||
gss_auth,
|
||||
NULL, /* end */
|
||||
|
@ -1,23 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 1995-1999 Kungliga Tekniska Högskolan
|
||||
* Copyright (c) 1995-1999 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
@ -32,145 +32,9 @@
|
||||
*/
|
||||
|
||||
#include "ftp_locl.h"
|
||||
RCSID("$Id: kauth.c 15666 2005-07-19 17:08:11Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
#ifdef KRB4
|
||||
#include <krb.h>
|
||||
|
||||
void
|
||||
kauth(int argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
char buf[1024];
|
||||
des_cblock key;
|
||||
des_key_schedule schedule;
|
||||
KTEXT_ST tkt, tktcopy;
|
||||
char *name;
|
||||
char *p;
|
||||
int overbose;
|
||||
char passwd[100];
|
||||
int tmp;
|
||||
|
||||
int save;
|
||||
|
||||
if(argc > 2){
|
||||
printf("usage: %s [principal]\n", argv[0]);
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
if(argc == 2)
|
||||
name = argv[1];
|
||||
else
|
||||
name = username;
|
||||
|
||||
overbose = verbose;
|
||||
verbose = 0;
|
||||
|
||||
save = set_command_prot(prot_private);
|
||||
ret = command("SITE KAUTH %s", name);
|
||||
if(ret != CONTINUE){
|
||||
verbose = overbose;
|
||||
set_command_prot(save);
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
verbose = overbose;
|
||||
p = strstr(reply_string, "T=");
|
||||
if(!p){
|
||||
printf("Bad reply from server.\n");
|
||||
set_command_prot(save);
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
p += 2;
|
||||
tmp = base64_decode(p, &tkt.dat);
|
||||
if(tmp < 0){
|
||||
printf("Failed to decode base64 in reply.\n");
|
||||
set_command_prot(save);
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
tkt.length = tmp;
|
||||
tktcopy.length = tkt.length;
|
||||
|
||||
p = strstr(reply_string, "P=");
|
||||
if(!p){
|
||||
printf("Bad reply from server.\n");
|
||||
verbose = overbose;
|
||||
set_command_prot(save);
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
name = p + 2;
|
||||
for(; *p && *p != ' ' && *p != '\r' && *p != '\n'; p++);
|
||||
*p = 0;
|
||||
|
||||
snprintf(buf, sizeof(buf), "Password for %s:", name);
|
||||
if (des_read_pw_string (passwd, sizeof(passwd)-1, buf, 0))
|
||||
*passwd = '\0';
|
||||
des_string_to_key (passwd, &key);
|
||||
|
||||
des_key_sched(&key, schedule);
|
||||
|
||||
des_pcbc_encrypt((des_cblock*)tkt.dat, (des_cblock*)tktcopy.dat,
|
||||
tkt.length,
|
||||
schedule, &key, DES_DECRYPT);
|
||||
if (strcmp ((char*)tktcopy.dat + 8,
|
||||
KRB_TICKET_GRANTING_TICKET) != 0) {
|
||||
afs_string_to_key (passwd, krb_realmofhost(hostname), &key);
|
||||
des_key_sched (&key, schedule);
|
||||
des_pcbc_encrypt((des_cblock*)tkt.dat, (des_cblock*)tktcopy.dat,
|
||||
tkt.length,
|
||||
schedule, &key, DES_DECRYPT);
|
||||
}
|
||||
memset(key, 0, sizeof(key));
|
||||
memset(schedule, 0, sizeof(schedule));
|
||||
memset(passwd, 0, sizeof(passwd));
|
||||
if(base64_encode(tktcopy.dat, tktcopy.length, &p) < 0) {
|
||||
printf("Out of memory base64-encoding.\n");
|
||||
set_command_prot(save);
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
memset (tktcopy.dat, 0, tktcopy.length);
|
||||
ret = command("SITE KAUTH %s %s", name, p);
|
||||
free(p);
|
||||
set_command_prot(save);
|
||||
if(ret != COMPLETE){
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
code = 0;
|
||||
}
|
||||
|
||||
void
|
||||
kdestroy(int argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
if (argc != 1) {
|
||||
printf("usage: %s\n", argv[0]);
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
ret = command("SITE KDESTROY");
|
||||
code = (ret == COMPLETE);
|
||||
}
|
||||
|
||||
void
|
||||
krbtkfile(int argc, char **argv)
|
||||
{
|
||||
int ret;
|
||||
if(argc != 2) {
|
||||
printf("usage: %s tktfile\n", argv[0]);
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
ret = command("SITE KRBTKFILE %s", argv[1]);
|
||||
code = (ret == COMPLETE);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
|
||||
void
|
||||
afslog(int argc, char **argv)
|
||||
|
@ -1,340 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 1996, 1997, 1998, 1999 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#ifdef FTP_SERVER
|
||||
#include "ftpd_locl.h"
|
||||
#else
|
||||
#include "ftp_locl.h"
|
||||
#endif
|
||||
#include <krb.h>
|
||||
|
||||
RCSID("$Id: krb4.c 17450 2006-05-05 11:11:43Z lha $");
|
||||
|
||||
#ifdef FTP_SERVER
|
||||
#define LOCAL_ADDR ctrl_addr
|
||||
#define REMOTE_ADDR his_addr
|
||||
#else
|
||||
#define LOCAL_ADDR myctladdr
|
||||
#define REMOTE_ADDR hisctladdr
|
||||
#endif
|
||||
|
||||
extern struct sockaddr *LOCAL_ADDR, *REMOTE_ADDR;
|
||||
|
||||
struct krb4_data {
|
||||
des_cblock key;
|
||||
des_key_schedule schedule;
|
||||
char name[ANAME_SZ];
|
||||
char instance[INST_SZ];
|
||||
char realm[REALM_SZ];
|
||||
};
|
||||
|
||||
static int
|
||||
krb4_check_prot(void *app_data, int level)
|
||||
{
|
||||
if(level == prot_confidential)
|
||||
return -1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
krb4_decode(void *app_data, void *buf, int len, int level)
|
||||
{
|
||||
MSG_DAT m;
|
||||
int e;
|
||||
struct krb4_data *d = app_data;
|
||||
|
||||
if(level == prot_safe)
|
||||
e = krb_rd_safe(buf, len, &d->key,
|
||||
(struct sockaddr_in *)REMOTE_ADDR,
|
||||
(struct sockaddr_in *)LOCAL_ADDR, &m);
|
||||
else
|
||||
e = krb_rd_priv(buf, len, d->schedule, &d->key,
|
||||
(struct sockaddr_in *)REMOTE_ADDR,
|
||||
(struct sockaddr_in *)LOCAL_ADDR, &m);
|
||||
if(e){
|
||||
syslog(LOG_ERR, "krb4_decode: %s", krb_get_err_text(e));
|
||||
return -1;
|
||||
}
|
||||
memmove(buf, m.app_data, m.app_length);
|
||||
return m.app_length;
|
||||
}
|
||||
|
||||
static int
|
||||
krb4_overhead(void *app_data, int level, int len)
|
||||
{
|
||||
return 31;
|
||||
}
|
||||
|
||||
static int
|
||||
krb4_encode(void *app_data, void *from, int length, int level, void **to)
|
||||
{
|
||||
struct krb4_data *d = app_data;
|
||||
*to = malloc(length + 31);
|
||||
if(level == prot_safe)
|
||||
return krb_mk_safe(from, *to, length, &d->key,
|
||||
(struct sockaddr_in *)LOCAL_ADDR,
|
||||
(struct sockaddr_in *)REMOTE_ADDR);
|
||||
else if(level == prot_private)
|
||||
return krb_mk_priv(from, *to, length, d->schedule, &d->key,
|
||||
(struct sockaddr_in *)LOCAL_ADDR,
|
||||
(struct sockaddr_in *)REMOTE_ADDR);
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
#ifdef FTP_SERVER
|
||||
|
||||
static int
|
||||
krb4_adat(void *app_data, void *buf, size_t len)
|
||||
{
|
||||
KTEXT_ST tkt;
|
||||
AUTH_DAT auth_dat;
|
||||
char *p;
|
||||
int kerror;
|
||||
uint32_t cs;
|
||||
char msg[35]; /* size of encrypted block */
|
||||
int tmp_len;
|
||||
struct krb4_data *d = app_data;
|
||||
char inst[INST_SZ];
|
||||
struct sockaddr_in *his_addr_sin = (struct sockaddr_in *)his_addr;
|
||||
|
||||
memcpy(tkt.dat, buf, len);
|
||||
tkt.length = len;
|
||||
|
||||
k_getsockinst(0, inst, sizeof(inst));
|
||||
kerror = krb_rd_req(&tkt, "ftp", inst,
|
||||
his_addr_sin->sin_addr.s_addr, &auth_dat, "");
|
||||
if(kerror == RD_AP_UNDEC){
|
||||
k_getsockinst(0, inst, sizeof(inst));
|
||||
kerror = krb_rd_req(&tkt, "rcmd", inst,
|
||||
his_addr_sin->sin_addr.s_addr, &auth_dat, "");
|
||||
}
|
||||
|
||||
if(kerror){
|
||||
reply(535, "Error reading request: %s.", krb_get_err_text(kerror));
|
||||
return -1;
|
||||
}
|
||||
|
||||
memcpy(d->key, auth_dat.session, sizeof(d->key));
|
||||
des_set_key(&d->key, d->schedule);
|
||||
|
||||
strlcpy(d->name, auth_dat.pname, sizeof(d->name));
|
||||
strlcpy(d->instance, auth_dat.pinst, sizeof(d->instance));
|
||||
strlcpy(d->realm, auth_dat.prealm, sizeof(d->instance));
|
||||
|
||||
cs = auth_dat.checksum + 1;
|
||||
{
|
||||
unsigned char tmp[4];
|
||||
KRB_PUT_INT(cs, tmp, 4, sizeof(tmp));
|
||||
tmp_len = krb_mk_safe(tmp, msg, 4, &d->key,
|
||||
(struct sockaddr_in *)LOCAL_ADDR,
|
||||
(struct sockaddr_in *)REMOTE_ADDR);
|
||||
}
|
||||
if(tmp_len < 0){
|
||||
reply(535, "Error creating reply: %s.", strerror(errno));
|
||||
return -1;
|
||||
}
|
||||
len = tmp_len;
|
||||
if(base64_encode(msg, len, &p) < 0) {
|
||||
reply(535, "Out of memory base64-encoding.");
|
||||
return -1;
|
||||
}
|
||||
reply(235, "ADAT=%s", p);
|
||||
sec_complete = 1;
|
||||
free(p);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
krb4_userok(void *app_data, char *user)
|
||||
{
|
||||
struct krb4_data *d = app_data;
|
||||
return krb_kuserok(d->name, d->instance, d->realm, user);
|
||||
}
|
||||
|
||||
struct sec_server_mech krb4_server_mech = {
|
||||
"KERBEROS_V4",
|
||||
sizeof(struct krb4_data),
|
||||
NULL, /* init */
|
||||
NULL, /* end */
|
||||
krb4_check_prot,
|
||||
krb4_overhead,
|
||||
krb4_encode,
|
||||
krb4_decode,
|
||||
/* */
|
||||
NULL,
|
||||
krb4_adat,
|
||||
NULL, /* pbsz */
|
||||
NULL, /* ccc */
|
||||
krb4_userok
|
||||
};
|
||||
|
||||
#else /* FTP_SERVER */
|
||||
|
||||
static int
|
||||
krb4_init(void *app_data)
|
||||
{
|
||||
return !use_kerberos;
|
||||
}
|
||||
|
||||
static int
|
||||
mk_auth(struct krb4_data *d, KTEXT adat,
|
||||
char *service, char *host, int checksum)
|
||||
{
|
||||
int ret;
|
||||
CREDENTIALS cred;
|
||||
char sname[SNAME_SZ], inst[INST_SZ], realm[REALM_SZ];
|
||||
|
||||
strlcpy(sname, service, sizeof(sname));
|
||||
strlcpy(inst, krb_get_phost(host), sizeof(inst));
|
||||
strlcpy(realm, krb_realmofhost(host), sizeof(realm));
|
||||
ret = krb_mk_req(adat, sname, inst, realm, checksum);
|
||||
if(ret)
|
||||
return ret;
|
||||
strlcpy(sname, service, sizeof(sname));
|
||||
strlcpy(inst, krb_get_phost(host), sizeof(inst));
|
||||
strlcpy(realm, krb_realmofhost(host), sizeof(realm));
|
||||
ret = krb_get_cred(sname, inst, realm, &cred);
|
||||
memmove(&d->key, &cred.session, sizeof(des_cblock));
|
||||
des_key_sched(&d->key, d->schedule);
|
||||
memset(&cred, 0, sizeof(cred));
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
krb4_auth(void *app_data, char *host)
|
||||
{
|
||||
int ret;
|
||||
char *p;
|
||||
int len;
|
||||
KTEXT_ST adat;
|
||||
MSG_DAT msg_data;
|
||||
int checksum;
|
||||
uint32_t cs;
|
||||
struct krb4_data *d = app_data;
|
||||
struct sockaddr_in *localaddr = (struct sockaddr_in *)LOCAL_ADDR;
|
||||
struct sockaddr_in *remoteaddr = (struct sockaddr_in *)REMOTE_ADDR;
|
||||
|
||||
checksum = getpid();
|
||||
ret = mk_auth(d, &adat, "ftp", host, checksum);
|
||||
if(ret == KDC_PR_UNKNOWN)
|
||||
ret = mk_auth(d, &adat, "rcmd", host, checksum);
|
||||
if(ret){
|
||||
printf("%s\n", krb_get_err_text(ret));
|
||||
return AUTH_CONTINUE;
|
||||
}
|
||||
|
||||
#ifdef HAVE_KRB_GET_OUR_IP_FOR_REALM
|
||||
if (krb_get_config_bool("nat_in_use")) {
|
||||
struct in_addr natAddr;
|
||||
|
||||
if (krb_get_our_ip_for_realm(krb_realmofhost(host),
|
||||
&natAddr) != KSUCCESS
|
||||
&& krb_get_our_ip_for_realm(NULL, &natAddr) != KSUCCESS)
|
||||
printf("Can't get address for realm %s\n",
|
||||
krb_realmofhost(host));
|
||||
else {
|
||||
if (natAddr.s_addr != localaddr->sin_addr.s_addr) {
|
||||
printf("Using NAT IP address (%s) for kerberos 4\n",
|
||||
inet_ntoa(natAddr));
|
||||
localaddr->sin_addr = natAddr;
|
||||
|
||||
/*
|
||||
* This not the best place to do this, but it
|
||||
* is here we know that (probably) NAT is in
|
||||
* use!
|
||||
*/
|
||||
|
||||
passivemode = 1;
|
||||
printf("Setting: Passive mode on.\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
printf("Local address is %s\n", inet_ntoa(localaddr->sin_addr));
|
||||
printf("Remote address is %s\n", inet_ntoa(remoteaddr->sin_addr));
|
||||
|
||||
if(base64_encode(adat.dat, adat.length, &p) < 0) {
|
||||
printf("Out of memory base64-encoding.\n");
|
||||
return AUTH_CONTINUE;
|
||||
}
|
||||
ret = command("ADAT %s", p);
|
||||
free(p);
|
||||
|
||||
if(ret != COMPLETE){
|
||||
printf("Server didn't accept auth data.\n");
|
||||
return AUTH_ERROR;
|
||||
}
|
||||
|
||||
p = strstr(reply_string, "ADAT=");
|
||||
if(!p){
|
||||
printf("Remote host didn't send adat reply.\n");
|
||||
return AUTH_ERROR;
|
||||
}
|
||||
p += 5;
|
||||
len = base64_decode(p, adat.dat);
|
||||
if(len < 0){
|
||||
printf("Failed to decode base64 from server.\n");
|
||||
return AUTH_ERROR;
|
||||
}
|
||||
adat.length = len;
|
||||
ret = krb_rd_safe(adat.dat, adat.length, &d->key,
|
||||
(struct sockaddr_in *)hisctladdr,
|
||||
(struct sockaddr_in *)myctladdr, &msg_data);
|
||||
if(ret){
|
||||
printf("Error reading reply from server: %s.\n",
|
||||
krb_get_err_text(ret));
|
||||
return AUTH_ERROR;
|
||||
}
|
||||
krb_get_int(msg_data.app_data, &cs, 4, 0);
|
||||
if(cs - checksum != 1){
|
||||
printf("Bad checksum returned from server.\n");
|
||||
return AUTH_ERROR;
|
||||
}
|
||||
return AUTH_OK;
|
||||
}
|
||||
|
||||
struct sec_client_mech krb4_client_mech = {
|
||||
"KERBEROS_V4",
|
||||
sizeof(struct krb4_data),
|
||||
krb4_init, /* init */
|
||||
krb4_auth,
|
||||
NULL, /* end */
|
||||
krb4_check_prot,
|
||||
krb4_overhead,
|
||||
krb4_encode,
|
||||
krb4_decode
|
||||
};
|
||||
|
||||
#endif /* FTP_SERVER */
|
@ -38,7 +38,7 @@
|
||||
#include "ftp_locl.h"
|
||||
#include <getarg.h>
|
||||
|
||||
RCSID("$Id: main.c 16160 2005-10-12 09:42:47Z joda $");
|
||||
RCSID("$Id$");
|
||||
|
||||
static int help_flag;
|
||||
static int version_flag;
|
||||
@ -142,7 +142,7 @@ main(int argc, char **argv)
|
||||
}
|
||||
if (argc > 0) {
|
||||
char *xargv[5];
|
||||
|
||||
|
||||
if (setjmp(toplevel))
|
||||
exit(0);
|
||||
signal(SIGINT, intr);
|
||||
@ -217,7 +217,7 @@ tail(filename)
|
||||
char *filename;
|
||||
{
|
||||
char *s;
|
||||
|
||||
|
||||
while (*filename) {
|
||||
s = strrchr(filename, '/');
|
||||
if (s == NULL)
|
||||
@ -555,10 +555,9 @@ help(int argc, char **argv)
|
||||
for (i = 0; i < lines; i++) {
|
||||
for (j = 0; j < columns; j++) {
|
||||
c = cmdtab + j * lines + i;
|
||||
if (c->c_name && (!proxy || c->c_proxy)) {
|
||||
if ((!proxy || c->c_proxy)) {
|
||||
printf("%s", c->c_name);
|
||||
}
|
||||
else if (c->c_name) {
|
||||
} else {
|
||||
for (k=0; k < strlen(c->c_name); k++) {
|
||||
putchar(' ');
|
||||
}
|
||||
|
@ -32,7 +32,7 @@
|
||||
*/
|
||||
|
||||
#include "ftp_locl.h"
|
||||
RCSID("$Id: ruserpass.c 16161 2005-10-12 09:44:24Z joda $");
|
||||
RCSID("$Id$");
|
||||
|
||||
static int token (void);
|
||||
static FILE *cfile;
|
||||
@ -59,7 +59,7 @@ static struct toktab {
|
||||
{ "account", ACCOUNT },
|
||||
{ "machine", MACH },
|
||||
{ "macdef", MACDEF },
|
||||
{ "prot", PROT },
|
||||
{ "prot", PROT },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
@ -105,7 +105,7 @@ guess_domain (char *hostname_str, size_t sz)
|
||||
}
|
||||
|
||||
int
|
||||
ruserpass(char *host, char **aname, char **apass, char **aacct)
|
||||
ruserpassword(char *host, char **aname, char **apass, char **aacct)
|
||||
{
|
||||
char *hdir, buf[BUFSIZ], *tmp;
|
||||
int t, i, c, usedefault = 0;
|
||||
@ -137,7 +137,7 @@ ruserpass(char *host, char **aname, char **apass, char **aacct)
|
||||
continue;
|
||||
/*
|
||||
* Allow match either for user's input host name
|
||||
* or official hostname. Also allow match of
|
||||
* or official hostname. Also allow match of
|
||||
* incompletely-specified host in local domain.
|
||||
*/
|
||||
if (strcasecmp(host, tokval) == 0)
|
||||
@ -163,7 +163,7 @@ ruserpass(char *host, char **aname, char **apass, char **aacct)
|
||||
|
||||
case LOGIN:
|
||||
if (token()) {
|
||||
if (*aname == 0) {
|
||||
if (*aname == 0) {
|
||||
*aname = strdup(tokval);
|
||||
} else {
|
||||
if (strcmp(*aname, tokval))
|
||||
@ -199,7 +199,7 @@ ruserpass(char *host, char **aname, char **apass, char **aacct)
|
||||
fclose(cfile);
|
||||
return (0);
|
||||
}
|
||||
while ((c=getc(cfile)) != EOF &&
|
||||
while ((c=getc(cfile)) != EOF &&
|
||||
(c == ' ' || c == '\t'));
|
||||
if (c == EOF || c == '\n') {
|
||||
printf("Missing macdef name argument.\n");
|
||||
|
@ -1,23 +1,23 @@
|
||||
/*
|
||||
* Copyright (c) 1998-2002, 2005 Kungliga Tekniska Högskolan
|
||||
* Copyright (c) 1998-2002, 2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
@ -37,7 +37,7 @@
|
||||
#include "ftp_locl.h"
|
||||
#endif
|
||||
|
||||
RCSID("$Id: security.c 21225 2007-06-20 10:16:02Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
static enum protection_level command_prot;
|
||||
static enum protection_level data_prot;
|
||||
@ -74,14 +74,14 @@ level_to_name(enum protection_level level)
|
||||
}
|
||||
|
||||
#ifndef FTP_SERVER /* not used in server */
|
||||
static enum protection_level
|
||||
static enum protection_level
|
||||
name_to_level(const char *name)
|
||||
{
|
||||
int i;
|
||||
for(i = 0; i < sizeof(level_names) / sizeof(level_names[0]); i++)
|
||||
if(!strncasecmp(level_names[i].name, name, strlen(name)))
|
||||
return level_names[i].level;
|
||||
return (enum protection_level)-1;
|
||||
return prot_invalid;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -90,9 +90,6 @@ name_to_level(const char *name)
|
||||
static struct sec_server_mech *mechs[] = {
|
||||
#ifdef KRB5
|
||||
&gss_server_mech,
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
&krb4_server_mech,
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
@ -104,9 +101,6 @@ static struct sec_server_mech *mech;
|
||||
static struct sec_client_mech *mechs[] = {
|
||||
#ifdef KRB5
|
||||
&gss_client_mech,
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
&krb4_client_mech,
|
||||
#endif
|
||||
NULL
|
||||
};
|
||||
@ -229,12 +223,12 @@ sec_read(int fd, void *dataptr, int length)
|
||||
in_buffer.eof_flag = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
len = buffer_read(&in_buffer, dataptr, length);
|
||||
length -= len;
|
||||
rx += len;
|
||||
dataptr = (char*)dataptr + len;
|
||||
|
||||
|
||||
while(length){
|
||||
int ret;
|
||||
|
||||
@ -286,7 +280,7 @@ sec_write(int fd, char *dataptr, int length)
|
||||
{
|
||||
int len = buffer_size;
|
||||
int tx = 0;
|
||||
|
||||
|
||||
if(data_prot == prot_clear)
|
||||
return write(fd, dataptr, length);
|
||||
|
||||
@ -337,7 +331,7 @@ sec_putc(int c, FILE *F)
|
||||
char ch = c;
|
||||
if(data_prot == prot_clear)
|
||||
return putc(c, F);
|
||||
|
||||
|
||||
buffer_write(&out_buffer, &ch, 1);
|
||||
if(c == '\n' || out_buffer.index >= 1024 /* XXX */) {
|
||||
sec_write(fileno(F), out_buffer.data, out_buffer.index);
|
||||
@ -352,14 +346,14 @@ sec_read_msg(char *s, int level)
|
||||
int len;
|
||||
char *buf;
|
||||
int return_code;
|
||||
|
||||
|
||||
buf = malloc(strlen(s));
|
||||
len = base64_decode(s + 4, buf); /* XXX */
|
||||
|
||||
|
||||
len = (*mech->decode)(app_data, buf, len, level);
|
||||
if(len < 0)
|
||||
return -1;
|
||||
|
||||
|
||||
buf[len] = '\0';
|
||||
|
||||
if(buf[3] == '-')
|
||||
@ -381,7 +375,7 @@ sec_vfprintf(FILE *f, const char *fmt, va_list ap)
|
||||
int len;
|
||||
if(!sec_complete)
|
||||
return vfprintf(f, fmt, ap);
|
||||
|
||||
|
||||
if (vasprintf(&buf, fmt, ap) == -1) {
|
||||
printf("Failed to allocate command.\n");
|
||||
return -1;
|
||||
@ -520,10 +514,10 @@ prot(char *pl)
|
||||
reply(504, "Unrecognized protection level.");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(sec_complete){
|
||||
if((*mech->check_prot)(app_data, p)){
|
||||
reply(536, "%s does not support %s protection.",
|
||||
reply(536, "%s does not support %s protection.",
|
||||
mech->name, level_to_name(p));
|
||||
}else{
|
||||
data_prot = (enum protection_level)p;
|
||||
@ -556,14 +550,20 @@ void mec(char *msg, enum protection_level level)
|
||||
}
|
||||
buf_size = strlen(msg) + 2;
|
||||
buf = malloc(buf_size);
|
||||
if (buf == NULL) {
|
||||
reply(501, "Failed to allocate %lu", (unsigned long)buf_size);
|
||||
return;
|
||||
}
|
||||
len = base64_decode(msg, buf);
|
||||
command_prot = level;
|
||||
if(len == (size_t)-1) {
|
||||
free(buf);
|
||||
reply(501, "Failed to base64-decode command");
|
||||
return;
|
||||
}
|
||||
len = (*mech->decode)(app_data, buf, len, level);
|
||||
if(len == (size_t)-1) {
|
||||
free(buf);
|
||||
reply(535, "Failed to decode command");
|
||||
return;
|
||||
}
|
||||
@ -628,7 +628,7 @@ sec_status(void)
|
||||
printf("Using %s command channel.\n", level_to_name(command_prot));
|
||||
printf("Using %s data channel.\n", level_to_name(data_prot));
|
||||
if(buffer_size > 0)
|
||||
printf("Protection buffer size: %lu.\n",
|
||||
printf("Protection buffer size: %lu.\n",
|
||||
(unsigned long)buffer_size);
|
||||
}else{
|
||||
printf("Not using any security mechanism.\n");
|
||||
@ -669,7 +669,7 @@ sec_prot_internal(int level)
|
||||
printf("Failed to set protection level.\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
data_prot = (enum protection_level)level;
|
||||
return 0;
|
||||
}
|
||||
@ -683,7 +683,7 @@ set_command_prot(enum protection_level level)
|
||||
ret = command("CCC");
|
||||
if(ret != COMPLETE) {
|
||||
printf("Failed to clear command channel.\n");
|
||||
return -1;
|
||||
return prot_invalid;
|
||||
}
|
||||
}
|
||||
command_prot = level;
|
||||
@ -708,17 +708,17 @@ sec_prot(int argc, char **argv)
|
||||
return;
|
||||
}
|
||||
level = name_to_level(argv[argc - 1]);
|
||||
|
||||
|
||||
if(level == -1)
|
||||
goto usage;
|
||||
|
||||
|
||||
if((*mech->check_prot)(app_data, level)) {
|
||||
printf("%s does not implement %s protection.\n",
|
||||
printf("%s does not implement %s protection.\n",
|
||||
mech->name, level_to_name(level));
|
||||
code = -1;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if(argc == 2 || strncasecmp(argv[1], "data", strlen(argv[1])) == 0) {
|
||||
if(sec_prot_internal(level) < 0){
|
||||
code = -1;
|
||||
@ -759,9 +759,9 @@ sec_prot_command(int argc, char **argv)
|
||||
level = name_to_level(argv[1]);
|
||||
if(level == -1)
|
||||
goto usage;
|
||||
|
||||
|
||||
if((*mech->check_prot)(app_data, level)) {
|
||||
printf("%s does not implement %s protection.\n",
|
||||
printf("%s does not implement %s protection.\n",
|
||||
mech->name, level_to_name(level));
|
||||
code = -1;
|
||||
return;
|
||||
@ -808,7 +808,7 @@ sec_login(char *host)
|
||||
|
||||
verbose = -1; /* shut up all messages this will produce (they
|
||||
are usually not very user friendly) */
|
||||
|
||||
|
||||
for(m = mechs; *m && (*m)->name; m++) {
|
||||
void *tmp;
|
||||
|
||||
@ -818,7 +818,7 @@ sec_login(char *host)
|
||||
return -1;
|
||||
}
|
||||
app_data = tmp;
|
||||
|
||||
|
||||
if((*m)->init && (*(*m)->init)(app_data) != 0) {
|
||||
printf("Skipping %s...\n", (*m)->name);
|
||||
continue;
|
||||
@ -840,7 +840,7 @@ sec_login(char *host)
|
||||
}
|
||||
|
||||
ret = (*(*m)->auth)(app_data, host);
|
||||
|
||||
|
||||
if(ret == AUTH_CONTINUE)
|
||||
continue;
|
||||
else if(ret != AUTH_OK){
|
||||
@ -852,13 +852,13 @@ sec_login(char *host)
|
||||
sec_complete = 1;
|
||||
if(doencrypt) {
|
||||
command_prot = prot_private;
|
||||
request_data_prot = prot_private;
|
||||
request_data_prot = prot_private;
|
||||
} else {
|
||||
command_prot = prot_safe;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
verbose = old_verbose;
|
||||
return *m == NULL;
|
||||
}
|
||||
|
@ -1,46 +1,47 @@
|
||||
/*
|
||||
* Copyright (c) 1998 - 2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1998 - 2005 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: security.h 21224 2007-06-20 10:15:13Z lha $ */
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef __security_h__
|
||||
#define __security_h__
|
||||
|
||||
enum protection_level {
|
||||
prot_clear,
|
||||
prot_safe,
|
||||
prot_confidential,
|
||||
prot_private
|
||||
enum protection_level {
|
||||
prot_invalid = -1,
|
||||
prot_clear = 0,
|
||||
prot_safe = 1,
|
||||
prot_confidential = 2,
|
||||
prot_private = 3
|
||||
};
|
||||
|
||||
struct sec_client_mech {
|
||||
@ -137,4 +138,4 @@ enum protection_level set_command_prot(enum protection_level);
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __security_h__ */
|
||||
#endif /* __security_h__ */
|
||||
|
@ -1,4 +1,4 @@
|
||||
# $Id: Makefile.am 21031 2007-06-09 05:00:27Z lha $
|
||||
# $Id$
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
@ -8,9 +8,6 @@ libexec_PROGRAMS = ftpd
|
||||
|
||||
CHECK_LOCAL =
|
||||
|
||||
if KRB4
|
||||
krb4_sources = krb4.c
|
||||
endif
|
||||
if KRB5
|
||||
krb5_sources = gssapi.c gss_userok.c
|
||||
endif
|
||||
@ -30,7 +27,7 @@ ftpd_SOURCES = \
|
||||
$(krb4_sources) \
|
||||
$(krb5_sources)
|
||||
|
||||
EXTRA_ftpd_SOURCES = krb4.c kauth.c gssapi.c gss_userok.c
|
||||
EXTRA_ftpd_SOURCES = kauth.c gssapi.c gss_userok.c
|
||||
|
||||
$(ftpd_OBJECTS): security.h
|
||||
|
||||
@ -38,12 +35,10 @@ security.c:
|
||||
@test -f security.c || $(LN_S) $(srcdir)/../ftp/security.c .
|
||||
security.h:
|
||||
@test -f security.h || $(LN_S) $(srcdir)/../ftp/security.h .
|
||||
krb4.c:
|
||||
@test -f krb4.c || $(LN_S) $(srcdir)/../ftp/krb4.c .
|
||||
gssapi.c:
|
||||
@test -f gssapi.c || $(LN_S) $(srcdir)/../ftp/gssapi.c .
|
||||
|
||||
CLEANFILES = security.c security.h krb4.c gssapi.c
|
||||
CLEANFILES = security.c security.h gssapi.c
|
||||
|
||||
man_MANS = ftpd.8 ftpusers.5
|
||||
|
||||
@ -56,4 +51,4 @@ LDADD = ../common/libcommon.a \
|
||||
$(LIB_hcrypto) \
|
||||
$(LIB_roken)
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
EXTRA_DIST = NTMakefile $(man_MANS)
|
||||
|
@ -1,8 +1,9 @@
|
||||
# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||
# Makefile.in generated by automake 1.11.1 from Makefile.am.
|
||||
# @configure_input@
|
||||
|
||||
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
||||
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
||||
# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
|
||||
# Inc.
|
||||
# This Makefile.in is free software; the Free Software Foundation
|
||||
# gives unlimited permission to copy and/or distribute it,
|
||||
# with or without modifications, as long as this notice is preserved.
|
||||
@ -14,16 +15,17 @@
|
||||
|
||||
@SET_MAKE@
|
||||
|
||||
# $Id: Makefile.am 21031 2007-06-09 05:00:27Z lha $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 10998 2002-05-19 18:35:37Z joda $
|
||||
# $Id$
|
||||
|
||||
# $Id: Makefile.am.common 22488 2008-01-21 11:47:22Z lha $
|
||||
# $Id$
|
||||
|
||||
VPATH = @srcdir@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkgincludedir = $(includedir)/@PACKAGE@
|
||||
pkglibdir = $(libdir)/@PACKAGE@
|
||||
pkglibexecdir = $(libexecdir)/@PACKAGE@
|
||||
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
||||
install_sh_DATA = $(install_sh) -c -m 644
|
||||
install_sh_PROGRAM = $(install_sh) -c
|
||||
@ -45,7 +47,7 @@ libexec_PROGRAMS = ftpd$(EXEEXT)
|
||||
subdir = appl/ftp/ftpd
|
||||
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
|
||||
am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 $(top_srcdir)/cf/autobuild.m4 \
|
||||
$(top_srcdir)/cf/auth-modules.m4 \
|
||||
$(top_srcdir)/cf/broken-getaddrinfo.m4 \
|
||||
$(top_srcdir)/cf/broken-glob.m4 \
|
||||
$(top_srcdir)/cf/broken-realloc.m4 \
|
||||
@ -60,7 +62,7 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/check-var.m4 $(top_srcdir)/cf/check-x.m4 \
|
||||
$(top_srcdir)/cf/check-xau.m4 $(top_srcdir)/cf/crypto.m4 \
|
||||
$(top_srcdir)/cf/db.m4 $(top_srcdir)/cf/destdirs.m4 \
|
||||
$(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/dispatch.m4 $(top_srcdir)/cf/dlopen.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs.m4 \
|
||||
$(top_srcdir)/cf/find-func-no-libs2.m4 \
|
||||
$(top_srcdir)/cf/find-func.m4 \
|
||||
@ -74,9 +76,12 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/krb-readline.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-spwd.m4 \
|
||||
$(top_srcdir)/cf/krb-struct-winsize.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/mips-abi.m4 \
|
||||
$(top_srcdir)/cf/misc.m4 $(top_srcdir)/cf/need-proto.m4 \
|
||||
$(top_srcdir)/cf/osfc2.m4 $(top_srcdir)/cf/otp.m4 \
|
||||
$(top_srcdir)/cf/largefile.m4 $(top_srcdir)/cf/libtool.m4 \
|
||||
$(top_srcdir)/cf/ltoptions.m4 $(top_srcdir)/cf/ltsugar.m4 \
|
||||
$(top_srcdir)/cf/ltversion.m4 $(top_srcdir)/cf/lt~obsolete.m4 \
|
||||
$(top_srcdir)/cf/mips-abi.m4 $(top_srcdir)/cf/misc.m4 \
|
||||
$(top_srcdir)/cf/need-proto.m4 $(top_srcdir)/cf/osfc2.m4 \
|
||||
$(top_srcdir)/cf/otp.m4 $(top_srcdir)/cf/pkg.m4 \
|
||||
$(top_srcdir)/cf/proto-compat.m4 $(top_srcdir)/cf/pthreads.m4 \
|
||||
$(top_srcdir)/cf/resolv.m4 $(top_srcdir)/cf/retsigtype.m4 \
|
||||
$(top_srcdir)/cf/roken-frag.m4 \
|
||||
@ -84,25 +89,23 @@ am__aclocal_m4_deps = $(top_srcdir)/cf/aix.m4 \
|
||||
$(top_srcdir)/cf/telnet.m4 $(top_srcdir)/cf/test-package.m4 \
|
||||
$(top_srcdir)/cf/version-script.m4 $(top_srcdir)/cf/wflags.m4 \
|
||||
$(top_srcdir)/cf/win32.m4 $(top_srcdir)/cf/with-all.m4 \
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.in
|
||||
$(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
|
||||
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
||||
$(ACLOCAL_M4)
|
||||
mkinstalldirs = $(install_sh) -d
|
||||
CONFIG_HEADER = $(top_builddir)/include/config.h
|
||||
CONFIG_CLEAN_FILES =
|
||||
CONFIG_CLEAN_VPATH_FILES =
|
||||
am__installdirs = "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(man5dir)" \
|
||||
"$(DESTDIR)$(man8dir)"
|
||||
libexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
|
||||
PROGRAMS = $(libexec_PROGRAMS)
|
||||
am__ftpd_SOURCES_DIST = extern.h ftpcmd.y ftpd.c ftpd_locl.h logwtmp.c \
|
||||
ls.c pathnames.h popen.c security.c kauth.c klist.c krb4.c \
|
||||
gssapi.c gss_userok.c
|
||||
@KRB4_TRUE@am__objects_1 = krb4.$(OBJEXT)
|
||||
@KRB5_TRUE@am__objects_2 = gssapi.$(OBJEXT) gss_userok.$(OBJEXT)
|
||||
ls.c pathnames.h popen.c security.c kauth.c klist.c gssapi.c \
|
||||
gss_userok.c
|
||||
@KRB5_TRUE@am__objects_1 = gssapi.$(OBJEXT) gss_userok.$(OBJEXT)
|
||||
am_ftpd_OBJECTS = ftpcmd.$(OBJEXT) ftpd.$(OBJEXT) logwtmp.$(OBJEXT) \
|
||||
ls.$(OBJEXT) popen.$(OBJEXT) security.$(OBJEXT) \
|
||||
kauth.$(OBJEXT) klist.$(OBJEXT) $(am__objects_1) \
|
||||
$(am__objects_2)
|
||||
kauth.$(OBJEXT) klist.$(OBJEXT) $(am__objects_1)
|
||||
ftpd_OBJECTS = $(am_ftpd_OBJECTS)
|
||||
ftpd_LDADD = $(LDADD)
|
||||
am__DEPENDENCIES_1 =
|
||||
@ -112,9 +115,9 @@ ftpd_DEPENDENCIES = ../common/libcommon.a $(am__DEPENDENCIES_1) \
|
||||
$(LIB_gssapi) $(LIB_krb5) $(am__DEPENDENCIES_2) \
|
||||
$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
|
||||
$(am__DEPENDENCIES_1)
|
||||
DEFAULT_INCLUDES = -I. -I$(top_builddir)/include@am__isrc@
|
||||
depcomp =
|
||||
am__depfiles_maybe =
|
||||
depcomp = $(SHELL) $(top_srcdir)/depcomp
|
||||
am__depfiles_maybe = depfiles
|
||||
am__mv = mv -f
|
||||
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
||||
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
||||
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
@ -131,6 +134,27 @@ LTYACCCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
||||
YLWRAP = $(top_srcdir)/ylwrap
|
||||
SOURCES = $(ftpd_SOURCES) $(EXTRA_ftpd_SOURCES)
|
||||
DIST_SOURCES = $(am__ftpd_SOURCES_DIST) $(EXTRA_ftpd_SOURCES)
|
||||
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
|
||||
am__vpath_adj = case $$p in \
|
||||
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
|
||||
*) f=$$p;; \
|
||||
esac;
|
||||
am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
|
||||
am__install_max = 40
|
||||
am__nobase_strip_setup = \
|
||||
srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
|
||||
am__nobase_strip = \
|
||||
for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
|
||||
am__nobase_list = $(am__nobase_strip_setup); \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
|
||||
$(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
|
||||
if (++n[$$2] == $(am__install_max)) \
|
||||
{ print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
|
||||
END { for (dir in files) print dir, files[dir] }'
|
||||
am__base_list = \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
|
||||
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
|
||||
man5dir = $(mandir)/man5
|
||||
man8dir = $(mandir)/man8
|
||||
MANS = $(man_MANS)
|
||||
@ -141,49 +165,58 @@ ACLOCAL = @ACLOCAL@
|
||||
AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@
|
||||
AMTAR = @AMTAR@
|
||||
AR = @AR@
|
||||
ASN1_COMPILE = @ASN1_COMPILE@
|
||||
ASN1_COMPILE_DEP = @ASN1_COMPILE_DEP@
|
||||
AUTOCONF = @AUTOCONF@
|
||||
AUTOHEADER = @AUTOHEADER@
|
||||
AUTOMAKE = @AUTOMAKE@
|
||||
AWK = @AWK@
|
||||
CANONICAL_HOST = @CANONICAL_HOST@
|
||||
CAPNG_CFLAGS = @CAPNG_CFLAGS@
|
||||
CAPNG_LIBS = @CAPNG_LIBS@
|
||||
CATMAN = @CATMAN@
|
||||
CATMANEXT = @CATMANEXT@
|
||||
CC = @CC@
|
||||
CCDEPMODE = @CCDEPMODE@
|
||||
CFLAGS = @CFLAGS@
|
||||
COMPILE_ET = @COMPILE_ET@
|
||||
CPP = @CPP@
|
||||
CPPFLAGS = @CPPFLAGS@
|
||||
CXX = @CXX@
|
||||
CXXCPP = @CXXCPP@
|
||||
CXXFLAGS = @CXXFLAGS@
|
||||
CYGPATH_W = @CYGPATH_W@
|
||||
DBHEADER = @DBHEADER@
|
||||
DBLIB = @DBLIB@
|
||||
DEFS = @DEFS@
|
||||
DEPDIR = @DEPDIR@
|
||||
DIR_com_err = @DIR_com_err@
|
||||
DIR_hcrypto = @DIR_hcrypto@
|
||||
DIR_hdbdir = @DIR_hdbdir@
|
||||
DIR_roken = @DIR_roken@
|
||||
ECHO = @ECHO@
|
||||
DLLTOOL = @DLLTOOL@
|
||||
DSYMUTIL = @DSYMUTIL@
|
||||
DUMPBIN = @DUMPBIN@
|
||||
ECHO_C = @ECHO_C@
|
||||
ECHO_N = @ECHO_N@
|
||||
ECHO_T = @ECHO_T@
|
||||
EGREP = @EGREP@
|
||||
EXEEXT = @EXEEXT@
|
||||
F77 = @F77@
|
||||
FFLAGS = @FFLAGS@
|
||||
FGREP = @FGREP@
|
||||
GREP = @GREP@
|
||||
GROFF = @GROFF@
|
||||
INCLUDES_roken = @INCLUDES_roken@
|
||||
INCLUDE_hcrypto = @INCLUDE_hcrypto@
|
||||
INCLUDE_hesiod = @INCLUDE_hesiod@
|
||||
INCLUDE_krb4 = @INCLUDE_krb4@
|
||||
INCLUDE_libedit = @INCLUDE_libedit@
|
||||
INCLUDE_libintl = @INCLUDE_libintl@
|
||||
INCLUDE_openldap = @INCLUDE_openldap@
|
||||
INCLUDE_readline = @INCLUDE_readline@
|
||||
INCLUDE_sqlite3 = @INCLUDE_sqlite3@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
||||
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
|
||||
LD = @LD@
|
||||
LDFLAGS = @LDFLAGS@
|
||||
LDFLAGS_VERSION_SCRIPT = @LDFLAGS_VERSION_SCRIPT@
|
||||
LEX = @LEX@
|
||||
@ -207,10 +240,11 @@ LIB_crypt = @LIB_crypt@
|
||||
LIB_db_create = @LIB_db_create@
|
||||
LIB_dbm_firstkey = @LIB_dbm_firstkey@
|
||||
LIB_dbopen = @LIB_dbopen@
|
||||
LIB_dispatch_async_f = @LIB_dispatch_async_f@
|
||||
LIB_dlopen = @LIB_dlopen@
|
||||
LIB_dn_expand = @LIB_dn_expand@
|
||||
LIB_dns_search = @LIB_dns_search@
|
||||
LIB_door_create = @LIB_door_create@
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_freeaddrinfo = @LIB_freeaddrinfo@
|
||||
LIB_gai_strerror = @LIB_gai_strerror@
|
||||
LIB_getaddrinfo = @LIB_getaddrinfo@
|
||||
@ -227,6 +261,8 @@ LIB_hesiod = @LIB_hesiod@
|
||||
LIB_hstrerror = @LIB_hstrerror@
|
||||
LIB_kdb = @LIB_kdb@
|
||||
LIB_krb4 = @LIB_krb4@
|
||||
LIB_libedit = @LIB_libedit@
|
||||
LIB_libintl = @LIB_libintl@
|
||||
LIB_loadquery = @LIB_loadquery@
|
||||
LIB_logout = @LIB_logout@
|
||||
LIB_logwtmp = @LIB_logwtmp@
|
||||
@ -242,31 +278,45 @@ LIB_roken = @LIB_roken@
|
||||
LIB_security = @LIB_security@
|
||||
LIB_setsockopt = @LIB_setsockopt@
|
||||
LIB_socket = @LIB_socket@
|
||||
LIB_sqlite3 = @LIB_sqlite3@
|
||||
LIB_syslog = @LIB_syslog@
|
||||
LIB_tgetent = @LIB_tgetent@
|
||||
LIPO = @LIPO@
|
||||
LN_S = @LN_S@
|
||||
LTLIBOBJS = @LTLIBOBJS@
|
||||
MAINT = @MAINT@
|
||||
MAKEINFO = @MAKEINFO@
|
||||
MANIFEST_TOOL = @MANIFEST_TOOL@
|
||||
MKDIR_P = @MKDIR_P@
|
||||
NM = @NM@
|
||||
NMEDIT = @NMEDIT@
|
||||
NO_AFS = @NO_AFS@
|
||||
NROFF = @NROFF@
|
||||
OBJDUMP = @OBJDUMP@
|
||||
OBJEXT = @OBJEXT@
|
||||
OTOOL = @OTOOL@
|
||||
OTOOL64 = @OTOOL64@
|
||||
PACKAGE = @PACKAGE@
|
||||
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
||||
PACKAGE_NAME = @PACKAGE_NAME@
|
||||
PACKAGE_STRING = @PACKAGE_STRING@
|
||||
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
||||
PACKAGE_URL = @PACKAGE_URL@
|
||||
PACKAGE_VERSION = @PACKAGE_VERSION@
|
||||
PATH_SEPARATOR = @PATH_SEPARATOR@
|
||||
PTHREADS_CFLAGS = @PTHREADS_CFLAGS@
|
||||
PTHREADS_LIBS = @PTHREADS_LIBS@
|
||||
PKG_CONFIG = @PKG_CONFIG@
|
||||
PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
|
||||
PTHREAD_LDADD = @PTHREAD_LDADD@
|
||||
PTHREAD_LIBADD = @PTHREAD_LIBADD@
|
||||
RANLIB = @RANLIB@
|
||||
SED = @SED@
|
||||
SET_MAKE = @SET_MAKE@
|
||||
SHELL = @SHELL@
|
||||
SLC = @SLC@
|
||||
SLC_DEP = @SLC_DEP@
|
||||
STRIP = @STRIP@
|
||||
VERSION = @VERSION@
|
||||
VERSIONING = @VERSIONING@
|
||||
VOID_RETSIGTYPE = @VOID_RETSIGTYPE@
|
||||
WFLAGS = @WFLAGS@
|
||||
WFLAGS_NOIMPLICITINT = @WFLAGS_NOIMPLICITINT@
|
||||
WFLAGS_NOUNUSED = @WFLAGS_NOUNUSED@
|
||||
@ -281,10 +331,12 @@ abs_builddir = @abs_builddir@
|
||||
abs_srcdir = @abs_srcdir@
|
||||
abs_top_builddir = @abs_top_builddir@
|
||||
abs_top_srcdir = @abs_top_srcdir@
|
||||
ac_ct_AR = @ac_ct_AR@
|
||||
ac_ct_CC = @ac_ct_CC@
|
||||
ac_ct_CXX = @ac_ct_CXX@
|
||||
ac_ct_F77 = @ac_ct_F77@
|
||||
ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
|
||||
am__include = @am__include@
|
||||
am__leading_dot = @am__leading_dot@
|
||||
am__quote = @am__quote@
|
||||
am__tar = @am__tar@
|
||||
am__untar = @am__untar@
|
||||
bindir = @bindir@
|
||||
@ -325,33 +377,37 @@ psdir = @psdir@
|
||||
sbindir = @sbindir@
|
||||
sharedstatedir = @sharedstatedir@
|
||||
srcdir = @srcdir@
|
||||
subdirs = @subdirs@
|
||||
sysconfdir = @sysconfdir@
|
||||
target_alias = @target_alias@
|
||||
top_build_prefix = @top_build_prefix@
|
||||
top_builddir = @top_builddir@
|
||||
top_srcdir = @top_srcdir@
|
||||
SUFFIXES = .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
AM_CPPFLAGS = -I$(top_builddir)/include $(INCLUDES_roken) \
|
||||
-I$(srcdir)/../common $(INCLUDE_krb4) -DFTP_SERVER
|
||||
SUFFIXES = .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8
|
||||
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
AM_CPPFLAGS = $(INCLUDES_roken) -I$(srcdir)/../common $(INCLUDE_krb4) \
|
||||
-DFTP_SERVER
|
||||
@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME
|
||||
AM_CFLAGS = $(WFLAGS)
|
||||
CP = cp
|
||||
buildinclude = $(top_builddir)/include
|
||||
LIB_el_init = @LIB_el_init@
|
||||
LIB_getattr = @LIB_getattr@
|
||||
LIB_getpwent_r = @LIB_getpwent_r@
|
||||
LIB_odm_initialize = @LIB_odm_initialize@
|
||||
LIB_setpcred = @LIB_setpcred@
|
||||
HESIODLIB = @HESIODLIB@
|
||||
HESIODINCLUDE = @HESIODINCLUDE@
|
||||
libexec_heimdaldir = $(libexecdir)/heimdal
|
||||
NROFF_MAN = groff -mandoc -Tascii
|
||||
LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS)
|
||||
@KRB5_TRUE@LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \
|
||||
@KRB5_TRUE@ $(top_builddir)/lib/asn1/libasn1.la
|
||||
|
||||
@KRB5_TRUE@LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la
|
||||
@KRB5_TRUE@LIB_tsasl = $(top_builddir)/lib/tsasl/libtsasl.la
|
||||
LIB_heimbase = $(top_builddir)/base/libheimbase.la
|
||||
@DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la
|
||||
CHECK_LOCAL =
|
||||
@KRB4_TRUE@krb4_sources = krb4.c
|
||||
@KRB5_TRUE@krb5_sources = gssapi.c gss_userok.c
|
||||
ftpd_SOURCES = \
|
||||
extern.h \
|
||||
@ -368,8 +424,8 @@ ftpd_SOURCES = \
|
||||
$(krb4_sources) \
|
||||
$(krb5_sources)
|
||||
|
||||
EXTRA_ftpd_SOURCES = krb4.c kauth.c gssapi.c gss_userok.c
|
||||
CLEANFILES = security.c security.h krb4.c gssapi.c
|
||||
EXTRA_ftpd_SOURCES = kauth.c gssapi.c gss_userok.c
|
||||
CLEANFILES = security.c security.h gssapi.c
|
||||
man_MANS = ftpd.8 ftpusers.5
|
||||
LDADD = ../common/libcommon.a \
|
||||
$(LIB_otp) \
|
||||
@ -380,23 +436,23 @@ LDADD = ../common/libcommon.a \
|
||||
$(LIB_hcrypto) \
|
||||
$(LIB_roken)
|
||||
|
||||
EXTRA_DIST = $(man_MANS)
|
||||
EXTRA_DIST = NTMakefile $(man_MANS)
|
||||
all: all-am
|
||||
|
||||
.SUFFIXES:
|
||||
.SUFFIXES: .et .h .x .z .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj .y
|
||||
.SUFFIXES: .et .h .x .z .hx .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj .y
|
||||
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(am__configure_deps)
|
||||
@for dep in $?; do \
|
||||
case '$(am__configure_deps)' in \
|
||||
*$$dep*) \
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
||||
&& exit 0; \
|
||||
( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
|
||||
&& { if test -f $@; then exit 0; else break; fi; }; \
|
||||
exit 1;; \
|
||||
esac; \
|
||||
done; \
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign --ignore-deps appl/ftp/ftpd/Makefile'; \
|
||||
cd $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign --ignore-deps appl/ftp/ftpd/Makefile
|
||||
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign appl/ftp/ftpd/Makefile'; \
|
||||
$(am__cd) $(top_srcdir) && \
|
||||
$(AUTOMAKE) --foreign appl/ftp/ftpd/Makefile
|
||||
.PRECIOUS: Makefile
|
||||
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
||||
@case '$?' in \
|
||||
@ -414,34 +470,50 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
|
||||
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
||||
$(am__aclocal_m4_deps):
|
||||
install-libexecPROGRAMS: $(libexec_PROGRAMS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(libexecdir)" || $(MKDIR_P) "$(DESTDIR)$(libexecdir)"
|
||||
@list='$(libexec_PROGRAMS)'; for p in $$list; do \
|
||||
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
if test -f $$p \
|
||||
|| test -f $$p1 \
|
||||
; then \
|
||||
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(libexecPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(libexecdir)/$$f'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(libexecPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(libexecdir)/$$f" || exit 1; \
|
||||
else :; fi; \
|
||||
done
|
||||
@list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
|
||||
for p in $$list; do echo "$$p $$p"; done | \
|
||||
sed 's/$(EXEEXT)$$//' | \
|
||||
while read p p1; do if test -f $$p || test -f $$p1; \
|
||||
then echo "$$p"; echo "$$p"; else :; fi; \
|
||||
done | \
|
||||
sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
|
||||
-e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
|
||||
sed 'N;N;N;s,\n, ,g' | \
|
||||
$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
|
||||
{ d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
|
||||
if ($$2 == $$4) files[d] = files[d] " " $$1; \
|
||||
else { print "f", $$3 "/" $$4, $$1; } } \
|
||||
END { for (d in files) print "f", d, files[d] }' | \
|
||||
while read type dir files; do \
|
||||
if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(libexecdir)$$dir'"; \
|
||||
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(libexecdir)$$dir" || exit $$?; \
|
||||
} \
|
||||
; done
|
||||
|
||||
uninstall-libexecPROGRAMS:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(libexec_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
|
||||
echo " rm -f '$(DESTDIR)$(libexecdir)/$$f'"; \
|
||||
rm -f "$(DESTDIR)$(libexecdir)/$$f"; \
|
||||
done
|
||||
@list='$(libexec_PROGRAMS)'; test -n "$(libexecdir)" || list=; \
|
||||
files=`for p in $$list; do echo "$$p"; done | \
|
||||
sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
|
||||
-e 's/$$/$(EXEEXT)/' `; \
|
||||
test -n "$$list" || exit 0; \
|
||||
echo " ( cd '$(DESTDIR)$(libexecdir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(libexecdir)" && rm -f $$files
|
||||
|
||||
clean-libexecPROGRAMS:
|
||||
@list='$(libexec_PROGRAMS)'; for p in $$list; do \
|
||||
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f $$p $$f"; \
|
||||
rm -f $$p $$f ; \
|
||||
done
|
||||
@list='$(libexec_PROGRAMS)'; test -n "$$list" || exit 0; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list || exit $$?; \
|
||||
test -n "$(EXEEXT)" || exit 0; \
|
||||
list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
|
||||
echo " rm -f" $$list; \
|
||||
rm -f $$list
|
||||
ftpd$(EXEEXT): $(ftpd_OBJECTS) $(ftpd_DEPENDENCIES)
|
||||
@rm -f ftpd$(EXEEXT)
|
||||
$(LINK) $(ftpd_OBJECTS) $(ftpd_LDADD) $(LIBS)
|
||||
@ -452,14 +524,37 @@ mostlyclean-compile:
|
||||
distclean-compile:
|
||||
-rm -f *.tab.c
|
||||
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftpcmd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ftpd.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gss_userok.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gssapi.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kauth.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/klist.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logwtmp.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ls.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/popen.Po@am__quote@
|
||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/security.Po@am__quote@
|
||||
|
||||
.c.o:
|
||||
$(COMPILE) -c $<
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
||||
|
||||
.c.obj:
|
||||
$(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
||||
|
||||
.c.lo:
|
||||
$(LTCOMPILE) -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
||||
@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
||||
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
||||
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
||||
|
||||
.y.c:
|
||||
$(am__skipyacc) $(SHELL) $(YLWRAP) $< y.tab.c $@ y.tab.h $*.h y.output $*.output -- $(YACCCOMPILE)
|
||||
@ -469,146 +564,149 @@ mostlyclean-libtool:
|
||||
|
||||
clean-libtool:
|
||||
-rm -rf .libs _libs
|
||||
install-man5: $(man5_MANS) $(man_MANS)
|
||||
install-man5: $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)"
|
||||
@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.5*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
@list=''; test -n "$(man5dir)" || exit 0; \
|
||||
{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.5[a-z]*$$/p'; \
|
||||
} | while read p; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; echo "$$p"; \
|
||||
done | \
|
||||
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
|
||||
sed 'N;N;s,\n, ,g' | { \
|
||||
list=; while read file base inst; do \
|
||||
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \
|
||||
fi; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||
else file=$$i; fi; \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
5*) ;; \
|
||||
*) ext='5' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst"; \
|
||||
done
|
||||
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \
|
||||
done; }
|
||||
|
||||
uninstall-man5:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.5*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
5*) ;; \
|
||||
*) ext='5' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
|
||||
rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
|
||||
done
|
||||
install-man8: $(man8_MANS) $(man_MANS)
|
||||
@list=''; test -n "$(man5dir)" || exit 0; \
|
||||
files=`{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.5[a-z]*$$/p'; \
|
||||
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||
test -z "$$files" || { \
|
||||
echo " ( cd '$(DESTDIR)$(man5dir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(man5dir)" && rm -f $$files; }
|
||||
install-man8: $(man_MANS)
|
||||
@$(NORMAL_INSTALL)
|
||||
test -z "$(man8dir)" || $(MKDIR_P) "$(DESTDIR)$(man8dir)"
|
||||
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.8*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
@list=''; test -n "$(man8dir)" || exit 0; \
|
||||
{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.8[a-z]*$$/p'; \
|
||||
} | while read p; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
echo "$$d$$p"; echo "$$p"; \
|
||||
done | \
|
||||
sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
|
||||
sed 'N;N;s,\n, ,g' | { \
|
||||
list=; while read file base inst; do \
|
||||
if test "$$base" = "$$inst"; then list="$$list $$file"; else \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \
|
||||
fi; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
|
||||
else file=$$i; fi; \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
8*) ;; \
|
||||
*) ext='8' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
|
||||
$(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
|
||||
done
|
||||
for i in $$list; do echo "$$i"; done | $(am__base_list) | \
|
||||
while read files; do \
|
||||
test -z "$$files" || { \
|
||||
echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \
|
||||
$(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \
|
||||
done; }
|
||||
|
||||
uninstall-man8:
|
||||
@$(NORMAL_UNINSTALL)
|
||||
@list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
|
||||
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
|
||||
for i in $$l2; do \
|
||||
case "$$i" in \
|
||||
*.8*) list="$$list $$i" ;; \
|
||||
esac; \
|
||||
done; \
|
||||
for i in $$list; do \
|
||||
ext=`echo $$i | sed -e 's/^.*\\.//'`; \
|
||||
case "$$ext" in \
|
||||
8*) ;; \
|
||||
*) ext='8' ;; \
|
||||
esac; \
|
||||
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
|
||||
inst=`echo $$inst | sed -e 's/^.*\///'`; \
|
||||
inst=`echo $$inst | sed '$(transform)'`.$$ext; \
|
||||
echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
|
||||
rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
|
||||
done
|
||||
@list=''; test -n "$(man8dir)" || exit 0; \
|
||||
files=`{ for i in $$list; do echo "$$i"; done; \
|
||||
l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
|
||||
sed -n '/\.8[a-z]*$$/p'; \
|
||||
} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
|
||||
-e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
|
||||
test -z "$$files" || { \
|
||||
echo " ( cd '$(DESTDIR)$(man8dir)' && rm -f" $$files ")"; \
|
||||
cd "$(DESTDIR)$(man8dir)" && rm -f $$files; }
|
||||
|
||||
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
mkid -fID $$unique
|
||||
tags: TAGS
|
||||
|
||||
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
set x; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
shift; \
|
||||
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
||||
test -n "$$unique" || unique=$$empty_fix; \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$tags $$unique; \
|
||||
if test $$# -gt 0; then \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
"$$@" $$unique; \
|
||||
else \
|
||||
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
||||
$$unique; \
|
||||
fi; \
|
||||
fi
|
||||
ctags: CTAGS
|
||||
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
||||
$(TAGS_FILES) $(LISP)
|
||||
tags=; \
|
||||
here=`pwd`; \
|
||||
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
||||
unique=`for i in $$list; do \
|
||||
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
||||
done | \
|
||||
$(AWK) ' { files[$$0] = 1; } \
|
||||
END { for (i in files) print i; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
||||
$(AWK) '{ files[$$0] = 1; nonempty = 1; } \
|
||||
END { if (nonempty) { for (i in files) print i; }; }'`; \
|
||||
test -z "$(CTAGS_ARGS)$$unique" \
|
||||
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
||||
$$tags $$unique
|
||||
$$unique
|
||||
|
||||
GTAGS:
|
||||
here=`$(am__cd) $(top_builddir) && pwd` \
|
||||
&& cd $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) $$here
|
||||
&& $(am__cd) $(top_srcdir) \
|
||||
&& gtags -i $(GTAGS_ARGS) "$$here"
|
||||
|
||||
distclean-tags:
|
||||
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
||||
|
||||
distdir: $(DISTFILES)
|
||||
@list='$(MANS)'; if test -n "$$list"; then \
|
||||
list=`for p in $$list; do \
|
||||
if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
|
||||
if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
|
||||
if test -n "$$list" && \
|
||||
grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
|
||||
echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
|
||||
grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/ /' >&2; \
|
||||
echo " to fix them, install help2man, remove and regenerate the man pages;" >&2; \
|
||||
echo " typically \`make maintainer-clean' will remove them" >&2; \
|
||||
exit 1; \
|
||||
else :; fi; \
|
||||
else :; fi
|
||||
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
|
||||
list='$(DISTFILES)'; \
|
||||
@ -624,13 +722,17 @@ distdir: $(DISTFILES)
|
||||
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
||||
if test -d $$d/$$file; then \
|
||||
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d "$(distdir)/$$file"; then \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
||||
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
||||
cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
|
||||
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
||||
fi; \
|
||||
cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
|
||||
else \
|
||||
test -f $(distdir)/$$file \
|
||||
|| cp -p $$d/$$file $(distdir)/$$file \
|
||||
test -f "$(distdir)/$$file" \
|
||||
|| cp -p $$d/$$file "$(distdir)/$$file" \
|
||||
|| exit 1; \
|
||||
fi; \
|
||||
done
|
||||
@ -666,6 +768,7 @@ clean-generic:
|
||||
|
||||
distclean-generic:
|
||||
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
||||
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
||||
|
||||
maintainer-clean-generic:
|
||||
@echo "This command is intended for maintainers to use"
|
||||
@ -677,6 +780,7 @@ clean-am: clean-generic clean-libexecPROGRAMS clean-libtool \
|
||||
mostlyclean-am
|
||||
|
||||
distclean: distclean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
distclean-am: clean-am distclean-compile distclean-generic \
|
||||
distclean-tags
|
||||
@ -687,6 +791,8 @@ dvi-am:
|
||||
|
||||
html: html-am
|
||||
|
||||
html-am:
|
||||
|
||||
info: info-am
|
||||
|
||||
info-am:
|
||||
@ -694,26 +800,35 @@ info-am:
|
||||
install-data-am: install-man
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-data-hook
|
||||
|
||||
install-dvi: install-dvi-am
|
||||
|
||||
install-dvi-am:
|
||||
|
||||
install-exec-am: install-libexecPROGRAMS
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) install-exec-hook
|
||||
|
||||
install-html: install-html-am
|
||||
|
||||
install-html-am:
|
||||
|
||||
install-info: install-info-am
|
||||
|
||||
install-info-am:
|
||||
|
||||
install-man: install-man5 install-man8
|
||||
|
||||
install-pdf: install-pdf-am
|
||||
|
||||
install-pdf-am:
|
||||
|
||||
install-ps: install-ps-am
|
||||
|
||||
install-ps-am:
|
||||
|
||||
installcheck-am:
|
||||
|
||||
maintainer-clean: maintainer-clean-am
|
||||
-rm -rf ./$(DEPDIR)
|
||||
-rm -f Makefile
|
||||
maintainer-clean-am: distclean-am maintainer-clean-generic
|
||||
|
||||
@ -733,11 +848,10 @@ ps-am:
|
||||
uninstall-am: uninstall-libexecPROGRAMS uninstall-man
|
||||
@$(NORMAL_INSTALL)
|
||||
$(MAKE) $(AM_MAKEFLAGS) uninstall-hook
|
||||
|
||||
uninstall-man: uninstall-man5 uninstall-man8
|
||||
|
||||
.MAKE: install-am install-data-am install-exec-am install-strip \
|
||||
uninstall-am
|
||||
.MAKE: check-am install-am install-data-am install-exec-am \
|
||||
install-strip uninstall-am
|
||||
|
||||
.PHONY: CTAGS GTAGS all all-am all-local check check-am check-local \
|
||||
clean clean-generic clean-libexecPROGRAMS clean-libtool ctags \
|
||||
@ -825,6 +939,9 @@ check-local::
|
||||
|
||||
.x.c:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
|
||||
.hx.h:
|
||||
@cmp -s $< $@ 2> /dev/null || cp $< $@
|
||||
#NROFF_MAN = nroff -man
|
||||
.1.cat1:
|
||||
$(NROFF_MAN) $< > $@
|
||||
@ -910,7 +1027,7 @@ uninstall-hook: uninstall-cat-mans
|
||||
check-valgrind:
|
||||
tobjdir=`cd $(top_builddir) && pwd` ; \
|
||||
tsrcdir=`cd $(top_srcdir) && pwd` ; \
|
||||
env TESTS_ENVIRONMENT="$${tobjdir}/libtool --mode execute valgrind --leak-check=full --trace-children=yes --quiet -q --num-callers=30 --suppressions=$${tsrcdir}/cf/valgrind-suppressions" make check
|
||||
env TESTS_ENVIRONMENT="$${tsrcdir}/cf/maybe-valgrind.sh -s $${tsrcdir} -o $${tobjdir}" make check
|
||||
|
||||
#
|
||||
# Target to please samba build farm, builds distfiles in-tree.
|
||||
@ -930,10 +1047,9 @@ security.c:
|
||||
@test -f security.c || $(LN_S) $(srcdir)/../ftp/security.c .
|
||||
security.h:
|
||||
@test -f security.h || $(LN_S) $(srcdir)/../ftp/security.h .
|
||||
krb4.c:
|
||||
@test -f krb4.c || $(LN_S) $(srcdir)/../ftp/krb4.c .
|
||||
gssapi.c:
|
||||
@test -f gssapi.c || $(LN_S) $(srcdir)/../ftp/gssapi.c .
|
||||
|
||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||
.NOEXPORT:
|
||||
|
35
appl/ftp/ftpd/NTMakefile
Normal file
35
appl/ftp/ftpd/NTMakefile
Normal file
@ -0,0 +1,35 @@
|
||||
########################################################################
|
||||
#
|
||||
# Copyright (c) 2009, Secure Endpoints Inc.
|
||||
# All rights reserved.
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# - Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
#
|
||||
# - Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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
|
||||
# COPYRIGHT HOLDER 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.
|
||||
#
|
||||
|
||||
RELDIR=appl\ftp\ftpd
|
||||
|
||||
!include ../../../windows/NTMakefile.w32
|
||||
|
@ -63,7 +63,7 @@
|
||||
void abor(void);
|
||||
void blkfree(char **);
|
||||
char **copyblk(char **);
|
||||
void cwd(char *);
|
||||
void cwd(const char *);
|
||||
void do_delete(char *);
|
||||
void dologout(int);
|
||||
void eprt(char *);
|
||||
@ -129,6 +129,7 @@ extern struct sockaddr *data_dest;
|
||||
extern int logged_in;
|
||||
extern struct passwd *pw;
|
||||
extern int guest;
|
||||
extern int dochroot;
|
||||
extern int logging;
|
||||
extern int type;
|
||||
extern off_t file_size;
|
||||
@ -144,5 +145,6 @@ extern char hostname[], remotehost[];
|
||||
extern char proctitle[];
|
||||
extern int usedefault;
|
||||
extern char tmpline[];
|
||||
extern int paranoid;
|
||||
|
||||
#endif /* _EXTERN_H_ */
|
||||
|
@ -242,7 +242,7 @@
|
||||
|
||||
|
||||
#include "ftpd_locl.h"
|
||||
RCSID("$Id: ftpcmd.y 15677 2005-07-19 18:33:08Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
off_t restart_point;
|
||||
|
||||
@ -665,16 +665,16 @@ static const yytype_int8 yyrhs[] =
|
||||
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
||||
static const yytype_uint16 yyrline[] =
|
||||
{
|
||||
0, 129, 129, 131, 136, 140, 146, 153, 164, 170,
|
||||
175, 180, 186, 223, 237, 251, 257, 263, 272, 281,
|
||||
290, 295, 304, 309, 315, 322, 327, 334, 348, 353,
|
||||
358, 365, 370, 387, 392, 399, 406, 411, 416, 426,
|
||||
433, 438, 443, 451, 464, 478, 485, 502, 525, 530,
|
||||
539, 552, 563, 576, 583, 588, 595, 613, 630, 658,
|
||||
665, 671, 681, 691, 696, 701, 706, 711, 716, 721,
|
||||
726, 734, 739, 742, 746, 750, 763, 767, 771, 778,
|
||||
783, 788, 793, 798, 802, 807, 813, 821, 825, 829,
|
||||
836, 840, 844, 851, 879, 883, 909, 917, 928
|
||||
0, 129, 129, 131, 136, 140, 146, 154, 175, 181,
|
||||
186, 191, 197, 234, 248, 262, 268, 274, 283, 292,
|
||||
301, 306, 315, 320, 326, 333, 338, 345, 359, 364,
|
||||
373, 380, 385, 402, 407, 414, 421, 426, 431, 441,
|
||||
448, 453, 458, 466, 479, 493, 500, 517, 521, 526,
|
||||
530, 534, 545, 558, 565, 570, 577, 595, 612, 640,
|
||||
647, 653, 663, 673, 678, 683, 688, 693, 698, 703,
|
||||
708, 716, 721, 724, 728, 732, 745, 749, 753, 760,
|
||||
765, 770, 775, 780, 784, 789, 795, 803, 807, 811,
|
||||
818, 822, 826, 833, 861, 865, 891, 899, 910
|
||||
};
|
||||
#endif
|
||||
|
||||
@ -1794,21 +1794,31 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 7:
|
||||
#line 154 "ftpcmd.y"
|
||||
#line 155 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
usedefault = 0;
|
||||
if (pdata >= 0) {
|
||||
if (paranoid &&
|
||||
(data_dest->sa_family != his_addr->sa_family ||
|
||||
(socket_get_port(data_dest) < IPPORT_RESERVED) ||
|
||||
memcmp(socket_get_address(data_dest),
|
||||
socket_get_address(his_addr),
|
||||
socket_addr_size(his_addr)) != 0)) {
|
||||
usedefault = 1;
|
||||
reply(500, "Illegal PORT range rejected.");
|
||||
} else {
|
||||
usedefault = 0;
|
||||
if (pdata >= 0) {
|
||||
close(pdata);
|
||||
pdata = -1;
|
||||
}
|
||||
reply(200, "PORT command successful.");
|
||||
}
|
||||
reply(200, "PORT command successful.");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 8:
|
||||
#line 165 "ftpcmd.y"
|
||||
#line 176 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
eprt ((yyvsp[(3) - (5)].s));
|
||||
@ -1817,7 +1827,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 9:
|
||||
#line 171 "ftpcmd.y"
|
||||
#line 182 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(3) - (3)].i))
|
||||
pasv ();
|
||||
@ -1825,7 +1835,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 10:
|
||||
#line 176 "ftpcmd.y"
|
||||
#line 187 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(3) - (3)].i))
|
||||
epsv (NULL);
|
||||
@ -1833,7 +1843,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 11:
|
||||
#line 181 "ftpcmd.y"
|
||||
#line 192 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(5) - (5)].i))
|
||||
epsv ((yyvsp[(3) - (5)].s));
|
||||
@ -1842,7 +1852,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 12:
|
||||
#line 187 "ftpcmd.y"
|
||||
#line 198 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
switch (cmd_type) {
|
||||
@ -1882,7 +1892,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 13:
|
||||
#line 224 "ftpcmd.y"
|
||||
#line 235 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
switch ((yyvsp[(3) - (5)].i)) {
|
||||
@ -1899,7 +1909,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 14:
|
||||
#line 238 "ftpcmd.y"
|
||||
#line 249 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
switch ((yyvsp[(3) - (5)].i)) {
|
||||
@ -1916,7 +1926,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 15:
|
||||
#line 252 "ftpcmd.y"
|
||||
#line 263 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
reply(202, "ALLO command ignored.");
|
||||
@ -1925,7 +1935,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 16:
|
||||
#line 258 "ftpcmd.y"
|
||||
#line 269 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(9) - (9)].i)) {
|
||||
reply(202, "ALLO command ignored.");
|
||||
@ -1934,7 +1944,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 17:
|
||||
#line 264 "ftpcmd.y"
|
||||
#line 275 "ftpcmd.y"
|
||||
{
|
||||
char *name = (yyvsp[(3) - (5)].s);
|
||||
|
||||
@ -1946,7 +1956,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 18:
|
||||
#line 273 "ftpcmd.y"
|
||||
#line 284 "ftpcmd.y"
|
||||
{
|
||||
char *name = (yyvsp[(3) - (5)].s);
|
||||
|
||||
@ -1958,7 +1968,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 19:
|
||||
#line 282 "ftpcmd.y"
|
||||
#line 293 "ftpcmd.y"
|
||||
{
|
||||
char *name = (yyvsp[(3) - (5)].s);
|
||||
|
||||
@ -1970,7 +1980,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 20:
|
||||
#line 291 "ftpcmd.y"
|
||||
#line 302 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
send_file_list(".");
|
||||
@ -1978,7 +1988,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 21:
|
||||
#line 296 "ftpcmd.y"
|
||||
#line 307 "ftpcmd.y"
|
||||
{
|
||||
char *name = (yyvsp[(3) - (5)].s);
|
||||
|
||||
@ -1990,7 +2000,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 22:
|
||||
#line 305 "ftpcmd.y"
|
||||
#line 316 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(3) - (3)].i))
|
||||
list_file(".");
|
||||
@ -1998,7 +2008,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 23:
|
||||
#line 310 "ftpcmd.y"
|
||||
#line 321 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(5) - (5)].i))
|
||||
list_file((yyvsp[(3) - (5)].s));
|
||||
@ -2007,7 +2017,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 24:
|
||||
#line 316 "ftpcmd.y"
|
||||
#line 327 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i) && (yyvsp[(3) - (5)].s) != NULL)
|
||||
statfilecmd((yyvsp[(3) - (5)].s));
|
||||
@ -2017,7 +2027,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 25:
|
||||
#line 323 "ftpcmd.y"
|
||||
#line 334 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
statcmd();
|
||||
@ -2025,7 +2035,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 26:
|
||||
#line 328 "ftpcmd.y"
|
||||
#line 339 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i) && (yyvsp[(3) - (5)].s) != NULL)
|
||||
do_delete((yyvsp[(3) - (5)].s));
|
||||
@ -2035,7 +2045,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 27:
|
||||
#line 335 "ftpcmd.y"
|
||||
#line 346 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(5) - (5)].i)){
|
||||
if (fromname) {
|
||||
@ -2052,7 +2062,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 28:
|
||||
#line 349 "ftpcmd.y"
|
||||
#line 360 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
reply(225, "ABOR command successful.");
|
||||
@ -2060,15 +2070,19 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 29:
|
||||
#line 354 "ftpcmd.y"
|
||||
#line 365 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
cwd(pw->pw_dir);
|
||||
if ((yyvsp[(3) - (3)].i)) {
|
||||
const char *path = pw->pw_dir;
|
||||
if (dochroot || guest)
|
||||
path = "/";
|
||||
cwd(path);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case 30:
|
||||
#line 359 "ftpcmd.y"
|
||||
#line 374 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i) && (yyvsp[(3) - (5)].s) != NULL)
|
||||
cwd((yyvsp[(3) - (5)].s));
|
||||
@ -2078,7 +2092,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 31:
|
||||
#line 366 "ftpcmd.y"
|
||||
#line 381 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
help(cmdtab, (char *) 0);
|
||||
@ -2086,7 +2100,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 32:
|
||||
#line 371 "ftpcmd.y"
|
||||
#line 386 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
char *cp = (yyvsp[(3) - (5)].s);
|
||||
@ -2106,7 +2120,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 33:
|
||||
#line 388 "ftpcmd.y"
|
||||
#line 403 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
reply(200, "NOOP command successful.");
|
||||
@ -2114,7 +2128,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 34:
|
||||
#line 393 "ftpcmd.y"
|
||||
#line 408 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i) && (yyvsp[(3) - (5)].s) != NULL)
|
||||
makedir((yyvsp[(3) - (5)].s));
|
||||
@ -2124,7 +2138,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 35:
|
||||
#line 400 "ftpcmd.y"
|
||||
#line 415 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i) && (yyvsp[(3) - (5)].s) != NULL)
|
||||
removedir((yyvsp[(3) - (5)].s));
|
||||
@ -2134,7 +2148,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 36:
|
||||
#line 407 "ftpcmd.y"
|
||||
#line 422 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
pwd();
|
||||
@ -2142,7 +2156,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 37:
|
||||
#line 412 "ftpcmd.y"
|
||||
#line 427 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
cwd("..");
|
||||
@ -2150,7 +2164,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 38:
|
||||
#line 417 "ftpcmd.y"
|
||||
#line 432 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i)) {
|
||||
lreply(211, "Supported features:");
|
||||
@ -2163,7 +2177,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 39:
|
||||
#line 427 "ftpcmd.y"
|
||||
#line 442 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
reply(501, "Bad options");
|
||||
@ -2172,7 +2186,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 40:
|
||||
#line 434 "ftpcmd.y"
|
||||
#line 449 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
help(sitetab, (char *) 0);
|
||||
@ -2180,7 +2194,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 41:
|
||||
#line 439 "ftpcmd.y"
|
||||
#line 454 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(7) - (7)].i))
|
||||
help(sitetab, (yyvsp[(5) - (7)].s));
|
||||
@ -2188,7 +2202,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 42:
|
||||
#line 444 "ftpcmd.y"
|
||||
#line 459 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
int oldmask = umask(0);
|
||||
@ -2199,7 +2213,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 43:
|
||||
#line 452 "ftpcmd.y"
|
||||
#line 467 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(7) - (7)].i)) {
|
||||
if (((yyvsp[(5) - (7)].i) == -1) || ((yyvsp[(5) - (7)].i) > 0777)) {
|
||||
@ -2215,7 +2229,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 44:
|
||||
#line 465 "ftpcmd.y"
|
||||
#line 480 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(9) - (9)].i) && (yyvsp[(7) - (9)].s) != NULL) {
|
||||
if ((yyvsp[(5) - (9)].i) > 0777)
|
||||
@ -2232,7 +2246,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 45:
|
||||
#line 479 "ftpcmd.y"
|
||||
#line 494 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
reply(200,
|
||||
@ -2242,7 +2256,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 46:
|
||||
#line 486 "ftpcmd.y"
|
||||
#line 501 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(7) - (7)].i)) {
|
||||
if ((yyvsp[(5) - (7)].i) < 30 || (yyvsp[(5) - (7)].i) > maxtimeout) {
|
||||
@ -2261,33 +2275,14 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 47:
|
||||
#line 503 "ftpcmd.y"
|
||||
#line 518 "ftpcmd.y"
|
||||
{
|
||||
#ifdef KRB4
|
||||
char *p;
|
||||
|
||||
if(guest)
|
||||
reply(500, "Can't be done as guest.");
|
||||
else{
|
||||
if((yyvsp[(7) - (7)].i) && (yyvsp[(5) - (7)].s) != NULL){
|
||||
p = strpbrk((yyvsp[(5) - (7)].s), " \t");
|
||||
if(p){
|
||||
*p++ = 0;
|
||||
kauth((yyvsp[(5) - (7)].s), p + strspn(p, " \t"));
|
||||
}else
|
||||
kauth((yyvsp[(5) - (7)].s), NULL);
|
||||
}
|
||||
}
|
||||
if((yyvsp[(5) - (7)].s) != NULL)
|
||||
free((yyvsp[(5) - (7)].s));
|
||||
#else
|
||||
reply(500, "Command not implemented.");
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case 48:
|
||||
#line 526 "ftpcmd.y"
|
||||
#line 522 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(5) - (5)].i))
|
||||
klist();
|
||||
@ -2295,37 +2290,23 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 49:
|
||||
#line 531 "ftpcmd.y"
|
||||
#line 527 "ftpcmd.y"
|
||||
{
|
||||
#ifdef KRB4
|
||||
if((yyvsp[(5) - (5)].i))
|
||||
kdestroy();
|
||||
#else
|
||||
reply(500, "Command not implemented.");
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case 50:
|
||||
#line 540 "ftpcmd.y"
|
||||
#line 531 "ftpcmd.y"
|
||||
{
|
||||
#ifdef KRB4
|
||||
if(guest)
|
||||
reply(500, "Can't be done as guest.");
|
||||
else if((yyvsp[(7) - (7)].i) && (yyvsp[(5) - (7)].s))
|
||||
krbtkfile((yyvsp[(5) - (7)].s));
|
||||
if((yyvsp[(5) - (7)].s))
|
||||
free((yyvsp[(5) - (7)].s));
|
||||
#else
|
||||
reply(500, "Command not implemented.");
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
|
||||
case 51:
|
||||
#line 553 "ftpcmd.y"
|
||||
#line 535 "ftpcmd.y"
|
||||
{
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
if(guest)
|
||||
reply(500, "Can't be done as guest.");
|
||||
else if((yyvsp[(5) - (5)].i))
|
||||
@ -2337,9 +2318,9 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 52:
|
||||
#line 564 "ftpcmd.y"
|
||||
#line 546 "ftpcmd.y"
|
||||
{
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
if(guest)
|
||||
reply(500, "Can't be done as guest.");
|
||||
else if((yyvsp[(7) - (7)].i))
|
||||
@ -2353,7 +2334,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 53:
|
||||
#line 577 "ftpcmd.y"
|
||||
#line 559 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(7) - (7)].i) && (yyvsp[(5) - (7)].s) != NULL)
|
||||
find((yyvsp[(5) - (7)].s));
|
||||
@ -2363,7 +2344,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 54:
|
||||
#line 584 "ftpcmd.y"
|
||||
#line 566 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
reply(200, "http://www.pdc.kth.se/heimdal/");
|
||||
@ -2371,7 +2352,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 55:
|
||||
#line 589 "ftpcmd.y"
|
||||
#line 571 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i) && (yyvsp[(3) - (5)].s) != NULL)
|
||||
do_store((yyvsp[(3) - (5)].s), "w", 1);
|
||||
@ -2381,7 +2362,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 56:
|
||||
#line 596 "ftpcmd.y"
|
||||
#line 578 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i)) {
|
||||
#if !defined(WIN32) && !defined(__EMX__) && !defined(__OS2__) && !defined(__CYGWIN32__)
|
||||
@ -2394,7 +2375,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 57:
|
||||
#line 614 "ftpcmd.y"
|
||||
#line 596 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i) && (yyvsp[(3) - (5)].s) != NULL)
|
||||
sizecmd((yyvsp[(3) - (5)].s));
|
||||
@ -2404,7 +2385,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 58:
|
||||
#line 631 "ftpcmd.y"
|
||||
#line 613 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i) && (yyvsp[(3) - (5)].s) != NULL) {
|
||||
struct stat stbuf;
|
||||
@ -2435,7 +2416,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 59:
|
||||
#line 659 "ftpcmd.y"
|
||||
#line 641 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i)) {
|
||||
reply(221, "Goodbye.");
|
||||
@ -2445,14 +2426,14 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 60:
|
||||
#line 666 "ftpcmd.y"
|
||||
#line 648 "ftpcmd.y"
|
||||
{
|
||||
yyerrok;
|
||||
}
|
||||
break;
|
||||
|
||||
case 61:
|
||||
#line 672 "ftpcmd.y"
|
||||
#line 654 "ftpcmd.y"
|
||||
{
|
||||
restart_point = (off_t) 0;
|
||||
if ((yyvsp[(5) - (5)].i) && (yyvsp[(3) - (5)].s)) {
|
||||
@ -2465,7 +2446,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 62:
|
||||
#line 682 "ftpcmd.y"
|
||||
#line 664 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
fromname = (char *) 0;
|
||||
@ -2478,7 +2459,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 63:
|
||||
#line 692 "ftpcmd.y"
|
||||
#line 674 "ftpcmd.y"
|
||||
{
|
||||
auth((yyvsp[(3) - (4)].s));
|
||||
free((yyvsp[(3) - (4)].s));
|
||||
@ -2486,7 +2467,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 64:
|
||||
#line 697 "ftpcmd.y"
|
||||
#line 679 "ftpcmd.y"
|
||||
{
|
||||
adat((yyvsp[(3) - (4)].s));
|
||||
free((yyvsp[(3) - (4)].s));
|
||||
@ -2494,7 +2475,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 65:
|
||||
#line 702 "ftpcmd.y"
|
||||
#line 684 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
pbsz((yyvsp[(3) - (5)].i));
|
||||
@ -2502,7 +2483,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 66:
|
||||
#line 707 "ftpcmd.y"
|
||||
#line 689 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
prot((yyvsp[(3) - (5)].s));
|
||||
@ -2510,7 +2491,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 67:
|
||||
#line 712 "ftpcmd.y"
|
||||
#line 694 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
ccc();
|
||||
@ -2518,7 +2499,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 68:
|
||||
#line 717 "ftpcmd.y"
|
||||
#line 699 "ftpcmd.y"
|
||||
{
|
||||
mec((yyvsp[(3) - (4)].s), prot_safe);
|
||||
free((yyvsp[(3) - (4)].s));
|
||||
@ -2526,7 +2507,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 69:
|
||||
#line 722 "ftpcmd.y"
|
||||
#line 704 "ftpcmd.y"
|
||||
{
|
||||
mec((yyvsp[(3) - (4)].s), prot_confidential);
|
||||
free((yyvsp[(3) - (4)].s));
|
||||
@ -2534,7 +2515,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 70:
|
||||
#line 727 "ftpcmd.y"
|
||||
#line 709 "ftpcmd.y"
|
||||
{
|
||||
mec((yyvsp[(3) - (4)].s), prot_private);
|
||||
free((yyvsp[(3) - (4)].s));
|
||||
@ -2542,47 +2523,47 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 72:
|
||||
#line 739 "ftpcmd.y"
|
||||
#line 721 "ftpcmd.y"
|
||||
{
|
||||
(yyval.s) = (char *)calloc(1, sizeof(char));
|
||||
}
|
||||
break;
|
||||
|
||||
case 75:
|
||||
#line 752 "ftpcmd.y"
|
||||
#line 734 "ftpcmd.y"
|
||||
{
|
||||
struct sockaddr_in *sin4 = (struct sockaddr_in *)data_dest;
|
||||
|
||||
sin4->sin_family = AF_INET;
|
||||
sin4->sin_port = htons((yyvsp[(9) - (11)].i) * 256 + (yyvsp[(11) - (11)].i));
|
||||
sin4->sin_addr.s_addr =
|
||||
sin4->sin_addr.s_addr =
|
||||
htonl(((yyvsp[(1) - (11)].i) << 24) | ((yyvsp[(3) - (11)].i) << 16) | ((yyvsp[(5) - (11)].i) << 8) | (yyvsp[(7) - (11)].i));
|
||||
}
|
||||
break;
|
||||
|
||||
case 76:
|
||||
#line 764 "ftpcmd.y"
|
||||
#line 746 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = FORM_N;
|
||||
}
|
||||
break;
|
||||
|
||||
case 77:
|
||||
#line 768 "ftpcmd.y"
|
||||
#line 750 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = FORM_T;
|
||||
}
|
||||
break;
|
||||
|
||||
case 78:
|
||||
#line 772 "ftpcmd.y"
|
||||
#line 754 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = FORM_C;
|
||||
}
|
||||
break;
|
||||
|
||||
case 79:
|
||||
#line 779 "ftpcmd.y"
|
||||
#line 761 "ftpcmd.y"
|
||||
{
|
||||
cmd_type = TYPE_A;
|
||||
cmd_form = FORM_N;
|
||||
@ -2590,7 +2571,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 80:
|
||||
#line 784 "ftpcmd.y"
|
||||
#line 766 "ftpcmd.y"
|
||||
{
|
||||
cmd_type = TYPE_A;
|
||||
cmd_form = (yyvsp[(3) - (3)].i);
|
||||
@ -2598,7 +2579,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 81:
|
||||
#line 789 "ftpcmd.y"
|
||||
#line 771 "ftpcmd.y"
|
||||
{
|
||||
cmd_type = TYPE_E;
|
||||
cmd_form = FORM_N;
|
||||
@ -2606,7 +2587,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 82:
|
||||
#line 794 "ftpcmd.y"
|
||||
#line 776 "ftpcmd.y"
|
||||
{
|
||||
cmd_type = TYPE_E;
|
||||
cmd_form = (yyvsp[(3) - (3)].i);
|
||||
@ -2614,14 +2595,14 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 83:
|
||||
#line 799 "ftpcmd.y"
|
||||
#line 781 "ftpcmd.y"
|
||||
{
|
||||
cmd_type = TYPE_I;
|
||||
}
|
||||
break;
|
||||
|
||||
case 84:
|
||||
#line 803 "ftpcmd.y"
|
||||
#line 785 "ftpcmd.y"
|
||||
{
|
||||
cmd_type = TYPE_L;
|
||||
cmd_bytesz = NBBY;
|
||||
@ -2629,7 +2610,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 85:
|
||||
#line 808 "ftpcmd.y"
|
||||
#line 790 "ftpcmd.y"
|
||||
{
|
||||
cmd_type = TYPE_L;
|
||||
cmd_bytesz = (yyvsp[(3) - (3)].i);
|
||||
@ -2637,7 +2618,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 86:
|
||||
#line 814 "ftpcmd.y"
|
||||
#line 796 "ftpcmd.y"
|
||||
{
|
||||
cmd_type = TYPE_L;
|
||||
cmd_bytesz = (yyvsp[(2) - (2)].i);
|
||||
@ -2645,49 +2626,49 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 87:
|
||||
#line 822 "ftpcmd.y"
|
||||
#line 804 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = STRU_F;
|
||||
}
|
||||
break;
|
||||
|
||||
case 88:
|
||||
#line 826 "ftpcmd.y"
|
||||
#line 808 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = STRU_R;
|
||||
}
|
||||
break;
|
||||
|
||||
case 89:
|
||||
#line 830 "ftpcmd.y"
|
||||
#line 812 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = STRU_P;
|
||||
}
|
||||
break;
|
||||
|
||||
case 90:
|
||||
#line 837 "ftpcmd.y"
|
||||
#line 819 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = MODE_S;
|
||||
}
|
||||
break;
|
||||
|
||||
case 91:
|
||||
#line 841 "ftpcmd.y"
|
||||
#line 823 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = MODE_B;
|
||||
}
|
||||
break;
|
||||
|
||||
case 92:
|
||||
#line 845 "ftpcmd.y"
|
||||
#line 827 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = MODE_C;
|
||||
}
|
||||
break;
|
||||
|
||||
case 93:
|
||||
#line 852 "ftpcmd.y"
|
||||
#line 834 "ftpcmd.y"
|
||||
{
|
||||
/*
|
||||
* Problem: this production is used for all pathname
|
||||
@ -2715,7 +2696,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 95:
|
||||
#line 884 "ftpcmd.y"
|
||||
#line 866 "ftpcmd.y"
|
||||
{
|
||||
int ret, dec, multby, digit;
|
||||
|
||||
@ -2741,7 +2722,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 96:
|
||||
#line 910 "ftpcmd.y"
|
||||
#line 892 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = (yyvsp[(1) - (1)].i) && !guest;
|
||||
if((yyvsp[(1) - (1)].i) && !(yyval.i))
|
||||
@ -2750,7 +2731,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 97:
|
||||
#line 918 "ftpcmd.y"
|
||||
#line 900 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(1) - (1)].i)) {
|
||||
if(((yyval.i) = logged_in) == 0)
|
||||
@ -2761,7 +2742,7 @@ yyparse ()
|
||||
break;
|
||||
|
||||
case 98:
|
||||
#line 928 "ftpcmd.y"
|
||||
#line 910 "ftpcmd.y"
|
||||
{
|
||||
(yyval.i) = 1;
|
||||
if(sec_complete && !ccc_passed && !secure_command()) {
|
||||
@ -2774,7 +2755,7 @@ yyparse ()
|
||||
|
||||
|
||||
/* Line 1267 of yacc.c. */
|
||||
#line 2778 "ftpcmd.c"
|
||||
#line 2759 "ftpcmd.c"
|
||||
default: break;
|
||||
}
|
||||
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
|
||||
@ -2988,7 +2969,7 @@ yyparse ()
|
||||
}
|
||||
|
||||
|
||||
#line 938 "ftpcmd.y"
|
||||
#line 920 "ftpcmd.y"
|
||||
|
||||
|
||||
#define CMD 0 /* beginning of command */
|
||||
@ -3085,7 +3066,7 @@ struct tab sitetab[] = {
|
||||
{ "FIND", LOCATE, STR1, 1, "<sp> globexpr" },
|
||||
|
||||
{ "URL", URL, ARGS, 1, "?" },
|
||||
|
||||
|
||||
{ NULL, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
|
@ -43,7 +43,7 @@
|
||||
%{
|
||||
|
||||
#include "ftpd_locl.h"
|
||||
RCSID("$Id: ftpcmd.y 15677 2005-07-19 18:33:08Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
off_t restart_point;
|
||||
|
||||
@ -150,15 +150,26 @@ cmd
|
||||
memset ($3, 0, strlen($3));
|
||||
free($3);
|
||||
}
|
||||
|
||||
| PORT SP host_port CRLF check_secure
|
||||
{
|
||||
if ($5) {
|
||||
usedefault = 0;
|
||||
if (pdata >= 0) {
|
||||
if (paranoid &&
|
||||
(data_dest->sa_family != his_addr->sa_family ||
|
||||
(socket_get_port(data_dest) < IPPORT_RESERVED) ||
|
||||
memcmp(socket_get_address(data_dest),
|
||||
socket_get_address(his_addr),
|
||||
socket_addr_size(his_addr)) != 0)) {
|
||||
usedefault = 1;
|
||||
reply(500, "Illegal PORT range rejected.");
|
||||
} else {
|
||||
usedefault = 0;
|
||||
if (pdata >= 0) {
|
||||
close(pdata);
|
||||
pdata = -1;
|
||||
}
|
||||
reply(200, "PORT command successful.");
|
||||
}
|
||||
reply(200, "PORT command successful.");
|
||||
}
|
||||
}
|
||||
| EPRT SP STRING CRLF check_secure
|
||||
@ -352,8 +363,12 @@ cmd
|
||||
}
|
||||
| CWD CRLF check_login
|
||||
{
|
||||
if ($3)
|
||||
cwd(pw->pw_dir);
|
||||
if ($3) {
|
||||
const char *path = pw->pw_dir;
|
||||
if (dochroot || guest)
|
||||
path = "/";
|
||||
cwd(path);
|
||||
}
|
||||
}
|
||||
| CWD SP pathname CRLF check_login
|
||||
{
|
||||
@ -501,26 +516,7 @@ cmd
|
||||
|
||||
| SITE SP KAUTH SP STRING CRLF check_login
|
||||
{
|
||||
#ifdef KRB4
|
||||
char *p;
|
||||
|
||||
if(guest)
|
||||
reply(500, "Can't be done as guest.");
|
||||
else{
|
||||
if($7 && $5 != NULL){
|
||||
p = strpbrk($5, " \t");
|
||||
if(p){
|
||||
*p++ = 0;
|
||||
kauth($5, p + strspn(p, " \t"));
|
||||
}else
|
||||
kauth($5, NULL);
|
||||
}
|
||||
}
|
||||
if($5 != NULL)
|
||||
free($5);
|
||||
#else
|
||||
reply(500, "Command not implemented.");
|
||||
#endif
|
||||
}
|
||||
| SITE SP KLIST CRLF check_login
|
||||
{
|
||||
@ -529,29 +525,15 @@ cmd
|
||||
}
|
||||
| SITE SP KDESTROY CRLF check_login
|
||||
{
|
||||
#ifdef KRB4
|
||||
if($5)
|
||||
kdestroy();
|
||||
#else
|
||||
reply(500, "Command not implemented.");
|
||||
#endif
|
||||
}
|
||||
| SITE SP KRBTKFILE SP STRING CRLF check_login
|
||||
{
|
||||
#ifdef KRB4
|
||||
if(guest)
|
||||
reply(500, "Can't be done as guest.");
|
||||
else if($7 && $5)
|
||||
krbtkfile($5);
|
||||
if($5)
|
||||
free($5);
|
||||
#else
|
||||
reply(500, "Command not implemented.");
|
||||
#endif
|
||||
}
|
||||
| SITE SP AFSLOG CRLF check_login
|
||||
{
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
if(guest)
|
||||
reply(500, "Can't be done as guest.");
|
||||
else if($5)
|
||||
@ -562,7 +544,7 @@ cmd
|
||||
}
|
||||
| SITE SP AFSLOG SP STRING CRLF check_login
|
||||
{
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
if(guest)
|
||||
reply(500, "Can't be done as guest.");
|
||||
else if($7)
|
||||
@ -754,7 +736,7 @@ host_port
|
||||
|
||||
sin4->sin_family = AF_INET;
|
||||
sin4->sin_port = htons($9 * 256 + $11);
|
||||
sin4->sin_addr.s_addr =
|
||||
sin4->sin_addr.s_addr =
|
||||
htonl(($1 << 24) | ($3 << 16) | ($5 << 8) | $7);
|
||||
}
|
||||
;
|
||||
@ -1031,7 +1013,7 @@ struct tab sitetab[] = {
|
||||
{ "FIND", LOCATE, STR1, 1, "<sp> globexpr" },
|
||||
|
||||
{ "URL", URL, ARGS, 1, "?" },
|
||||
|
||||
|
||||
{ NULL, 0, 0, 0, 0 }
|
||||
};
|
||||
|
||||
|
@ -47,11 +47,11 @@
|
||||
.Op Fl p Ar port
|
||||
.Op Fl T Ar maxtimeout
|
||||
.Op Fl t Ar timeout
|
||||
.Op Fl -gss-bindings
|
||||
.Op Fl I | Fl -no-insecure-oob
|
||||
.Op Fl Fl gss-bindings
|
||||
.Op Fl I | Fl Fl no-insecure-oob
|
||||
.Op Fl u Ar default umask
|
||||
.Op Fl B | Fl -builtin-ls
|
||||
.Op Fl -good-chars= Ns Ar string
|
||||
.Op Fl B | Fl Fl builtin-ls
|
||||
.Op Fl Fl good-chars= Ns Ar string
|
||||
.Sh DESCRIPTION
|
||||
.Nm Ftpd
|
||||
is the
|
||||
@ -101,7 +101,7 @@ Debugging information is written to the syslog using LOG_FTP.
|
||||
.It Fl g
|
||||
Anonymous users will get a umask of
|
||||
.Ar umask .
|
||||
.It Fl -gss-bindings
|
||||
.It Fl Fl gss-bindings
|
||||
require the peer to use GSS-API bindings (ie make sure IP addresses match).
|
||||
.It Fl i
|
||||
Open a socket and wait for a connection. This is mainly used for
|
||||
@ -144,16 +144,16 @@ revert to the old behavior.
|
||||
Verbose mode.
|
||||
.It Xo
|
||||
.Fl B ,
|
||||
.Fl -builtin-ls
|
||||
.Fl Fl builtin-ls
|
||||
.Xc
|
||||
use built-in ls to list files
|
||||
.It Xo
|
||||
.Fl -good-chars= Ns Ar string
|
||||
.Fl Fl good-chars= Ns Ar string
|
||||
.Xc
|
||||
allowed anonymous upload filename chars
|
||||
.It Xo
|
||||
.Fl I
|
||||
.Fl -no-insecure-oob
|
||||
.Fl Fl no-insecure-oob
|
||||
.Xc
|
||||
don't allow insecure out of band.
|
||||
Heimdal ftp clients before 0.6.3 doesn't support secure oob, so turning
|
||||
|
@ -38,7 +38,7 @@
|
||||
#endif
|
||||
#include "getarg.h"
|
||||
|
||||
RCSID("$Id: ftpd.c 21222 2007-06-20 10:11:14Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
static char version[] = "Version 6.00";
|
||||
|
||||
@ -91,6 +91,7 @@ char tmpline[10240];
|
||||
char hostname[MaxHostNameLen];
|
||||
char remotehost[MaxHostNameLen];
|
||||
static char ttyline[20];
|
||||
int paranoid = 1;
|
||||
|
||||
#define AUTH_PLAIN (1 << 0) /* allow sending passwords */
|
||||
#define AUTH_OTP (1 << 1) /* passwords are one-time */
|
||||
@ -190,7 +191,7 @@ parse_auth_level(char *str)
|
||||
else
|
||||
warnx("bad value for -a: `%s'", p);
|
||||
}
|
||||
return ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
@ -225,7 +226,7 @@ struct getargs args[] = {
|
||||
{ "builtin-ls", 'B', arg_flag, &use_builtin_ls, "use built-in ls to list files" },
|
||||
{ "good-chars", 0, arg_string, &good_chars, "allowed anonymous upload filename chars" },
|
||||
{ "insecure-oob", 'I', arg_negative_flag, &allow_insecure_oob, "don't allow insecure OOB ABOR/STAT" },
|
||||
#ifdef KRB5
|
||||
#ifdef KRB5
|
||||
{ "gss-bindings", 0, arg_flag, &ftp_do_gss_bindings, "Require GSS-API bindings", NULL},
|
||||
#endif
|
||||
{ "version", 0, arg_flag, &version_flag },
|
||||
@ -271,22 +272,12 @@ main(int argc, char **argv)
|
||||
|
||||
setprogname (argv[0]);
|
||||
|
||||
/* detach from any tickets and tokens */
|
||||
{
|
||||
#ifdef KRB4
|
||||
char tkfile[1024];
|
||||
snprintf(tkfile, sizeof(tkfile),
|
||||
"/tmp/ftp_%u", (unsigned)getpid());
|
||||
krb_set_tkt_string(tkfile);
|
||||
#endif
|
||||
}
|
||||
|
||||
if(getarg(args, num_args, argc, argv, &optind))
|
||||
usage(1);
|
||||
|
||||
if(help_flag)
|
||||
usage(0);
|
||||
|
||||
|
||||
if(version_flag) {
|
||||
print_version(NULL);
|
||||
exit(0);
|
||||
@ -297,7 +288,7 @@ main(int argc, char **argv)
|
||||
{
|
||||
char *p;
|
||||
long val = 0;
|
||||
|
||||
|
||||
if(guest_umask_string) {
|
||||
val = strtol(guest_umask_string, &p, 8);
|
||||
if (*p != '\0' || val < 0)
|
||||
@ -328,7 +319,7 @@ main(int argc, char **argv)
|
||||
else
|
||||
warnx("bad value for -p");
|
||||
}
|
||||
|
||||
|
||||
if (maxtimeout < ftpd_timeout)
|
||||
maxtimeout = ftpd_timeout;
|
||||
|
||||
@ -338,7 +329,7 @@ main(int argc, char **argv)
|
||||
#endif
|
||||
|
||||
if(interactive_flag)
|
||||
mini_inetd (port);
|
||||
mini_inetd(port, NULL);
|
||||
|
||||
/*
|
||||
* LOG_NDELAY sets up the logging connection immediately,
|
||||
@ -355,14 +346,9 @@ main(int argc, char **argv)
|
||||
syslog(LOG_ERR, "getsockname (%s): %m",argv[0]);
|
||||
exit(1);
|
||||
}
|
||||
#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
|
||||
{
|
||||
int tos = IPTOS_LOWDELAY;
|
||||
|
||||
if (setsockopt(STDIN_FILENO, IPPROTO_IP, IP_TOS,
|
||||
(void *)&tos, sizeof(int)) < 0)
|
||||
syslog(LOG_WARNING, "setsockopt (IP_TOS): %m");
|
||||
}
|
||||
#if defined(IP_TOS)
|
||||
if (ctrl_addr->sa_family == AF_INET)
|
||||
socket_set_tos(STDIN_FILENO, IP_TOS);
|
||||
#endif
|
||||
data_source->sa_family = ctrl_addr->sa_family;
|
||||
socket_set_port (data_source,
|
||||
@ -410,20 +396,14 @@ main(int argc, char **argv)
|
||||
show_file(_PATH_FTPWELCOME, 220);
|
||||
/* reply(220,) must follow */
|
||||
gethostname(hostname, sizeof(hostname));
|
||||
|
||||
|
||||
reply(220, "%s FTP server (%s"
|
||||
#ifdef KRB5
|
||||
"+%s"
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
"+%s"
|
||||
#endif
|
||||
") ready.", hostname, version
|
||||
#ifdef KRB5
|
||||
,heimdal_version
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
,krb4_version
|
||||
#endif
|
||||
);
|
||||
|
||||
@ -528,7 +508,7 @@ user(char *name)
|
||||
guest = 0;
|
||||
if (strcmp(name, "ftp") == 0 || strcmp(name, "anonymous") == 0) {
|
||||
if ((auth_level & AUTH_FTP) == 0 ||
|
||||
checkaccess("ftp") ||
|
||||
checkaccess("ftp") ||
|
||||
checkaccess("anonymous"))
|
||||
reply(530, "User %s access denied.", name);
|
||||
else if ((pw = sgetpwnam("ftp")) != NULL) {
|
||||
@ -661,7 +641,7 @@ checkuser(char *fname, char *name)
|
||||
|
||||
|
||||
/*
|
||||
* Determine whether a user has access, based on information in
|
||||
* Determine whether a user has access, based on information in
|
||||
* _PATH_FTPUSERS. The users are listed one per line, with `allow'
|
||||
* or `deny' after the username. If anything other than `allow', or
|
||||
* just nothing, is given after the username, `deny' is assumed.
|
||||
@ -689,9 +669,9 @@ checkaccess(char *name)
|
||||
int allowed = ALLOWED;
|
||||
char *user, *perm, line[BUFSIZ];
|
||||
char *foo;
|
||||
|
||||
|
||||
fd = fopen(_PATH_FTPUSERS, "r");
|
||||
|
||||
|
||||
if(fd == NULL)
|
||||
return allowed;
|
||||
|
||||
@ -724,7 +704,7 @@ int do_login(int code, char *passwd)
|
||||
return -1;
|
||||
}
|
||||
initgroups(pw->pw_name, pw->pw_gid);
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
if(k_hasafs())
|
||||
k_setpag();
|
||||
#endif
|
||||
@ -799,7 +779,7 @@ int do_login(int code, char *passwd)
|
||||
sizeof(data_addr));
|
||||
|
||||
syslog(LOG_INFO, "ANONYMOUS FTP LOGIN FROM %s(%s), %s",
|
||||
remotehost,
|
||||
remotehost,
|
||||
data_addr,
|
||||
passwd);
|
||||
}
|
||||
@ -850,11 +830,11 @@ end_login(void)
|
||||
static int
|
||||
krb5_verify(struct passwd *pwd, char *passwd)
|
||||
{
|
||||
krb5_context context;
|
||||
krb5_context context;
|
||||
krb5_ccache id;
|
||||
krb5_principal princ;
|
||||
krb5_error_code ret;
|
||||
|
||||
|
||||
ret = krb5_init_context(&context);
|
||||
if(ret)
|
||||
return ret;
|
||||
@ -864,7 +844,7 @@ krb5_verify(struct passwd *pwd, char *passwd)
|
||||
krb5_free_context(context);
|
||||
return ret;
|
||||
}
|
||||
ret = krb5_cc_gen_new(context, &krb5_mcc_ops, &id);
|
||||
ret = krb5_cc_new_unique(context, "MEMORY", NULL, &id);
|
||||
if(ret){
|
||||
krb5_free_principal(context, princ);
|
||||
krb5_free_context(context);
|
||||
@ -882,7 +862,7 @@ krb5_verify(struct passwd *pwd, char *passwd)
|
||||
}
|
||||
krb5_cc_destroy(context, id);
|
||||
krb5_free_context (context);
|
||||
if(ret)
|
||||
if(ret)
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
@ -916,21 +896,6 @@ pass(char *passwd)
|
||||
else if((auth_level & AUTH_OTP) == 0) {
|
||||
#ifdef KRB5
|
||||
rval = krb5_verify(pw, passwd);
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
if (rval) {
|
||||
char realm[REALM_SZ];
|
||||
if((rval = krb_get_lrealm(realm, 1)) == KSUCCESS)
|
||||
rval = krb_verify_user(pw->pw_name,
|
||||
"", realm,
|
||||
passwd,
|
||||
KRB_VERIFY_SECURE, NULL);
|
||||
if (rval == KSUCCESS ) {
|
||||
chown (tkt_string(), pw->pw_uid, pw->pw_gid);
|
||||
if(k_hasafs())
|
||||
krb_afslog(0, 0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if (rval)
|
||||
rval = unix_verify_user(pw->pw_name, passwd);
|
||||
@ -977,7 +942,7 @@ pass(char *passwd)
|
||||
}
|
||||
if(!do_login(230, passwd))
|
||||
return;
|
||||
|
||||
|
||||
/* Forget all about it... */
|
||||
end_login();
|
||||
}
|
||||
@ -1013,7 +978,7 @@ retrieve(const char *cmd, char *name)
|
||||
for(p = cmds; p->ext; p++){
|
||||
char *tail = name + strlen(name) - strlen(p->ext);
|
||||
char c = *tail;
|
||||
|
||||
|
||||
if(strcmp(tail, p->ext) == 0 &&
|
||||
(*tail = 0) == 0 &&
|
||||
access(name, R_OK) == 0){
|
||||
@ -1037,7 +1002,7 @@ retrieve(const char *cmd, char *name)
|
||||
free(ext);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
if(p->ext){
|
||||
fin = ftpd_popen(line, "r", 0, 0);
|
||||
@ -1106,7 +1071,7 @@ retrieve(const char *cmd, char *name)
|
||||
|
||||
/* filename sanity check */
|
||||
|
||||
int
|
||||
int
|
||||
filename_check(char *filename)
|
||||
{
|
||||
char *p;
|
||||
@ -1127,7 +1092,7 @@ filename_check(char *filename)
|
||||
lreply(553, "\"%s\" is not an acceptable filename.", filename);
|
||||
lreply(553, "The filename must start with an alphanumeric "
|
||||
"character and must only");
|
||||
reply(553, "consist of alphanumeric characters or any of the following: %s",
|
||||
reply(553, "consist of alphanumeric characters or any of the following: %s",
|
||||
good_chars);
|
||||
return 1;
|
||||
}
|
||||
@ -1141,10 +1106,14 @@ do_store(char *name, char *mode, int unique)
|
||||
|
||||
if(guest && filename_check(name))
|
||||
return;
|
||||
if (unique && stat(name, &st) == 0 &&
|
||||
(name = gunique(name)) == NULL) {
|
||||
LOGCMD(*mode == 'w' ? "put" : "append", name);
|
||||
return;
|
||||
if (unique) {
|
||||
char *uname;
|
||||
if (stat(name, &st) == 0) {
|
||||
if ((uname = gunique(name)) == NULL)
|
||||
return;
|
||||
name = uname;
|
||||
}
|
||||
LOGCMD(*mode == 'w' ? "put" : "append", name);
|
||||
}
|
||||
|
||||
if (restart_point)
|
||||
@ -1252,7 +1221,7 @@ getdatasock(const char *mode, int domain)
|
||||
}
|
||||
|
||||
static int
|
||||
accept_with_timeout(int socket,
|
||||
accept_with_timeout(int socket,
|
||||
struct sockaddr *address,
|
||||
socklen_t *address_len,
|
||||
struct timeval *timeout)
|
||||
@ -1302,13 +1271,9 @@ dataconn(const char *name, off_t size, const char *mode)
|
||||
}
|
||||
close(pdata);
|
||||
pdata = s;
|
||||
#if defined(IP_TOS) && defined(HAVE_SETSOCKOPT)
|
||||
{
|
||||
int tos = IPTOS_THROUGHPUT;
|
||||
|
||||
setsockopt(s, IPPROTO_IP, IP_TOS, (void *)&tos,
|
||||
sizeof(tos));
|
||||
}
|
||||
#if defined(IPTOS_THROUGHPUT)
|
||||
if (from->sa_family == AF_INET)
|
||||
socket_set_tos(s, IPTOS_THROUGHPUT);
|
||||
#endif
|
||||
reply(150, "Opening %s mode data connection for '%s'%s.",
|
||||
type == TYPE_A ? "ASCII" : "BINARY", name, sizebuf);
|
||||
@ -1323,7 +1288,7 @@ dataconn(const char *name, off_t size, const char *mode)
|
||||
if (usedefault)
|
||||
data_dest = his_addr;
|
||||
usedefault = 1;
|
||||
/*
|
||||
/*
|
||||
* Default to using the same socket type as the ctrl address,
|
||||
* unless we know the type of the data address.
|
||||
*/
|
||||
@ -1399,7 +1364,7 @@ send_data(FILE *instr, FILE *outstr)
|
||||
goto data_err;
|
||||
reply(226, "Transfer complete.");
|
||||
return;
|
||||
|
||||
|
||||
case TYPE_I:
|
||||
case TYPE_L:
|
||||
#if 0 /* XXX handle urg flag */
|
||||
@ -1411,7 +1376,7 @@ send_data(FILE *instr, FILE *outstr)
|
||||
struct stat st;
|
||||
char *chunk;
|
||||
int in = fileno(instr);
|
||||
if(fstat(in, &st) == 0 && S_ISREG(st.st_mode)
|
||||
if(fstat(in, &st) == 0 && S_ISREG(st.st_mode)
|
||||
&& st.st_size > 0) {
|
||||
/*
|
||||
* mmap zero bytes has potential of loosing, don't do it.
|
||||
@ -1505,7 +1470,7 @@ receive_data(FILE *instr, FILE *outstr)
|
||||
perror_reply(451, "Local resource failure: malloc");
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
switch (type) {
|
||||
|
||||
case TYPE_I:
|
||||
@ -1534,7 +1499,7 @@ receive_data(FILE *instr, FILE *outstr)
|
||||
char *p, *q;
|
||||
int cr_flag = 0;
|
||||
while ((cnt = sec_read(fileno(instr),
|
||||
buf + cr_flag,
|
||||
buf + cr_flag,
|
||||
bufsize - cr_flag)) > 0){
|
||||
if (urgflag && handleoobcmd())
|
||||
return (-1);
|
||||
@ -1583,13 +1548,13 @@ receive_data(FILE *instr, FILE *outstr)
|
||||
urgflag = 0;
|
||||
return (-1);
|
||||
}
|
||||
|
||||
|
||||
data_err:
|
||||
transflag = 0;
|
||||
urgflag = 0;
|
||||
perror_reply(426, "Data Connection");
|
||||
return (-1);
|
||||
|
||||
|
||||
file_err:
|
||||
transflag = 0;
|
||||
urgflag = 0;
|
||||
@ -1772,7 +1737,7 @@ do_delete(char *name)
|
||||
perror_reply(550, name);
|
||||
return;
|
||||
}
|
||||
if ((st.st_mode&S_IFMT) == S_IFDIR) {
|
||||
if (S_ISDIR(st.st_mode)) {
|
||||
if (rmdir(name) < 0) {
|
||||
perror_reply(550, name);
|
||||
return;
|
||||
@ -1788,7 +1753,7 @@ do_delete(char *name)
|
||||
}
|
||||
|
||||
void
|
||||
cwd(char *path)
|
||||
cwd(const char *path)
|
||||
{
|
||||
|
||||
if (chdir(path) < 0)
|
||||
@ -1831,7 +1796,7 @@ pwd(void)
|
||||
char *ret;
|
||||
|
||||
/* SunOS has a broken getcwd that does popen(pwd) (!!!), this
|
||||
* failes miserably when running chroot
|
||||
* failes miserably when running chroot
|
||||
*/
|
||||
ret = getcwd(path, sizeof(path));
|
||||
if (ret == NULL)
|
||||
@ -1902,7 +1867,7 @@ dologout(int status)
|
||||
transflag = 0;
|
||||
urgflag = 0;
|
||||
if (logged_in) {
|
||||
#if KRB4 || KRB5
|
||||
#if KRB5
|
||||
cond_kdestroy();
|
||||
#endif
|
||||
seteuid((uid_t)0); /* No need to check, we call exit() below */
|
||||
@ -1913,7 +1878,7 @@ dologout(int status)
|
||||
exit(status);
|
||||
#else
|
||||
_exit(status);
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
void abor(void)
|
||||
@ -2017,8 +1982,8 @@ pasv(void)
|
||||
socket_set_address_and_port (pasv_addr,
|
||||
socket_get_address (ctrl_addr),
|
||||
0);
|
||||
socket_set_portrange(pdata, restricted_data_ports,
|
||||
pasv_addr->sa_family);
|
||||
socket_set_portrange(pdata, restricted_data_ports,
|
||||
pasv_addr->sa_family);
|
||||
if (seteuid(0) < 0)
|
||||
fatal("Failed to seteuid");
|
||||
if (bind(pdata, pasv_addr, socket_sockaddr_size (pasv_addr)) < 0) {
|
||||
@ -2064,8 +2029,8 @@ epsv(char *proto)
|
||||
socket_set_address_and_port (pasv_addr,
|
||||
socket_get_address (ctrl_addr),
|
||||
0);
|
||||
socket_set_portrange(pdata, restricted_data_ports,
|
||||
pasv_addr->sa_family);
|
||||
socket_set_portrange(pdata, restricted_data_ports,
|
||||
pasv_addr->sa_family);
|
||||
if (seteuid(0) < 0)
|
||||
fatal("Failed to seteuid");
|
||||
if (bind(pdata, pasv_addr, socket_sockaddr_size (pasv_addr)) < 0) {
|
||||
@ -2123,7 +2088,7 @@ eprt(char *str)
|
||||
case 2 :
|
||||
data_dest->sa_family = AF_INET6;
|
||||
break;
|
||||
#endif
|
||||
#endif
|
||||
case 1 :
|
||||
data_dest->sa_family = AF_INET;
|
||||
break;
|
||||
@ -2154,7 +2119,18 @@ eprt(char *str)
|
||||
reply(500, "Bad port syntax in EPRT");
|
||||
return;
|
||||
}
|
||||
if (port < IPPORT_RESERVED) {
|
||||
reply(500, "Bad port in invalid range in EPRT");
|
||||
return;
|
||||
}
|
||||
socket_set_port (data_dest, htons(port));
|
||||
|
||||
if (paranoid &&
|
||||
(data_dest->sa_family != his_addr->sa_family ||
|
||||
memcmp(socket_get_address(data_dest), socket_get_address(his_addr), socket_sockaddr_size(data_dest)) != 0))
|
||||
{
|
||||
reply(500, "Bad address in EPRT");
|
||||
}
|
||||
reply(200, "EPRT command successful.");
|
||||
}
|
||||
|
||||
@ -2353,15 +2329,13 @@ send_file_list(char *whichf)
|
||||
transflag = 0;
|
||||
if (dout != NULL){
|
||||
sec_write(fileno(dout), buf, 0); /* XXX flush */
|
||||
|
||||
|
||||
fclose(dout);
|
||||
}
|
||||
data = -1;
|
||||
pdata = -1;
|
||||
if (freeglob) {
|
||||
freeglob = 0;
|
||||
if (freeglob)
|
||||
globfree(&gl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
309
appl/ftp/ftpd/ftpd.cat8
Normal file
309
appl/ftp/ftpd/ftpd.cat8
Normal file
@ -0,0 +1,309 @@
|
||||
|
||||
FTPD(8) BSD System Manager's Manual FTPD(8)
|
||||
|
||||
NNAAMMEE
|
||||
ffttppdd -- Internet File Transfer Protocol server
|
||||
|
||||
SSYYNNOOPPSSIISS
|
||||
ffttppdd [--aa _a_u_t_h_m_o_d_e] [--ddiillvvUU] [--gg _u_m_a_s_k] [--pp _p_o_r_t] [--TT _m_a_x_t_i_m_e_o_u_t]
|
||||
[--tt _t_i_m_e_o_u_t] [----ggssss--bbiinnddiinnggss] [--II | ----nnoo--iinnsseeccuurree--oooobb]
|
||||
[--uu _d_e_f_a_u_l_t _u_m_a_s_k] [--BB | ----bbuuiillttiinn--llss] [----ggoooodd--cchhaarrss==_s_t_r_i_n_g]
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
FFttppdd is the Internet File Transfer Protocol server process. The server
|
||||
uses the TCP protocol and listens at the port specified in the ``ftp''
|
||||
service specification; see services(5).
|
||||
|
||||
Available options:
|
||||
|
||||
--aa Select the level of authentication required. Kerberised login
|
||||
can not be turned off. The default is to only allow kerberised
|
||||
login. Other possibilities can be turned on by giving a string
|
||||
of comma separated flags as argument to --aa. Recognised flags
|
||||
are:
|
||||
|
||||
_p_l_a_i_n Allow logging in with plaintext password. The password can
|
||||
be a(n) OTP or an ordinary password.
|
||||
|
||||
_o_t_p Same as _p_l_a_i_n, but only OTP is allowed.
|
||||
|
||||
_f_t_p Allow anonymous login.
|
||||
|
||||
The following combination modes exists for backwards compatibil-
|
||||
ity:
|
||||
|
||||
_n_o_n_e Same as _p_l_a_i_n_,_f_t_p.
|
||||
|
||||
_s_a_f_e Same as _f_t_p.
|
||||
|
||||
_u_s_e_r Ignored.
|
||||
|
||||
--dd Debugging information is written to the syslog using LOG_FTP.
|
||||
|
||||
--gg Anonymous users will get a umask of _u_m_a_s_k.
|
||||
|
||||
----ggssss--bbiinnddiinnggss
|
||||
require the peer to use GSS-API bindings (ie make sure IP
|
||||
addresses match).
|
||||
|
||||
--ii Open a socket and wait for a connection. This is mainly used for
|
||||
debugging when ftpd isn't started by inetd.
|
||||
|
||||
--ll Each successful and failed ftp(1) session is logged using syslog
|
||||
with a facility of LOG_FTP. If this option is specified twice,
|
||||
the retrieve (get), store (put), append, delete, make directory,
|
||||
remove directory and rename operations and their filename argu-
|
||||
ments are also logged.
|
||||
|
||||
--pp Use _p_o_r_t (a service name or number) instead of the default
|
||||
_f_t_p_/_t_c_p.
|
||||
|
||||
--TT A client may also request a different timeout period; the maximum
|
||||
period allowed may be set to _t_i_m_e_o_u_t seconds with the --TT option.
|
||||
The default limit is 2 hours.
|
||||
|
||||
--tt The inactivity timeout period is set to _t_i_m_e_o_u_t seconds (the
|
||||
default is 15 minutes).
|
||||
|
||||
--uu Set the initial umask to something else than the default 027.
|
||||
|
||||
--UU In previous versions of ffttppdd, when a passive mode client
|
||||
requested a data connection to the server, the server would use
|
||||
data ports in the range 1024..4999. Now, by default, if the sys-
|
||||
tem supports the IP_PORTRANGE socket option, the server will use
|
||||
data ports in the range 49152..65535. Specifying this option
|
||||
will revert to the old behavior.
|
||||
|
||||
--vv Verbose mode.
|
||||
|
||||
--BB, ----bbuuiillttiinn--llss
|
||||
use built-in ls to list files
|
||||
|
||||
----ggoooodd--cchhaarrss==_s_t_r_i_n_g
|
||||
allowed anonymous upload filename chars
|
||||
|
||||
--II ----nnoo--iinnsseeccuurree--oooobb
|
||||
don't allow insecure out of band. Heimdal ftp clients before
|
||||
0.6.3 doesn't support secure oob, so turning on this option makes
|
||||
them no longer work.
|
||||
|
||||
The file _/_e_t_c_/_n_o_l_o_g_i_n can be used to disable ftp access. If the file
|
||||
exists, ffttppdd displays it and exits. If the file _/_e_t_c_/_f_t_p_w_e_l_c_o_m_e exists,
|
||||
ffttppdd prints it before issuing the ``ready'' message. If the file
|
||||
_/_e_t_c_/_m_o_t_d exists, ffttppdd prints it after a successful login.
|
||||
|
||||
The ftp server currently supports the following ftp requests. The case
|
||||
of the requests is ignored.
|
||||
|
||||
Request Description
|
||||
ABOR abort previous command
|
||||
ACCT specify account (ignored)
|
||||
ALLO allocate storage (vacuously)
|
||||
APPE append to a file
|
||||
CDUP change to parent of current working directory
|
||||
CWD change working directory
|
||||
DELE delete a file
|
||||
HELP give help information
|
||||
LIST give list files in a directory (``ls -lgA'')
|
||||
MKD make a directory
|
||||
MDTM show last modification time of file
|
||||
MODE specify data transfer _m_o_d_e
|
||||
NLST give name list of files in directory
|
||||
NOOP do nothing
|
||||
PASS specify password
|
||||
PASV prepare for server-to-server transfer
|
||||
PORT specify data connection port
|
||||
PWD print the current working directory
|
||||
QUIT terminate session
|
||||
REST restart incomplete transfer
|
||||
RETR retrieve a file
|
||||
RMD remove a directory
|
||||
RNFR specify rename-from file name
|
||||
RNTO specify rename-to file name
|
||||
SITE non-standard commands (see next section)
|
||||
SIZE return size of file
|
||||
STAT return status of server
|
||||
STOR store a file
|
||||
STOU store a file with a unique name
|
||||
STRU specify data transfer _s_t_r_u_c_t_u_r_e
|
||||
SYST show operating system type of server system
|
||||
TYPE specify data transfer _t_y_p_e
|
||||
USER specify user name
|
||||
XCUP change to parent of current working directory
|
||||
(deprecated)
|
||||
XCWD change working directory (deprecated)
|
||||
XMKD make a directory (deprecated)
|
||||
XPWD print the current working directory (deprecated)
|
||||
XRMD remove a directory (deprecated)
|
||||
|
||||
The following commands are specified by RFC2228.
|
||||
|
||||
AUTH authentication/security mechanism
|
||||
ADAT authentication/security data
|
||||
PROT data channel protection level
|
||||
PBSZ protection buffer size
|
||||
MIC integrity protected command
|
||||
CONF confidentiality protected command
|
||||
ENC privacy protected command
|
||||
CCC clear command channel
|
||||
|
||||
The following non-standard or UNIX specific commands are supported by the
|
||||
SITE request.
|
||||
|
||||
UMASK change umask, (e.g. SSIITTEE UUMMAASSKK 000022)
|
||||
IDLE set idle-timer, (e.g. SSIITTEE IIDDLLEE 6600)
|
||||
CHMOD change mode of a file (e.g. SSIITTEE CCHHMMOODD 775555 ffiilleennaammee)
|
||||
FIND quickly find a specific file with GNU locate(1).
|
||||
HELP give help information.
|
||||
|
||||
The following Kerberos related site commands are understood.
|
||||
|
||||
KAUTH obtain remote tickets.
|
||||
KLIST show remote tickets
|
||||
|
||||
The remaining ftp requests specified in Internet RFC 959 are recognized,
|
||||
but not implemented. MDTM and SIZE are not specified in RFC 959, but
|
||||
will appear in the next updated FTP RFC.
|
||||
|
||||
The ftp server will abort an active file transfer only when the ABOR com-
|
||||
mand is preceded by a Telnet "Interrupt Process" (IP) signal and a Telnet
|
||||
"Synch" signal in the command Telnet stream, as described in Internet RFC
|
||||
959. If a STAT command is received during a data transfer, preceded by a
|
||||
Telnet IP and Synch, transfer status will be returned.
|
||||
|
||||
FFttppdd interprets file names according to the ``globbing'' conventions used
|
||||
by csh(1). This allows users to use the metacharacters ``*?[]{}~''.
|
||||
|
||||
FFttppdd authenticates users according to these rules.
|
||||
|
||||
1. If Kerberos authentication is used, the user must pass valid
|
||||
tickets and the principal must be allowed to login as the
|
||||
remote user.
|
||||
|
||||
2. The login name must be in the password data base, and not have
|
||||
a null password (if Kerberos is used the password field is not
|
||||
checked). In this case a password must be provided by the
|
||||
client before any file operations may be performed. If the
|
||||
user has an OTP key, the response from a successful USER com-
|
||||
mand will include an OTP challenge. The client may choose to
|
||||
respond with a PASS command giving either a standard password
|
||||
or an OTP one-time password. The server will automatically
|
||||
determine which type of password it has been given and attempt
|
||||
to authenticate accordingly. See otp(1) for more information
|
||||
on OTP authentication.
|
||||
|
||||
3. The login name must not appear in the file _/_e_t_c_/_f_t_p_u_s_e_r_s.
|
||||
|
||||
4. The user must have a standard shell returned by
|
||||
getusershell(3).
|
||||
|
||||
5. If the user name appears in the file _/_e_t_c_/_f_t_p_c_h_r_o_o_t the ses-
|
||||
sion's root will be changed to the user's login directory by
|
||||
chroot(2) as for an ``anonymous'' or ``ftp'' account (see next
|
||||
item). However, the user must still supply a password. This
|
||||
feature is intended as a compromise between a fully anonymous
|
||||
account and a fully privileged account. The account should
|
||||
also be set up as for an anonymous account.
|
||||
|
||||
6. If the user name is ``anonymous'' or ``ftp'', an anonymous ftp
|
||||
account must be present in the password file (user ``ftp'').
|
||||
In this case the user is allowed to log in by specifying any
|
||||
password (by convention an email address for the user should
|
||||
be used as the password).
|
||||
|
||||
In the last case, ffttppdd takes special measures to restrict the client's
|
||||
access privileges. The server performs a chroot(2) to the home directory
|
||||
of the ``ftp'' user. In order that system security is not breached, it
|
||||
is recommended that the ``ftp'' subtree be constructed with care, con-
|
||||
sider following these guidelines for anonymous ftp.
|
||||
|
||||
In general all files should be owned by ``root'', and have non-write per-
|
||||
missions (644 or 755 depending on the kind of file). No files should be
|
||||
owned or writable by ``ftp'' (possibly with exception for the
|
||||
_~_f_t_p_/_i_n_c_o_m_i_n_g, as specified below).
|
||||
|
||||
_~_f_t_p The ``ftp'' homedirectory should be owned by root.
|
||||
|
||||
_~_f_t_p_/_b_i_n The directory for external programs (such as ls(1)).
|
||||
These programs must either be statically linked, or you
|
||||
must setup an environment for dynamic linking when run-
|
||||
ning chrooted. These programs will be used if present:
|
||||
|
||||
ls Used when listing files.
|
||||
|
||||
compress
|
||||
When retrieving a filename that ends in _._Z,
|
||||
and that file isn't present, ffttppdd will try
|
||||
to find the filename without _._Z and com-
|
||||
press it on the fly.
|
||||
|
||||
gzip Same as compress, just with files ending in
|
||||
_._g_z.
|
||||
|
||||
gtar Enables retrieval of whole directories as
|
||||
files ending in _._t_a_r. Can also be combined
|
||||
with compression. You must use GNU Tar (or
|
||||
some other that supports the --zz and --ZZ
|
||||
flags).
|
||||
|
||||
locate Will enable ``fast find'' with the SSIITTEE
|
||||
FFIINNDD command. You must also create a
|
||||
_l_o_c_a_t_e_d_b file in _~_f_t_p_/_e_t_c.
|
||||
|
||||
_~_f_t_p_/_e_t_c If you put copies of the passwd(5) and group(5) files
|
||||
here, ls will be able to produce owner names rather than
|
||||
numbers. Remember to remove any passwords from these
|
||||
files.
|
||||
|
||||
The file _m_o_t_d, if present, will be printed after a suc-
|
||||
cessful login.
|
||||
|
||||
_~_f_t_p_/_d_e_v Put a copy of /dev/null(7) here.
|
||||
|
||||
_~_f_t_p_/_p_u_b Traditional place to put whatever you want to make pub-
|
||||
lic.
|
||||
|
||||
If you want guests to be able to upload files, create a _~_f_t_p_/_i_n_c_o_m_i_n_g
|
||||
directory owned by ``root'', and group ``ftp'' with mode 730 (make sure
|
||||
``ftp'' is member of group ``ftp''). The following restrictions apply to
|
||||
anonymous users:
|
||||
|
||||
++oo Directories created will have mode 700.
|
||||
|
||||
++oo Uploaded files will be created with an umask of 777, if not changed
|
||||
with the --gg option.
|
||||
|
||||
++oo These command are not accessible: DDEELLEE, RRMMDD, RRNNTTOO, RRNNFFRR, SSIITTEE UUMMAASSKK,
|
||||
and SSIITTEE CCHHMMOODD.
|
||||
|
||||
++oo Filenames must start with an alpha-numeric character, and consist of
|
||||
alpha-numeric characters or any of the following: + (plus), -
|
||||
(minus), = (equal), _ (underscore), . (period), and , (comma).
|
||||
|
||||
FFIILLEESS
|
||||
/etc/ftpusers Access list for users.
|
||||
/etc/ftpchroot List of normal users who should be chroot'd.
|
||||
/etc/ftpwelcome Welcome notice.
|
||||
/etc/motd Welcome notice after login.
|
||||
/etc/nologin Displayed and access refused.
|
||||
~/.klogin Login access for Kerberos.
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
ftp(1), otp(1), getusershell(3), ftpusers(5), syslogd(8)
|
||||
|
||||
SSTTAANNDDAARRDDSS
|
||||
RRFFCC 995599 FTP PROTOCOL SPECIFICATION
|
||||
RRFFCC 11993388 OTP Specification
|
||||
RRFFCC 22222288 FTP Security Extensions.
|
||||
|
||||
BBUUGGSS
|
||||
The server must run as the super-user to create sockets with privileged
|
||||
port numbers. It maintains an effective user id of the logged in user,
|
||||
reverting to the super-user only when binding addresses to sockets. The
|
||||
possible security holes have been extensively scrutinized, but are possi-
|
||||
bly incomplete.
|
||||
|
||||
HHIISSTTOORRYY
|
||||
The ffttppdd command appeared in 4.2BSD.
|
||||
|
||||
4.2 Berkeley Distribution July 19, 2003 4.2 Berkeley Distribution
|
@ -1,37 +1,37 @@
|
||||
/*
|
||||
* Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1998 - 2000 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* 3. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: ftpd_locl.h 14933 2005-04-24 19:58:14Z lha $ */
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef __ftpd_locl_h__
|
||||
#define __ftpd_locl_h__
|
||||
@ -145,14 +145,10 @@
|
||||
#include <krb5.h>
|
||||
#endif /* KRB5 */
|
||||
|
||||
#ifdef KRB4
|
||||
#include <krb.h>
|
||||
#endif
|
||||
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
#include <kafs.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef OTP
|
||||
#include <otp.h>
|
||||
#endif
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" $Id: ftpusers.5 11176 2002-08-20 17:07:29Z joda $
|
||||
.\" $Id$
|
||||
.\"
|
||||
.Dd May 7, 1997
|
||||
.Dt FTPUSERS 5
|
||||
|
27
appl/ftp/ftpd/ftpusers.cat5
Normal file
27
appl/ftp/ftpd/ftpusers.cat5
Normal file
@ -0,0 +1,27 @@
|
||||
|
||||
FTPUSERS(5) BSD File Formats Manual FTPUSERS(5)
|
||||
|
||||
NNAAMMEE
|
||||
_/_e_t_c_/_f_t_p_u_s_e_r_s -- FTP access list file
|
||||
|
||||
DDEESSCCRRIIPPTTIIOONN
|
||||
_/_e_t_c_/_f_t_p_u_s_e_r_s contains a list of users that should be allowed or denied
|
||||
FTP access. Each line contains a user, optionally followed by ``allow''
|
||||
(anything but ``allow'' is ignored). The semi-user ``*'' matches any
|
||||
user. Users that has an explicit ``allow'', or that does not match any
|
||||
line, are allowed access. Anyone else is denied access.
|
||||
|
||||
Note that this is compatible with the old format, where this file con-
|
||||
tained a list of users that should be denied access.
|
||||
|
||||
EEXXAAMMPPLLEESS
|
||||
This will deny anyone but ``foo'' and ``bar'' to use FTP:
|
||||
|
||||
foo allow
|
||||
bar allow
|
||||
*
|
||||
|
||||
SSEEEE AALLSSOO
|
||||
ftpd(8)
|
||||
|
||||
KTH-KRB May 7, 1997 KTH-KRB
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user