Package twisted :: Package protocols :: Module basic :: Class NetstringReceiver
[frames | no frames]

Class NetstringReceiver

BaseProtocol --+    
               |    
        Protocol --+
                   |
                  NetstringReceiver

Known Subclasses:
SafeNetstringReceiver

This uses djb's Netstrings protocol to break up the input into strings.

Each string makes a callback to stringReceived, with a single argument of that string.

Security features:
  1. Messages are limited in size, useful if you don't want someone sending you a 500MB netstring (change MAX_LENGTH to the maximum length you wish to accept).
  2. The connection is lost if an illegal message is received.

Method Summary
  dataReceived(self, data)
Called whenever data is received.
  doComma(self)
  doData(self)
  doLength(self)
  sendString(self, data)
  stringReceived(self, line)
Override this.
    Inherited from Protocol
  connectionFailed(self)
(Deprecated)
  connectionLost(self, reason)
Called when the connection is shut down.
    Inherited from BaseProtocol
  connectionMade(self)
Called when a connection is made.
  makeConnection(self, transport)
Make a connection to a transport and a server.

Class Variable Summary
int _readerLength = 0                                                                     
int _readerState = 0                                                                     
int brokenPeer = 0                                                                     
int MAX_LENGTH = 99999                                                                 
    Inherited from Protocol
tuple __implements__ = (<class twisted.internet.interfaces.IPr...
    Inherited from BaseProtocol
int connected = 0                                                                     
NoneType transport = None                                                                  

Method Details

dataReceived(self, data)

Called whenever data is received.

Use this method to translate to a higher-level message. Usually, some callback will be made upon the receipt of each complete protocol message.
Parameters:
data - a string of indeterminate length. Please keep in mind that you will probably need to buffer some data, as partial (or multiple) protocol messages may be received! I recommend that unit tests for protocols call through to this method with differing chunk sizes, down to one byte at a time.
Overrides:
twisted.internet.protocol.Protocol.dataReceived (inherited documentation)

stringReceived(self, line)

Override this.

Class Variable Details

_readerLength

Type:
int
Value:
0                                                                     

_readerState

Type:
int
Value:
0                                                                     

brokenPeer

Type:
int
Value:
0                                                                     

MAX_LENGTH

Type:
int
Value:
99999                                                                 

Generated by Epydoc 2.0 on Sat May 15 20:08:13 2004 http://epydoc.sf.net