Mercurial > hg
changeset 1017:41f9a2a4c1de
Only update server private storage data if they've changed
We do not want to call send_storage_bookmarks() and send_storage_rosternotes()
when the data haven't been updated.
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Wed, 15 Nov 2006 19:23:40 +0100 |
parents | 4d3c48844746 |
children | 45d022fbce3a |
files | mcabber/src/jabglue.c |
diffstat | 1 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/jabglue.c Wed Nov 15 00:04:57 2006 +0100 +++ b/mcabber/src/jabglue.c Wed Nov 15 19:23:40 2006 +0100 @@ -1182,6 +1182,7 @@ const char *nick, const char *passwd, int autojoin) { xmlnode x; + bool changed = FALSE; if (!roomid) return; @@ -1208,6 +1209,7 @@ // We've found a bookmark for this room. Let's hide it and we'll // create a new one. xmlnode_hide(x); + changed = TRUE; break; } } @@ -1223,8 +1225,12 @@ xmlnode_insert_cdata(xmlnode_insert_tag(x, "nick"), nick, -1); if (passwd) xmlnode_insert_cdata(xmlnode_insert_tag(x, "password"), passwd, -1); + changed = TRUE; } + if (!changed) + return; + if (online) send_storage_bookmarks(); else @@ -1275,6 +1281,7 @@ void jb_set_storage_rosternotes(const char *barejid, const char *note) { xmlnode x; + bool changed = FALSE; if (!barejid) return; @@ -1301,6 +1308,7 @@ // We've found a note for this jid. Let's hide it and we'll // create a new one. xmlnode_hide(x); + changed = TRUE; break; } } @@ -1311,8 +1319,12 @@ x = xmlnode_insert_tag(rosternotes, "note"); xmlnode_put_attrib(x, "jid", barejid); xmlnode_insert_cdata(x, note, -1); + changed = TRUE; } + if (!changed) + return; + if (online) send_storage_rosternotes(); else