blob: e01089eda91c1fdbc9ad1ca6bb03ddf786b6073a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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);
}
}
|