This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-remsim/+/17186 ) Change subject: server: Send ConfigClientBankReq with bankd_port==0 on map delete ...................................................................... server: Send ConfigClientBankReq with bankd_port==0 on map delete If a slotmap is deleted via the REST API, don't only remove it from the bankd, but also remove it from the client. Change-Id: Ia2fc2a098471add56cb35e74639417d865704989 Closes: OS#4399 --- M src/server/rspro_server.c 1 file changed, 20 insertions(+), 13 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-remsim refs/changes/86/17186/1 diff --git a/src/server/rspro_server.c b/src/server/rspro_server.c index 723aac8..b35800f 100644 --- a/src/server/rspro_server.c +++ b/src/server/rspro_server.c @@ -250,20 +250,25 @@ /* if caller didn't provide bankd_conn, resolve it from map */ if (!bankd_conn) bankd_conn = bankd_conn_by_id(srv, map->bank.bank_id); - if (!bankd_conn) - return; - - /* obtain IP and port of bankd */ - rc = osmo_sock_get_ip_and_port(bankd_conn->peer->ofd.fd, ip_str, sizeof(ip_str), - port_str, sizeof(port_str), false); - if (rc < 0) { - LOGPFSM(bankd_conn->fi, "Error during getpeername\n"); - return; + if (map->state == SLMAP_S_DELETING || !bankd_conn) { + bankd_ip = 0; + bankd_port = 0; + } else { + /* obtain IP and port of bankd */ + rc = osmo_sock_get_ip_and_port(bankd_conn->peer->ofd.fd, ip_str, sizeof(ip_str), + port_str, sizeof(port_str), false); + if (rc < 0) { + LOGPFSM(bankd_conn->fi, "Error during getpeername\n"); + return; + } + bankd_ip = ntohl(inet_addr(ip_str)); + bankd_port = 9999; /* TODO: configurable */ } - bankd_ip = ntohl(inet_addr(ip_str)); - bankd_port = 9999; /* TODO: configurable */ + + /* determine if IP/port of bankd have changed */ if (conn->client.bankd.port != bankd_port || conn->client.bankd.ip != bankd_ip) { - LOGPFSM(conn->fi, "Bankd IP/Port changed to %s:%s\n", ip_str, port_str); + struct in_addr ia = { .s_addr = bankd_ip }; + LOGPFSM(conn->fi, "Bankd IP/Port changed to %s:%u\n", inet_ntoa(ia), bankd_port); conn->client.bankd.ip = bankd_ip; conn->client.bankd.port = bankd_port; changed = true; @@ -371,9 +376,11 @@ break; } slotmaps_unlock(slotmaps); + /* update client! */ + OSMO_ASSERT(map->state == SLMAP_S_DELETING); + _update_client_for_slotmap(map, conn->srv, conn); /* slotmap_del() will remove it from both global and bank list */ slotmap_del(map->maps, map); - /* FIXME: update client! */ break; case CLNTC_E_PUSH: /* check if any create or delete requests are pending */ slotmaps_wrlock(slotmaps); -- To view, visit https://gerrit.osmocom.org/c/osmo-remsim/+/17186 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-remsim Gerrit-Branch: master Gerrit-Change-Id: Ia2fc2a098471add56cb35e74639417d865704989 Gerrit-Change-Number: 17186 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200216/ee93df32/attachment.htm>