annotate support/bboards/bbaka.c @ 0:bce86c4163a3

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