Mercurial > hg > Applications > mh
comparison support/bboards/bbaka.c @ 0:bce86c4163a3
Initial revision
author | kono |
---|---|
date | Mon, 18 Apr 2005 23:46:02 +0900 |
parents | |
children | 441a2190cfae |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:bce86c4163a3 |
---|---|
1 /* bbaka.c - generate an alias list for BBoards */ | |
2 #ifndef lint | |
3 static char ident[] = "@(#)$Id$"; | |
4 #endif lint | |
5 | |
6 #include "../h/strings.h" | |
7 #include "../zotnet/bboards.h" | |
8 #include <stdio.h> | |
9 #include "../zotnet/mts.h" | |
10 | |
11 | |
12 static int systemn = 0; | |
13 static char domain[BUFSIZ] = ""; | |
14 | |
15 static aka(), process(); | |
16 | |
17 /* */ | |
18 | |
19 /* ARGSUSED */ | |
20 | |
21 main (argc, argv) | |
22 int argc; | |
23 char **argv; | |
24 { | |
25 struct bboard *bb; | |
26 | |
27 if (argc > 1 && strcmp (argv[1], "system") == 0) | |
28 systemn++; | |
29 | |
30 mts_init (argv[0]); | |
31 make_lower (domain, bb_domain); | |
32 | |
33 (void) setbbent (SB_STAY); | |
34 while (bb = getbbent ()) | |
35 process (bb); | |
36 (void) endbbent (); | |
37 | |
38 exit (0); | |
39 } | |
40 | |
41 /* */ | |
42 | |
43 static process (bb) | |
44 struct bboard *bb; | |
45 { | |
46 char **ap, | |
47 bbaddr[BUFSIZ], | |
48 buffer[BUFSIZ], | |
49 ldaddr[BUFSIZ], | |
50 result[BUFSIZ]; | |
51 | |
52 if (systemn) { | |
53 #ifndef MHMTS | |
54 (void) sprintf (bbaddr, "%s@bboards", bb -> bb_name, LocalName ()); | |
55 #else /* MHMTS */ | |
56 (void) strcpy (bbaddr, BBOARDS); | |
57 #endif /* MHMTS */ | |
58 | |
59 if (strcmp (bb -> bb_name, bb -> bb_addr) == 0) | |
60 aka (bb -> bb_name, bbaddr); | |
61 if (domain[0]) { | |
62 (void) sprintf (buffer, "%s-%s", domain, bb -> bb_name); | |
63 if (bb -> bb_relay && *bb -> bb_relay) { | |
64 (void) sprintf (result, "%s%s@%s", DISTADR, bb -> bb_name, | |
65 bb -> bb_relay); | |
66 aka (buffer, result); | |
67 } | |
68 else | |
69 aka (buffer, bbaddr); | |
70 } | |
71 (void) sprintf (buffer, "%s%s", DISTADR, bb -> bb_name); | |
72 aka (buffer, bbaddr); | |
73 | |
74 (void) sprintf (ldaddr, "%s@%s", *bb -> bb_leader, LocalName ()); | |
75 for (ap = bb -> bb_leader, ap++; *ap; ap++) | |
76 (void) sprintf (ldaddr + strlen (ldaddr), ",%s@%s", *ap, | |
77 LocalName ()); | |
78 if (domain[0]) { | |
79 if (bb -> bb_relay && *bb -> bb_relay | |
80 && strcmp (*bb -> bb_leader, BBOARDS) == 0 | |
81 && --ap == bb -> bb_leader) | |
82 (void) sprintf (ldaddr, "%s-%s-request@%s", | |
83 domain, bb -> bb_name, bb -> bb_relay); | |
84 } | |
85 if (strcmp (bb -> bb_request, *bb -> bb_leader) == 0) { | |
86 (void) sprintf (buffer, "%s-request", bb -> bb_name); | |
87 aka (buffer, ldaddr); | |
88 } | |
89 if (domain[0]) { | |
90 (void) sprintf (buffer, "%s-%s-request", domain, bb -> bb_name); | |
91 if (bb -> bb_relay && *bb -> bb_relay) { | |
92 (void) sprintf (result, "%s@%s", buffer, bb -> bb_relay); | |
93 aka (buffer, result); | |
94 } | |
95 else | |
96 aka (buffer, ldaddr); | |
97 } | |
98 (void) sprintf (buffer, "local-%s-request", bb -> bb_name); | |
99 aka (buffer, ldaddr); | |
100 } | |
101 else { | |
102 if (strcmp (bb -> bb_name, bb -> bb_addr)) | |
103 aka (bb -> bb_name, bb -> bb_addr); | |
104 | |
105 (void) sprintf (buffer, "%s-request", bb -> bb_name); | |
106 if (strcmp (bb -> bb_request, *bb -> bb_leader)) | |
107 aka (buffer, bb -> bb_request); | |
108 } | |
109 } | |
110 | |
111 /* */ | |
112 | |
113 static aka (field, value) | |
114 char *field, | |
115 *value; | |
116 { | |
117 #ifndef MHMTS | |
118 printf ("%s: %s\n", field, value); | |
119 #else /* MHMTS */ | |
120 printf ("%s%s %s\n", field, systemn ? ":" : ";", value); | |
121 #endif /* MHMTS */ | |
122 } |