class documentation

An in-memory implementation of a tun or tap device.

Method __init__ No summary
Method addToReadBuffer Deliver a datagram to this tunnel's read buffer. This makes it available to be read later using the read method.
Method read Read a datagram out of this tunnel.
Method write Write a datagram into this tunnel.
Constant EAGAIN_STYLE Undocumented
Constant EINTR_STYLE Undocumented
Constant EWOULDBLOCK_STYLE Undocumented
Constant SEND_BUFFER_SIZE Undocumented
Instance Variable name Undocumented
Instance Variable openFlags Undocumented
Instance Variable pendingSignals Undocumented
Instance Variable readBuffer Undocumented
Instance Variable requestedName Undocumented
Instance Variable system Undocumented
Instance Variable tunnelMode Undocumented
Instance Variable writeBuffer Undocumented
Property blocking If the file descriptor for this tunnel is open in blocking mode, True. False otherwise.
Property closeOnExec If the file descriptor for this tunnel is marked as close-on-exec, True. False otherwise.
Constant _DEVICE_NAME A string representing the conventional filesystem entry for the tunnel factory character special device.
def __init__(self, system, openFlags, fileMode): (source)
Parameters
systemAn _IInputOutputSystem provider to use to perform I/O.
openFlags:intAny flags to apply when opening the tunnel device. See os.O_*.
fileModeignored
def addToReadBuffer(self, datagram): (source)

Deliver a datagram to this tunnel's read buffer. This makes it available to be read later using the read method.

Parameters
datagram:bytesThe IPv4 datagram to deliver. If the mode of this tunnel is TAP then ethernet framing will be added automatically.
def read(self, limit): (source)

Read a datagram out of this tunnel.

Parameters
limit:intThe maximum number of bytes from the datagram to return. If the next datagram is larger than this, extra bytes are dropped and lost forever.
Returns
bytesThe datagram which was read from the tunnel. If the tunnel mode does not include TunnelFlags.IFF_NO_PI then the datagram is prefixed with a 4 byte PI header.
Raises
OSErrorAny of the usual I/O problems can result in this exception being raised with some particular error number set.
IOErrorAny of the usual I/O problems can result in this exception being raised with some particular error number set.
def write(self, datagram): (source)

Write a datagram into this tunnel.

Parameters
datagram:bytesThe datagram to write.
Returns
intThe number of bytes of the datagram which were written.
Raises
IOErrorAny of the usual I/O problems can result in this exception being raised with some particular error number set.
EAGAIN_STYLE = (source)

Undocumented

Value
IOError(EAGAIN, 'Resource temporarily unavailable')
EINTR_STYLE = (source)

Undocumented

Value
IOError(EINTR, 'Interrupted function call')
EWOULDBLOCK_STYLE = (source)

Undocumented

Value
OSError(EWOULDBLOCK, 'Operation would block')
SEND_BUFFER_SIZE: int = (source)

Undocumented

Value
1024

Undocumented

openFlags = (source)

Undocumented

pendingSignals = (source)

Undocumented

readBuffer = (source)

Undocumented

requestedName = (source)

Undocumented

Undocumented

tunnelMode = (source)

Undocumented

writeBuffer = (source)

Undocumented

If the file descriptor for this tunnel is open in blocking mode, True. False otherwise.

@property
closeOnExec = (source)

If the file descriptor for this tunnel is marked as close-on-exec, True. False otherwise.

_DEVICE_NAME: bytes = (source)

A string representing the conventional filesystem entry for the tunnel factory character special device.

Value
b'/dev/net/tun'