From 3dc0d9b0b7c30ea2f77d74c4ce5b6ccd67bd525c Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 9 Apr 2013 21:40:22 +0000 Subject: - the kernel filters out contacts by proto names much faster than a plugin; - database cycles simplified git-svn-id: http://svn.miranda-ng.org/main/trunk@4404 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- protocols/Tlen/src/jabber_misc.cpp | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) (limited to 'protocols/Tlen/src/jabber_misc.cpp') diff --git a/protocols/Tlen/src/jabber_misc.cpp b/protocols/Tlen/src/jabber_misc.cpp index c20cc63c06..73ac847836 100644 --- a/protocols/Tlen/src/jabber_misc.cpp +++ b/protocols/Tlen/src/jabber_misc.cpp @@ -91,19 +91,17 @@ HANDLE JabberHContactFromJID(TlenProtocol *proto, const char *jid) if (jid == NULL) return NULL; - for (HANDLE hContact = db_find_first(); hContact; hContact = db_find_next(hContact)) { - szProto = GetContactProto(hContact); - if (szProto != NULL && !strcmp(proto->m_szModuleName, szProto)) { - if (!db_get(hContact, proto->m_szModuleName, "jid", &dbv)) { - if ((p=dbv.pszVal) != NULL) { - if (!stricmp(p, jid)) { // exact match (node@domain/resource) - db_free(&dbv); - return hContact; - } - } + for (HANDLE hContact = db_find_first(proto->m_szModuleName); hContact; hContact = db_find_next(hContact, proto->m_szModuleName)) { + if ( db_get(hContact, proto->m_szModuleName, "jid", &dbv)) + continue; + + if ((p=dbv.pszVal) != NULL) { + if (!stricmp(p, jid)) { // exact match (node@domain/resource) db_free(&dbv); + return hContact; } } + db_free(&dbv); } return NULL; -- cgit v1.2.3