Skip to content

Commit d85d0b5

Browse files
committed
dialog: do not update advertised contacts on dlg update
When replicating a dialog update, we shall not update the advertised contacts, as we don't have all the needed information. If we do, we break the re-homing scenario that uses different advertises for different instances. Bug introduced in 52e6c42
1 parent 4ac1ad5 commit d85d0b5

File tree

1 file changed

+8
-5
lines changed

1 file changed

+8
-5
lines changed

modules/dialog/dlg_replication.c

+8-5
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,7 @@ int dlg_replicated_update(bin_packet_t *packet)
369369
bin_skip_int(packet, 2);
370370
bin_pop_int(packet, &dlg->state);
371371

372+
/* sockets */
372373
bin_skip_str(packet, 2);
373374

374375
bin_pop_str(packet, &st);
@@ -405,11 +406,13 @@ int dlg_replicated_update(bin_packet_t *packet)
405406
bin_pop_str(packet, &st);
406407
shm_str_sync(&dlg->legs[callee_idx(dlg)].out_sdp, &st);
407408

408-
/* sync advertised caller and callee contacts */
409-
bin_pop_str(packet, &st);
410-
shm_str_sync(&dlg->legs[DLG_CALLER_LEG].adv_contact, &st);
411-
bin_pop_str(packet, &st);
412-
shm_str_sync(&dlg->legs[callee_idx(dlg)].adv_contact, &st);
409+
/*
410+
* advertised caller and callee contacts
411+
* we shall skip these, as we're currently not re-learning sockets either,
412+
* so we can't figure out the advertised contact to be used by this
413+
* instance, in case it is different than the other one
414+
*/
415+
bin_skip_str(packet, 2);
413416

414417
bin_pop_str(packet, &vars);
415418
bin_pop_str(packet, &profiles);

0 commit comments

Comments
 (0)