[Samba] samba-tool dns serverinfo
Günter Kukkukk
linux at kukkukk.com
Wed Nov 12 20:49:26 MST 2014
Am 12.11.2014 um 23:58 schrieb Günter Kukkukk:
SNIP - dropped a lot here
to get rid of
uncaught exception - 'i' format requires -2147483648 <= number <= 2147483647
in
>
>
> pszDsContainer : CN=MicrosoftDNS,DC=DomainDnsZones,DC=addlz,DC=kukkukk,DC=com
> ERROR(<class 'struct.error'>): uncaught exception - 'i' format requires -2147483648 <= number <= 2147483647
> File "/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/__init__.py", line 175, in _run
> return self.run(*args, **kwargs)
> File "/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/dns.py", line 709, in run
> print_serverinfo(self.outf, typeid, res)
> File "/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/dns.py", line 202, in print_serverinfo
> ip4_array_string(serverinfo.aipServerAddrs))
> File "/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/dns.py", line 129, in ip4_array_string
> addr = '%s' % inet_ntoa(pack('i', array.AddrArray[i]))
a simple python format specifier had to be changed from
"i" signed int to
"I" unsigned int
The problem behind this is, that an IP of 255.255.255.255 (0xffffffff) would
be treated as invalid signed int here!
So with some cleanup to also use inet_ntop(), an intermediate patch
would be:
diff --git a/python/samba/netcmd/dns.py b/python/samba/netcmd/dns.py
index e26ddd1..3e48e97 100644
--- a/python/samba/netcmd/dns.py
+++ b/python/samba/netcmd/dns.py
@@ -129,7 +129,7 @@ def ip4_array_string(array):
if not array:
return ret
for i in xrange(array.AddrCount):
- addr = '%s' % inet_ntoa(pack('i', array.AddrArray[i]))
+ addr = inet_ntop(AF_INET, pack('I', array.AddrArray[i]))
ret.append(addr)
return ret
-------------
This leads to a *new* - now not failing - output:
samba-tool dns serverinfo li131 --client-version=dotnet
dwVersion : 0xece0205
fBootMethod : DNS_BOOT_METHOD_DIRECTORY
fAdminConfigured : FALSE
fAllowUpdate : TRUE
fDsAvailable : TRUE
pszServerName : LI131.addlz.kukkukk.com
pszDsContainer : CN=MicrosoftDNS,DC=DomainDnsZones,DC=addlz,DC=kukkukk,DC=com
aipServerAddrs : ['255.255.255.255', '127.0.0.1', '192.168.200.72', '255.255.255.255']
aipListenAddrs : ['255.255.255.255', '127.0.0.1', '192.168.200.72', '255.255.255.255']
aipForwarders : []
Not bad now! :-)
The very first passed IP '255.255.255.255' was the culprit to bail out here very early.
BUT - why is samba passing such IP addresses here?
Some other (C-) function - which collects the IPs from the interface list - must
be doing wrong. Probably IPv6 is not handled correctly there.
So i'll look further into that...
Cheers, Günter
--
More information about the samba
mailing list