Package twisted :: Package protocols :: Module basic :: Class NetstringReceiver
[show private | hide private]
[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
  connectionFailed(self)
(Deprecated) (inherited from Protocol)
  connectionLost(self, reason)
Called when the connection is shut down. (inherited from Protocol)
  dataReceived(self, data)
Called whenever data is received.
  doComma(self)
  doData(self)
  doLength(self)
  sendString(self, data)
  stringReceived(self, line)
Override this.

Class Variable Summary
int brokenPeer
int MAX_LENGTH

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                                                                  

Generated by Epydoc 1.1 on Thu May 8 13:16:35 2003 http://epydoc.sf.net