|
|
1.1 ! root 1: /* bbaka.c - generate an alias list for BBoards */ ! 2: ! 3: #include "../h/strings.h" ! 4: #include "../zotnet/bboards.h" ! 5: #include <stdio.h> ! 6: #include "../zotnet/mts.h" ! 7: ! 8: ! 9: static int system = 0; ! 10: static char domain[BUFSIZ] = ""; ! 11: ! 12: /* */ ! 13: ! 14: /* ARGSUSED */ ! 15: ! 16: main (argc, argv) ! 17: int argc; ! 18: char **argv; ! 19: { ! 20: struct bboard *bb; ! 21: ! 22: if (argc > 1 && strcmp (argv[1], "system") == 0) ! 23: system++; ! 24: ! 25: mts_init (argv[0]); ! 26: make_lower (domain, bb_domain); ! 27: ! 28: (void) setbbent (SB_STAY); ! 29: while (bb = getbbent ()) ! 30: process (bb); ! 31: (void) endbbent (); ! 32: ! 33: exit (0); ! 34: } ! 35: ! 36: /* */ ! 37: ! 38: static process (bb) ! 39: struct bboard *bb; ! 40: { ! 41: char **ap, ! 42: bbaddr[BUFSIZ], ! 43: buffer[BUFSIZ], ! 44: ldaddr[BUFSIZ], ! 45: result[BUFSIZ]; ! 46: ! 47: if (system) { ! 48: #ifndef MHMTS ! 49: (void) sprintf (bbaddr, "%s@bboards", bb -> bb_name, LocalName ()); ! 50: #else MHMTS ! 51: (void) strcpy (bbaddr, BBOARDS); ! 52: #endif MHMTS ! 53: ! 54: if (strcmp (bb -> bb_name, bb -> bb_addr) == 0) ! 55: aka (bb -> bb_name, bbaddr); ! 56: if (domain[0]) { ! 57: (void) sprintf (buffer, "%s-%s", domain, bb -> bb_name); ! 58: if (bb -> bb_relay && *bb -> bb_relay) { ! 59: (void) sprintf (result, "%s%s@%s", DISTADR, bb -> bb_name, ! 60: bb -> bb_relay); ! 61: aka (buffer, result); ! 62: } ! 63: else ! 64: aka (buffer, bbaddr); ! 65: } ! 66: (void) sprintf (buffer, "%s%s", DISTADR, bb -> bb_name); ! 67: aka (buffer, bbaddr); ! 68: ! 69: (void) sprintf (ldaddr, "%s@%s", *bb -> bb_leader, LocalName ()); ! 70: for (ap = bb -> bb_leader, ap++; *ap; ap++) ! 71: (void) sprintf (ldaddr + strlen (ldaddr), ",%s@%s", *ap, ! 72: LocalName ()); ! 73: if (domain[0]) { ! 74: if (bb -> bb_relay && *bb -> bb_relay ! 75: && strcmp (*bb -> bb_leader, BBOARDS) == 0 ! 76: && --ap == bb -> bb_leader) ! 77: (void) sprintf (ldaddr, "%s-%s-request@%s", ! 78: domain, bb -> bb_name, bb -> bb_relay); ! 79: } ! 80: if (strcmp (bb -> bb_request, *bb -> bb_leader) == 0) { ! 81: (void) sprintf (buffer, "%s-request", bb -> bb_name); ! 82: aka (buffer, ldaddr); ! 83: } ! 84: if (domain[0]) { ! 85: (void) sprintf (buffer, "%s-%s-request", domain, bb -> bb_name); ! 86: if (bb -> bb_relay && *bb -> bb_relay) { ! 87: (void) sprintf (result, "%s@%s", buffer, bb -> bb_relay); ! 88: aka (buffer, result); ! 89: } ! 90: else ! 91: aka (buffer, ldaddr); ! 92: } ! 93: (void) sprintf (buffer, "local-%s-request", bb -> bb_name); ! 94: aka (buffer, ldaddr); ! 95: } ! 96: else { ! 97: if (strcmp (bb -> bb_name, bb -> bb_addr)) ! 98: aka (bb -> bb_name, bb -> bb_addr); ! 99: ! 100: (void) sprintf (buffer, "%s-request", bb -> bb_name); ! 101: if (strcmp (bb -> bb_request, *bb -> bb_leader)) ! 102: aka (buffer, bb -> bb_request); ! 103: } ! 104: } ! 105: ! 106: /* */ ! 107: ! 108: static aka (field, value) ! 109: char *field, ! 110: *value; ! 111: { ! 112: #ifndef MHMTS ! 113: printf ("%s: %s\n", field, value); ! 114: #else MHMTS ! 115: printf ("%s%s %s\n", field, system ? ":" : ";", value); ! 116: #endif MHMTS ! 117: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.