summaryrefslogtreecommitdiffstats
path: root/sbin/dhclient/clparse.c
diff options
context:
space:
mode:
authorkrw <krw@openbsd.org>2012-11-08 21:32:55 +0000
committerkrw <krw@openbsd.org>2012-11-08 21:32:55 +0000
commitb21b72f817061283a7f1b51f02cae2d0500bfaac (patch)
treed63c6b33b66268b52255295e22a71e4ecc333ebe /sbin/dhclient/clparse.c
parentRemove lie about dhclient configuring all interfaces. Mention (diff)
downloadwireguard-openbsd-b21b72f817061283a7f1b51f02cae2d0500bfaac.tar.xz
wireguard-openbsd-b21b72f817061283a7f1b51f02cae2d0500bfaac.zip
Remove confusing extra address abstraction 'struct iaddr'. Just use
'in_addr'. Remove many double conversions and other perversions. piaddr() replaced with inet_ntoa(). dhclient is extremely unlikely to support anything but ipv4/dhcp without a complete rewrite. Joint work with chris@. Positive feedback from deraadt@ zinke@ phessler@.
Diffstat (limited to 'sbin/dhclient/clparse.c')
-rw-r--r--sbin/dhclient/clparse.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/sbin/dhclient/clparse.c b/sbin/dhclient/clparse.c
index 72a1cd9065c..cf503c45760 100644
--- a/sbin/dhclient/clparse.c
+++ b/sbin/dhclient/clparse.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: clparse.c,v 1.42 2012/10/30 18:39:44 krw Exp $ */
+/* $OpenBSD: clparse.c,v 1.43 2012/11/08 21:32:55 krw Exp $ */
/* Parser for dhclient config and lease files... */
@@ -431,7 +431,7 @@ parse_client_lease_statement(FILE *cfile, int is_static)
*/
pl = NULL;
for (lp = client->leases; lp; lp = lp->next) {
- if (addr_eq(lp->address, lease->address)) {
+ if (lp->address.s_addr == lease->address.s_addr) {
if (pl)
pl->next = lp->next;
else
@@ -469,7 +469,8 @@ parse_client_lease_statement(FILE *cfile, int is_static)
if (client->active) {
if (client->active->expiry < time(NULL))
free_client_lease(client->active);
- else if (addr_eq(client->active->address, lease->address))
+ else if (client->active->address.s_addr ==
+ lease->address.s_addr)
free_client_lease(client->active);
else {
client->active->next = client->leases;
@@ -563,7 +564,7 @@ parse_option_decl(FILE *cfile, struct option_data *options)
u_int8_t hunkbuf[1024];
int hunkix = 0;
char *fmt;
- struct iaddr ip_addr;
+ struct in_addr ip_addr;
u_int8_t *dp;
int len, code;
int nul_term = 0;
@@ -620,8 +621,8 @@ parse_option_decl(FILE *cfile, struct option_data *options)
case 'I': /* IP address. */
if (!parse_ip_addr(cfile, &ip_addr))
return (-1);
- len = ip_addr.len;
- dp = ip_addr.iabuf;
+ len = sizeof(ip_addr);
+ dp = (char *)&ip_addr;
alloc:
if (hunkix + len > sizeof(hunkbuf)) {
parse_warn("option data buffer "
@@ -713,8 +714,8 @@ bad_flag:
void
parse_reject_statement(FILE *cfile)
{
- struct iaddrlist *list;
- struct iaddr addr;
+ struct reject_elem *list;
+ struct in_addr addr;
int token;
do {
@@ -724,7 +725,7 @@ parse_reject_statement(FILE *cfile)
return;
}
- list = malloc(sizeof(struct iaddrlist));
+ list = malloc(sizeof(struct reject_elem));
if (!list)
error("no memory for reject list!");