JabberClient::JabberClient(JabberProtocol *protocol, const char *cfg) : TCPClient(protocol, cfg) { load_data(jabberClientData, &data, cfg); if (data.owner.Resource == NULL){ string resource = PACKAGE; resource += "_"; resource += VERSION; #ifdef WIN32 resource += "/win32"; #endif set_str(&data.owner.Resource, resource.c_str()); } QString listRequests = getListRequest(); while (!listRequests.isEmpty()){ QString item = getToken(listRequests, ';', false); JabberListRequest lr; lr.bDelete = false; lr.jid = getToken(item, ',').utf8(); lr.grp = getToken(item, ',').utf8(); if (!item.isEmpty()) lr.bDelete = true; m_listRequests.push_back(lr); } setListRequest(NULL); m_bXML = false; m_bSSL = false; m_curRequest = NULL; init(); }
JabberClient::JabberClient(JabberProtocol *protocol, const char *cfg) : TCPClient(protocol, cfg) { load_data(jabberClientData, &data, cfg); QString jid = QString::fromUtf8(data.owner.ID); if (!jid.isEmpty() && (jid.find('@') < 0)){ QString server; if (data.UseVHost && data.VHost && *data.VHost){ server = QString::fromUtf8(data.VHost); }else if (data.Server){ server = QString::fromUtf8(data.Server); } if (!server.isEmpty()){ jid += "@"; jid += server; } set_str(&data.owner.ID, jid.utf8()); } if (data.owner.Resource == NULL){ string resource = PACKAGE; resource += "_"; resource += VERSION; #ifdef WIN32 resource += "/win32"; #endif set_str(&data.owner.Resource, resource.c_str()); } QString listRequests = getListRequest(); while (!listRequests.isEmpty()){ QString item = getToken(listRequests, ';', false); JabberListRequest lr; lr.bDelete = false; lr.jid = getToken(item, ',').utf8(); lr.grp = getToken(item, ',').utf8(); if (!item.isEmpty()) lr.bDelete = true; m_listRequests.push_back(lr); } setListRequest(NULL); m_bXML = false; m_bSSL = false; m_curRequest = NULL; m_msg_id = 0; init(); }
string JabberClient::getConfig() { QString lr; for (list<JabberListRequest>::iterator it = m_listRequests.begin(); it != m_listRequests.end(); ++it){ if (!lr.isEmpty()) lr += ";"; lr += quoteChars(QString::fromUtf8((*it).jid.c_str()), ",;"); lr += ","; lr += quoteChars(QString::fromUtf8((*it).grp.c_str()), ",;"); if ((*it).bDelete) lr += ",1"; } setListRequest(lr); string res = Client::getConfig(); if (res.length()) res += "\n"; return res += save_data(jabberClientData, &data); }