Since we now have a private struct for all the data we need, we don't
need to use global variables anymore.

Signed-off-by: Denis 'GNUtoo' Carikli <gnu...@cyberdimension.org>
---
 tools/ipc-modem.c | 34 +++++++++++++++++-----------------
 tools/ipc-modem.h |  1 +
 2 files changed, 18 insertions(+), 17 deletions(-)

diff --git a/tools/ipc-modem.c b/tools/ipc-modem.c
index 5b3cf4c..efc6bfc 100644
--- a/tools/ipc-modem.c
+++ b/tools/ipc-modem.c
@@ -49,7 +49,6 @@ int in_call;
 int out_call;
 int call_done;
 
-char sim_pin[8];
 
 int seq_get(void)
 {
@@ -167,7 +166,7 @@ void modem_set_sec_pin_status(struct ipc_client *client, 
char *pin1, char *pin2)
                        (void *) &pin_status, sizeof(pin_status));
 }
 
-void modem_response_sec(struct ipc_client *client, struct ipc_message *resp)
+void modem_response_sec(struct ipc_modem_data *data, struct ipc_message *resp)
 {
        struct ipc_sec_pin_status_response_data *sim_status;
        unsigned char type;
@@ -179,49 +178,50 @@ void modem_response_sec(struct ipc_client *client, struct 
ipc_message *resp)
 
                switch (sim_status->status) {
                case IPC_SEC_PIN_STATUS_CARD_NOT_PRESENT:
-                       ipc_modem_log(client, MODEM_LOG_INFO,
+                       ipc_modem_log(data->client, MODEM_LOG_INFO,
                                      "SIM card is definitely absent\n");
                        break;
                case IPC_SEC_PIN_STATUS_LOCK_SC:
                        switch (sim_status->facility_lock) {
                        case IPC_SEC_FACILITY_LOCK_TYPE_SC_PIN1_REQ:
                                ipc_modem_log(
-                                       client,
+                                       data->client,
                                        MODEM_LOG_INFO,
                                        "We need the PIN1 to unlock the card!"
                                        "\n");
-                               if (strlen(sim_pin) > 0) {
-                                       modem_set_sec_pin_status(client,
-                                                                sim_pin, NULL);
+                               if (strlen(data->sim_pin) > 0) {
+                                       modem_set_sec_pin_status(data->client,
+                                                                data->sim_pin,
+                                                                NULL);
                                } else {
                                        ipc_modem_log(
-                                               client,
+                                               data->client,
                                                MODEM_LOG_ERROR,
                                                "No SIM Pin, use --pin\n");
                                }
                                break;
                        case IPC_SEC_FACILITY_LOCK_TYPE_SC_PUK_REQ:
                                ipc_modem_log(
-                                       client,
+                                       data->client,
                                        MODEM_LOG_INFO,
                                        "Please provide the SIM card PUK!"
                                        "\n");
                                break;
                        case IPC_SEC_FACILITY_LOCK_TYPE_SC_CARD_BLOCKED:
                                ipc_modem_log(
-                                       client,
+                                       data->client,
                                        MODEM_LOG_INFO,
                                        "Ouch, the SIM Card is blocked.\n");
                                break;
                        }
                        break;
                case IPC_SEC_PIN_STATUS_INIT_COMPLETE:
-                       ipc_modem_log(client, "3", "SIM init complete\n");
+                       ipc_modem_log(data->client, "3", "SIM init complete\n");
                        if (state == MODEM_STATE_NORMAL)
                                state = MODEM_STATE_SIM_OK;
                        break;
                case IPC_SEC_PIN_STATUS_PB_INIT_COMPLETE:
-                       ipc_modem_log(client,
+                       ipc_modem_log(data->client,
                                      MODEM_LOG_INFO,
                                      "SIM Phone Book init complete\n");
                        break;
@@ -232,13 +232,13 @@ void modem_response_sec(struct ipc_client *client, struct 
ipc_message *resp)
                switch (type) {
                case IPC_SEC_SIM_CARD_TYPE_UNKNOWN:
                        ipc_modem_log(
-                               client,
+                               data->client,
                                MODEM_LOG_INFO,
                                "No SIM card type: unknown (absent?)\n");
                        break;
                case IPC_SEC_SIM_CARD_TYPE_SIM:
                case IPC_SEC_SIM_CARD_TYPE_USIM:
-                       ipc_modem_log(client,
+                       ipc_modem_log(data->client,
                                      MODEM_LOG_INFO, "SIM card found\n");
                        break;
                }
@@ -405,7 +405,7 @@ void modem_response_handle(struct ipc_modem_data *data,
                modem_response_pwr(data->client, resp);
                break;
        case IPC_GROUP_SEC:
-               modem_response_sec(data->client, resp);
+               modem_response_sec(data, resp);
                break;
        case IPC_GROUP_SMS:
                modem_response_sms(data->client, resp);
@@ -714,10 +714,10 @@ int main(int argc, char *argv[])
                           (optarg)) {
                        if (strlen(optarg) < 8) {
                                assert(strlen(optarg) <
-                                      sizeof(sim_pin));
+                                      sizeof(data.sim_pin));
 
                                printf("[I] Got SIM PIN!\n");
-                               strcpy(sim_pin, optarg);
+                               strcpy(data.sim_pin, optarg);
                        } else {
                                printf("[E] SIM PIN is too long!\n");
                                return 1;
diff --git a/tools/ipc-modem.h b/tools/ipc-modem.h
index e74b93a..dc8855f 100644
--- a/tools/ipc-modem.h
+++ b/tools/ipc-modem.h
@@ -45,6 +45,7 @@ enum log_target {
 struct ipc_modem_data {
        struct ipc_client *client;
        char call_number[14];
+       char sim_pin[8];
        enum command command;
        bool debug;
        bool dry_run;
-- 
2.35.1

_______________________________________________
Replicant mailing list
Replicant@osuosl.org
https://lists.osuosl.org/mailman/listinfo/replicant

Reply via email to