|
|
1.1 ! root 1: #include "util.h" ! 2: #include "mmdf.h" ! 3: #include "ch.h" ! 4: #include <signal.h> ! 5: ! 6: /* ! 7: * C H _ U U C P . C ! 8: * ! 9: * Take message and feed a request to UUX ! 10: * ! 11: * qu2uu_send does the interesting work. This interface was developed ! 12: * for MMDF by Doug Kingston at the US Army Ballistics Research Lab, ! 13: * Aberdeen, Maryland. <dpk@brl> ! 14: * ! 15: * Original Version 21 Oct 81 ! 16: * ! 17: * Revision History ! 18: * ================ ! 19: * ! 20: * 27-Oct-82 Marshall T. Rose <mrose%uci@rand-relay> ! 21: * Support proper munging by using the UCI mail filtering ! 22: * routines (enabled by #ifdef MF) ! 23: * ! 24: * 17-Oct-83 Marshall T. Rose <mrose%uci@rand-relay> ! 25: * Major re-organization and some new interfacing. ! 26: * ! 27: */ ! 28: ! 29: /* ! 30: * MULTI-CHANNEL MEMO DISTRIBUTION FACILITY (MMDF) ! 31: * ! 32: * ! 33: * Department of Electrical Engineering ! 34: * University of Delaware ! 35: * Newark, Delaware 19711 ! 36: * ! 37: * Phone: (302) 738-1163 ! 38: * ! 39: * ! 40: */ ! 41: ! 42: /* */ ! 43: ! 44: extern char logdfldir[]; ! 45: ! 46: extern struct ll_struct chanlog; ! 47: struct ll_struct *logptr = &chanlog; ! 48: ! 49: char *dupfpath (); ! 50: ! 51: /* */ ! 52: ! 53: main (argc, argv) ! 54: int argc; ! 55: char **argv; ! 56: { ! 57: short retval; ! 58: Chan * chanptr; ! 59: ! 60: ll_hdinit (logptr, "UU"); ! 61: logptr -> ll_file = dupfpath (logptr -> ll_file, logdfldir); ! 62: ! 63: siginit (); ! 64: signal (SIGINT, SIG_IGN); ! 65: ! 66: if ((chanptr = ch_nm2struct (*argv)) == (Chan *) NOTOK) ! 67: err_abrt (RP_PARM, "unknown channel name '%s'", *argv); ! 68: ! 69: retval = ch_uucp (argc, argv, chanptr); ! 70: ll_close (logptr); ! 71: ! 72: exit (retval); ! 73: } ! 74: ! 75: /* */ ! 76: ! 77: ch_uucp (argc, argv, chanptr) ! 78: int argc; ! 79: char **argv; ! 80: Chan * chanptr; ! 81: { ! 82: #ifdef DEBUG ! 83: logptr -> ll_level = LLOGBTR; ! 84: ll_log (logptr, LLOGBTR, "ch_uucp(argc=%d,*argv='%s')", argc, *argv); ! 85: #endif ! 86: ! 87: if (rp_isbad (qu_init (argc, argv))) ! 88: return RP_NO; ! 89: if (rp_isbad (uu_init (chanptr))) ! 90: return RP_NO; ! 91: ! 92: if (rp_isbad (qu2uu_send ())) ! 93: return RP_NO; ! 94: ! 95: qu_end (OK); ! 96: uu_end (OK); ! 97: ! 98: return RP_OK; ! 99: } ! 100: ! 101: /* */ ! 102: ! 103: err_abrt (code, fmt, b, c, d) ! 104: short code; ! 105: char fmt[], ! 106: b[], ! 107: c[], ! 108: d[]; ! 109: { ! 110: char linebuf[LINESIZE]; ! 111: ! 112: qu_end (NOTOK); ! 113: uu_end (NOTOK); ! 114: ! 115: sprintf (linebuf, "%s%s", "[ABEND: %s]", fmt); ! 116: ll_log (logptr, LLOGFAT, linebuf, rp_valstr (code), b, c, d); ! 117: ll_close (logptr); ! 118: ! 119: exit (code); ! 120: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.