equal
deleted
inserted
replaced
186 |
186 |
187 if (!resname) return NULL; |
187 if (!resname) return NULL; |
188 |
188 |
189 for (p = rost->resource; p; p = g_slist_next(p)) { |
189 for (p = rost->resource; p; p = g_slist_next(p)) { |
190 res *r = p->data; |
190 res *r = p->data; |
191 if (!strcmp(r->name, resname)) |
191 if (!strcmp(r->name, resname)) { |
|
192 if (prio != r->prio) { |
|
193 r->prio = prio; |
|
194 rost->resource = g_slist_sort(rost->resource, |
|
195 (GCompareFunc)&resource_compare_prio); |
|
196 } |
192 return r; |
197 return r; |
|
198 } |
193 } |
199 } |
194 |
200 |
195 // Resource not found |
201 // Resource not found |
196 nres = g_new0(res, 1); |
202 nres = g_new0(res, 1); |
197 nres->name = g_strdup(resname); |
203 nres->name = g_strdup(resname); |
494 |
500 |
495 roster_usr = (roster*)sl_user->data; |
501 roster_usr = (roster*)sl_user->data; |
496 |
502 |
497 // New or updated resource |
503 // New or updated resource |
498 p_res = get_or_add_resource(roster_usr, resname, prio); |
504 p_res = get_or_add_resource(roster_usr, resname, prio); |
499 p_res->prio = prio; |
|
500 p_res->status = bstat; |
505 p_res->status = bstat; |
501 if (p_res->status_msg) { |
506 if (p_res->status_msg) { |
502 g_free((gchar*)p_res->status_msg); |
507 g_free((gchar*)p_res->status_msg); |
503 p_res->status_msg = NULL; |
508 p_res->status_msg = NULL; |
504 } |
509 } |