aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net-mgmt/snmp++/Makefile2
-rw-r--r--net-mgmt/snmp++/files/patch-asn1.cpp14
2 files changed, 15 insertions, 1 deletions
diff --git a/net-mgmt/snmp++/Makefile b/net-mgmt/snmp++/Makefile
index a8565da56bd6..effa8f5d195e 100644
--- a/net-mgmt/snmp++/Makefile
+++ b/net-mgmt/snmp++/Makefile
@@ -7,7 +7,7 @@
PORTNAME= snmp++
PORTVERSION= 3.2.22
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= net-mgmt
MASTER_SITES= http://www.agentpp.com/
DISTNAME= ${PORTNAME}v${PORTVERSION}
diff --git a/net-mgmt/snmp++/files/patch-asn1.cpp b/net-mgmt/snmp++/files/patch-asn1.cpp
new file mode 100644
index 000000000000..a5ede28c23bf
--- /dev/null
+++ b/net-mgmt/snmp++/files/patch-asn1.cpp
@@ -0,0 +1,14 @@
+--- asn1.cpp.orig 2007-10-26 20:24:08.000000000 +0200
++++ asn1.cpp 2007-10-26 20:25:34.000000000 +0200
+@@ -550,8 +550,9 @@ unsigned char * asn_parse_length( unsign
+ memcpy((char *)length, (char *)data + 1, (int)lengthbyte);
+ *length = ntohl(*length);
+ // ntohl even on ALPHA (DEC/COMPAQ) 64bit platforms works on 32bit int,
+- // whereas long is 64bit - therefore:
+-#ifdef __osf__
++ // whereas long is 64bit. The same is true for FreeBSD (and probably
++ // for lots of other platforms). Therefore:
++#if defined(__osf__) || defined(__FreeBSD__)
+ *length >>= (8 * ((sizeof(int)) - lengthbyte));
+ #else
+ *length >>= (8 * ((sizeof(long)) - lengthbyte));