Fix typo in rpc windef and improve NDR-related exception message

This commit is contained in:
Clement Rouault
2017-11-15 11:05:54 +01:00
parent d9db5ba428
commit a6aa8b86ea
6 changed files with 10 additions and 14 deletions
@@ -3,7 +3,7 @@
#define RPC_RESPONSE_TYPE_BIND_OK 1
#define RPC_RESPONSE_TYPE_FAIL 2
#define RPC_RESPONSE_TYPE_SUCESS 3
#define RPC_RESPONSE_TYPE_SUCCESS 3
#define BIND_IF_SYNTAX_NDR32 1
#define BIND_IF_SYNTAX_NDR64 2
+1 -1
View File
@@ -1903,7 +1903,7 @@ Windef
.. autodata:: RPC_REQUEST_TYPE_BIND
.. autodata:: RPC_RESPONSE_TYPE_BIND_OK
.. autodata:: RPC_RESPONSE_TYPE_FAIL
.. autodata:: RPC_RESPONSE_TYPE_SUCESS
.. autodata:: RPC_RESPONSE_TYPE_SUCCESS
.. autodata:: BIND_IF_SYNTAX_NDR32
.. autodata:: BIND_IF_SYNTAX_NDR64
.. autodata:: BIND_IF_SYNTAX_UNKNOWN
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1959,7 +1959,7 @@ RPC_REQUEST_TYPE_CALL = make_flag("RPC_REQUEST_TYPE_CALL", 0)
RPC_REQUEST_TYPE_BIND = make_flag("RPC_REQUEST_TYPE_BIND", 1)
RPC_RESPONSE_TYPE_BIND_OK = make_flag("RPC_RESPONSE_TYPE_BIND_OK", 1)
RPC_RESPONSE_TYPE_FAIL = make_flag("RPC_RESPONSE_TYPE_FAIL", 2)
RPC_RESPONSE_TYPE_SUCESS = make_flag("RPC_RESPONSE_TYPE_SUCESS", 3)
RPC_RESPONSE_TYPE_SUCCESS = make_flag("RPC_RESPONSE_TYPE_SUCCESS", 3)
BIND_IF_SYNTAX_NDR32 = make_flag("BIND_IF_SYNTAX_NDR32", 1)
BIND_IF_SYNTAX_NDR64 = make_flag("BIND_IF_SYNTAX_NDR64", 2)
BIND_IF_SYNTAX_UNKNOWN = make_flag("BIND_IF_SYNTAX_UNKNOWN", 4)
+4 -8
View File
@@ -7,11 +7,7 @@ import windows.generated_def as gdef
KNOW_REQUEST_TYPE = gdef.FlagMapper(gdef.RPC_REQUEST_TYPE_CALL, gdef.RPC_REQUEST_TYPE_BIND)
KNOW_RESPONSE_TYPE = gdef.FlagMapper(gdef.RPC_RESPONSE_TYPE_FAIL, gdef.RPC_RESPONSE_TYPE_SUCESS, gdef.RPC_RESPONSE_TYPE_BIND_OK)
KNOW_RESPONSE_TYPE = gdef.FlagMapper(gdef.RPC_RESPONSE_TYPE_FAIL, gdef.RPC_RESPONSE_TYPE_SUCCESS, gdef.RPC_RESPONSE_TYPE_BIND_OK)
KNOWN_RPC_ERROR_CODE = gdef.FlagMapper(
gdef.ERROR_INVALID_HANDLE,
gdef.RPC_X_BAD_STUB_DATA,
@@ -83,7 +79,7 @@ class RPCClient(object):
# Parse reponse
request_type = self._get_request_type(response)
if request_type != gdef.RPC_RESPONSE_TYPE_BIND_OK:
raise ValueError("Unexpected reponse type. Expected RESPONSE_TYPE_BIND_OK got {0}".format(KNOW_RESPONSE_TYPE.get(request_type, request_type)))
raise ValueError("Unexpected reponse type. Expected RESPONSE_TYPE_BIND_OK got {0}".format(KNOW_RESPONSE_TYPE[request_type]))
iid_hash = hash(buffer(IID)[:]) # TODO: add __hash__ to IID
self.if_bind_number[iid_hash] = self.number_of_bind_if
self.number_of_bind_if += 1
@@ -104,8 +100,8 @@ class RPCClient(object):
response = self._send_request(request)
# Parse reponse
request_type = self._get_request_type(response)
if request_type != gdef.RPC_RESPONSE_TYPE_SUCESS:
raise ValueError("Unexpected reponse type. Expected RESPONSE_SUCESS got {0}".format(KNOW_RESPONSE_TYPE.get(request_type, request_type)))
if request_type != gdef.RPC_RESPONSE_TYPE_SUCCESS:
raise ValueError("Unexpected reponse type. Expected RESPONSE_SUCCESS got {0}".format(KNOW_RESPONSE_TYPE[request_type]))
data = struct.unpack("<6I", response[:6 * 4])
assert data[3] == self.REQUEST_IDENTIFIER
+2 -2
View File
@@ -211,7 +211,7 @@ class NdrStructure(object):
print(" * members size = {0}".format(len(cls.MEMBERS)))
print(" * data {0}".format(data))
print(" * members = {0}".format(cls.MEMBERS))
raise ValueError("SUCE")
raise ValueError("NdrStructure packing number elements mismatch: structure has <{0}> members got <{1}>".format(len(cls.MEMBERS), len(data)))
conformant_size = []
res = []
pointed = []
@@ -277,7 +277,7 @@ class NdrParameters(object):
print(" * members size = {0}".format(len(cls.MEMBERS)))
print(" * data {0}".format(data))
print(" * members = {0}".format(cls.MEMBERS))
raise ValueError("SUCE")
raise ValueError("NdrParameters packing number elements mismatch: structure has <{0}> members got <{1}>".format(len(cls.MEMBERS), len(data)))
res = []
for (member, memberdata) in zip(cls.MEMBERS, data):
packed_member = member.pack(memberdata)