summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Sluift/sluift.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/Sluift/sluift.cpp b/Sluift/sluift.cpp
index 5bcc059..85b35f9 100644
--- a/Sluift/sluift.cpp
+++ b/Sluift/sluift.cpp
@@ -62,19 +62,19 @@ class SluiftClient {
return client;
}
ClientOptions& getOptions() {
return options;
}
void connect() {
rosterReceived = false;
- client->connect();
+ client->connect(options);
}
void connect(const std::string& host) {
rosterReceived = false;
client->connect(host);
}
void waitConnected() {
Watchdog watchdog(globalTimeout, networkFactories.getTimerFactory());
@@ -199,19 +199,22 @@ class SluiftClient {
******************************************************************************/
static inline SluiftClient* getClient(lua_State* L) {
return *reinterpret_cast<SluiftClient**>(luaL_checkudata(L, 1, SLUIFT_CLIENT));
}
static int sluift_client_connect(lua_State *L) {
try {
SluiftClient* client = getClient(L);
- std::string host(luaL_checkstring(L, 2));
+ std::string host;
+ if (lua_type(L, 2) != LUA_TNONE) {
+ host = luaL_checkstring(L, 2);
+ }
if (host.empty()) {
client->connect();
}
else {
client->connect(host);
}
client->waitConnected();
return 1;
}