Annotation of 43BSDReno/contrib/mh/support/bboards/bbaka.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.