improved smb_login error codes

pull/4/merge
lanjelot 10 years ago
parent effdbbd291
commit 766d92735e

@ -2396,20 +2396,23 @@ class SMB_login(TCP_Cache):
self.reset() self.reset()
except impacket_smb.SessionError as e: except impacket_smb.SessionError as e:
code = '%04x%04x' % (e.error_class, e.error_code)
error_class = e.error_classes.get(e.error_class, None) # -> ("ERRNT", nt_msgs) if e.error_class == 0:
if error_class: code = '%04x' % e.error_code
class_str = error_class[0] # "ERRNT" mesg = self.error_map.get(e.error_code & 0x0000fffff, '')
error_tuple = error_class[1].get(e.error_code, None) # -> ("STATUS_LOGON_FAILURE","Logon failure: unknown user name or bad password.") or None
if error_tuple:
mesg = '%s %s' % error_tuple
else:
mesg = '%s' % class_str
else: else:
mesg = self.error_map.get(e.error_code & 0x0000fffff, '') code = '%x%04x' % (e.error_class, e.error_code)
error_class = e.error_classes.get(e.error_class, None) # -> ("ERRNT", nt_msgs)
if error_class:
class_str = error_class[0] # "ERRNT"
error_tuple = error_class[1].get(e.error_code, None) # -> ("STATUS_LOGON_FAILURE","Logon failure: unknown user name or bad password.") or None
if error_tuple:
mesg = '%s %s' % error_tuple
else:
mesg = '%s' % class_str
if persistent == '0': if persistent == '0':
self.reset() self.reset()

Loading…
Cancel
Save