@@ -1205,15 +1205,9 @@ def register_dcerpc_interface(name, uuid, version, opnums):
12051205 # Interface is already registered.
12061206 interface = DCE_RPC_INTERFACES [(uuid , if_version )]
12071207 if interface .name == name :
1208- if interface .if_version == if_version and set (opnums ) - set (
1209- interface .opnums
1210- ):
1208+ if set (opnums ) - set (interface .opnums ):
12111209 # Interface is an extension of a previous interface
12121210 interface .opnums .update (opnums )
1213- return
1214- elif interface .if_version != if_version :
1215- # Interface has a different version
1216- pass
12171211 else :
12181212 log_runtime .warning (
12191213 "This interface is already registered: %s. Skip" % interface
@@ -1223,15 +1217,17 @@ def register_dcerpc_interface(name, uuid, version, opnums):
12231217 raise ValueError (
12241218 "An interface with the same UUID is already registered: %s" % interface
12251219 )
1226- DCE_RPC_INTERFACES_NAMES [uuid ] = name
1227- DCE_RPC_INTERFACES_NAMES_rev [name .lower ()] = uuid
1228- DCE_RPC_INTERFACES [(uuid , if_version )] = DceRpcInterface (
1229- name ,
1230- uuid ,
1231- version_tuple ,
1232- if_version ,
1233- opnums ,
1234- )
1220+ else :
1221+ # New interface
1222+ DCE_RPC_INTERFACES_NAMES [uuid ] = name
1223+ DCE_RPC_INTERFACES_NAMES_rev [name .lower ()] = uuid
1224+ DCE_RPC_INTERFACES [(uuid , if_version )] = DceRpcInterface (
1225+ name ,
1226+ uuid ,
1227+ version_tuple ,
1228+ if_version ,
1229+ opnums ,
1230+ )
12351231 # bind for build
12361232 for opnum , operations in opnums .items ():
12371233 bind_top_down (DceRpc5Request , operations .request , opnum = opnum )
0 commit comments