-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinit.cpp
More file actions
93 lines (78 loc) · 2.25 KB
/
Copy pathinit.cpp
File metadata and controls
93 lines (78 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "init.h"
#include <QDebug>
#include <QSettings>
#include <QTcpSocket>
#include <QtCore>
#include <QString>
#include <QFile>
#include <QTextStream>
#include <QTime>
#include <QTextCodec>
#include <QObject>
#include <QStringList>
#include <QHash>
#include <QAbstractSocket>
bool Init::running = 1;
Init::Init() {
QTcpSocket *socket = new QTcpSocket(this);
connect(socket,SIGNAL(readyRead()), this, SLOT(read()));
connect(socket,SIGNAL(disconnected()),this,SLOT(terminate()));
connect(socket,SIGNAL(connected()),this,SLOT(connected()));
}
Init::~Init() {
}
void Init::run() {
log("Starting");
QSettings settings("<directory>/CServ.ini", QSettings::NativeFormat);
settings.setValue("lip","<ip>");
settings.setValue("lport",<port>);
qint16 port = settings.value("lport").toInt();
socket.connectToHost(settings.value("lip").toString(),port);
//socket.connectToHost("binaryirc.com",port);
if (!socket.waitForConnected()) {
log(socket.errorString());
return;
}
if ( socket.waitForConnected()) {
log("connected");
write("PASS :"+settings.value("lpass").toString());
write("SERVER "+settings.value("sname").toString() +" 1 :2311-Z-"+settings.value("snum").toString() +" "+settings.value("sgeocs").toString());
write("PROTOCOL NICKv2 NICKIP VL NS VHP");
} else {
log("can't connect");
}
}
void Init::read() {
QString d = QString::fromUtf8(socket.readAll());
log("(IN) << "+d);
QStringList data = d.split("\r\n");
for (int i = 0; i < data.size()-1;i++ ) {
QStringList line = data.at(i).split(" ");
if (line.at(0) == "PING") {
write("PONG "+settings.value("lname").toString());
}
}
}
void Init::write(QString text) {
QString out = text+"\r\n";
socket.write(out.toLatin1());
socket.flush();
socket.waitForBytesWritten();
log("(OUT) >> "+out);
}
void Init::log (QString text) {
QFile log("log.txt");
if (!log.open(QIODevice::Append | QIODevice::Text)) {
return;
}
QTextStream out(&log);
out << "[" + QTime::currentTime().toString() + "] " + text + "\r\n";
log.flush();
log.close();
}
void Init::connected() {
log("actually connected");
}
void Init::terminate() {
Init::running = 0;
}