kio Library API Documentation

KIO::TCPSlaveBase Class Reference

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

#include <tcpslavebase.h>

Inheritance diagram for KIO::TCPSlaveBase:

KIO::SlaveBase List of all members.

Protected Methods

KDE_DEPRECATED ssize_t Write (const void *data, ssize_t len)
KDE_DEPRECATED ssize_t Read (void *data, ssize_t len)
KDE_DEPRECATED ssize_t ReadLine (char *data, ssize_t len)
KDE_DEPRECATED unsigned short
int 
GetPort (unsigned short int p)
KDE_DEPRECATED bool ConnectToHost (const QString &host, unsigned int port, bool sendError)
KDE_DEPRECATED void CloseDescriptor ()
KDE_DEPRECATED bool AtEOF ()
KDE_DEPRECATED bool InitializeSSL ()
KDE_DEPRECATED void CleanSSL ()
ssize_t write (const void *data, ssize_t len)
ssize_t read (void *data, ssize_t len)
ssize_t readLine (char *data, ssize_t len)
void setBlockSize (int sz)
unsigned short int port (unsigned short int _port)
bool connectToHost (const QString &host, unsigned int port, bool sendError=true)
bool usingSSL () const
bool usingTLS () const
bool usingTLS ()
bool canUseTLS ()
int startTLS ()
void stopTLS ()
void closeDescriptor ()
bool atEnd ()
void setSSLMetaData ()
bool initializeSSL ()
void cleanSSL ()
bool isConnectionValid ()
int connectResult ()
bool waitForResponse (int t)
void setBlockConnection (bool b)
void setConnectTimeout (int t)
bool isSSLTunnelEnabled ()
void setEnableSSLTunnel (bool enable)
void setRealHost (const QString &realHost)
virtual void virtual_hook (int id, void *data)

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.

Definition at line 49 of file tcpslavebase.h.


Member Function Documentation

KDE_DEPRECATED ssize_t KIO::TCPSlaveBase::Write const void *    data,
ssize_t    len
[inline, protected]
 

Deprecated:
Due to inconsistency with KDE naming convention.

Definition at line 67 of file tcpslavebase.h.

References KIO::SlaveBase::data(), and write().

KDE_DEPRECATED ssize_t KIO::TCPSlaveBase::Read void *    data,
ssize_t    len
[inline, protected]
 

Deprecated:
Due to inconsistency with KDE naming convention.

Definition at line 72 of file tcpslavebase.h.

References KIO::SlaveBase::data(), and read().

KDE_DEPRECATED ssize_t KIO::TCPSlaveBase::ReadLine char *    data,
ssize_t    len
[inline, protected]
 

Deprecated:
Due to inconsistency with KDE naming convention.

Definition at line 77 of file tcpslavebase.h.

References KIO::SlaveBase::data(), and readLine().

KDE_DEPRECATED unsigned short int KIO::TCPSlaveBase::GetPort unsigned short int    p [inline, protected]
 

Deprecated:
Due to inconsistency with KDE naming convention.

Definition at line 82 of file tcpslavebase.h.

References port().

KDE_DEPRECATED bool KIO::TCPSlaveBase::ConnectToHost const QString   host,
unsigned int    port,
bool    sendError
[inline, protected]
 

Deprecated:
Due to inconsistency with KDE naming convention.

Definition at line 87 of file tcpslavebase.h.

References connectToHost(), and port().

KDE_DEPRECATED void KIO::TCPSlaveBase::CloseDescriptor   [inline, protected]
 

Deprecated:
Due to inconsistency with KDE naming convention.

Definition at line 93 of file tcpslavebase.h.

References closeDescriptor().

KDE_DEPRECATED bool KIO::TCPSlaveBase::AtEOF   [inline, protected]
 

Deprecated:
Due to inconsistency with KDE naming convention.

Definition at line 98 of file tcpslavebase.h.

References atEnd().

KDE_DEPRECATED bool KIO::TCPSlaveBase::InitializeSSL   [inline, protected]
 

Deprecated:
Due to inconsistency with KDE naming convention.

Definition at line 103 of file tcpslavebase.h.

References initializeSSL().

KDE_DEPRECATED void KIO::TCPSlaveBase::CleanSSL   [inline, protected]
 

Deprecated:
Due to inconsistency with KDE naming convention.

Definition at line 108 of file tcpslavebase.h.

References cleanSSL().

ssize_t TCPSlaveBase::write const void *    data,
ssize_t    len
[protected]
 

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

Parameters:
data  info to be sent to remote machine
len  the length of the data to be sent
Returns:
the actual size of the data that was sent

Definition at line 148 of file tcpslavebase.cpp.

References KIO::SlaveBase::data(), KSocks::self(), and KSocks::write().

Referenced by Write().

ssize_t TCPSlaveBase::read void *    data,
ssize_t    len
[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:
data  storage for the info read from server
len  lenght of the info to read from the server
Returns:
the actual size of data that was obtained

Definition at line 159 of file tcpslavebase.cpp.

References KIO::SlaveBase::data(), KSocks::read(), and KSocks::self().

Referenced by Read().

ssize_t TCPSlaveBase::readLine char *    data,
ssize_t    len
[protected]
 

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

Definition at line 180 of file tcpslavebase.cpp.

References KIO::SlaveBase::data(), KSocks::read(), and KSocks::self().

Referenced by ReadLine().

void TCPSlaveBase::setBlockSize int    sz [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)

Definition at line 171 of file tcpslavebase.cpp.

unsigned short int TCPSlaveBase::port unsigned short int    _port [protected]
 

Determines the appropriate port to use.

This functions attempts to discover the appropriate port.

Parameters:
_port  the port to try, if it works, it is returned
Returns:
the default port if the given port doesn't work

Definition at line 268 of file tcpslavebase.cpp.

Referenced by ConnectToHost(), connectToHost(), and GetPort().

bool TCPSlaveBase::connectToHost const QString   host,
unsigned int    port,
bool    sendError = true
[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:
host  hostname
port  port number
sendError  if 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.

Definition at line 286 of file tcpslavebase.cpp.

References KExtendedSocket::blockingMode(), closeDescriptor(), KExtendedSocket::connect(), KIO::SlaveBase::error(), KExtendedSocket::fd(), KIO::SlaveBase::messageBox(), KIO::SlaveBase::metaData(), KSocketAddress::nodeName(), KExtendedSocket::peerAddress(), port(), KExtendedSocket::release(), KExtendedSocket::setAddress(), KExtendedSocket::setBlockingMode(), KIO::SlaveBase::setMetaData(), KExtendedSocket::setTimeout(), and KSSLSettings::warnOnLeave().

Referenced by ConnectToHost().

bool KIO::TCPSlaveBase::usingSSL   const [inline, protected]
 

Are we using SSL?

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

Definition at line 187 of file tcpslavebase.h.

bool TCPSlaveBase::usingTLS   [protected]
 

Are we using TLS?

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

Definition at line 722 of file tcpslavebase.cpp.

bool TCPSlaveBase::usingTLS   [protected]
 

Deprecated:
kept for binary compatibility Are we using TLS?
Returns:
if so, true is returned. if not, true isn't returned.

Definition at line 728 of file tcpslavebase.cpp.

bool TCPSlaveBase::canUseTLS   [protected]
 

Can we use TLS?

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

Definition at line 490 of file tcpslavebase.cpp.

References KSSL::doesSSLWork(), and KSSLSettings::tlsv1().

int TCPSlaveBase::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.

Definition at line 417 of file tcpslavebase.cpp.

References KSSL::doesSSLWork(), KSSLSession::fromString(), KIO::SlaveBase::hasMetaData(), KIO::SlaveBase::metaData(), and KIO::SlaveBase::setMetaData().

void TCPSlaveBase::stopTLS   [protected]
 

Stop using TLS on the connection.

Definition at line 472 of file tcpslavebase.cpp.

References KIO::SlaveBase::setMetaData().

Referenced by closeDescriptor().

void TCPSlaveBase::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

Definition at line 372 of file tcpslavebase.cpp.

References stopTLS().

Referenced by CloseDescriptor(), and connectToHost().

bool TCPSlaveBase::atEnd   [protected]
 

Returns true when end of data is reached.

Definition at line 412 of file tcpslavebase.cpp.

Referenced by AtEOF().

void TCPSlaveBase::setSSLMetaData   [protected]
 

Call this if you use persistent connections and want all the metadata restored.

This is particularly important for SSL sessions since the app needs to know the state of connection, certificates, etc.

Definition at line 482 of file tcpslavebase.cpp.

bool TCPSlaveBase::initializeSSL   [protected]
 

Initializs all SSL variables.

Definition at line 390 of file tcpslavebase.cpp.

References KSSL::doesSSLWork().

Referenced by InitializeSSL().

void TCPSlaveBase::cleanSSL   [protected]
 

Cleans up all SSL settings.

Definition at line 401 of file tcpslavebase.cpp.

Referenced by CleanSSL().

bool TCPSlaveBase::isConnectionValid   [protected]
 

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

This method may fail to detect a closed SSL connection.

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

Definition at line 1115 of file tcpslavebase.cpp.

References KSocks::recv(), KSocks::select(), KSocks::self(), and KIO::SlaveBase::wasKilled().

int TCPSlaveBase::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.

Definition at line 1205 of file tcpslavebase.cpp.

bool TCPSlaveBase::waitForResponse int    t [protected]
 

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

Parameters:
t  length 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.

Definition at line 1160 of file tcpslavebase.cpp.

References KSocks::select(), KSocks::self(), and KIO::SlaveBase::wasKilled().

void TCPSlaveBase::setBlockConnection bool    b [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:
b  true to make the connection a blocking one, false otherwise.

Definition at line 1210 of file tcpslavebase.cpp.

void TCPSlaveBase::setConnectTimeout int    t [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:
t  timeout value

Definition at line 1215 of file tcpslavebase.cpp.

bool TCPSlaveBase::isSSLTunnelEnabled   [protected]
 

Returns true if SSL tunneling is enabled.

See also:
setEnableSSlTunnel

Definition at line 1220 of file tcpslavebase.cpp.

void TCPSlaveBase::setEnableSSLTunnel bool    enable [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:
enable  if true SSL Tunneling will be enabled

Definition at line 1225 of file tcpslavebase.cpp.

void TCPSlaveBase::setRealHost const QString   realHost [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:
realHost  the actual host name we are connecting to

Definition at line 1230 of file tcpslavebase.cpp.


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for kio Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Apr 22 14:24:22 2004 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2003