diff options
author | Eion Robb <eion@robbmob.com> | 2014-12-04 03:21:09 +0300 |
---|---|---|
committer | Eion Robb <eion@robbmob.com> | 2014-12-04 03:21:09 +0300 |
commit | e89f6547a15d10fa277d2d66450e7a0f5b62f87f (patch) | |
tree | cf8a32eb1f06a2210f343749ef0d3b5709b0d627 | |
parent | aceb95d36c14a75f6a64ee0a1145dc38cbd209f2 (diff) |
SkypeWeb : More reliable sent-message-deduplication
-rw-r--r-- | skypeweb/skypeweb_messages.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/skypeweb/skypeweb_messages.c b/skypeweb/skypeweb_messages.c index 019c7ce..bd2b73e 100644 --- a/skypeweb/skypeweb_messages.c +++ b/skypeweb/skypeweb_messages.c @@ -44,7 +44,7 @@ process_message_resource(SkypeWebAccount *sa, JsonObject *resource) messagetype_parts = g_strsplit(messagetype, "/", -1);
- if (clientmessageid && g_hash_table_remove(sa->sent_messages_hash, clientmessageid)) {
+ if (clientmessageid && *clientmessageid && g_hash_table_remove(sa->sent_messages_hash, clientmessageid)) {
// We sent this message from here already
return;
}
@@ -518,13 +518,13 @@ skypeweb_send_message(SkypeWebAccount *sa, const gchar *convname, const gchar *m {
gchar *post, *url;
JsonObject *obj;
- gint32 clientmessageid;
+ gint64 clientmessageid;
gchar *clientmessageid_str;
url = g_strdup_printf("/v1/users/ME/conversations/%s/messages", purple_url_encode(convname));
- clientmessageid = g_random_int();
- clientmessageid_str = g_strdup_printf("%d", clientmessageid);
+ clientmessageid = skypeweb_get_js_time();
+ clientmessageid_str = g_strdup_printf("%" G_GINT64_FORMAT "", clientmessageid);
obj = json_object_new();
json_object_set_string_member(obj, "clientmessageid", clientmessageid_str);
|