home *** CD-ROM | disk | FTP | other *** search
- From: mj@dfv.rwth-aachen.de (Martin Junius)
- Newsgroups: alt.sources
- Subject: FIDOGATE 02/06
- Message-ID: <mj.675078331@suntex>
- Date: 24 May 91 09:45:31 GMT
-
- ---- Cut Here and feed the following to sh ----
- #!/bin/sh
- # This is part 02 of a multipart archive
- # ============= getdate.y ==============
- if test -f 'getdate.y' -a X"$1" != X"-c"; then
- echo 'x - skipping getdate.y (File already exists)'
- else
- echo 'x - extracting getdate.y (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'getdate.y' &&
- %token ID MONTH DAY MERIDIAN NUMBER UNIT MUNIT SUNIT ZONE DAYZONE AGO
- %{
- X /* Originally from: Steven M. Bellovin (unc!smb) */
- X /* Dept. of Computer Science */
- X /* University of North Carolina at Chapel Hill */
- X /* @(#)getdate.y 2.17 11/30/87 */
- X
- /* #include "defs.h" JF not used any more */
- #include <sys/types.h>
- #ifdef USG
- struct timeb
- {
- X time_t time;
- X unsigned short millitm;
- X short timezone;
- X short dstflag;
- };
- #else
- #include <sys/timeb.h>
- #endif
- #include <ctype.h>
- X
- #if defined(BSD4_2) || defined (BSD4_1C)
- #include <sys/time.h>
- #else /* sane */
- #include <time.h>
- #endif /* sane */
- X
- #ifdef __GNUC__
- #define alloca __builtin_alloca
- #else
- #ifdef sparc
- #include <alloca.h>
- #endif
- #endif
- X
- #define NULL 0
- #define daysec (24L*60L*60L)
- X static int timeflag, zoneflag, dateflag, dayflag, relflag;
- X static time_t relsec, relmonth;
- X static int hh, mm, ss, merid, day_light;
- X static int dayord, dayreq;
- X static int month, day, year;
- X static int ourzone;
- #define AM 1
- #define PM 2
- #define DAYLIGHT 1
- #define STANDARD 2
- #define MAYBE 3
- X
- static time_t timeconv();
- static time_t daylcorr();
- static lookup();
- X
- %}
- X
- %%
- timedate: /* empty */
- X | timedate item
- X ;
- X
- item: tspec
- X {timeflag++;}
- X | zone
- X {zoneflag++;}
- X | dtspec
- X {dateflag++;}
- X | dyspec
- X {dayflag++;}
- X | rspec
- X {relflag++;}
- X | nspec;
- X
- nspec: NUMBER
- X {if (timeflag && dateflag && !relflag) year = $1;
- X else if ($1 > 10000) {
- X dateflag++;
- X day= $1%100;
- X month= ($1/100)%100;
- X year = month/10000;
- X } else {timeflag++;hh = $1/100;mm = $1%100;ss = 0;merid = 24;}};
- X
- tspec: NUMBER MERIDIAN
- X {hh = $1; mm = 0; ss = 0; merid = $2;}
- X | NUMBER ':' NUMBER
- X {hh = $1; mm = $3; merid = 24;}
- X | NUMBER ':' NUMBER MERIDIAN
- X {hh = $1; mm = $3; merid = $4;}
- X | NUMBER ':' NUMBER NUMBER
- X {hh = $1; mm = $3; merid = 24;
- X day_light = STANDARD; ourzone = -($4%100 + 60*($4/100));}
- X | NUMBER ':' NUMBER ':' NUMBER
- X {hh = $1; mm = $3; ss = $5; merid = 24;}
- X | NUMBER ':' NUMBER ':' NUMBER MERIDIAN
- X {hh = $1; mm = $3; ss = $5; merid = $6;}
- X | NUMBER ':' NUMBER ':' NUMBER NUMBER
- X {hh = $1; mm = $3; ss = $5; merid = 24;
- X day_light = STANDARD; ourzone = -($6%100 + 60*($6/100));};
- X
- zone: ZONE
- X {ourzone = $1; day_light = STANDARD;}
- X | DAYZONE
- X {ourzone = $1; day_light = DAYLIGHT;};
- X
- dyspec: DAY
- X {dayord = 1; dayreq = $1;}
- X | DAY ','
- X {dayord = 1; dayreq = $1;}
- X | NUMBER DAY
- X {dayord = $1; dayreq = $2;};
- X
- dtspec: NUMBER '/' NUMBER
- X {month = $1; day = $3;}
- X | NUMBER '/' NUMBER '/' NUMBER
- X {month = $1; day = $3; year = $5;}
- X | MONTH NUMBER
- X {month = $1; day = $2;}
- X | MONTH NUMBER ',' NUMBER
- X {month = $1; day = $2; year = $4;}
- X | NUMBER MONTH
- X {month = $2; day = $1;}
- X | NUMBER MONTH NUMBER
- X {month = $2; day = $1; year = $3;};
- X
- X
- rspec: NUMBER UNIT
- X {relsec += 60L * $1 * $2;}
- X | NUMBER MUNIT
- X {relmonth += $1 * $2;}
- X | NUMBER SUNIT
- X {relsec += $1;}
- X | UNIT
- X {relsec += 60L * $1;}
- X | MUNIT
- X {relmonth += $1;}
- X | SUNIT
- X {relsec++;}
- X | rspec AGO
- X {relsec = -relsec; relmonth = -relmonth;};
- %%
- X
- static int mdays[12] =
- X {31, 0, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
- #define epoch 1970
- X
- extern struct tm *localtime();
- X
- static time_t
- dateconv(mm, dd, yy, h, m, s, mer, zone, dayflag)
- int mm, dd, yy, h, m, s, mer, zone, dayflag;
- {
- X time_t tod, jdate;
- X register int i;
- X
- X if (yy < 0) yy = -yy;
- X if (yy < 100) yy += 1900;
- X mdays[1] = 28 + (yy%4 == 0 && (yy%100 != 0 || yy%400 == 0));
- X if (yy < epoch || yy > 1999 || mm < 1 || mm > 12 ||
- X dd < 1 || dd > mdays[--mm]) return (-1);
- X jdate = dd-1;
- X for (i=0; i<mm; i++) jdate += mdays[i];
- X for (i = epoch; i < yy; i++) jdate += 365 + (i%4 == 0);
- X jdate *= daysec;
- X jdate += zone * 60L;
- X if ((tod = timeconv(h, m, s, mer)) < 0) return (-1);
- X jdate += tod;
- X if (dayflag==DAYLIGHT || (dayflag==MAYBE&&localtime(&jdate)->tm_isdst))
- X jdate += -1*60*60;
- X return (jdate);
- }
- X
- static time_t
- dayconv(ord, day, now)
- int ord, day; time_t now;
- {
- X register struct tm *loctime;
- X time_t tod;
- X
- X tod = now;
- X loctime = localtime(&tod);
- X tod += daysec * ((day - loctime->tm_wday + 7) % 7);
- X tod += 7*daysec*(ord<=0?ord:ord-1);
- X return daylcorr(tod, now);
- }
- X
- static time_t
- timeconv(hh, mm, ss, mer)
- register int hh, mm, ss, mer;
- {
- X if (mm < 0 || mm > 59 || ss < 0 || ss > 59) return (-1);
- X switch (mer) {
- X case AM: if (hh < 1 || hh > 12) return(-1);
- X return (60L * ((hh%12)*60L + mm)+ss);
- X case PM: if (hh < 1 || hh > 12) return(-1);
- X return (60L * ((hh%12 +12)*60L + mm)+ss);
- X case 24: if (hh < 0 || hh > 23) return (-1);
- X return (60L * (hh*60L + mm)+ss);
- X default: return (-1);
- X }
- }
- X
- static time_t
- monthadd(sdate, relmonth)
- time_t sdate, relmonth;
- {
- X struct tm *ltime;
- X time_t dateconv();
- X int mm, yy;
- X
- X if (relmonth == 0) return 0;
- X ltime = localtime(&sdate);
- X mm = 12*ltime->tm_year + ltime->tm_mon + relmonth;
- X yy = mm/12;
- X mm = mm%12 + 1;
- X return daylcorr(dateconv(mm, ltime->tm_mday, yy, ltime->tm_hour,
- X ltime->tm_min, ltime->tm_sec, 24, ourzone, MAYBE), sdate);
- }
- X
- static time_t
- daylcorr(future, now)
- time_t future, now;
- {
- X int fdayl, nowdayl;
- X
- X nowdayl = (localtime(&now)->tm_hour+1) % 24;
- X fdayl = (localtime(&future)->tm_hour+1) % 24;
- X return (future-now) + 60L*60L*(nowdayl-fdayl);
- }
- X
- static char *lptr;
- X
- static yylex()
- {
- X extern int yylval;
- X int sign;
- X register char c;
- X register char *p;
- X char idbuf[20];
- X int pcnt;
- X
- X for (;;) {
- X while (isspace(*lptr))
- X lptr++;
- X
- X if (isdigit(c = *lptr) || c == '-' || c == '+') {
- X if (c== '-' || c == '+') {
- X if (c=='-') sign = -1;
- X else sign = 1;
- X if (!isdigit(*++lptr)) {
- X /* yylval = sign; return (NUMBER); */
- X return yylex(); /* skip the '-' sign */
- X }
- X } else sign = 1;
- X yylval = 0;
- X while (isdigit(c = *lptr++))
- X yylval = 10*yylval + c - '0';
- X yylval *= sign;
- X lptr--;
- X return (NUMBER);
- X
- X } else if (isalpha(c)) {
- X p = idbuf;
- X while (isalpha(c = *lptr++) || c=='.')
- X if (p < &idbuf[sizeof(idbuf)-1]) *p++ = c;
- X *p = '\0';
- X lptr--;
- X return (lookup(idbuf));
- X }
- X
- X else if (c == '(') {
- X pcnt = 0;
- X do {
- X c = *lptr++;
- X if (c == '\0') return(c);
- X else if (c == '(') pcnt++;
- X else if (c == ')') pcnt--;
- X } while (pcnt > 0);
- X }
- X
- X else return (*lptr++);
- X }
- }
- X
- struct table {
- X char *name;
- X int type, value;
- };
- X
- static struct table mdtab[] = {
- X {"january", MONTH, 1},
- X {"february", MONTH, 2},
- X {"march", MONTH, 3},
- X {"april", MONTH, 4},
- X {"may", MONTH, 5},
- X {"june", MONTH, 6},
- X {"july", MONTH, 7},
- X {"august", MONTH, 8},
- X {"september", MONTH, 9},
- X {"sept", MONTH, 9},
- X {"october", MONTH, 10},
- X {"november", MONTH, 11},
- X {"december", MONTH, 12},
- X
- X {"sunday", DAY, 0},
- X {"monday", DAY, 1},
- X {"tuesday", DAY, 2},
- X {"tues", DAY, 2},
- X {"wednesday", DAY, 3},
- X {"wednes", DAY, 3},
- X {"thursday", DAY, 4},
- X {"thur", DAY, 4},
- X {"thurs", DAY, 4},
- X {"friday", DAY, 5},
- X {"saturday", DAY, 6},
- X {0, 0, 0}};
- X
- #define HRS *60
- #define HALFHR 30
- X
- static struct table mztab[] = {
- X {"a.m.", MERIDIAN, AM},
- X {"am", MERIDIAN, AM},
- X {"p.m.", MERIDIAN, PM},
- X {"pm", MERIDIAN, PM},
- X {"nst", ZONE, 3 HRS + HALFHR}, /* Newfoundland */
- X {"n.s.t.", ZONE, 3 HRS + HALFHR},
- X {"ast", ZONE, 4 HRS}, /* Atlantic */
- X {"a.s.t.", ZONE, 4 HRS},
- X {"adt", DAYZONE, 4 HRS},
- X {"a.d.t.", DAYZONE, 4 HRS},
- X {"est", ZONE, 5 HRS}, /* Eastern */
- X {"e.s.t.", ZONE, 5 HRS},
- X {"edt", DAYZONE, 5 HRS},
- X {"e.d.t.", DAYZONE, 5 HRS},
- X {"cst", ZONE, 6 HRS}, /* Central */
- X {"c.s.t.", ZONE, 6 HRS},
- X {"cdt", DAYZONE, 6 HRS},
- X {"c.d.t.", DAYZONE, 6 HRS},
- X {"mst", ZONE, 7 HRS}, /* Mountain */
- X {"m.s.t.", ZONE, 7 HRS},
- X {"mdt", DAYZONE, 7 HRS},
- X {"m.d.t.", DAYZONE, 7 HRS},
- X {"pst", ZONE, 8 HRS}, /* Pacific */
- X {"p.s.t.", ZONE, 8 HRS},
- X {"pdt", DAYZONE, 8 HRS},
- X {"p.d.t.", DAYZONE, 8 HRS},
- X {"yst", ZONE, 9 HRS}, /* Yukon */
- X {"y.s.t.", ZONE, 9 HRS},
- X {"ydt", DAYZONE, 9 HRS},
- X {"y.d.t.", DAYZONE, 9 HRS},
- X {"hst", ZONE, 10 HRS}, /* Hawaii */
- X {"h.s.t.", ZONE, 10 HRS},
- X {"hdt", DAYZONE, 10 HRS},
- X {"h.d.t.", DAYZONE, 10 HRS},
- X
- X {"gmt", ZONE, 0 HRS},
- X {"g.m.t.", ZONE, 0 HRS},
- X {"bst", DAYZONE, 0 HRS}, /* British Summer Time */
- X {"b.s.t.", DAYZONE, 0 HRS},
- X {"eet", ZONE, 0 HRS}, /* European Eastern Time */
- X {"e.e.t.", ZONE, 0 HRS},
- X {"eest", DAYZONE, 0 HRS}, /* European Eastern Summer Time */
- X {"e.e.s.t.", DAYZONE, 0 HRS},
- X {"met", ZONE, -1 HRS}, /* Middle European Time */
- X {"m.e.t.", ZONE, -1 HRS},
- X {"mest", DAYZONE, -1 HRS}, /* Middle European Summer Time */
- X {"m.e.s.t.", DAYZONE, -1 HRS},
- X {"wet", ZONE, -2 HRS }, /* Western European Time */
- X {"w.e.t.", ZONE, -2 HRS },
- X {"west", DAYZONE, -2 HRS}, /* Western European Summer Time */
- X {"w.e.s.t.", DAYZONE, -2 HRS},
- X
- X {"jst", ZONE, -9 HRS}, /* Japan Standard Time */
- X {"j.s.t.", ZONE, -9 HRS}, /* Japan Standard Time */
- X /* No daylight savings time */
- X
- X {"aest", ZONE, -10 HRS}, /* Australian Eastern Time */
- X {"a.e.s.t.", ZONE, -10 HRS},
- X {"aesst", DAYZONE, -10 HRS}, /* Australian Eastern Summer Time */
- X {"a.e.s.s.t.", DAYZONE, -10 HRS},
- X {"acst", ZONE, -(9 HRS + HALFHR)}, /* Australian Central Time */
- X {"a.c.s.t.", ZONE, -(9 HRS + HALFHR)},
- X {"acsst", DAYZONE, -(9 HRS + HALFHR)}, /* Australian Central Summer */
- X {"a.c.s.s.t.", DAYZONE, -(9 HRS + HALFHR)},
- X {"awst", ZONE, -8 HRS}, /* Australian Western Time */
- X {"a.w.s.t.", ZONE, -8 HRS}, /* (no daylight time there, I'm told */
- X {0, 0, 0}};
- X
- static struct table unittb[] = {
- X {"year", MUNIT, 12},
- X {"month", MUNIT, 1},
- X {"fortnight", UNIT, 14*24*60},
- X {"week", UNIT, 7*24*60},
- X {"day", UNIT, 1*24*60},
- X {"hour", UNIT, 60},
- X {"minute", UNIT, 1},
- X {"min", UNIT, 1},
- X {"second", SUNIT, 1},
- X {"sec", SUNIT, 1},
- X {0, 0, 0}};
- X
- static struct table othertb[] = {
- X {"tomorrow", UNIT, 1*24*60},
- X {"yesterday", UNIT, -1*24*60},
- X {"today", UNIT, 0},
- X {"now", UNIT, 0},
- X {"last", NUMBER, -1},
- X {"this", UNIT, 0},
- X {"next", NUMBER, 2},
- X {"first", NUMBER, 1},
- X /* {"second", NUMBER, 2}, */
- X {"third", NUMBER, 3},
- X {"fourth", NUMBER, 4},
- X {"fifth", NUMBER, 5},
- X {"sixth", NUMBER, 6},
- X {"seventh", NUMBER, 7},
- X {"eigth", NUMBER, 8},
- X {"ninth", NUMBER, 9},
- X {"tenth", NUMBER, 10},
- X {"eleventh", NUMBER, 11},
- X {"twelfth", NUMBER, 12},
- X {"ago", AGO, 1},
- X {0, 0, 0}};
- X
- static struct table milzone[] = {
- X {"a", ZONE, 1 HRS},
- X {"b", ZONE, 2 HRS},
- X {"c", ZONE, 3 HRS},
- X {"d", ZONE, 4 HRS},
- X {"e", ZONE, 5 HRS},
- X {"f", ZONE, 6 HRS},
- X {"g", ZONE, 7 HRS},
- X {"h", ZONE, 8 HRS},
- X {"i", ZONE, 9 HRS},
- X {"k", ZONE, 10 HRS},
- X {"l", ZONE, 11 HRS},
- X {"m", ZONE, 12 HRS},
- X {"n", ZONE, -1 HRS},
- X {"o", ZONE, -2 HRS},
- X {"p", ZONE, -3 HRS},
- X {"q", ZONE, -4 HRS},
- X {"r", ZONE, -5 HRS},
- X {"s", ZONE, -6 HRS},
- X {"t", ZONE, -7 HRS},
- X {"u", ZONE, -8 HRS},
- X {"v", ZONE, -9 HRS},
- X {"w", ZONE, -10 HRS},
- X {"x", ZONE, -11 HRS},
- X {"y", ZONE, -12 HRS},
- X {"z", ZONE, 0 HRS},
- X {0, 0, 0}};
- X
- static
- lookup(id)
- char *id;
- {
- #define gotit (yylval=i->value, i->type)
- X
- X char idvar[128];
- X register char *j, *k;
- X register struct table *i;
- X int abbrev;
- X
- X (void) strcpy(idvar, id);
- X j = idvar;
- X k = id - 1;
- X while (*++k)
- X *j++ = isupper(*k) ? tolower(*k) : *k;
- X *j = '\0';
- X
- X if (strlen(idvar) == 3)
- X abbrev = 1;
- X else
- X if (strlen(idvar) == 4 && idvar[3] == '.') {
- X abbrev = 1;
- X idvar[3] = '\0';
- X }
- X else
- X abbrev = 0;
- X
- X for (i = mdtab; i->name; i++) {
- X k = idvar;
- X for (j = i->name; *j++ == *k++;) {
- X if (abbrev && j == i->name+3)
- X return gotit;
- X if (j[-1] == 0)
- X return gotit;
- X }
- X }
- X
- X for (i = mztab; i->name; i++)
- X if (strcmp(i->name, idvar) == 0)
- X return gotit;
- X
- X for (i=mztab; i->name; i++)
- X if (strcmp(i->name, idvar) == 0)
- X return gotit;
- X
- X for (i=unittb; i->name; i++)
- X if (strcmp(i->name, idvar) == 0)
- X return gotit;
- X
- X if (idvar[strlen(idvar)-1] == 's')
- X idvar[strlen(idvar)-1] = '\0';
- X
- X for (i=unittb; i->name; i++)
- X if (strcmp(i->name, idvar) == 0)
- X return gotit;
- X
- X for (i = othertb; i->name; i++)
- X if (strcmp(i->name, idvar) == 0)
- X return gotit;
- X
- X if (strlen(idvar) == 1 && isalpha(*idvar)) {
- X for (i = milzone; i->name; i++)
- X if (strcmp(i->name, idvar) == 0)
- X return gotit;
- X }
- X
- X return ID;
- }
- X
- time_t
- getdate(p, now)
- char *p;
- struct timeb *now;
- {
- #define mcheck(f) if (f>1) err++
- X time_t monthadd();
- X int err;
- X struct tm *lt;
- X struct timeb ftz;
- X
- X time_t sdate, tod;
- X
- X lptr = p;
- X if (now == ((struct timeb *) NULL)) {
- X now = &ftz;
- X ftime(&ftz);
- X }
- X lt = localtime(&now->time);
- X year = lt->tm_year;
- X month = lt->tm_mon+1;
- X day = lt->tm_mday;
- X relsec = 0; relmonth = 0;
- X timeflag=zoneflag=dateflag=dayflag=relflag=0;
- X ourzone = now->timezone;
- X day_light = MAYBE;
- X hh = mm = ss = 0;
- X merid = 24;
- X
- X if (err = yyparse()) return (-1);
- X
- X mcheck(timeflag);
- X mcheck(zoneflag);
- X mcheck(dateflag);
- X mcheck(dayflag);
- X
- X if (err) return (-1);
- X if (dateflag || timeflag || dayflag) {
- X sdate = dateconv(month,day,year,hh,mm,ss,merid,ourzone,day_light);
- X if (sdate < 0) return -1;
- X }
- X else {
- X sdate = now->time;
- X if (relflag == 0)
- X sdate -= (lt->tm_sec + lt->tm_min*60 +
- X lt->tm_hour*(60L*60L));
- X }
- X
- X sdate += relsec;
- X sdate += monthadd(sdate, relmonth);
- X
- X if (dayflag && !dateflag) {
- X tod = dayconv(dayord, dayreq, sdate);
- X sdate += tod;
- X }
- X
- X /*
- X ** Have to do *something* with a legitimate -1 so it's distinguishable
- X ** from the error return value. (Alternately could set errno on error.)
- X */
- X return (sdate == -1) ? 0 : sdate;
- }
- X
- static
- yyerror(s)
- char *s;
- {
- }
- X
- #ifdef USG
- ftime(timeb)
- struct timeb *timeb;
- {
- X extern long timezone;
- X extern int daylight;
- X long t = 0;
- X
- X localtime(&t); /* Dummy to init timzeone */
- X ctime(&t); /* Dummy to init timzeone (XENIX) */
- X time(&(timeb->time));
- X timeb->millitm=0;
- X timeb->timezone=timezone/60; /* Timezone is in seconds! */
- X timeb->dstflag=daylight;
- }
- #endif
- SHAR_EOF
- chmod 0644 getdate.y ||
- echo 'restore of getdate.y failed'
- Wc_c="`wc -c < 'getdate.y'`"
- test 13426 -eq "$Wc_c" ||
- echo 'getdate.y: original size 13426, current size' "$Wc_c"
- fi
- # ============= frecv.sh ==============
- if test -f 'frecv.sh' -a X"$1" != X"-c"; then
- echo 'x - skipping frecv.sh (File already exists)'
- else
- echo 'x - extracting frecv.sh (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'frecv.sh' &&
- :
- #!/bin/sh
- #
- # $Id: frecv.sh,v 1.5 91/03/29 18:10:43 mj Exp $
- #
- # This shell script feeds the msg in SPOOL/unpacked to
- # either rnews or rmail, depending on their destination:
- #
- # N.xxxx -> rnews
- # M.xxxx -> rmail
- #
- # Must be used after fido mail packets were processed
- # with funpack.
- #
- X
- SPOOL=??SPOOL??
- X
- #
- # Test for addresses allowed to FIDONET users
- #
- # name
- # name@hippo
- # name@hippo.uucp
- # name@slcdec (UUCP feed)
- # name@system.domain.de (DNet)
- #
- name="[#$%&*+-/0-9=?A-Z_a-z.]+"
- pattern1="^${name}$"
- pattern2="^${name}@hippo(\.uucp)?$"
- pattern3="^${name}@${name}\.de$"
- pattern4="^${name}@slcdec$"
- pattern="$pattern1 $pattern2 $pattern3 $pattern4"
- addrok="no"
- X
- testaddr() {
- # Im Moment sind erstmal wieder alle Adressen erlaubt!
- addrok="yes"
- # addrok="no"
- # for p in $pattern
- # do
- # echo $1 | egrep "$p" >/dev/null
- # if [ $? -eq 0 ]; then addrok="yes"; break; fi
- # done
- }
- X
- X
- X
- cd ${SPOOL}/unpacked
- X
- #
- # Process news messages
- #
- for f in N.*
- do
- X if [ -f $f ]
- X then
- X rnews < $f
- X status=$?
- X if [ $status -eq 0 ]
- X then
- X rm -f $f
- X else
- X mv $f ../bad
- X fi
- X fi
- done
- X
- #
- # Process messages for mail
- #
- for f in M.*
- do
- X if [ -f $f ]
- X then
- X set X `sed <$f -n -e '/^To:/{' -e 's/To: *//p' -e q -e '}'`
- X shift
- X set X "$@" `sed <$f -n -e '/^Cc:/{' -e 's/Cc: *//p' -e q -e '}'`
- X shift
- X set X "$@" `sed <$f -n -e '/^Bcc:/{' -e 's/Bcc: *//p' -e q -e '}'`
- X shift
- X recv=`echo $@ | sed -e 's/ *(.*)//g'`
- X for i in $recv
- X do
- X testaddr $i
- X if [ $addrok = "no" ]; then break; fi
- X done
- X if [ $addrok = "yes" ]; then
- X rmail $recv < $f
- X status=$?
- X if [ $status -eq 0 ]
- X then
- X rm -f $f
- X else
- X mv $f ../bad
- X fi
- X else
- X mv $f ../bad
- X fi
- X fi
- done
- X
- Xexit 0
- SHAR_EOF
- chmod 0755 frecv.sh ||
- echo 'restore of frecv.sh failed'
- Wc_c="`wc -c < 'frecv.sh'`"
- test 1722 -eq "$Wc_c" ||
- echo 'frecv.sh: original size 1722, current size' "$Wc_c"
- fi
- # ============= config.h ==============
- if test -f 'config.h' -a X"$1" != X"-c"; then
- echo 'x - skipping config.h (File already exists)'
- else
- echo 'x - extracting config.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'config.h' &&
- /*:ts=4*/
- /*****************************************************************************
- X * FIDOGATE --- Gateway software UNIX <-> FIDO
- X *
- X * $Id: config.h,v 1.17 91/05/22 22:14:08 mj Exp $
- X *
- X * Configuration header file
- X *
- X * $Log: config.h,v $
- X * Revision 1.17 91/05/22 22:14:08 mj
- X * Some clean-up for new release.
- X *
- X * Revision 1.16 91/03/29 18:08:11 mj
- X * New #define for generation of special Reply-To: adresses.
- X *
- X * Revision 1.15 91/01/28 19:32:34 mj
- X * New #define ERRORS_TO: return address for bounced mail.
- X *
- X * Revision 1.14 91/01/05 13:05:29 mj
- X * Changed domain name to ".dfv.rwth-aachen.de"
- X *
- X * Revision 1.13 90/12/10 16:33:31 mj
- X * Moved define of LOCK_LOCKF from Makefile to config.h.
- X *
- X * Revision 1.12 90/12/09 17:32:03 mj
- X * New #define's for mail forwarding in rmail (UUCPFEED). Removed
- X * GATEWAY definition.
- X *
- X * Revision 1.11 90/12/02 21:21:44 mj
- X * Changed program header to mention both authors of the original
- X * software posted to alt.sources.
- X *
- X * Revision 1.10 90/12/01 17:48:26 mj
- X * Removed unnecessary #defines of JUNK and JUNK_AREA.
- X *
- X * Revision 1.9 90/11/23 21:51:19 mj
- X * Removed #define's of INT16 and SWAB_BYTES. Not necessary any more
- X * because of the rewrite of fpack.
- X *
- X * Revision 1.8 90/11/05 20:49:31 mj
- X * Changed my signature in all program headers.
- X *
- X * Revision 1.7 90/09/16 17:35:27 mj
- X * Changed FIDODOMAIN to ".fidonet.org".
- X *
- X * Revision 1.6 90/09/03 17:50:45 mj
- X * Changed to new address.
- X * 2:242/6.1 aka 6000/1
- X *
- X * Revision 1.5 90/08/12 14:13:31 mj
- X * Added definition for FIDO MSGID sequencer (MSGIDSEQ).
- X *
- X * Revision 1.4 90/07/30 20:00:16 mj
- X * Added support for new style FIDO addresses:
- X * p<point>.f<node>.n<net>.z<zone>.FIDODOMAIN
- X * FIDODOMAIN is defined in config.h
- X *
- X * Revision 1.3 90/07/15 10:22:15 mj
- X * Changed MAX_LINELEN to 80.
- X *
- X * Revision 1.2 90/06/28 22:03:53 mj
- X * Much rework of the sources, no more hsu.h and other clean up.
- X * rmail improved, now handles special XENIX quirks.
- X *
- X * Revision 1.1 90/06/21 21:06:05 mj
- X * Everything seems to work, so this delta was made.
- X *
- X * Revision 1.0 90/06/21 18:52:36 mj
- X * Initial revision
- X *
- X *
- X *****************************************************************************
- X * This version hacked and maintained by:
- X * _____ _____
- X * | |___ | Martin Junius FIDO: 2:242/6.1 2:242/6.0
- X * | | | | | | Republikplatz 3 DOMAIN: mju@dfv.rwth-aachen.de
- X * |_|_|_|_____| D-5100 Aachen Tel. (Voice) 0241-86931
- X *
- X * Original version of these programs and files:
- X *
- X * Teemu Torma
- X * Heikki Suonsivu FIDO: 2:504/1 UUCP: ...!mcsun!santra!hsu
- X *
- X *****************************************************************************/
- X
- /*
- X * This is our net and node number
- X *
- X * We're 2:242/6.1 with fake address 2:6000/1
- X */
- #define REAL_ZONE 2
- #define REAL_REGION 24
- #define REAL_NET 242
- #define REAL_NODE 6
- #define REAL_POINT 1
- X
- #define MY_ZONE 2
- #define MY_REGION 24
- #define MY_NET 6000
- #define MY_NODE 1
- #define MY_POINT 0
- X
- #define MY_NAME "Hipposoft"
- X
- X
- /*
- X * This is where our mail goes to ...
- X */
- #define REM_ZONE 2
- #define REM_REGION 24
- #define REM_NET 242
- #define REM_NODE 6
- #define REM_POINT 0
- #define REM_NAME "Bossnode"
- X
- /*
- X * Echo feed (currently not used)
- X */
- #define ECHOFEED_NET 242
- #define ECHOFEED_NODE 6
- X
- /*
- X * Domain suffix (added to hostname)
- X */
- #define MY_HOSTNAME "hippo"
- #define MY_DOMAIN ".dfv.rwth-aachen.de"
- X
- /*
- X * UUCP feed (i.e. system we send UUCP mail to)
- X */
- #define UUCPFEED "slcdec"
- #define UUCPFEED_DOMAIN ".dfv.rwth-aachen.de"
- X
- /*
- X * Domain suffix for FIDO net addresses
- X */
- #define FIDODOMAIN ".fidonet.org"
- X
- /*
- X * Enable generation of Reply-To addresses
- X */
- #define LOCAL_REPLY_TO /**/
- X
- /*
- X * Return address for bounced mail. An `Errors-To:' header will
- X * be inserted for mail addressed via `To:' from FIDO if defined.
- X */
- #define ERRORS_TO "root@hippo.dfv.rwth-aachen.de"
- X
- X
- X
- /*
- X * Directories the various programs work on
- X */
- X
- #define SPOOL "/u/spool/fidonet" /* main spool directory */
- #define SPOOL_BAD "/u/spool/fidonet/bad" /* rejected by rnews/rmail */
- #define SPOOL_IN "/u/spool/fidonet/in" /* incoming packets */
- #define SPOOL_OUT "/u/spool/fidonet/out" /* outgoing mail */
- #define SPOOL_UNPACKED "/u/spool/fidonet/unpacked" /* output of funpack */
- #define SPOOL_SENT "/u/spool/fidonet/sent" /* sent packets */
- X
- #define LIBDIR "/u/lib/fidonet" /* config files / progs */
- #define LOGFILE "/u/lib/fidonet/log" /* log file */
- #define IDSEQUENCE "/u/lib/fidonet/idseq" /* message id sequence */
- #define IPACKETSEQUENCE "/u/lib/fidonet/ipacketseq" /* input packet sequence */
- #define OPACKETSEQUENCE "/u/lib/fidonet/opacketseq" /* output packet sequence */
- #define BADSEQ "/u/lib/fidonet/badseq" /* bad messages sequence */
- #define JOBSEQ "/u/lib/fidonet/seq" /* job number sequence */
- #define MSGIDSEQ "/u/lib/fidonet/msgidseq" /* for generating ^AMSGID:*/
- #define ALIAS "/u/lib/fidonet/Alias" /* alias file */
- #define AREAS "/u/lib/fidonet/Areas" /* areas file */
- X
- X
- /*
- X * Enable nodelist support
- X */
- /*#define NODELIST_SUPPORT /* Use FIDO nodelist */
- X
- X
- /*
- X * mail receiver for fidonet
- X */
- #define RFMAIL "/u/lib/fidonet/rfmail" /* fido mail receiver */
- /*#define RFMAIL "/u/mj/news/fidogate/rfmail" /* test version */
- X
- /*
- X * Program which receives unpacked news articles
- X */
- #define RNEWS "/bin/rnews" /* News receiver */
- X
- /*
- X * Program which receives mail from fido net
- X */
- #define RMAIL "/usr/bin/rmail" /* Mail receiver */
- /*
- X * There is a replacement for rmail
- X * included in this package, which accepts fido net
- X * domain addresses and feeds this mail to rfmail.
- X * If you use the included rmail, you must rename
- X * the old rmail to ormail and install the included
- X * rmail as /usr/bin/rmail.
- X */
- /*#define RECVMAIL "/usr/bin/ormail" /* Mail receiver */
- #define RECVMAIL "/usr/lib/mail/execmail" /* XENIX */
- /*
- X * Define this if you want rfmail to return underlivered mail. You do
- X * not need this if you are running sendmail or similiar which returns
- X * undelivered mail.
- X */
- #define RETURN_FAILED_MAIL /**/
- X
- X
- /*
- X * Lowest user id
- X */
- #define USERUID 50
- X
- /*
- X * System dependend configuration
- X */
- X
- /***** Operating system *****/
- #define USG /* System V */
- /*#define BSD /* BSD 4.2+ */
- X
- /***** File locking *****/
- #define LOCK_LOCKF /* Use lockf(), else locking() */
- X
- X
- /*
- X * parameters for fcall
- X */
- X
- /* How many seconds wait before starting up fidonet handshake */
- #define PREWAIT 5
- X
- /* How many seconds to wait for line to clear */
- #define WAITCLEAR 2
- X
- /* How many tries to give for xmodem startup in send. This should be low
- X value, it just gives possibility to retry xmodem startup if modems
- X handshaked too fast (really a acu configuration problems, dial should
- X return after it has a working line available!) */
- #define MAX_SEND_RETRIES 1
- X
- /* Maximum baud rate to use when calling out */
- #define MAXBAUD 1200
- X
- /* Define minimum baud rate to use when calling out */
- #define MINBAUD 300
- X
- /* Width of formatted messages. Lines will be wrapped to be less
- X than this. If word is longer than 2/3s of MAX_LINELEN, it will be
- X cut instead of correct wrapping. */
- #define MAX_LINELEN 80
- X
- /* Dial translation table. first string stripped out, second one replaced */
- X
- #define DIALTABLE "358-0-", "", "358-", "9", "", "990"
- SHAR_EOF
- chmod 0644 config.h ||
- echo 'restore of config.h failed'
- Wc_c="`wc -c < 'config.h'`"
- test 7440 -eq "$Wc_c" ||
- echo 'config.h: original size 7440, current size' "$Wc_c"
- fi
- # ============= packet.h ==============
- if test -f 'packet.h' -a X"$1" != X"-c"; then
- echo 'x - skipping packet.h (File already exists)'
- else
- echo 'x - extracting packet.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'packet.h' &&
- /*:ts=4*/
- /*****************************************************************************
- X * FIDOGATE --- Gateway software UNIX <-> FIDO
- X *
- X * $Id: packet.h,v 1.3 90/12/09 18:36:16 mj Exp $
- X *
- X * FIDOnet packet definitions
- X *
- X * $Log: packet.h,v $
- X * Revision 1.3 90/12/09 18:36:16 mj
- X * Reformatted code and added #define's for sizes of FIDO header fields.
- X *
- X * Revision 1.2 90/12/02 21:22:20 mj
- X * Changed program header to mention both authors of the original
- X * software posted to alt.sources.
- X *
- X * Revision 1.1 90/11/05 20:50:53 mj
- X * Changed my signature in all program headers.
- X *
- X * Revision 1.0 90/06/21 19:15:14 mj
- X * Initial revision
- X *
- X *
- X *****************************************************************************
- X * This version hacked and maintained by:
- X * _____ _____
- X * | |___ | Martin Junius FIDO: 2:242/6.1 2:242/6.0
- X * | | | | | | Republikplatz 3 DOMAIN: mju@dfv.rwth-aachen.de
- X * |_|_|_|_____| D-5100 Aachen Tel. (Voice) 0241-86931
- X *
- X * Original version of these programs and files:
- X *
- X * Teemu Torma
- X * Heikki Suonsivu FIDO: 2:504/1 UUCP: ...!mcsun!santra!hsu
- X *
- X *****************************************************************************/
- X
- /* Structure for packet header. */
- X
- typedef struct _packet {
- X short orig_node; /* originating node */
- X short dest_node; /* destinating mode */
- X short year; /* packing year (e.g. 1986) */
- X short month; /* 0-11 for Jan - Dec */
- X short day; /* 1-31 */
- X short hour; /* 0-23 */
- X short minute; /* 0-59 */
- X short second; /* 0-59 */
- X short rate; /* maximum baud rate */
- X short ver; /* header version */
- X short orig_net; /* originating net */
- X short dest_net; /* destination net */
- X char product; /* product */
- X char x1; /* Extra byte */
- #ifdef FIDO_V11w
- X short fill[16]; /* extra space */
- #else
- X char pwd_kludge[8];
- X short orig_zone;
- X short dest_zone;
- X char B_fill2[16];
- X long B_fill3;
- #endif
- } Packet;
- X
- /* Attributes tranferred via mail. */
- X
- #define ATTR_PRIVATE 0000001 /* private msg */
- #define ATTR_CRASH 0000002 /* crash mail */
- #define ATTR_FILE 0000020 /* files attached */
- #define ATTR_UNUSED 0002000 /* unused */
- #define ATTR_RRR 0010000 /* SEAdog only */
- #define ATTR_IRR 0020000 /* SEAdog only */
- #define ATTR_AUDREQ 0040000 /* SEAdog only */
- X
- /* Packet and message types. */
- X
- #define HDRVER 2
- #define MSGTYPE 2
- X
- /* Sizes of to/from/subject/date field */
- #define SIZE_FROM 36
- #define SIZE_TO 36
- #define SIZE_SUBJECT 72
- #define SIZE_DATE 20
- SHAR_EOF
- chmod 0644 packet.h ||
- echo 'restore of packet.h failed'
- Wc_c="`wc -c < 'packet.h'`"
- test 2561 -eq "$Wc_c" ||
- echo 'packet.h: original size 2561, current size' "$Wc_c"
- fi
- # ============= shuffle.h ==============
- if test -f 'shuffle.h' -a X"$1" != X"-c"; then
- echo 'x - skipping shuffle.h (File already exists)'
- else
- echo 'x - extracting shuffle.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'shuffle.h' &&
- /*:ts=4*/
- /*****************************************************************************
- X * FIDOGATE --- Gateway software UNIX <-> FIDO
- X *
- X * $Id: shuffle.h,v 1.3 90/12/02 21:22:39 mj Exp $
- X *
- X * Something very special ... ;-)
- X *
- X * $Log: shuffle.h,v $
- X * Revision 1.3 90/12/02 21:22:39 mj
- X * Changed program header to mention both authors of the original
- X * software posted to alt.sources.
- X *
- X * Revision 1.2 90/11/05 20:51:08 mj
- X * Changed my signature in all program headers.
- X *
- X * Revision 1.1 90/06/28 22:05:04 mj
- X * Much rework of the sources, no more hsu.h and other clean up.
- X * rmail improved, now handles special XENIX quirks.
- X *
- X * Revision 1.0 90/06/21 19:08:09 mj
- X * Initial revision
- X *
- X *
- X *****************************************************************************
- X * This version hacked and maintained by:
- X * _____ _____
- X * | |___ | Martin Junius FIDO: 2:242/6.1 2:242/6.0
- X * | | | | | | Republikplatz 3 DOMAIN: mju@dfv.rwth-aachen.de
- X * |_|_|_|_____| D-5100 Aachen Tel. (Voice) 0241-86931
- X *
- X * Original version of these programs and files:
- X *
- X * Teemu Torma
- X * Heikki Suonsivu FIDO: 2:504/1 UUCP: ...!mcsun!santra!hsu
- X *
- X *****************************************************************************/
- X
- #define loop_increment(x,y) (x = (++x >= (y)) ? 0 : x)
- #define loop_decrement(x,y) (x = (--x < 0) ? (y)-1 : x)
- X
- #define MAX_CONVERT_BUFFERS 40
- #define MAX_CONVERT_BUFLEN 80
- X
- static char bufs[MAX_CONVERT_BUFFERS][MAX_CONVERT_BUFLEN], *tcharp;
- static int bflag;
- X
- #define SHUFFLEBUFFERS \
- loop_increment(bflag, MAX_CONVERT_BUFFERS); tcharp = bufs[bflag]
- SHAR_EOF
- chmod 0644 shuffle.h ||
- echo 'restore of shuffle.h failed'
- Wc_c="`wc -c < 'shuffle.h'`"
- test 1637 -eq "$Wc_c" ||
- echo 'shuffle.h: original size 1637, current size' "$Wc_c"
- fi
- # ============= sysexits.h ==============
- if test -f 'sysexits.h' -a X"$1" != X"-c"; then
- echo 'x - skipping sysexits.h (File already exists)'
- else
- echo 'x - extracting sysexits.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'sysexits.h' &&
- /*:ts=4*/
- /*****************************************************************************
- X * FIDOGATE --- Gateway software UNIX <-> FIDO
- X *
- X * $Id: sysexits.h,v 1.2 90/12/02 21:22:44 mj Exp $
- X *
- X * Exit statuses for systems that doesn't have /usr/include/sysexits.h
- X *
- X * $Log: sysexits.h,v $
- X * Revision 1.2 90/12/02 21:22:44 mj
- X * Changed program header to mention both authors of the original
- X * software posted to alt.sources.
- X *
- X * Revision 1.1 90/11/05 20:51:12 mj
- X * Changed my signature in all program headers.
- X *
- X * Revision 1.0 90/06/21 19:12:34 mj
- X * Initial revision
- X *
- X *
- X *****************************************************************************
- X * This version hacked and maintained by:
- X * _____ _____
- X * | |___ | Martin Junius FIDO: 2:242/6.1 2:242/6.0
- X * | | | | | | Republikplatz 3 DOMAIN: mju@dfv.rwth-aachen.de
- X * |_|_|_|_____| D-5100 Aachen Tel. (Voice) 0241-86931
- X *
- X * Original version of these programs and files:
- X *
- X * Teemu Torma
- X * Heikki Suonsivu FIDO: 2:504/1 UUCP: ...!mcsun!santra!hsu
- X *
- X *****************************************************************************/
- X
- #define EX_OK 0 /* successful termination */
- #define EX_USAGE 64 /* command line usage error */
- #define EX_DATAERR 65 /* data format error */
- #define EX_NOINPUT 66 /* cannot open input */
- #define EX_NOHOST 68 /* host name unknown */
- #define EX_UNAVAILABLE 69 /* service unavailable */
- #define EX_SOFTWARE 70 /* internal software error */
- #define EX_OSERR 71 /* system error (e.g., can't fork) */
- #define EX_OSFILE 72 /* critical OS file missing */
- #define EX_CANTCREAT 73 /* can't create (user) output file */
- #define EX_IOERR 74 /* input/output error */
- SHAR_EOF
- chmod 0644 sysexits.h ||
- echo 'restore of sysexits.h failed'
- Wc_c="`wc -c < 'sysexits.h'`"
- test 1760 -eq "$Wc_c" ||
- echo 'sysexits.h: original size 1760, current size' "$Wc_c"
- fi
- # ============= nodelist.h ==============
- if test -f 'nodelist.h' -a X"$1" != X"-c"; then
- echo 'x - skipping nodelist.h (File already exists)'
- else
- echo 'x - extracting nodelist.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'nodelist.h' &&
- /*:ts=4*/
- /*****************************************************************************
- X * FIDOGATE --- Gateway software UNIX <-> FIDO
- X *
- X * $Id: nodelist.h,v 1.2 90/12/02 21:22:18 mj Exp $
- X *
- X * Structures and definitions for nodelist.
- X *
- X * $Log: nodelist.h,v $
- X * Revision 1.2 90/12/02 21:22:18 mj
- X * Changed program header to mention both authors of the original
- X * software posted to alt.sources.
- X *
- X * Revision 1.1 90/11/05 20:50:51 mj
- X * Changed my signature in all program headers.
- X *
- X * Revision 1.0 90/06/21 19:14:27 mj
- X * Initial revision
- X *
- X *
- X *****************************************************************************
- X * This version hacked and maintained by:
- X * _____ _____
- X * | |___ | Martin Junius FIDO: 2:242/6.1 2:242/6.0
- X * | | | | | | Republikplatz 3 DOMAIN: mju@dfv.rwth-aachen.de
- X * |_|_|_|_____| D-5100 Aachen Tel. (Voice) 0241-86931
- X *
- X * Original version of these programs and files:
- X *
- X * Teemu Torma
- X * Heikki Suonsivu FIDO: 2:504/1 UUCP: ...!mcsun!santra!hsu
- X *
- X *****************************************************************************/
- X
- /* Change these if you wish. */
- X
- /* Name of nodelist in LIBDIR */
- #define NODELIST "nodelist"
- X
- /* Name of nodelist index file in LIBDIR */
- #define INODELIST "nodelist.idx"
- X
- /* Name of sysop name index file in LIBDIR */
- #define NAMELIST "name.idx"
- X
- /* Compare two node entried to see if they are same node (ignoring
- X possible other information */
- #define samenode(n1, n2) ((n1).zone == (n2).zone && (n1).net == (n2).net && \
- X (n1).node == (n2).node && (n1).point == (n2).point)
- X
- /* Structure for nodelist entry. Routines to get one node from nodelist
- X will return this structure. */
- X
- typedef struct _node {
- X int type; /* type of entry (see below) */
- X int region; /* region (not necessarily used/set) */
- X int net; /* net/region of node */
- X int zone; /* Zone of node (not really supported yet) */
- X int node; /* number of node */
- X int point; /* Point of node (not really supported yet) */
- X char name[20]; /* name of fido */
- X char city[40]; /* city */
- X char sysop[36]; /* name of sysop */
- X char phone[40]; /* phone-number */
- X int speed; /* speeds */
- X char flags[60]; /* flags-string */
- } Node;
- X
- typedef struct _indexnode {
- X int zone;
- X int net;
- X int node;
- X long offset;
- } NODEINDEX;
- X
- typedef struct _indexname {
- X char name[36]; /* Sysop name */
- X long offset; /* Refers to nodelist index entry */
- X int zone;
- X int net;
- } NAMEINDEX;
- X
- /* Entry types. */
- X
- #define REGION (1) /* region-host */
- #define HOST (2) /* net-host */
- #define HUB (3) /* local-host */
- #define PVT (4) /* private node */
- #define HOLD (5) /* no mail to this node */
- #define DOWN (6) /* node is down */
- #define KENL (7) /* should not be comminucated */
- #define NORMAL (8) /* normal node */
- #define ZONE (9) /* Zone */
- #define POINT (10) /* point (points are not in nodelist but this is used
- X elsewhere. */
- X
- /* Declarations for routines. */
- X
- Node *node_entry(); /* get entry from nodelist */
- char *update_index(); /* update index-file */
- extern Node *parse_entry();
- X
- extern Node originnode;
- extern NODEINDEX *nodeindex;
- extern NAMEINDEX *nameindex;
- extern int nodes;
- SHAR_EOF
- chmod 0644 nodelist.h ||
- echo 'restore of nodelist.h failed'
- Wc_c="`wc -c < 'nodelist.h'`"
- test 3209 -eq "$Wc_c" ||
- echo 'nodelist.h: original size 3209, current size' "$Wc_c"
- fi
- # ============= fidogate.h ==============
- if test -f 'fidogate.h' -a X"$1" != X"-c"; then
- echo 'x - skipping fidogate.h (File already exists)'
- else
- echo 'x - extracting fidogate.h (Text)'
- sed 's/^X//' << 'SHAR_EOF' > 'fidogate.h' &&
- /*:ts=4*/
- /*****************************************************************************
- X * FIDOGATE --- Gateway software UNIX <-> FIDO
- X *
- X * $Id: fidogate.h,v 1.10 91/05/07 23:58:10 mj Exp $
- X *
- X * Common header file
- X *
- X * $Log: fidogate.h,v $
- X * Revision 1.10 91/05/07 23:58:10 mj
- X * Changed declaration for function parse_address() from address.c, new
- X * function isfido().
- X *
- X * Revision 1.9 91/03/29 18:09:11 mj
- X * Some changes. (what?)
- X *
- X * Revision 1.8 90/12/02 21:21:47 mj
- X * Changed program header to mention both authors of the original
- X * software posted to alt.sources.
- X *
- X * Revision 1.7 90/12/01 17:48:52 mj
- X * Fixed an extern function declaration of ascnoden().
- X *
- X * Revision 1.6 90/11/20 21:08:13 mj
- X * Changed some extern definitions.
- X *
- X * Revision 1.5 90/11/05 20:49:34 mj
- X * Changed my signature in all program headers.
- X *
- X * Revision 1.4 90/09/08 18:45:08 mj
- X * Added definition of strsaveline() in xalloc.c
- X *
- X * Revision 1.3 90/07/01 13:45:19 mj
- X * Removed all calls to alloca(). All unsave malloc()'s without
- X * checking the returned pointer are now done via xmalloc().
- X * Fixed a malloc() error in rmail.
- X *
- X * Revision 1.2 90/06/28 22:04:01 mj
- X * Much rework of the sources, no more hsu.h and other clean up.
- X * rmail improved, now handles special XENIX quirks.
- X *
- X * Revision 1.1 90/06/21 21:08:29 mj
- X * Everything seems to work, so this delta was made.
- X *
- X * Revision 1.0 90/06/21 18:56:20 mj
- X * Initial revision
- X *
- X *
- X *****************************************************************************
- X * This version hacked and maintained by:
- X * _____ _____
- X * | |___ | Martin Junius FIDO: 2:242/6.1 2:242/6.0
- X * | | | | | | Republikplatz 3 DOMAIN: mju@dfv.rwth-aachen.de
- X * |_|_|_|_____| D-5100 Aachen Tel. (Voice) 0241-86931
- X *
- X * Original version of these programs and files:
- X *
- X * Teemu Torma
- X * Heikki Suonsivu FIDO: 2:504/1 UUCP: ...!mcsun!santra!hsu
- X *
- X *****************************************************************************/
- X
- #include "config.h"
- X
- /*
- X * default level of debug output
- X */
- #ifndef INIT_VERBOSE
- # ifdef DEBUG
- # define INIT_VERBOSE 3 /*20*/
- # else
- # define INIT_VERBOSE 0
- # endif
- #endif
- X
- X
- /*
- X * heavy includin' ...
- X */
- X
- /***** System *****/
- #include <stdio.h>
- #include <ctype.h>
- #include <string.h>
- #include <sys/types.h>
- #include <time.h>
- #include <errno.h>
- #ifdef M_XENIX
- # include <sys/ndir.h>
- # define dirent direct
- #else
- # include <dirent.h>
- #endif
- X
- /***** Local *****/
- #include "packet.h" /* FIDO mail packet definition */
- #include "nodelist.h" /* nodelist definitions */
- #include "sysexits.h" /* EX_* defines */
- X
- X
- X
- /*
- X * Config file sections
- X */
- #define SECT_NETNODE 1 /* Net/node for receiving node */
- #define SECT_NG_AREA 2 /* Newsgroup -> area conversions */
- #define SECT_HEADERS 3 /* Header-field definitions */
- #define SECT_ENDMSG 4 /* Text to be placed at the end of msg */
- #define SECT_AREA_NG 5 /* Area -> newsgroup conversions */
- X
- X
- X
- /*
- X * External functions and variables
- X */
- X
- /***** System *****/
- extern char *mktemp(), *getenv();
- extern long time();
- extern unsigned short getuid();
- extern unsigned short geteuid();
- extern unsigned short getgid();
- extern unsigned short getegid();
- X
- /***** errno *****/
- extern int errno;
- extern char *strerror();
- X
- X
- X
- /*
- X * Defines
- X */
- #define TRUE 1
- #define FALSE 0
- #define BUFLEN 256
- #define OK 0
- #define ERROR (-1)
- X
- #define bool int
- X
- /* Global variables. */
- X
- extern bool verbose;
- extern int line;
- extern int receiving_data;
- X
- /* Function declarations. */
- X
- /* address.c */
- extern int parse_address();
- extern int isfido();
- extern int parseinternode();
- extern int parsefnetaddress();
- extern char *ascnode();
- extern char *ascnoden();
- extern char *internode();
- extern char *internodex();
- extern char *ascnodei();
- X
- extern int fine_convert();
- extern char *ascii_convert();
- extern int stricmp();
- extern int strnicmp();
- extern time_t getdate();
- extern void flush();
- extern void sendline();
- extern char *getcl();
- extern void section();
- extern void log();
- extern void debug();
- extern int lock();
- extern int unlock();
- extern char *spoolfile();
- extern int quit();
- extern char *basename();
- extern FILE *pfopen();
- extern char *date();
- extern long job_number();
- extern long sequencer();
- extern char *mheader();
- X
- /* sprintfs.c */
- extern char *sstrcat(), *sprintfs();
- X
- /* strempty.c */
- extern char *strclean(), *strsclean();
- X
- /* xalloc.c */
- extern char *xmalloc(), *xrealloc(), *strsave(), *strsaveline();
- SHAR_EOF
- chmod 0644 fidogate.h ||
- echo 'restore of fidogate.h failed'
- Wc_c="`wc -c < 'fidogate.h'`"
- test 4512 -eq "$Wc_c" ||
- echo 'fidogate.h: original size 4512, current size' "$Wc_c"
- fi
- true || echo 'restore of rfmail.c failed'
- echo End of part 2, continue with part 3
- exit 0
-
- --
- _____ _____
- | |___ | Martin Junius FIDO: 2:242/6.1 2:242/6.0
- | | | | | | Republikplatz 3 DOMAIN: mj@dfv.rwth-aachen.de
- |_|_|_|_____| D-5100 Aachen Tel. (Voice) 0241-86931
-