diff options
Diffstat (limited to 'crypto/heimdal/appl/login')
-rw-r--r-- | crypto/heimdal/appl/login/ChangeLog | 20 | ||||
-rw-r--r-- | crypto/heimdal/appl/login/Makefile | 624 | ||||
-rw-r--r-- | crypto/heimdal/appl/login/Makefile.am | 4 | ||||
-rw-r--r-- | crypto/heimdal/appl/login/Makefile.in | 189 | ||||
-rw-r--r-- | crypto/heimdal/appl/login/login.c | 43 | ||||
-rw-r--r-- | crypto/heimdal/appl/login/login_locl.h | 16 | ||||
-rw-r--r-- | crypto/heimdal/appl/login/login_protos.h | 87 |
7 files changed, 840 insertions, 143 deletions
diff --git a/crypto/heimdal/appl/login/ChangeLog b/crypto/heimdal/appl/login/ChangeLog index 71278f7..7c7fc1e 100644 --- a/crypto/heimdal/appl/login/ChangeLog +++ b/crypto/heimdal/appl/login/ChangeLog @@ -1,3 +1,23 @@ +2002-08-23 Johan Danielsson <joda@pdc.kth.se> + + * login.c: if motd is set in login.conf, output its contents + before starting the shell + +2002-02-27 Johan Danielsson <joda@pdc.kth.se> + + * login.c: reset signals to default, needed on solaris 8 + +2002-02-19 Johan Danielsson <joda@pdc.kth.se> + + * login_locl.h: include netgroup.h and rpcsvc/ypclnt.h + + * login.c: make this build without krb5 + +2001-09-22 Assar Westerlund <assar@sics.se> + + * login_locl.h: kludge: use absolute path to find prot.h so we do + not get confused by athena's prot.h + 2001-09-17 Assar Westerlund <assar@sics.se> * login.c (do_login): add setpcred diff --git a/crypto/heimdal/appl/login/Makefile b/crypto/heimdal/appl/login/Makefile new file mode 100644 index 0000000..2ebdd9e --- /dev/null +++ b/crypto/heimdal/appl/login/Makefile @@ -0,0 +1,624 @@ +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# appl/login/Makefile. Generated from Makefile.in by configure. + +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 +# 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. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + + + +# $Id: Makefile.am,v 1.20 2002/08/19 17:00:36 joda Exp $ + +# $Id: Makefile.am.common,v 1.5 2002/05/19 18:35:37 joda Exp $ + +# $Id: Makefile.am.common,v 1.36 2002/08/19 16:10:25 joda Exp $ +SHELL = /bin/sh + +srcdir = . +top_srcdir = ../.. + +prefix = /usr/heimdal +exec_prefix = ${prefix} + +bindir = ${exec_prefix}/bin +sbindir = ${exec_prefix}/sbin +libexecdir = ${exec_prefix}/libexec +datadir = ${prefix}/share +sysconfdir = /etc +sharedstatedir = ${prefix}/com +localstatedir = /var/heimdal +libdir = ${exec_prefix}/lib +infodir = ${prefix}/info +mandir = ${prefix}/man +includedir = ${prefix}/include +oldincludedir = /usr/include +pkgdatadir = $(datadir)/heimdal +pkglibdir = $(libdir)/heimdal +pkgincludedir = $(includedir)/heimdal +top_builddir = ../.. + +ACLOCAL = ${SHELL} /usr/home/nectar/devel/heimdal/missing --run aclocal-1.6 +AUTOCONF = ${SHELL} /usr/home/nectar/devel/heimdal/missing --run autoconf +AUTOMAKE = ${SHELL} /usr/home/nectar/devel/heimdal/missing --run automake-1.6 +AUTOHEADER = ${SHELL} /usr/home/nectar/devel/heimdal/missing --run autoheader + +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +INSTALL = /usr/bin/install -c +INSTALL_PROGRAM = ${INSTALL} +INSTALL_DATA = ${INSTALL} -m 644 +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_SCRIPT = ${INSTALL} +INSTALL_HEADER = $(INSTALL_DATA) +transform = s,x,x, +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +host_alias = +host_triplet = i386-unknown-freebsd5.0 + +EXEEXT = +OBJEXT = o +PATH_SEPARATOR = : +AIX_EXTRA_KAFS = +AMTAR = ${SHELL} /usr/home/nectar/devel/heimdal/missing --run tar +AS = @AS@ +AWK = gawk +CANONICAL_HOST = i386-unknown-freebsd5.0 +CATMAN = /usr/bin/nroff -mdoc $< > $@ +CATMANEXT = $$section +CC = gcc +COMPILE_ET = compile_et +CPP = gcc -E +DBLIB = +DEPDIR = .deps +DIR_com_err = +DIR_des = +DIR_roken = roken +DLLTOOL = @DLLTOOL@ +ECHO = echo +EXTRA_LIB45 = +GROFF = /usr/bin/groff +INCLUDES_roken = -I$(top_builddir)/lib/roken -I$(top_srcdir)/lib/roken +INCLUDE_ = @INCLUDE_@ +INCLUDE_des = +INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s +LEX = flex + +LEXLIB = -lfl +LEX_OUTPUT_ROOT = lex.yy +LIBTOOL = $(SHELL) $(top_builddir)/libtool +LIB_ = @LIB_@ +LIB_AUTH_SUBDIRS = +LIB_NDBM = +LIB_com_err = -lcom_err +LIB_com_err_a = +LIB_com_err_so = +LIB_des = -lcrypto +LIB_des_a = -lcrypto +LIB_des_appl = -lcrypto +LIB_des_so = -lcrypto +LIB_kdb = +LIB_otp = $(top_builddir)/lib/otp/libotp.la +LIB_roken = $(top_builddir)/lib/vers/libvers.la $(top_builddir)/lib/roken/libroken.la $(LIB_crypt) $(LIB_dbopen) +LIB_security = +LN_S = ln -s +LTLIBOBJS = copyhostent.lo ecalloc.lo emalloc.lo erealloc.lo estrdup.lo strlwr.lo strndup.lo strnlen.lo strsep_copy.lo strupr.lo +NEED_WRITEAUTH_FALSE = +NEED_WRITEAUTH_TRUE = # +NROFF = /usr/bin/nroff +OBJDUMP = @OBJDUMP@ +PACKAGE = heimdal +RANLIB = ranlib +STRIP = strip +VERSION = 0.4f +VOID_RETSIGTYPE = +WFLAGS = -Wall -Wmissing-prototypes -Wpointer-arith -Wbad-function-cast -Wmissing-declarations -Wnested-externs +WFLAGS_NOIMPLICITINT = +WFLAGS_NOUNUSED = +X_CFLAGS = -I/usr/X11R6/include +X_EXTRA_LIBS = +X_LIBS = -L/usr/X11R6/lib +X_PRE_LIBS = -lSM -lICE +YACC = bison -y +am__include = include +am__quote = +dpagaix_cflags = -D_THREAD_SAFE -D_AIX_PTHREADS_D7 -D_AIX32_THREADS=1 -D_AES_SOURCE -D_AIX41 -I/usr/include/dce +dpagaix_ldadd = -L/usr/lib/threads -ldcelibc_r -ldcepthreads -lpthreads_compat lpthreads -lc_r +dpagaix_ldflags = -Wl,-bI:dfspag.exp +install_sh = /usr/home/nectar/devel/heimdal/install-sh + +AUTOMAKE_OPTIONS = foreign no-dependencies 1.6 + +SUFFIXES = .et .h .x .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 + +INCLUDES = -I$(top_builddir)/include $(INCLUDES_roken) $(INCLUDE_krb4) + +ROKEN_RENAME = -DROKEN_RENAME + +AM_CFLAGS = $(WFLAGS) + +CP = cp + +buildinclude = $(top_builddir)/include + +LIB_XauReadAuth = -lXau +LIB_crypt = -lcrypt +LIB_dbm_firstkey = +LIB_dbopen = +LIB_dlopen = +LIB_dn_expand = +LIB_el_init = -ledit +LIB_getattr = @LIB_getattr@ +LIB_gethostbyname = +LIB_getpwent_r = @LIB_getpwent_r@ +LIB_getpwnam_r = +LIB_getsockopt = +LIB_logout = -lutil +LIB_logwtmp = -lutil +LIB_odm_initialize = @LIB_odm_initialize@ +LIB_openpty = -lutil +LIB_pidfile = +LIB_res_search = +LIB_setpcred = @LIB_setpcred@ +LIB_setsockopt = +LIB_socket = +LIB_syslog = +LIB_tgetent = -ltermcap + +HESIODLIB = @HESIODLIB@ +HESIODINCLUDE = @HESIODINCLUDE@ +INCLUDE_hesiod = +LIB_hesiod = + +INCLUDE_krb4 = +LIB_krb4 = + +INCLUDE_openldap = +LIB_openldap = + +INCLUDE_readline = +LIB_readline = $(top_builddir)/lib/editline/libel_compat.la $(LIB_el_init) $(LIB_tgetent) + +NROFF_MAN = groff -mandoc -Tascii + +#LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS) + +LIB_krb5 = $(top_builddir)/lib/krb5/libkrb5.la \ + $(top_builddir)/lib/asn1/libasn1.la + +LIB_gssapi = $(top_builddir)/lib/gssapi/libgssapi.la + +#LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la + +bin_PROGRAMS = login + +login_SOURCES = \ + conf.c \ + env.c \ + login.c \ + login_access.c \ + login_locl.h \ + login_protos.h \ + osfc2.c \ + read_string.c \ + shadow.c \ + stty_default.c \ + tty.c \ + utmp_login.c \ + utmpx_login.c + + +LDADD = $(LIB_otp) \ + $(LIB_kafs) \ + $(top_builddir)/lib/krb5/libkrb5.la \ + $(LIB_krb4) \ + $(LIB_des) \ + $(top_builddir)/lib/asn1/libasn1.la \ + $(LIB_roken) \ + $(LIB_security) \ + $(DBLIB) + +subdir = appl/login +mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs +CONFIG_HEADER = $(top_builddir)/include/config.h +CONFIG_CLEAN_FILES = +bin_PROGRAMS = login$(EXEEXT) +PROGRAMS = $(bin_PROGRAMS) + +am_login_OBJECTS = conf.$(OBJEXT) env.$(OBJEXT) login.$(OBJEXT) \ + login_access.$(OBJEXT) osfc2.$(OBJEXT) read_string.$(OBJEXT) \ + shadow.$(OBJEXT) stty_default.$(OBJEXT) tty.$(OBJEXT) \ + utmp_login.$(OBJEXT) utmpx_login.$(OBJEXT) +login_OBJECTS = $(am_login_OBJECTS) +login_LDADD = $(LDADD) +#login_DEPENDENCIES = $(top_builddir)/lib/kafs/libkafs.la \ +# $(top_builddir)/lib/krb5/libkrb5.la \ +# $(top_builddir)/lib/asn1/libasn1.la +login_DEPENDENCIES = $(top_builddir)/lib/krb5/libkrb5.la \ + $(top_builddir)/lib/asn1/libasn1.la +login_LDFLAGS = + +DEFS = -DHAVE_CONFIG_H +DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include +CPPFLAGS = +LDFLAGS = +LIBS = +depcomp = +am__depfiles_maybe = +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ + $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +CCLD = $(CC) +LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +CFLAGS = -DINET6 -g -O2 +DIST_SOURCES = $(login_SOURCES) +DIST_COMMON = ChangeLog Makefile.am Makefile.in +SOURCES = $(login_SOURCES) + +all: all-am + +.SUFFIXES: +.SUFFIXES: .et .h .x .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj +$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(top_srcdir)/configure.in $(ACLOCAL_M4) + cd $(top_srcdir) && \ + $(AUTOMAKE) --foreign appl/login/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) +install-binPROGRAMS: $(bin_PROGRAMS) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(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; \ + else :; fi; \ + 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 + +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 +login$(EXEEXT): $(login_OBJECTS) $(login_DEPENDENCIES) + @rm -f login$(EXEEXT) + $(LINK) $(login_LDFLAGS) $(login_OBJECTS) $(login_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) core *.core + +distclean-compile: + -rm -f *.tab.c + +.c.o: + $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< + +.c.obj: + $(COMPILE) -c `cygpath -w $<` + +.c.lo: + $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool +uninstall-info-am: + +ETAGS = etags +ETAGSFLAGS = + +tags: TAGS + +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; }'`; \ + mkid -fID $$unique + +TAGS: $(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 "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && cd $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) $$here + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) + +top_distdir = ../.. +distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) + +distdir: $(DISTFILES) + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test "$$dir" != "$$file" && test "$$dir" != "."; then \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ + fi; \ + if test -d $$d/$$file; then \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ + else \ + test -f $(distdir)/$$file \ + || cp -p $$d/$$file $(distdir)/$$file \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="${top_distdir}" distdir="$(distdir)" \ + dist-hook +check-am: all-am + $(MAKE) $(AM_MAKEFLAGS) check-local +check: check-am +all-am: Makefile $(PROGRAMS) all-local + +installdirs: + $(mkinstalldirs) $(DESTDIR)$(bindir) + +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -rm -f Makefile $(CONFIG_CLEAN_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-libtool distclean-tags + +dvi: dvi-am + +dvi-am: + +info: info-am + +info-am: + +install-data-am: install-data-local + +install-exec-am: install-binPROGRAMS + @$(NORMAL_INSTALL) + $(MAKE) $(AM_MAKEFLAGS) install-exec-hook + +install-info: install-info-am + +install-man: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +uninstall-am: uninstall-binPROGRAMS uninstall-info-am + +.PHONY: GTAGS all all-am all-local check check-am check-local clean \ + clean-binPROGRAMS clean-generic clean-libtool distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am info info-am install \ + install-am install-binPROGRAMS install-data install-data-am \ + install-data-local install-exec install-exec-am install-info \ + install-info-am install-man install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool tags uninstall \ + uninstall-am uninstall-binPROGRAMS uninstall-info-am + + +install-suid-programs: + @foo='$(bin_SUIDS)'; \ + for file in $$foo; do \ + x=$(DESTDIR)$(bindir)/$$file; \ + if chown 0:0 $$x && chmod u+s $$x; then :; else \ + echo "*"; \ + echo "* Failed to install $$x setuid root"; \ + echo "*"; \ + fi; done + +install-exec-hook: install-suid-programs + +install-build-headers:: $(include_HEADERS) $(build_HEADERZ) + @foo='$(include_HEADERS) $(nodist_include_HEADERS) $(build_HEADERZ)'; \ + for f in $$foo; do \ + f=`basename $$f`; \ + if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \ + else file="$$f"; fi; \ + if cmp -s $$file $(buildinclude)/$$f 2> /dev/null ; then \ + : ; else \ + echo " $(CP) $$file $(buildinclude)/$$f"; \ + $(CP) $$file $(buildinclude)/$$f; \ + fi ; \ + done + +all-local: install-build-headers + +check-local:: + @if test '$(CHECK_LOCAL)'; then \ + foo='$(CHECK_LOCAL)'; else \ + foo='$(PROGRAMS)'; fi; \ + if test "$$foo"; then \ + failed=0; all=0; \ + for i in $$foo; do \ + all=`expr $$all + 1`; \ + if ./$$i --version > /dev/null 2>&1; then \ + echo "PASS: $$i"; \ + else \ + echo "FAIL: $$i"; \ + failed=`expr $$failed + 1`; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="$$failed of $$all tests failed"; \ + fi; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + fi + +.x.c: + @cmp -s $< $@ 2> /dev/null || cp $< $@ +#NROFF_MAN = nroff -man +.1.cat1: + $(NROFF_MAN) $< > $@ +.3.cat3: + $(NROFF_MAN) $< > $@ +.5.cat5: + $(NROFF_MAN) $< > $@ +.8.cat8: + $(NROFF_MAN) $< > $@ + +dist-cat1-mans: + @foo='$(man1_MANS)'; \ + bar='$(man_MANS)'; \ + for i in $$bar; do \ + case $$i in \ + *.1) foo="$$foo $$i";; \ + esac; done ;\ + for i in $$foo; do \ + x=`echo $$i | sed 's/\.[^.]*$$/.cat1/'`; \ + echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \ + $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \ + done + +dist-cat3-mans: + @foo='$(man3_MANS)'; \ + bar='$(man_MANS)'; \ + for i in $$bar; do \ + case $$i in \ + *.3) foo="$$foo $$i";; \ + esac; done ;\ + for i in $$foo; do \ + x=`echo $$i | sed 's/\.[^.]*$$/.cat3/'`; \ + echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \ + $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \ + done + +dist-cat5-mans: + @foo='$(man5_MANS)'; \ + bar='$(man_MANS)'; \ + for i in $$bar; do \ + case $$i in \ + *.5) foo="$$foo $$i";; \ + esac; done ;\ + for i in $$foo; do \ + x=`echo $$i | sed 's/\.[^.]*$$/.cat5/'`; \ + echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \ + $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \ + done + +dist-cat8-mans: + @foo='$(man8_MANS)'; \ + bar='$(man_MANS)'; \ + for i in $$bar; do \ + case $$i in \ + *.8) foo="$$foo $$i";; \ + esac; done ;\ + for i in $$foo; do \ + x=`echo $$i | sed 's/\.[^.]*$$/.cat8/'`; \ + echo "$(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x"; \ + $(NROFF_MAN) $(srcdir)/$$i > $(distdir)/$$x; \ + done + +dist-hook: dist-cat1-mans dist-cat3-mans dist-cat5-mans dist-cat8-mans + +install-cat-mans: + $(SHELL) $(top_srcdir)/cf/install-catman.sh "$(INSTALL_DATA)" "$(mkinstalldirs)" "$(srcdir)" "$(DESTDIR)$(mandir)" '$(CATMANEXT)' $(man_MANS) $(man1_MANS) $(man3_MANS) $(man5_MANS) $(man8_MANS) + +install-data-local: install-cat-mans + +.et.h: + $(COMPILE_ET) $< +.et.c: + $(COMPILE_ET) $< + +$(srcdir)/login_protos.h: + cd $(srcdir); perl ../../cf/make-proto.pl -o login_protos.h -q -P comment $(login_SOURCES) || rm -f login_protos.h + +$(login_OBJECTS): $(srcdir)/login_protos.h +# 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: diff --git a/crypto/heimdal/appl/login/Makefile.am b/crypto/heimdal/appl/login/Makefile.am index 1f458e9..ccf9723 100644 --- a/crypto/heimdal/appl/login/Makefile.am +++ b/crypto/heimdal/appl/login/Makefile.am @@ -1,4 +1,4 @@ -# $Id: Makefile.am,v 1.19 2000/11/15 22:51:08 assar Exp $ +# $Id: Makefile.am,v 1.20 2002/08/19 17:00:36 joda Exp $ include $(top_srcdir)/Makefile.am.common @@ -32,6 +32,6 @@ LDADD = $(LIB_otp) \ $(DBLIB) $(srcdir)/login_protos.h: - cd $(srcdir); perl ../../cf/make-proto.pl -o login_protos.h $(login_SOURCES) || rm -f login_protos.h + cd $(srcdir); perl ../../cf/make-proto.pl -o login_protos.h -q -P comment $(login_SOURCES) || rm -f login_protos.h $(login_OBJECTS): $(srcdir)/login_protos.h diff --git a/crypto/heimdal/appl/login/Makefile.in b/crypto/heimdal/appl/login/Makefile.in index ce3ea9a..9fe40aa 100644 --- a/crypto/heimdal/appl/login/Makefile.in +++ b/crypto/heimdal/appl/login/Makefile.in @@ -1,6 +1,7 @@ -# Makefile.in generated automatically by automake 1.5 from Makefile.am. +# Makefile.in generated by automake 1.6.3 from Makefile.am. +# @configure_input@ -# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001 +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 # Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -13,14 +14,11 @@ @SET_MAKE@ -# $Id: Makefile.am,v 1.19 2000/11/15 22:51:08 assar Exp $ +# $Id: Makefile.am,v 1.20 2002/08/19 17:00:36 joda Exp $ +# $Id: Makefile.am.common,v 1.5 2002/05/19 18:35:37 joda Exp $ -# $Id: Makefile.am.common,v 1.3 1999/04/01 14:58:43 joda Exp $ - - -# $Id: Makefile.am.common,v 1.31 2001/09/01 11:12:18 assar Exp $ - +# $Id: Makefile.am.common,v 1.36 2002/08/19 16:10:25 joda Exp $ SHELL = @SHELL@ srcdir = @srcdir@ @@ -51,9 +49,13 @@ AUTOCONF = @AUTOCONF@ AUTOMAKE = @AUTOMAKE@ AUTOHEADER = @AUTOHEADER@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_HEADER = $(INSTALL_DATA) transform = @program_transform_name@ @@ -65,6 +67,10 @@ PRE_UNINSTALL = : POST_UNINSTALL = : host_alias = @host_alias@ host_triplet = @host@ + +EXEEXT = @EXEEXT@ +OBJEXT = @OBJEXT@ +PATH_SEPARATOR = @PATH_SEPARATOR@ AIX_EXTRA_KAFS = @AIX_EXTRA_KAFS@ AMTAR = @AMTAR@ AS = @AS@ @@ -81,7 +87,7 @@ DIR_com_err = @DIR_com_err@ DIR_des = @DIR_des@ DIR_roken = @DIR_roken@ DLLTOOL = @DLLTOOL@ -EXEEXT = @EXEEXT@ +ECHO = @ECHO@ EXTRA_LIB45 = @EXTRA_LIB45@ GROFF = @GROFF@ INCLUDES_roken = @INCLUDES_roken@ @@ -89,7 +95,9 @@ INCLUDE_ = @INCLUDE_@ INCLUDE_des = @INCLUDE_des@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LEX = @LEX@ -LIBOBJS = @LIBOBJS@ + +LEXLIB = @LEXLIB@ +LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@ LIBTOOL = @LIBTOOL@ LIB_ = @LIB_@ LIB_AUTH_SUBDIRS = @LIB_AUTH_SUBDIRS@ @@ -111,9 +119,9 @@ NEED_WRITEAUTH_FALSE = @NEED_WRITEAUTH_FALSE@ NEED_WRITEAUTH_TRUE = @NEED_WRITEAUTH_TRUE@ NROFF = @NROFF@ OBJDUMP = @OBJDUMP@ -OBJEXT = @OBJEXT@ PACKAGE = @PACKAGE@ RANLIB = @RANLIB@ +STRIP = @STRIP@ VERSION = @VERSION@ VOID_RETSIGTYPE = @VOID_RETSIGTYPE@ WFLAGS = @WFLAGS@ @@ -126,16 +134,19 @@ X_PRE_LIBS = @X_PRE_LIBS@ YACC = @YACC@ am__include = @am__include@ am__quote = @am__quote@ -dpagaix_CFLAGS = @dpagaix_CFLAGS@ -dpagaix_LDADD = @dpagaix_LDADD@ +dpagaix_cflags = @dpagaix_cflags@ +dpagaix_ldadd = @dpagaix_ldadd@ +dpagaix_ldflags = @dpagaix_ldflags@ install_sh = @install_sh@ -AUTOMAKE_OPTIONS = foreign no-dependencies 1.4b +AUTOMAKE_OPTIONS = foreign no-dependencies 1.6 -SUFFIXES = .et .h .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .x +SUFFIXES = .et .h .x .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 INCLUDES = -I$(top_builddir)/include $(INCLUDES_roken) $(INCLUDE_krb4) +@do_roken_rename_TRUE@ROKEN_RENAME = -DROKEN_RENAME + AM_CFLAGS = $(WFLAGS) CP = cp @@ -166,8 +177,6 @@ LIB_socket = @LIB_socket@ LIB_syslog = @LIB_syslog@ LIB_tgetent = @LIB_tgetent@ -LIBS = @LIBS@ - HESIODLIB = @HESIODLIB@ HESIODINCLUDE = @HESIODINCLUDE@ INCLUDE_hesiod = @INCLUDE_hesiod@ @@ -182,8 +191,6 @@ LIB_openldap = @LIB_openldap@ INCLUDE_readline = @INCLUDE_readline@ LIB_readline = @LIB_readline@ -LEXLIB = @LEXLIB@ - NROFF_MAN = groff -mandoc -Tascii @KRB4_TRUE@LIB_kafs = $(top_builddir)/lib/kafs/libkafs.la $(AIX_EXTRA_KAFS) @@ -195,8 +202,6 @@ NROFF_MAN = groff -mandoc -Tascii @DCE_TRUE@LIB_kdfs = $(top_builddir)/lib/kdfs/libkdfs.la -CHECK_LOCAL = $(PROGRAMS) - bin_PROGRAMS = login login_SOURCES = \ @@ -249,7 +254,9 @@ DEFS = @DEFS@ DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include CPPFLAGS = @CPPFLAGS@ LDFLAGS = @LDFLAGS@ +LIBS = @LIBS@ depcomp = +am__depfiles_maybe = COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \ @@ -265,23 +272,13 @@ SOURCES = $(login_SOURCES) all: all-am .SUFFIXES: -.SUFFIXES: .et .h .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .x .c .lo .o .obj - -mostlyclean-libtool: - -rm -f *.lo - -clean-libtool: - -rm -rf .libs _libs - -distclean-libtool: - -rm -f libtool +.SUFFIXES: .et .h .x .1 .3 .5 .8 .cat1 .cat3 .cat5 .cat8 .c .lo .o .obj $(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/Makefile.am.common $(top_srcdir)/cf/Makefile.am.common $(top_srcdir)/configure.in $(ACLOCAL_M4) cd $(top_srcdir) && \ $(AUTOMAKE) --foreign appl/login/Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status - cd $(top_builddir) && \ - CONFIG_HEADERS= CONFIG_LINKS= \ - CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe) +binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) $(mkinstalldirs) $(DESTDIR)$(bindir) @@ -290,22 +287,26 @@ install-binPROGRAMS: $(bin_PROGRAMS) if test -f $$p \ || test -f $$p1 \ ; then \ - f=`echo $$p1|sed '$(transform);s/$$/$(EXEEXT)/'`; \ - echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f"; \ - $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/$$f; \ + 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; \ else :; fi; \ done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; for p in $$list; do \ - f=`echo $$p|sed 's/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ + f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \ echo " rm -f $(DESTDIR)$(bindir)/$$f"; \ rm -f $(DESTDIR)$(bindir)/$$f; \ done clean-binPROGRAMS: - -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) + @list='$(bin_PROGRAMS)'; for p in $$list; do \ + f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f $$p $$f"; \ + rm -f $$p $$f ; \ + done login$(EXEEXT): $(login_OBJECTS) $(login_DEPENDENCIES) @rm -f login$(EXEEXT) $(LINK) $(login_LDFLAGS) $(login_OBJECTS) $(login_LDADD) $(LIBS) @@ -317,62 +318,79 @@ distclean-compile: -rm -f *.tab.c .c.o: - $(COMPILE) -c `test -f $< || echo '$(srcdir)/'`$< + $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< .c.obj: $(COMPILE) -c `cygpath -w $<` .c.lo: - $(LTCOMPILE) -c -o $@ `test -f $< || echo '$(srcdir)/'`$< + $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool uninstall-info-am: +ETAGS = etags +ETAGSFLAGS = + tags: TAGS ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) - list='$(SOURCES) $(HEADERS) $(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; }'`; \ - mkid -fID $$unique $(LISP) + mkid -fID $$unique TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) tags=; \ here=`pwd`; \ - list='$(SOURCES) $(HEADERS) $(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; }'`; \ - test -z "$(ETAGS_ARGS)$$unique$(LISP)$$tags" \ - || etags $(ETAGS_ARGS) $$tags $$unique $(LISP) + test -z "$(ETAGS_ARGS)$$tags$$unique" \ + || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$tags $$unique GTAGS: - here=`CDPATH=: && cd $(top_builddir) && pwd` \ + here=`$(am__cd) $(top_builddir) && pwd` \ && cd $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) $$here distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH - DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) top_distdir = ../.. distdir = $(top_distdir)/$(PACKAGE)-$(VERSION) distdir: $(DISTFILES) - @for file in $(DISTFILES); do \ - if test -f $$file; then d=.; else d=$(srcdir); fi; \ + @list='$(DISTFILES)'; for file in $$list; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \ if test "$$dir" != "$$file" && test "$$dir" != "."; then \ - $(mkinstalldirs) "$(distdir)/$$dir"; \ + dir="/$$dir"; \ + $(mkinstalldirs) "$(distdir)$$dir"; \ + else \ + dir=''; \ fi; \ if test -d $$d/$$file; then \ - cp -pR $$d/$$file $(distdir) \ - || exit 1; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ + fi; \ + cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ else \ test -f $(distdir)/$$file \ || cp -p $$d/$$file $(distdir)/$$file \ @@ -401,6 +419,7 @@ install-am: all-am installcheck: installcheck-am install-strip: $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + INSTALL_STRIP_FLAG=-s \ `test -z '$(STRIP)' || \ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install mostlyclean-generic: @@ -408,7 +427,7 @@ mostlyclean-generic: clean-generic: distclean-generic: - -rm -f Makefile $(CONFIG_CLEAN_FILES) stamp-h stamp-h[0-9]* + -rm -f Makefile $(CONFIG_CLEAN_FILES) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @@ -479,7 +498,7 @@ install-suid-programs: install-exec-hook: install-suid-programs install-build-headers:: $(include_HEADERS) $(build_HEADERZ) - @foo='$(include_HEADERS) $(build_HEADERZ)'; \ + @foo='$(include_HEADERS) $(nodist_include_HEADERS) $(build_HEADERZ)'; \ for f in $$foo; do \ f=`basename $$f`; \ if test -f "$(srcdir)/$$f"; then file="$(srcdir)/$$f"; \ @@ -492,6 +511,36 @@ install-build-headers:: $(include_HEADERS) $(build_HEADERZ) done all-local: install-build-headers + +check-local:: + @if test '$(CHECK_LOCAL)'; then \ + foo='$(CHECK_LOCAL)'; else \ + foo='$(PROGRAMS)'; fi; \ + if test "$$foo"; then \ + failed=0; all=0; \ + for i in $$foo; do \ + all=`expr $$all + 1`; \ + if ./$$i --version > /dev/null 2>&1; then \ + echo "PASS: $$i"; \ + else \ + echo "FAIL: $$i"; \ + failed=`expr $$failed + 1`; \ + fi; \ + done; \ + if test "$$failed" -eq 0; then \ + banner="All $$all tests passed"; \ + else \ + banner="$$failed of $$all tests failed"; \ + fi; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo "$$dashes"; \ + echo "$$banner"; \ + echo "$$dashes"; \ + test "$$failed" -eq 0; \ + fi + +.x.c: + @cmp -s $< $@ 2> /dev/null || cp $< $@ #NROFF_MAN = nroff -man .1.cat1: $(NROFF_MAN) $< > $@ @@ -566,36 +615,8 @@ install-data-local: install-cat-mans .et.c: $(COMPILE_ET) $< -.x.c: - @cmp -s $< $@ 2> /dev/null || cp $< $@ - -check-local:: - @foo='$(CHECK_LOCAL)'; \ - if test "$$foo"; then \ - failed=0; all=0; \ - for i in $$foo; do \ - all=`expr $$all + 1`; \ - if ./$$i --version > /dev/null 2>&1; then \ - echo "PASS: $$i"; \ - else \ - echo "FAIL: $$i"; \ - failed=`expr $$failed + 1`; \ - fi; \ - done; \ - if test "$$failed" -eq 0; then \ - banner="All $$all tests passed"; \ - else \ - banner="$$failed of $$all tests failed"; \ - fi; \ - dashes=`echo "$$banner" | sed s/./=/g`; \ - echo "$$dashes"; \ - echo "$$banner"; \ - echo "$$dashes"; \ - test "$$failed" -eq 0; \ - fi - $(srcdir)/login_protos.h: - cd $(srcdir); perl ../../cf/make-proto.pl -o login_protos.h $(login_SOURCES) || rm -f login_protos.h + cd $(srcdir); perl ../../cf/make-proto.pl -o login_protos.h -q -P comment $(login_SOURCES) || rm -f login_protos.h $(login_OBJECTS): $(srcdir)/login_protos.h # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/crypto/heimdal/appl/login/login.c b/crypto/heimdal/appl/login/login.c index 68d7450..4c777f9 100644 --- a/crypto/heimdal/appl/login/login.c +++ b/crypto/heimdal/appl/login/login.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 2002 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -39,7 +39,7 @@ #include <sys/capability.h> #endif -RCSID("$Id: login.c,v 1.52 2001/09/17 02:34:31 assar Exp $"); +RCSID("$Id: login.c,v 1.56 2002/08/23 12:11:09 joda Exp $"); static int login_timeout = 60; @@ -142,6 +142,10 @@ otp_verify(struct passwd *pwd, const char *password) #endif /* OTP */ +#ifdef KRB4 +static int pag_set = 0; +#endif + #ifdef KRB5 static krb5_context context; static krb5_ccache id, id2; @@ -267,8 +271,6 @@ krb5_finish (void) #ifdef KRB4 -static int pag_set = 0; - static void krb5_get_afs_tokens (const struct passwd *pwd) { @@ -416,6 +418,19 @@ checknologin(void) exit(0); } +/* print contents of a file */ +static void +show_file(const char *file) +{ + FILE *f; + char buf[BUFSIZ]; + if((f = fopen(file, "r")) == NULL) + return; + while (fgets(buf, sizeof(buf), f)) + fputs(buf, stdout); + fclose(f); +} + /* * Actually log in the user. `pwd' contains all the relevant * information about the user. `ttyn' is the complete name of the tty @@ -432,6 +447,7 @@ do_login(const struct passwd *pwd, char *tty, char *ttyn) gid_t tty_gid; struct group *gr; const char *home_dir; + int i; if(!rootlogin) checknologin(); @@ -491,6 +507,13 @@ do_login(const struct passwd *pwd, char *tty, char *ttyn) if(rootlogin == 0) exit(1); } + + /* make sure signals are set to default actions, apparently some + OS:es like to ignore SIGINT, which is not very convenient */ + + for (i = 1; i < NSIG; ++i) + signal(i, SIG_DFL); + /* all kinds of different magic */ #ifdef HAVE_GETSPNAM @@ -601,6 +624,18 @@ do_login(const struct passwd *pwd, char *tty, char *ttyn) } } } + { + const char *str = login_conf_get_string("motd"); + char buf[MAXPATHLEN]; + + if(str != NULL) { + while(strsep_copy(&str, ",", buf, sizeof(buf)) != -1) { + if(buf[0] == '\0') + continue; + show_file(buf); + } + } + } add_env("HOME", home_dir); add_env("USER", pwd->pw_name); add_env("LOGNAME", pwd->pw_name); diff --git a/crypto/heimdal/appl/login/login_locl.h b/crypto/heimdal/appl/login/login_locl.h index d301b87..cc1d920 100644 --- a/crypto/heimdal/appl/login/login_locl.h +++ b/crypto/heimdal/appl/login/login_locl.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997 - 2001 Kungliga Tekniska Högskolan + * Copyright (c) 1997 - 2002 Kungliga Tekniska Högskolan * (Royal Institute of Technology, Stockholm, Sweden). * All rights reserved. * @@ -31,7 +31,7 @@ * SUCH DAMAGE. */ -/* $Id: login_locl.h,v 1.22 2001/09/22 11:47:37 assar Exp $ */ +/* $Id: login_locl.h,v 1.24 2002/08/12 15:09:15 joda Exp $ */ #ifndef __LOGIN_LOCL_H__ #define __LOGIN_LOCL_H__ @@ -78,6 +78,12 @@ #ifdef HAVE_SHADOW_H #include <shadow.h> #endif +#ifdef HAVE_NETGROUP_H +#include <netgroup.h> +#endif +#ifdef HAVE_RPCSVC_YPCLNT_H +#include <rpcsvc/ypclnt.h> +#endif #ifdef KRB4 #include <krb.h> #endif @@ -124,15 +130,15 @@ #endif #ifndef _PATH_LOGACCESS -#define _PATH_LOGACCESS "/etc/login.access" +#define _PATH_LOGACCESS SYSCONFDIR "/login.access" #endif /* _PATH_LOGACCESS */ #ifndef _PATH_LOGIN_CONF -#define _PATH_LOGIN_CONF "/etc/login.conf" +#define _PATH_LOGIN_CONF SYSCONFDIR "/login.conf" #endif /* _PATH_LOGIN_CONF */ #ifndef _PATH_ETC_ENVIRONMENT -#define _PATH_ETC_ENVIRONMENT "/etc/environment" +#define _PATH_ETC_ENVIRONMENT SYSCONFDIR "/environment" #endif #ifndef _PATH_DEFPATH diff --git a/crypto/heimdal/appl/login/login_protos.h b/crypto/heimdal/appl/login/login_protos.h index 4bb8207..48b8101 100644 --- a/crypto/heimdal/appl/login/login_protos.h +++ b/crypto/heimdal/appl/login/login_protos.h @@ -2,86 +2,77 @@ #ifndef __login_protos_h__ #define __login_protos_h__ -#ifdef __STDC__ #include <stdarg.h> -#ifndef __P -#define __P(x) x -#endif -#else -#ifndef __P -#define __P(x) () -#endif -#endif void -add_env __P(( - const char *var, - const char *value)); +add_env ( + const char */*var*/, + const char */*value*/); void -check_shadow __P(( - const struct passwd *pw, - const struct spwd *sp)); +check_shadow ( + const struct passwd */*pw*/, + const struct spwd */*sp*/); char * -clean_ttyname __P((char *tty)); +clean_ttyname (char */*tty*/); void -copy_env __P((void)); +copy_env (void); int -do_osfc2_magic __P((uid_t uid)); +do_osfc2_magic (uid_t /*uid*/); void -extend_env __P((char *str)); +extend_env (char */*str*/); int -login_access __P(( - struct passwd *user, - char *from)); +login_access ( + struct passwd */*user*/, + char */*from*/); char * -login_conf_get_string __P((const char *str)); +login_conf_get_string (const char */*str*/); int -login_read_env __P((const char *file)); +login_read_env (const char */*file*/); char * -make_id __P((char *tty)); +make_id (char */*tty*/); void -prepare_utmp __P(( - struct utmp *utmp, - char *tty, - const char *username, - const char *hostname)); +prepare_utmp ( + struct utmp */*utmp*/, + char */*tty*/, + const char */*username*/, + const char */*hostname*/); int -read_string __P(( - const char *prompt, - char *buf, - size_t len, - int echo)); +read_string ( + const char */*prompt*/, + char */*buf*/, + size_t /*len*/, + int /*echo*/); void -shrink_hostname __P(( - const char *hostname, - char *dst, - size_t dst_sz)); +shrink_hostname ( + const char */*hostname*/, + char */*dst*/, + size_t /*dst_sz*/); void -stty_default __P((void)); +stty_default (void); void -utmp_login __P(( - char *tty, - const char *username, - const char *hostname)); +utmp_login ( + char */*tty*/, + const char */*username*/, + const char */*hostname*/); int -utmpx_login __P(( - char *line, - const char *user, - const char *host)); +utmpx_login ( + char */*line*/, + const char */*user*/, + const char */*host*/); #endif /* __login_protos_h__ */ |