diff --git a/main.cpp b/main.cpp index 08566fb..44f00d4 100644 --- a/main.cpp +++ b/main.cpp @@ -20,22 +20,23 @@ int main(int argc, char *argv[]) else if(str.contains('=')) { QStringList argList = str.split('='); - QString key = argList.at(0); - if(key.compare("server")) - server = argList.at(1); - else if(key.compare("port")) - port = argList.at(1).toInt(); - else if(key.compare("nick")) - nick = argList.at(1); - else if(key.compare("chan")) - chan = argList.at(1); + if(argList.size() == 2) + { + QString key = argList.at(0); + if(key.compare("server") == 0) + server = argList.at(1); + else if(key.compare("port") == 0) + port = argList.at(1).toInt(); + else if(key.compare("nick") == 0) + nick = argList.at(1); + else if(key.compare("chan") == 0) + chan = argList.at(1); + } } } // create the socket - SocketIRC sock; - sock.setServer(server); - sock.setPort(port); + SocketIRC sock(server, port); // create the bot SparrowBot* bot = new SparrowBot(nick, chan); diff --git a/socketirc.cpp b/socketirc.cpp index 1e2dca6..719cb0f 100644 --- a/socketirc.cpp +++ b/socketirc.cpp @@ -7,14 +7,10 @@ SocketIRC::SocketIRC() : server("irc.freenode.net"), port(6667), isConnected(fal connect(&sock, SIGNAL(disconnected()), this, SLOT(onDisconnect())); } -void SocketIRC::setServer(QString server_) +SocketIRC::SocketIRC(QString server_, int port_) : server(server_), port(port_), isConnected(false) { - server = server_; -} - -void SocketIRC::setPort(int port_) -{ - port = port_; + connect(&sock, SIGNAL(readyRead()), this, SLOT(readMsg())); + connect(&sock, SIGNAL(disconnected()), this, SLOT(onDisconnect())); } void SocketIRC::sendMsg(QString msg) @@ -31,7 +27,10 @@ void SocketIRC::connectToServer(QCoreApplication* app_) sock.connectToHost(server, quint16(port)); if(!sock.waitForConnected(3000)) { - std::cerr << "failed to connect : " << sock.errorString().toStdString() << std::endl; + std::cerr << "failed to connect to " << server.toStdString() + << " on port " << port + << ": " << sock.errorString().toStdString() << std::endl; + if(app != NULL) app->exit(); else diff --git a/socketirc.h b/socketirc.h index b09ef5c..7035c41 100644 --- a/socketirc.h +++ b/socketirc.h @@ -13,6 +13,7 @@ class SocketIRC : public QObject public: SocketIRC(); + SocketIRC(QString server_, int port_); void setServer(QString server_); void setPort(int port_); void connectToServer(QCoreApplication* app_); diff --git a/sparrowbot.cpp b/sparrowbot.cpp index 2186596..ec9cc2c 100644 --- a/sparrowbot.cpp +++ b/sparrowbot.cpp @@ -132,7 +132,6 @@ void SparrowBot::disconnect() void SparrowBot::disconnect(QString str) { emit sendMsg(QString("QUIT :%1").arg(str)); - } void SparrowBot::joinGame()