summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorelie <elie>2013-09-23 11:51:59 +0000
committerelie <elie>2013-09-23 11:51:59 +0000
commitb1f28b84cedbdea1ef26161bcd362dd895109fcc (patch)
tree396e39216021fc06e9712ad30b2f65db7d812c4f
parent456107cc8d6cbaec5cce9b905ab27aa35a1919f9 (diff)
downloadpysnmp-git-b1f28b84cedbdea1ef26161bcd362dd895109fcc.tar.gz
added ctypes dependency for old Pythons on Windows
-rw-r--r--pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py6
-rw-r--r--setup.py11
2 files changed, 16 insertions, 1 deletions
diff --git a/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py b/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py
index 992a9496..6f4e6bb8 100644
--- a/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py
+++ b/pysnmp/smi/mibs/TRANSPORT-ADDRESS-MIB.py
@@ -2,6 +2,7 @@
# by libsmi2pysnmp-0.1.3 at Tue Apr 3 16:58:37 2012,
# Python version sys.version_info(major=2, minor=7, micro=2, releaselevel='final', serial=0)
+from pysnmp.error import PySnmpError
from socket import AF_INET, error, has_ipv6
try:
@@ -19,7 +20,10 @@ except ImportError:
inet_pton = lambda x,y: inet_aton(y)
has_ipv6 = False
elif has_ipv6:
- import ctypes
+ try:
+ import ctypes
+ except ImportError:
+ raise PySnmpError('Need ctypes module to handle IPv6 addresses')
class sockaddr(ctypes.Structure):
_fields_ = [("sa_family", ctypes.c_short),
diff --git a/setup.py b/setup.py
index a6a10814..82bae33d 100644
--- a/setup.py
+++ b/setup.py
@@ -52,6 +52,8 @@ try:
}
if sys.platform.lower()[:3] != 'win':
params['install_requires'].append('pycrypto>=2.4.1')
+ elif sys.version_info[:2] < (2, 5):
+ params['install_requires'].append('ctypes')
except ImportError:
for arg in sys.argv:
@@ -64,6 +66,15 @@ except ImportError:
params['requires'] = [ 'pyasn1(>=0.1.2)' ]
if sys.platform.lower()[:3] != 'win':
params['requires'].append('pycrypto(>=2.4.1)')
+ elif sys.platform.lower()[:3] == 'win':
+ try:
+ import ctypes
+ except ImportError:
+ sys.stderr.write("""WARNING! WARNING! WARNING!
+Handling IPv6 addresses requires the ctypes module. Please install it on
+your system if you need PySNMP supporting IPv6 addressing:
+http://downloads.sourceforge.net/project/ctypes/ctypes/1.0.2/ctypes-1.0.2.tar.gz
+""")
if sys.platform.lower()[:3] == 'win':
try: