示例#1
0
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();
}
示例#2
0
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();
}
示例#3
0
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);
}