<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-remsim/+/16478">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bankd: createMapping should implicitly delete existing mappings<br><br>As explained in OS#4278, a remsim-bankd currently doesn't recover after<br>a remsim-server resetart, since old mappings remain in the bankd, and<br>the server has no chance of removing them.<br><br>To avoid this problem, a createMapping now always implicitly removes<br>any existing mapping that may exist for the given bankdSlot.<br><br>Change-Id: I83e319d22896b881c0d882542842f500075aa546<br>Closes: OS#4278<br>---<br>M src/bankd/bankd_main.c<br>1 file changed, 12 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/78/16478/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/bankd/bankd_main.c b/src/bankd/bankd_main.c</span><br><span>index 7851a2b..530ecf2 100644</span><br><span>--- a/src/bankd/bankd_main.c</span><br><span>+++ b/src/bankd/bankd_main.c</span><br><span>@@ -176,6 +176,18 @@</span><br><span>               } else {</span><br><span>                     rspro2bank_slot(&bs, &creq->bank);</span><br><span>                        rspro2client_slot(&cs, &creq->client);</span><br><span style="color: hsl(120, 100%, 40%);">+                     /* check if map exists */</span><br><span style="color: hsl(120, 100%, 40%);">+                     map = slotmap_by_bank(g_bankd->slotmaps, &bs);</span><br><span style="color: hsl(120, 100%, 40%);">+                 if (map) {</span><br><span style="color: hsl(120, 100%, 40%);">+                            if (client_slot_equals(&map->client, &cs)) {</span><br><span style="color: hsl(120, 100%, 40%);">+                                       LOGPFSML(srvc->fi, LOGL_ERROR, "ignoring identical slotmap\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                                  resp = rspro_gen_CreateMappingRes(ResultCode_ok);</span><br><span style="color: hsl(120, 100%, 40%);">+                                     break;</span><br><span style="color: hsl(120, 100%, 40%);">+                                } else {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      LOGPFSM(srvc->fi, "implicitly removing slotmap\n");</span><br><span style="color: hsl(120, 100%, 40%);">+                                      bankd_srvc_remove_mapping(map);</span><br><span style="color: hsl(120, 100%, 40%);">+                               }</span><br><span style="color: hsl(120, 100%, 40%);">+                     }</span><br><span>                    /* Add a new mapping */</span><br><span>                      map = slotmap_add(g_bankd->slotmaps, &bs, &cs);</span><br><span>                   if (!map) {</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-remsim/+/16478">change 16478</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-remsim/+/16478"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-remsim </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: I83e319d22896b881c0d882542842f500075aa546 </div>
<div style="display:none"> Gerrit-Change-Number: 16478 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@osmocom.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>