# 需要导入模块: import socket [as 别名]
# 或者: from socket import AF_NETLINK [as 别名]
def createText(self):
syscall = self.function.name
name = self.name
argtype = self.type
value = self.value
if syscall == "socket":
if name == "family":
return SOCKET_FAMILY.get(value, value)
if name == "type":
return SOCKET_TYPE.get(value, value)
if name == "protocol":
return SOCKET_PROTOCOL.get(value, value)
if syscall == "setsockopt":
if name == "level":
return SETSOCKOPT_LEVEL.get(value, value)
if name == "optname":
return SETSOCKOPT_OPTNAME.get(value, value)
if name == "optval":
optlen = self.function["optlen"].value
if optlen == 4:
text = self.function.process.readStruct(self.value, c_int)
return self.formatPointer("" % text, self.value)
if argtype == "struct sockaddr*":
address = self.value
addr = self.function.process.readStruct(address, sockaddr)
family = addr.family
if family == AF_INET:
return self.readStruct(self.value, sockaddr_in)
elif family == AF_FILE:
return self.readStruct(self.value, sockaddr_un)
elif family == AF_NETLINK:
return self.readStruct(self.value, sockaddr_nl)
else:
family = SOCKET_FAMILY.get(family, family)
return self.formatPointer("" % family, address)
return None