mirror of
https://github.com/opnsense/src.git
synced 2026-02-18 18:20:26 -05:00
- Update FreeBSD Heimdal distribution to version 1.5.1. This also brings
several new kerberos related libraries and applications to FreeBSD:
o kgetcred(1) allows one to manually get a ticket for a particular service.
o kf(1) securily forwards ticket to another host through an authenticated
and encrypted stream.
o kcc(1) is an umbrella program around klist(1), kswitch(1), kgetcred(1)
and other user kerberos operations. klist and kswitch are just symlinks
to kcc(1) now.
o kswitch(1) allows you to easily switch between kerberos credentials if
you're running KCM.
o hxtool(1) is a certificate management tool to use with PKINIT.
o string2key(1) maps a password into key.
o kdigest(8) is a userland tool to access the KDC's digest interface.
o kimpersonate(8) creates a "fake" ticket for a service.
We also now install manpages for some lirbaries that were not installed
before, libheimntlm and libhx509.
- The new HEIMDAL version no longer supports Kerberos 4. All users are
recommended to switch to Kerberos 5.
- Weak ciphers are now disabled by default. To enable DES support (used
by telnet(8)), use "allow_weak_crypto" option in krb5.conf.
- libtelnet, pam_ksu and pam_krb5 are now compiled with error on warnings
disabled due to the function they use (krb5_get_err_text(3)) being
deprecated. I plan to work on this next.
- Heimdal's KDC now require sqlite to operate. We use the bundled version
and install it as libheimsqlite. If some other FreeBSD components will
require it in the future we can rename it to libbsdsqlite and use for these
components as well.
- This is not a latest Heimdal version, the new one was released while I was
working on the update. I will update it to 1.5.2 soon, as it fixes some
important bugs and security issues.
This commit is contained in:
commit
ae77177087
2791 changed files with 412598 additions and 162710 deletions
|
|
@ -468,13 +468,6 @@ build32:
|
|||
-p ${LIB32TMP}/usr/include >/dev/null
|
||||
mkdir -p ${WORLDTMP}
|
||||
ln -sf ${.CURDIR}/sys ${WORLDTMP}
|
||||
.if ${MK_KERBEROS} != "no"
|
||||
.for _t in obj depend all
|
||||
cd ${.CURDIR}/kerberos5/tools; \
|
||||
MAKEOBJDIRPREFIX=${OBJTREE}/lib32 ${MAKE} SSP_CFLAGS= DESTDIR= \
|
||||
DIRPRFX=kerberos5/tools/ ${_t}
|
||||
.endfor
|
||||
.endif
|
||||
.for _t in obj includes
|
||||
cd ${.CURDIR}/include; ${LIB32WMAKE} DIRPRFX=include/ ${_t}
|
||||
cd ${.CURDIR}/lib; ${LIB32WMAKE} DIRPRFX=lib/ ${_t}
|
||||
|
|
@ -1065,12 +1058,22 @@ _dtrace_tools= cddl/usr.bin/sgsmsg cddl/lib/libctf lib/libelf \
|
|||
_dtc= gnu/usr.bin/dtc
|
||||
.endif
|
||||
|
||||
.if ${MK_KERBEROS} != "no"
|
||||
_kerberos5_bootstrap_tools= \
|
||||
kerberos5/tools/make-roken \
|
||||
kerberos5/lib/libroken \
|
||||
kerberos5/lib/libvers \
|
||||
kerberos5/tools/asn1_compile \
|
||||
kerberos5/tools/slc
|
||||
.endif
|
||||
|
||||
# Please document (add comment) why something is in 'bootstrap-tools'.
|
||||
# Try to bound the building of the bootstrap-tool to just the
|
||||
# FreeBSD versions that need the tool built at this stage of the build.
|
||||
bootstrap-tools:
|
||||
.for _tool in \
|
||||
${_clang_tblgen} \
|
||||
${_kerberos5_bootstrap_tools} \
|
||||
${_dtrace_tools} \
|
||||
${_strfile} \
|
||||
${_gperf} \
|
||||
|
|
@ -1112,10 +1115,6 @@ _share= share/syscons/scrnmaps
|
|||
_gcc_tools= gnu/usr.bin/cc/cc_tools
|
||||
.endif
|
||||
|
||||
.if ${MK_KERBEROS} != "no"
|
||||
_kerberos5_tools= kerberos5/tools
|
||||
.endif
|
||||
|
||||
.if ${MK_RESCUE} != "no"
|
||||
_rescue= rescue/rescue
|
||||
.endif
|
||||
|
|
@ -1140,8 +1139,7 @@ build-tools:
|
|||
${MAKE} DIRPRFX=${_tool}/ build-tools
|
||||
.endfor
|
||||
.for _tool in \
|
||||
${_gcc_tools} \
|
||||
${_kerberos5_tools}
|
||||
${_gcc_tools}
|
||||
${_+_}@${ECHODIR} "===> ${_tool} (obj,depend,all)"; \
|
||||
cd ${.CURDIR}/${_tool}; \
|
||||
${MAKE} DIRPRFX=${_tool}/ obj; \
|
||||
|
|
@ -1247,10 +1245,15 @@ gnu/lib/libgcc__L: lib/libc__L
|
|||
lib/libcxxrt__L: gnu/lib/libgcc__L
|
||||
.endif
|
||||
|
||||
_prebuild_libs= ${_kerberos5_lib_libasn1} ${_kerberos5_lib_libhdb} \
|
||||
_prebuild_libs= ${_kerberos5_lib_libasn1} \
|
||||
${_kerberos5_lib_libhdb} \
|
||||
${_kerberos5_lib_libheimbase} \
|
||||
${_kerberos5_lib_libheimntlm} \
|
||||
${_kerberos5_lib_libheimsqlite} \
|
||||
${_kerberos5_lib_libheimipcc} \
|
||||
${_kerberos5_lib_libhx509} ${_kerberos5_lib_libkrb5} \
|
||||
${_kerberos5_lib_libroken} \
|
||||
${_kerberos5_lib_libwind} \
|
||||
lib/libbz2 lib/libcom_err lib/libcrypt \
|
||||
lib/libexpat \
|
||||
${_lib_libgssapi} ${_lib_libipx} \
|
||||
|
|
@ -1301,14 +1304,21 @@ _secure_lib= secure/lib
|
|||
.if ${MK_KERBEROS} != "no"
|
||||
kerberos5/lib/libasn1__L: lib/libcom_err__L kerberos5/lib/libroken__L
|
||||
kerberos5/lib/libhdb__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
|
||||
kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L
|
||||
kerberos5/lib/libheimntlm__L: secure/lib/libcrypto__L kerberos5/lib/libkrb5__L
|
||||
kerberos5/lib/libkrb5__L kerberos5/lib/libroken__L \
|
||||
kerberos5/lib/libwind__L kerberos5/lib/libheimsqlite__L
|
||||
kerberos5/lib/libheimntlm__L: secure/lib/libcrypto__L kerberos5/lib/libkrb5__L \
|
||||
kerberos5/lib/libroken__L lib/libcom_err__L
|
||||
kerberos5/lib/libhx509__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
|
||||
secure/lib/libcrypto__L kerberos5/lib/libroken__L
|
||||
secure/lib/libcrypto__L kerberos5/lib/libroken__L kerberos5/lib/libwind__L
|
||||
kerberos5/lib/libkrb5__L: kerberos5/lib/libasn1__L lib/libcom_err__L \
|
||||
lib/libcrypt__L secure/lib/libcrypto__L kerberos5/lib/libhx509__L \
|
||||
kerberos5/lib/libroken__L
|
||||
kerberos5/lib/libroken__L kerberos5/lib/libwind__L \
|
||||
kerberos5/lib/libheimbase__L kerberos5/lib/libheimipcc__L
|
||||
kerberos5/lib/libroken__L: lib/libcrypt__L
|
||||
kerberos5/lib/libwind__L: kerberos5/lib/libroken__L lib/libcom_err__L
|
||||
kerberos5/lib/libheimbase__L: lib/libthr__L
|
||||
kerberos5/lib/libheimipcc__L: kerberos5/lib/libroken__L kerberos5/lib/libheimbase__L lib/libthr__L
|
||||
kerberos5/lib/libheimsqlite__L: lib/libthr__L
|
||||
.endif
|
||||
|
||||
.if ${MK_GSSAPI} != "no"
|
||||
|
|
@ -1323,10 +1333,14 @@ _lib_libipx= lib/libipx
|
|||
_kerberos5_lib= kerberos5/lib
|
||||
_kerberos5_lib_libasn1= kerberos5/lib/libasn1
|
||||
_kerberos5_lib_libhdb= kerberos5/lib/libhdb
|
||||
_kerberos5_lib_libheimbase= kerberos5/lib/libheimbase
|
||||
_kerberos5_lib_libkrb5= kerberos5/lib/libkrb5
|
||||
_kerberos5_lib_libhx509= kerberos5/lib/libhx509
|
||||
_kerberos5_lib_libroken= kerberos5/lib/libroken
|
||||
_kerberos5_lib_libheimntlm= kerberos5/lib/libheimntlm
|
||||
_kerberos5_lib_libheimsqlite= kerberos5/lib/libheimsqlite
|
||||
_kerberos5_lib_libheimipcc= kerberos5/lib/libheimipcc
|
||||
_kerberos5_lib_libwind= kerberos5/lib/libwind
|
||||
.endif
|
||||
|
||||
.if ${MK_NIS} != "no"
|
||||
|
|
|
|||
|
|
@ -38,6 +38,39 @@
|
|||
# xargs -n1 | sort | uniq -d;
|
||||
# done
|
||||
|
||||
# 201203XX: Update heimdal to 1.5.1.
|
||||
OLD_FILES+=usr/include/krb5-v4compat.h \
|
||||
usr/include/krb_err.h \
|
||||
usr/include/hdb-private.h \
|
||||
usr/share/man/man3/krb5_addresses.3.gz \
|
||||
usr/share/man/man3/krb5_cc_cursor.3.gz \
|
||||
usr/share/man/man3/krb5_cc_ops.3.gz \
|
||||
usr/share/man/man3/krb5_config.3.gz \
|
||||
usr/share/man/man3/krb5_config_get_int_default.3.gz \
|
||||
usr/share/man/man3/krb5_context.3.gz \
|
||||
usr/share/man/man3/krb5_data.3.gz \
|
||||
usr/share/man/man3/krb5_err.3.gz \
|
||||
usr/share/man/man3/krb5_errx.3.gz \
|
||||
usr/share/man/man3/krb5_keyblock.3.gz \
|
||||
usr/share/man/man3/krb5_keytab_entry.3.gz \
|
||||
usr/share/man/man3/krb5_kt_cursor.3.gz \
|
||||
usr/share/man/man3/krb5_kt_ops.3.gz \
|
||||
usr/share/man/man3/krb5_set_warn_dest.3.gz \
|
||||
usr/share/man/man3/krb5_verify_user.3.gz \
|
||||
usr/share/man/man3/krb5_verr.3.gz \
|
||||
usr/share/man/man3/krb5_verrx.3.gz \
|
||||
usr/share/man/man3/krb5_vwarnx.3.gz \
|
||||
usr/share/man/man3/krb5_warn.3.gz \
|
||||
usr/share/man/man3/krb5_warnx.3.gz
|
||||
OLD_LIBS+=usr/lib/libasn1.so.10 \
|
||||
usr/lib/libhdb.so.10 \
|
||||
usr/lib/libheimntlm.so.10 \
|
||||
usr/lib/libhx509.so.10 \
|
||||
usr/lib/libkadm5clnt.so.10 \
|
||||
usr/lib/libkadm5srv.so.10 \
|
||||
usr/lib/libkafs5.so.10 \
|
||||
usr/lib/libkrb5.so.10 \
|
||||
usr/lib/libroken.so.10
|
||||
# 20120309: Remove fifofs header files.
|
||||
OLD_FILES+=usr/include/fs/fifofs/fifo.h
|
||||
OLD_DIRS+=usr/include/fs/fifofs
|
||||
|
|
|
|||
|
|
@ -1,235 +0,0 @@
|
|||
2007-07-17 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am: split source files in dist and nodist.
|
||||
|
||||
2007-07-16 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am: Only do roken rename for the library.
|
||||
|
||||
2007-07-15 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am: use version script.
|
||||
|
||||
* version-script.map: use version script.
|
||||
|
||||
2007-07-10 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am: New library version.
|
||||
|
||||
2006-10-19 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* Makefile.am (compile_et_SOURCES): add lex.h
|
||||
|
||||
2005-12-12 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* com_err.3: Document the _r functions.
|
||||
|
||||
2005-07-07 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* com_err.h: Include <stdarg.h> for va_list to help AIX 5.2.
|
||||
|
||||
2005-06-16 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* parse.y: rename base to base_id since flex defines a function
|
||||
with the argument base
|
||||
|
||||
* compile_et.h: rename base to base_id since flex defines a
|
||||
function with the argument base
|
||||
|
||||
* compile_et.c: rename base to base_id since flex defines a
|
||||
function with the argument base
|
||||
|
||||
* parse.y (name2number): rename base to num to avoid shadowing
|
||||
|
||||
* compile_et.c: rename optind to optidx
|
||||
|
||||
2005-05-16 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* parse.y: check allocation errors
|
||||
|
||||
* lex.l: check allocation errors correctly
|
||||
|
||||
* compile_et.h: include <err.h>
|
||||
|
||||
* (main): compile_et.c: use strlcpy
|
||||
|
||||
2005-04-29 Dave Love <fx@gnu.org>
|
||||
|
||||
* Makefile.am (LDADD): Add libcom_err.la
|
||||
|
||||
2005-04-24 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* include strlcpy and *printf and use them
|
||||
|
||||
2005-02-03 Love Hörnquist Åstrand <lha@it.su.se>
|
||||
|
||||
* com_right.h: de-__P
|
||||
|
||||
* com_err.h: de-__P
|
||||
|
||||
2002-08-20 Johan Danielsson <joda@pdc.kth.se>
|
||||
|
||||
* compile_et.c: don't add comma after last enum member
|
||||
|
||||
2002-08-12 Johan Danielsson <joda@pdc.kth.se>
|
||||
|
||||
* compile_et.c: just declare er_list directly instead of including
|
||||
com_right in generated header files
|
||||
|
||||
2002-03-11 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.am (libcom_err_la_LDFLAGS): set version to 2:1:1
|
||||
|
||||
2002-03-10 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* com_err.c (error_message): do not call strerror with a negative error
|
||||
|
||||
2001-05-17 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.am: bump version to 2:0:1
|
||||
|
||||
2001-05-11 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* com_err.h (add_to_error_table): add prototype
|
||||
* com_err.c (add_to_error_table): new function, from Derrick J
|
||||
Brashear <shadow@dementia.org>
|
||||
|
||||
2001-05-06 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* com_err.h: add printf formats for gcc
|
||||
|
||||
2001-02-28 Johan Danielsson <joda@pdc.kth.se>
|
||||
|
||||
* error.c (initialize_error_table_r): put table at end of the list
|
||||
|
||||
2001-02-15 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* com_err.c (default_proc): add printf attributes
|
||||
|
||||
2000-08-16 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.am: bump version to 1:1:0
|
||||
|
||||
2000-07-31 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* com_right.h (initialize_error_table_r): fix prototype
|
||||
|
||||
2000-04-05 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* com_err.c (_et_lit): explicitly initialize it to NULL to make
|
||||
dyld on Darwin/MacOS X happy
|
||||
|
||||
2000-01-16 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* com_err.h: remove __P definition (now in com_right.h). this
|
||||
file always includes com_right.h so that's where it should reside.
|
||||
* com_right.h: moved __P here and added it to the function
|
||||
prototypes
|
||||
* com_err.h (error_table_name): add __P
|
||||
|
||||
1999-07-03 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* parse.y (statement): use asprintf
|
||||
|
||||
1999-06-13 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: make it solaris make vpath-safe
|
||||
|
||||
Thu Apr 1 11:13:53 1999 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* compile_et.c: use getargs
|
||||
|
||||
Sat Mar 20 00:16:30 1999 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* compile_et.c: static-ize
|
||||
|
||||
Thu Mar 18 11:22:13 1999 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* Makefile.am: include Makefile.am.common
|
||||
|
||||
Tue Mar 16 22:30:05 1999 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* parse.y: use YYACCEPT instead of return
|
||||
|
||||
Sat Mar 13 22:22:56 1999 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* compile_et.c (generate_h): cast when calling is* to get rid of a
|
||||
warning
|
||||
|
||||
Thu Mar 11 15:00:51 1999 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* parse.y: prototype for error_message
|
||||
|
||||
Sun Nov 22 10:39:02 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* compile_et.h: include ctype and roken
|
||||
|
||||
* compile_et.c: include err.h
|
||||
(generate_h): remove unused variable
|
||||
|
||||
* Makefile.in (WFLAGS): set
|
||||
|
||||
Fri Nov 20 06:58:59 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* lex.l: undef ECHO to work around AIX lex bug
|
||||
|
||||
Sun Sep 27 02:23:59 1998 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* com_err.c (error_message): try to pass code to strerror, to see
|
||||
if it might be an errno code (this if broken, but some MIT code
|
||||
seems to expect this behaviour)
|
||||
|
||||
Sat Sep 26 17:42:39 1998 Johan Danielsson <joda@hella.pdc.kth.se>
|
||||
|
||||
* compile_et.c: <foo_err.h> -> "foo_err.h"
|
||||
|
||||
Tue Jun 30 17:17:36 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: add str{cpy,cat}_truncate
|
||||
|
||||
Mon May 25 05:24:39 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in (clean): try to remove shared library debris
|
||||
|
||||
Sun Apr 19 09:50:17 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: add symlink magic for linux
|
||||
|
||||
Sun Apr 5 09:22:11 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* parse.y: define alloca to malloc in case we're using bison but
|
||||
don't have alloca
|
||||
|
||||
Tue Mar 24 05:13:01 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: link with snprintf (From Derrick J Brashear
|
||||
<shadow@dementia.org>)
|
||||
|
||||
Fri Feb 27 05:01:42 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* parse.y: initialize ec->next
|
||||
|
||||
Thu Feb 26 02:22:25 1998 Assar Westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.am: @LEXLIB@
|
||||
|
||||
Sat Feb 21 15:18:54 1998 assar westerlund <assar@sics.se>
|
||||
|
||||
* Makefile.in: set YACC and LEX
|
||||
|
||||
Tue Feb 17 22:20:27 1998 Bjoern Groenvall <bg@sics.se>
|
||||
|
||||
* com_right.h: Change typedefs so that one may mix MIT compile_et
|
||||
generated code with krb4 dito.
|
||||
|
||||
Tue Feb 17 16:30:55 1998 Johan Danielsson <joda@emma.pdc.kth.se>
|
||||
|
||||
* compile_et.c (generate): Always return a value.
|
||||
|
||||
* parse.y: Files don't have to end with `end'.
|
||||
|
||||
Mon Feb 16 16:09:20 1998 Johan Danielsson <joda@emma.pdc.kth.se>
|
||||
|
||||
* lex.l (getstring): Replace getc() with input().
|
||||
|
||||
* Makefile.am: Fixes for new compile_et.
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
# $Id: Makefile.am 21619 2007-07-17 07:34:00Z lha $
|
||||
|
||||
include $(top_srcdir)/Makefile.am.common
|
||||
|
||||
YFLAGS = -d
|
||||
|
||||
lib_LTLIBRARIES = libcom_err.la
|
||||
libcom_err_la_LDFLAGS = -version-info 2:3:1
|
||||
|
||||
if versionscript
|
||||
libcom_err_la_LDFLAGS += $(LDFLAGS_VERSION_SCRIPT)$(srcdir)/version-script.map
|
||||
endif
|
||||
|
||||
bin_PROGRAMS = compile_et
|
||||
|
||||
include_HEADERS = com_err.h com_right.h
|
||||
|
||||
compile_et_SOURCES = compile_et.c compile_et.h parse.y lex.l lex.h
|
||||
|
||||
libcom_err_la_CPPFLAGS = $(ROKEN_RENAME)
|
||||
dist_libcom_err_la_SOURCES = error.c com_err.c roken_rename.h
|
||||
|
||||
if do_roken_rename
|
||||
nodist_libcom_err_la_SOURCES = snprintf.c strlcpy.c
|
||||
endif
|
||||
|
||||
$(compile_et_OBJECTS): parse.h parse.c ## XXX broken automake 1.4s
|
||||
|
||||
compile_et_LDADD = \
|
||||
libcom_err.la \
|
||||
$(LIB_roken) \
|
||||
$(LEXLIB)
|
||||
|
||||
snprintf.c:
|
||||
$(LN_S) $(srcdir)/../roken/snprintf.c .
|
||||
strlcpy.c:
|
||||
$(LN_S) $(srcdir)/../roken/strlcpy.c .
|
||||
|
||||
EXTRA_DIST = version-script.map
|
||||
|
|
@ -1,96 +1,245 @@
|
|||
.\" Copyright (c) 1988 Massachusetts Institute of Technology,
|
||||
.\" Student Information Processing Board. All rights reserved.
|
||||
.\" Copyright (c) 2005 Kungliga Tekniska Högskolan
|
||||
.\" (Royal Institute of Technology, Stockholm, Sweden).
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\" Redistribution and use in source and binary forms, with or without
|
||||
.\" modification, are permitted provided that the following conditions
|
||||
.\" are met:
|
||||
.\"
|
||||
.TH COM_ERR 3 "22 Nov 1988" SIPB
|
||||
.SH NAME
|
||||
com_err \- common error display routine
|
||||
.SH SYNOPSIS
|
||||
.nf
|
||||
#include <com_err.h>
|
||||
.PP
|
||||
void com_err (whoami, code, format, ...);
|
||||
const char *whoami;
|
||||
long code;
|
||||
const char *format;
|
||||
.PP
|
||||
proc = set_com_err_hook (proc);
|
||||
.fi
|
||||
void (*
|
||||
.I proc
|
||||
) (const char *, long, const char *, va_list);
|
||||
.nf
|
||||
.PP
|
||||
proc = reset_com_err_hook ();
|
||||
.PP
|
||||
void initialize_XXXX_error_table ();
|
||||
.fi
|
||||
.SH DESCRIPTION
|
||||
.I Com_err
|
||||
displays an error message on the standard error stream
|
||||
.I stderr
|
||||
(see
|
||||
.IR stdio (3S))
|
||||
composed of the
|
||||
.I whoami
|
||||
string, which should specify the program name or some subportion of
|
||||
a program, followed by an error message generated from the
|
||||
.I code
|
||||
value (derived from
|
||||
.IR compile_et (1)),
|
||||
.\" 1. Redistributions of source code must retain the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer.
|
||||
.\"
|
||||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\"
|
||||
.\" 3. Neither the name of the Institute nor the names of its contributors
|
||||
.\" may be used to endorse or promote products derived from this software
|
||||
.\" without specific prior written permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
.\" SUCH DAMAGE.
|
||||
.\"
|
||||
.\" $Id$
|
||||
.\"
|
||||
.\" This manpage was contributed by Gregory McGarry.
|
||||
.\"
|
||||
.Dd July 7, 2005
|
||||
.Dt COM_ERR 3
|
||||
.Os
|
||||
.Sh NAME
|
||||
.Nm com_err ,
|
||||
.Nm com_err_va ,
|
||||
.Nm error_message ,
|
||||
.Nm error_table_name ,
|
||||
.Nm init_error_table ,
|
||||
.Nm set_com_err_hook ,
|
||||
.Nm reset_com_err_hook ,
|
||||
.Nm add_to_error_table ,
|
||||
.Nm initialize_error_table_r
|
||||
.Nm free_error_table ,
|
||||
.Nm com_right
|
||||
.Nd common error display library
|
||||
.Sh LIBRARY
|
||||
Common Error Library (libcom_err, -lcom_err)
|
||||
.Sh SYNOPSIS
|
||||
.Fd #include <stdio.h>
|
||||
.Fd #include <stdarg.h>
|
||||
.Fd #include <krb5/com_err.h>
|
||||
.Fd #include \&"XXX_err.h\&"
|
||||
.Pp
|
||||
typedef void (*errf)(const char *, long, const char *, ...);
|
||||
.Ft void
|
||||
.Fn com_err "const char *whoami" "long code" "const char *format" "..."
|
||||
.Ft void
|
||||
.Fn com_err_va "const char *whoami" "long code" "const char *format" "..."
|
||||
.Ft const char *
|
||||
.Fn error_message "long code"
|
||||
.Ft const char *
|
||||
.Fn error_table_name "int num"
|
||||
.Ft int
|
||||
.Fn init_error_table "const char **msgs" "long base" "int count"
|
||||
.Ft errf
|
||||
.Fn set_com_err_hook "errf func"
|
||||
.Ft errf
|
||||
.Fn reset_com_err_hook ""
|
||||
.Ft void
|
||||
.Fn add_to_error_table "struct et_list *new_table"
|
||||
.Ft void
|
||||
.Fn initialize_error_table_r "struct et_list **et_list" "const char **msgs" "int base" "long count"
|
||||
.Ft void
|
||||
.Fn free_error_table "struct et_list *"
|
||||
.Ft const char *
|
||||
.Fn com_right "struct et_list *list" long code"
|
||||
.Sh DESCRIPTION
|
||||
The
|
||||
.Nm
|
||||
library provides a common error-reporting mechanism for defining and
|
||||
accessing error codes and descriptions for application software
|
||||
packages. Error descriptions are defined in a table and error codes
|
||||
are used to index the table. The error table, the descriptions and
|
||||
the error codes are generated using
|
||||
.Xr compile_et 1 .
|
||||
.Pp
|
||||
The error table is registered with the
|
||||
.Nm
|
||||
library by calling its initialisation function defined in its header
|
||||
file. The initialisation function is generally defined as
|
||||
.Fn initialize_<name>_error_table ,
|
||||
where
|
||||
.Em name
|
||||
is the name of the error table.
|
||||
.Pp
|
||||
If a thread-safe version of the library is needed
|
||||
.Fn initialize_<name>_error_table_r
|
||||
that internally calls
|
||||
.Fn initialize_error_table_r
|
||||
instead be used.
|
||||
.Pp
|
||||
Any variable which is to contain an error code should be declared
|
||||
.Em <name>_error_number
|
||||
where
|
||||
.Em name
|
||||
is the name of the error table.
|
||||
.Sh FUNCTIONS
|
||||
The following functions are available to the application developer:
|
||||
.Bl -tag -width compact
|
||||
.It Fn com_err "whoami" "code" "format" "..."
|
||||
Displays an error message on standard error composed of the
|
||||
.Fa whoami
|
||||
string, which should specify the program name, followed by an error
|
||||
message generated from
|
||||
.Fa code ,
|
||||
and a string produced using the
|
||||
.I format
|
||||
string and any following arguments, in the same style as
|
||||
.IR fprintf (3).
|
||||
.Xr printf 3
|
||||
.Fa format
|
||||
string and any following arguments. If
|
||||
.Fa format
|
||||
is NULL, the formatted message will not be
|
||||
printed. The argument
|
||||
.Fa format
|
||||
may not be omitted.
|
||||
.It Fn com_err_va "whoami" "code" "format" "va_list args"
|
||||
This routine provides an interface, equivalent to
|
||||
.Fn com_err ,
|
||||
which may be used by higher-level variadic functions (functions which
|
||||
accept variable numbers of arguments).
|
||||
.It Fn error_message "code"
|
||||
Returns the character string error message associate with
|
||||
.Fa code .
|
||||
If
|
||||
.Fa code is associated with an unknown error table, or if
|
||||
.Fa code
|
||||
is associated with a known error table but is not in the table, a
|
||||
string of the form `Unknown code XXXX NN' is returned, where XXXX is
|
||||
the error table name produced by reversing the compaction performed on
|
||||
the error table number implied by that error code, and NN is the
|
||||
offset from that base value.
|
||||
.Pp
|
||||
Although this routine is available for use when needed, its use should
|
||||
be left to circumstances which render
|
||||
.Fn com_err
|
||||
unusable.
|
||||
.Pp
|
||||
.Fn com_right
|
||||
returns the error string just like
|
||||
.Fa com_err
|
||||
but in a thread-safe way.
|
||||
.Pp
|
||||
.It Fn error_table_name "num"
|
||||
Convert a machine-independent error table number
|
||||
.Fa num
|
||||
into an error table name.
|
||||
.It Fn init_error_table "msgs" "base" "count"
|
||||
Initialise the internal error table with the array of character string
|
||||
error messages in
|
||||
.Fa msgs
|
||||
of length
|
||||
.Fa count .
|
||||
The error codes are assigned incrementally from
|
||||
.Fa base .
|
||||
This function is useful for using the error-reporting mechanism with
|
||||
custom error tables that have not been generated with
|
||||
.Xr compile_et 1 .
|
||||
Although this routine is available for use when needed, its use should
|
||||
be restricted.
|
||||
.Pp
|
||||
.Fn initialize_error_table_r
|
||||
initialize the
|
||||
.Fa et_list
|
||||
in the same way as
|
||||
.Fn init_error_table ,
|
||||
but in a thread-safe way.
|
||||
.Pp
|
||||
.It Fn set_com_err_hook "func"
|
||||
Provides a hook into the
|
||||
.Nm
|
||||
library to allow the routine
|
||||
.Fa func
|
||||
to be dynamically substituted for
|
||||
.Fn com_err .
|
||||
After
|
||||
.Fn set_com_err_hook
|
||||
has been called, calls to
|
||||
.Fn com_err
|
||||
will turn into calls to the new hook routine. This function is
|
||||
intended to be used in daemons to use a routine which calls
|
||||
.Xr syslog 3 ,
|
||||
or in a window system application to pop up a dialogue box.
|
||||
.It Fn reset_com_err_hook ""
|
||||
Turns off the hook set in
|
||||
.Fn set_com_err_hook .
|
||||
.It Fn add_to_error_table "new_table"
|
||||
Add the error table, its messages strings and error codes in
|
||||
.Fa new_table
|
||||
to the internal error table.
|
||||
.El
|
||||
.Sh EXAMPLES
|
||||
The following is an example using the table defined in
|
||||
.Xr compile_et 1 :
|
||||
.Pp
|
||||
.Bd -literal
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
#include <syslog.h>
|
||||
|
||||
The behavior of
|
||||
.I com_err
|
||||
can be modified using
|
||||
.I set_com_err_hook;
|
||||
this defines a procedure which is called with the arguments passed to
|
||||
.I com_err,
|
||||
instead of the default internal procedure which sends the formatted
|
||||
text to error output. Thus the error messages from a program can all
|
||||
easily be diverted to another form of diagnostic logging, such as
|
||||
.IR syslog (3).
|
||||
.I Reset_com_err_hook
|
||||
may be used to restore the behavior of
|
||||
.I com_err
|
||||
to its default form. Both procedures return the previous ``hook''
|
||||
value. These ``hook'' procedures must have the declaration given for
|
||||
.I proc
|
||||
above in the synopsis.
|
||||
#include "test_err.h"
|
||||
|
||||
The
|
||||
.I initialize_XXXX_error_table
|
||||
routine is generated mechanically by
|
||||
.IR compile_et (1)
|
||||
from a source file containing names and associated strings. Each
|
||||
table has a name of up to four characters, which is used in place of
|
||||
the
|
||||
.B XXXX
|
||||
in the name of the routine. These routines should be called before
|
||||
any of the corresponding error codes are used, so that the
|
||||
.I com_err
|
||||
library will recognize error codes from these tables when they are
|
||||
used.
|
||||
void
|
||||
hook(const char *whoami, long code,
|
||||
const char *format, va_list args)
|
||||
{
|
||||
char buffer[BUFSIZ];
|
||||
static int initialized = 0;
|
||||
|
||||
The
|
||||
.B com_err.h
|
||||
header file should be included in any source file that uses routines
|
||||
from the
|
||||
.I com_err
|
||||
library; executable files must be linked using
|
||||
.I ``-lcom_err''
|
||||
in order to cause the
|
||||
.I com_err
|
||||
library to be included.
|
||||
if (!initialized) {
|
||||
openlog(whoami, LOG_NOWAIT, LOG_DAEMON);
|
||||
initialized = 1;
|
||||
}
|
||||
vsprintf(buffer, format, args);
|
||||
syslog(LOG_ERR, "%s %s", error_message(code), buffer);
|
||||
}
|
||||
|
||||
.\" .IR for manual entries
|
||||
.\" .PP for paragraph breaks
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
char *whoami = argv[0];
|
||||
|
||||
.SH "SEE ALSO"
|
||||
compile_et (1), syslog (3).
|
||||
|
||||
Ken Raeburn, "A Common Error Description Library for UNIX".
|
||||
initialize_test_error_table();
|
||||
com_err(whoami, TEST_INVAL, "before hook");
|
||||
set_com_err_hook(hook);
|
||||
com_err(whoami, TEST_IO, "after hook");
|
||||
return (0);
|
||||
}
|
||||
.Ed
|
||||
.Sh SEE ALSO
|
||||
.Xr compile_et 1
|
||||
|
|
|
|||
|
|
@ -1,41 +1,37 @@
|
|||
/*
|
||||
* Copyright (c) 1997 - 2002 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997 - 2002 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.
|
||||
*/
|
||||
/* $FreeBSD$ */
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
RCSID("$Id: com_err.c 14930 2005-04-24 19:43:06Z lha $");
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
|
@ -44,7 +40,7 @@ RCSID("$Id: com_err.c 14930 2005-04-24 19:43:06Z lha $");
|
|||
struct et_list *_et_list = NULL;
|
||||
|
||||
|
||||
const char *
|
||||
KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
|
||||
error_message (long code)
|
||||
{
|
||||
static char msg[128];
|
||||
|
|
@ -57,23 +53,23 @@ error_message (long code)
|
|||
}
|
||||
if (p != NULL && *p != '\0') {
|
||||
strlcpy(msg, p, sizeof(msg));
|
||||
} else
|
||||
} else
|
||||
snprintf(msg, sizeof(msg), "Unknown error %ld", code);
|
||||
return msg;
|
||||
}
|
||||
|
||||
int
|
||||
KRB5_LIB_FUNCTION int KRB5_LIB_CALL
|
||||
init_error_table(const char **msgs, long base, int count)
|
||||
{
|
||||
initialize_error_table_r(&_et_list, msgs, count, base);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void
|
||||
static void KRB5_CALLCONV
|
||||
default_proc (const char *whoami, long code, const char *fmt, va_list args)
|
||||
__attribute__((__format__(__printf__, 3, 0)));
|
||||
|
||||
static void
|
||||
|
||||
static void KRB5_CALLCONV
|
||||
default_proc (const char *whoami, long code, const char *fmt, va_list args)
|
||||
{
|
||||
if (whoami)
|
||||
|
|
@ -87,19 +83,19 @@ default_proc (const char *whoami, long code, const char *fmt, va_list args)
|
|||
|
||||
static errf com_err_hook = default_proc;
|
||||
|
||||
void
|
||||
com_err_va (const char *whoami,
|
||||
long code,
|
||||
const char *fmt,
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
com_err_va (const char *whoami,
|
||||
long code,
|
||||
const char *fmt,
|
||||
va_list args)
|
||||
{
|
||||
(*com_err_hook) (whoami, code, fmt, args);
|
||||
}
|
||||
|
||||
void
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
com_err (const char *whoami,
|
||||
long code,
|
||||
const char *fmt,
|
||||
const char *fmt,
|
||||
...)
|
||||
{
|
||||
va_list ap;
|
||||
|
|
@ -108,7 +104,7 @@ com_err (const char *whoami,
|
|||
va_end(ap);
|
||||
}
|
||||
|
||||
errf
|
||||
KRB5_LIB_FUNCTION errf KRB5_LIB_CALL
|
||||
set_com_err_hook (errf new)
|
||||
{
|
||||
errf old = com_err_hook;
|
||||
|
|
@ -117,12 +113,12 @@ set_com_err_hook (errf new)
|
|||
com_err_hook = new;
|
||||
else
|
||||
com_err_hook = default_proc;
|
||||
|
||||
|
||||
return old;
|
||||
}
|
||||
|
||||
errf
|
||||
reset_com_err_hook (void)
|
||||
KRB5_LIB_FUNCTION errf KRB5_LIB_CALL
|
||||
reset_com_err_hook (void)
|
||||
{
|
||||
return set_com_err_hook(NULL);
|
||||
}
|
||||
|
|
@ -135,7 +131,7 @@ static const char char_set[] =
|
|||
|
||||
static char buf[6];
|
||||
|
||||
const char *
|
||||
KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
|
||||
error_table_name(int num)
|
||||
{
|
||||
int ch;
|
||||
|
|
@ -157,7 +153,7 @@ error_table_name(int num)
|
|||
return(buf);
|
||||
}
|
||||
|
||||
void
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
add_to_error_table(struct et_list *new_table)
|
||||
{
|
||||
struct et_list *et;
|
||||
|
|
|
|||
|
|
@ -1,66 +1,76 @@
|
|||
/*
|
||||
* Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997 - 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:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that 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.
|
||||
*/
|
||||
|
||||
/* $FreeBSD$ */
|
||||
/* $Id: com_err.h 15566 2005-07-07 14:58:07Z lha $ */
|
||||
/* $Id$ */
|
||||
|
||||
/* MIT compatible com_err library */
|
||||
|
||||
#ifndef __COM_ERR_H__
|
||||
#define __COM_ERR_H__
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <com_right.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
typedef void (*errf) __P((const char *, long, const char *, va_list));
|
||||
#if !defined(__GNUC__) && !defined(__attribute__)
|
||||
#define __attribute__(X)
|
||||
#endif
|
||||
|
||||
const char * error_message (long);
|
||||
int init_error_table (const char**, long, int);
|
||||
typedef void (KRB5_CALLCONV *errf) (const char *, long, const char *, va_list);
|
||||
|
||||
void com_err_va __P((const char *, long, const char *, va_list))
|
||||
__printflike(3, 0);
|
||||
KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
|
||||
error_message (long);
|
||||
|
||||
void com_err __P((const char *, long, const char *, ...))
|
||||
__printflike(3, 4);
|
||||
KRB5_LIB_FUNCTION int KRB5_LIB_CALL
|
||||
init_error_table (const char**, long, int);
|
||||
|
||||
errf set_com_err_hook (errf);
|
||||
errf reset_com_err_hook (void);
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
com_err_va (const char *, long, const char *, va_list)
|
||||
__attribute__((format(printf, 3, 0)));
|
||||
|
||||
const char *error_table_name (int num);
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
com_err (const char *, long, const char *, ...)
|
||||
__attribute__((format(printf, 3, 4)));
|
||||
|
||||
void add_to_error_table (struct et_list *new_table);
|
||||
KRB5_LIB_FUNCTION errf KRB5_LIB_CALL
|
||||
set_com_err_hook (errf);
|
||||
|
||||
KRB5_LIB_FUNCTION errf KRB5_LIB_CALL
|
||||
reset_com_err_hook (void);
|
||||
|
||||
KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
|
||||
error_table_name (int num);
|
||||
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
add_to_error_table (struct et_list *new_table);
|
||||
|
||||
#endif /* __COM_ERR_H__ */
|
||||
|
|
|
|||
|
|
@ -1,44 +1,76 @@
|
|||
/*
|
||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997 - 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: com_right.h 14551 2005-02-03 08:45:13Z lha $ */
|
||||
/* $FreeBSD$ */
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef __COM_RIGHT_H__
|
||||
#define __COM_RIGHT_H__
|
||||
|
||||
#ifndef KRB5_LIB_FUNCTION
|
||||
#if defined(_WIN32)
|
||||
#define KRB5_LIB_FUNCTION __declspec(dllimport)
|
||||
#else
|
||||
#define KRB5_LIB_FUNCTION
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef KRB5_LIB_CALL
|
||||
#if defined(_WIN32)
|
||||
#define KRB5_LIB_CALL __stdcall
|
||||
#else
|
||||
#define KRB5_LIB_CALL
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef KRB5_LIB_VARIABLE
|
||||
#if defined(_WIN32)
|
||||
#define KRB5_LIB_VARIABLE __declspec(dllimport)
|
||||
#else
|
||||
#define KRB5_LIB_VARIABLE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
#define KRB5_CALLCONV __stdcall
|
||||
#else
|
||||
#define KRB5_CALLCONV
|
||||
#endif
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
#ifdef __STDC__
|
||||
#include <stdarg.h>
|
||||
#endif
|
||||
|
||||
struct error_table {
|
||||
char const * const * msgs;
|
||||
|
|
@ -51,8 +83,16 @@ struct et_list {
|
|||
};
|
||||
extern struct et_list *_et_list;
|
||||
|
||||
const char *com_right (struct et_list *list, long code);
|
||||
void initialize_error_table_r (struct et_list **, const char **, int, long);
|
||||
void free_error_table (struct et_list *);
|
||||
KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
|
||||
com_right (struct et_list *list, long code);
|
||||
|
||||
KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
|
||||
com_right_r (struct et_list *list, long code, char *, size_t);
|
||||
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
initialize_error_table_r (struct et_list **, const char **, int, long);
|
||||
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
free_error_table (struct et_list *);
|
||||
|
||||
#endif /* __COM_RIGHT_H__ */
|
||||
|
|
|
|||
|
|
@ -1,45 +1,44 @@
|
|||
/*
|
||||
* Copyright (c) 1998-2002 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1998-2002 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.
|
||||
*/
|
||||
/* $FreeBSD$ */
|
||||
|
||||
#undef ROKEN_RENAME
|
||||
|
||||
#define rk_PATH_DELIM '/'
|
||||
|
||||
#include "compile_et.h"
|
||||
#include <getarg.h>
|
||||
|
||||
#if 0
|
||||
RCSID("$Id: compile_et.c 15426 2005-06-16 19:21:42Z lha $");
|
||||
#endif
|
||||
|
||||
#include <roken.h>
|
||||
#include <err.h>
|
||||
#include "parse.h"
|
||||
|
||||
|
|
@ -77,13 +76,15 @@ generate_c(void)
|
|||
return 1;
|
||||
|
||||
fprintf(c_file, "/* Generated from %s */\n", filename);
|
||||
if(id_str)
|
||||
if(id_str)
|
||||
fprintf(c_file, "/* %s */\n", id_str);
|
||||
fprintf(c_file, "\n");
|
||||
fprintf(c_file, "#include <stddef.h>\n");
|
||||
fprintf(c_file, "#include <com_err.h>\n");
|
||||
fprintf(c_file, "#include \"%s\"\n", hfn);
|
||||
fprintf(c_file, "\n");
|
||||
fprintf(c_file, "#define N_(x) (x)\n");
|
||||
fprintf(c_file, "\n");
|
||||
|
||||
fprintf(c_file, "static const char *%s_error_strings[] = {\n", name);
|
||||
|
||||
|
|
@ -92,9 +93,10 @@ generate_c(void)
|
|||
fprintf(c_file, "\t/* %03d */ \"Reserved %s error (%d)\",\n",
|
||||
n, name, n);
|
||||
n++;
|
||||
|
||||
|
||||
}
|
||||
fprintf(c_file, "\t/* %03d */ \"%s\",\n", ec->number, ec->string);
|
||||
fprintf(c_file, "\t/* %03d */ N_(\"%s\"),\n",
|
||||
ec->number, ec->string);
|
||||
}
|
||||
|
||||
fprintf(c_file, "\tNULL\n");
|
||||
|
|
@ -102,11 +104,11 @@ generate_c(void)
|
|||
fprintf(c_file, "\n");
|
||||
fprintf(c_file, "#define num_errors %d\n", number);
|
||||
fprintf(c_file, "\n");
|
||||
fprintf(c_file,
|
||||
"void initialize_%s_error_table_r(struct et_list **list)\n",
|
||||
fprintf(c_file,
|
||||
"void initialize_%s_error_table_r(struct et_list **list)\n",
|
||||
name);
|
||||
fprintf(c_file, "{\n");
|
||||
fprintf(c_file,
|
||||
fprintf(c_file,
|
||||
" initialize_error_table_r(list, %s_error_strings, "
|
||||
"num_errors, ERROR_TABLE_BASE_%s);\n", name, name);
|
||||
fprintf(c_file, "}\n");
|
||||
|
|
@ -137,9 +139,9 @@ generate_h(void)
|
|||
for(p = fn; *p; p++)
|
||||
if(!isalnum((unsigned char)*p))
|
||||
*p = '_';
|
||||
|
||||
|
||||
fprintf(h_file, "/* Generated from %s */\n", filename);
|
||||
if(id_str)
|
||||
if(id_str)
|
||||
fprintf(h_file, "/* %s */\n", id_str);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#ifndef %s\n", fn);
|
||||
|
|
@ -147,18 +149,18 @@ generate_h(void)
|
|||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "struct et_list;\n");
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file,
|
||||
fprintf(h_file,
|
||||
"void initialize_%s_error_table_r(struct et_list **);\n",
|
||||
name);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "void initialize_%s_error_table(void);\n", name);
|
||||
fprintf(h_file, "#define init_%s_err_tbl initialize_%s_error_table\n",
|
||||
fprintf(h_file, "#define init_%s_err_tbl initialize_%s_error_table\n",
|
||||
name, name);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "typedef enum %s_error_number{\n", name);
|
||||
|
||||
for(ec = codes; ec; ec = ec->next) {
|
||||
fprintf(h_file, "\t%s = %ld%s\n", ec->name, base_id + ec->number,
|
||||
fprintf(h_file, "\t%s = %ld%s\n", ec->name, base_id + ec->number,
|
||||
(ec->next != NULL) ? "," : "");
|
||||
}
|
||||
|
||||
|
|
@ -166,6 +168,8 @@ generate_h(void)
|
|||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#define ERROR_TABLE_BASE_%s %ld\n", name, base_id);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#define COM_ERR_BINDDOMAIN_%s \"heim_com_err%ld\"\n", name, base_id);
|
||||
fprintf(h_file, "\n");
|
||||
fprintf(h_file, "#endif /* %s */\n", fn);
|
||||
|
||||
|
||||
|
|
@ -179,8 +183,10 @@ generate(void)
|
|||
return generate_c() || generate_h();
|
||||
}
|
||||
|
||||
int version_flag;
|
||||
int help_flag;
|
||||
struct getargs args[] = {
|
||||
{ "version", 0, arg_flag, &version_flag },
|
||||
{ "help", 0, arg_flag, &help_flag }
|
||||
};
|
||||
int num_args = sizeof(args) / sizeof(args[0]);
|
||||
|
|
@ -203,27 +209,31 @@ main(int argc, char **argv)
|
|||
usage(1);
|
||||
if(help_flag)
|
||||
usage(0);
|
||||
if(version_flag) {
|
||||
print_version(NULL);
|
||||
exit(0);
|
||||
}
|
||||
|
||||
if(optidx == argc)
|
||||
if(optidx == argc)
|
||||
usage(1);
|
||||
filename = argv[optidx];
|
||||
yyin = fopen(filename, "r");
|
||||
if(yyin == NULL)
|
||||
err(1, "%s", filename);
|
||||
|
||||
|
||||
p = strrchr(filename, '/');
|
||||
|
||||
|
||||
p = strrchr(filename, rk_PATH_DELIM);
|
||||
if(p)
|
||||
p++;
|
||||
else
|
||||
p = filename;
|
||||
strlcpy(Basename, p, sizeof(Basename));
|
||||
|
||||
|
||||
Basename[strcspn(Basename, ".")] = '\0';
|
||||
|
||||
|
||||
snprintf(hfn, sizeof(hfn), "%s.h", Basename);
|
||||
snprintf(cfn, sizeof(cfn), "%s.c", Basename);
|
||||
|
||||
|
||||
yyparse();
|
||||
if(numerror)
|
||||
return 1;
|
||||
|
|
|
|||
|
|
@ -1,46 +1,41 @@
|
|||
/*
|
||||
* 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: compile_et.h 15426 2005-06-16 19:21:42Z lha $ */
|
||||
/* $FreeBSD$ */
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef __COMPILE_ET_H__
|
||||
#define __COMPILE_ET_H__
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <err.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
|
|
|||
|
|
@ -1,52 +1,72 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 1998, 2001 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997, 1998, 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:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that 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: error.c 9724 2001-02-28 20:00:13Z joda $");
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <com_right.h>
|
||||
|
||||
const char *
|
||||
#ifdef LIBINTL
|
||||
#include <libintl.h>
|
||||
#else
|
||||
#define dgettext(d,s) (s)
|
||||
#endif
|
||||
|
||||
KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
|
||||
com_right(struct et_list *list, long code)
|
||||
{
|
||||
struct et_list *p;
|
||||
for (p = list; p; p = p->next) {
|
||||
for (p = list; p; p = p->next)
|
||||
if (code >= p->table->base && code < p->table->base + p->table->n_msgs)
|
||||
return p->table->msgs[code - p->table->base];
|
||||
return NULL;
|
||||
}
|
||||
|
||||
KRB5_LIB_FUNCTION const char * KRB5_LIB_CALL
|
||||
com_right_r(struct et_list *list, long code, char *str, size_t len)
|
||||
{
|
||||
struct et_list *p;
|
||||
for (p = list; p; p = p->next) {
|
||||
if (code >= p->table->base && code < p->table->base + p->table->n_msgs) {
|
||||
const char *msg = p->table->msgs[code - p->table->base];
|
||||
#ifdef LIBINTL
|
||||
char domain[12 + 20];
|
||||
snprintf(domain, sizeof(domain), "heim_com_err%d", p->table->base);
|
||||
#endif
|
||||
strlcpy(str, dgettext(domain, msg), len);
|
||||
return str;
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
@ -56,9 +76,9 @@ struct foobar {
|
|||
struct error_table et;
|
||||
};
|
||||
|
||||
void
|
||||
initialize_error_table_r(struct et_list **list,
|
||||
const char **messages,
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
initialize_error_table_r(struct et_list **list,
|
||||
const char **messages,
|
||||
int num_errors,
|
||||
long base)
|
||||
{
|
||||
|
|
@ -78,9 +98,9 @@ initialize_error_table_r(struct et_list **list,
|
|||
et->next = NULL;
|
||||
*end = et;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
|
||||
KRB5_LIB_FUNCTION void KRB5_LIB_CALL
|
||||
free_error_table(struct et_list *et)
|
||||
{
|
||||
while(et){
|
||||
|
|
|
|||
|
|
@ -1,379 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* 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.
|
||||
*
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
#if 0
|
||||
RCSID("$Id: getarg.c,v 1.25 1998/11/22 09:45:05 assar Exp $");
|
||||
#endif
|
||||
|
||||
#include <sys/ttycom.h>
|
||||
#include <time.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "getarg.h"
|
||||
|
||||
#define ISFLAG(X) ((X).type == arg_flag || (X).type == arg_negative_flag)
|
||||
|
||||
static size_t
|
||||
print_arg (char *string, size_t len, int mdoc, int longp, struct getargs *arg)
|
||||
{
|
||||
const char *s;
|
||||
|
||||
*string = '\0';
|
||||
|
||||
if (ISFLAG(*arg))
|
||||
return 0;
|
||||
|
||||
if(mdoc){
|
||||
if(longp)
|
||||
strncat(string, "= Ns", len);
|
||||
strncat(string, " Ar ", len);
|
||||
}else
|
||||
if (longp)
|
||||
strncat (string, "=", len);
|
||||
else
|
||||
strncat (string, " ", len);
|
||||
|
||||
if (arg->arg_help)
|
||||
s = arg->arg_help;
|
||||
else if (arg->type == arg_integer)
|
||||
s = "number";
|
||||
else if (arg->type == arg_string)
|
||||
s = "string";
|
||||
else
|
||||
s = "<undefined>";
|
||||
|
||||
strncat(string, s, len);
|
||||
return 1 + strlen(s);
|
||||
}
|
||||
|
||||
static int
|
||||
check_column(FILE *f, int col, int len, int columns)
|
||||
{
|
||||
if(col + len > columns) {
|
||||
fprintf(f, "\n");
|
||||
col = fprintf(f, " ");
|
||||
}
|
||||
return col;
|
||||
}
|
||||
|
||||
void
|
||||
arg_printusage (struct getargs *args,
|
||||
size_t num_args,
|
||||
const char *progname,
|
||||
const char *extra_string)
|
||||
{
|
||||
int i;
|
||||
size_t max_len = 0;
|
||||
char buf[128];
|
||||
int col = 0, columns;
|
||||
struct winsize ws;
|
||||
|
||||
columns = 80;
|
||||
col = 0;
|
||||
col += fprintf (stderr, "Usage: %s", progname);
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
size_t len = 0;
|
||||
|
||||
if (args[i].long_name) {
|
||||
buf[0] = '\0';
|
||||
strncat(buf, "[--", sizeof(buf));
|
||||
len += 2;
|
||||
if(args[i].type == arg_negative_flag) {
|
||||
strncat(buf, "no-", sizeof(buf));
|
||||
len += 3;
|
||||
}
|
||||
strncat(buf, args[i].long_name, sizeof(buf));
|
||||
len += strlen(args[i].long_name);
|
||||
len += print_arg(buf + strlen(buf), sizeof(buf) - strlen(buf),
|
||||
0, 1, &args[i]);
|
||||
strncat(buf, "]", sizeof(buf));
|
||||
if(args[i].type == arg_strings)
|
||||
strncat(buf, "...", sizeof(buf));
|
||||
col = check_column(stderr, col, strlen(buf) + 1, columns);
|
||||
col += fprintf(stderr, " %s", buf);
|
||||
}
|
||||
if (args[i].short_name) {
|
||||
snprintf(buf, sizeof(buf), "[-%c", args[i].short_name);
|
||||
len += 2;
|
||||
len += print_arg(buf + strlen(buf), sizeof(buf) - strlen(buf),
|
||||
0, 0, &args[i]);
|
||||
strncat(buf, "]", sizeof(buf));
|
||||
if(args[i].type == arg_strings)
|
||||
strncat(buf, "...", sizeof(buf));
|
||||
col = check_column(stderr, col, strlen(buf) + 1, columns);
|
||||
col += fprintf(stderr, " %s", buf);
|
||||
}
|
||||
if (args[i].long_name && args[i].short_name)
|
||||
len += 2; /* ", " */
|
||||
max_len = max(max_len, len);
|
||||
}
|
||||
if (extra_string) {
|
||||
col = check_column(stderr, col, strlen(extra_string) + 1, columns);
|
||||
fprintf (stderr, " %s\n", extra_string);
|
||||
} else
|
||||
fprintf (stderr, "\n");
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
if (args[i].help) {
|
||||
size_t count = 0;
|
||||
|
||||
if (args[i].short_name) {
|
||||
count += fprintf (stderr, "-%c", args[i].short_name);
|
||||
print_arg (buf, sizeof(buf), 0, 0, &args[i]);
|
||||
count += fprintf(stderr, "%s", buf);
|
||||
}
|
||||
if (args[i].short_name && args[i].long_name)
|
||||
count += fprintf (stderr, ", ");
|
||||
if (args[i].long_name) {
|
||||
count += fprintf (stderr, "--");
|
||||
if (args[i].type == arg_negative_flag)
|
||||
count += fprintf (stderr, "no-");
|
||||
count += fprintf (stderr, "%s", args[i].long_name);
|
||||
print_arg (buf, sizeof(buf), 0, 1, &args[i]);
|
||||
count += fprintf(stderr, "%s", buf);
|
||||
}
|
||||
while(count++ <= max_len)
|
||||
putc (' ', stderr);
|
||||
fprintf (stderr, "%s\n", args[i].help);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
add_string(getarg_strings *s, char *value)
|
||||
{
|
||||
s->strings = realloc(s->strings, (s->num_strings + 1) * sizeof(*s->strings));
|
||||
s->strings[s->num_strings] = value;
|
||||
s->num_strings++;
|
||||
}
|
||||
|
||||
static int
|
||||
arg_match_long(struct getargs *args, size_t num_args,
|
||||
char *argv)
|
||||
{
|
||||
int i;
|
||||
char *optarg = NULL;
|
||||
int negate = 0;
|
||||
int partial_match = 0;
|
||||
struct getargs *partial = NULL;
|
||||
struct getargs *current = NULL;
|
||||
int argv_len;
|
||||
char *p;
|
||||
|
||||
argv_len = strlen(argv);
|
||||
p = strchr (argv, '=');
|
||||
if (p != NULL)
|
||||
argv_len = p - argv;
|
||||
|
||||
for (i = 0; i < num_args; ++i) {
|
||||
if(args[i].long_name) {
|
||||
int len = strlen(args[i].long_name);
|
||||
char *p = argv;
|
||||
int p_len = argv_len;
|
||||
negate = 0;
|
||||
|
||||
for (;;) {
|
||||
if (strncmp (args[i].long_name, p, p_len) == 0) {
|
||||
if(p_len == len)
|
||||
current = &args[i];
|
||||
else {
|
||||
++partial_match;
|
||||
partial = &args[i];
|
||||
}
|
||||
optarg = p + p_len;
|
||||
} else if (ISFLAG(args[i]) && strncmp (p, "no-", 3) == 0) {
|
||||
negate = !negate;
|
||||
p += 3;
|
||||
p_len -= 3;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (current)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (current == NULL) {
|
||||
if (partial_match == 1)
|
||||
current = partial;
|
||||
else
|
||||
return ARG_ERR_NO_MATCH;
|
||||
}
|
||||
|
||||
if(*optarg == '\0' && !ISFLAG(*current))
|
||||
return ARG_ERR_NO_MATCH;
|
||||
switch(current->type){
|
||||
case arg_integer:
|
||||
{
|
||||
int tmp;
|
||||
if(sscanf(optarg + 1, "%d", &tmp) != 1)
|
||||
return ARG_ERR_BAD_ARG;
|
||||
*(int*)current->value = tmp;
|
||||
return 0;
|
||||
}
|
||||
case arg_string:
|
||||
{
|
||||
*(char**)current->value = optarg + 1;
|
||||
return 0;
|
||||
}
|
||||
case arg_strings:
|
||||
{
|
||||
add_string((getarg_strings*)current->value, optarg + 1);
|
||||
return 0;
|
||||
}
|
||||
case arg_flag:
|
||||
case arg_negative_flag:
|
||||
{
|
||||
int *flag = current->value;
|
||||
if(*optarg == '\0' ||
|
||||
strcmp(optarg + 1, "yes") == 0 ||
|
||||
strcmp(optarg + 1, "true") == 0){
|
||||
*flag = !negate;
|
||||
return 0;
|
||||
} else if (*optarg && strcmp(optarg + 1, "maybe") == 0) {
|
||||
*flag = rand() & 1;
|
||||
} else {
|
||||
*flag = negate;
|
||||
return 0;
|
||||
}
|
||||
return ARG_ERR_BAD_ARG;
|
||||
}
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
getarg(struct getargs *args, size_t num_args,
|
||||
int argc, char **argv, int *optind)
|
||||
{
|
||||
int i, j, k;
|
||||
int ret = 0;
|
||||
|
||||
srand (time(NULL));
|
||||
(*optind)++;
|
||||
for(i = *optind; i < argc; i++) {
|
||||
if(argv[i][0] != '-')
|
||||
break;
|
||||
if(argv[i][1] == '-'){
|
||||
if(argv[i][2] == 0){
|
||||
i++;
|
||||
break;
|
||||
}
|
||||
ret = arg_match_long (args, num_args, argv[i] + 2);
|
||||
if(ret)
|
||||
return ret;
|
||||
}else{
|
||||
for(j = 1; argv[i][j]; j++) {
|
||||
for(k = 0; k < num_args; k++) {
|
||||
char *optarg;
|
||||
if(args[k].short_name == 0)
|
||||
continue;
|
||||
if(argv[i][j] == args[k].short_name){
|
||||
if(args[k].type == arg_flag){
|
||||
*(int*)args[k].value = 1;
|
||||
break;
|
||||
}
|
||||
if(args[k].type == arg_negative_flag){
|
||||
*(int*)args[k].value = 0;
|
||||
break;
|
||||
}
|
||||
if(argv[i][j + 1])
|
||||
optarg = &argv[i][j + 1];
|
||||
else{
|
||||
i++;
|
||||
optarg = argv[i];
|
||||
}
|
||||
if(optarg == NULL)
|
||||
return ARG_ERR_NO_ARG;
|
||||
if(args[k].type == arg_integer){
|
||||
int tmp;
|
||||
if(sscanf(optarg, "%d", &tmp) != 1)
|
||||
return ARG_ERR_BAD_ARG;
|
||||
*(int*)args[k].value = tmp;
|
||||
goto out;
|
||||
}else if(args[k].type == arg_string){
|
||||
*(char**)args[k].value = optarg;
|
||||
goto out;
|
||||
}else if(args[k].type == arg_strings){
|
||||
add_string((getarg_strings*)args[k].value, optarg);
|
||||
goto out;
|
||||
}
|
||||
return ARG_ERR_BAD_ARG;
|
||||
}
|
||||
|
||||
}
|
||||
if (k == num_args)
|
||||
return ARG_ERR_NO_MATCH;
|
||||
}
|
||||
out:;
|
||||
}
|
||||
}
|
||||
*optind = i;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if TEST
|
||||
int foo_flag = 2;
|
||||
int flag1 = 0;
|
||||
int flag2 = 0;
|
||||
int bar_int;
|
||||
char *baz_string;
|
||||
|
||||
struct getargs args[] = {
|
||||
{ NULL, '1', arg_flag, &flag1, "one", NULL },
|
||||
{ NULL, '2', arg_flag, &flag2, "two", NULL },
|
||||
{ "foo", 'f', arg_negative_flag, &foo_flag, "foo", NULL },
|
||||
{ "bar", 'b', arg_integer, &bar_int, "bar", "seconds"},
|
||||
{ "baz", 'x', arg_string, &baz_string, "baz", "name" },
|
||||
};
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int optind = 0;
|
||||
while(getarg(args, 5, argc, argv, &optind))
|
||||
printf("Bad arg: %s\n", argv[optind]);
|
||||
printf("flag1 = %d\n", flag1);
|
||||
printf("flag2 = %d\n", flag2);
|
||||
printf("foo_flag = %d\n", foo_flag);
|
||||
printf("bar_int = %d\n", bar_int);
|
||||
printf("baz_flag = %s\n", baz_string);
|
||||
arg_printusage (args, 5, argv[0], "nothing here");
|
||||
}
|
||||
#endif
|
||||
|
|
@ -1,76 +0,0 @@
|
|||
/*
|
||||
* Copyright (c) 1997 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
*
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by Kungliga Tekniska
|
||||
* Högskolan and its contributors.
|
||||
*
|
||||
* 4. Neither the name of the Institute nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: getarg.h,v 1.5 1998/08/18 20:26:11 assar Exp $ */
|
||||
|
||||
#ifndef __GETARG_H__
|
||||
#define __GETARG_H__
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
#define max(a,b) (((a)>(b))?(a):(b))
|
||||
|
||||
struct getargs{
|
||||
const char *long_name;
|
||||
char short_name;
|
||||
enum { arg_integer, arg_string, arg_flag, arg_negative_flag, arg_strings } type;
|
||||
void *value;
|
||||
const char *help;
|
||||
const char *arg_help;
|
||||
};
|
||||
|
||||
enum {
|
||||
ARG_ERR_NO_MATCH = 1,
|
||||
ARG_ERR_BAD_ARG,
|
||||
ARG_ERR_NO_ARG
|
||||
};
|
||||
|
||||
typedef struct getarg_strings {
|
||||
int num_strings;
|
||||
char **strings;
|
||||
} getarg_strings;
|
||||
|
||||
int getarg(struct getargs *args, size_t num_args,
|
||||
int argc, char **argv, int *optind);
|
||||
|
||||
void arg_printusage (struct getargs *args,
|
||||
size_t num_args,
|
||||
const char *progname,
|
||||
const char *extra_string);
|
||||
|
||||
#endif /* __GETARG_H__ */
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,39 +1,39 @@
|
|||
/*
|
||||
* Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1997 - 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: lex.h 8451 2000-06-22 00:42:52Z assar $ */
|
||||
/* $Id$ */
|
||||
|
||||
void error_message (const char *, ...)
|
||||
void _lex_error_message (const char *, ...)
|
||||
__attribute__ ((format (printf, 1, 2)));
|
||||
|
||||
int yylex(void);
|
||||
|
|
|
|||
|
|
@ -1,37 +1,36 @@
|
|||
%{
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
/* $FreeBSD$ */
|
||||
|
||||
/*
|
||||
* This is to handle the definition of this symbol in some AIX
|
||||
|
|
@ -45,10 +44,6 @@
|
|||
#include "parse.h"
|
||||
#include "lex.h"
|
||||
|
||||
#if 0
|
||||
RCSID("$Id: lex.l 15143 2005-05-16 08:52:54Z lha $");
|
||||
#endif
|
||||
|
||||
static unsigned lineno = 1;
|
||||
static int getstring(void);
|
||||
|
||||
|
|
@ -58,6 +53,7 @@ static int getstring(void);
|
|||
|
||||
%}
|
||||
|
||||
%option nounput
|
||||
|
||||
%%
|
||||
et { return ET; }
|
||||
|
|
@ -79,7 +75,7 @@ end { return END; }
|
|||
|
||||
#ifndef yywrap /* XXX */
|
||||
int
|
||||
yywrap ()
|
||||
yywrap ()
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -99,7 +95,7 @@ getstring(void)
|
|||
continue;
|
||||
}
|
||||
if(c == '\n'){
|
||||
error_message("unterminated string");
|
||||
_lex_error_message("unterminated string");
|
||||
lineno++;
|
||||
break;
|
||||
}
|
||||
|
|
@ -119,7 +115,7 @@ getstring(void)
|
|||
}
|
||||
|
||||
void
|
||||
error_message (const char *format, ...)
|
||||
_lex_error_message (const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,81 +0,0 @@
|
|||
/* A Bison parser, made by GNU Bison 2.3. */
|
||||
|
||||
/* Skeleton interface for Bison's Yacc-like parsers in C
|
||||
|
||||
Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2, or (at your option)
|
||||
any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
||||
Boston, MA 02110-1301, USA. */
|
||||
|
||||
/* As a special exception, you may create a larger work that contains
|
||||
part or all of the Bison parser skeleton and distribute that work
|
||||
under terms of your choice, so long as that work isn't itself a
|
||||
parser generator using the skeleton or a modified version thereof
|
||||
as a parser skeleton. Alternatively, if you modify or redistribute
|
||||
the parser skeleton itself, you may (at your option) remove this
|
||||
special exception, which will cause the skeleton and the resulting
|
||||
Bison output files to be licensed under the GNU General Public
|
||||
License without this special exception.
|
||||
|
||||
This special exception was added by the Free Software Foundation in
|
||||
version 2.2 of Bison. */
|
||||
|
||||
/* Tokens. */
|
||||
#ifndef YYTOKENTYPE
|
||||
# define YYTOKENTYPE
|
||||
/* Put the tokens into the symbol table, so that GDB and other debuggers
|
||||
know about them. */
|
||||
enum yytokentype {
|
||||
ET = 258,
|
||||
INDEX = 259,
|
||||
PREFIX = 260,
|
||||
EC = 261,
|
||||
ID = 262,
|
||||
END = 263,
|
||||
STRING = 264,
|
||||
NUMBER = 265
|
||||
};
|
||||
#endif
|
||||
/* Tokens. */
|
||||
#define ET 258
|
||||
#define INDEX 259
|
||||
#define PREFIX 260
|
||||
#define EC 261
|
||||
#define ID 262
|
||||
#define END 263
|
||||
#define STRING 264
|
||||
#define NUMBER 265
|
||||
|
||||
|
||||
|
||||
|
||||
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
|
||||
typedef union YYSTYPE
|
||||
#line 53 "parse.y"
|
||||
{
|
||||
char *string;
|
||||
int number;
|
||||
}
|
||||
/* Line 1529 of yacc.c. */
|
||||
#line 74 "parse.h"
|
||||
YYSTYPE;
|
||||
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
|
||||
# define YYSTYPE_IS_DECLARED 1
|
||||
# define YYSTYPE_IS_TRIVIAL 1
|
||||
#endif
|
||||
|
||||
extern YYSTYPE yylval;
|
||||
|
||||
|
|
@ -1,43 +1,39 @@
|
|||
%{
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
/* $FreeBSD$ */
|
||||
|
||||
#include "compile_et.h"
|
||||
#include "lex.h"
|
||||
#if 0
|
||||
RCSID("$Id: parse.y 15426 2005-06-16 19:21:42Z lha $");
|
||||
#endif
|
||||
|
||||
void yyerror (char *s);
|
||||
static long name2number(const char *str);
|
||||
|
|
@ -50,6 +46,9 @@ extern char *yytext;
|
|||
#define alloca(x) malloc(x)
|
||||
#endif
|
||||
|
||||
#define YYMALLOC malloc
|
||||
#define YYFREE free
|
||||
|
||||
%}
|
||||
|
||||
%union {
|
||||
|
|
@ -63,7 +62,7 @@ extern char *yytext;
|
|||
|
||||
%%
|
||||
|
||||
file : /* */
|
||||
file : /* */
|
||||
| header statements
|
||||
;
|
||||
|
||||
|
|
@ -96,7 +95,7 @@ statements : statement
|
|||
| statements statement
|
||||
;
|
||||
|
||||
statement : INDEX NUMBER
|
||||
statement : INDEX NUMBER
|
||||
{
|
||||
number = $2;
|
||||
}
|
||||
|
|
@ -118,7 +117,7 @@ statement : INDEX NUMBER
|
|||
| EC STRING ',' STRING
|
||||
{
|
||||
struct error_code *ec = malloc(sizeof(*ec));
|
||||
|
||||
|
||||
if (ec == NULL)
|
||||
errx(1, "malloc");
|
||||
|
||||
|
|
@ -171,5 +170,5 @@ name2number(const char *str)
|
|||
void
|
||||
yyerror (char *s)
|
||||
{
|
||||
error_message ("%s\n", s);
|
||||
_lex_error_message ("%s\n", s);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,61 +1,61 @@
|
|||
/*
|
||||
* Copyright (c) 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1998 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that 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: roken_rename.h 14930 2005-04-24 19:43:06Z lha $ */
|
||||
/* $Id$ */
|
||||
|
||||
#ifndef __roken_rename_h__
|
||||
#define __roken_rename_h__
|
||||
|
||||
#ifndef HAVE_SNPRINTF
|
||||
#define snprintf _com_err_snprintf
|
||||
#define rk_snprintf _com_err_snprintf
|
||||
#endif
|
||||
#ifndef HAVE_VSNPRINTF
|
||||
#define vsnprintf _com_err_vsnprintf
|
||||
#define rk_vsnprintf _com_err_vsnprintf
|
||||
#endif
|
||||
#ifndef HAVE_ASPRINTF
|
||||
#define asprintf _com_err_asprintf
|
||||
#define rk_asprintf _com_err_asprintf
|
||||
#endif
|
||||
#ifndef HAVE_ASNPRINTF
|
||||
#define asnprintf _com_err_asnprintf
|
||||
#define rk_asnprintf _com_err_asnprintf
|
||||
#endif
|
||||
#ifndef HAVE_VASPRINTF
|
||||
#define vasprintf _com_err_vasprintf
|
||||
#define rk_vasprintf _com_err_vasprintf
|
||||
#endif
|
||||
#ifndef HAVE_VASNPRINTF
|
||||
#define vasnprintf _com_err_vasnprintf
|
||||
#define rk_vasnprintf _com_err_vasnprintf
|
||||
#endif
|
||||
#ifndef HAVE_STRLCPY
|
||||
#define strlcpy _com_err_strlcpy
|
||||
#define rk_strlcpy _com_err_strlcpy
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
HEIMDAL_COM_ERR_1.0 {
|
||||
global:
|
||||
com_right;
|
||||
com_right_r;
|
||||
free_error_table;
|
||||
initialize_error_table_r;
|
||||
add_to_error_table;
|
||||
|
|
@ -13,6 +14,7 @@ HEIMDAL_COM_ERR_1.0 {
|
|||
init_error_table;
|
||||
reset_com_err_hook;
|
||||
set_com_err_hook;
|
||||
_et_list;
|
||||
local:
|
||||
*;
|
||||
};
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -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
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
dnl $Id: acinclude.m4 13337 2004-02-12 14:19:16Z lha $
|
||||
dnl $FreeBSD$
|
||||
dnl $Id$
|
||||
dnl
|
||||
dnl Only put things that for some reason can't live in the `cf'
|
||||
dnl directory in this file.
|
||||
|
|
|
|||
6923
crypto/heimdal/aclocal.m4
vendored
6923
crypto/heimdal/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:
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,76 +1,52 @@
|
|||
/*
|
||||
* Copyright (c) 1998 - 2003 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* 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:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that 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: make-print-version.c 18765 2006-10-21 17:37:32Z lha $");
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef KRB5
|
||||
extern const char *heimdal_version;
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
extern const char *krb4_version;
|
||||
#endif
|
||||
#include <version.h>
|
||||
#include "ktutil_locl.h"
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
kt_destroy (void *opt, int argc, char **argv)
|
||||
{
|
||||
FILE *f;
|
||||
if(argc != 2)
|
||||
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;
|
||||
if (strcmp(argv[1], "--version") == 0) {
|
||||
printf("some version");
|
||||
return 0;
|
||||
}
|
||||
f = fopen(argv[1], "w");
|
||||
if(f == NULL)
|
||||
return 1;
|
||||
fprintf(f, "#define VERSIONLIST \"");
|
||||
#ifdef KRB5
|
||||
fprintf(f, "%s", heimdal_version);
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
#ifdef KRB5
|
||||
fprintf(f, ", ");
|
||||
#endif
|
||||
fprintf(f, "%s", krb4_version);
|
||||
#endif
|
||||
fprintf(f, "\"\n");
|
||||
fclose(f);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,47 +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 $
|
||||
* $FreeBSD$
|
||||
/*
|
||||
* $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>
|
||||
|
|
@ -67,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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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++;
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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 @@ LOOP:
|
|||
}
|
||||
}
|
||||
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 @@ noport:
|
|||
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 @@ noport:
|
|||
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 @@ bad:
|
|||
int
|
||||
initconn (void)
|
||||
{
|
||||
if (passivemode)
|
||||
if (passivemode)
|
||||
return passive_mode ();
|
||||
else
|
||||
return active_mode ();
|
||||
|
|
|
|||
|
|
@ -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,8 +31,7 @@
|
|||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
/* $Id: ftp_locl.h 11444 2002-09-10 20:03:49Z joda $ */
|
||||
/* $FreeBSD$ */
|
||||
/* $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 @@ next:
|
|||
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 @@ next:
|
|||
|
||||
case LOGIN:
|
||||
if (token()) {
|
||||
if (*aname == 0) {
|
||||
if (*aname == 0) {
|
||||
*aname = strdup(tokval);
|
||||
} else {
|
||||
if (strcmp(*aname, tokval))
|
||||
|
|
@ -199,7 +199,7 @@ next:
|
|||
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:
|
||||
|
|
|
|||
|
|
@ -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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 9:
|
||||
#line 171 "ftpcmd.y"
|
||||
#line 182 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(3) - (3)].i))
|
||||
pasv ();
|
||||
|
|
@ -1825,7 +1835,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 10:
|
||||
#line 176 "ftpcmd.y"
|
||||
#line 187 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(3) - (3)].i))
|
||||
epsv (NULL);
|
||||
|
|
@ -1833,7 +1843,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 12:
|
||||
#line 187 "ftpcmd.y"
|
||||
#line 198 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
switch (cmd_type) {
|
||||
|
|
@ -1882,7 +1892,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 17:
|
||||
#line 264 "ftpcmd.y"
|
||||
#line 275 "ftpcmd.y"
|
||||
{
|
||||
char *name = (yyvsp[(3) - (5)].s);
|
||||
|
||||
|
|
@ -1946,7 +1956,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 18:
|
||||
#line 273 "ftpcmd.y"
|
||||
#line 284 "ftpcmd.y"
|
||||
{
|
||||
char *name = (yyvsp[(3) - (5)].s);
|
||||
|
||||
|
|
@ -1958,7 +1968,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 19:
|
||||
#line 282 "ftpcmd.y"
|
||||
#line 293 "ftpcmd.y"
|
||||
{
|
||||
char *name = (yyvsp[(3) - (5)].s);
|
||||
|
||||
|
|
@ -1970,7 +1980,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 20:
|
||||
#line 291 "ftpcmd.y"
|
||||
#line 302 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
send_file_list(".");
|
||||
|
|
@ -1978,7 +1988,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 21:
|
||||
#line 296 "ftpcmd.y"
|
||||
#line 307 "ftpcmd.y"
|
||||
{
|
||||
char *name = (yyvsp[(3) - (5)].s);
|
||||
|
||||
|
|
@ -1990,7 +2000,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 22:
|
||||
#line 305 "ftpcmd.y"
|
||||
#line 316 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(3) - (3)].i))
|
||||
list_file(".");
|
||||
|
|
@ -1998,7 +2008,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 25:
|
||||
#line 323 "ftpcmd.y"
|
||||
#line 334 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
statcmd();
|
||||
|
|
@ -2025,7 +2035,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 27:
|
||||
#line 335 "ftpcmd.y"
|
||||
#line 346 "ftpcmd.y"
|
||||
{
|
||||
if((yyvsp[(5) - (5)].i)){
|
||||
if (fromname) {
|
||||
|
|
@ -2052,7 +2062,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 31:
|
||||
#line 366 "ftpcmd.y"
|
||||
#line 381 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
help(cmdtab, (char *) 0);
|
||||
|
|
@ -2086,7 +2100,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 36:
|
||||
#line 407 "ftpcmd.y"
|
||||
#line 422 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
pwd();
|
||||
|
|
@ -2142,7 +2156,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 37:
|
||||
#line 412 "ftpcmd.y"
|
||||
#line 427 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
cwd("..");
|
||||
|
|
@ -2150,7 +2164,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 38:
|
||||
#line 417 "ftpcmd.y"
|
||||
#line 432 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i)) {
|
||||
lreply(211, "Supported features:");
|
||||
|
|
@ -2163,7 +2177,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 39:
|
||||
#line 427 "ftpcmd.y"
|
||||
#line 442 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
reply(501, "Bad options");
|
||||
|
|
@ -2172,7 +2186,7 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 40:
|
||||
#line 434 "ftpcmd.y"
|
||||
#line 449 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
help(sitetab, (char *) 0);
|
||||
|
|
@ -2180,7 +2194,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 42:
|
||||
#line 444 "ftpcmd.y"
|
||||
#line 459 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
int oldmask = umask(0);
|
||||
|
|
@ -2199,7 +2213,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 45:
|
||||
#line 479 "ftpcmd.y"
|
||||
#line 494 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i))
|
||||
reply(200,
|
||||
|
|
@ -2242,7 +2256,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 59:
|
||||
#line 659 "ftpcmd.y"
|
||||
#line 641 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i)) {
|
||||
reply(221, "Goodbye.");
|
||||
|
|
@ -2445,14 +2426,14 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 62:
|
||||
#line 682 "ftpcmd.y"
|
||||
#line 664 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(5) - (5)].i)) {
|
||||
fromname = (char *) 0;
|
||||
|
|
@ -2478,7 +2459,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 67:
|
||||
#line 712 "ftpcmd.y"
|
||||
#line 694 "ftpcmd.y"
|
||||
{
|
||||
if ((yyvsp[(3) - (3)].i))
|
||||
ccc();
|
||||
|
|
@ -2518,7 +2499,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 81:
|
||||
#line 789 "ftpcmd.y"
|
||||
#line 771 "ftpcmd.y"
|
||||
{
|
||||
cmd_type = TYPE_E;
|
||||
cmd_form = FORM_N;
|
||||
|
|
@ -2606,7 +2587,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
break;
|
||||
|
||||
case 95:
|
||||
#line 884 "ftpcmd.y"
|
||||
#line 866 "ftpcmd.y"
|
||||
{
|
||||
int ret, dec, multby, digit;
|
||||
|
||||
|
|
@ -2741,7 +2722,7 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
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 @@ yyreduce:
|
|||
|
||||
|
||||
/* 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 @@ yyreturn:
|
|||
}
|
||||
|
||||
|
||||
#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 @@ done:
|
|||
|
||||
/* 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 @@ bad:
|
|||
}
|
||||
|
||||
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 @@ done:
|
|||
}
|
||||
|
||||
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 @@ out:
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,155 +1,75 @@
|
|||
/*
|
||||
* Copyright (c) 1998 - 2001 Kungliga Tekniska Högskolan
|
||||
* (Royal Institute of Technology, Stockholm, Sweden).
|
||||
* All rights reserved.
|
||||
* Copyright (c) 1998 - 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:
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that 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 "ftpd_locl.h"
|
||||
#include <gssapi.h>
|
||||
#include <krb5.h>
|
||||
|
||||
RCSID("$Id: gss_userok.c 21222 2007-06-20 10:11:14Z lha $");
|
||||
|
||||
/* XXX a bit too much of krb5 dependency here...
|
||||
What is the correct way to do this?
|
||||
*/
|
||||
|
||||
struct gss_krb5_data {
|
||||
krb5_context context;
|
||||
};
|
||||
#include <gssapi/gssapi.h>
|
||||
|
||||
/* XXX sync with gssapi.c */
|
||||
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;
|
||||
};
|
||||
|
||||
int gss_userok(void*, char*); /* to keep gcc happy */
|
||||
int gss_session(void*, char*); /* to keep gcc happy */
|
||||
int gssapi_userok(void*, char*); /* to keep gcc happy */
|
||||
int gssapi_session(void*, char*); /* to keep gcc happy */
|
||||
|
||||
int
|
||||
gss_userok(void *app_data, char *username)
|
||||
gssapi_userok(void *app_data, char *username)
|
||||
{
|
||||
struct gss_data *data = app_data;
|
||||
krb5_error_code ret;
|
||||
krb5_principal client;
|
||||
struct gss_krb5_data *kdata;
|
||||
struct gssapi_data *data = app_data;
|
||||
|
||||
kdata = calloc(1, sizeof(struct gss_krb5_data));
|
||||
if (kdata == NULL)
|
||||
return 1;
|
||||
data->mech_data = kdata;
|
||||
|
||||
ret = krb5_init_context(&(kdata->context));
|
||||
if (ret) {
|
||||
free(kdata);
|
||||
return 1;
|
||||
}
|
||||
|
||||
ret = krb5_parse_name(kdata->context, data->client_name, &client);
|
||||
if(ret) {
|
||||
krb5_free_context(kdata->context);
|
||||
free(kdata);
|
||||
return 1;
|
||||
}
|
||||
ret = krb5_kuserok(kdata->context, client, username);
|
||||
if (!ret) {
|
||||
krb5_free_principal(kdata->context, client);
|
||||
krb5_free_context(kdata->context);
|
||||
free(kdata);
|
||||
return 1;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
krb5_free_principal(kdata->context, client);
|
||||
return ret;
|
||||
/* Yes, this logic really is inverted. */
|
||||
return !gss_userok(data->client_name, username);
|
||||
}
|
||||
|
||||
int
|
||||
gss_session(void *app_data, char *username)
|
||||
gssapi_session(void *app_data, char *username)
|
||||
{
|
||||
struct gss_data *data = app_data;
|
||||
krb5_error_code ret;
|
||||
OM_uint32 minor_status;
|
||||
struct gss_krb5_data *kdata;
|
||||
struct gssapi_data *data = app_data;
|
||||
OM_uint32 major, minor;
|
||||
int ret = 0;
|
||||
|
||||
ret = 0;
|
||||
|
||||
kdata = (struct gss_krb5_data *)(data->mech_data);
|
||||
|
||||
/* more of krb-depend stuff :-( */
|
||||
/* gss_add_cred() ? */
|
||||
if (data->delegated_cred_handle != GSS_C_NO_CREDENTIAL) {
|
||||
krb5_ccache ccache = NULL;
|
||||
const char* ticketfile;
|
||||
struct passwd *kpw;
|
||||
|
||||
ret = krb5_cc_gen_new(kdata->context, &krb5_fcc_ops, &ccache);
|
||||
if (ret)
|
||||
goto fail;
|
||||
|
||||
ticketfile = krb5_cc_get_name(kdata->context, ccache);
|
||||
|
||||
ret = gss_krb5_copy_ccache(&minor_status,
|
||||
data->delegated_cred_handle,
|
||||
ccache);
|
||||
if (ret) {
|
||||
ret = 0;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
do_destroy_tickets = 1;
|
||||
|
||||
kpw = getpwnam(username);
|
||||
|
||||
if (kpw == NULL) {
|
||||
unlink(ticketfile);
|
||||
ret = 1;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
chown (ticketfile, kpw->pw_uid, kpw->pw_gid);
|
||||
|
||||
if (asprintf(&k5ccname, "FILE:%s", ticketfile) != -1) {
|
||||
esetenv ("KRB5CCNAME", k5ccname, 1);
|
||||
}
|
||||
major = gss_store_cred(&minor, data->delegated_cred_handle,
|
||||
GSS_C_INITIATE, GSS_C_NO_OID,
|
||||
1, 1, NULL, NULL);
|
||||
if (GSS_ERROR(major))
|
||||
ret = 1;
|
||||
afslog(NULL, 1);
|
||||
fail:
|
||||
if (ccache)
|
||||
krb5_cc_close(kdata->context, ccache);
|
||||
}
|
||||
|
||||
gss_release_cred(&minor_status, &data->delegated_cred_handle);
|
||||
krb5_free_context(kdata->context);
|
||||
free(kdata);
|
||||
|
||||
gss_release_cred(&minor, &data->delegated_cred_handle);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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, 2003 Kungliga Tekniska Högskolan
|
||||
* Copyright (c) 1995 - 1999, 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:
|
||||
*
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
*
|
||||
*
|
||||
* 2. Redistributions in binary form must reproduce 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
|
||||
|
|
@ -33,226 +33,15 @@
|
|||
|
||||
#include "ftpd_locl.h"
|
||||
|
||||
RCSID("$Id: kauth.c 15666 2005-07-19 17:08:11Z lha $");
|
||||
RCSID("$Id$");
|
||||
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
|
||||
int do_destroy_tickets = 1;
|
||||
char *k5ccname;
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef KRB4
|
||||
|
||||
static KTEXT_ST cip;
|
||||
static unsigned int lifetime;
|
||||
static time_t local_time;
|
||||
|
||||
static krb_principal pr;
|
||||
|
||||
static int
|
||||
save_tkt(const char *user,
|
||||
const char *instance,
|
||||
const char *realm,
|
||||
const void *arg,
|
||||
key_proc_t key_proc,
|
||||
KTEXT *cipp)
|
||||
{
|
||||
local_time = time(0);
|
||||
memmove(&cip, *cipp, sizeof(cip));
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int
|
||||
store_ticket(KTEXT cip)
|
||||
{
|
||||
char *ptr;
|
||||
des_cblock session;
|
||||
krb_principal sp;
|
||||
unsigned char kvno;
|
||||
KTEXT_ST tkt;
|
||||
int left = cip->length;
|
||||
int len;
|
||||
int kerror;
|
||||
|
||||
ptr = (char *) cip->dat;
|
||||
|
||||
/* extract session key */
|
||||
memmove(session, ptr, 8);
|
||||
ptr += 8;
|
||||
left -= 8;
|
||||
|
||||
len = strnlen(ptr, left);
|
||||
if (len == left)
|
||||
return(INTK_BADPW);
|
||||
|
||||
/* extract server's name */
|
||||
strlcpy(sp.name, ptr, sizeof(sp.name));
|
||||
ptr += len + 1;
|
||||
left -= len + 1;
|
||||
|
||||
len = strnlen(ptr, left);
|
||||
if (len == left)
|
||||
return(INTK_BADPW);
|
||||
|
||||
/* extract server's instance */
|
||||
strlcpy(sp.instance, ptr, sizeof(sp.instance));
|
||||
ptr += len + 1;
|
||||
left -= len + 1;
|
||||
|
||||
len = strnlen(ptr, left);
|
||||
if (len == left)
|
||||
return(INTK_BADPW);
|
||||
|
||||
/* extract server's realm */
|
||||
strlcpy(sp.realm, ptr, sizeof(sp.realm));
|
||||
ptr += len + 1;
|
||||
left -= len + 1;
|
||||
|
||||
if(left < 3)
|
||||
return INTK_BADPW;
|
||||
/* extract ticket lifetime, server key version, ticket length */
|
||||
/* be sure to avoid sign extension on lifetime! */
|
||||
lifetime = (unsigned char) ptr[0];
|
||||
kvno = (unsigned char) ptr[1];
|
||||
tkt.length = (unsigned char) ptr[2];
|
||||
ptr += 3;
|
||||
left -= 3;
|
||||
|
||||
if (tkt.length > left)
|
||||
return(INTK_BADPW);
|
||||
|
||||
/* extract ticket itself */
|
||||
memmove(tkt.dat, ptr, tkt.length);
|
||||
ptr += tkt.length;
|
||||
left -= tkt.length;
|
||||
|
||||
/* Here is where the time should be verified against the KDC.
|
||||
* Unfortunately everything is sent in host byte order (receiver
|
||||
* makes wrong) , and at this stage there is no way for us to know
|
||||
* which byteorder the KDC has. So we simply ignore the time,
|
||||
* there are no security risks with this, the only thing that can
|
||||
* happen is that we might receive a replayed ticket, which could
|
||||
* at most be useless.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
/* check KDC time stamp */
|
||||
{
|
||||
time_t kdc_time;
|
||||
|
||||
memmove(&kdc_time, ptr, sizeof(kdc_time));
|
||||
if (swap_bytes) swap_u_long(kdc_time);
|
||||
|
||||
ptr += 4;
|
||||
|
||||
if (abs((int)(local_time - kdc_time)) > CLOCK_SKEW) {
|
||||
return(RD_AP_TIME); /* XXX should probably be better
|
||||
code */
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* initialize ticket cache */
|
||||
|
||||
if (tf_create(TKT_FILE) != KSUCCESS)
|
||||
return(INTK_ERR);
|
||||
|
||||
if (tf_put_pname(pr.name) != KSUCCESS ||
|
||||
tf_put_pinst(pr.instance) != KSUCCESS) {
|
||||
tf_close();
|
||||
return(INTK_ERR);
|
||||
}
|
||||
|
||||
|
||||
kerror = tf_save_cred(sp.name, sp.instance, sp.realm, session,
|
||||
lifetime, kvno, &tkt, local_time);
|
||||
tf_close();
|
||||
|
||||
return(kerror);
|
||||
}
|
||||
|
||||
void
|
||||
kauth(char *principal, char *ticket)
|
||||
{
|
||||
char *p;
|
||||
int ret;
|
||||
|
||||
if(get_command_prot() != prot_private) {
|
||||
reply(500, "Request denied (bad protection level)");
|
||||
return;
|
||||
}
|
||||
ret = krb_parse_name(principal, &pr);
|
||||
if(ret){
|
||||
reply(500, "Bad principal: %s.", krb_get_err_text(ret));
|
||||
return;
|
||||
}
|
||||
if(pr.realm[0] == 0)
|
||||
krb_get_lrealm(pr.realm, 1);
|
||||
|
||||
if(ticket){
|
||||
cip.length = base64_decode(ticket, &cip.dat);
|
||||
if(cip.length == -1){
|
||||
reply(500, "Failed to decode data.");
|
||||
return;
|
||||
}
|
||||
ret = store_ticket(&cip);
|
||||
if(ret){
|
||||
reply(500, "Kerberos error: %s.", krb_get_err_text(ret));
|
||||
memset(&cip, 0, sizeof(cip));
|
||||
return;
|
||||
}
|
||||
do_destroy_tickets = 1;
|
||||
|
||||
if(k_hasafs())
|
||||
krb_afslog(0, 0);
|
||||
reply(200, "Tickets will be destroyed on exit.");
|
||||
return;
|
||||
}
|
||||
|
||||
ret = krb_get_in_tkt (pr.name,
|
||||
pr.instance,
|
||||
pr.realm,
|
||||
KRB_TICKET_GRANTING_TICKET,
|
||||
pr.realm,
|
||||
DEFAULT_TKT_LIFE,
|
||||
NULL, save_tkt, NULL);
|
||||
if(ret != INTK_BADPW){
|
||||
reply(500, "Kerberos error: %s.", krb_get_err_text(ret));
|
||||
return;
|
||||
}
|
||||
if(base64_encode(cip.dat, cip.length, &p) < 0) {
|
||||
reply(500, "Out of memory while base64-encoding.");
|
||||
return;
|
||||
}
|
||||
reply(300, "P=%s T=%s", krb_unparse_name(&pr), p);
|
||||
free(p);
|
||||
memset(&cip, 0, sizeof(cip));
|
||||
}
|
||||
|
||||
|
||||
static char *
|
||||
short_date(int32_t dp)
|
||||
{
|
||||
char *cp;
|
||||
time_t t = (time_t)dp;
|
||||
|
||||
if (t == (time_t)(-1L)) return "*** Never *** ";
|
||||
cp = ctime(&t) + 4;
|
||||
cp[15] = '\0';
|
||||
return (cp);
|
||||
}
|
||||
|
||||
void
|
||||
krbtkfile(const char *tkfile)
|
||||
{
|
||||
do_destroy_tickets = 0;
|
||||
krb_set_tkt_string(tkfile);
|
||||
reply(200, "Using ticket file %s", tkfile);
|
||||
}
|
||||
|
||||
#endif /* KRB4 */
|
||||
|
||||
#ifdef KRB5
|
||||
|
||||
static void
|
||||
|
|
@ -261,7 +50,7 @@ dest_cc(void)
|
|||
krb5_context context;
|
||||
krb5_error_code ret;
|
||||
krb5_ccache id;
|
||||
|
||||
|
||||
ret = krb5_init_context(&context);
|
||||
if (ret == 0) {
|
||||
if (k5ccname)
|
||||
|
|
@ -278,7 +67,7 @@ dest_cc(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(KRB4) || defined(KRB5)
|
||||
#if defined(KRB5)
|
||||
|
||||
/*
|
||||
* Only destroy if we created the tickets
|
||||
|
|
@ -288,9 +77,6 @@ void
|
|||
cond_kdestroy(void)
|
||||
{
|
||||
if (do_destroy_tickets) {
|
||||
#if KRB4
|
||||
dest_tkt();
|
||||
#endif
|
||||
#if KRB5
|
||||
dest_cc();
|
||||
#endif
|
||||
|
|
@ -302,9 +88,6 @@ cond_kdestroy(void)
|
|||
void
|
||||
kdestroy(void)
|
||||
{
|
||||
#if KRB4
|
||||
dest_tkt();
|
||||
#endif
|
||||
#if KRB5
|
||||
dest_cc();
|
||||
#endif
|
||||
|
|
@ -336,9 +119,6 @@ afslog(const char *cell, int quiet)
|
|||
krb5_cc_close (context, id);
|
||||
krb5_free_context (context);
|
||||
}
|
||||
#endif
|
||||
#ifdef KRB4
|
||||
krb_afslog(cell, 0);
|
||||
#endif
|
||||
if (!quiet)
|
||||
reply(200, "afslog done");
|
||||
|
|
@ -357,4 +137,4 @@ afsunlog(void)
|
|||
|
||||
#else
|
||||
int ftpd_afslog_placeholder;
|
||||
#endif /* KRB4 || KRB5 */
|
||||
#endif /* KRB5 */
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -48,7 +48,7 @@ print_cred(krb5_context context, krb5_creds *cred)
|
|||
krb5_format_time(context, cred->times.starttime, t1, sizeof(t1), 1);
|
||||
else
|
||||
krb5_format_time(context, cred->times.authtime, t1, sizeof(t1), 1);
|
||||
|
||||
|
||||
if(cred->times.endtime > sec)
|
||||
krb5_format_time(context, cred->times.endtime, t2, sizeof(t2), 1);
|
||||
else
|
||||
|
|
@ -81,7 +81,7 @@ print_tickets (krb5_context context,
|
|||
return 500;
|
||||
}
|
||||
|
||||
lreply(200, "%17s: %s:%s",
|
||||
lreply(200, "%17s: %s:%s",
|
||||
"Credentials cache",
|
||||
krb5_cc_get_type(context, ccache),
|
||||
krb5_cc_get_name(context, ccache));
|
||||
|
|
@ -101,7 +101,7 @@ print_tickets (krb5_context context,
|
|||
&cursor,
|
||||
&cred)) == 0) {
|
||||
if (print_cred(context, &cred))
|
||||
return 500;
|
||||
return 500;
|
||||
krb5_free_cred_contents (context, &cred);
|
||||
}
|
||||
if (ret != KRB5_CC_END) {
|
||||
|
|
@ -137,7 +137,7 @@ klist5(void)
|
|||
else
|
||||
ret = krb5_cc_default (context, &ccache);
|
||||
if (ret) {
|
||||
lreply(500, "krb5_cc_default: %d", ret);
|
||||
lreply(500, "krb5_cc_default: %d", ret);
|
||||
return 500;
|
||||
}
|
||||
|
||||
|
|
@ -155,7 +155,7 @@ klist5(void)
|
|||
|
||||
ret = krb5_cc_close (context, ccache);
|
||||
if (ret) {
|
||||
lreply(500, "krb5_cc_close: %d", ret);
|
||||
lreply(500, "krb5_cc_close: %d", ret);
|
||||
exit_status = 500;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
@ -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
|
||||
|
|
@ -33,7 +33,7 @@
|
|||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
RCSID("$Id: logwtmp.c 9079 2000-09-19 13:17:20Z assar $");
|
||||
RCSID("$Id$");
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
|
@ -58,9 +58,13 @@ RCSID("$Id: logwtmp.c 9079 2000-09-19 13:17:20Z assar $");
|
|||
#ifdef HAVE_UTMPX_H
|
||||
#include <utmpx.h>
|
||||
#endif
|
||||
#ifdef HAVE_ASL_H
|
||||
#include <asl.h>
|
||||
#endif
|
||||
#include <roken.h>
|
||||
#include "extern.h"
|
||||
|
||||
#ifndef HAVE_UTMPX_H
|
||||
#ifndef WTMP_FILE
|
||||
#ifdef _PATH_WTMP
|
||||
#define WTMP_FILE _PATH_WTMP
|
||||
|
|
@ -68,20 +72,56 @@ RCSID("$Id: logwtmp.c 9079 2000-09-19 13:17:20Z assar $");
|
|||
#define WTMP_FILE "/var/adm/wtmp"
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
void
|
||||
ftpd_logwtmp(char *line, char *name, char *host)
|
||||
#ifdef HAVE_ASL_H
|
||||
|
||||
#ifndef ASL_KEY_FACILITY
|
||||
#define ASL_KEY_FACILITY "Facility"
|
||||
#endif
|
||||
|
||||
static void
|
||||
ftpd_logwtmp_asl(char *line, char *name, char *host)
|
||||
{
|
||||
static aslmsg m = NULL;
|
||||
static int init = 0;
|
||||
|
||||
if (!init) {
|
||||
init = 1;
|
||||
m = asl_new(ASL_TYPE_MSG);
|
||||
if (m == NULL)
|
||||
return;
|
||||
asl_set(m, ASL_KEY_FACILITY, "org.h5l.ftpd");
|
||||
}
|
||||
if (m)
|
||||
asl_log(NULL, m, ASL_LEVEL_NOTICE,
|
||||
"host %s/%s user %s%sconnected pid %d",
|
||||
host, line, name, name[0] ? " " : "dis", (int)getpid());
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_ASL_H
|
||||
|
||||
static void
|
||||
ftpd_logwtmp_wtmp(char *line, char *name, char *host)
|
||||
{
|
||||
static int init = 0;
|
||||
static int fd;
|
||||
#ifdef WTMPX_FILE
|
||||
static int fdx;
|
||||
#endif
|
||||
#ifdef HAVE_UTMP_H
|
||||
struct utmp ut;
|
||||
#ifdef WTMPX_FILE
|
||||
#endif
|
||||
#if defined(WTMPX_FILE) || defined(HAVE_UTMPX_H)
|
||||
struct utmpx utx;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UTMPX_H
|
||||
memset(&utx, 0, sizeof(struct utmpx));
|
||||
#endif
|
||||
#ifdef HAVE_UTMP_H
|
||||
memset(&ut, 0, sizeof(struct utmp));
|
||||
#ifdef HAVE_STRUCT_UTMP_UT_TYPE
|
||||
if(name[0])
|
||||
|
|
@ -98,8 +138,9 @@ ftpd_logwtmp(char *line, char *name, char *host)
|
|||
strncpy(ut.ut_host, host, sizeof(ut.ut_host));
|
||||
#endif
|
||||
ut.ut_time = time(NULL);
|
||||
#endif
|
||||
|
||||
#ifdef WTMPX_FILE
|
||||
#if defined(WTMPX_FILE) || defined(HAVE_UTMPX_H)
|
||||
strncpy(utx.ut_line, line, sizeof(utx.ut_line));
|
||||
strncpy(utx.ut_user, name, sizeof(utx.ut_user));
|
||||
strncpy(utx.ut_host, host, sizeof(utx.ut_host));
|
||||
|
|
@ -122,17 +163,37 @@ ftpd_logwtmp(char *line, char *name, char *host)
|
|||
utx.ut_type = DEAD_PROCESS;
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_UTMPX_H
|
||||
pututxline(&utx);
|
||||
#endif
|
||||
|
||||
if(!init){
|
||||
#ifdef WTMP_FILE
|
||||
fd = open(WTMP_FILE, O_WRONLY|O_APPEND, 0);
|
||||
#endif
|
||||
#ifdef WTMPX_FILE
|
||||
fdx = open(WTMPX_FILE, O_WRONLY|O_APPEND, 0);
|
||||
#endif
|
||||
init = 1;
|
||||
}
|
||||
if(fd >= 0) {
|
||||
#ifdef WTMP_FILE
|
||||
write(fd, &ut, sizeof(struct utmp)); /* XXX */
|
||||
#endif
|
||||
#ifdef WTMPX_FILE
|
||||
write(fdx, &utx, sizeof(struct utmpx));
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* !HAVE_ASL_H */
|
||||
|
||||
void
|
||||
ftpd_logwtmp(char *line, char *name, char *host)
|
||||
{
|
||||
#ifdef HAVE_ASL_H
|
||||
ftpd_logwtmp_asl(line, name, host);
|
||||
#else
|
||||
ftpd_logwtmp_wtmp(line, name, host);
|
||||
#endif
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue