update to dhcpcd-7.2.0

This commit is contained in:
sthen 2019-04-23 10:52:59 +00:00
parent b16b3b5aaa
commit fac3112f84
5 changed files with 4 additions and 150 deletions

View File

@ -1,9 +1,8 @@
# $OpenBSD: Makefile,v 1.50 2019/03/27 23:47:21 sthen Exp $
# $OpenBSD: Makefile,v 1.51 2019/04/23 10:52:59 sthen Exp $
COMMENT= DHCPv4/IPv4LL/IPv6RS/DHCPv6 quad stack client
DISTNAME= dhcpcd-7.1.1
REVISION= 4
DISTNAME= dhcpcd-7.2.0
CATEGORIES= net
EXTRACT_SUFX= .tar.xz

View File

@ -1,2 +1,2 @@
SHA256 (dhcpcd-7.1.1.tar.xz) = onkkhz35LEeti3ak+6TftBr6o/kKS6Xw6OOtRG15JEE=
SIZE (dhcpcd-7.1.1.tar.xz) = 211788
SHA256 (dhcpcd-7.2.0.tar.xz) = X/9VMxioastCLGPV2Loujtc/zX0dMsTl+2tVeXrsskI=
SIZE (dhcpcd-7.2.0.tar.xz) = 212532

View File

@ -1,65 +0,0 @@
$OpenBSD: patch-src_dhcp6_c,v 1.3 2019/03/26 11:57:34 sthen Exp $
From 01c95afadf6231ae7dced05537f95995f086f573 Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Tue, 26 Mar 2019 00:40:57 +0000
Subject: DHCPv6: Allow nooptions dhcp6_unicast to work.
This allows dhcpcd to ignore any server set unicast option which
doesn't work.
Index: src/dhcp6.c
--- src/dhcp6.c.orig
+++ src/dhcp6.c
@@ -797,8 +797,7 @@ dhcp6_makemessage(struct interface *ifp)
m = state->new;
ml = state->new_len;
}
- unicast = NULL;
- /* Depending on state, get the unicast address */
+
switch(state->state) {
case DH6S_INIT: /* FALLTHROUGH */
case DH6S_DISCOVER:
@@ -806,7 +805,6 @@ dhcp6_makemessage(struct interface *ifp)
break;
case DH6S_REQUEST:
type = DHCP6_REQUEST;
- unicast = dhcp6_findmoption(m, ml, D6_OPTION_UNICAST, &uni_len);
break;
case DH6S_CONFIRM:
type = DHCP6_CONFIRM;
@@ -816,18 +814,31 @@ dhcp6_makemessage(struct interface *ifp)
break;
case DH6S_RENEW:
type = DHCP6_RENEW;
- unicast = dhcp6_findmoption(m, ml, D6_OPTION_UNICAST, &uni_len);
break;
case DH6S_INFORM:
type = DHCP6_INFORMATION_REQ;
break;
case DH6S_RELEASE:
type = DHCP6_RELEASE;
- unicast = dhcp6_findmoption(m, ml, D6_OPTION_UNICAST, &uni_len);
break;
default:
errno = EINVAL;
return -1;
+ }
+
+ switch(state->state) {
+ case DH6S_REQUEST: /* FALLTHROUGH */
+ case DH6S_RENEW: /* FALLTHROUGH */
+ case DH6S_RELEASE:
+ if (has_option_mask(ifo->nomask6, D6_OPTION_UNICAST)) {
+ unicast = NULL;
+ break;
+ }
+ unicast = dhcp6_findmoption(m, ml, D6_OPTION_UNICAST, &uni_len);
+ break;
+ default:
+ unicast = NULL;
+ break;
}
/* In non master mode we listen and send from fixed addresses.

View File

@ -1,43 +0,0 @@
$OpenBSD: patch-src_if-options_c,v 1.2 2019/03/27 23:47:21 sthen Exp $
From f17480d3e1e914d03fea0c054a028fe979742950 Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Mon, 25 Mar 2019 12:17:07 +0000
Subject: script: Fix not running when empty string or /dev/null
From 7a7ab5ba647e229a99ba154950a5eae1a5b63ccd Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Wed, 27 Mar 2019 17:33:03 +0000
Subject: script: Parse argument as a string
This allows "" to equal /dev/null.
Index: src/if-options.c
--- src/if-options.c.orig
+++ src/if-options.c
@@ -709,9 +709,23 @@ parse_option(struct dhcpcd_ctx *ctx, const char *ifnam
case 'c':
ARG_REQUIRED;
free(ifo->script);
- ifo->script = strdup(arg);
- if (ifo->script == NULL)
+ s = parse_string(NULL, 0, arg);
+ if (s == 0) {
+ ifo->script = NULL;
+ break;
+ }
+ dl = (size_t)s;
+ if (s == -1 || (ifo->script = malloc(dl)) == NULL) {
logerr(__func__);
+ return -1;
+ }
+ parse_string(ifo->script, dl, arg);
+ if (ifo->script[0] == '\0' ||
+ strcmp(ifo->script, "/dev/null") == 0)
+ {
+ free(ifo->script);
+ ifo->script = NULL;
+ }
break;
case 'd':
ifo->options |= DHCPCD_DEBUG;

View File

@ -1,37 +0,0 @@
$OpenBSD: patch-src_script_c,v 1.2 2019/03/27 23:47:21 sthen Exp $
From f17480d3e1e914d03fea0c054a028fe979742950 Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Mon, 25 Mar 2019 12:17:07 +0000
Subject: script: Fix not running when empty string or /dev/null
From 97bb60296dc42a29a054ebf9347ac31a7d787393 Mon Sep 17 00:00:00 2001
From: Roy Marples <roy@marples.name>
Date: Mon, 25 Mar 2019 12:20:45 +0000
Subject: script: Fix prior when we have listeners but no script
Index: src/script.c
--- src/script.c.orig
+++ src/script.c
@@ -704,9 +704,7 @@ script_runreason(const struct interface *ifp, const ch
int status = 0;
struct fd_list *fd;
- if (ifp->options->script &&
- (ifp->options->script[0] == '\0' ||
- strcmp(ifp->options->script, "/dev/null") == 0) &&
+ if (ifp->options->script == NULL &&
TAILQ_FIRST(&ifp->ctx->control_fds) == NULL)
return 0;
@@ -717,9 +715,7 @@ script_runreason(const struct interface *ifp, const ch
return -1;
}
- if (ifp->options->script &&
- (ifp->options->script[0] == '\0' ||
- strcmp(ifp->options->script, "/dev/null") == 0))
+ if (ifp->options->script == NULL)
goto send_listeners;
argv[0] = ifp->options->script ? ifp->options->script : UNCONST(SCRIPT);