From cfb086812ab273c41525fbf0143e5d3195d289ae Mon Sep 17 00:00:00 2001 From: Luke McKee Date: Sat, 9 Jul 2016 20:38:29 +0700 Subject: [PATCH] mini_snmpd: patches are now all merged upstream in 1.4-rc1 Signed-off-by: Luke McKee --- net/mini_snmpd/patches/100-dualstack.patch | 218 ------------------ net/mini_snmpd/patches/101-opt_flags.patch | 14 -- .../102-mib_fix_uninitialized_memory.patch | 34 --- .../103-mib_encode_snmp_element_oid_fix.patch | 21 -- net/mini_snmpd/patches/104-memset_fix.patch | 11 - 5 files changed, 298 deletions(-) delete mode 100644 net/mini_snmpd/patches/100-dualstack.patch delete mode 100644 net/mini_snmpd/patches/101-opt_flags.patch delete mode 100644 net/mini_snmpd/patches/102-mib_fix_uninitialized_memory.patch delete mode 100644 net/mini_snmpd/patches/103-mib_encode_snmp_element_oid_fix.patch delete mode 100644 net/mini_snmpd/patches/104-memset_fix.patch diff --git a/net/mini_snmpd/patches/100-dualstack.patch b/net/mini_snmpd/patches/100-dualstack.patch deleted file mode 100644 index 08aa4a0b6f..0000000000 --- a/net/mini_snmpd/patches/100-dualstack.patch +++ /dev/null @@ -1,218 +0,0 @@ ---- a/globals.c -+++ b/globals.c -@@ -27,9 +27,9 @@ - * Global variables - */ - --#ifdef __IPV4__ - const struct in_addr inaddr_any = { INADDR_ANY }; --#endif -+ -+int g_family = AF_INET; - - in_port_t g_udp_port = 161; - in_port_t g_tcp_port = 161; ---- a/mini_snmpd.c -+++ b/mini_snmpd.c -@@ -54,6 +54,10 @@ static void print_help(void) - fprintf(stderr, "-d, --disks nnn set the disks to monitor (/)\n"); - fprintf(stderr, "-i, --interfaces nnn set the network interfaces to monitor (lo)\n"); - fprintf(stderr, "-I, --listen nnn set the network interface to listen (all)\n"); -+#ifdef __IPV6__ -+ fprintf(stderr, "-4, --ipv4 use IPv4 (default)\n"); -+ fprintf(stderr, "-6, --ipv6 use IPv6\n"); -+#endif - fprintf(stderr, "-t, --timeout nnn set the timeout for MIB updates (1 second)\n"); - fprintf(stderr, "-a, --auth require authentication (thus SNMP version 2c)\n"); - fprintf(stderr, "-v, --verbose verbose syslog messages \n"); -@@ -117,7 +121,7 @@ static void handle_udp_client(void) - #endif - - /* Call the protocol handler which will prepare the response packet */ -- inet_ntop(my_af_inet, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); -+ inet_ntop(g_family, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); - if (snmp(&g_udp_client) == -1) { - lprintf(LOG_WARNING, "could not handle packet from UDP client %s:%d: %m\n", - straddr, sockaddr.my_sin_port); -@@ -132,7 +136,7 @@ static void handle_udp_client(void) - /* Send the whole UDP packet to the socket at once */ - rv = sendto(g_udp_sockfd, g_udp_client.packet, g_udp_client.size, - MSG_DONTWAIT, (struct sockaddr *)&sockaddr, socklen); -- inet_ntop(my_af_inet, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); -+ inet_ntop(g_family, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); - if (rv == -1) { - lprintf(LOG_WARNING, "could not send packet to UDP client %s:%d: %m\n", - straddr, sockaddr.my_sin_port); -@@ -176,7 +180,7 @@ static void handle_tcp_connect(void) - } - tmp_sockaddr.my_sin_addr = client->addr; - tmp_sockaddr.my_sin_port = client->port; -- inet_ntop(my_af_inet, &tmp_sockaddr.my_sin_addr, straddr, sizeof(straddr)); -+ inet_ntop(g_family, &tmp_sockaddr.my_sin_addr, straddr, sizeof(straddr)); - lprintf(LOG_WARNING, "maximum number of %d clients reached, kicking out %s:%d\n", - MAX_NR_CLIENTS, straddr, tmp_sockaddr.my_sin_port); - close(client->sockfd); -@@ -190,7 +194,7 @@ static void handle_tcp_connect(void) - } - - /* Now fill out the client control structure values */ -- inet_ntop(my_af_inet, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); -+ inet_ntop(g_family, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); - lprintf(LOG_DEBUG, "connected TCP client %s:%d\n", - straddr, sockaddr.my_sin_port); - client->timestamp = time(NULL); -@@ -211,7 +215,7 @@ static void handle_tcp_client_write(clie - sockaddr.my_sin_addr = client->addr; - sockaddr.my_sin_port = client->port; - rv = send(client->sockfd, client->packet, client->size, 0); -- inet_ntop(my_af_inet, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); -+ inet_ntop(g_family, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); - if (rv == -1) { - lprintf(LOG_WARNING, "could not send packet to TCP client %s:%d: %m\n", - straddr, sockaddr.my_sin_port); -@@ -246,7 +250,7 @@ static void handle_tcp_client_read(clien - sockaddr.my_sin_port = client->port; - rv = read(client->sockfd, client->packet + client->size, - sizeof (client->packet) - client->size); -- inet_ntop(my_af_inet, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); -+ inet_ntop(g_family, &sockaddr.my_sin_addr, straddr, sizeof(straddr)); - if (rv == -1) { - lprintf(LOG_WARNING, "could not read packet from TCP client %s:%d: %m\n", - straddr, sockaddr.my_sin_port); -@@ -304,7 +308,11 @@ static void handle_tcp_client_read(clien - - int main(int argc, char *argv[]) - { -+#ifdef __IPV6__ -+ static const char short_options[] = "p:P:c:D:V:L:C:d:i:I:t:T:avl46h"; -+#else - static const char short_options[] = "p:P:c:D:V:L:C:d:i:I:t:T:avlh"; -+#endif - static const struct option long_options[] = { - { "udp-port", 1, 0, 'p' }, - { "tcp-port", 1, 0, 'P' }, -@@ -316,6 +324,10 @@ int main(int argc, char *argv[]) - { "disks", 1, 0, 'd' }, - { "interfaces", 1, 0, 'i' }, - { "listen", 1, 0, 'I' }, -+#ifdef __IPV6__ -+ { "ipv4", 0, 0, '4' }, -+ { "ipv6", 0, 0, '6' }, -+#endif - { "timeout", 1, 0, 't' }, - { "traps", 1, 0, 'T' }, - { "auth", 0, 0, 'a' }, -@@ -327,7 +339,12 @@ int main(int argc, char *argv[]) - int option_index = 1; - int c; - -- struct my_sockaddr_t sockaddr; -+ union { -+ struct sockaddr_in sa; -+#ifdef __IPV6__ -+ struct sockaddr_in6 sa6; -+#endif -+ } sockaddr; - my_socklen_t socklen; - struct timeval tv_last; - struct timeval tv_now; -@@ -396,6 +413,14 @@ int main(int argc, char *argv[]) - case 'v': - g_verbose = 1; - break; -+#ifdef __IPV6__ -+ case '4': -+ g_family = AF_INET; -+ break; -+ case '6': -+ g_family = AF_INET6; -+ break; -+#endif - case 'l': - print_version(); - exit(EXIT_ARGS); -@@ -435,15 +460,24 @@ int main(int argc, char *argv[]) - #endif - - /* Open the server's UDP port and prepare it for listening */ -- g_udp_sockfd = socket(my_pf_inet, SOCK_DGRAM, 0); -+ g_udp_sockfd = socket((g_family == AF_INET) ? PF_INET : PF_INET6, SOCK_DGRAM, 0); - if (g_udp_sockfd == -1) { - lprintf(LOG_ERR, "could not create UDP socket: %m\n"); - exit(EXIT_SYSCALL); - } -- sockaddr.my_sin_family = my_af_inet; -- sockaddr.my_sin_port = htons(g_udp_port); -- sockaddr.my_sin_addr = my_inaddr_any; -- socklen = sizeof (sockaddr); -+ if (g_family == AF_INET) { -+ sockaddr.sa.sin_family = g_family; -+ sockaddr.sa.sin_port = htons(g_udp_port); -+ sockaddr.sa.sin_addr = inaddr_any; -+ socklen = sizeof(sockaddr.sa); -+#ifdef __IPV6__ -+ } else { -+ sockaddr.sa6.sin6_family = g_family; -+ sockaddr.sa6.sin6_port = htons(g_udp_port); -+ sockaddr.sa6.sin6_addr = in6addr_any; -+ socklen = sizeof(sockaddr.sa6); -+#endif -+ } - if (bind(g_udp_sockfd, (struct sockaddr *)&sockaddr, socklen) == -1) { - lprintf(LOG_ERR, "could not bind UDP socket to port %d: %m\n", g_udp_port); - exit(EXIT_SYSCALL); -@@ -457,7 +491,7 @@ int main(int argc, char *argv[]) - } - - /* Open the server's TCP port and prepare it for listening */ -- g_tcp_sockfd = socket(my_pf_inet, SOCK_STREAM, 0); -+ g_tcp_sockfd = socket((g_family == AF_INET) ? PF_INET : PF_INET6, SOCK_STREAM, 0); - if (g_tcp_sockfd == -1) { - lprintf(LOG_ERR, "could not create TCP socket: %m\n"); - exit(EXIT_SYSCALL); -@@ -474,10 +508,19 @@ int main(int argc, char *argv[]) - lprintf(LOG_WARNING, "could not set SO_REUSEADDR on TCP socket: %m\n"); - exit(EXIT_SYSCALL); - } -- sockaddr.my_sin_family = my_af_inet; -- sockaddr.my_sin_port = htons(g_tcp_port); -- sockaddr.my_sin_addr = my_inaddr_any; -- socklen = sizeof (sockaddr); -+ if (g_family == AF_INET) { -+ sockaddr.sa.sin_family = g_family; -+ sockaddr.sa.sin_port = htons(g_udp_port); -+ sockaddr.sa.sin_addr = inaddr_any; -+ socklen = sizeof(sockaddr.sa); -+#ifdef __IPV6__ -+ } else { -+ sockaddr.sa6.sin6_family = g_family; -+ sockaddr.sa6.sin6_port = htons(g_udp_port); -+ sockaddr.sa6.sin6_addr = in6addr_any; -+ socklen = sizeof(sockaddr.sa6); -+#endif -+ } - if (bind(g_tcp_sockfd, (struct sockaddr *)&sockaddr, socklen) == -1) { - lprintf(LOG_ERR, "could not bind TCP socket to port %d: %m\n", g_tcp_port); - exit(EXIT_SYSCALL); ---- a/mini_snmpd.h -+++ b/mini_snmpd.h -@@ -255,6 +255,7 @@ typedef struct demoinfo_s { - - extern in_port_t g_udp_port; - extern in_port_t g_tcp_port; -+extern int g_family; - extern int g_timeout; - extern int g_auth; - extern int g_verbose; -@@ -265,9 +266,9 @@ extern char *g_vendor; - extern char *g_location; - extern char *g_contact; - extern char *g_bind_to_device; --#ifdef __IPV4__ -+ - extern const struct in_addr inaddr_any; --#endif -+ - - extern char *g_disk_list[MAX_NR_DISKS]; - extern int g_disk_list_length; diff --git a/net/mini_snmpd/patches/101-opt_flags.patch b/net/mini_snmpd/patches/101-opt_flags.patch deleted file mode 100644 index 70dbce5d27..0000000000 --- a/net/mini_snmpd/patches/101-opt_flags.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -32,9 +32,9 @@ HEADERS = mini_snmpd.h - SOURCES = mini_snmpd.c protocol.c mib.c globals.c utils.c linux.c freebsd.c - VERSION = 1.2b - VENDOR = .1.3.6.1.4.1 --OFLAGS = -O2 -DDEBUG -g -+OFLAGS = -O2 - CFLAGS = -Wall -Werror -DVERSION="\"$(VERSION)\"" -DVENDOR="\"$(VENDOR)\"" \ -- $(OFLAGS) -D__TRAPS__ -D__LINUX__ -D__IPV6__ -+ $(OFLAGS) -D__TRAPS__ -D__LINUX__ - LDFLAGS = $(OFLAGS) - TARGET = mini_snmpd - MAN = mini_snmpd.8 diff --git a/net/mini_snmpd/patches/102-mib_fix_uninitialized_memory.patch b/net/mini_snmpd/patches/102-mib_fix_uninitialized_memory.patch deleted file mode 100644 index fc8cecf2e5..0000000000 --- a/net/mini_snmpd/patches/102-mib_fix_uninitialized_memory.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/mib.c -+++ b/mib.c -@@ -290,6 +290,7 @@ static int mib_build_entry(const oid_t * - value->data.max_length = sizeof (int) + 2; - value->data.encoded_length = 0; - value->data.buffer = malloc(value->data.max_length); -+ memset(value->data.buffer, 0, value->data.max_length); - if (encode_snmp_element_integer(value, (int)default_value) == -1) { - return -1; - } -@@ -298,6 +299,7 @@ static int mib_build_entry(const oid_t * - value->data.max_length = strlen((const char *)default_value) + 4; - value->data.encoded_length = 0; - value->data.buffer = malloc(value->data.max_length); -+ memset(value->data.buffer, 0, value->data.max_length); - if (encode_snmp_element_string(value, (const char *)default_value) == -1) { - return -1; - } -@@ -306,6 +308,7 @@ static int mib_build_entry(const oid_t * - value->data.max_length = MAX_NR_SUBIDS * 5 + 4; - value->data.encoded_length = 0; - value->data.buffer = malloc(value->data.max_length); -+ memset(value->data.buffer, 0, value->data.max_length); - if (encode_snmp_element_oid(value, oid_aton((const char *)default_value)) == -1) { - return -1; - } -@@ -316,6 +319,7 @@ static int mib_build_entry(const oid_t * - value->data.max_length = sizeof (unsigned int) + 2; - value->data.encoded_length = 0; - value->data.buffer = malloc(value->data.max_length); -+ memset(value->data.buffer, 0, value->data.max_length); - if (encode_snmp_element_unsigned(value, type, (unsigned int)default_value) == -1) { - return -1; - } diff --git a/net/mini_snmpd/patches/103-mib_encode_snmp_element_oid_fix.patch b/net/mini_snmpd/patches/103-mib_encode_snmp_element_oid_fix.patch deleted file mode 100644 index a1f105cb4a..0000000000 --- a/net/mini_snmpd/patches/103-mib_encode_snmp_element_oid_fix.patch +++ /dev/null @@ -1,21 +0,0 @@ ---- a/mib.c -+++ b/mib.c -@@ -120,6 +120,9 @@ static int encode_snmp_element_oid(value - int length; - int i; - -+ if (oid_value == NULL) { -+ return -1; -+ } - buffer = value->data.buffer; - length = 1; - for (i = 2; i < oid_value->subid_list_length; i++) { -@@ -310,6 +313,8 @@ static int mib_build_entry(const oid_t * - value->data.buffer = malloc(value->data.max_length); - memset(value->data.buffer, 0, value->data.max_length); - if (encode_snmp_element_oid(value, oid_aton((const char *)default_value)) == -1) { -+ lprintf(LOG_ERR, "could not create MIB entry '%s.%d.%d': invalid oid '%s'\n", -+ oid_ntoa(prefix), column, row, (char *)default_value); - return -1; - } - break; diff --git a/net/mini_snmpd/patches/104-memset_fix.patch b/net/mini_snmpd/patches/104-memset_fix.patch deleted file mode 100644 index 0ed2a2e3c3..0000000000 --- a/net/mini_snmpd/patches/104-memset_fix.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/mini_snmpd.c -+++ b/mini_snmpd.c -@@ -443,7 +443,7 @@ int main(int argc, char *argv[]) - /* Store the starting time since we need it for MIB updates */ - if (gettimeofday(&tv_last, NULL) == -1) { - memset(&tv_last, 0, sizeof (tv_last)); -- memset(&tv_sleep, 0, sizeof (&tv_sleep)); -+ memset(&tv_sleep, 0, sizeof (tv_sleep)); - } else { - tv_sleep.tv_sec = g_timeout / 100; - tv_sleep.tv_usec = (g_timeout % 100) * 10000;