mirror of
https://github.com/sshuttle/sshuttle.git
synced 2025-07-05 17:20:35 +02:00
Compare commits
3 Commits
sshuttle-0
...
sshuttle-0
Author | SHA1 | Date | |
---|---|---|---|
d4c9d31068 | |||
38bb7f3c21 | |||
b7f1530aef |
17
ssnet.py
17
ssnet.py
@ -151,7 +151,7 @@ class SockWrapper:
|
|||||||
try:
|
try:
|
||||||
self.wsock.shutdown(SHUT_WR)
|
self.wsock.shutdown(SHUT_WR)
|
||||||
except socket.error, e:
|
except socket.error, e:
|
||||||
self.seterr(e)
|
self.seterr('nowrite: %s' % e)
|
||||||
|
|
||||||
def too_full(self):
|
def too_full(self):
|
||||||
return False # fullness is determined by the socket's select() state
|
return False # fullness is determined by the socket's select() state
|
||||||
@ -163,9 +163,14 @@ class SockWrapper:
|
|||||||
try:
|
try:
|
||||||
return _nb_clean(os.write, self.wsock.fileno(), buf)
|
return _nb_clean(os.write, self.wsock.fileno(), buf)
|
||||||
except OSError, e:
|
except OSError, e:
|
||||||
# unexpected error... stream is dead
|
if e.errno == errno.EPIPE:
|
||||||
self.seterr(e)
|
debug1('%r: uwrite: got EPIPE\n' % self)
|
||||||
return 0
|
self.nowrite()
|
||||||
|
return 0
|
||||||
|
else:
|
||||||
|
# unexpected error... stream is dead
|
||||||
|
self.seterr('uwrite: %s' % e)
|
||||||
|
return 0
|
||||||
|
|
||||||
def write(self, buf):
|
def write(self, buf):
|
||||||
assert(buf)
|
assert(buf)
|
||||||
@ -180,7 +185,7 @@ class SockWrapper:
|
|||||||
try:
|
try:
|
||||||
return _nb_clean(os.read, self.rsock.fileno(), 65536)
|
return _nb_clean(os.read, self.rsock.fileno(), 65536)
|
||||||
except OSError, e:
|
except OSError, e:
|
||||||
self.seterr(e)
|
self.seterr('uread: %s' % e)
|
||||||
return '' # unexpected error... we'll call it EOF
|
return '' # unexpected error... we'll call it EOF
|
||||||
|
|
||||||
def fill(self):
|
def fill(self):
|
||||||
@ -232,9 +237,7 @@ class Proxy(Handler):
|
|||||||
self.wrap2 = wrap2
|
self.wrap2 = wrap2
|
||||||
|
|
||||||
def pre_select(self, r, w, x):
|
def pre_select(self, r, w, x):
|
||||||
if self.wrap1.shut_read: self.wrap2.nowrite()
|
|
||||||
if self.wrap1.shut_write: self.wrap2.noread()
|
if self.wrap1.shut_write: self.wrap2.noread()
|
||||||
if self.wrap2.shut_read: self.wrap1.nowrite()
|
|
||||||
if self.wrap2.shut_write: self.wrap1.noread()
|
if self.wrap2.shut_write: self.wrap1.noread()
|
||||||
|
|
||||||
if self.wrap1.connect_to:
|
if self.wrap1.connect_to:
|
||||||
|
Reference in New Issue
Block a user