import errno
import os
-import select
import socket
import ovs.poller
_SOCKET_METHODS = {}
@staticmethod
- def register_method(method):
- def _register_method(cls):
- Stream._SOCKET_METHODS[method + ":"] = cls
- return cls
- return _register_method
+ def register_method(method, cls):
+ Stream._SOCKET_METHODS[method + ":"] = cls
@staticmethod
def _find_method(name):
if self.state == Stream.__S_CONNECTING:
wait = Stream.W_CONNECT
if wait == Stream.W_RECV:
- poller.fd_wait(self.socket, select.POLLIN)
+ poller.fd_wait(self.socket, ovs.poller.POLLIN)
else:
- poller.fd_wait(self.socket, select.POLLOUT)
+ poller.fd_wait(self.socket, ovs.poller.POLLOUT)
def connect_wait(self, poller):
self.wait(poller, Stream.W_CONNECT)
return error, None
def wait(self, poller):
- poller.fd_wait(self.socket, select.POLLIN)
+ poller.fd_wait(self.socket, ovs.poller.POLLIN)
def __del__(self):
# Don't delete the file: we might have forked.
punix:FILE Listen on Unix domain socket FILE""" % (name, name)
-@Stream.register_method("unix")
class UnixStream(Stream):
@staticmethod
def _open(suffix, dscp):
connect_path = suffix
return ovs.socket_util.make_unix_socket(socket.SOCK_STREAM,
True, None, connect_path)
+Stream.register_method("unix", UnixStream)
-@Stream.register_method("tcp")
class TCPStream(Stream):
@staticmethod
def _open(suffix, dscp):
if not error:
sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
return error, sock
+Stream.register_method("tcp", TCPStream)