]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix presence on jabber to be less ambiguous
authorAnthony Minessale <anthony.minessale@gmail.com>
Fri, 12 Dec 2008 23:07:20 +0000 (23:07 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Fri, 12 Dec 2008 23:07:20 +0000 (23:07 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10745 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_dingaling/mod_dingaling.c

index 60a52aa6914ead97db026d3d83f7ed30cacabb3d..7f1f614f4b60330f5dcd0f20d7d3b7e143fbd234 100644 (file)
@@ -413,6 +413,7 @@ static void pres_event_handler(switch_event_t *event)
        char *rpid = switch_event_get_header(event, "rpid");
        char *type = switch_event_get_header(event, "event_subtype");
        char *sql;
+       char pstr[128] = "";
 
        if (globals.running != 1) {
                return;
@@ -475,10 +476,12 @@ static void pres_event_handler(switch_event_t *event)
                status = "Away";
        }
 
+       if (proto) {
+               switch_snprintf(pstr, sizeof(pstr), "%s+", proto);
+       }
 
        sql =
-               switch_mprintf("select sub_from, sub_to,'%q','%q','%q','%q' from jabber_subscriptions where sub_to like '%%%q'", type, rpid, status, proto, from);
-
+               switch_mprintf("select sub_from, sub_to,'%q','%q','%q','%q' from jabber_subscriptions where sub_to = '%q%q'", type, rpid, status, proto, pstr, from);
 
        for (hi = switch_hash_first(NULL, globals.profile_hash); hi; hi = switch_hash_next(hi)) {
                switch_hash_this(hi, NULL, NULL, &val);