summaryrefslogtreecommitdiffstats
path: root/usr.sbin/dhcpd
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2017-02-11 16:12:36 +0000
committerkrw <krw@openbsd.org>2017-02-11 16:12:36 +0000
commitf0a65fa006efdee0b470b840e2c3a4c4d3282eb0 (patch)
tree1febd6e33e3cc567634e48025e2eb36f7a3ba685 /usr.sbin/dhcpd
parentNever look for broken blocks inside blocks that are already closed. (diff)
downloadwireguard-openbsd-f0a65fa006efdee0b470b840e2c3a4c4d3282eb0.tar.xz
wireguard-openbsd-f0a65fa006efdee0b470b840e2c3a4c4d3282eb0.zip
Move parse_warning() into parse.c to prepare to replace errwarn.c
with standard daemon log.[ch]. ok mpi@
Diffstat (limited to 'usr.sbin/dhcpd')
-rw-r--r--usr.sbin/dhcpd/dhcpd.h8
-rw-r--r--usr.sbin/dhcpd/errwarn.c57
-rw-r--r--usr.sbin/dhcpd/parse.c54
3 files changed, 63 insertions, 56 deletions
diff --git a/usr.sbin/dhcpd/dhcpd.h b/usr.sbin/dhcpd/dhcpd.h
index 23e3f527aaf..49663332253 100644
--- a/usr.sbin/dhcpd/dhcpd.h
+++ b/usr.sbin/dhcpd/dhcpd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: dhcpd.h,v 1.55 2016/10/06 16:12:43 krw Exp $ */
+/* $OpenBSD: dhcpd.h,v 1.56 2017/02/11 16:12:36 krw Exp $ */
/*
* Copyright (c) 1995, 1996, 1997, 1998, 1999
@@ -445,6 +445,11 @@ typedef unsigned char option_mask[16];
/* External definitions... */
+/* parse.c */
+void do_percentm(char *obuf, size_t size, char *ibuf);
+int parse_warn(char *, ...) __attribute__ ((__format__ (__printf__, 1,
+ 2)));
+
/* options.c */
void parse_options(struct packet *);
void parse_option_buffer(struct packet *, unsigned char *, int);
@@ -460,7 +465,6 @@ void error(char *, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
int warning(char *, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
int note(char *, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
int debug(char *, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
-int parse_warn(char *, ...) __attribute__ ((__format__ (__printf__, 1, 2)));
/* dhcpd.c */
extern time_t cur_time;
diff --git a/usr.sbin/dhcpd/errwarn.c b/usr.sbin/dhcpd/errwarn.c
index e825c3b5ec2..417ec78e7e3 100644
--- a/usr.sbin/dhcpd/errwarn.c
+++ b/usr.sbin/dhcpd/errwarn.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: errwarn.c,v 1.9 2016/02/06 23:50:10 krw Exp $ */
+/* $OpenBSD: errwarn.c,v 1.10 2017/02/11 16:12:36 krw Exp $ */
/* Errors and warnings... */
@@ -59,10 +59,8 @@
#include "tree.h"
#include "dhcpd.h"
-static void do_percentm(char *obuf, size_t size, char *ibuf);
-
-static char mbuf[1024];
-static char fbuf[1024];
+char mbuf[1024];
+char fbuf[1024];
int warnings_occurred;
@@ -168,7 +166,7 @@ debug(char *fmt, ...)
/*
* Find %m in the input string and substitute an error message string.
*/
-static void
+void
do_percentm(char *obuf, size_t size, char *ibuf)
{
char ch;
@@ -202,50 +200,3 @@ do_percentm(char *obuf, size_t size, char *ibuf)
}
*t = '\0';
}
-
-int
-parse_warn(char *fmt, ...)
-{
- va_list list;
- static char spaces[] =
- " "
- " "; /* 80 spaces */
- struct iovec iov[6];
- size_t iovcnt;
-
- do_percentm(mbuf, sizeof(mbuf), fmt);
- snprintf(fbuf, sizeof(fbuf), "%s line %d: %s", tlname, lexline, mbuf);
- va_start(list, fmt);
- vsnprintf(mbuf, sizeof(mbuf), fbuf, list);
- va_end(list);
-
- if (log_perror) {
- iov[0].iov_base = mbuf;
- iov[0].iov_len = strlen(mbuf);
- iov[1].iov_base = "\n";
- iov[1].iov_len = 1;
- iov[2].iov_base = token_line;
- iov[2].iov_len = strlen(token_line);
- iov[3].iov_base = "\n";
- iov[3].iov_len = 1;
- iovcnt = 4;
- if (lexchar < 81) {
- iov[4].iov_base = spaces;
- iov[4].iov_len = lexchar - 1;
- iov[5].iov_base = "^\n";
- iov[5].iov_len = 2;
- iovcnt += 2;
- }
- writev(STDERR_FILENO, iov, iovcnt);
- } else {
- syslog_r(log_priority | LOG_ERR, &sdata, "%s", mbuf);
- syslog_r(log_priority | LOG_ERR, &sdata, "%s", token_line);
- if (lexchar < 81)
- syslog_r(log_priority | LOG_ERR, &sdata, "%*c", lexchar,
- '^');
- }
-
- warnings_occurred = 1;
-
- return (0);
-}
diff --git a/usr.sbin/dhcpd/parse.c b/usr.sbin/dhcpd/parse.c
index 615df5ae8ce..392b2b792a8 100644
--- a/usr.sbin/dhcpd/parse.c
+++ b/usr.sbin/dhcpd/parse.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.c,v 1.21 2016/08/27 01:26:22 guenther Exp $ */
+/* $OpenBSD: parse.c,v 1.22 2017/02/11 16:12:36 krw Exp $ */
/* Common parser code for dhcpd and dhclient. */
@@ -48,11 +48,14 @@
#include <netinet/in.h>
#include <ctype.h>
+#include <stdarg.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <syslog.h>
#include <time.h>
+#include <unistd.h>
#include "dhcp.h"
#include "tree.h"
@@ -541,3 +544,52 @@ parse_date(FILE *cfile)
return (guess);
}
+
+int
+parse_warn(char *fmt, ...)
+{
+ extern char mbuf[1024];
+ extern char fbuf[1024];
+ va_list list;
+ static char spaces[] =
+ " "
+ " "; /* 80 spaces */
+ struct iovec iov[6];
+ size_t iovcnt;
+
+ do_percentm(mbuf, sizeof(mbuf), fmt);
+ snprintf(fbuf, sizeof(fbuf), "%s line %d: %s", tlname, lexline, mbuf);
+ va_start(list, fmt);
+ vsnprintf(mbuf, sizeof(mbuf), fbuf, list);
+ va_end(list);
+
+ if (log_perror) {
+ iov[0].iov_base = mbuf;
+ iov[0].iov_len = strlen(mbuf);
+ iov[1].iov_base = "\n";
+ iov[1].iov_len = 1;
+ iov[2].iov_base = token_line;
+ iov[2].iov_len = strlen(token_line);
+ iov[3].iov_base = "\n";
+ iov[3].iov_len = 1;
+ iovcnt = 4;
+ if (lexchar < 81) {
+ iov[4].iov_base = spaces;
+ iov[4].iov_len = lexchar - 1;
+ iov[5].iov_base = "^\n";
+ iov[5].iov_len = 2;
+ iovcnt += 2;
+ }
+ writev(STDERR_FILENO, iov, iovcnt);
+ } else {
+ syslog_r(log_priority | LOG_ERR, &sdata, "%s", mbuf);
+ syslog_r(log_priority | LOG_ERR, &sdata, "%s", token_line);
+ if (lexchar < 81)
+ syslog_r(log_priority | LOG_ERR, &sdata, "%*c", lexchar,
+ '^');
+ }
+
+ warnings_occurred = 1;
+
+ return (0);
+}