Skip to contentSkip to conversation

package/mini-snmpd: New package

PATCH New Alexander Sverdlin 2 participants 2 messages Nov 22, 2018 – Nov 30, 2018

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 package/mini-snmpd: New package

Mini SNMPd is a minimal implementation targeted at small or embedded UNIX systems with limited resources.

---
Changelog:
v2:
- New commit title
- DEVELOPERS entry
- "Signed-off-by:" in the .patch files

utils/test-pkg -c mini-snmpd.config -p mini-snmpd

                             br-arm-full [1/6]: OK
                  br-arm-cortex-a9-glibc [2/6]: OK
                   br-arm-cortex-m4-full [3/6]: OK
                          br-x86-64-musl [4/6]: OK
                      br-arm-full-static [5/6]: OK
                armv5-ctng-linux-gnueabi [6/6]: OK

6 builds, 0 skipped, 0 build failed, 0 legal-info failed

 DEVELOPERS                                    |  3 ++
 package/Config.in                             |  1 +
 ...d-zero-byte-before-unsigned-integers.patch | 31 +++++++++++++++++++
 ...igned-integers-to-have-an-extra-byte.patch | 28 +++++++++++++++++
 package/mini-snmpd/Config.in                  |  7 +++++
 package/mini-snmpd/mini-snmpd.mk              | 21 +++++++++++++
 package/mini-snmpd/mini-snmpd.service         | 12 +++++++
 7 files changed, 103 insertions(+)
 create mode 100644 package/mini-snmpd/0001-Prepend-zero-byte-before-unsigned-integers.patch
 create mode 100644 package/mini-snmpd/0002-mib.c-allow-unsigned-integers-to-have-an-extra-byte.patch
 create mode 100644 package/mini-snmpd/Config.in
 create mode 100644 package/mini-snmpd/mini-snmpd.mk
 create mode 100644 package/mini-snmpd/mini-snmpd.service
DEVELOPERS +3 -0
index 53467da489..0930484f91 100644
@@ -98,6 +98,9 @@ F:	package/openpgm/
 N:	Alexander Mukhin <[email protected]>
 F:	package/hostapd/
 
+N:	Alexander Sverdlin <[email protected]>
+F:	package/mini-snmpd/
+
 N:	Alexander Varnin <[email protected]>
 F:	package/liblog4c-localtime/
 
package/Config.in +1 -0
index b60e7700ad..9804574ae5 100644
@@ -1885,6 +1885,7 @@ menu "Networking applications"
 	source "package/macchanger/Config.in"
 	source "package/memcached/Config.in"
 	source "package/mii-diag/Config.in"
+	source "package/mini-snmpd/Config.in"
 	source "package/minidlna/Config.in"
 	source "package/minissdpd/Config.in"
 	source "package/mjpg-streamer/Config.in"
package/mini-snmpd/0001-Prepend-zero-byte-before-unsigned-integers.patch new file +31 -0
new file mode 100644
index 0000000000..36ddee422f
@@ -0,0 +1,31 @@
+From 949ae648bf7c654b8fae607a0988bfa672607156 Mon Sep 17 00:00:00 2001
+From: Patrick Rauscher <[email protected]>
+Date: Fri, 18 Aug 2017 17:31:23 +0200
+Subject: [PATCH] Prepend zero-byte before unsigned integers
+
+fixes #8
+
+Signed-off-by: Alexander Sverdlin <[email protected]>
+---
+ mib.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/mib.c b/mib.c
+index 7d2e513..a9ffbe2 100644
+--- a/mib.c
++++ b/mib.c
+@@ -207,6 +207,11 @@ static int encode_unsigned(data_t *data, int type, unsigned int ticks_value)
+ 	else
+ 		length = 1;
+ 
++	/* check if the integer could be interpreted negative during a signed decode and prepend a zero-byte if necessary */
++	if ((ticks_value >> (8 * (length - 1))) & 0x80) {
++		length++;
++	}
++
+ 	*buffer++ = type;
+ 	*buffer++ = length;
+ 	while (length--)
+-- 
+2.13.2
+
package/mini-snmpd/0002-mib.c-allow-unsigned-integers-to-have-an-extra-byte.patch new file +28 -0
new file mode 100644
index 0000000000..045d296913
@@ -0,0 +1,28 @@
+From 556c8a406c9e08dd9444222e072f7eb9c82a81e8 Mon Sep 17 00:00:00 2001
+From: Patrick Rauscher <[email protected]>
+Date: Fri, 18 Aug 2017 17:44:32 +0200
+Subject: [PATCH] mib.c: allow unsigned integers to have an extra byte
+
+The extra byte can be needed when encoding huge unsigned numbers (i.e. 0x80000000 or higher). In this case, during encoding we need an extra byte to make sure clients decoding as signed int do not get negative numbers. For further details, see commit 949ae648
+
+Signed-off-by: Alexander Sverdlin <[email protected]>
+---
+ mib.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mib.c b/mib.c
+index a9ffbe2..83cc20d 100644
+--- a/mib.c
++++ b/mib.c
+@@ -372,7 +372,7 @@ static int data_alloc(data_t *data, int type)
+ 		case BER_TYPE_COUNTER:
+ 		case BER_TYPE_GAUGE:
+ 		case BER_TYPE_TIME_TICKS:
+-			data->max_length = sizeof(unsigned int) + 2;
++			data->max_length = sizeof(unsigned int) + 3;
+ 			data->encoded_length = 0;
+ 			data->buffer = allocate(data->max_length);
+ 			break;
+-- 
+2.13.2
+
package/mini-snmpd/Config.in new file +7 -0
new file mode 100644
index 0000000000..1f61cddbcf
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_MINI_SNMPD
+	bool "mini-snmpd"
+	help
+	  Mini SNMPd is a minimal implementation targeted at small or
+	  embedded UNIX systems with limited resources
+
+	  http://troglobit.com/mini-snmpd.html
package/mini-snmpd/mini-snmpd.mk new file +21 -0
new file mode 100644
index 0000000000..ebcbcce1ce
@@ -0,0 +1,21 @@
+################################################################################
+#
+# mini-snmpd
+#
+################################################################################
+
+MINI_SNMPD_VERSION = v1.4
+MINI_SNMPD_SITE = $(call github,troglobit,mini-snmpd,$(MINI_SNMPD_VERSION))
+MINI_SNMPD_LICENSE = GPL-2.0
+MINI_SNMPD_LICENSE_FILES = COPYING
+MINI_SNMPD_AUTORECONF = YES
+
+define MINI_SNMPD_INSTALL_INIT_SYSTEMD
+	$(INSTALL) -D -m 644 package/mini-snmpd/mini-snmpd.service \
+		$(TARGET_DIR)/usr/lib/systemd/system/mini-snmpd.service
+	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
+	ln -sf ../../../../usr/lib/systemd/system/mini-snmpd.service \
+		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/mini-snmpd.service
+endef
+
+$(eval $(autotools-package))
package/mini-snmpd/mini-snmpd.service new file +12 -0
new file mode 100644
index 0000000000..8a15585e6e
@@ -0,0 +1,12 @@
+[Unit]
+Description=Mini SNMP Daemon
+StartLimitIntervalSec=0
+
+[Service]
+Environment='COMMUNITY=public'
+ExecStart=/sbin/mini_snmpd -a -n -c ${COMMUNITY} $EXTRA_PARAMS
+Restart=always
+RestartSec=1
+
+[Install]
+WantedBy=multi-user.target
Signature · 1 line
2.19.1
#1 lore raw

PATCH v2 1/1 package/mini-snmpd: New package

Hello,

Quoted 10 lines · Alexander Sverdlin

Mini SNMPd is a minimal implementation targeted at small or embedded UNIX systems with limited resources.

---
Changelog:
v2:
- New commit title
- DEVELOPERS entry
- "Signed-off-by:" in the .patch files

The .hash file was missing (with the hash of the tarball and the hash of the COPYING file), so I added that and applied. Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com