Hackfut Security File Manager
Current Path:
/usr/lib/python2.6/site-packages/rhn
usr
/
lib
/
python2.6
/
site-packages
/
rhn
/
📁
..
📄
SSL.py
(8.91 KB)
📄
SSL.pyc
(7.74 KB)
📄
SSL.pyo
(7.74 KB)
📄
SmartIO.py
(2.66 KB)
📄
SmartIO.pyc
(3.13 KB)
📄
SmartIO.pyo
(3.13 KB)
📄
UserDictCase.py
(2.28 KB)
📄
UserDictCase.pyc
(3.67 KB)
📄
UserDictCase.pyo
(3.67 KB)
📄
__init__.py
(192 B)
📄
__init__.pyc
(307 B)
📄
__init__.pyo
(307 B)
📄
connections.py
(10.42 KB)
📄
connections.pyc
(9.4 KB)
📄
connections.pyo
(9.34 KB)
📄
nonblocking.py
(2.38 KB)
📄
nonblocking.pyc
(2.71 KB)
📄
nonblocking.pyo
(2.71 KB)
📄
rhnLockfile.py
(3.23 KB)
📄
rhnLockfile.pyc
(3.16 KB)
📄
rhnLockfile.pyo
(3.16 KB)
📄
rpclib.py
(23.58 KB)
📄
rpclib.pyc
(21.45 KB)
📄
rpclib.pyo
(21.33 KB)
📄
transports.py
(30.79 KB)
📄
transports.pyc
(23.05 KB)
📄
transports.pyo
(23.05 KB)
Editing: nonblocking.py
# # # # $Id$ import select import fcntl import os class NonBlockingFile: def __init__(self, fd): # Keep a copy of the file descriptor self.fd = fd fcntl.fcntl(self.fd.fileno(), fcntl.F_SETFL, os.O_NDELAY) # Set the callback-related stuff self.read_fd_set = [] self.write_fd_set = [] self.exc_fd_set = [] self.user_data = None self.callback = None def set_callback(self, read_fd_set, write_fd_set, exc_fd_set, user_data, callback): self.read_fd_set = read_fd_set # Make the objects non-blocking for f in self.read_fd_set: fcntl.fcntl(f.fileno(), fcntl.F_SETFL, os.O_NDELAY) self.write_fd_set = write_fd_set self.exc_fd_set = exc_fd_set self.user_data = user_data self.callback = callback def read(self, amt=0): while 1: status_changed = 0 readfds = self.read_fd_set + [self.fd] writefds = self.write_fd_set excfds = self.exc_fd_set print "Calling select", readfds readfds, writefds, excfds = select.select(readfds, writefds, excfds) print "Select returned", readfds, writefds, excfds if self.fd in readfds: # Our own file descriptor has changed status # Mark this, but also try to call the callback with the rest # of the file descriptors that changed status status_changed = 1 readfds.remove(self.fd) if self.callback and (readfds or writefds or excfds): self.callback(readfds, writefds, excfds, self.user_data) if status_changed: break print "Returning" return self.fd.read(amt) def write(self, data): return self.fd.write(data) def __getattr__(self, name): return getattr(self.fd, name) def callback(r, w, e, user_data): print "Callback called", r, w, e print r[0].read() if __name__ == '__main__': import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(("localhost", 5555)) f = s.makefile() ss = NonBlockingFile(f) s2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s2.connect(("localhost", 5556)) f = s2.makefile() ss.set_callback([f], [], [], None, callback) xx = ss.read() print len(xx)
Upload File
Create Folder