X-Git-Url: https://git.distorted.org.uk/~mdw/become/blobdiff_plain/79fae27d218e9c15ba1c5320a75e5003a3f3f67f..b0f66028a9a17a845590a4fe737a4f5e46f6b778:/src/bcquery.c diff --git a/src/bcquery.c b/src/bcquery.c index 18354c9..9b92877 100644 --- a/src/bcquery.c +++ b/src/bcquery.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: bcquery.c,v 1.3 1999/05/04 16:17:11 mdw Exp $ + * $Id: bcquery.c,v 1.5 2003/11/29 23:39:16 mdw Exp $ * * Query and dump Become's configuration file * @@ -29,6 +29,13 @@ /*----- Revision history --------------------------------------------------* * * $Log: bcquery.c,v $ + * Revision 1.5 2003/11/29 23:39:16 mdw + * Debianization. + * + * Revision 1.4 2003/10/12 00:14:55 mdw + * Major overhaul. Now uses DSA signatures rather than the bogus symmetric + * encrypt-and-hope thing. Integrated with mLib and Catacomb. + * * Revision 1.3 1999/05/04 16:17:11 mdw * Change to header file name for parser. See log for `parse.h' for * details. @@ -70,6 +77,14 @@ #include #include +/* --- mLib headers --- */ + +#include +#include +#include +#include +#include + /* --- Local headers --- */ #include "become.h" @@ -77,13 +92,10 @@ #include "config.h" #include "daemon.h" #include "lexer.h" -#include "mdwopt.h" #include "name.h" #include "netg.h" #include "parse.h" #include "rule.h" -#include "sym.h" -#include "utils.h" #include "userdb.h" /*----- Type definitions --------------------------------------------------*/ @@ -265,7 +277,7 @@ again: bit = cat_what; goto setbits; default: - die("unknown column specifier `%c'", *p); + die(1, "unknown column specifier `%c'", *p); break; setbits: if (mode == m_replace) { @@ -277,7 +289,7 @@ again: else if (mode == m_remove) outmask &= ~bit; else - die("bad mode while setting output mask: %u", mode); + die(1, "bad mode while setting output mask: %u", mode); break; } p++; @@ -285,7 +297,7 @@ again: goto again; } case '?': - die("type `%s --help' for usage information", quis()); + die(1, "type `%s --help' for usage information", quis()); case 0: if (optarg[0] && optarg[1] == 0) switch (optarg[0]) { case '(': case ')': @@ -294,7 +306,7 @@ again: break; } if (!opt) - die("unexpected text `%s' found", optarg); + die(1, "unexpected text `%s' found", optarg); break; } @@ -322,7 +334,7 @@ static qnode *qparse_atom(void) nextopt(); q = qparse_expr(); if (opt != ')') - die("syntax error: expected `)', found `%s'", optname()); + die(1, "syntax error: expected `)', found `%s'", optname()); nextopt(); return (q); } @@ -331,7 +343,7 @@ static qnode *qparse_atom(void) qnode *q = xmalloc(sizeof(*q)); h = gethostbyname(optarg); if (!h) - die("unknown host `%s'", optarg); + die(1, "unknown host `%s'", optarg); q->q_cat = cat_where; memcpy(&q->q_in, h->h_addr, sizeof(q->q_in)); nextopt(); @@ -352,7 +364,7 @@ static qnode *qparse_atom(void) } pw = userdb_userByName(optarg); if (!pw) - die("unknown user `%s'", optarg); + die(1, "unknown user `%s'", optarg); q->q_uid = pw->pw_uid; } nextopt(); @@ -366,7 +378,7 @@ static qnode *qparse_atom(void) return (q); } default: - die("unexpected token: `%s'", optname()); + die(1, "unexpected token: `%s'", optname()); } return (0); } @@ -436,7 +448,7 @@ static qnode *qparse(void) return (0); q = qparse_expr(); if (opt != EOF) - die("syntax error: `%s' unexpected", optname()); + die(1, "syntax error: `%s' unexpected", optname()); return (q); } @@ -452,8 +464,10 @@ static qnode *qparse(void) static void dumptree(qnode *q, int indent) { - if (!q) + if (!q) { printf(" -- magic query which matches everything\n"); + return; + } again: printf("%*s", indent * 2, ""); @@ -538,7 +552,7 @@ again: /* --- Anything else is bogus (and a bug) --- */ - die("unexpected cat code %u in checkrule", q->q_cat); + die(1, "unexpected cat code %u in checkrule", q->q_cat); return (-1); } @@ -577,7 +591,7 @@ static void classfirstrow(class_node *c, const char *fmt, sym_iter *i, break; case clNode_hash: { sym_base *b; - sym_createIter(i, &c->v.t); + sym_mkiter(i, &c->v.t); b = sym_next(i); if (!b) { printf(fmt, ""); @@ -613,7 +627,7 @@ static void showclass(class_node *c, case clNode_hash: { sym_iter i; sym_base *b; - sym_createIter(&i, &c->v.t); + sym_mkiter(&i, &c->v.t); fputc('(', stdout); if ((b = sym_next(&i)) != 0) { sh(b); @@ -821,7 +835,7 @@ int main(int argc, char *argv[]) int ok; if (!fp) - die("couldn't open configuration file `%s': %s", cf, strerror(errno)); + die(1, "couldn't open configuration file `%s': %s", cf, strerror(errno)); lexer_scan(fp); ok = parse(); if (flags & f_check) @@ -866,7 +880,7 @@ int main(int argc, char *argv[]) /* --- Done --- */ if (!(flags & f_match)) - die("no match"); + die(1, "no match"); return (0); }