class TCPSlaveBase

There are two classes that specifies the protocol between application (job) and kioslave. More...

Full nameKIO::TCPSlaveBase
Definition#include <tcpslavebase.h>
InheritsKIO::SlaveBase [public ]
List of all Methods
Annotated List
Files
Globals
Hierarchy
Index

Public Methods

Protected Methods

Protected Members


Detailed Description

There are two classes that specifies the protocol between application (job) and kioslave. SlaveInterface is the class to use on the application end, SlaveBase is the one to use on the slave end.

Slave implementations should simply inherit SlaveBase

A call to foo() results in a call to slotFoo() on the other end.

 TCPSlaveBase (unsigned short int defaultPort, const QCString &protocol, const QCString &poolSocket, const QCString &appSocket)

TCPSlaveBase

 TCPSlaveBase (unsigned short int defaultPort, const QCString &protocol, const QCString &poolSocket, const QCString &appSocket, bool useSSL)

TCPSlaveBase

 ~TCPSlaveBase ()

~TCPSlaveBase

[virtual]

ssize_t  Write (const void *data, ssize_t len)

Write

[protected]

ssize_t  Read (void *data, ssize_t len)

Read

[protected]

ssize_t  ReadLine (char *data, ssize_t len)

ReadLine

[protected]

unsigned short int  GetPort (unsigned short int p)

GetPort

[protected]

bool  ConnectToHost ( const QString &host, unsigned int port, bool sendError )

ConnectToHost

[protected]

void  CloseDescriptor ()

CloseDescriptor

[protected]

bool  AtEOF ()

AtEOF

[protected]

bool  InitializeSSL ()

InitializeSSL

[protected]

void  CleanSSL ()

CleanSSL

[protected]

ssize_t  write (const void *data, ssize_t len)

write

[protected]

This function acts like standard write function call except it is also capable of making SSL or SOCKS connections.

Parameters:
datainfo to be sent to remote machine
lenthe length of the data to be sent

Returns: the actual size of the data that was sent

ssize_t  read (void *data, ssize_t len)

read

[protected]

This function acts like standard read function call except it is also capable of deciphering SSL data as well as handling data over SOCKSified connections.

Parameters:
datastorage for the info read from server
lenlenght of the info to read from the server

Returns: the actual size of data that was obtained

ssize_t  readLine (char *data, ssize_t len)

readLine

[protected]

Same as above except it reads data one line at a time.

void  setBlockSize (int sz)

setBlockSize

[protected]

Sets the maximum size of blocks read in during calls to readLine(). This allows a slave to optimize for the protocol which it implements. Ideally this should be (common_line_length+1) or so. Making this too large will have adverse effects on performance. Initial/default value is 256(bytes)

unsigned short int  port (unsigned short int)

port

[protected]

Determines the appropiate port to use.

This functions attempts to discover the appropriate port.

Parameters:
port

bool  connectToHost ( const QString &host, unsigned int port, bool sendError = true )

connectToHost

[protected]

Performs the initial TCP connection stuff and/or SSL handshaking as necessary.

Please note that unlike its deprecated counterpart, this function allows you to disable any error message from being sent back to the calling application! You can then use the connectResult() function to determine the result of the request for connection.

Parameters:
hosthostname
portport number
sendErrorif true sends error message to calling app.

Returns: on succes, true is returned. on failure, false is returned and an appropriate error message is send to the application.

bool  usingTLS ()

usingTLS

[protected]

Are we using TLS?

Returns: if so, true is returned. if not, true isn't returned.

bool  canUseTLS ()

canUseTLS

[protected]

Can we use TLS?

Returns: if so, true is returned. if not, true isn't returned.

int  startTLS ()

startTLS

[protected]

Start using TLS on the connection.

Returns: on success, 1 is returned. on failure, 0 is returned. on TLS init failure, -1 is returned. on connect failure, -2 is returned. on certificate failure, -3 is returned.

void  stopTLS ()

stopTLS

[protected]

Stop using TLS on the connection.

void  closeDescriptor ()

closeDescriptor

[protected]

Closes the current file descriptor.

Call this function to properly close up the socket since it also takes care to prroperly close the stdio fstream stuff, as well as sets the socket back to -1

bool  atEnd ()

atEnd

[protected]

Returns true when end of data is reached

void  setSSLMetaData ()

setSSLMetaData

[protected]

Call this if you use persistent connections and want all the metadata restored. This is particularily important for SSL sessions since the app needs to know the state of connection, certificates, etc.

bool  initializeSSL ()

initializeSSL

[protected]

Initializs all SSL variables

void  cleanSSL ()

cleanSSL

[protected]

Cleans up all SSL settings.

bool  isConnectionValid ()

isConnectionValid

[protected]

Determines whether or not we are still connected to the remote machine.

return true if the socket is still active or false otherwise.

int  connectResult ()

connectResult

[protected]

Returns the status of the connection.

This function allows you to invoke ConnectToHost with the sendError flag set to false so that you can send the appropriate error message back to the calling io-slave.

Returns: the status code as returned by KExtendedSocket.

bool  waitForResponse ( int t )

waitForResponse

[protected]

Wait for some type of activity on the socket for the period specified by t.

Parameters:
tlength of time in seconds that we should monitor the socket before timing out.

Returns: true if any activity was seen on the socket before the timeout value was reached, false otherwise.

void  setBlockConnection ( bool b )

setBlockConnection

[protected]

Sets the mode of the connection to blocking or non-blocking.

Be sure to call this function before calling ConnectToHost. Otherwise, this setting will not have any effect until the next ConnectToHost.

Parameters:
btrue to make the connection a blocking one, false otherwise.

void  setConnectTimeout ( int t )

setConnectTimeout

[protected]

Sets how long to wait for orignally connecting to the requested before timinig out.

Be sure to call this function before calling ConnectToHost, otherwise the setting will not take effect until the next call to ConnectToHost.

Parameters:
ttimeout value

bool  isSSLTunnelEnabled ()

isSSLTunnelEnabled

[protected]

Returns true if SSL tunneling is enabled.

See also: setEnableSSlTunnel

void  setEnableSSLTunnel ( bool enable )

setEnableSSLTunnel

[protected]

Set up SSL tunneling mode.

Calling this function with a true argument will allow you to temprarly ignore the m_bIsSSL flag setting and make a non-SSL connection. It is mostly useful for making connections to SSL sites through a non-transparent proxy server (i.e. most proxy servers out there).

Note that once you have successfully "tunneled" through the proxy server you must call this function with its argument set to false to properly connect to the SSL site.

Parameters:
enableif true SSL Tunneling will be enabled

void  setRealHost ( const QString& realHost )

setRealHost

[protected]

Sets up the the real hostname for an SSL connection that goes through a proxy server.

This function is essential in making sure that the real hostname is used for validating certificates from SSL sites!

Parameters:
realHostthe actual host name we are connecting to

void  doConstructorStuff ()

doConstructorStuff

[protected]

int  verifyCertificate ()

verifyCertificate

[protected]

void  certificatePrompt ()

certificatePrompt

[protected]

bool  userAborted ()

userAborted

[protected const]

int m_iSock

m_iSock

[protected]

bool m_bIsSSL

m_bIsSSL

[protected]

unsigned short int m_iPort

m_iPort

[protected]

unsigned short int m_iDefaultPort

m_iDefaultPort

[protected]

QCString m_sServiceName

m_sServiceName

[protected]

FILE * fp

fp

[protected]

void  virtual_hook ( int id, void* data )

virtual_hook

[protected virtual]

Reimplemented from SlaveBase.


Generated by: dfaure on faure on Tue Apr 16 08:49:48 2002, using kdoc 2.0a53.