Ignore:
Timestamp:
2015-05-28T04:04:54Z (9 years ago)
Author:
dequis <dx@…>
Branches:
master
Children:
3d31618
Parents:
fe63ed3
git-author:
Artem Savkov <artem.savkov@…> (25-05-15 18:49:59)
git-committer:
dequis <dx@…> (28-05-15 04:04:54)
Message:

Lowering xmpp presence priority on away.

When user set's away lower xmpp presence priority by 5 as most clients do, new
priority won't go below zero though.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • protocols/jabber/presence.c

    rfe63ed3 r24f113b  
    181181}
    182182
     183static char *choose_priority(struct im_connection *ic)
     184{
     185        struct jabber_data *jd = ic->proto_data;
     186        char *prio = set_getstr(&ic->acc->set, "priority");
     187
     188        if (jd->away_state->code != NULL) {
     189                int new_prio = (atoi(prio) - 5);
     190                if (new_prio < 0) {
     191                        new_prio = 0;
     192                }
     193                return g_strdup_printf("%d", new_prio);
     194        }
     195
     196        return g_strdup(prio);
     197}
     198
    183199/* Whenever presence information is updated, call this function to inform the
    184200   server. */
     
    189205        GSList *l;
    190206        int st;
     207        char *prio = choose_priority(ic);
    191208
    192209        node = jabber_make_packet("presence", NULL, NULL, NULL);
    193         xt_add_child(node, xt_new_node("priority", set_getstr(&ic->acc->set, "priority"), NULL));
     210        xt_add_child(node, xt_new_node("priority", prio, NULL));
    194211        if (jd->away_state) {
    195212                xt_add_child(node, xt_new_node("show", jd->away_state->code, NULL));
     
    222239
    223240        xt_free_node(node);
     241        g_free(prio);
    224242        return st;
    225243}
Note: See TracChangeset for help on using the changeset viewer.