diff options
Diffstat (limited to 'libraries/meanwhile/presence_fix_v2.diff')
-rw-r--r-- | libraries/meanwhile/presence_fix_v2.diff | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/libraries/meanwhile/presence_fix_v2.diff b/libraries/meanwhile/presence_fix_v2.diff new file mode 100644 index 0000000000..e01089eda9 --- /dev/null +++ b/libraries/meanwhile/presence_fix_v2.diff @@ -0,0 +1,42 @@ +# User Mikael Berthe <mikael.berthe@lilotux.net> +# Date 1194208892 -3600 +Fix Awareness Snapshots with recent Sametime servers + +With recent Sametime servers there seem to be 2 bytes +after the Snapshot Message Blocks. +This patch tries to use the end of block offset provided +by the server. + +diff -r be8d8f1d3ebc src/common.c +--- a/src/common.c Sun Nov 04 18:48:00 2007 +0100 ++++ b/src/common.c Tue Nov 06 11:46:26 2007 +0100 +@@ -878,23 +878,24 @@ gboolean mwAwareIdBlock_equal(const stru + /* 8.4.2.4 Snapshot */ + + void mwAwareSnapshot_get(struct mwGetBuffer *b, struct mwAwareSnapshot *idb) { +- guint32 junk; +- char *empty = NULL; ++ guint32 end_of_block; + + g_return_if_fail(b != NULL); + g_return_if_fail(idb != NULL); + +- guint32_get(b, &junk); ++ guint32_get(b, &end_of_block); + mwAwareIdBlock_get(b, &idb->id); + mwString_get(b, &idb->group); + gboolean_get(b, &idb->online); +- +- g_free(empty); + + if(idb->online) { + mwString_get(b, &idb->alt_id); + mwUserStatus_get(b, &idb->status); + mwString_get(b, &idb->name); ++ } ++ ++ if( b->ptr < b->buf + end_of_block ) { ++ mwGetBuffer_advance(b, b->buf + end_of_block - b->ptr); + } + } + |