[PATCH] mobile_app: fix some configuration r/w bugs

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/baseband-devel@lists.osmocom.org/.

Вадим Яницкий axilirator at gmail.com
Sat Jan 2 19:42:33 UTC 2016


Sorry, it was a Copy/Paste style mistake. Fixed.


diff --git a/src/host/layer23/include/osmocom/bb/common/sap_interface.h
b/src/host/layer23/include/osmocom/bb/common/sap_interface.h
index bf19356..e4e64ce 100644
--- a/src/host/layer23/include/osmocom/bb/common/sap_interface.h
+++ b/src/host/layer23/include/osmocom/bb/common/sap_interface.h
@@ -11,6 +11,7 @@ int osmosap_sapsocket(struct osmocom_ms *ms, const char
*path);
 int osmosap_init(struct osmocom_ms *ms);

 enum osmosap_state {
+    SAP_SOCKET_ERROR,
     SAP_NOT_CONNECTED,
     SAP_IDLE,
     SAP_CONNECTION_UNDER_NEGOTIATION,
diff --git a/src/host/layer23/src/common/sap_interface.c
b/src/host/layer23/src/common/sap_interface.c
index a56f4f2..d5e8d1d 100644
--- a/src/host/layer23/src/common/sap_interface.c
+++ b/src/host/layer23/src/common/sap_interface.c
@@ -515,7 +515,7 @@ int sap_open(struct osmocom_ms *ms, const char
*socket_path)
     rc = connect(ms->sap_wq.bfd.fd, (struct sockaddr *) &local,
sizeof(local));
     if (rc < 0) {
         fprintf(stderr, "Failed to connect to '%s'\n", local.sun_path);
-        set->sap_socket_path[0] = 0;
+        ms->sap_entity.sap_state = SAP_SOCKET_ERROR;
         close(ms->sap_wq.bfd.fd);
         return rc;
     }
diff --git a/src/host/layer23/src/common/sim.c
b/src/host/layer23/src/common/sim.c
index 8e8d7bf..df9fbd2 100644
--- a/src/host/layer23/src/common/sim.c
+++ b/src/host/layer23/src/common/sim.c
@@ -188,7 +188,7 @@ static int sim_apdu_send(struct osmocom_ms *ms, uint8_t
*data, uint16_t length)

     /* adding SAP client support
      * it makes more sense to do it here then in L1CTL */
-    if(ms->settings.sap_socket_path[0] == 0) {
+    if(ms->sap_entity.sap_state == SAP_SOCKET_ERROR) {
         LOGP(DSIM, LOGL_INFO, "Using built-in SIM reader\n");
         l1ctl_tx_sim_req(ms, data, length);
     } else {
diff --git a/src/host/layer23/src/mobile/vty_interface.c
b/src/host/layer23/src/mobile/vty_interface.c
index 5782a17..fd0fd0c 100644
--- a/src/host/layer23/src/mobile/vty_interface.c
+++ b/src/host/layer23/src/mobile/vty_interface.c
@@ -1067,7 +1067,7 @@ DEFUN(cfg_no_gps_enable, cfg_no_gps_enable_cmd, "no
gps enable",
 }

 #ifdef _HAVE_GPSD
-DEFUN(cfg_gps_host, cfg_gps_host_cmd, "gps host HOST:PORT",
+DEFUN(cfg_gpsd_host, cfg_gpsd_host_cmd, "gpsd host HOST:PORT",
     "GPS receiver\nSelect gpsd host and port\n"
     "IP and port (optional) of the host running gpsd")
 {
@@ -1075,7 +1075,7 @@ DEFUN(cfg_gps_host, cfg_gps_host_cmd, "gps host
HOST:PORT",
     if (colon != NULL) {
         memcpy(g.gpsd_host, argv[0], colon - argv[0] - 1);
         g.gpsd_host[colon - argv[0]] = '\0';
-        memcpy(g.gpsd_port, colon, strlen(colon));
+        memcpy(g.gpsd_port, colon + 1, strlen(colon));
         g.gpsd_port[strlen(colon)] = '\0';
     } else {
         snprintf(g.gpsd_host, ARRAY_SIZE(g.gpsd_host), "%s", argv[0]);
@@ -1499,8 +1499,7 @@ static int config_write(struct vty *vty)
     struct osmocom_ms *ms;

 #ifdef _HAVE_GPSD
-    vty_out(vty, "gpsd host %s%s", g.gpsd_host, VTY_NEWLINE);
-    vty_out(vty, "gpsd port %s%s", g.gpsd_port, VTY_NEWLINE);
+    vty_out(vty, "gpsd host %s:%s%s", g.gpsd_host, g.gpsd_port,
VTY_NEWLINE);
 #endif
     vty_out(vty, "gps device %s%s", g.device, VTY_NEWLINE);
     if (g.baud)
@@ -2822,7 +2821,7 @@ int ms_vty_init(void)
     install_element(ENABLE_NODE, &delete_forbidden_plmn_cmd);

 #ifdef _HAVE_GPSD
-    install_element(CONFIG_NODE, &cfg_gps_host_cmd);
+    install_element(CONFIG_NODE, &cfg_gpsd_host_cmd);
 #endif
     install_element(CONFIG_NODE, &cfg_gps_device_cmd);
     install_element(CONFIG_NODE, &cfg_gps_baud_cmd);


2016-01-03 1:38 GMT+06:00 Вадим Яницкий <axilirator at gmail.com>:

> Sorry, was a Copy/Paste mistake. Fixed.
>
> diff --git a/src/host/layer23/include/osmocom/bb/common/sap_interface.h
> b/src/host/layer23/include/osmocom/bb/common/sap_interface.h
> index bf19356..e4e64ce 100644
> --- a/src/host/layer23/include/osmocom/bb/common/sap_interface.h
> +++ b/src/host/layer23/include/osmocom/bb/common/sap_interface.h
> @@ -11,6 +11,7 @@ int osmosap_sapsocket(struct osmocom_ms *ms, const char
> *path);
>  int osmosap_init(struct osmocom_ms *ms);
>
>  enum osmosap_state {
> +    SAP_SOCKET_ERROR,
>      SAP_NOT_CONNECTED,
>      SAP_IDLE,
>      SAP_CONNECTION_UNDER_NEGOTIATION,
> diff --git a/src/host/layer23/src/common/sap_interface.c
> b/src/host/layer23/src/common/sap_interface.c
> index a56f4f2..d5e8d1d 100644
> --- a/src/host/layer23/src/common/sap_interface.c
> +++ b/src/host/layer23/src/common/sap_interface.c
> @@ -515,7 +515,7 @@ int sap_open(struct osmocom_ms *ms, const char
> *socket_path)
>      rc = connect(ms->sap_wq.bfd.fd, (struct sockaddr *) &local,
> sizeof(local));
>      if (rc < 0) {
>          fprintf(stderr, "Failed to connect to '%s'\n", local.sun_path);
> -        set->sap_socket_path[0] = 0;
> +        ms->sap_entity.sap_state = SAP_SOCKET_ERROR;
>
>          close(ms->sap_wq.bfd.fd);
>          return rc;
>      }
> diff --git a/src/host/layer23/src/common/sim.c
> b/src/host/layer23/src/common/sim.c
> index 8e8d7bf..df9fbd2 100644
> --- a/src/host/layer23/src/common/sim.c
> +++ b/src/host/layer23/src/common/sim.c
> @@ -188,7 +188,7 @@ static int sim_apdu_send(struct osmocom_ms *ms,
> uint8_t *data, uint16_t length)
>
>      /* adding SAP client support
>       * it makes more sense to do it here then in L1CTL */
> -    if(ms->settings.sap_socket_path[0] == 0) {
> +    if(ms->sap_entity.sap_state == SAP_SOCKET_ERROR) {
>          LOGP(DSIM, LOGL_INFO, "Using built-in SIM reader\n");
>          l1ctl_tx_sim_req(ms, data, length);
>      } else {
> diff --git a/src/host/layer23/src/mobile/vty_interface.c
> b/src/host/layer23/src/mobile/vty_interface.c
> index 5782a17..fd0fd0c 100644
> --- a/src/host/layer23/src/mobile/vty_interface.c
> +++ b/src/host/layer23/src/mobile/vty_interface.c
> @@ -1067,7 +1067,7 @@ DEFUN(cfg_no_gps_enable, cfg_no_gps_enable_cmd, "no
> gps enable",
>  }
>
>  #ifdef _HAVE_GPSD
> -DEFUN(cfg_gps_host, cfg_gps_host_cmd, "gps host HOST:PORT",
> +DEFUN(cfg_gpsd_host, cfg_gpsd_host_cmd, "gpsd host HOST:PORT",
>      "GPS receiver\nSelect gpsd host and port\n"
>      "IP and port (optional) of the host running gpsd")
>  {
> @@ -1075,7 +1075,7 @@ DEFUN(cfg_gps_host, cfg_gps_host_cmd, "gps host
> HOST:PORT",
>      if (colon != NULL) {
>          memcpy(g.gpsd_host, argv[0], colon - argv[0] - 1);
>          g.gpsd_host[colon - argv[0]] = '\0';
> -        memcpy(g.gpsd_port, colon, strlen(colon));
> +        memcpy(g.gpsd_port, colon + 1, strlen(colon));
>          g.gpsd_port[strlen(colon)] = '\0';
>      } else {
>          snprintf(g.gpsd_host, ARRAY_SIZE(g.gpsd_host), "%s", argv[0]);
> @@ -1499,8 +1499,7 @@ static int config_write(struct vty *vty)
>      struct osmocom_ms *ms;
>
>  #ifdef _HAVE_GPSD
> -    vty_out(vty, "gpsd host %s%s", g.gpsd_host, VTY_NEWLINE);
> -    vty_out(vty, "gpsd port %s%s", g.gpsd_port, VTY_NEWLINE);
> +    vty_out(vty, "gpsd host %s:%s%s", g.gpsd_host, g.gpsd_port,
> VTY_NEWLINE);
>  #endif
>      vty_out(vty, "gps device %s%s", g.device, VTY_NEWLINE);
>      if (g.baud)
> @@ -2822,7 +2821,7 @@ int ms_vty_init(void)
>      install_element(ENABLE_NODE, &delete_forbidden_plmn_cmd);
>
>  #ifdef _HAVE_GPSD
> -    install_element(CONFIG_NODE, &cfg_gps_host_cmd);
> +    install_element(CONFIG_NODE, &cfg_gpsd_host_cmd);
>  #endif
>      install_element(CONFIG_NODE, &cfg_gps_device_cmd);
>      install_element(CONFIG_NODE, &cfg_gps_baud_cmd);
>
>
> 2016-01-03 1:19 GMT+06:00 Harald Welte <laforge at gnumonks.org>:
>
>> Hi Vadim,
>>
>> thanks for your patch, but..
>>
>> On Sun, Jan 03, 2016 at 01:14:23AM +0600, Вадим Яницкий wrote:
>> > -        set->sap_socket_path[0] = 0;
>> > +        // set->sap_socket_path[0] = 0;
>> > +        ms->sap_entity.sap_state == SAP_SOCKET_ERROR;
>>
>> a) if you remove code, remove it for good, not just comment it out
>>
>> b) the double-equals will not cause an assignment. I don't think you
>>    tested this code...
>>
>> Regards,
>>         Harald
>> --
>> - Harald Welte <laforge at gnumonks.org>
>> http://laforge.gnumonks.org/
>>
>> ============================================================================
>> "Privacy in residential applications is a desirable marketing option."
>>                                                   (ETSI EN 300 175-7 Ch.
>> A6)
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/baseband-devel/attachments/20160103/4b865bbe/attachment.htm>


More information about the baseband-devel mailing list