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