comparison zotnet/mf/mmdfI/src/uucp/ch_uucp.c @ 0:bce86c4163a3

Initial revision
author kono
date Mon, 18 Apr 2005 23:46:02 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:bce86c4163a3
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 }