Lines 43-48
Link Here
|
43 |
syslog.openlog(os.path.basename(sys.argv[0]), syslog.LOG_PID, syslog.LOG_MAIL) |
43 |
syslog.openlog(os.path.basename(sys.argv[0]), syslog.LOG_PID, syslog.LOG_MAIL) |
44 |
policydspfsupp._setExceptHook() |
44 |
policydspfsupp._setExceptHook() |
45 |
|
45 |
|
|
|
46 |
from struct import unpack as struct_unpack |
47 |
from socket import inet_ntoa, inet_aton |
48 |
def addr2bin(addr): |
49 |
return struct_unpack('!l', inet_aton(addr))[0] |
50 |
|
46 |
############################################# |
51 |
############################################# |
47 |
def _cidrmatch(connectip, ipaddrs, n): |
52 |
def _cidrmatch(connectip, ipaddrs, n): |
48 |
"""Match connect IP against a list of other IP addresses. From pyspf.""" |
53 |
"""Match connect IP against a list of other IP addresses. From pyspf.""" |
Lines 56-62
Link Here
|
56 |
bin = spf.bin2long6 |
61 |
bin = spf.bin2long6 |
57 |
else: |
62 |
else: |
58 |
MASK = 0xFFFFFFFF |
63 |
MASK = 0xFFFFFFFF |
59 |
bin = spf.addr2bin |
64 |
bin = addr2bin |
60 |
c = ~(MASK >> n) & MASK & bin(connectip) |
65 |
c = ~(MASK >> n) & MASK & bin(connectip) |
61 |
for ip in [bin(ip) for ip in ipaddrs]: |
66 |
for ip in [bin(ip) for ip in ipaddrs]: |
62 |
if c == ~(MASK >> n) & MASK & ip: return True |
67 |
if c == ~(MASK >> n) & MASK & ip: return True |