Vidalia
0.3.1
src
common
TorSocket.h
Go to the documentation of this file.
1
/*
2
** This file is part of Vidalia, and is subject to the license terms in the
3
** LICENSE file, found in the top level directory of this distribution. If you
4
** did not receive the LICENSE file with this file, you may obtain it from the
5
** Vidalia source package distributed by the Vidalia Project at
6
** http://www.torproject.org/projects/vidalia.html. No part of Vidalia,
7
** including this file, may be copied, modified, propagated, or distributed
8
** except according to the terms described in the LICENSE file.
9
*/
10
11
/*
12
** \file TorSocket.h
13
** \brief A QTcpSocket that makes requests over Tor
14
*/
15
16
#ifndef _TORSOCKET_H
17
#define _TORSOCKET_H
18
19
#include <QTcpSocket>
20
#include <QHostAddress>
21
22
23
class
TorSocket
:
public
QTcpSocket
24
{
25
Q_OBJECT
26
27
public
:
28
/** Constructor. */
29
TorSocket
(
const
QHostAddress &socksAddr,
30
quint16 socksPort, QObject *parent = 0);
31
32
/** Connects to the specified hostname and port via Tor. */
33
void
connectToRemoteHost
(
const
QString &remoteHost, quint16 remotePort);
34
35
signals:
36
/** Emitted when a connection has been established through Tor to the remote
37
* host specified in a prior call to connectToHost(). */
38
void
connectedToRemoteHost
();
39
/** Emitted when a connection error has occurred. */
40
void
socketError
(QString errmsg);
41
42
private
slots:
43
/** Called when the socket is connected to the proxy and sends our
44
* half of a Socks4a handshake. */
45
void
connectedToProxy
();
46
/** Handles the server's response part of a Socks4a handshake. */
47
void
onHandshakeResponse
();
48
/** Called when a connection error has occurred. */
49
void
onError
(QAbstractSocket::SocketError
error
);
50
51
private
:
52
/** Sends the client part of a Socks4a handshake with a proxy server. */
53
void
sendSocksHandshake
(
const
QString &remoteHost, quint16 remotePort);
54
55
QHostAddress
_socksAddr
;
/**< Address of Tor's SOCKS listener. */
56
QString
_remoteHost
;
/**< Remote hostname. */
57
quint16
_socksPort
;
/**< Port of Tor's SOCKS listener. */
58
quint16
_remotePort
;
/**< Remote host port. */
59
};
60
61
#endif
62
TorSocket::onHandshakeResponse
void onHandshakeResponse()
Definition:
TorSocket.cpp:102
TorSocket::_socksAddr
QHostAddress _socksAddr
Definition:
TorSocket.h:55
TorSocket::_remoteHost
QString _remoteHost
Definition:
TorSocket.h:56
TorSocket::connectedToProxy
void connectedToProxy()
Definition:
TorSocket.cpp:63
TorSocket::sendSocksHandshake
void sendSocksHandshake(const QString &remoteHost, quint16 remotePort)
Definition:
TorSocket.cpp:81
TorSocket::connectedToRemoteHost
void connectedToRemoteHost()
TorSocket::connectToRemoteHost
void connectToRemoteHost(const QString &remoteHost, quint16 remotePort)
Definition:
TorSocket.cpp:45
TorSocket::TorSocket
TorSocket(const QHostAddress &socksAddr, quint16 socksPort, QObject *parent=0)
Definition:
TorSocket.cpp:29
TorSocket::_remotePort
quint16 _remotePort
Definition:
TorSocket.h:58
TorSocket::_socksPort
quint16 _socksPort
Definition:
TorSocket.h:57
tc::error
DebugMessage error(const QString &fmt)
Definition:
tcglobal.cpp:40
TorSocket::onError
void onError(QAbstractSocket::SocketError error)
Definition:
TorSocket.cpp:54
TorSocket::socketError
void socketError(QString errmsg)
TorSocket
Definition:
TorSocket.h:23
Generated by
1.8.17