@@ -826,7 +826,9 @@ static int msg_send_on_answer (struct query *q UU) {
826
826
assert (x == CODE_messages_sent_message || x == CODE_messages_sent_message_link );
827
827
int id = fetch_int (); // id
828
828
struct tgl_message * M = q -> extra ;
829
- bl_do_set_msg_id (M , id );
829
+ if (M -> id != id ) {
830
+ bl_do_set_msg_id (M , id );
831
+ }
830
832
int date = fetch_int ();
831
833
int pts = fetch_int ();
832
834
//tglu_fetch_seq ();
@@ -837,8 +839,10 @@ static int msg_send_on_answer (struct query *q UU) {
837
839
bl_do_set_pts (pts );
838
840
bl_do_msg_seq_update (id );
839
841
} else {
840
- vlogprintf (E_NOTICE , "Hole in seq\n" );
841
- tgl_do_get_difference (0 , 0 , 0 );
842
+ if (seq > tgl_state .seq + 1 ) {
843
+ vlogprintf (E_NOTICE , "Hole in seq\n" );
844
+ tgl_do_get_difference (0 , 0 , 0 );
845
+ }
842
846
}
843
847
if (x == CODE_messages_sent_message_link ) {
844
848
assert (skip_type_any (TYPE_TO_PARAM_1 (vector , TYPE_TO_PARAM (contacts_link ))) >= 0 );
@@ -1066,7 +1070,10 @@ static int mark_read_on_receive (struct query *q UU) {
1066
1070
bl_do_set_pts (pts );
1067
1071
bl_do_set_seq (seq );
1068
1072
} else {
1069
- tgl_do_get_difference (0 , 0 , 0 );
1073
+ if (seq > tgl_state .seq + 1 ) {
1074
+ vlogprintf (E_NOTICE , "Hole in seq\n" );
1075
+ tgl_do_get_difference (0 , 0 , 0 );
1076
+ }
1070
1077
}
1071
1078
1072
1079
int offset = fetch_int (); // offset
@@ -1394,8 +1401,10 @@ static int send_file_on_answer (struct query *q UU) {
1394
1401
bl_do_set_pts (pts );
1395
1402
bl_do_msg_seq_update (M -> id );
1396
1403
} else {
1397
- vlogprintf (E_NOTICE , "Hole in seq\n" );
1398
- tgl_do_get_difference (0 , 0 , 0 );
1404
+ if (seq > tgl_state .seq + 1 ) {
1405
+ vlogprintf (E_NOTICE , "Hole in seq\n" );
1406
+ tgl_do_get_difference (0 , 0 , 0 );
1407
+ }
1399
1408
}
1400
1409
1401
1410
if (q -> callback ) {
@@ -1814,8 +1823,10 @@ static int fwd_msg_on_answer (struct query *q UU) {
1814
1823
bl_do_set_pts (pts );
1815
1824
bl_do_msg_seq_update (M -> id );
1816
1825
} else {
1817
- vlogprintf (E_NOTICE , "Hole in seq\n" );
1818
- tgl_do_get_difference (0 , 0 , 0 );
1826
+ if (seq > tgl_state .seq + 1 ) {
1827
+ vlogprintf (E_NOTICE , "Hole in seq\n" );
1828
+ tgl_do_get_difference (0 , 0 , 0 );
1829
+ }
1819
1830
}
1820
1831
//print_message (M);
1821
1832
if (q -> callback ) {
@@ -1952,8 +1963,10 @@ static int rename_chat_on_answer (struct query *q UU) {
1952
1963
bl_do_set_pts (pts );
1953
1964
bl_do_msg_seq_update (M -> id );
1954
1965
} else {
1955
- vlogprintf (E_NOTICE , "Hole in seq\n" );
1956
- tgl_do_get_difference (0 , 0 , 0 );
1966
+ if (seq > tgl_state .seq + 1 ) {
1967
+ vlogprintf (E_NOTICE , "Hole in seq\n" );
1968
+ tgl_do_get_difference (0 , 0 , 0 );
1969
+ }
1957
1970
}
1958
1971
//print_message (M);
1959
1972
if (q -> callback ) {
0 commit comments