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

Class NetstringReceiver

BaseProtocol --+    
               |    
        Protocol --+
                   |
                  NetstringReceiver

Known Subclasses:
SafeNetstringReceiver, TestNetstring

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
  connectionFailed(self)
(Deprecated) (inherited from Protocol)
  connectionLost(self, reason)
Called when the connection is shut down. (inherited from Protocol)
  connectionMade(self)
Called when a connection is made. (inherited from BaseProtocol)
  dataReceived(self, data)
Called whenever data is received.
  doComma(self)
  doData(self)
  doLength(self)
  makeConnection(self, transport)
Make a connection to a transport and a server. (inherited from BaseProtocol)
  sendString(self, data)
  stringReceived(self, line)
Override this.

Class Variable Summary
int brokenPeer
int MAX_LENGTH
int _readerLength
int _readerState

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

brokenPeer

Type:
int
Value:
0                                                                      

MAX_LENGTH

Type:
int
Value:
99999                                                                  

_readerLength

Type:
int
Value:
0                                                                      

_readerState

Type:
int
Value:
0                                                                      

Generated by Epydoc 1.2 prerelease on Wed Jan 29 06:28:22 2003 http://epydoc.sf.net