From a07f25e3bac0f44e84433c35dca5e491a2df59d2 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Fri, 9 Oct 2020 21:47:01 +0700 Subject: gprs_ns2: make struct osmo_sockaddr pointers const Using the 'const' qualifier allows the compiler to spot some programming errors and further optimize the code. Change-Id: I0df6a00ac1830bd64a10b9336b827e113fa772bb --- include/osmocom/gprs/gprs_ns2.h | 19 ++++++++++--------- src/gb/gprs_ns2.c | 10 +++++----- src/gb/gprs_ns2_frgre.c | 2 +- src/gb/gprs_ns2_internal.h | 4 ++-- src/gb/gprs_ns2_sns.c | 3 ++- src/gb/gprs_ns2_udp.c | 7 ++++--- src/gb/gprs_ns2_vty.c | 3 ++- 7 files changed, 26 insertions(+), 22 deletions(-) diff --git a/include/osmocom/gprs/gprs_ns2.h b/include/osmocom/gprs/gprs_ns2.h index 5cebf278..dc27c96c 100644 --- a/include/osmocom/gprs/gprs_ns2.h +++ b/include/osmocom/gprs/gprs_ns2.h @@ -107,23 +107,23 @@ struct gprs_ns2_vc *gprs_ns2_nsvc_by_nsvci(struct gprs_ns2_inst *nsi, uint16_t n /* IP VL driver */ int gprs_ns2_ip_bind(struct gprs_ns2_inst *nsi, - struct osmo_sockaddr *local, + const struct osmo_sockaddr *local, int dscp, struct gprs_ns2_vc_bind **result); void gprs_ns2_bind_set_mode(struct gprs_ns2_vc_bind *bind, enum gprs_ns2_vc_mode mode); /* create a VC connection */ struct gprs_ns2_vc *gprs_ns2_ip_connect(struct gprs_ns2_vc_bind *bind, - struct osmo_sockaddr *remote, + const struct osmo_sockaddr *remote, struct gprs_ns2_nse *nse, uint16_t nsvci); struct gprs_ns2_vc *gprs_ns2_ip_connect2(struct gprs_ns2_vc_bind *bind, - struct osmo_sockaddr *remote, + const struct osmo_sockaddr *remote, uint16_t nsei, uint16_t nsvci); struct gprs_ns2_vc *gprs_ns2_ip_connect_inactive(struct gprs_ns2_vc_bind *bind, - struct osmo_sockaddr *remote, + const struct osmo_sockaddr *remote, struct gprs_ns2_nse *nse, uint16_t nsvci); @@ -131,7 +131,7 @@ void gprs_ns2_free_bind(struct gprs_ns2_vc_bind *bind); /* create a VC SNS connection */ int gprs_ns2_ip_connect_sns(struct gprs_ns2_vc_bind *bind, - struct osmo_sockaddr *remote, + const struct osmo_sockaddr *remote, uint16_t nsei); struct osmo_sockaddr *gprs_ns2_ip_vc_sockaddr(struct gprs_ns2_vc *nsvc); @@ -140,17 +140,17 @@ int gprs_ns2_is_ip_bind(struct gprs_ns2_vc_bind *bind); int gprs_ns2_ip_bind_set_dscp(struct gprs_ns2_vc_bind *bind, int dscp); struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_bind( struct gprs_ns2_vc_bind *bind, - struct osmo_sockaddr *saddr); + const struct osmo_sockaddr *saddr); int gprs_ns2_frgre_bind(struct gprs_ns2_inst *nsi, - struct osmo_sockaddr *local, + const struct osmo_sockaddr *local, int dscp, struct gprs_ns2_vc_bind **result); int gprs_ns2_is_frgre_bind(struct gprs_ns2_vc_bind *bind); struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_nse( struct gprs_ns2_nse *nse, - struct osmo_sockaddr *sockaddr); + const struct osmo_sockaddr *sockaddr); void gprs_ns2_start_alive_all_nsvcs(struct gprs_ns2_nse *nse); const char *gprs_ns2_cause_str(int cause); const char *gprs_ns2_ll_str(struct gprs_ns2_vc *nsvc); @@ -158,7 +158,8 @@ char *gprs_ns2_ll_str_buf(char *buf, size_t buf_len, struct gprs_ns2_vc *nsvc); char *gprs_ns2_ll_str_c(const void *ctx, struct gprs_ns2_vc *nsvc); /* vty */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, struct osmo_sockaddr_str *default_bind); +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, + const struct osmo_sockaddr_str *default_bind); int gprs_ns2_vty_create(); void gprs_ns2_vty_force_vc_mode(bool force, enum gprs_ns2_vc_mode mode, const char *reason); diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index b82fd0d4..86813f35 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -729,7 +729,7 @@ enum gprs_ns2_cs ns2_create_vc(struct gprs_ns2_vc_bind *bind, * \param[in] nsvci is only required when bind->vc_mode == NS2_VC_MODE_BLOCKRESET * \return pointer to newly-allocated, connected and inactive NS-VC; NULL on error */ struct gprs_ns2_vc *gprs_ns2_ip_connect_inactive(struct gprs_ns2_vc_bind *bind, - struct osmo_sockaddr *remote, + const struct osmo_sockaddr *remote, struct gprs_ns2_nse *nse, uint16_t nsvci) { @@ -754,7 +754,7 @@ struct gprs_ns2_vc *gprs_ns2_ip_connect_inactive(struct gprs_ns2_vc_bind *bind, * \param[in] nsvci is only required when bind->vc_mode == NS2_VC_MODE_BLOCKRESET * \return pointer to newly-allocated, connected and activated NS-VC; NULL on error */ struct gprs_ns2_vc *gprs_ns2_ip_connect(struct gprs_ns2_vc_bind *bind, - struct osmo_sockaddr *remote, + const struct osmo_sockaddr *remote, struct gprs_ns2_nse *nse, uint16_t nsvci) { @@ -775,7 +775,7 @@ struct gprs_ns2_vc *gprs_ns2_ip_connect(struct gprs_ns2_vc_bind *bind, * \param[in] nsvci is only required when bind->vc_mode == NS2_VC_MODE_BLOCKRESET * \return pointer to newly-allocated, connected and activated NS-VC; NULL on error */ struct gprs_ns2_vc *gprs_ns2_ip_connect2(struct gprs_ns2_vc_bind *bind, - struct osmo_sockaddr *remote, + const struct osmo_sockaddr *remote, uint16_t nsei, uint16_t nsvci) { @@ -796,7 +796,7 @@ struct gprs_ns2_vc *gprs_ns2_ip_connect2(struct gprs_ns2_vc_bind *bind, * \param[in] nsei NSEI of the NS Entity in which the NS-VC is to be created * \return 0 on success; negative on error */ int gprs_ns2_ip_connect_sns(struct gprs_ns2_vc_bind *bind, - struct osmo_sockaddr *remote, + const struct osmo_sockaddr *remote, uint16_t nsei) { struct gprs_ns2_nse *nse = gprs_ns2_nse_by_nsei(bind->nsi, nsei); @@ -826,7 +826,7 @@ int gprs_ns2_ip_connect_sns(struct gprs_ns2_vc_bind *bind, * \param[in] sockaddr socket address to search for * \return NS-VC matching sockaddr; NULL if none found */ struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_nse(struct gprs_ns2_nse *nse, - struct osmo_sockaddr *sockaddr) + const struct osmo_sockaddr *sockaddr) { struct gprs_ns2_vc *nsvc; struct osmo_sockaddr *remote; diff --git a/src/gb/gprs_ns2_frgre.c b/src/gb/gprs_ns2_frgre.c index e0797b68..cd478d6e 100644 --- a/src/gb/gprs_ns2_frgre.c +++ b/src/gb/gprs_ns2_frgre.c @@ -538,7 +538,7 @@ int gprs_ns2_is_frgre_bind(struct gprs_ns2_vc_bind *bind) * \param[out] result pointer to created bind * \return 0 on success; negative on error */ int gprs_ns2_frgre_bind(struct gprs_ns2_inst *nsi, - struct osmo_sockaddr *local, + const struct osmo_sockaddr *local, int dscp, struct gprs_ns2_vc_bind **result) { diff --git a/src/gb/gprs_ns2_internal.h b/src/gb/gprs_ns2_internal.h index f5d9ed52..b480391c 100644 --- a/src/gb/gprs_ns2_internal.h +++ b/src/gb/gprs_ns2_internal.h @@ -271,14 +271,14 @@ int ns2_tx_status(struct gprs_ns2_vc *nsvc, uint8_t cause, /* driver */ struct gprs_ns2_vc *gprs_ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_nse *nse, - struct osmo_sockaddr *remote); + const struct osmo_sockaddr *remote); /* sns */ int gprs_ns2_sns_rx(struct gprs_ns2_vc *nsvc, struct msgb *msg, struct tlv_parsed *tp); struct osmo_fsm_inst *ns2_sns_bss_fsm_alloc(struct gprs_ns2_nse *nse, const char *id); int ns2_sns_bss_fsm_start(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, - struct osmo_sockaddr *remote); + const struct osmo_sockaddr *remote); void ns2_sns_free_nsvc(struct gprs_ns2_vc *nsvc); /* vc */ diff --git a/src/gb/gprs_ns2_sns.c b/src/gb/gprs_ns2_sns.c index 9ffb1525..ec6f31f9 100644 --- a/src/gb/gprs_ns2_sns.c +++ b/src/gb/gprs_ns2_sns.c @@ -1230,7 +1230,8 @@ err: * \param[in] nsvc Initial NS-VC * \param[in] remote remote (SGSN) address * \returns 0 on success; negative on error */ -int ns2_sns_bss_fsm_start(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, struct osmo_sockaddr *remote) +int ns2_sns_bss_fsm_start(struct gprs_ns2_nse *nse, struct gprs_ns2_vc *nsvc, + const struct osmo_sockaddr *remote) { struct osmo_fsm_inst *fi = nse->bss_sns_fi; struct ns2_sns_state *gss = (struct ns2_sns_state *) nse->bss_sns_fi->priv; diff --git a/src/gb/gprs_ns2_udp.c b/src/gb/gprs_ns2_udp.c index 207febf7..815e5168 100644 --- a/src/gb/gprs_ns2_udp.c +++ b/src/gb/gprs_ns2_udp.c @@ -110,7 +110,8 @@ static void dump_vty(const struct gprs_ns2_vc_bind *bind, * \param[in] bind in which to search * \param[in] saddr remote peer socket adddress to search * \returns NS-VC matching sockaddr; NULL if none found */ -struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_bind(struct gprs_ns2_vc_bind *bind, struct osmo_sockaddr *saddr) +struct gprs_ns2_vc *gprs_ns2_nsvc_by_sockaddr_bind(struct gprs_ns2_vc_bind *bind, + const struct osmo_sockaddr *saddr) { struct gprs_ns2_vc *nsvc; struct priv_vc *vcpriv; @@ -271,7 +272,7 @@ static int nsip_fd_cb(struct osmo_fd *bfd, unsigned int what) * \param[out] result if set, returns the bind object * \return 0 on success; negative in case of error */ int gprs_ns2_ip_bind(struct gprs_ns2_inst *nsi, - struct osmo_sockaddr *local, + const struct osmo_sockaddr *local, int dscp, struct gprs_ns2_vc_bind **result) { @@ -339,7 +340,7 @@ int gprs_ns2_ip_bind(struct gprs_ns2_inst *nsi, * \return pointer to newly-allocated and connected NS-VC; NULL on error */ struct gprs_ns2_vc *gprs_ns2_ip_bind_connect(struct gprs_ns2_vc_bind *bind, struct gprs_ns2_nse *nse, - struct osmo_sockaddr *remote) + const struct osmo_sockaddr *remote) { struct gprs_ns2_vc *nsvc; struct priv_vc *priv; diff --git a/src/gb/gprs_ns2_vty.c b/src/gb/gprs_ns2_vty.c index c6c4b028..55e87ae1 100644 --- a/src/gb/gprs_ns2_vty.c +++ b/src/gb/gprs_ns2_vty.c @@ -707,7 +707,8 @@ DEFUN(logging_fltr_nsvc, * \param[in] default_bind set the default address to bind to. Can be NULL. * \return 0 on success */ -int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, struct osmo_sockaddr_str *default_bind) +int gprs_ns2_vty_init(struct gprs_ns2_inst *nsi, + const struct osmo_sockaddr_str *default_bind) { static bool vty_elements_installed = false; -- cgit v1.2.3