[packages/dhcpcd] - up to 6.4.5

arekm arekm at pld-linux.org
Sat Sep 20 18:15:54 CEST 2014


commit a3baefcaf6b995662d9d40119fb5c65aec91c563
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Sat Sep 20 18:15:52 2014 +0200

    - up to 6.4.5

 dhcpcd-ifname.patch | 541 ----------------------------------------------------
 dhcpcd.spec         |   9 +-
 2 files changed, 3 insertions(+), 547 deletions(-)
---
diff --git a/dhcpcd.spec b/dhcpcd.spec
index ab02fe5..43f84e5 100644
--- a/dhcpcd.spec
+++ b/dhcpcd.spec
@@ -6,13 +6,12 @@ Summary(pl.UTF-8):	Klient (daemon) DHCP
 Summary(pt_BR.UTF-8):	Servidor DHCPC
 Summary(tr.UTF-8):	DHCPC sunucu süreçi (daemon)
 Name:		dhcpcd
-Version:	6.4.4
-Release:	3
+Version:	6.4.5
+Release:	1
 License:	BSD
 Group:		Networking/Daemons
 Source0:	http://roy.marples.name/downloads/dhcpcd/%{name}-%{version}.tar.bz2
-# Source0-md5:	8550f040075e447a0555e896e4dfc948
-Patch0:		%{name}-ifname.patch
+# Source0-md5:	4272a7de51bf0ba2b5d4f602e7fa5691
 URL:		http://roy.marples.name/projects/dhcpcd
 BuildRoot:	%{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
@@ -87,11 +86,9 @@ kira zamanını (lease time) yenilemeye çalışır.
 
 %prep
 %setup -q
-%patch0 -p0
 
 %build
 %configure \
-	CPPFLAGS="%{rpmcppflags} -D_DEFAULT_SOURCE" \
 	--dbdir=%{_sharedstatedir}/dhcpcd
 
 %{__make}
diff --git a/dhcpcd-ifname.patch b/dhcpcd-ifname.patch
deleted file mode 100644
index 20b7981..0000000
--- a/dhcpcd-ifname.patch
+++ /dev/null
@@ -1,541 +0,0 @@
-Index: dhcpcd.c
-==================================================================
---- dhcpcd.c
-+++ dhcpcd.c
-@@ -376,11 +376,11 @@
- 
- 	/* We want to disable kernel interface RA as early as possible. */
- 	if (ifo->options & DHCPCD_IPV6RS) {
- 		ra_global = if_checkipv6(ifp->ctx, NULL,
- 		    ifp->ctx->options & DHCPCD_IPV6RA_OWN ? 1 : 0);
--		ra_iface = if_checkipv6(ifp->ctx, ifp->name,
-+		ra_iface = if_checkipv6(ifp->ctx, ifp,
- 		    ifp->options->options & DHCPCD_IPV6RA_OWN ? 1 : 0);
- 		if (ra_global == -1 || ra_iface == -1)
- 			ifo->options &= ~DHCPCD_IPV6RS;
- 		else if (ra_iface == 0)
- 			ifo->options |= DHCPCD_IPV6RA_OWN;
-
-Index: if-bsd.c
-==================================================================
---- if-bsd.c
-+++ if-bsd.c
-@@ -767,19 +767,20 @@
- 
- int
- if_managelink(struct dhcpcd_ctx *ctx)
- {
- 	/* route and ifwatchd like a msg buf size of 2048 */
--	char msg[2048], *p, *e, *cp, ifname[IF_NAMESIZE];
-+	char msg[2048], *p, *e, *cp;
- 	ssize_t bytes;
- 	struct rt_msghdr *rtm;
- 	struct if_announcemsghdr *ifan;
- 	struct if_msghdr *ifm;
- 	struct ifa_msghdr *ifam;
- 	struct sockaddr *sa, *rti_info[RTAX_MAX];
- 	int len;
- 	struct sockaddr_dl sdl;
-+	struct interface *ifp;
- #ifdef INET
- 	struct rt rt;
- #endif
- #ifdef INET6
- 	struct in6_addr ia6;
-@@ -814,12 +815,11 @@
- 			}
- 			break;
- #endif
- 		case RTM_IFINFO:
- 			ifm = (struct if_msghdr *)(void *)p;
--			memset(ifname, 0, sizeof(ifname));
--			if (!(if_indextoname(ifm->ifm_index, ifname)))
-+			if ((ifp = if_findindex(ctx, ifm->ifm_index)) == NULL)
- 				break;
- 			switch (ifm->ifm_data.ifi_link_state) {
- 			case LINK_STATE_DOWN:
- 				len = LINK_DOWN;
- 				break;
-@@ -836,11 +836,11 @@
- 				 * As such, it is a race ...*/
- 				len = LINK_UNKNOWN;
- 				break;
- 			}
- 			dhcpcd_handlecarrier(ctx, len,
--			    (unsigned int)ifm->ifm_flags, ifname);
-+			    (unsigned int)ifm->ifm_flags, ifp->name);
- 			break;
- 		case RTM_DELETE:
- 			if (~rtm->rtm_addrs &
- 			    (RTA_DST | RTA_GATEWAY | RTA_NETMASK))
- 				break;
-@@ -862,11 +862,11 @@
- 		case RTM_CHGADDR:	/* FALLTHROUGH */
- #endif
- 		case RTM_DELADDR:	/* FALLTHROUGH */
- 		case RTM_NEWADDR:
- 			ifam = (struct ifa_msghdr *)(void *)p;
--			if (!if_indextoname(ifam->ifam_index, ifname))
-+			if ((ifp = if_findindex(ctx, ifam->ifam_index)) == NULL)
- 				break;
- 			cp = (char *)(void *)(ifam + 1);
- 			get_addrs(ifam->ifam_addrs, cp, rti_info);
- 			if (rti_info[RTAX_IFA] == NULL)
- 				break;
-@@ -879,11 +879,11 @@
- 				if (rtm->rtm_type != RTM_NEWADDR)
- 					break;
- #endif
- 				memcpy(&sdl, rti_info[RTAX_IFA],
- 				    rti_info[RTAX_IFA]->sa_len);
--				dhcpcd_handlehwaddr(ctx, ifname,
-+				dhcpcd_handlehwaddr(ctx, ifp->name,
- 				    (const unsigned char*)CLLADDR(&sdl),
- 				    sdl.sdl_alen);
- 				break;
- #ifdef INET
- 			case AF_INET:
-@@ -890,27 +890,28 @@
- 			case 255: /* FIXME: Why 255? */
- 				COPYOUT(rt.dest, rti_info[RTAX_IFA]);
- 				COPYOUT(rt.net, rti_info[RTAX_NETMASK]);
- 				COPYOUT(rt.gate, rti_info[RTAX_BRD]);
- 				ipv4_handleifa(ctx, rtm->rtm_type,
--				    NULL, ifname,
-+				    NULL, ifp->name,
- 				    &rt.dest, &rt.net, &rt.gate);
- 				break;
- #endif
- #ifdef INET6
- 			case AF_INET6:
- 				sin6 = (struct sockaddr_in6*)(void *)
- 				    rti_info[RTAX_IFA];
- 				ia6 = sin6->sin6_addr;
- 				if (rtm->rtm_type == RTM_NEWADDR) {
--					ifa_flags = if_addrflags6(ifname, &ia6);
-+					ifa_flags = if_addrflags6(ifp->name,
-+					    &ia6);
- 					if (ifa_flags == -1)
- 						break;
- 				} else
- 					ifa_flags = 0;
- 				ipv6_handleifa(ctx, rtm->rtm_type, NULL,
--				    ifname, &ia6, ifa_flags);
-+				    ifp->name, &ia6, ifa_flags);
- 				break;
- #endif
- 			}
- 			break;
- 		}
-@@ -1046,30 +1047,30 @@
- 	close(s);
- 	return 0;
- }
- 
- int
--if_checkipv6(struct dhcpcd_ctx *ctx, const char *ifname, int own)
-+if_checkipv6(struct dhcpcd_ctx *ctx, const struct interface *ifp, int own)
- {
- 	int ra;
- 
--	if (ifname) {
-+	if (ifp) {
- #ifdef ND6_IFF_OVERRIDE_RTADV
- 		int override;
- #endif
- 
- #ifdef ND6_IFF_IFDISABLED
--		if (del_if_nd6_flag(ifname, ND6_IFF_IFDISABLED) == -1) {
-+		if (del_if_nd6_flag(ifp->name, ND6_IFF_IFDISABLED) == -1) {
- 			syslog(LOG_ERR,
- 			    "%s: del_if_nd6_flag: ND6_IFF_IFDISABLED: %m",
- 			    ifname);
- 			return -1;
- 		}
- #endif
- 
- #ifdef ND6_IFF_PERFORMNUD
--		if (set_if_nd6_flag(ifname, ND6_IFF_PERFORMNUD) == -1) {
-+		if (set_if_nd6_flag(ifp->name, ND6_IFF_PERFORMNUD) == -1) {
- 			syslog(LOG_ERR,
- 			    "%s: set_if_nd6_flag: ND6_IFF_PERFORMNUD: %m",
- 			    ifname);
- 			return -1;
- 		}
-@@ -1077,72 +1078,72 @@
- 
- #ifdef ND6_IFF_AUTO_LINKLOCAL
- 		if (own) {
- 			int all;
- 
--			all = get_if_nd6_flag(ifname, ND6_IFF_AUTO_LINKLOCAL);
-+			all = get_if_nd6_flag(ifp->name,ND6_IFF_AUTO_LINKLOCAL);
- 			if (all == -1)
- 				syslog(LOG_ERR,
- 				    "%s: get_if_nd6_flag: "
- 				    "ND6_IFF_AUTO_LINKLOCAL: %m",
--				    ifname);
-+				    ifp->name);
- 			else if (all != 0) {
- 				syslog(LOG_DEBUG,
- 				    "%s: disabling Kernel IPv6 "
- 				    "auto link-local support",
--				    ifname);
--				if (del_if_nd6_flag(ifname,
-+				    ifp->name);
-+				if (del_if_nd6_flag(ifp->name,
- 				    ND6_IFF_AUTO_LINKLOCAL) == -1)
- 				{
- 					syslog(LOG_ERR,
- 					    "%s: del_if_nd6_flag: "
- 					    "ND6_IFF_AUTO_LINKLOCAL: %m",
--					    ifname);
-+					    ifp->name);
- 					return -1;
- 				}
- 			}
- 		}
- #endif
- 
- #ifdef ND6_IFF_OVERRIDE_RTADV
--		override = get_if_nd6_flag(ifname, ND6_IFF_OVERRIDE_RTADV);
-+		override = get_if_nd6_flag(ifp->name, ND6_IFF_OVERRIDE_RTADV);
- 		if (override == -1)
- 			syslog(LOG_ERR,
- 			    "%s: get_if_nd6_flag: ND6_IFF_OVERRIDE_RTADV: %m",
--			    ifname);
-+			    ifp->name);
- 		else if (override == 0 && !own)
- 			return 0;
- #endif
- 
- #ifdef ND6_IFF_ACCEPT_RTADV
--		ra = get_if_nd6_flag(ifname, ND6_IFF_ACCEPT_RTADV);
-+		ra = get_if_nd6_flag(ifp->name, ND6_IFF_ACCEPT_RTADV);
- 		if (ra == -1)
- 			syslog(LOG_ERR,
- 			    "%s: get_if_nd6_flag: ND6_IFF_ACCEPT_RTADV: %m",
--			    ifname);
-+			    ifp->name);
- 		else if (ra != 0 && own) {
- 			syslog(LOG_DEBUG,
- 			    "%s: disabling Kernel IPv6 RA support",
--			    ifname);
--			if (del_if_nd6_flag(ifname, ND6_IFF_ACCEPT_RTADV)
-+			    ifp->name);
-+			if (del_if_nd6_flag(ifp->name, ND6_IFF_ACCEPT_RTADV)
- 			    == -1)
- 			{
- 				syslog(LOG_ERR,
- 				    "%s: del_if_nd6_flag: "
- 				    "ND6_IFF_ACCEPT_RTADV: %m",
--				    ifname);
-+				    ifp->name);
- 				return ra;
- 			}
- #ifdef ND6_IFF_OVERRIDE_RTADV
- 			if (override == 0 &&
--			    set_if_nd6_flag(ifname, ND6_IFF_OVERRIDE_RTADV)
-+			    set_if_nd6_flag(ifp->name, ND6_IFF_OVERRIDE_RTADV)
- 			    == -1)
- 			{
- 				syslog(LOG_ERR,
- 				    "%s: set_if_nd6_flag: "
- 				    "ND6_IFF_OVERRIDE_RTADV: %m",
--				    ifname);
-+				    ifp->name);
- 				return ra;
- 			}
- #endif
- 			return 0;
- 		}
-
-Index: if-linux.c
-==================================================================
---- if-linux.c
-+++ if-linux.c
-@@ -403,11 +403,11 @@
- static int
- link_route(struct dhcpcd_ctx *ctx, __unused struct interface *ifp,
-     struct nlmsghdr *nlm)
- {
- 	size_t len;
--	unsigned int idx, metric;
-+	unsigned int metric;
- 	struct rtattr *rta;
- 	struct rtmsg *rtm;
- 	struct rt rt;
- 	char ifn[IF_NAMESIZE + 1];
- 
-@@ -447,13 +447,12 @@
- 		case RTA_GATEWAY:
- 			memcpy(&rt.gate.s_addr, RTA_DATA(rta),
- 			    sizeof(rt.gate.s_addr));
- 			break;
- 		case RTA_OIF:
--			idx = *(unsigned int *)RTA_DATA(rta);
--			if (if_indextoname(idx, ifn))
--				rt.iface = if_find(ctx, ifn);
-+			rt.iface = if_findindex(ctx,
-+			    *(unsigned int *)RTA_DATA(rta));
- 			break;
- 		case RTA_PRIORITY:
- 			metric = *(unsigned int *)RTA_DATA(rta);
- 			break;
- 		}
-@@ -493,15 +492,15 @@
- 	if (len < sizeof(*ifa)) {
- 		errno = EBADMSG;
- 		return -1;
- 	}
- 	ifa = NLMSG_DATA(nlm);
--	if (if_indextoname(ifa->ifa_index, ifn) == NULL)
--		return -1;
--	iface = if_find(ctx, ifn);
--	if (iface == NULL)
-+	if (if_findindex(ctx, ifa->ifa_index) == NULL) {
-+		/* We don't know about the interface the address is for
-+		 * so it's not really an error */
- 		return 1;
-+	}
- 	rta = (struct rtattr *) IFA_RTA(ifa);
- 	len = NLMSG_PAYLOAD(nlm, sizeof(*ifa));
- 	switch (ifa->ifa_family) {
- #ifdef INET
- 	case AF_INET:
-@@ -1478,21 +1477,21 @@
- 
- 	nest->rta_len = (unsigned short)((char *)NLMSG_TAIL(n) - (char *)nest);
- }
- 
- static int
--if_disable_autolinklocal(struct dhcpcd_ctx *ctx, const char *ifname)
-+if_disable_autolinklocal(struct dhcpcd_ctx *ctx, int ifindex)
- {
- 	struct nlml nlm;
- 	struct rtattr *afs, *afs6;
- 
- 	memset(&nlm, 0, sizeof(nlm));
- 	nlm.hdr.nlmsg_len = NLMSG_LENGTH(sizeof(struct ifinfomsg));
- 	nlm.hdr.nlmsg_type = RTM_NEWLINK;
- 	nlm.hdr.nlmsg_flags = NLM_F_REQUEST;
- 	nlm.i.ifi_family = AF_INET6;
--	nlm.i.ifi_index = (int)if_nametoindex(ifname);
-+	nlm.i.ifi_index = ifindex;
- 	afs = add_attr_nest(&nlm.hdr, sizeof(nlm), IFLA_AF_SPEC);
- 	afs6 = add_attr_nest(&nlm.hdr, sizeof(nlm), AF_INET6);
- 	add_attr_8(&nlm.hdr, sizeof(nlm), IFLA_INET6_ADDR_GEN_MODE,
- 	    IN6_ADDR_GEN_MODE_NONE);
- 	add_attr_nest_end(&nlm.hdr, afs6);
-@@ -1502,22 +1501,25 @@
- }
- 
- static const char *prefix = "/proc/sys/net/ipv6/conf";
- 
- int
--if_checkipv6(struct dhcpcd_ctx *ctx, const char *ifname, int own)
-+if_checkipv6(struct dhcpcd_ctx *ctx, const struct interface *ifp, int own)
- {
-+	const char *ifname;
- 	int ra;
- 	char path[256];
- 
--	if (ifname == NULL)
-+	if (ifp == NULL)
- 		ifname = "all";
- 	else if (own) {
--		if (if_disable_autolinklocal(ctx, ifname) == -1)
-+		if (if_disable_autolinklocal(ctx, ifp->index) == -1)
- 			syslog(LOG_DEBUG, "%s: if_disable_autolinklocal: %m",
- 			    ifname);
- 	}
-+	if (ifp)
-+		ifname = ifp->name;
- 
- 	snprintf(path, sizeof(path), "%s/%s/autoconf", prefix, ifname);
- 	ra = check_proc_int(path);
- 	if (ra != 1) {
- 		if (!own) {
-
-Index: if.c
-==================================================================
---- if.c
-+++ if.c
-@@ -477,24 +477,39 @@
- 
- 	return ifs;
- }
- 
- struct interface *
--if_find(struct dhcpcd_ctx *ctx, const char *ifname)
-+if_findindexname(struct dhcpcd_ctx *ctx, unsigned int idx, const char *name)
- {
- 	struct interface *ifp;
- 
- 	if (ctx != NULL && ctx->ifaces != NULL) {
- 		TAILQ_FOREACH(ifp, ctx->ifaces, next) {
- 			if ((ifp->options == NULL ||
- 			    !(ifp->options->options & DHCPCD_PFXDLGONLY)) &&
--			    strcmp(ifp->name, ifname) == 0)
-+			    ((name && strcmp(ifp->name, name) == 0) ||
-+			    (!name && ifp->index == idx)))
- 				return ifp;
- 		}
- 	}
- 	return NULL;
- }
-+
-+struct interface *
-+if_find(struct dhcpcd_ctx *ctx, const char *name)
-+{
-+
-+	return if_findindexname(ctx, 0, name);
-+}
-+
-+struct interface *
-+if_findindex(struct dhcpcd_ctx *ctx, unsigned int idx)
-+{
-+
-+	return if_findindexname(ctx, idx, NULL);
-+}
- 
- int
- if_domtu(const char *ifname, short int mtu)
- {
- 	int s, r;
-
-Index: if.h
-==================================================================
---- if.h
-+++ if.h
-@@ -92,10 +92,11 @@
- 
- int if_setflag(struct interface *ifp, short flag);
- #define if_up(ifp) if_setflag((ifp), (IFF_UP | IFF_RUNNING))
- struct if_head *if_discover(struct dhcpcd_ctx *, int, char * const *);
- struct interface *if_find(struct dhcpcd_ctx *, const char *);
-+struct interface *if_findindex(struct dhcpcd_ctx *, unsigned int);
- void if_free(struct interface *);
- int if_domtu(const char *, short int);
- #define if_getmtu(iface) if_domtu(iface, 0)
- #define if_setmtu(iface, mtu) if_domtu(iface, mtu)
- int if_carrier(struct interface *);
-@@ -129,11 +130,11 @@
- #define if_chgroute(rt) if_route(rt, 0)
- #define if_delroute(rt) if_route(rt, -1)
- #endif
- 
- #ifdef INET6
--int if_checkipv6(struct dhcpcd_ctx *ctx, const char *, int);
-+int if_checkipv6(struct dhcpcd_ctx *ctx, const struct interface *, int);
- int if_nd6reachable(const char *ifname, struct in6_addr *addr);
- 
- int if_address6(const struct ipv6_addr *, int);
- #define if_addaddress6(a) if_address6(a, 1)
- #define if_deladdress6(a) if_address6(a, -1)
-
-Index: if-linux.c
-==================================================================
---- if-linux.c
-+++ if-linux.c
-@@ -84,13 +84,12 @@
- #include "ipv6nd.h"
- 
- #ifdef HAVE_NL80211_H
- #include <linux/genetlink.h>
- #include <linux/nl80211.h>
--#else
-+#endif
- int if_getssid_wext(const char *ifname, uint8_t *ssid);
--#endif
- 
- #define bpf_insn		sock_filter
- #define BPF_SKIPTYPE
- #define BPF_ETHCOOK		-ETH_HLEN
- #define BPF_WHOLEPACKET	0x0fffffff /* work around buggy LPF filters */
-@@ -468,18 +467,15 @@
- 	}
- 	return 1;
- }
- 
- static int
--link_addr(struct dhcpcd_ctx *ctx, __unused struct interface *ifp,
--    struct nlmsghdr *nlm)
-+link_addr(struct dhcpcd_ctx *ctx, struct interface *ifp, struct nlmsghdr *nlm)
- {
- 	size_t len;
- 	struct rtattr *rta;
- 	struct ifaddrmsg *ifa;
--	char ifn[IF_NAMESIZE + 1];
--	struct interface *iface;
- #ifdef INET
- 	struct in_addr addr, net, dest;
- #endif
- #ifdef INET6
- 	struct in6_addr addr6;
-@@ -492,11 +488,11 @@
- 	if (len < sizeof(*ifa)) {
- 		errno = EBADMSG;
- 		return -1;
- 	}
- 	ifa = NLMSG_DATA(nlm);
--	if (if_findindex(ctx, ifa->ifa_index) == NULL) {
-+	if ((ifp = if_findindex(ctx, ifa->ifa_index)) == NULL) {
- 		/* We don't know about the interface the address is for
- 		 * so it's not really an error */
- 		return 1;
- 	}
- 	rta = (struct rtattr *) IFA_RTA(ifa);
-@@ -508,11 +504,11 @@
- 		dest.s_addr = INADDR_ANY;
- 		inet_cidrtoaddr(ifa->ifa_prefixlen, &net);
- 		while (RTA_OK(rta, len)) {
- 			switch (rta->rta_type) {
- 			case IFA_ADDRESS:
--				if (iface->flags & IFF_POINTOPOINT) {
-+				if (ifp->flags & IFF_POINTOPOINT) {
- 					memcpy(&dest.s_addr, RTA_DATA(rta),
- 					       sizeof(addr.s_addr));
- 				}
- 				break;
- 			case IFA_LOCAL:
-@@ -520,11 +516,11 @@
- 				       sizeof(addr.s_addr));
- 				break;
- 			}
- 			rta = RTA_NEXT(rta, len);
- 		}
--		ipv4_handleifa(ctx, nlm->nlmsg_type, NULL, ifn,
-+		ipv4_handleifa(ctx, nlm->nlmsg_type, NULL, ifp->name,
- 		    &addr, &net, &dest);
- 		break;
- #endif
- #ifdef INET6
- 	case AF_INET6:
-@@ -536,11 +532,11 @@
- 				       sizeof(addr6.s6_addr));
- 				break;
- 			}
- 			rta = RTA_NEXT(rta, len);
- 		}
--		ipv6_handleifa(ctx, nlm->nlmsg_type, NULL, ifn,
-+		ipv6_handleifa(ctx, nlm->nlmsg_type, NULL, ifp->name,
- 		    &addr6, ifa->ifa_flags);
- 		break;
- #endif
- 	}
- 	return 1;
-@@ -1512,11 +1508,11 @@
- 	if (ifp == NULL)
- 		ifname = "all";
- 	else if (own) {
- 		if (if_disable_autolinklocal(ctx, ifp->index) == -1)
- 			syslog(LOG_DEBUG, "%s: if_disable_autolinklocal: %m",
--			    ifname);
-+			    ifp->name);
- 	}
- 	if (ifp)
- 		ifname = ifp->name;
- 
- 	snprintf(path, sizeof(path), "%s/%s/autoconf", prefix, ifname);
-
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/dhcpcd.git/commitdiff/a3baefcaf6b995662d9d40119fb5c65aec91c563



More information about the pld-cvs-commit mailing list