Changeset 287:5bf6d7375f4c

Show
Ignore:
Timestamp:
06/30/2008 05:05:45 PM (4 years ago)
Author:
Dmitry Nezhevenko <dion@…>
Branch:
default
Message:

Fix version matcher

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • src/plugins/muc/mucplugin.cpp

    r286 r287  
    3737        pluginId=1; 
    3838        lazyOffline=DataStorage::instance()->getInt("muc/lazyoffline"); 
    39          
     39 
    4040        int leaveCheckInterval=DataStorage::instance()->getInt("muc/leave_checkinterval"); 
    4141        if (leaveCheckInterval>0) 
     
    4646                timer->start(leaveCheckInterval); 
    4747        } 
    48          
     48 
    4949} 
    5050 
     
    178178        { 
    179179                qDebug() 
    180                                 << "[MUC] Got type='error' in onPresence. Looks like we can't join conference: " << confFull << "Nick: " << nick;  
     180                                << "[MUC] Got type='error' in onPresence. Looks like we can't join conference: " << confFull << "Nick: " << nick; 
    181181                int idx=confInProgress.indexOf(getConfExp(confFull)); 
    182182                if (idx>=0) 
     
    236236 
    237237        } 
    238          
     238 
    239239        bool newNick=false; 
    240240        if (!n) 
     
    247247                n=new Nick(conf, nick,getItem(s,"jid")); 
    248248                conf->nicks()->append(n); 
    249                  
     249 
    250250                if (nick==conf->nick()) 
    251251                { 
    252252                        // Got own presence after renaming 
    253253 
    254                 }                
     254                } 
    255255        } 
    256256        else 
     
    310310                if (newNick || conf->configurator()->isCheckAlistsEveryPresence()) 
    311311                        checkMember(s, conf, n); 
    312                  
     312 
    313313                if (newNick) 
    314314                { 
     
    487487                return true; 
    488488        } 
    489          
     489 
    490490        if (cmd=="IDLE") 
    491491        { 
     
    505505                return true; 
    506506        } 
    507          
     507 
    508508        if (cmd=="VERSION") 
    509509        { 
     
    522522                return true; 
    523523        } 
    524          
     524 
    525525        if (cmd=="CHECKVCARD") 
    526526        { 
     
    532532                return true; 
    533533        } 
    534          
     534 
    535535        if (cmd=="SEEN") 
    536536        { 
     
    562562                QString target=arg; 
    563563                QString reason=parser.nextToken(); 
    564                  
     564 
    565565                Nick *n=getNickVerbose(s, target); 
    566566                if (!n) 
     
    631631        } 
    632632 
    633         if (cmd=="ABAN" || cmd=="AKICK" || cmd=="AVISITOR" || cmd=="AMODERATOR"  
     633        if (cmd=="ABAN" || cmd=="AKICK" || cmd=="AVISITOR" || cmd=="AMODERATOR" 
    634634                || cmd=="ACMD" || cmd=="AEDIT" || cmd=="AFIND") 
    635635        { 
     
    853853        if (!joinerBareJid.isEmpty()) 
    854854        { 
    855                  
     855 
    856856        } 
    857857 
     
    895895                conf->markOffline(); 
    896896        } 
    897          
     897 
    898898 
    899899        /*      Conference *conf=new Conference(cname,cnick); 
     
    979979        nick->setVersionOs(QString::null); 
    980980        if (query) 
    981         {  
     981        { 
    982982                gloox::Tag* t; 
    983983                t=query->findChild("name"); 
     
    10631063        if (arg=="ACMD") 
    10641064                alist=conf->acommand(); 
    1065          
     1065 
    10661066        if (!alist) 
    10671067        { 
     
    11241124                        arg2=parser.nextToken().toUpper(); 
    11251125                        isRemoving=true; 
    1126                 }                
     1126                } 
    11271127        } 
    11281128 
     
    11661166                arg2=parser.nextToken().toUpper(); 
    11671167        } 
    1168          
     1168 
    11691169        qDebug() << "1: " << arg2; 
    1170          
    1171         if (arg2=="NICK" || arg2=="BODY" || arg2=="RES"  
    1172                 || arg2=="VERSION" || arg2=="VERSION.NAME"  
     1170 
     1171        if (arg2=="NICK" || arg2=="BODY" || arg2=="RES" 
     1172                || arg2=="VERSION" || arg2=="VERSION.NAME" 
    11731173                || arg2=="VERSION.CLIENT" || arg2=="VERSION.OS") 
    11741174        { 
     
    11891189 
    11901190                arg2=parser.nextToken().toUpper(); 
    1191         }  
     1191        } 
    11921192        else if (arg2=="JID") 
    11931193        { 
     
    11971197 
    11981198        qDebug() << "2: " << arg2; 
    1199          
     1199 
    12001200        if (arg2=="EXP") 
    12011201        { 
     
    12451245 
    12461246        qDebug() << "3: " << arg2; 
    1247          
     1247 
    12481248        arg2=arg2.toLower(); 
    12491249        item.setValue(arg2); 
     
    12731273                } 
    12741274        } 
    1275          
     1275 
    12761276        qDebug() << "4: " << arg2; 
    12771277        QString reason=parser.joinBody().trimmed(); 
     
    12991299        QString version; 
    13001300        if (nick->isVersionStored()) 
    1301                 version=nick->versionName()+" "+nick->versionClient()+" // "+nick->versionOs(); 
    1302          
     1301        { 
     1302                version=nick->versionName(); 
     1303                if (!nick->versionClient().isEmpty()) 
     1304                        version+=" "+nick->versionClient(); 
     1305                if (!nick->versionOs().isEmpty()) 
     1306                        version+=" // "+nick->versionOs(); 
     1307                version=version.trimmed(); 
     1308        } 
     1309 
    13031310        bool isPresence=!s || (s->type()==gloox::StanzaPresence); 
    1304          
     1311 
    13051312        for (int i=0; i<cnt; i++) 
    13061313        { 
    13071314                AListItem* item=list->at(i); 
    1308                  
    1309                 if (matcher!=AListItem::MatcherUnknown && matcher!=AListItem::MatcherAll &&  
     1315 
     1316                if (matcher!=AListItem::MatcherUnknown && matcher!=AListItem::MatcherAll && 
    13101317                                !item->matcherType()!=matcher) 
    13111318                { 
     
    13201327                                continue; 
    13211328                } 
    1322          
     1329 
    13231330                QString testValue; 
    1324                 if (!isPresence && (item->matcherType() == AListItem::MatcherNick  
     1331                if (!isPresence && (item->matcherType() == AListItem::MatcherNick 
    13251332                                || item->matcherType()==AListItem::MatcherJid || item->matcherType()==AListItem::MatcherResource)) 
    13261333                        continue; 
    1327                  
    1328                 if (item->matcherType() == AListItem::MatcherVersion  
     1334 
     1335                if (item->matcherType() == AListItem::MatcherVersion 
    13291336                        || item->matcherType()==AListItem::MatcherVersionName 
    13301337                        || item->matcherType()==AListItem::MatcherVersionClient 
     
    13361343                                continue; 
    13371344                } 
    1338                  
     1345 
    13391346                switch (item->matcherType()) 
    13401347                { 
     
    13501357                        default: continue; 
    13511358                } 
    1352                  
     1359 
    13531360                if (testValue.isEmpty()) 
    13541361                        continue; 
    1355                  
     1362 
    13561363                switch (item->testType()) 
    13571364                { 
     
    13871394        if (!n || !c) 
    13881395                return; 
    1389          
     1396 
    13901397        // Don't process our own presences 
    13911398        if (c && n->nick()==c->nick()) 
    13921399                return; 
    1393          
    1394         // We should not parse own messages, since this can create loop  
     1400 
     1401        // We should not parse own messages, since this can create loop 
    13951402        if (s && (s->from() == s->to() || isMyMessage(s))) 
    13961403                s=0l; 
     
    14361443                return; 
    14371444        } 
    1438          
     1445 
    14391446        if (item=aFind(c->acommand(), n, s, matcher)) 
    14401447        { 
     
    14591466                bot()->client()->handleMessage(st, 0); 
    14601467                delete st; 
    1461                  
     1468 
    14621469                return; 
    14631470        } 
     
    14821489        if (!conf) 
    14831490                return StorageKey(); 
    1484          
     1491 
    14851492        return StorageKey(pluginId, conf->id()); 
    14861493} 
     
    14931500        if (getRole(s)<ROLE_ADMIN) 
    14941501                return 0; 
    1495          
     1502 
    14961503        return conf->configurator(); 
    14971504} 
     
    16011608                QString body=QString::fromStdString(s->body()); 
    16021609                msg.replace("${BODY}", body); 
    1603                  
     1610 
    16041611                if (item) 
    16051612                { 
    16061613                        QString value=item->value(); 
    1607                          
     1614 
    16081615                        if (!value.isEmpty() && msg.indexOf("${BODYARG}")>=0) 
    16091616                        { 
     
    16321639        if (nick->jidStr().isEmpty()) 
    16331640                return; 
    1634          
     1641 
    16351642        QString jid=conf->name()+"/"+nick->nick(); 
    16361643        QString vcardId=bot()->client()->fetchVCard(jid); 
     
    16561663                return false; 
    16571664        } 
    1658          
     1665 
    16591666        gloox::Stanza* src=req->stanza(); 
    16601667        Conference* conf=getConf(src); 
    16611668        Nick* nick=getNick(src); 
    16621669        QString stored_jid=QString::fromStdString(src->findAttribute("gluxi_jid")); 
    1663          
     1670 
    16641671        if (conf && nick && stored_jid==nick->jidStr()) 
    16651672        { 
     
    16901697{ 
    16911698        qDebug() << "Checking for died conferences"; 
    1692          
     1699 
    16931700        QStringList conferencesToLeave=Conference::autoLeaveList(); 
    16941701        if (conferencesToLeave.isEmpty())