summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/appl/rsh
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/appl/rsh')
-rw-r--r--crypto/heimdal/appl/rsh/ChangeLog21
-rw-r--r--crypto/heimdal/appl/rsh/Makefile782
-rw-r--r--crypto/heimdal/appl/rsh/Makefile.in210
-rw-r--r--crypto/heimdal/appl/rsh/common.c20
-rw-r--r--crypto/heimdal/appl/rsh/rsh.172
-rw-r--r--crypto/heimdal/appl/rsh/rsh.c220
-rw-r--r--crypto/heimdal/appl/rsh/rsh_locl.h17
-rw-r--r--crypto/heimdal/appl/rsh/rshd.832
-rw-r--r--crypto/heimdal/appl/rsh/rshd.c131
9 files changed, 1208 insertions, 297 deletions
diff --git a/crypto/heimdal/appl/rsh/ChangeLog b/crypto/heimdal/appl/rsh/ChangeLog
index a2a7c8d..983bccf 100644
--- a/crypto/heimdal/appl/rsh/ChangeLog
+++ b/crypto/heimdal/appl/rsh/ChangeLog
@@ -1,3 +1,24 @@
+2002-02-18 Johan Danielsson <joda@pdc.kth.se>
+
+ * rshd.c: don't show options that doesn't apply
+
+ * rsh.c: don't show options that doesn't apply
+
+ * rsh_locl.h: if we're not building with any kerberos support,
+ just call read/write directly
+
+ * common.c: if we're not building with any kerberos support, just
+ call read/write directly
+
+ * rshd.c: make this build without krb5; also use the addrinfo
+ interface to mini_inetd, and set the keepalive option if requested
+
+ * rsh.c: make this build without krb5
+
+ * rsh_locl.h: make this build without krb5
+
+ * common.c: make this build without krb5
+
2001-11-30 Johan Danielsson <joda@pdc.kth.se>
* rshd.c: make the syslog messages somewhat more informative
diff --git a/crypto/heimdal/appl/rsh/Makefile b/crypto/heimdal/appl/rsh/Makefile
new file mode 100644
index 0000000..06068f4
--- /dev/null
+++ b/crypto/heimdal/appl/rsh/Makefile
@@ -0,0 +1,782 @@
+# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# appl/rsh/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.17 2001/07/31 09:12:03 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) -I$(srcdir)/../login
+
+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 = rsh
+
+man_MANS = rsh.1 rshd.8
+
+libexec_PROGRAMS = rshd
+
+rsh_SOURCES = rsh.c common.c rsh_locl.h
+
+rshd_SOURCES = rshd.c common.c login_access.c rsh_locl.h
+
+LDADD = $(LIB_kafs) \
+ $(LIB_krb5) \
+ $(LIB_krb4) \
+ $(LIB_des) \
+ $(LIB_roken) \
+ $(LIB_kdfs)
+
+subdir = appl/rsh
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/include/config.h
+CONFIG_CLEAN_FILES =
+bin_PROGRAMS = rsh$(EXEEXT)
+libexec_PROGRAMS = rshd$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS)
+
+am_rsh_OBJECTS = rsh.$(OBJEXT) common.$(OBJEXT)
+rsh_OBJECTS = $(am_rsh_OBJECTS)
+rsh_LDADD = $(LDADD)
+rsh_DEPENDENCIES = \
+ $(top_builddir)/lib/krb5/libkrb5.la \
+ $(top_builddir)/lib/asn1/libasn1.la
+#rsh_DEPENDENCIES =
+#rsh_DEPENDENCIES = \
+# $(top_builddir)/lib/kafs/libkafs.la \
+# $(top_builddir)/lib/krb5/libkrb5.la \
+# $(top_builddir)/lib/asn1/libasn1.la
+##rsh_DEPENDENCIES = \
+## $(top_builddir)/lib/kafs/libkafs.la
+#rsh_DEPENDENCIES = \
+# $(top_builddir)/lib/krb5/libkrb5.la \
+# $(top_builddir)/lib/asn1/libasn1.la \
+# $(top_builddir)/lib/kdfs/libkdfs.la
+##rsh_DEPENDENCIES = \
+## $(top_builddir)/lib/kdfs/libkdfs.la
+##rsh_DEPENDENCIES = \
+## $(top_builddir)/lib/kafs/libkafs.la \
+## $(top_builddir)/lib/krb5/libkrb5.la \
+## $(top_builddir)/lib/asn1/libasn1.la \
+## $(top_builddir)/lib/kdfs/libkdfs.la
+###rsh_DEPENDENCIES = \
+### $(top_builddir)/lib/kafs/libkafs.la \
+### $(top_builddir)/lib/kdfs/libkdfs.la
+rsh_LDFLAGS =
+am_rshd_OBJECTS = rshd.$(OBJEXT) common.$(OBJEXT) login_access.$(OBJEXT)
+rshd_OBJECTS = $(am_rshd_OBJECTS)
+rshd_LDADD = $(LDADD)
+rshd_DEPENDENCIES = \
+ $(top_builddir)/lib/krb5/libkrb5.la \
+ $(top_builddir)/lib/asn1/libasn1.la
+#rshd_DEPENDENCIES =
+#rshd_DEPENDENCIES = \
+# $(top_builddir)/lib/kafs/libkafs.la \
+# $(top_builddir)/lib/krb5/libkrb5.la \
+# $(top_builddir)/lib/asn1/libasn1.la
+##rshd_DEPENDENCIES = \
+## $(top_builddir)/lib/kafs/libkafs.la
+#rshd_DEPENDENCIES = \
+# $(top_builddir)/lib/krb5/libkrb5.la \
+# $(top_builddir)/lib/asn1/libasn1.la \
+# $(top_builddir)/lib/kdfs/libkdfs.la
+##rshd_DEPENDENCIES = \
+## $(top_builddir)/lib/kdfs/libkdfs.la
+##rshd_DEPENDENCIES = \
+## $(top_builddir)/lib/kafs/libkafs.la \
+## $(top_builddir)/lib/krb5/libkrb5.la \
+## $(top_builddir)/lib/asn1/libasn1.la \
+## $(top_builddir)/lib/kdfs/libkdfs.la
+###rshd_DEPENDENCIES = \
+### $(top_builddir)/lib/kafs/libkafs.la \
+### $(top_builddir)/lib/kdfs/libkdfs.la
+rshd_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 = $(rsh_SOURCES) $(rshd_SOURCES)
+MANS = $(man_MANS)
+DIST_COMMON = ChangeLog Makefile.am Makefile.in
+SOURCES = $(rsh_SOURCES) $(rshd_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/rsh/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
+libexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+install-libexecPROGRAMS: $(libexec_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(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; \
+ else :; fi; \
+ 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
+
+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
+rsh$(EXEEXT): $(rsh_OBJECTS) $(rsh_DEPENDENCIES)
+ @rm -f rsh$(EXEEXT)
+ $(LINK) $(rsh_LDFLAGS) $(rsh_OBJECTS) $(rsh_LDADD) $(LIBS)
+rshd$(EXEEXT): $(rshd_OBJECTS) $(rshd_DEPENDENCIES)
+ @rm -f rshd$(EXEEXT)
+ $(LINK) $(rshd_LDFLAGS) $(rshd_OBJECTS) $(rshd_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:
+
+man1dir = $(mandir)/man1
+install-man1: $(man1_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(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; \
+ 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
+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/^.*\\.//'`; \
+ 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
+
+man8dir = $(mandir)/man8
+install-man8: $(man8_MANS) $(man_MANS)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(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; \
+ 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
+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/^.*\\.//'`; \
+ 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
+
+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) $(MANS) all-local
+
+installdirs:
+ $(mkinstalldirs) $(DESTDIR)$(bindir) $(DESTDIR)$(libexecdir) $(DESTDIR)$(man1dir) $(DESTDIR)$(man8dir)
+
+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-libexecPROGRAMS \
+ 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-man
+
+install-exec-am: install-binPROGRAMS install-libexecPROGRAMS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-hook
+
+install-info: install-info-am
+
+install-man: install-man1 install-man8
+
+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 \
+ uninstall-libexecPROGRAMS uninstall-man
+
+uninstall-man: uninstall-man1 uninstall-man8
+
+.PHONY: GTAGS all all-am all-local check check-am check-local clean \
+ clean-binPROGRAMS clean-generic clean-libexecPROGRAMS \
+ 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-libexecPROGRAMS \
+ install-man install-man1 install-man8 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 \
+ uninstall-libexecPROGRAMS uninstall-man uninstall-man1 \
+ uninstall-man8
+
+
+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) $<
+
+login_access.c:
+ $(LN_S) $(srcdir)/../login/login_access.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:
diff --git a/crypto/heimdal/appl/rsh/Makefile.in b/crypto/heimdal/appl/rsh/Makefile.in
index fcec4e1..bd4d285 100644
--- a/crypto/heimdal/appl/rsh/Makefile.in
+++ b/crypto/heimdal/appl/rsh/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,
@@ -15,12 +16,9 @@
# $Id: Makefile.am,v 1.17 2001/07/31 09:12:03 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) -I$(srcdir)/../login
+@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 = rsh
man_MANS = rsh.1 rshd.8
@@ -283,7 +288,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) \
@@ -293,8 +300,6 @@ LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
CFLAGS = @CFLAGS@
DIST_SOURCES = $(rsh_SOURCES) $(rshd_SOURCES)
-
-NROFF = nroff
MANS = $(man_MANS)
DIST_COMMON = ChangeLog Makefile.am Makefile.in
SOURCES = $(rsh_SOURCES) $(rshd_SOURCES)
@@ -302,23 +307,13 @@ SOURCES = $(rsh_SOURCES) $(rshd_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/rsh/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)
@@ -327,22 +322,27 @@ 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
+libexecPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
install-libexecPROGRAMS: $(libexec_PROGRAMS)
@$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(libexecdir)
@@ -351,22 +351,26 @@ install-libexecPROGRAMS: $(libexec_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)$(libexecdir)/$$f"; \
- $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(libexecdir)/$$f; \
+ 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; \
else :; fi; \
done
uninstall-libexecPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(libexec_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)$(libexecdir)/$$f"; \
rm -f $(DESTDIR)$(libexecdir)/$$f; \
done
clean-libexecPROGRAMS:
- -test -z "$(libexec_PROGRAMS)" || rm -f $(libexec_PROGRAMS)
+ @list='$(libexec_PROGRAMS)'; for p in $$list; do \
+ f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f $$p $$f"; \
+ rm -f $$p $$f ; \
+ done
rsh$(EXEEXT): $(rsh_OBJECTS) $(rsh_DEPENDENCIES)
@rm -f rsh$(EXEEXT)
$(LINK) $(rsh_LDFLAGS) $(rsh_OBJECTS) $(rsh_LDADD) $(LIBS)
@@ -381,13 +385,22 @@ 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:
man1dir = $(mandir)/man1
@@ -405,6 +418,10 @@ install-man1: $(man1_MANS) $(man_MANS)
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; \
@@ -444,6 +461,10 @@ install-man8: $(man8_MANS) $(man_MANS)
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; \
@@ -468,53 +489,61 @@ uninstall-man8:
rm -f $(DESTDIR)$(man8dir)/$$inst; \
done
+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 \
@@ -543,6 +572,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:
@@ -550,7 +580,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"
@@ -628,7 +658,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"; \
@@ -641,6 +671,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) $< > $@
@@ -715,34 +775,6 @@ 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
-
login_access.c:
$(LN_S) $(srcdir)/../login/login_access.c .
# Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/crypto/heimdal/appl/rsh/common.c b/crypto/heimdal/appl/rsh/common.c
index 6614137..686e681 100644
--- a/crypto/heimdal/appl/rsh/common.c
+++ b/crypto/heimdal/appl/rsh/common.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997 - 1999 Kungliga Tekniska Högskolan
+ * Copyright (c) 1997 - 1999, 2002 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -32,22 +32,24 @@
*/
#include "rsh_locl.h"
-RCSID("$Id: common.c,v 1.12 1999/12/02 17:04:56 joda Exp $");
+RCSID("$Id: common.c,v 1.14 2002/02/18 20:01:05 joda Exp $");
+
+#if defined(KRB4) || defined(KRB5)
ssize_t
do_read (int fd,
void *buf,
size_t sz)
{
- int ret;
-
if (do_encrypt) {
#ifdef KRB4
if (auth_method == AUTH_KRB4) {
return des_enc_read (fd, buf, sz, schedule, &iv);
} else
#endif /* KRB4 */
+#ifdef KRB5
if(auth_method == AUTH_KRB5) {
+ krb5_error_code ret;
u_int32_t len, outer_len;
int status;
krb5_data data;
@@ -76,9 +78,9 @@ do_read (int fd,
memcpy (buf, data.data, len);
krb5_data_free (&data);
return len;
- } else {
+ } else
+#endif /* KRB5 */
abort ();
- }
} else
return read (fd, buf, sz);
}
@@ -92,6 +94,7 @@ do_write (int fd, void *buf, size_t sz)
return des_enc_write (fd, buf, sz, schedule, &iv);
} else
#endif /* KRB4 */
+#ifdef KRB5
if(auth_method == AUTH_KRB5) {
krb5_error_code status;
krb5_data data;
@@ -116,9 +119,10 @@ do_write (int fd, void *buf, size_t sz)
return ret;
free (data.data);
return sz;
- } else {
+ } else
+#endif /* KRB5 */
abort();
- }
} else
return write (fd, buf, sz);
}
+#endif /* KRB4 || KRB5 */
diff --git a/crypto/heimdal/appl/rsh/rsh.1 b/crypto/heimdal/appl/rsh/rsh.1
index 5bc031f..284ad6d 100644
--- a/crypto/heimdal/appl/rsh/rsh.1
+++ b/crypto/heimdal/appl/rsh/rsh.1
@@ -1,4 +1,4 @@
-.\" $Id: rsh.1,v 1.1 2001/07/31 08:13:41 joda Exp $
+.\" $Id: rsh.1,v 1.3 2002/08/20 17:07:08 joda Exp $
.\"
.Dd July 31, 2001
.Dt RSH 1
@@ -10,17 +10,17 @@ remote shell
.Sh SYNOPSIS
.Nm
.Op Fl 45FGKdefnuxz
-.Op Fl U Pa string
+.Op Fl U Pa string
.Op Fl p Ar port
.Op Fl l Ar username
.Ar host [command]
.Sh DESCRIPTION
.Nm
-authenticates to the
-.Xr rshd 8
+authenticates to the
+.Xr rshd 8
daemon on the remote
.Ar host ,
-and then executes the specified
+and then executes the specified
.Ar command .
.Pp
.Nm
@@ -30,51 +30,51 @@ output and error of the remote command to its own.
Valid options are:
.Bl -tag -width Ds
.It Xo
-.Fl 4 Ns ,
+.Fl 4 ,
.Fl -krb4
.Xc
-The
-.Fl 4
+The
+.Fl 4
option requests Kerberos 4 authentication. Normally all supported
authentication mechanisms will be tried, but in some cases more
explicit control is desired.
.It Xo
-.Fl 5 Ns ,
+.Fl 5 ,
.Fl -krb5
.Xc
-The
+The
.Fl 5
-option requests Kerberos 5 authentication. This is analogous to the
+option requests Kerberos 5 authentication. This is analogous to the
.Fl 4
option.
.It Xo
-.Fl K Ns ,
+.Fl K ,
.Fl -broken
.Xc
-The
+The
.Fl K
option turns off all Kerberos authentication. The long name implies
that this is more or less totally unsecure. The security in this mode
relies on reserved ports, which is not very secure.
.It Xo
-.Fl n Ns ,
+.Fl n ,
.Fl -no-input
.Xc
-The
+The
.Fl n
-option directs the input from the
+option directs the input from the
.Pa /dev/null
device (see the
.Sx BUGS
section of this manual page).
.It Xo
-.Fl e Ns ,
+.Fl e ,
.Fl -no-stderr
.Xc
Don't use a separate socket for the stderr stream. This can be
necessary if rsh-ing through a NAT bridge.
.It Xo
-.Fl x Ns ,
+.Fl x ,
.Fl -encrypt
.Xc
The
@@ -89,46 +89,46 @@ section for limitations).
The opposite of
.Fl x .
This is the default, but encryption can be enabled when using
-Kerberos 5, by setting the
+Kerberos 5, by setting the
.Li libdefaults/encrypt
option in
.Xr krb5.conf 5 .
.It Xo
-.Fl f Ns ,
+.Fl f ,
.Fl -forward
.Xc
-Forward Kerberos 5 credentials to the remote host. Also controlled by
+Forward Kerberos 5 credentials to the remote host. Also controlled by
.Li libdefaults/forward
-in
+in
.Xr krb5.conf 5 .
.It Xo
.Fl G
.Xc
-The opposite of
+The opposite of
.Fl f .
.It Xo
-.Fl F Ns ,
+.Fl F ,
.Fl -forwardable
.Xc
-Make the forwarded credentials re-forwardable. Also controlled by
+Make the forwarded credentials re-forwardable. Also controlled by
.Li libdefaults/forwardable
-in
+in
.Xr krb5.conf 5 .
.It Xo
-.Fl u Ns ,
+.Fl u ,
.Fl -unique
.Xc
Make sure the remote credentials cache is unique, that is, don't reuse
any existing cache. Mutually exclusive to
.Fl U .
.It Xo
-.Fl U Pa string Ns ,
+.Fl U Pa string ,
.Fl -tkfile= Ns Pa string
.Xc
Name of the remote credentials cache. Mutually exclusive to
.Fl u .
.It Xo
-.Fl p Ar number-or-service Ns ,
+.Fl p Ar number-or-service ,
.Fl -port= Ns Ar number-or-service
.Xc
Connect to this port instead of the default (which is 514 when using
@@ -137,7 +137,7 @@ Kerberos 4, and 545 for encrytpted Kerberos 4; subject of course to
the contents of
.Pa /etc/services ) .
.It Xo
-.Fl l Ar string Ns ,
+.Fl l Ar string ,
.Fl -user= Ns Ar string
.Xc
By default the remote username is the same as the local. The
@@ -147,8 +147,8 @@ option or the
format allow the remote name to be specified.
.El
.\".Pp
-.\"Without a
-.\".Ar command
+.\"Without a
+.\".Ar command
.\".Nm
.\"will just exec
.\".Xr rlogin 1
@@ -200,13 +200,13 @@ was written as part of the Heimdal Kerberos 5 implementation.
.Sh BUGS
Some shells (notably
.Xr csh 1 )
-will cause
-.Nm
-to block if run in the background, unless the standard input is directed away from the terminal. This is what the
+will cause
+.Nm
+to block if run in the background, unless the standard input is directed away from the terminal. This is what the
.Fl n
option is for.
.Pp
-The
+The
.Fl x
options enables encryption for the session, but for both Kerberos 4
and 5 the actual command is sent unencrypted, so you should not send
diff --git a/crypto/heimdal/appl/rsh/rsh.c b/crypto/heimdal/appl/rsh/rsh.c
index 38ae3a6..1f68e2f 100644
--- a/crypto/heimdal/appl/rsh/rsh.c
+++ b/crypto/heimdal/appl/rsh/rsh.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.
*
@@ -32,18 +32,22 @@
*/
#include "rsh_locl.h"
-RCSID("$Id: rsh.c,v 1.63 2001/09/03 05:54:13 assar Exp $");
+RCSID("$Id: rsh.c,v 1.65 2002/02/18 20:02:06 joda Exp $");
enum auth_method auth_method;
+#if defined(KRB4) || defined(KRB5)
int do_encrypt = -1;
-int do_forward = -1;
-int do_forwardable = -1;
+#endif
+#ifdef KRB5
int do_unique_tkfile = 0;
char *unique_tkfile = NULL;
char tkfile[MAXPATHLEN];
+int do_forward = -1;
+int do_forwardable = -1;
krb5_context context;
krb5_keyblock *keyblock;
krb5_crypto crypto;
+#endif
#ifdef KRB4
des_key_schedule schedule;
des_cblock iv;
@@ -53,7 +57,9 @@ int sock_debug = 0;
#ifdef KRB4
static int use_v4 = -1;
#endif
+#ifdef KRB5
static int use_v5 = -1;
+#endif
static int use_only_broken = 0;
static int use_broken = 1;
static char *port_str;
@@ -180,6 +186,7 @@ send_krb4_auth(int s,
}
#endif /* KRB4 */
+#ifdef KRB5
/*
* Send forward information on `s' for host `hostname', them being
* forwardable themselves if `forwardable'
@@ -369,6 +376,8 @@ send_krb5_auth(int s,
return 0;
}
+#endif /* KRB5 */
+
static int
send_broken_auth(int s,
struct sockaddr *thisaddr,
@@ -593,38 +602,19 @@ static int
doit_broken (int argc,
char **argv,
int optind,
- const char *host,
+ struct addrinfo *ai,
const char *remote_user,
const char *local_user,
- int port,
int priv_socket1,
int priv_socket2,
const char *cmd,
size_t cmd_len)
{
- struct addrinfo *ai, *a;
- struct addrinfo hints;
- int error;
- char portstr[NI_MAXSERV];
+ struct addrinfo *a;
- memset (&hints, 0, sizeof(hints));
- hints.ai_socktype = SOCK_STREAM;
- hints.ai_protocol = IPPROTO_TCP;
- hints.ai_family = AF_INET;
-
- snprintf (portstr, sizeof(portstr), "%u", ntohs(port));
-
- error = getaddrinfo (host, portstr, &hints, &ai);
- if (error) {
- warnx ("%s: %s", host, gai_strerror(error));
- return 1;
- }
-
if (connect (priv_socket1, ai->ai_addr, ai->ai_addrlen) < 0) {
- if (ai->ai_next == NULL) {
- freeaddrinfo (ai);
+ if (ai->ai_next == NULL)
return 1;
- }
close(priv_socket1);
close(priv_socket2);
@@ -658,8 +648,6 @@ doit_broken (int argc,
} else {
int status;
- freeaddrinfo (ai);
-
while(waitpid(pid, &status, 0) < 0)
;
if(WIFEXITED(status) && WEXITSTATUS(status) == 0)
@@ -670,8 +658,6 @@ doit_broken (int argc,
} else {
int ret;
- freeaddrinfo (ai);
-
ret = proto (priv_socket1, priv_socket2,
argv[optind],
local_user, remote_user,
@@ -681,11 +667,12 @@ doit_broken (int argc,
}
}
+#if defined(KRB4) || defined(KRB5)
static int
doit (const char *hostname,
+ struct addrinfo *ai,
const char *remote_user,
const char *local_user,
- int port,
const char *cmd,
size_t cmd_len,
int do_errsock,
@@ -695,25 +682,11 @@ doit (const char *hostname,
const char *local_user, size_t cmd_len,
const char *cmd))
{
- struct addrinfo *ai, *a;
- struct addrinfo hints;
int error;
- char portstr[NI_MAXSERV];
+ struct addrinfo *a;
int socketfailed = 1;
int ret;
- memset (&hints, 0, sizeof(hints));
- hints.ai_socktype = SOCK_STREAM;
- hints.ai_protocol = IPPROTO_TCP;
-
- snprintf (portstr, sizeof(portstr), "%u", ntohs(port));
-
- error = getaddrinfo (hostname, portstr, &hints, &ai);
- if (error) {
- errx (1, "%s: %s", hostname, gai_strerror(error));
- return -1;
- }
-
for (a = ai; a != NULL; a = a->ai_next) {
int s;
int errsock;
@@ -762,7 +735,6 @@ doit (const char *hostname,
} else
errsock = -1;
- freeaddrinfo (ai);
ret = proto (s, errsock,
hostname,
local_user, remote_user,
@@ -772,32 +744,38 @@ doit (const char *hostname,
}
if(socketfailed)
warnx ("failed to contact %s", hostname);
- freeaddrinfo (ai);
return -1;
}
+#endif /* KRB4 || KRB5 */
struct getargs args[] = {
#ifdef KRB4
{ "krb4", '4', arg_flag, &use_v4, "Use Kerberos V4" },
#endif
+#ifdef KRB5
{ "krb5", '5', arg_flag, &use_v5, "Use Kerberos V5" },
+ { "forward", 'f', arg_flag, &do_forward, "Forward credentials (krb5)"},
+ { NULL, 'G', arg_negative_flag,&do_forward, "Don't forward credentials" },
+ { "forwardable", 'F', arg_flag, &do_forwardable,
+ "Forward forwardable credentials" },
+#endif
+#if defined(KRB4) || defined(KRB5)
{ "broken", 'K', arg_flag, &use_only_broken, "Use only priv port" },
- { NULL, 'd', arg_flag, &sock_debug, "Enable socket debugging" },
- { "input", 'n', arg_negative_flag, &input, "Close stdin" },
{ "encrypt", 'x', arg_flag, &do_encrypt, "Encrypt connection" },
{ NULL, 'z', arg_negative_flag, &do_encrypt,
"Don't encrypt connection", NULL },
- { "forward", 'f', arg_flag, &do_forward, "Forward credentials"},
- { NULL, 'G', arg_negative_flag,&do_forward, "Don't forward credentials" },
- { "forwardable", 'F', arg_flag, &do_forwardable,
- "Forward forwardable credentials" },
+#endif
+#ifdef KRB5
{ "unique", 'u', arg_flag, &do_unique_tkfile,
- "Use unique remote tkfile" },
+ "Use unique remote tkfile (krb5)" },
{ "tkfile", 'U', arg_string, &unique_tkfile,
- "Use that remote tkfile" },
+ "Use that remote tkfile (krb5)" },
+#endif
+ { NULL, 'd', arg_flag, &sock_debug, "Enable socket debugging" },
+ { "input", 'n', arg_negative_flag, &input, "Close stdin" },
{ "port", 'p', arg_string, &port_str, "Use this port",
- "number-or-service" },
- { "user", 'l', arg_string, &user, "Run as this user" },
+ "port" },
+ { "user", 'l', arg_string, &user, "Run as this user", "login" },
{ "stderr", 'e', arg_negative_flag, &do_errsock, "Don't open stderr"},
{ "version", 0, arg_flag, &do_version, NULL },
{ "help", 0, arg_flag, &do_help, NULL }
@@ -809,7 +787,7 @@ usage (int ret)
arg_printusage (args,
sizeof(args) / sizeof(args[0]),
NULL,
- "host [command]");
+ "[login@]host [command]");
exit (ret);
}
@@ -822,8 +800,9 @@ main(int argc, char **argv)
{
int priv_port1, priv_port2;
int priv_socket1, priv_socket2;
- int port = 0;
int optind = 0;
+ int error;
+ struct addrinfo hints, *ai;
int ret = 1;
char *cmd;
char *tmp;
@@ -831,7 +810,9 @@ main(int argc, char **argv)
const char *local_user;
char *host = NULL;
int host_index = -1;
+#ifdef KRB5
int status;
+#endif
uid_t uid;
priv_port1 = priv_port2 = IPPORT_RESERVED-1;
@@ -848,10 +829,6 @@ main(int argc, char **argv)
optind = 1;
}
- status = krb5_init_context (&context);
- if (status)
- errx(1, "krb5_init_context failed: %d", status);
-
if (getarg (args, sizeof(args) / sizeof(args[0]), argc, argv,
&optind))
usage (1);
@@ -864,6 +841,15 @@ main(int argc, char **argv)
return 0;
}
+#ifdef KRB5
+ status = krb5_init_context (&context);
+ if (status) {
+ if(use_v5 == 1)
+ errx(1, "krb5_init_context failed: %d", status);
+ else
+ use_v5 = 0;
+ }
+
if (do_forwardable == -1)
do_forwardable = krb5_config_get_bool (context, NULL,
"libdefaults",
@@ -878,18 +864,23 @@ main(int argc, char **argv)
else if (do_forward == 0)
do_forwardable = 0;
+ if (do_forwardable)
+ do_forward = 1;
+#endif
+#if defined(KRB4) || defined(KRB5)
if (do_encrypt == -1) {
/* we want to tell the -x flag from the default encryption
option */
+#ifdef KRB5
+ /* the normal default for krb4 should be to disable encryption */
if(!krb5_config_get_bool (context, NULL,
"libdefaults",
"encrypt",
NULL))
+#endif
do_encrypt = 0;
}
-
- if (do_forwardable)
- do_forward = 1;
+#endif
#if defined(KRB4) && defined(KRB5)
if(use_v4 == -1 && use_v5 == 1)
@@ -902,7 +893,9 @@ main(int argc, char **argv)
#ifdef KRB4
use_v4 = 0;
#endif
+#ifdef KRB5
use_v5 = 0;
+#endif
}
if(priv_socket1 < 0) {
@@ -911,10 +904,14 @@ main(int argc, char **argv)
use_broken = 0;
}
+#if defined(KRB4) || defined(KRB5)
if (do_encrypt == 1 && use_only_broken)
errx (1, "encryption not supported with old style authentication");
+#endif
+
+#ifdef KRB5
if (do_unique_tkfile && unique_tkfile != NULL)
errx (1, "Only one of -u and -U allowed.");
@@ -928,6 +925,7 @@ main(int argc, char **argv)
do_unique_tkfile = 1;
snprintf (tkfile, sizeof(tkfile), "-U %s ", unique_tkfile);
}
+#endif
if (host == NULL) {
if (argc - optind < 1)
@@ -950,21 +948,6 @@ main(int argc, char **argv)
err (1, "execvp rlogin");
}
- if (port_str) {
- struct servent *s = roken_getservbyname (port_str, "tcp");
-
- if (s)
- port = s->s_port;
- else {
- char *ptr;
-
- port = strtol (port_str, &ptr, 10);
- if (port == 0 && ptr == port_str)
- errx (1, "Bad port `%s'", port_str);
- port = htons(port);
- }
- }
-
local_user = get_default_username ();
if (local_user == NULL)
errx (1, "who are you?");
@@ -978,50 +961,79 @@ main(int argc, char **argv)
* Try all different authentication methods
*/
+#ifdef KRB5
if (ret && use_v5) {
- int tmp_port;
+ memset (&hints, 0, sizeof(hints));
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_protocol = IPPROTO_TCP;
+
+ if(port_str == NULL) {
+ error = getaddrinfo(host, "kshell", &hints, &ai);
+ if(error == EAI_NONAME)
+ error = getaddrinfo(host, "544", &hints, &ai);
+ } else
+ error = getaddrinfo(host, port_str, &hints, &ai);
- if (port)
- tmp_port = port;
- else
- tmp_port = krb5_getportbyname (context, "kshell", "tcp", 544);
+ if(error)
+ errx (1, "getaddrinfo: %s", gai_strerror(error));
auth_method = AUTH_KRB5;
- ret = doit (host, user, local_user, tmp_port, cmd, cmd_len,
+ ret = doit (host, ai, user, local_user, cmd, cmd_len,
do_errsock,
send_krb5_auth);
+ freeaddrinfo(ai);
}
+#endif
#ifdef KRB4
if (ret && use_v4) {
- int tmp_port;
-
- if (port)
- tmp_port = port;
- else if (do_encrypt)
- tmp_port = krb5_getportbyname (context, "ekshell", "tcp", 545);
- else
- tmp_port = krb5_getportbyname (context, "kshell", "tcp", 544);
+ memset (&hints, 0, sizeof(hints));
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_protocol = IPPROTO_TCP;
+
+ if(port_str == NULL) {
+ if(do_encrypt) {
+ error = getaddrinfo(host, "ekshell", &hints, &ai);
+ if(error == EAI_NONAME)
+ error = getaddrinfo(host, "545", &hints, &ai);
+ } else {
+ error = getaddrinfo(host, "kshell", &hints, &ai);
+ if(error == EAI_NONAME)
+ error = getaddrinfo(host, "544", &hints, &ai);
+ }
+ } else
+ error = getaddrinfo(host, port_str, &hints, &ai);
+ if(error)
+ errx (1, "getaddrinfo: %s", gai_strerror(error));
auth_method = AUTH_KRB4;
- ret = doit (host, user, local_user, tmp_port, cmd, cmd_len,
+ ret = doit (host, ai, user, local_user, cmd, cmd_len,
do_errsock,
send_krb4_auth);
+ freeaddrinfo(ai);
}
#endif
if (ret && use_broken) {
- int tmp_port;
+ memset (&hints, 0, sizeof(hints));
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_protocol = IPPROTO_TCP;
+
+ if(port_str == NULL) {
+ error = getaddrinfo(host, "shell", &hints, &ai);
+ if(error == EAI_NONAME)
+ error = getaddrinfo(host, "514", &hints, &ai);
+ } else
+ error = getaddrinfo(host, port_str, &hints, &ai);
+
+ if(error)
+ errx (1, "getaddrinfo: %s", gai_strerror(error));
- if(port)
- tmp_port = port;
- else
- tmp_port = krb5_getportbyname(context, "shell", "tcp", 514);
auth_method = AUTH_BROKEN;
- ret = doit_broken (argc, argv, host_index, host,
+ ret = doit_broken (argc, argv, host_index, ai,
user, local_user,
- tmp_port,
priv_socket1,
do_errsock ? priv_socket2 : -1,
cmd, cmd_len);
+ freeaddrinfo(ai);
}
return ret;
}
diff --git a/crypto/heimdal/appl/rsh/rsh_locl.h b/crypto/heimdal/appl/rsh/rsh_locl.h
index 3418abc..a288d12 100644
--- a/crypto/heimdal/appl/rsh/rsh_locl.h
+++ b/crypto/heimdal/appl/rsh/rsh_locl.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997 - 2000 Kungliga Tekniska Högskolan
+ * Copyright (c) 1997 - 2000, 2002 Kungliga Tekniska Högskolan
* (Royal Institute of Technology, Stockholm, Sweden).
* All rights reserved.
*
@@ -31,7 +31,7 @@
* SUCH DAMAGE.
*/
-/* $Id: rsh_locl.h,v 1.24 2000/07/02 15:48:46 assar Exp $ */
+/* $Id: rsh_locl.h,v 1.27 2002/08/12 15:09:16 joda Exp $ */
#ifdef HAVE_CONFIG_H
#include <config.h>
@@ -97,8 +97,12 @@
#include <krb.h>
#include <prot.h>
#endif
+#ifdef KRB5
#include <krb5.h>
+#endif
+#ifdef KRB4
#include <kafs.h>
+#endif
#ifndef _PATH_NOLOGIN
#define _PATH_NOLOGIN "/etc/nologin"
@@ -113,7 +117,7 @@
#endif
#ifndef _PATH_ETC_ENVIRONMENT
-#define _PATH_ETC_ENVIRONMENT "/etc/environment"
+#define _PATH_ETC_ENVIRONMENT SYSCONFDIR "/environment"
#endif
/*
@@ -124,9 +128,11 @@ enum auth_method { AUTH_KRB4, AUTH_KRB5, AUTH_BROKEN };
extern enum auth_method auth_method;
extern int do_encrypt;
+#ifdef KRB5
extern krb5_context context;
extern krb5_keyblock *keyblock;
extern krb5_crypto crypto;
+#endif
#ifdef KRB4
extern des_key_schedule schedule;
extern des_cblock iv;
@@ -141,5 +147,10 @@ extern des_cblock iv;
#define PATH_RSH BINDIR "/rsh"
+#if defined(KRB4) || defined(KRB5)
ssize_t do_read (int fd, void *buf, size_t sz);
ssize_t do_write (int fd, void *buf, size_t sz);
+#else
+#define do_write(F, B, L) write((F), (B), (L))
+#define do_read(F, B, L) read((F), (B), (L))
+#endif
diff --git a/crypto/heimdal/appl/rsh/rshd.8 b/crypto/heimdal/appl/rsh/rshd.8
index 5b65e1b..22ad0fc 100644
--- a/crypto/heimdal/appl/rsh/rshd.8
+++ b/crypto/heimdal/appl/rsh/rshd.8
@@ -22,38 +22,38 @@ program. It provides an authenticated remote command execution
service. Supported options are:
.Bl -tag -width Ds
.It Xo
-.Fl n Ns ,
+.Fl n ,
.Fl -no-keepalive
.Xc
Disables keep-alive messages. Keep-alives are packets sent a certain
interval to make sure that the client is still there, even when it
doesn't send any data.
.It Xo
-.Fl k Ns ,
+.Fl k ,
.Fl -kerberos
.Xc
Assume that clients connecting to this server will use some form of
Kerberos authentication. See the
.Sx EXAMPLES
-section for a sample
-.Xr inetd.conf 5
+section for a sample
+.Xr inetd.conf 5
configuration.
.It Xo
-.Fl x Ns ,
+.Fl x ,
.Fl -encrypt
.Xc
For Kerberos 4 this means that the connections are encrypted. Kerberos
5 will negotiate encryption inline. This option implies
.Fl k .
.\".It Xo
-.\".Fl l Ns ,
+.\".Fl l ,
.\".Fl -no-rhosts
.\".Xc
.\"When using old port-based authentication, the user's
.\".Pa .rhosts
.\"files are normally checked. This options disables this.
.It Xo
-.Fl v Ns ,
+.Fl v ,
.Fl -vacuous
.Xc
If the connecting client does not use any Kerberised authentication,
@@ -71,21 +71,21 @@ call, so all tokens will be put in the default (uid-based) PAG, making
it possible to share tokens between sessions. This is only useful in
peculiar environments, such as some batch systems.
.It Xo
-.Fl i Ns ,
+.Fl i ,
.Fl -no-inetd
.Xc
-The
-.Fl i
+The
+.Fl i
option will cause
-.Nm
-to create a socket, instead of assuming that its stdin came from
+.Nm
+to create a socket, instead of assuming that its stdin came from
.Xr inetd 8 .
This is mostly useful for debugging.
.It Xo
-.Fl p Ar port Ns ,
+.Fl p Ar port ,
.Fl -port= Ns Ar port
.Xc
-Port to use with
+Port to use with
.Fl i .
.It Xo
.Fl a
@@ -95,7 +95,7 @@ This flag is for backwards compatibility only.
.Fl L
.Xc
This flag enables logging of connections to
-.Xr syslogd 8 .
+.Xr syslogd 8 .
This option is always on in this implementation.
.El
.\".Sh ENVIRONMENT
@@ -106,7 +106,7 @@ This option is always on in this implementation.
.El
.Sh EXAMPLES
The following can be used to enable Kerberised rsh in
-.Xr inetd.cond 5 ,
+.Xr inetd.cond 5 ,
while disabling non-Kerberised connections:
.Bd -literal
shell stream tcp nowait root /usr/libexec/rshd rshd -v
diff --git a/crypto/heimdal/appl/rsh/rshd.c b/crypto/heimdal/appl/rsh/rshd.c
index 850c6ac..fc2df7f 100644
--- a/crypto/heimdal/appl/rsh/rshd.c
+++ b/crypto/heimdal/appl/rsh/rshd.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.
*
@@ -32,24 +32,28 @@
*/
#include "rsh_locl.h"
-RCSID("$Id: rshd.c,v 1.44 2001/11/30 14:38:48 joda Exp $");
+RCSID("$Id: rshd.c,v 1.46 2002/02/18 20:02:14 joda Exp $");
int
login_access( struct passwd *user, char *from);
enum auth_method auth_method;
+#ifdef KRB5
krb5_context context;
krb5_keyblock *keyblock;
krb5_crypto crypto;
+#endif
#ifdef KRB4
des_key_schedule schedule;
des_cblock iv;
#endif
+#ifdef KRB5
krb5_ccache ccache, ccache2;
int kerberos_status = 0;
+#endif
int do_encrypt = 0;
@@ -60,15 +64,19 @@ static int do_inetd = 1;
static char *port_str;
static int do_rhosts = 1;
static int do_kerberos = 0;
+#define DO_KRB4 2
+#define DO_KRB5 4
static int do_vacuous = 0;
static int do_log = 1;
+#ifdef KRB4
static int do_newpag = 1;
+#endif
static int do_addr_verify = 0;
static int do_keepalive = 1;
static int do_version;
static int do_help = 0;
-#if defined(DCE)
+#if defined(KRB5) && defined(DCE)
int dfsk5ok = 0;
int dfspag = 0;
int dfsfwd = 0;
@@ -214,6 +222,7 @@ recv_krb4_auth (int s, u_char *buf,
#endif /* KRB4 */
+#ifdef KRB5
static int
save_krb5_creds (int s,
krb5_auth_context auth_context,
@@ -413,6 +422,7 @@ recv_krb5_auth (int s, u_char *buf,
return 0;
}
+#endif /* KRB5 */
static void
loop (int from0, int to0,
@@ -593,7 +603,7 @@ setup_environment (char ***env, const struct passwd *pwd)
}
static void
-doit (int do_kerberos, int check_rhosts)
+doit (void)
{
u_char buf[BUFSIZ];
u_char *p;
@@ -621,7 +631,9 @@ doit (int do_kerberos, int check_rhosts)
if (getpeername (s, thataddr, &thataddr_len) < 0)
syslog_and_die ("getpeername: %m");
- if (!do_kerberos && !is_reserved(socket_get_port(thataddr)))
+ /* check for V4MAPPED addresses? */
+
+ if (do_kerberos == 0 && !is_reserved(socket_get_port(thataddr)))
fatal(s, NULL, "Permission denied.");
p = buf;
@@ -637,7 +649,7 @@ doit (int do_kerberos, int check_rhosts)
syslog_and_die ("non-digit in port number: %c", *p);
}
- if (!do_kerberos && !is_reserved(htons(port)))
+ if (do_kerberos == 0 && !is_reserved(htons(port)))
fatal(s, NULL, "Permission denied.");
if (port) {
@@ -677,19 +689,23 @@ doit (int do_kerberos, int check_rhosts)
syslog_and_die ("reading auth info: %m");
#ifdef KRB4
- if (recv_krb4_auth (s, buf, thisaddr, thataddr,
+ if ((do_kerberos & DO_KRB4) &&
+ recv_krb4_auth (s, buf, thisaddr, thataddr,
client_user,
server_user,
cmd) == 0)
auth_method = AUTH_KRB4;
else
#endif /* KRB4 */
- if(recv_krb5_auth (s, buf, thisaddr, thataddr,
+#ifdef KRB5
+ if((do_kerberos & DO_KRB5) &&
+ recv_krb5_auth (s, buf, thisaddr, thataddr,
client_user,
server_user,
cmd) == 0)
auth_method = AUTH_KRB5;
else
+#endif /* KRB5 */
syslog_and_die ("unrecognized auth protocol: %x %x %x %x",
buf[0], buf[1], buf[2], buf[3]);
} else {
@@ -851,18 +867,22 @@ struct getargs args[] = {
{ "keepalive", 'n', arg_negative_flag, &do_keepalive },
{ "inetd", 'i', arg_negative_flag, &do_inetd,
"Not started from inetd" },
+#if defined(KRB4) || defined(KRB5)
{ "kerberos", 'k', arg_flag, &do_kerberos,
"Implement kerberised services" },
{ "encrypt", 'x', arg_flag, &do_encrypt,
"Implement encrypted service" },
+#endif
{ "rhosts", 'l', arg_negative_flag, &do_rhosts,
"Don't check users .rhosts" },
{ "port", 'p', arg_string, &port_str, "Use this port",
"port" },
{ "vacuous", 'v', arg_flag, &do_vacuous,
"Don't accept non-kerberised connections" },
+#ifdef KRB4
{ NULL, 'P', arg_negative_flag, &do_newpag,
"Don't put process in new PAG" },
+#endif
/* compatibility flag: */
{ NULL, 'L', arg_flag, &do_log },
{ "version", 0, arg_flag, &do_version },
@@ -887,7 +907,7 @@ int
main(int argc, char **argv)
{
int optind = 0;
- int port = 0;
+ int on = 1;
setprogname (argv[0]);
roken_openlog ("rshd", LOG_ODELAY | LOG_PID, LOG_AUTH);
@@ -904,50 +924,79 @@ main(int argc, char **argv)
exit(0);
}
-#ifdef KRB5
- {
- krb5_error_code ret;
+#if defined(KRB4) || defined(KRB5)
+ if (do_encrypt)
+ do_kerberos = 1;
- ret = krb5_init_context (&context);
- if (ret)
- errx (1, "krb5_init_context failed: %d", ret);
- }
+ if(do_kerberos)
+ do_kerberos = DO_KRB4 | DO_KRB5;
#endif
- if(port_str) {
- struct servent *s = roken_getservbyname (port_str, "tcp");
-
- if (s)
- port = s->s_port;
- else {
- char *ptr;
+ if (do_keepalive &&
+ setsockopt(0, SOL_SOCKET, SO_KEEPALIVE, (char *)&on,
+ sizeof(on)) < 0)
+ syslog(LOG_WARNING, "setsockopt (SO_KEEPALIVE): %m");
- port = strtol (port_str, &ptr, 10);
- if (port == 0 && ptr == port_str)
- syslog_and_die("Bad port `%s'", port_str);
- port = htons(port);
- }
- }
+ /* set SO_LINGER? */
- if (do_encrypt)
- do_kerberos = 1;
+#ifdef KRB5
+ if((do_kerberos & DO_KRB5) && krb5_init_context (&context) != 0)
+ do_kerberos &= ~DO_KRB5;
+#endif
if (!do_inetd) {
- if (port == 0) {
+ int error;
+ struct addrinfo *ai = NULL, hints;
+ char portstr[NI_MAXSERV];
+
+ memset (&hints, 0, sizeof(hints));
+ hints.ai_flags = AI_PASSIVE;
+ hints.ai_socktype = SOCK_STREAM;
+ hints.ai_family = PF_UNSPEC;
+
+ if(port_str != NULL) {
+ error = getaddrinfo (NULL, port_str, &hints, &ai);
+ if (error)
+ errx (1, "getaddrinfo: %s", gai_strerror (error));
+ }
+ if (ai == NULL) {
+#if defined(KRB4) || defined(KRB5)
if (do_kerberos) {
- if (do_encrypt)
- port = krb5_getportbyname (context, "ekshell", "tcp", 545);
- else
- port = krb5_getportbyname (context, "kshell", "tcp", 544);
- } else {
- port = krb5_getportbyname(context, "shell", "tcp", 514);
- }
+ if (do_encrypt) {
+ error = getaddrinfo(NULL, "ekshell", &hints, &ai);
+ if(error == EAI_NONAME) {
+ snprintf(portstr, sizeof(portstr), "%d", 545);
+ error = getaddrinfo(NULL, portstr, &hints, &ai);
+ }
+ if(error)
+ errx (1, "getaddrinfo: %s", gai_strerror (error));
+ } else {
+ error = getaddrinfo(NULL, "kshell", &hints, &ai);
+ if(error == EAI_NONAME) {
+ snprintf(portstr, sizeof(portstr), "%d", 544);
+ error = getaddrinfo(NULL, portstr, &hints, &ai);
+ }
+ if(error)
+ errx (1, "getaddrinfo: %s", gai_strerror (error));
+ }
+ } else
+#endif
+ {
+ error = getaddrinfo(NULL, "shell", &hints, &ai);
+ if(error == EAI_NONAME) {
+ snprintf(portstr, sizeof(portstr), "%d", 514);
+ error = getaddrinfo(NULL, portstr, &hints, &ai);
+ }
+ if(error)
+ errx (1, "getaddrinfo: %s", gai_strerror (error));
+ }
}
- mini_inetd (port);
+ mini_inetd_addrinfo (ai);
+ freeaddrinfo(ai);
}
signal (SIGPIPE, SIG_IGN);
- doit (do_kerberos, do_rhosts);
+ doit ();
return 0;
}
OpenPOWER on IntegriCloud