SOCKS5BytestreamManager Class Reference

`#include <socks5bytestreammanager.h>`

Inheritance diagram for SOCKS5BytestreamManager:
[legend]

## Public Types

enum | S5BMode { S5BTCP , S5BUDP , S5BInvalid }

## Public Member Functions

| SOCKS5BytestreamManager (ClientBase *parent, BytestreamHandler *s5bh)
virtual | ~SOCKS5BytestreamManager ()
void | setStreamHosts (StreamHostList hosts)
void | addStreamHost (const JID &jid, const std::string &host, int port)
bool | requestSOCKS5Bytestream (const JID &to, S5BMode mode, const std::string &sid=EmptyString, const JID &from=JID())
bool | dispose (SOCKS5Bytestream *s5b)
void | acceptSOCKS5Bytestream (const std::string &sid)
void | rejectSOCKS5Bytestream (const std::string &sid, StanzaError reason=StanzaErrorNotAcceptable)
void | registerBytestreamHandler (BytestreamHandler *s5bh)
void | removeBytestreamHandler ()
void | registerSOCKS5BytestreamServer (SOCKS5BytestreamServer *server)
void | removeSOCKS5BytestreamServer ()
virtual bool | handleIq (const IQ &iq)
virtual void | handleIqID (const IQ &iq, int context)
Public Member Functions inherited from IqHandler
virtual | ~IqHandler ()

## Detailed Description

An SOCKS5BytestreamManager dispatches SOCKS5 Bytestreams.

Author
  Jakob Schröter js@ca.nosp@m.maya.nosp@m..net

Since
  0.9

Definition at line 51 of file socks5bytestreammanager.h.

## Member Enumeration Documentation

## S5BMode

enum S5BMode

Supported transport layer protocols.

Enumerator
S5BTCP | Use TCP on the transport layer.
S5BUDP | Use UDP on the transport layer. Not currently supported.
S5BInvalid | Invalid mode.

Definition at line 61 of file socks5bytestreammanager.h.

## Constructor & Destructor Documentation

## SOCKS5BytestreamManager()

SOCKS5BytestreamManager | ( | ClientBase * | parent,
|  | BytestreamHandler * | s5bh )

Constructs a new SOCKS5BytestreamManager.

Parameters

  parent | The ClientBase to use for sending data.
  s5bh | A SOCKS5BytestreamManager -derived object that will receive incoming and outgoing SOCKS5Bytestreams.

Definition at line 148 of file socks5bytestreammanager.cpp.

## ~SOCKS5BytestreamManager()

~SOCKS5BytestreamManager | ( |  | ) |

virtual

Virtual destructor.

Definition at line 158 of file socks5bytestreammanager.cpp.

## Member Function Documentation

## acceptSOCKS5Bytestream()

void acceptSOCKS5Bytestream | ( | const std::string & | sid | ) |

Use this function to accept an incoming bytestream.

Parameters

  sid | The stream's id as passed to BytestreamHandler::handleIncomingSOCKS5Bytestream().

Definition at line 340 of file socks5bytestreammanager.cpp.

## addStreamHost()

void addStreamHost | ( | const JID & | jid,
|  | const std::string & | host,
|  | int | port )

Adds one StreamHost to the list of StreamHosts.

Parameters

  jid | The StreamHost's JID.
  host | The StreamHost's hostname.
  port | The StreamHost's port.

Definition at line 169 of file socks5bytestreammanager.cpp.

## dispose()

bool dispose | ( | SOCKS5Bytestream * | s5b | ) |

To get rid of a bytestream (i.e., close and delete it), call this function. You should then not use the bytestream any more. The remote entity will be notified of the closing of the stream.

Parameters

  s5b | The bytestream to dispose. It will be deleted here.

Definition at line 473 of file socks5bytestreammanager.cpp.

## handleIq()

bool handleIq | ( | const IQ & | iq | ) |

virtual

Reimplement this function if you want to be notified about incoming IQs.

Parameters

  iq | The complete IQ stanza.

Returns
  Indicates whether a request of type 'get' or 'set' has been handled. This includes the obligatory 'result' answer. If you return false, an 'error' will be sent back.

Since
  1.0

Implements IqHandler.

Definition at line 269 of file socks5bytestreammanager.cpp.

## handleIqID()

void handleIqID | ( | const IQ & | iq,
|  | int | context )

virtual

Reimplement this function if you want to be notified about incoming IQs with a specific value of the `id` attribute. You have to enable tracking of those IDs using Client::trackID(). This is usually useful for IDs that generate a empty positive reply, i.e. <iq type='result' id='reg'/> where a namespace filter wouldn't work.

Parameters

  iq | The complete IQ stanza.
  context | A value to restore context, stored with ClientBase::trackID().

Note
  Only IQ stanzas of type 'result' or 'error' can arrive here.

Since
  1.0

Implements IqHandler.

Definition at line 390 of file socks5bytestreammanager.cpp.

## registerBytestreamHandler()

void registerBytestreamHandler | ( | BytestreamHandler * | s5bh | ) |

inline

Use this function to register an object that will receive new incoming bytestream requests from the SOCKS5BytestreamManager. Only one BytestreamHandler can be registered at any one time.

Parameters

  s5bh | The BytestreamHandler derived object to receive notifications.

Definition at line 141 of file socks5bytestreammanager.h.

## registerSOCKS5BytestreamServer()

void registerSOCKS5BytestreamServer | ( | SOCKS5BytestreamServer * | server | ) |

inline

Tells the SOCKS5BytestreamManager which SOCKS5BytestreamServer handles peer-2-peer SOCKS5 bytestreams.

Parameters

  server | The SOCKS5BytestreamServer to use.

Definition at line 155 of file socks5bytestreammanager.h.

## rejectSOCKS5Bytestream()

void rejectSOCKS5Bytestream | ( | const std::string & | sid,
|  | StanzaError | reason = StanzaErrorNotAcceptable )

Use this function to reject an incoming bytestream.

Parameters

  sid | The stream's id as passed to BytestreamHandler::handleIncomingSOCKS5Bytestream().
  reason | The reason for the reject.

Definition at line 354 of file socks5bytestreammanager.cpp.

## removeBytestreamHandler()

void removeBytestreamHandler | ( |  | ) |

inline

Removes the registered BytestreamHandler.

Definition at line 147 of file socks5bytestreammanager.h.

## removeSOCKS5BytestreamServer()

void removeSOCKS5BytestreamServer | ( |  | ) |

inline

Un-registers any local SOCKS5BytestreamServer.

Definition at line 160 of file socks5bytestreammanager.h.

## requestSOCKS5Bytestream()

bool requestSOCKS5Bytestream | ( | const JID & | to,
|  | S5BMode | mode,
|  | const std::string & | sid = EmptyString,
|  | const JID & | from = JID() )

This function requests a bytestream with the remote entity. Data can only be sent over an open stream. Use isOpen() to find out what the stream's current state is. However, successful opening/initiation will be announced by means of the BytestreamHandler interface. Multiple bytestreams (even per JID) can be initiated without waiting for success.

Parameters

  to | The recipient of the requested bytestream.
  mode | The desired transport layer protocol.
  sid | The bytestream's stream ID, if previously negotiated e.g. using SI (XEP-0095).
  from | An optional 'from' address to stamp outgoing requests with. Only useful in component scenarios. Defaults to empty JID.

Returns
  False in case of an error, true otherwise. A return value of true does not indicate that the bytestream has been opened. This is announced by means of the BytestreamHandler.

Definition at line 178 of file socks5bytestreammanager.cpp.

## setStreamHosts()

void setStreamHosts | ( | StreamHostList | hosts | ) |

inline

Sets a list of StreamHosts that will be used for subsequent bytestream requests.

Note
  At least one StreamHost is required.

Parameters

  hosts | A list of StreamHosts.

Definition at line 86 of file socks5bytestreammanager.h.

The documentation for this class was generated from the following files:

- socks5bytestreammanager.h
- socks5bytestreammanager.cpp