From: Roy Marples Date: Thu, 6 Feb 2020 12:50:31 +0000 (+0000) Subject: eloop: define eloop queue numbers in common.h X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8df4aa4ec2e8dfc7de92f66b029f9a61d6920adf;p=thirdparty%2Fdhcpcd.git eloop: define eloop queue numbers in common.h Allows for easier maintainance. --- diff --git a/src/arp.c b/src/arp.c index cd9ac4b5..270a22f0 100644 --- a/src/arp.c +++ b/src/arp.c @@ -41,7 +41,7 @@ #include #include -#define ELOOP_QUEUE 5 +#define ELOOP_QUEUE ELOOP_ARP #include "config.h" #include "arp.h" #include "bpf.h" diff --git a/src/common.h b/src/common.h index 49ff36f9..b054d581 100644 --- a/src/common.h +++ b/src/common.h @@ -34,6 +34,16 @@ #include #include +/* Define eloop queues here, as other apps share eloop.h */ +#define ELOOP_DHCPCD 1 /* default queue */ +#define ELOOP_DHCP 2 +#define ELOOP_ARP 3 +#define ELOOP_IPV4LL 4 +#define ELOOP_IPV6 5 +#define ELOOP_IPV6ND 6 +#define ELOOP_IPV6RA_EXPIRE 7 +#define ELOOP_DHCP6 8 + #ifndef HOSTNAME_MAX_LEN #define HOSTNAME_MAX_LEN 250 /* 255 - 3 (FQDN) - 2 (DNS enc) */ #endif diff --git a/src/dhcp.c b/src/dhcp.c index 25081f20..f4a0c63e 100644 --- a/src/dhcp.c +++ b/src/dhcp.c @@ -57,7 +57,7 @@ #include #include -#define ELOOP_QUEUE 2 +#define ELOOP_QUEUE ELOOP_DHCP #include "config.h" #include "arp.h" #include "bpf.h" diff --git a/src/dhcp6.c b/src/dhcp6.c index 72170921..7012c164 100644 --- a/src/dhcp6.c +++ b/src/dhcp6.c @@ -45,7 +45,7 @@ #include #include -#define ELOOP_QUEUE 4 +#define ELOOP_QUEUE ELOOP_DHCP6 #include "config.h" #include "common.h" #include "dhcp.h" diff --git a/src/dhcpcd.c b/src/dhcpcd.c index a82af288..3da52982 100644 --- a/src/dhcpcd.c +++ b/src/dhcpcd.c @@ -400,7 +400,7 @@ stop_interface(struct interface *ifp) script_runreason(ifp, "STOPPED"); /* Delete all timeouts for the interfaces */ - eloop_q_timeout_delete(ctx->eloop, 0, NULL, ifp); + eloop_q_timeout_delete(ctx->eloop, ELOOP_QUEUE_ALL, NULL, ifp); /* De-activate the interface */ ifp->active = IF_INACTIVE; diff --git a/src/eloop.h b/src/eloop.h index c4942131..e5d881a1 100644 --- a/src/eloop.h +++ b/src/eloop.h @@ -46,6 +46,9 @@ #define ELOOP_QUEUE 1 #endif +/* Used for deleting a timeout for all queues. */ +#define ELOOP_QUEUE_ALL 0 + /* Forward declare eloop - the content should be invisible to the outside */ struct eloop; diff --git a/src/ipv4ll.c b/src/ipv4ll.c index faf6fbc6..5832703d 100644 --- a/src/ipv4ll.c +++ b/src/ipv4ll.c @@ -36,7 +36,7 @@ #include #include -#define ELOOP_QUEUE 6 +#define ELOOP_QUEUE IPV4LL #include "config.h" #include "arp.h" #include "common.h" diff --git a/src/ipv6.c b/src/ipv6.c index 92403912..216f0c70 100644 --- a/src/ipv6.c +++ b/src/ipv6.c @@ -59,7 +59,7 @@ #include #include -#define ELOOP_QUEUE 7 +#define ELOOP_QUEUE ELOOP_IPV6 #include "common.h" #include "if.h" #include "dhcpcd.h" @@ -927,7 +927,7 @@ ipv6_doaddr(struct ipv6_addr *ia, struct timespec *now) if (ia->flags & IPV6_AF_ADDED) ipv6_deleteaddr(ia); eloop_q_timeout_delete(ia->iface->ctx->eloop, - 0, NULL, ia); + ELOOP_QUEUE_ALL, NULL, ia); if (ia->flags & IPV6_AF_REQUEST) { ia->flags &= ~IPV6_AF_ADDED; return 0; @@ -969,6 +969,7 @@ ipv6_addaddrs(struct ipv6_addrhead *iaddrs) void ipv6_freeaddr(struct ipv6_addr *ia) { + struct eloop *eloop = ia->iface->ctx->eloop; #ifndef SMALL struct ipv6_addr *iad; @@ -984,10 +985,10 @@ ipv6_freeaddr(struct ipv6_addr *ia) if (ia->dhcp6_fd != -1) { close(ia->dhcp6_fd); - eloop_event_delete(ia->iface->ctx->eloop, ia->dhcp6_fd); + eloop_event_delete(eloop, ia->dhcp6_fd); } - eloop_q_timeout_delete(ia->iface->ctx->eloop, 0, NULL, ia); + eloop_q_timeout_delete(eloop, ELOOP_QUEUE_ALL, NULL, ia); free(ia->na); free(ia); } diff --git a/src/ipv6nd.c b/src/ipv6nd.c index 5a9f8364..9457545e 100644 --- a/src/ipv6nd.c +++ b/src/ipv6nd.c @@ -43,7 +43,7 @@ #include #include -#define ELOOP_QUEUE 3 +#define ELOOP_QUEUE ELOOP_IPV6ND #include "common.h" #include "dhcpcd.h" #include "dhcp-common.h"