summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/kerberosIV/README-WIN3230
-rw-r--r--crypto/kerberosIV/appl/push/ChangeLog135
-rw-r--r--crypto/kerberosIV/appl/push/Makefile.am27
-rw-r--r--crypto/kerberosIV/appl/push/Makefile.in95
-rw-r--r--crypto/kerberosIV/appl/push/pfrom.in6
-rw-r--r--crypto/kerberosIV/appl/push/push.8139
-rw-r--r--crypto/kerberosIV/appl/push/push.c795
-rw-r--r--crypto/kerberosIV/appl/push/push.cat877
-rw-r--r--crypto/kerberosIV/appl/push/push_locl.h98
9 files changed, 0 insertions, 1402 deletions
diff --git a/crypto/kerberosIV/README-WIN32 b/crypto/kerberosIV/README-WIN32
deleted file mode 100644
index ba74c46..0000000
--- a/crypto/kerberosIV/README-WIN32
+++ /dev/null
@@ -1,30 +0,0 @@
-It should be possible to build several of the libraries and the GUI
-telnet ``voodoo'' on Win95/NT. In case you don't want to try there
-are binaries available at
-ftp://ftp.pdc.kth.se/pub/krb/binaries/i386-unknown-winnt4.0.
-
-In case you want to build from source and possibly hack some on them
-yourself here's a short guide:
-
-You need to build the libraries (DLLs) first and in this order:
-
-lib/roken
-lib/des
-lib/krb
-lib/kclient
-
-And then the two applications:
-
-appl/krbmanager
-appl/voodoo
-
-In each case there is a Visual-C++ generated makefile with the name
-*.mak in the corresponding directory. You might be able to load that
-into Microsoft whatever Studio and you might be able to just run nmake
-on them.
-
-Once you have ended up with 4 DLLs and 2 EXEs you only have to place
-them in a directory in your PATH and start voodoo.
-
-In case it doesn't work, you have discovered bugs or added some more
-features the mail address to use is <kth-krb-bugs@nada.kth.se>
diff --git a/crypto/kerberosIV/appl/push/ChangeLog b/crypto/kerberosIV/appl/push/ChangeLog
deleted file mode 100644
index a55954d..0000000
--- a/crypto/kerberosIV/appl/push/ChangeLog
+++ /dev/null
@@ -1,135 +0,0 @@
-1999-11-13 Assar Westerlund <assar@sics.se>
-
- * push.c: make `-v' a arg_counter
-
-1999-11-02 Assar Westerlund <assar@sics.se>
-
- * push.c (main): redo the v4/v5 selection for consistency. -4 ->
- try only v4 -5 -> try only v5 none, -45 -> try v5, v4
-
-1999-08-19 Assar Westerlund <assar@sics.se>
-
- * push.c (doit): remember to step over the error message when we
- discover that XDELE is not supported
-
-1999-08-12 Johan Danielsson <joda@pdc.kth.se>
-
- * push.c: use XDELE
-
-1999-08-05 Assar Westerlund <assar@sics.se>
-
- * push.c (do_connect): v6-ify
-
-1999-06-15 Assar Westerlund <assar@sics.se>
-
- * push.c: get_default_username and the resulting const propagation
-
-1999-05-21 Assar Westerlund <assar@sics.se>
-
- * push.c (parse_pobox): try $USERNAME
-
-1999-05-11 Assar Westerlund <assar@sics.se>
-
- * push.c (do_v5): remove unused and non-working code
-
-1999-05-10 Assar Westerlund <assar@sics.se>
-
- * push.c (do_v5): call krb5_sendauth with ccache == NULL
-
-Wed Apr 7 23:40:00 1999 Assar Westerlund <assar@sics.se>
-
- * Makefile.in: fix names of hesiod variables
-
-Wed Mar 24 04:37:04 1999 Assar Westerlund <assar@sics.se>
-
- * Makefile.am (pfrom): fix typo
-
- * push.c (get_pobox): try to handle old and new hesiod APIs
-
-Mon Mar 22 22:19:40 1999 Assar Westerlund <assar@sics.se>
-
- * Makefile.am: hesoid -> hesiod
-
-Sun Mar 21 18:02:10 1999 Johan Danielsson <joda@hella.pdc.kth.se>
-
- * Makefile.am: bindir -> libexecdir
-
-Sat Mar 20 00:12:26 1999 Assar Westerlund <assar@sics.se>
-
- * Makefile.am: LDADD: add missing backslash
-
-Thu Mar 18 15:28:35 1999 Johan Danielsson <joda@hella.pdc.kth.se>
-
- * Makefile.am: clean pfrom
-
- * Makefile.am: include Makefile.am.common
-
-Mon Mar 15 18:26:16 1999 Johan Danielsson <joda@blubb.pdc.kth.se>
-
- * push.c: strncasecmp headers
-
-Mon Feb 15 22:22:09 1999 Assar Westerlund <assar@sics.se>
-
- * Makefile.in (pfrom): use libexecdir
-
- * Makefile.am: build and install pfrom
-
- * push.c (do_connect): init `s'
- (pop_state): spell-check enums
-
-Tue Nov 24 23:20:54 1998 Assar Westerlund <assar@sics.se>
-
- * Makefile.in: build and install pfrom
-
- * pfrom.in: bindir -> libexecdir
-
-Sun Nov 22 15:33:52 1998 Johan Danielsson <joda@hella.pdc.kth.se>
-
- * push.c: eliminate some warnings
-
-Sun Nov 22 10:34:54 1998 Assar Westerlund <assar@sics.se>
-
- * Makefile.in (WFLAGS): set
-
-Thu Nov 19 01:17:33 1998 Assar Westerlund <assar@sics.se>
-
- * push_locl.h: add <hesiod.h>
-
- * Makefile.am, Makefile.in: link and include hesiod
-
- * push.c (get_pobox): new function. add hesiod support.
-
-1998-11-07 Assar Westerlund <assar@sics.se>
-
- * push.8: updated
-
- * push.c: --from implementation from <lha@stacken.kth.se>
-
-Fri Jul 10 01:14:45 1998 Assar Westerlund <assar@sics.se>
-
- * push.c (net_{read,write}): remove
-
-Wed Jun 24 14:41:41 1998 Johan Danielsson <joda@blubb.pdc.kth.se>
-
- * push.c: allow `po:user@host' mailbox syntax
-
-Tue Jun 2 17:35:06 1998 Johan Danielsson <joda@emma.pdc.kth.se>
-
- * push.c: quote '^From ' properly
-
-Mon May 25 05:22:47 1998 Assar Westerlund <assar@sics.se>
-
- * Makefile.in (clean): PROGS -> PROGRAMS
-
-Sun Apr 26 11:42:13 1998 Assar Westerlund <assar@sics.se>
-
- * push.c (main): better default for v4 and v5
-
- * push.c (main): init context correctly
-
- * push.c: should work with krb4
-
- * push_locl.h: krb4 compat
-
- * Makefile.in: new file
-
diff --git a/crypto/kerberosIV/appl/push/Makefile.am b/crypto/kerberosIV/appl/push/Makefile.am
deleted file mode 100644
index 07ecd0a..0000000
--- a/crypto/kerberosIV/appl/push/Makefile.am
+++ /dev/null
@@ -1,27 +0,0 @@
-# $Id: Makefile.am,v 1.15 1999/04/09 18:29:48 assar Exp $
-
-include $(top_srcdir)/Makefile.am.common
-
-INCLUDES += $(INCLUDE_krb4) $(INCLUDE_hesiod)
-
-bin_SCRIPTS = pfrom
-
-libexec_PROGRAMS = push
-
-push_SOURCES = push.c push_locl.h
-
-pfrom: pfrom.in
- sed -e "s!%libexecdir%!$(libexecdir)!" $(srcdir)/pfrom.in > $@
- chmod +x $@
-
-man_MANS = push.8
-
-CLEANFILES = pfrom
-
-EXTRA_DIST = pfrom.in $(man_MANS)
-
-LDADD = $(LIB_krb5) \
- $(LIB_krb4) \
- $(top_builddir)/lib/des/libdes.la \
- $(LIB_roken) \
- $(LIB_hesiod)
diff --git a/crypto/kerberosIV/appl/push/Makefile.in b/crypto/kerberosIV/appl/push/Makefile.in
deleted file mode 100644
index 87da6cf..0000000
--- a/crypto/kerberosIV/appl/push/Makefile.in
+++ /dev/null
@@ -1,95 +0,0 @@
-# $Id: Makefile.in,v 1.10 1999/04/07 18:39:56 assar Exp $
-
-SHELL = /bin/sh
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-CC = @CC@
-LINK = @LINK@
-RANLIB = @RANLIB@
-DEFS = @DEFS@ @INCLUDE_hesiod@
-CFLAGS = @CFLAGS@ $(WFLAGS)
-WFLAGS = @WFLAGS@
-LD_FLAGS = @LD_FLAGS@
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-LIBS = @LIB_hesiod@ @LIBS@
-LIB_DBM = @LIB_DBM@
-MKINSTALLDIRS = @top_srcdir@/mkinstalldirs
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-libdir = @libdir@
-libexecdir = @libexecdir@
-bindir = @bindir@
-transform=@program_transform_name@
-EXECSUFFIX=@EXECSUFFIX@
-
-bin_PROGRAMS = pfrom
-
-libexec_PROGRAMS = push$(EXECSUFFIX)
-
-PROGRAMS = $(libexec_PROGRAMS) $(bin_PROGRAMS)
-
-push_SOURCES = push.c
-
-push_OBJECTS = push.o
-
-SOURCES = $(push_SOURCES)
-
-OBJECTS = $(push_OBJECTS)
-
-all: $(PROGRAMS)
-
-.c.o:
- $(CC) -c $(DEFS) -I../../include -I$(srcdir) $(CFLAGS) $(CPPFLAGS) $<
-
-install: all
- $(MKINSTALLDIRS) $(DESTDIR)$(bindir)
- for x in $(bin_PROGRAMS); do \
- $(INSTALL_PROGRAM) $$x $(DESTDIR)$(bindir)/`echo $$x | sed '$(transform)'`; \
- done
- $(MKINSTALLDIRS) $(DESTDIR)$(libexecdir)
- for x in $(libexec_PROGRAMS); do \
- $(INSTALL_PROGRAM) $$x $(DESTDIR)$(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-uninstall:
- for x in $(bin_PROGRAMS); do \
- rm -f $(DESTDIR)$(bindir)/`echo $$x | sed '$(transform)'`; \
- done
- for x in $(libexec_PROGRAMS); do \
- rm -f $(DESTDIR)$(libexecdir)/`echo $$x | sed '$(transform)'`; \
- done
-
-TAGS: $(SOURCES)
- etags $(SOURCES)
-
-check:
-
-clean:
- rm -f *.a *.o $(PROGRAMS)
-
-mostlyclean: clean
-
-distclean: clean
- rm -f Makefile *~
-
-realclean: distclean
- rm -f TAGS
-
-KLIB=-L../../lib/krb -lkrb -L../../lib/des -ldes
-LIBROKEN=-L../../lib/roken -lroken
-
-push$(EXECSUFFIX): $(push_OBJECTS)
- $(LINK) $(LD_FLAGS) $(LDFLAGS) -o $@ $(push_OBJECTS) $(KLIB) $(LIBROKEN) $(LIBS) $(LIBROKEN)
-
-pfrom: pfrom.in
- sed -e "s!%libexecdir%!$(libexecdir)!" $(srcdir)/pfrom.in > $@
- chmod +x $@
-
-$(OBJECTS): ../../include/config.h
-
-.PHONY: all install uninstall check clean mostlyclean distclean realclean
diff --git a/crypto/kerberosIV/appl/push/pfrom.in b/crypto/kerberosIV/appl/push/pfrom.in
deleted file mode 100644
index 6adf4f0..0000000
--- a/crypto/kerberosIV/appl/push/pfrom.in
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# $Id: pfrom.in,v 1.2 1998/11/24 13:25:47 assar Exp $
-libexecdir=%libexecdir%
-PATH=$libexecdir:$PATH
-export PATH
-push --from $*
diff --git a/crypto/kerberosIV/appl/push/push.8 b/crypto/kerberosIV/appl/push/push.8
deleted file mode 100644
index 0cf4a6c..0000000
--- a/crypto/kerberosIV/appl/push/push.8
+++ /dev/null
@@ -1,139 +0,0 @@
-.\" $Id: push.8,v 1.3.16.2 2000/06/23 03:06:11 assar Exp $
-.\"
-.Dd May 31, 1998
-.Dt PUSH 8
-.Os HEIMDAL
-.Sh NAME
-.Nm push
-.Nd
-fetch mail via POP
-.Sh SYNOPSIS
-.Nm
-.Op Fl 4 | Fl -krb4
-.Op Fl 5 | Fl -krb5
-.Op Fl v | Fl -verbose
-.Op Fl f | Fl -fork
-.Op Fl l | -leave
-.Op Fl -from
-.Op Fl c | -count
-.Op Fl -header
-.Oo Fl p Ar port-spec \*(Ba Xo
-.Fl -port= Ns Ar port-spec Oc
-.Xc
-.Ar po-box
-.Pa filename
-.Sh DESCRIPTION
-.Nm
-retrieves mail from the post office box
-.Ar po-box ,
-and stores the mail in mbox format in
-.Pa filename .
-The
-.Ar po-box
-can have any of the following formats:
-.Bl -hang -compact -offset indent
-.It Ql hostname:username
-.It Ql po:hostname:username
-.It Ql username@hostname
-.It Ql po:username@hostname
-.It Ql hostname
-.It Ql po:username
-.El
-
-If no username is specified,
-.Nm
-assumes that it's the same as on the local machine;
-.Ar hostname
-defaults to the value of the
-.Ev MAILHOST
-environment variable.
-
-Supported options:
-.Bl -tag -width Ds
-.It Xo
-.Fl 4 Ns ,
-.Fl -krb4
-.Xc
-use Kerberos 4 (if compiled with support for Kerberos 4)
-.It Xo
-.Fl 5 Ns ,
-.Fl -krb5
-.Xc
-use Kerberos 5 (if compiled with support for Kerberos 5)
-.It Xo
-.Fl f Ns ,
-.Fl -fork
-.Xc
-fork before starting to delete messages
-.It Xo
-.Fl l Ns ,
-.Fl -leave
-.Xc
-don't delete fetched mail
-.It Xo
-.Fl -from
-.Xc
-behave like from.
-.It Xo
-.Fl c Ns ,
-.Fl -count
-.Xc
-first print how many messages and bytes there are.
-.It Xo
-.Fl -header
-.Xc
-which header from should print.
-.It Xo
-.Fl p Ar port-spec Ns ,
-.Fl -port= Ns Ar port-spec
-.Xc
-use this port instead of the default
-.Ql kpop
-or
-.Ql 1109 .
-.El
-
-The default is to first try Kerberos 5 authentication and then, if
-that fails, Kerberos 4.
-.Sh ENVIRONMENT
-
-.Bl -tag -width Ds
-.It Ev MAILHOST
-points to the post office, if no other hostname is specified.
-.El
-.\".Sh FILES
-.Sh EXAMPLES
-.Bd -literal -offset indent
-$ push cornfield:roosta ~/.gnus-crash-box
-.Ed
-
-tries to fetch mail for the user
-.Ar roosta
-from the post office at
-.Dq cornfield ,
-and stores the mail in
-.Pa ~/.gnus-crash-box
-(you are using Gnus, aren't you?)
-.Bd -literal -offset indent
-$ push --from -5 havregryn
-.Ed
-
-tries to fetch
-.Nm From:
-lines for current user at post office
-.Dq havregryn
-using Kerberos 5.
-.\".Sh DIAGNOSTICS
-.Sh SEE ALSO
-.Xr movemail 8 ,
-.Xr popper 8 ,
-.Xr from 1 ,
-.Xr pfrom 1
-.\".Sh STANDARDS
-.Sh HISTORY
-.Nm
-was written while waiting for
-.Nm movemail
-to finish getting the mail.
-.\".Sh AUTHORS
-.\".Sh BUGS
diff --git a/crypto/kerberosIV/appl/push/push.c b/crypto/kerberosIV/appl/push/push.c
deleted file mode 100644
index bc7574f..0000000
--- a/crypto/kerberosIV/appl/push/push.c
+++ /dev/null
@@ -1,795 +0,0 @@
-/*
- * Copyright (c) 1997-1999 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#include "push_locl.h"
-RCSID("$Id: push.c,v 1.34.2.1 1999/12/06 17:25:28 assar Exp $");
-
-#ifdef KRB4
-static int use_v4 = -1;
-#endif
-
-#ifdef KRB5
-static int use_v5 = -1;
-static krb5_context context;
-#endif
-
-static char *port_str;
-static int verbose_level;
-static int do_fork;
-static int do_leave;
-static int do_version;
-static int do_help;
-static int do_from;
-static int do_count;
-static char *header_str;
-
-struct getargs args[] = {
-#ifdef KRB4
- { "krb4", '4', arg_flag, &use_v4, "Use Kerberos V4",
- NULL },
-#endif
-#ifdef KRB5
- { "krb5", '5', arg_flag, &use_v5, "Use Kerberos V5",
- NULL },
-#endif
- { "verbose",'v', arg_counter, &verbose_level, "Verbose",
- NULL },
- { "fork", 'f', arg_flag, &do_fork, "Fork deleting proc",
- NULL },
- { "leave", 'l', arg_flag, &do_leave, "Leave mail on server",
- NULL },
- { "port", 'p', arg_string, &port_str, "Use this port",
- "number-or-service" },
- { "from", 0, arg_flag, &do_from, "Behave like from",
- NULL },
- { "header", 0, arg_string, &header_str, "Header string to print", NULL },
- { "count", 'c', arg_flag, &do_count, "Print number of messages", NULL},
- { "version", 0, arg_flag, &do_version, "Print version",
- NULL },
- { "help", 0, arg_flag, &do_help, NULL,
- NULL }
-
-};
-
-static void
-usage (int ret)
-{
- arg_printusage (args,
- sizeof(args) / sizeof(args[0]),
- NULL,
- "[[{po:username[@hostname] | hostname[:username]}] ...]"
- "filename");
- exit (ret);
-}
-
-static int
-do_connect (const char *hostname, int port, int nodelay)
-{
- struct hostent *hostent = NULL;
- char **h;
- int error;
- int af;
- int s;
-
-#ifdef HAVE_IPV6
- if (hostent == NULL)
- hostent = getipnodebyname (hostname, AF_INET6, 0, &error);
-#endif
- if (hostent == NULL)
- hostent = getipnodebyname (hostname, AF_INET, 0, &error);
-
- if (hostent == NULL)
- errx(1, "gethostbyname '%s' failed: %s", hostname, hstrerror(error));
-
- af = hostent->h_addrtype;
-
- for (h = hostent->h_addr_list; *h != NULL; ++h) {
- struct sockaddr_storage sa_ss;
- struct sockaddr *sa = (struct sockaddr *)&sa_ss;
-
- sa->sa_family = af;
- socket_set_address_and_port (sa, *h, port);
-
- s = socket (af, SOCK_STREAM, 0);
- if (s < 0)
- err (1, "socket");
- if (connect(s, sa, socket_sockaddr_size(sa)) < 0) {
- warn ("connect(%s)", hostname);
- close (s);
- continue;
- } else {
- break;
- }
- }
- freehostent (hostent);
- if (*h == NULL)
- return -1;
- if(setsockopt(s, IPPROTO_TCP, TCP_NODELAY,
- (void *)&nodelay, sizeof(nodelay)) < 0)
- err (1, "setsockopt TCP_NODELAY");
- return s;
-}
-
-typedef enum { INIT = 0, GREET, USER, PASS, STAT, RETR, TOP,
- DELE, XDELE, QUIT} pop_state;
-
-#define PUSH_BUFSIZ 65536
-
-#define STEP 16
-
-struct write_state {
- struct iovec *iovecs;
- size_t niovecs, maxiovecs, allociovecs;
- int fd;
-};
-
-static void
-write_state_init (struct write_state *w, int fd)
-{
-#ifdef UIO_MAXIOV
- w->maxiovecs = UIO_MAXIOV;
-#else
- w->maxiovecs = 16;
-#endif
- w->allociovecs = min(STEP, w->maxiovecs);
- w->niovecs = 0;
- w->iovecs = malloc(w->allociovecs * sizeof(*w->iovecs));
- if (w->iovecs == NULL)
- err (1, "malloc");
- w->fd = fd;
-}
-
-static void
-write_state_add (struct write_state *w, void *v, size_t len)
-{
- if(w->niovecs == w->allociovecs) {
- if(w->niovecs == w->maxiovecs) {
- if(writev (w->fd, w->iovecs, w->niovecs) < 0)
- err(1, "writev");
- w->niovecs = 0;
- } else {
- w->allociovecs = min(w->allociovecs + STEP, w->maxiovecs);
- w->iovecs = realloc (w->iovecs,
- w->allociovecs * sizeof(*w->iovecs));
- if (w->iovecs == NULL)
- errx (1, "realloc");
- }
- }
- w->iovecs[w->niovecs].iov_base = v;
- w->iovecs[w->niovecs].iov_len = len;
- ++w->niovecs;
-}
-
-static void
-write_state_flush (struct write_state *w)
-{
- if (w->niovecs) {
- if (writev (w->fd, w->iovecs, w->niovecs) < 0)
- err (1, "writev");
- w->niovecs = 0;
- }
-}
-
-static void
-write_state_destroy (struct write_state *w)
-{
- free (w->iovecs);
-}
-
-static int
-doit(int s,
- const char *host,
- const char *user,
- const char *outfilename,
- const char *header_str,
- int leavep,
- int verbose,
- int forkp)
-{
- int ret;
- char out_buf[PUSH_BUFSIZ];
- size_t out_len = 0;
- char in_buf[PUSH_BUFSIZ + 1]; /* sentinel */
- size_t in_len = 0;
- char *in_ptr = in_buf;
- pop_state state = INIT;
- unsigned count, bytes;
- unsigned asked_for = 0, retrieved = 0, asked_deleted = 0, deleted = 0;
- unsigned sent_xdele = 0;
- int out_fd;
- char from_line[128];
- size_t from_line_length;
- time_t now;
- struct write_state write_state;
-
- if (do_from) {
- out_fd = -1;
- if (verbose)
- fprintf (stderr, "%s@%s\n", user, host);
- } else {
- out_fd = open(outfilename, O_WRONLY | O_APPEND | O_CREAT, 0666);
- if (out_fd < 0)
- err (1, "open %s", outfilename);
- if (verbose)
- fprintf (stderr, "%s@%s -> %s\n", user, host, outfilename);
- }
-
- now = time(NULL);
- from_line_length = snprintf (from_line, sizeof(from_line),
- "From %s %s", "push", ctime(&now));
-
- out_len = snprintf (out_buf, sizeof(out_buf),
- "USER %s\r\nPASS hej\r\nSTAT\r\n",
- user);
- if (net_write (s, out_buf, out_len) != out_len)
- err (1, "write");
- if (verbose > 1)
- write (STDERR_FILENO, out_buf, out_len);
-
- if (!do_from)
- write_state_init (&write_state, out_fd);
-
- while(state != QUIT) {
- fd_set readset, writeset;
-
- FD_ZERO(&readset);
- FD_ZERO(&writeset);
- FD_SET(s,&readset);
- if (((state == STAT || state == RETR || state == TOP)
- && asked_for < count)
- || (state == XDELE && !sent_xdele)
- || (state == DELE && asked_deleted < count))
- FD_SET(s,&writeset);
- ret = select (s + 1, &readset, &writeset, NULL, NULL);
- if (ret < 0) {
- if (errno == EAGAIN)
- continue;
- else
- err (1, "select");
- }
-
- if (FD_ISSET(s, &readset)) {
- char *beg, *p;
- size_t rem;
- int blank_line = 0;
-
- ret = read (s, in_ptr, sizeof(in_buf) - in_len - 1);
- if (ret < 0)
- err (1, "read");
- else if (ret == 0)
- errx (1, "EOF during read");
-
- in_len += ret;
- in_ptr += ret;
- *in_ptr = '\0';
-
- beg = in_buf;
- rem = in_len;
- while(rem > 1
- && (p = strstr(beg, "\r\n")) != NULL) {
- if (state == TOP) {
- char *copy = beg;
-
- if (strncasecmp(copy,
- header_str,
- min(p - copy + 1, strlen(header_str))) == 0) {
- fprintf (stdout, "%.*s\n", (int)(p - copy), copy);
- }
- if (beg[0] == '.' && beg[1] == '\r' && beg[2] == '\n') {
- state = STAT;
- if (++retrieved == count) {
- state = QUIT;
- net_write (s, "QUIT\r\n", 6);
- if (verbose > 1)
- net_write (STDERR_FILENO, "QUIT\r\n", 6);
- }
- }
- rem -= p - beg + 2;
- beg = p + 2;
- } else if (state == RETR) {
- char *copy = beg;
- if (beg[0] == '.') {
- if (beg[1] == '\r' && beg[2] == '\n') {
- if(!blank_line)
- write_state_add(&write_state, "\n", 1);
- state = STAT;
- rem -= p - beg + 2;
- beg = p + 2;
- if (++retrieved == count) {
- write_state_flush (&write_state);
- if (fsync (out_fd) < 0)
- err (1, "fsync");
- close(out_fd);
- if (leavep) {
- state = QUIT;
- net_write (s, "QUIT\r\n", 6);
- if (verbose > 1)
- net_write (STDERR_FILENO, "QUIT\r\n", 6);
- } else {
- if (forkp) {
- pid_t pid;
-
- pid = fork();
- if (pid < 0)
- warn ("fork");
- else if(pid != 0) {
- if(verbose)
- fprintf (stderr,
- "(exiting)");
- return 0;
- }
- }
-
- state = XDELE;
- if (verbose)
- fprintf (stderr, "deleting... ");
- }
- }
- continue;
- } else
- ++copy;
- }
- *p = '\n';
- if(blank_line &&
- strncmp(copy, "From ", min(p - copy + 1, 5)) == 0)
- write_state_add(&write_state, ">", 1);
- write_state_add(&write_state, copy, p - copy + 1);
- blank_line = (*copy == '\n');
- rem -= p - beg + 2;
- beg = p + 2;
- } else if (rem >= 3 && strncmp (beg, "+OK", 3) == 0) {
- if (state == STAT) {
- if (!do_from)
- write_state_add(&write_state,
- from_line, from_line_length);
- blank_line = 0;
- if (do_from)
- state = TOP;
- else
- state = RETR;
- } else if (state == XDELE) {
- state = QUIT;
- net_write (s, "QUIT\r\n", 6);
- if (verbose > 1)
- net_write (STDERR_FILENO, "QUIT\r\n", 6);
- break;
- } else if (state == DELE) {
- if (++deleted == count) {
- state = QUIT;
- net_write (s, "QUIT\r\n", 6);
- if (verbose > 1)
- net_write (STDERR_FILENO, "QUIT\r\n", 6);
- break;
- }
- } else if (++state == STAT) {
- if(sscanf (beg + 4, "%u %u", &count, &bytes) != 2)
- errx(1, "Bad STAT-line: %.*s", (int)(p - beg), beg);
- if (verbose) {
- fprintf (stderr, "%u message(s) (%u bytes). "
- "fetching... ",
- count, bytes);
- if (do_from)
- fprintf (stderr, "\n");
- } else if (do_count) {
- fprintf (stderr, "%u message(s) (%u bytes).\n",
- count, bytes);
- }
- if (count == 0) {
- state = QUIT;
- net_write (s, "QUIT\r\n", 6);
- if (verbose > 1)
- net_write (STDERR_FILENO, "QUIT\r\n", 6);
- break;
- }
- }
-
- rem -= p - beg + 2;
- beg = p + 2;
- } else {
- if(state == XDELE) {
- state = DELE;
- rem -= p - beg + 2;
- beg = p + 2;
- } else
- errx (1, "Bad response: %.*s", (int)(p - beg), beg);
- }
- }
- if (!do_from)
- write_state_flush (&write_state);
-
- memmove (in_buf, beg, rem);
- in_len = rem;
- in_ptr = in_buf + rem;
- }
- if (FD_ISSET(s, &writeset)) {
- if ((state == STAT && !do_from) || state == RETR)
- out_len = snprintf (out_buf, sizeof(out_buf),
- "RETR %u\r\n", ++asked_for);
- else if ((state == STAT && do_from) || state == TOP)
- out_len = snprintf (out_buf, sizeof(out_buf),
- "TOP %u 0\r\n", ++asked_for);
- else if(state == XDELE) {
- out_len = snprintf(out_buf, sizeof(out_buf),
- "XDELE %u %u\r\n", 1, count);
- sent_xdele++;
- }
- else if(state == DELE)
- out_len = snprintf (out_buf, sizeof(out_buf),
- "DELE %u\r\n", ++asked_deleted);
- if (net_write (s, out_buf, out_len) != out_len)
- err (1, "write");
- if (verbose > 1)
- write (STDERR_FILENO, out_buf, out_len);
- }
- }
- if (verbose)
- fprintf (stderr, "Done\n");
- if (!do_from)
- write_state_destroy (&write_state);
- return 0;
-}
-
-#ifdef KRB5
-static int
-do_v5 (const char *host,
- int port,
- const char *user,
- const char *filename,
- const char *header_str,
- int leavep,
- int verbose,
- int forkp)
-{
- krb5_error_code ret;
- krb5_auth_context auth_context = NULL;
- krb5_principal server;
- int s;
-
- s = do_connect (host, port, 1);
- if (s < 0)
- return 1;
-
- ret = krb5_sname_to_principal (context,
- host,
- "pop",
- KRB5_NT_SRV_HST,
- &server);
- if (ret) {
- warnx ("krb5_sname_to_principal: %s",
- krb5_get_err_text (context, ret));
- return 1;
- }
-
- ret = krb5_sendauth (context,
- &auth_context,
- &s,
- "KPOPV1.0",
- NULL,
- server,
- 0,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- NULL);
- krb5_free_principal (context, server);
- if (ret) {
- warnx ("krb5_sendauth: %s",
- krb5_get_err_text (context, ret));
- return 1;
- }
- return doit (s, host, user, filename, header_str, leavep, verbose, forkp);
-}
-#endif
-
-#ifdef KRB4
-static int
-do_v4 (const char *host,
- int port,
- const char *user,
- const char *filename,
- const char *header_str,
- int leavep,
- int verbose,
- int forkp)
-{
- KTEXT_ST ticket;
- MSG_DAT msg_data;
- CREDENTIALS cred;
- des_key_schedule sched;
- int s;
- int ret;
-
- s = do_connect (host, port, 1);
- if (s < 0)
- return 1;
- ret = krb_sendauth(0,
- s,
- &ticket,
- "pop",
- (char *)host,
- krb_realmofhost(host),
- getpid(),
- &msg_data,
- &cred,
- sched,
- NULL,
- NULL,
- "KPOPV0.1");
- if(ret) {
- warnx("krb_sendauth: %s", krb_get_err_text(ret));
- return 1;
- }
- return doit (s, host, user, filename, header_str, leavep, verbose, forkp);
-}
-#endif /* KRB4 */
-
-#ifdef HESIOD
-
-#ifdef HESIOD_INTERFACES
-
-static char *
-hesiod_get_pobox (const char **user)
-{
- void *context;
- struct hesiod_postoffice *hpo;
- char *ret = NULL;
-
- if(hesiod_init (&context) != 0)
- err (1, "hesiod_init");
-
- hpo = hesiod_getmailhost (context, *user);
- if (hpo == NULL) {
- warn ("hesiod_getmailhost %s", *user);
- } else {
- if (strcasecmp(hpo->hesiod_po_type, "pop") != 0)
- errx (1, "Unsupported po type %s", hpo->hesiod_po_type);
-
- ret = strdup(hpo->hesiod_po_host);
- if(ret == NULL)
- errx (1, "strdup: out of memory");
- *user = strdup(hpo->hesiod_po_name);
- if (*user == NULL)
- errx (1, "strdup: out of memory");
- hesiod_free_postoffice (context, hpo);
- }
- hesiod_end (context);
- return ret;
-}
-
-#else /* !HESIOD_INTERFACES */
-
-static char *
-hesiod_get_pobox (const char **user)
-{
- char *ret = NULL;
- struct hes_postoffice *hpo;
-
- hpo = hes_getmailhost (*user);
- if (hpo == NULL) {
- warn ("hes_getmailhost %s", *user);
- } else {
- if (strcasecmp(hpo->po_type, "pop") != 0)
- errx (1, "Unsupported po type %s", hpo->po_type);
-
- ret = strdup(hpo->po_host);
- if(ret == NULL)
- errx (1, "strdup: out of memory");
- *user = strdup(hpo->po_name);
- if (*user == NULL)
- errx (1, "strdup: out of memory");
- }
- return ret;
-}
-
-#endif /* HESIOD_INTERFACES */
-
-#endif /* HESIOD */
-
-static char *
-get_pobox (const char **user)
-{
- char *ret = NULL;
-
-#ifdef HESIOD
- ret = hesiod_get_pobox (user);
-#endif
-
- if (ret == NULL)
- ret = getenv("MAILHOST");
- if (ret == NULL)
- errx (1, "MAILHOST not set");
- return ret;
-}
-
-static void
-parse_pobox (char *a0, const char **host, const char **user)
-{
- const char *h, *u;
- char *p;
- int po = 0;
-
- if (a0 == NULL) {
-
- *user = getenv ("USERNAME");
- if (*user == NULL) {
- struct passwd *pwd = getpwuid (getuid ());
-
- if (pwd == NULL)
- errx (1, "Who are you?");
- *user = strdup (pwd->pw_name);
- if (*user == NULL)
- errx (1, "strdup: out of memory");
- }
- *host = get_pobox (user);
- return;
- }
-
- /* if the specification starts with po:, remember this information */
- if(strncmp(a0, "po:", 3) == 0) {
- a0 += 3;
- po++;
- }
- /* if there is an `@', the hostname is after it, otherwise at the
- beginning of the string */
- p = strchr(a0, '@');
- if(p != NULL) {
- *p++ = '\0';
- h = p;
- } else {
- h = a0;
- }
- /* if there is a `:', the username comes before it, otherwise at
- the beginning of the string */
- p = strchr(a0, ':');
- if(p != NULL) {
- *p++ = '\0';
- u = p;
- } else {
- u = a0;
- }
- if(h == u) {
- /* some inconsistent compatibility with various mailers */
- if(po) {
- h = get_pobox (&u);
- } else {
- u = get_default_username ();
- if (u == NULL)
- errx (1, "Who are you?");
- }
- }
- *host = h;
- *user = u;
-}
-
-int
-main(int argc, char **argv)
-{
- int port = 0;
- int optind = 0;
- int ret = 1;
- const char *host, *user, *filename = NULL;
- char *pobox = NULL;
-
- set_progname (argv[0]);
-
-#ifdef KRB5
- krb5_init_context (&context);
-#endif
-
- if (getarg (args, sizeof(args) / sizeof(args[0]), argc, argv,
- &optind))
- usage (1);
-
- argc -= optind;
- argv += optind;
-
-#if defined(KRB4) && defined(KRB5)
- if(use_v4 == -1 && use_v5 == 1)
- use_v4 = 0;
- if(use_v5 == -1 && use_v4 == 1)
- use_v5 = 0;
-#endif
-
- if (do_help)
- usage (0);
-
- if (do_version) {
- print_version(NULL);
- return 0;
- }
-
- if (do_from && header_str == NULL)
- header_str = "From:";
- else if (header_str != NULL)
- do_from = 1;
-
- if (do_from) {
- if (argc == 0)
- pobox = NULL;
- else if (argc == 1)
- pobox = argv[0];
- else
- usage (1);
- } else {
- if (argc == 1) {
- filename = argv[0];
- pobox = NULL;
- } else if (argc == 2) {
- filename = argv[1];
- pobox = argv[0];
- } else
- usage (1);
- }
-
- 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);
- }
- }
- if (port == 0)
-#ifdef KRB5
- port = krb5_getportbyname (context, "kpop", "tcp", 1109);
-#elif defined(KRB4)
- port = k_getportbyname ("kpop", "tcp", 1109);
-#else
-#error must define KRB4 or KRB5
-#endif
-
- parse_pobox (pobox, &host, &user);
-
-#ifdef KRB5
- if (ret && use_v5) {
- ret = do_v5 (host, port, user, filename, header_str,
- do_leave, verbose_level, do_fork);
- }
-#endif
-
-#ifdef KRB4
- if (ret && use_v4) {
- ret = do_v4 (host, port, user, filename, header_str,
- do_leave, verbose_level, do_fork);
- }
-#endif /* KRB4 */
- return ret;
-}
diff --git a/crypto/kerberosIV/appl/push/push.cat8 b/crypto/kerberosIV/appl/push/push.cat8
deleted file mode 100644
index 1c0b7a4..0000000
--- a/crypto/kerberosIV/appl/push/push.cat8
+++ /dev/null
@@ -1,77 +0,0 @@
-
-PUSH(8) System Manager's Manual PUSH(8)
-
-NNAAMMEE
- ppuusshh - fetch mail via POP
-
-SSYYNNOOPPSSIISS
- ppuusshh [--44 | ----kkrrbb44] [--55 | ----kkrrbb55] [--vv | ----vveerrbboossee] [--ff | ----ffoorrkk] [--ll |
- ----lleeaavvee] [----ffrroomm] [--cc | ----ccoouunntt] [----hheeaaddeerr] [--pp _p_o_r_t_-_s_p_e_c | ----ppoorrtt==_p_o_r_t_-
- _s_p_e_c] _p_o_-_b_o_x _f_i_l_e_n_a_m_e
-
-DDEESSCCRRIIPPTTIIOONN
- ppuusshh retrieves mail from the post office box _p_o_-_b_o_x, and stores the mail
- in mbox format in _f_i_l_e_n_a_m_e. The _p_o_-_b_o_x can have any of the following for-
- mats:
- `hostname:username'
- `po:hostname:username'
- `username@hostname'
- `po:username@hostname'
- `hostname'
- `po:username'
-
- If no username is specified, ppuusshh assumes that it's the same as on the
- local machine; _h_o_s_t_n_a_m_e defaults to the value of the MAILHOST environment
- variable.
-
- Supported options:
-
- --44, ----kkrrbb44
- use Kerberos 4 (if compiled with support for Kerberos 4)
-
- --55, ----kkrrbb55
- use Kerberos 5 (if compiled with support for Kerberos 5)
-
- --ff, ----ffoorrkk
- fork before starting to delete messages
-
- --ll, ----lleeaavvee
- don't delete fetched mail
-
- ----ffrroomm behave like from.
-
- --cc, ----ccoouunntt
- first print how many messages and bytes there are.
-
- ----hheeaaddeerr
- which header from should print.
-
- --pp _p_o_r_t_-_s_p_e_c, ----ppoorrtt==_p_o_r_t_-_s_p_e_c
- use this port instead of the default `kpop' or `1109'.
-
- The default is to first try Kerberos 5 authentication and then, if that
- fails, Kerberos 4.
-
-EENNVVIIRROONNMMEENNTT
- MAILHOST
- points to the post office, if no other hostname is specified.
-
-EEXXAAMMPPLLEESS
- $ push cornfield:roosta ~/.gnus-crash-box
-
- tries to fetch mail for the user _r_o_o_s_t_a from the post office at
- ``cornfield'', and stores the mail in _~_/_._g_n_u_s_-_c_r_a_s_h_-_b_o_x (you are using
- Gnus, aren't you?)
-
- $ push --from -5 havregryn
-
- tries to fetch FFrroomm:: lines for current user at post office ``havregryn''
- using Kerberos 5.
-
-SSEEEE AALLSSOO
- movemail(8), popper(8), from(1), pfrom(1)
-
-HHIISSTTOORRYY
- ppuusshh was written while waiting for mmoovveemmaaiill to finish getting the mail.
-
- HEIMDAL May 31, 1998 2
diff --git a/crypto/kerberosIV/appl/push/push_locl.h b/crypto/kerberosIV/appl/push/push_locl.h
deleted file mode 100644
index 1e5ca78..0000000
--- a/crypto/kerberosIV/appl/push/push_locl.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (c) 1997, 1998 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-/* $Id: push_locl.h,v 1.6 1999/12/02 16:58:33 joda Exp $ */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#ifdef HAVE_FCNTL_H
-#include <fcntl.h>
-#endif
-#ifdef HAVE_ERRNO_H
-#include <errno.h>
-#endif
-#include <ctype.h>
-#include <limits.h>
-#include <time.h>
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_SELECT_H
-#include <sys/select.h>
-#endif
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#ifdef HAVE_SYS_UIO_H
-#include <sys/uio.h>
-#endif
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-#ifdef HAVE_NETINET_IN6_H
-#include <netinet/in6.h>
-#endif
-#ifdef HAVE_NETINET6_IN6_H
-#include <netinet6/in6.h>
-#endif
-#ifdef HAVE_NETINET_TCP_H
-#include <netinet/tcp.h>
-#endif
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-#ifdef HAVE_PWD_H
-#include <pwd.h>
-#endif
-#ifdef HESIOD
-#include <hesiod.h>
-#endif
-
-#include <roken.h>
-#include <err.h>
-#include <getarg.h>
-#ifdef KRB5
-#include <krb5.h>
-#endif
-
-#ifdef KRB4
-#include <krb.h>
-#endif
OpenPOWER on IntegriCloud