OXIESEC PANEL
- Current Dir:
/
/
usr
/
lib
/
python3
/
dist-packages
/
twisted
/
internet
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
03/31/2022 06:22:38 AM
rwxr-xr-x
📄
__init__.py
521 bytes
09/08/2017 10:38:36 AM
rw-r--r--
📁
__pycache__
-
03/31/2022 06:22:39 AM
rwxr-xr-x
📄
_baseprocess.py
1.87 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_dumbwin32proc.py
12.8 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_glibbase.py
12.51 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_idna.py
1.36 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
_newtls.py
9.11 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_pollingfile.py
8.77 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_posixserialport.py
1.95 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_posixstdio.py
4.58 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_producer_helpers.py
3.7 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
_resolver.py
8.33 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
_signals.py
2.65 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_sslverify.py
68.83 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_threadedselect.py
11.49 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_win32serialport.py
4.63 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
_win32stdio.py
3.13 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
abstract.py
18.99 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
address.py
6.53 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
asyncioreactor.py
10.31 KB
09/08/2017 10:38:35 AM
rw-r--r--
📄
base.py
42.56 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
cfreactor.py
17.09 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
default.py
1.89 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
defer.py
66.49 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
endpoints.py
74.57 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
epollreactor.py
8.29 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
error.py
12.35 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
fdesc.py
3.15 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
gireactor.py
5.98 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
glib2reactor.py
1.09 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
gtk2reactor.py
3.53 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
gtk3reactor.py
2.2 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
inotify.py
14.35 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
interfaces.py
93.75 KB
09/08/2017 10:38:36 AM
rw-r--r--
📁
iocpreactor
-
03/31/2022 06:22:38 AM
rwxr-xr-x
📄
kqreactor.py
10.05 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
main.py
1.03 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
pollreactor.py
5.88 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
posixbase.py
25.74 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
process.py
37.98 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
protocol.py
26.34 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
pyuisupport.py
817 bytes
09/08/2017 10:38:36 AM
rw-r--r--
📄
reactor.py
1.82 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
selectreactor.py
6.07 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
serialport.py
2.26 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
ssl.py
8.25 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
stdio.py
1.02 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
task.py
30.39 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
tcp.py
42 KB
09/08/2017 10:38:36 AM
rw-r--r--
📁
test
-
03/31/2022 06:22:38 AM
rwxr-xr-x
📄
threads.py
3.86 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
tksupport.py
2 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
udp.py
18.13 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
unix.py
21.42 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
utils.py
7.69 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
win32eventreactor.py
14.84 KB
09/08/2017 10:38:36 AM
rw-r--r--
📄
wxreactor.py
5.14 KB
03/22/2022 11:03:56 AM
rw-r--r--
📄
wxsupport.py
1.33 KB
09/08/2017 10:38:36 AM
rw-r--r--
Editing: _posixstdio.py
Close
# -*- test-case-name: twisted.test.test_stdio -*- """Standard input/out/err support. Future Plans:: support for stderr, perhaps Rewrite to use the reactor instead of an ad-hoc mechanism for connecting protocols to transport. Maintainer: James Y Knight """ from zope.interface import implementer from twisted.internet import process, error, interfaces from twisted.python import log, failure @implementer(interfaces.IAddress) class PipeAddress(object): pass @implementer(interfaces.ITransport, interfaces.IProducer, interfaces.IConsumer, interfaces.IHalfCloseableDescriptor) class StandardIO(object): _reader = None _writer = None disconnected = False disconnecting = False def __init__(self, proto, stdin=0, stdout=1, reactor=None): if reactor is None: from twisted.internet import reactor self.protocol = proto self._writer = process.ProcessWriter(reactor, self, 'write', stdout) self._reader = process.ProcessReader(reactor, self, 'read', stdin) self._reader.startReading() self.protocol.makeConnection(self) # ITransport # XXX Actually, see #3597. def loseWriteConnection(self): if self._writer is not None: self._writer.loseConnection() def write(self, data): if self._writer is not None: self._writer.write(data) def writeSequence(self, data): if self._writer is not None: self._writer.writeSequence(data) def loseConnection(self): self.disconnecting = True if self._writer is not None: self._writer.loseConnection() if self._reader is not None: # Don't loseConnection, because we don't want to SIGPIPE it. self._reader.stopReading() def getPeer(self): return PipeAddress() def getHost(self): return PipeAddress() # Callbacks from process.ProcessReader/ProcessWriter def childDataReceived(self, fd, data): self.protocol.dataReceived(data) def childConnectionLost(self, fd, reason): if self.disconnected: return if reason.value.__class__ == error.ConnectionDone: # Normal close if fd == 'read': self._readConnectionLost(reason) else: self._writeConnectionLost(reason) else: self.connectionLost(reason) def connectionLost(self, reason): self.disconnected = True # Make sure to cleanup the other half _reader = self._reader _writer = self._writer protocol = self.protocol self._reader = self._writer = None self.protocol = None if _writer is not None and not _writer.disconnected: _writer.connectionLost(reason) if _reader is not None and not _reader.disconnected: _reader.connectionLost(reason) try: protocol.connectionLost(reason) except: log.err() def _writeConnectionLost(self, reason): self._writer=None if self.disconnecting: self.connectionLost(reason) return p = interfaces.IHalfCloseableProtocol(self.protocol, None) if p: try: p.writeConnectionLost() except: log.err() self.connectionLost(failure.Failure()) def _readConnectionLost(self, reason): self._reader=None p = interfaces.IHalfCloseableProtocol(self.protocol, None) if p: try: p.readConnectionLost() except: log.err() self.connectionLost(failure.Failure()) else: self.connectionLost(reason) # IConsumer def registerProducer(self, producer, streaming): if self._writer is None: producer.stopProducing() else: self._writer.registerProducer(producer, streaming) def unregisterProducer(self): if self._writer is not None: self._writer.unregisterProducer() # IProducer def stopProducing(self): self.loseConnection() def pauseProducing(self): if self._reader is not None: self._reader.pauseProducing() def resumeProducing(self): if self._reader is not None: self._reader.resumeProducing() def stopReading(self): """Compatibility only, don't use. Call pauseProducing.""" self.pauseProducing() def startReading(self): """Compatibility only, don't use. Call resumeProducing.""" self.resumeProducing()