0
|
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 }
|