chiark
/
gitweb
/
~mdw
/
become
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Major overhaul. Now uses DSA signatures rather than the bogus symmetric
[become]
/
src
/
bcquery.c
diff --git
a/src/bcquery.c
b/src/bcquery.c
index 18354c9ace6455b72dfdedf4d0d426134b63fe40..2d07ad364b1fefd7c54f0603d8f802f22dabaf22 100644
(file)
--- a/
src/bcquery.c
+++ b/
src/bcquery.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id: bcquery.c,v 1.
3 1999/05/04 16:17:11
mdw Exp $
+ * $Id: bcquery.c,v 1.
4 2003/10/12 00:14:55
mdw Exp $
*
* Query and dump Become's configuration file
*
*
* Query and dump Become's configuration file
*
@@
-29,6
+29,10
@@
/*----- Revision history --------------------------------------------------*
*
* $Log: bcquery.c,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: bcquery.c,v $
+ * 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.
* 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
+74,14
@@
#include <syslog.h>
#include <unistd.h>
#include <syslog.h>
#include <unistd.h>
+/* --- mLib headers --- */
+
+#include <mLib/alloc.h>
+#include <mLib/mdwopt.h>
+#include <mLib/quis.h>
+#include <mLib/report.h>
+#include <mLib/sym.h>
+
/* --- Local headers --- */
#include "become.h"
/* --- Local headers --- */
#include "become.h"
@@
-77,13
+89,10
@@
#include "config.h"
#include "daemon.h"
#include "lexer.h"
#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 "name.h"
#include "netg.h"
#include "parse.h"
#include "rule.h"
-#include "sym.h"
-#include "utils.h"
#include "userdb.h"
/*----- Type definitions --------------------------------------------------*/
#include "userdb.h"
/*----- Type definitions --------------------------------------------------*/
@@
-265,7
+274,7
@@
again:
bit = cat_what;
goto setbits;
default:
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) {
break;
setbits:
if (mode == m_replace) {
@@
-277,7
+286,7
@@
again:
else if (mode == m_remove)
outmask &= ~bit;
else
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++;
break;
}
p++;
@@
-285,7
+294,7
@@
again:
goto again;
}
case '?':
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 ')':
case 0:
if (optarg[0] && optarg[1] == 0) switch (optarg[0]) {
case '(': case ')':
@@
-294,7
+303,7
@@
again:
break;
}
if (!opt)
break;
}
if (!opt)
- die("unexpected text `%s' found", optarg);
+ die(
1,
"unexpected text `%s' found", optarg);
break;
}
break;
}
@@
-322,7
+331,7
@@
static qnode *qparse_atom(void)
nextopt();
q = qparse_expr();
if (opt != ')')
nextopt();
q = qparse_expr();
if (opt != ')')
- die("syntax error: expected `)', found `%s'", optname());
+ die(
1,
"syntax error: expected `)', found `%s'", optname());
nextopt();
return (q);
}
nextopt();
return (q);
}
@@
-331,7
+340,7
@@
static qnode *qparse_atom(void)
qnode *q = xmalloc(sizeof(*q));
h = gethostbyname(optarg);
if (!h)
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();
q->q_cat = cat_where;
memcpy(&q->q_in, h->h_addr, sizeof(q->q_in));
nextopt();
@@
-352,7
+361,7
@@
static qnode *qparse_atom(void)
}
pw = userdb_userByName(optarg);
if (!pw)
}
pw = userdb_userByName(optarg);
if (!pw)
- die("unknown user `%s'", optarg);
+ die(
1,
"unknown user `%s'", optarg);
q->q_uid = pw->pw_uid;
}
nextopt();
q->q_uid = pw->pw_uid;
}
nextopt();
@@
-366,7
+375,7
@@
static qnode *qparse_atom(void)
return (q);
}
default:
return (q);
}
default:
- die("unexpected token: `%s'", optname());
+ die(
1,
"unexpected token: `%s'", optname());
}
return (0);
}
}
return (0);
}
@@
-436,7
+445,7
@@
static qnode *qparse(void)
return (0);
q = qparse_expr();
if (opt != EOF)
return (0);
q = qparse_expr();
if (opt != EOF)
- die("syntax error: `%s' unexpected", optname());
+ die(
1,
"syntax error: `%s' unexpected", optname());
return (q);
}
return (q);
}
@@
-538,7
+547,7
@@
again:
/* --- Anything else is bogus (and a bug) --- */
/* --- 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);
}
return (-1);
}
@@
-577,7
+586,7
@@
static void classfirstrow(class_node *c, const char *fmt, sym_iter *i,
break;
case clNode_hash: {
sym_base *b;
break;
case clNode_hash: {
sym_base *b;
- sym_
createI
ter(i, &c->v.t);
+ sym_
mki
ter(i, &c->v.t);
b = sym_next(i);
if (!b) {
printf(fmt, "");
b = sym_next(i);
if (!b) {
printf(fmt, "");
@@
-613,7
+622,7
@@
static void showclass(class_node *c,
case clNode_hash: {
sym_iter i;
sym_base *b;
case clNode_hash: {
sym_iter i;
sym_base *b;
- sym_
createI
ter(&i, &c->v.t);
+ sym_
mki
ter(&i, &c->v.t);
fputc('(', stdout);
if ((b = sym_next(&i)) != 0) {
sh(b);
fputc('(', stdout);
if ((b = sym_next(&i)) != 0) {
sh(b);
@@
-821,7
+830,7
@@
int main(int argc, char *argv[])
int ok;
if (!fp)
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)
lexer_scan(fp);
ok = parse();
if (flags & f_check)
@@
-866,7
+875,7
@@
int main(int argc, char *argv[])
/* --- Done --- */
if (!(flags & f_match))
/* --- Done --- */
if (!(flags & f_match))
- die("no match");
+ die(
1,
"no match");
return (0);
}
return (0);
}