head	1.3;
access;
symbols
	TIGRIS_1_0_8_1:1.3
	TIGRIS_1_0_8_0:1.3
	TIGRIS_1_0_4:1.3;
locks; strict;
comment	@# @;


1.3
date	2001.03.26.20.26.18;	author edk;	state Exp;
branches;
next	1.2;

1.2
date	2000.12.13.02.08.49;	author edk;	state Exp;
branches;
next	1.1;

1.1
date	2000.11.29.19.12.09;	author edk;	state Exp;
branches;
next	;


desc
@@


1.3
log
@linking on solaris 8 is weird ; no nested archives, and symbols are only
included from libraries if they've been referenced by the time the library
is mentioned on the command line (ie. if they're referenced by a
subsequent file, that's not enough).
@
text
@--- Makefile.orig	Mon Nov 27 19:20:43 2000
+++ Makefile	Mon Nov 27 18:41:29 2000
@@@@ -350,9 +350,9 @@@@
 ezmlm-gate: \
 load ezmlm-gate.o subdb.a auto_bin.o getopt.a getln.a env.a sig.a strerr.a \
 stralloc.a alloc.a error.a str.a case.a wait.a substdio.a open.a lock.a \
-fs.a getconf.o slurpclose.o slurp.o seek.a conf-sqlld
+fs.a getconf.o slurpclose.o slurp.o seek.a get_header.a seek.a conf-sqlld
 	./load ezmlm-gate subdb.a getconf.o slurpclose.o slurp.o \
-	getopt.a getln.a auto_bin.o env.a sig.a fs.a \
+	getopt.a getln.a auto_bin.o env.a sig.a fs.a get_header.a \
 	strerr.a substdio.a stralloc.a alloc.a error.a str.a case.a wait.a \
 	open.a lock.a seek.a ${SQLLD}
 
@@@@ -362,7 +362,7 @@@@
 
 ezmlm-gate.o: \
 compile ezmlm-gate.c idx.h errtxt.h subscribe.h auto_bin.h \
-sgetopt.h subgetopt.h substdio.h getconf.h \
+sgetopt.h subgetopt.h substdio.h getconf.h get_header.h substdio.h \
 env.h sig.h strerr.h stralloc.h alloc.h error.h str.h case.h \
 fork.h wait.h exit.h getln.h open.h
 	./compile ezmlm-gate.c
@@@@ -469,19 +469,20 @@@@
 
 ezmlm-issubn: \
 load ezmlm-issubn.o subdb.a getconf.o slurpclose.o slurp.o \
-env.a fs.a strerr.a getln.a getopt.a conf-sqlld \
-substdio.a stralloc.a alloc.a error.a str.a case.a open.a lock.a
+env.a fs.a strerr.a getln.a getopt.a conf-sqlld get_header.a seek.a \
+substdio.a stralloc.a alloc.a error.a str.a case.a open.a lock.a get_header.a
 	./load ezmlm-issubn subdb.a getconf.o slurpclose.o slurp.o \
-	getopt.a env.a fs.a strerr.a \
+	getopt.a env.a fs.a strerr.a get_header.a substdio.a \
 	getln.a substdio.a stralloc.a alloc.a error.a str.a case.a \
-	open.a lock.a ${SQLLD}
+	open.a lock.a seek.a ${SQLLD}
 
 ezmlm-issubn.0: \
 ezmlm-issubn.1
 	nroff -man ezmlm-issubn.1 > ezmlm-issubn.0
 
 ezmlm-issubn.o: \
-compile ezmlm-issubn.c strerr.h subscribe.h env.h errtxt.h sgetopt.h idx.h
+compile ezmlm-issubn.c strerr.h subscribe.h env.h errtxt.h sgetopt.h idx.h \
+substdio.h readwrite.h
 	./compile ezmlm-issubn.c
 
 ezmlm-limit: \
@@@@ -1280,6 +1281,14 @@@@
 stralloc.0: \
 stralloc.3
 	nroff -man stralloc.3 > stralloc.0
+
+get_header.o: \
+compile get_header.c get_header.h substdio.h seek.h stralloc.h strerr.h \
+	./compile get_header.c
+
+get_header.a: \
+makelib get_header.o
+	./makelib get_header.a get_header.o stralloc.a strerr.a 
 
 stralloc.a: \
 makelib stralloc_eady.o stralloc_pend.o stralloc_copy.o \
--- ezmlm-gate.c.orig	Mon Nov 27 19:20:49 2000
+++ ezmlm-gate.c	Mon Nov 27 19:40:19 2000
@@@@ -17,12 +17,18 @@@@
 #include "errtxt.h"
 #include "idx.h"
 #include "subscribe.h"
+#include "get_header.h"
+#include "substdio.h"
+#include "readwrite.h"
 
 #define FATAL "ezmlm-gate: fatal: "
 
+char buf0[256];
+substdio ssin = SUBSTDIO_FDBUF(read,0,buf0,(int) sizeof(buf0));
+
 void die_usage()
 {
-  strerr_die1x(100,"ezmlm-gate: usage: ezmlm-gate [-cCmMpPqrRsSvV] "
+  strerr_die1x(100,"ezmlm-gate: usage: ezmlm-gate [-fFcCmMpPqrRsSvV] "
 			"dir [moddir [...]]");
 }
 void die_nomem() { strerr_die2x(111,FATAL,ERR_NOMEM); }
@@@@ -89,6 +95,9 @@@@
   int opt;
   int ret = 0;
   unsigned int i,j,k;
+  int usefrom = 1;
+
+  char *from_addr = (char *)0;
 
   umask(022);
   sig_pipeignore();
@@@@ -98,7 +107,7 @@@@
   if (!stralloc_copys(&storeopt," -")) die_nomem();
 
   while ((opt = getopt(argc,argv,
-      "cCmMpPq:Q:sSrRt:T:vV")) != opteof)
+      "fFcCmMpPq:Q:sSrRt:T:vV")) != opteof)
     switch(opt) {	/* pass on unrecognized options */
       case 'c':			/* ezmlm-send flags */
       case 'C':
@@@@ -116,6 +125,8 @@@@
         szchar[0] = opt;
         if (!stralloc_append(&storeopt,szchar)) die_nomem();
         break;
+      case 'f': usefrom = 1; break;
+      case 'F': usefrom = 0; break;
       case 'q':			/* allow both qQ to be nice */
       case 'Q': if (optarg) queryext = optarg; break;
       case 'v':
@@@@ -124,6 +135,10 @@@@
         die_usage();
     }
 
+  if (usefrom) {
+    from_addr = get_from(&ssin);
+  }
+
   dir = argv[optind++];
   if (!dir) die_usage();
   if (chdir(dir) == -1)
@@@@ -155,8 +170,15 @@@@
   moddir = argv[optind++];
   if (moddir && !ret) {			/* if exit 0 and moddir, add issub */
     pmod = (char *) 0;
-    while (moddir && !pmod && sender) {
-      pmod = issub(moddir,sender,(char *) 0,FATAL);
+    while (moddir && !pmod && (sender || from_addr)) {
+      if (sender) {
+        pmod = issub(moddir,sender,(char *) 0,FATAL);
+      }
+      if (!pmod && from_addr) {
+        closesql();
+        pmod = issub(moddir,from_addr,(char *) 0,FATAL);
+      }
+
       closesql();
       moddir = argv[optind++];
     }
--- ezmlm-issubn.c.orig	Mon Nov 27 19:20:54 2000
+++ ezmlm-issubn.c	Mon Nov 27 19:05:59 2000
@@@@ -6,14 +6,21 @@@@
 #include "sgetopt.h"
 #include "errtxt.h"
 #include "idx.h"
+#include "get_header.h"
+#include "substdio.h"
+#include "readwrite.h"
 
 #define FATAL "ezmlm-issubn: fatal: "
 
+char buf0[256];
+substdio ssin = SUBSTDIO_FDBUF(read,0,buf0,(int) sizeof(buf0));
+
 void *psql = (void *) 0;
 
 void die_usage()
 {
-  strerr_die1x(100,"ezmlm-issubn: usage: ezmlm-issubn [-nN] dir [dir1 ...]");
+  strerr_die1x(100,
+      "ezmlm-issubn: usage: ezmlm-issubn [-fF] [-nN] dir [dir1 ...]");
 }
 
 void die_sender()
@@@@ -28,15 +35,19 @@@@
   char *dir;
   char *addr;
   int flagsub = 0;
+  int usefrom = 1;
   int opt;
+  char *from_addr = (char *)0;
 
   addr = env_get("SENDER");
   if (!addr) die_sender();	/* REQUIRE sender */
 
-  while ((opt = getopt(argc,argv,"nNvV")) != opteof)
+  while ((opt = getopt(argc,argv,"fFnNvV")) != opteof)
     switch(opt) {
       case 'n': flagsub = 99; break;
       case 'N': flagsub = 0; break;
+      case 'f': usefrom = 1; break;
+      case 'F': usefrom = 0; break;
       case 'v':
       case 'V': strerr_die2x(0,
 		"ezmlm-issubn version: ezmlm-0.53+",EZIDX_VERSION);
@@@@ -44,6 +55,11 @@@@
 	die_usage();
     }
 
+
+  if (usefrom) {
+    from_addr = get_from(&ssin);
+  }
+
   dir = argv[optind];
   if (chdir(dir) == -1)
     strerr_die4sys(111,FATAL,ERR_SWITCH,dir,": ");
@@@@ -54,6 +70,9 @@@@
     if (issub(dir,addr,(char *) 0,FATAL)) {
       closesql();
       _exit(flagsub);		/* subscriber */
+    } else if (from_addr && issub(dir, from_addr, (char *) 0, FATAL)) {
+      closesql();
+      _exit(flagsub);
     }
   }
   closesql();
@


1.2
log
@default to using the from header
@
text
@d8 1
a8 1
+fs.a getconf.o slurpclose.o slurp.o seek.a conf-sqlld get_header.a
d30 1
a30 1
+env.a fs.a strerr.a getln.a getopt.a conf-sqlld get_header.a \
d37 1
a37 1
+	open.a lock.a get_header.a ${SQLLD}
d61 1
a61 1
+	./makelib get_header.a get_header.o stralloc.a seek_set.o strerr.a 
@


1.1
log
@initial version of patches to make ezmlm test From as well as
envelope sender
@
text
@d91 1
a91 1
+  int usefrom = 0;
d173 1
a173 1
+  int usefrom = 0;
@

