Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import socket
- MAX_BUFF_SIZE = 0x7FFFFFFF
- MIN_BUFF_SIZE = 0
- def checkSocketBuffer():
- reportDict = {}
- # check TCP Buffer
- checkTcpSocketBuffer(reportDict)
- # check UDP Buffer
- checkUdpSocketBuffer(reportDict)
- # report
- printReport(reportDict)
- def checkTcpSocketBuffer(reportDict):
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- # default SO_RCVBUF
- rcvbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
- reportDict["Tcp.RcvBuf.Def"] = rcvbuf_size
- # check MAX SO_RCVBUF
- s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, MAX_BUFF_SIZE)
- rcvbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
- reportDict["Tcp.RcvBuf.Max"] = rcvbuf_size
- # check MIN SO_RCVBUF
- s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, MIN_BUFF_SIZE)
- rcvbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
- reportDict["Tcp.RcvBuf.Min"] = rcvbuf_size
- # default SO_SNDBUF
- sndbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
- reportDict["Tcp.SndBuf.Def"] = sndbuf_size
- # check MAX SO_SNDBUF
- s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, MAX_BUFF_SIZE)
- sndbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
- reportDict["Tcp.SndBuf.Max"] = sndbuf_size
- # check MIN SO_SNDBUF
- s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, MIN_BUFF_SIZE)
- sndbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
- reportDict["Tcp.SndBuf.Min"] = sndbuf_size
- s.close()
- def checkUdpSocketBuffer(reportDict):
- s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- # default SO_RCVBUF
- rcvbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
- reportDict["Udp.RcvBuf.Def"] = rcvbuf_size
- # check MAX SO_RCVBUF
- s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, MAX_BUFF_SIZE)
- rcvbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
- reportDict["Udp.RcvBuf.Max"] = rcvbuf_size
- # check MIN SO_RCVBUF
- s.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, MIN_BUFF_SIZE)
- rcvbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF)
- reportDict["Udp.RcvBuf.Min"] = rcvbuf_size
- # default SO_SNDBUF
- sndbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
- reportDict["Udp.SndBuf.Def"] = sndbuf_size
- # check MAX SO_SNDBUF
- s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, MAX_BUFF_SIZE)
- sndbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
- reportDict["Udp.SndBuf.Max"] = sndbuf_size
- # check MIN SO_SNDBUF
- s.setsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF, MIN_BUFF_SIZE)
- sndbuf_size = s.getsockopt(socket.SOL_SOCKET, socket.SO_SNDBUF)
- reportDict["Udp.SndBuf.Min"] = sndbuf_size
- s.close()
- def printReport(reportDict):
- key_list = reportDict.keys()
- key_list.sort()
- for key in key_list:
- print "%s : %d" % (key, reportDict[key])
- if __name__ == "__main__":
- checkSocketBuffer()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement