Beispiel #1
0
# should work...
lind_test_server.bind_syscall(sockfd, '127.0.0.1', 50102)

# let's set some options!!!    I'll check for function in different tests...
assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
                                            SO_REUSEPORT) == 0)
assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
                                            SO_LINGER) == 0)
assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
                                            SO_KEEPALIVE) == 0)

# reuseport
assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
                                            SO_REUSEPORT) == 0)
lind_test_server.setsockopt_syscall(sockfd, SOL_SOCKET, SO_REUSEPORT, 1)
assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
                                            SO_REUSEPORT) == 1)

assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
                                            SO_LINGER) == 0)
assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
                                            SO_KEEPALIVE) == 0)
assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
                                            SO_REUSEPORT) == 1)

# linger
assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
                                            SO_LINGER) == 0)
lind_test_server.setsockopt_syscall(sockfd, SOL_SOCKET, SO_LINGER, 1)
assert (lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET,
from lind_net_constants import *

SyscallError = lind_test_server.SyscallError


sockfd = lind_test_server.socket_syscall(AF_INET, SOCK_STREAM, 0)

# should work...
lind_test_server.bind_syscall(sockfd,'127.0.0.1',50102)


# let's try to bind another to the same IP /port...
sockfd2 = lind_test_server.socket_syscall(AF_INET, SOCK_STREAM, 0)

# let's set them to allow port reuse
lind_test_server.setsockopt_syscall(sockfd, SOL_SOCKET, SO_REUSEPORT, 1)
lind_test_server.setsockopt_syscall(sockfd2, SOL_SOCKET, SO_REUSEPORT, 1)

# should work...
lind_test_server.bind_syscall(sockfd2,'127.0.0.1',50102)

# now let's try to listen on both... (should fail on the second)

lind_test_server.listen_syscall(sockfd,10)

try:
  lind_test_server.listen_syscall(sockfd2,10)
except SyscallError, e:
  pass
else:
  print 'double listen allowed!!!'
sockfd = lind_test_server.socket_syscall(AF_INET, SOCK_STREAM, 0)

# should work...
lind_test_server.bind_syscall(sockfd,'127.0.0.1',50102)



# let's set some options!!!    I'll check for function in different tests...
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_REUSEPORT)==0)
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_LINGER)==0)
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_KEEPALIVE)==0)


# reuseport
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_REUSEPORT)==0)
lind_test_server.setsockopt_syscall(sockfd, SOL_SOCKET, SO_REUSEPORT, 1)
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_REUSEPORT)==1)

assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_LINGER)==0)
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_KEEPALIVE)==0)
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_REUSEPORT)==1)


# linger
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_LINGER)==0)
lind_test_server.setsockopt_syscall(sockfd, SOL_SOCKET, SO_LINGER, 1)
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_LINGER)==1)
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_REUSEPORT)==1)
assert(lind_test_server.getsockopt_syscall(sockfd, SOL_SOCKET, SO_LINGER)==1)

import lind_test_server

from lind_net_constants import *

SyscallError = lind_test_server.SyscallError

sockfd = lind_test_server.socket_syscall(AF_INET, SOCK_STREAM, 0)

# should work...
lind_test_server.bind_syscall(sockfd, '127.0.0.1', 50102)

# let's try to bind another to the same IP /port...
sockfd2 = lind_test_server.socket_syscall(AF_INET, SOCK_STREAM, 0)

# let's set them to allow port reuse
lind_test_server.setsockopt_syscall(sockfd, SOL_SOCKET, SO_REUSEPORT, 1)
lind_test_server.setsockopt_syscall(sockfd2, SOL_SOCKET, SO_REUSEPORT, 1)

# should work...
lind_test_server.bind_syscall(sockfd2, '127.0.0.1', 50102)

# now let's try to listen on both... (should fail on the second)

lind_test_server.listen_syscall(sockfd, 10)

try:
    lind_test_server.listen_syscall(sockfd2, 10)
except SyscallError, e:
    pass
else:
    print 'double listen allowed!!!'