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 | 44 ++++++++++++++++++++++----------------------
 tools/ipc-modem.h |  1 +
 2 files changed, 23 insertions(+), 22 deletions(-)

diff --git a/tools/ipc-modem.c b/tools/ipc-modem.c
index febc7f9..5b3cf4c 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 call_number[14];
 char sim_pin[8];
 
 int seq_get(void)
@@ -360,7 +359,7 @@ void modem_response_pwr(__attribute__((unused)) struct 
ipc_client *client,
        }
 }
 
-void modem_response_net(__attribute__((unused)) struct ipc_client *client,
+void modem_response_net(struct ipc_modem_data *data,
                        struct ipc_message *resp)
 {
        struct ipc_net_regist_response_data *regi;
@@ -371,57 +370,58 @@ void modem_response_net(__attribute__((unused)) struct 
ipc_client *client,
                regi = (struct ipc_net_regist_response_data *) resp->data;
                if (regi->status == IPC_NET_REGISTRATION_STATUS_HOME)
                        ipc_modem_log(
-                               client,
+                               data->client,
                                MODEM_LOG_INFO,
                                "Registered with network successfully!\n");
                break;
        case IPC_NET_SERVING_NETWORK:
                memcpy(mnc, (char *)((char *) resp->data + 3), 5);
                mnc[5] = 0;
-               ipc_modem_log(client,
+               ipc_modem_log(data->client,
                              "6",
                              "Registered with network! "
                              "Got PLMN (Mobile Network Code): '%s'\n",
                              mnc);
                if (call_done == 0) {
-                       ipc_modem_log(client,
+                       ipc_modem_log(data->client,
                                      MODEM_LOG_INFO,
                                      "Requesting outgoing call to %s!\n",
-                                     call_number);
-                       modem_exec_call_out(client, call_number);
+                                     data->call_number);
+                       modem_exec_call_out(data->client, data->call_number);
                }
                call_done = 1;
                break;
        }
 }
 
-void modem_response_handle(struct ipc_client *client, struct ipc_message *resp)
+void modem_response_handle(struct ipc_modem_data *data,
+                          struct ipc_message *resp)
 {
        switch (IPC_GROUP(resp->command)) {
        case IPC_GROUP_NET:
-               modem_response_net(client, resp);
+               modem_response_net(data, resp);
                break;
        case IPC_GROUP_PWR:
-               modem_response_pwr(client, resp);
+               modem_response_pwr(data->client, resp);
                break;
        case IPC_GROUP_SEC:
-               modem_response_sec(client, resp);
+               modem_response_sec(data->client, resp);
                break;
        case IPC_GROUP_SMS:
-               modem_response_sms(client, resp);
+               modem_response_sms(data->client, resp);
                break;
        case IPC_GROUP_CALL:
-               modem_response_call(client, resp);
+               modem_response_call(data->client, resp);
                break;
        case IPC_GROUP_DISP:
                if (in_call)
-                       modem_snd_no_mic_mute(client);
+                       modem_snd_no_mic_mute(data->client);
                break;
        }
 }
 
 
-int modem_read_loop(struct ipc_client *client)
+int modem_read_loop(struct ipc_modem_data *data)
 {
        struct ipc_message resp;
        int rc;
@@ -431,21 +431,21 @@ int modem_read_loop(struct ipc_client *client)
        while (1) {
                usleep(3000);
 
-               rc = ipc_client_poll(client, NULL, NULL);
+               rc = ipc_client_poll(data->client, NULL, NULL);
                if (rc < 0)
                        continue;
 
-               rc = ipc_client_recv(client, &resp);
+               rc = ipc_client_recv(data->client, &resp);
                if (rc < 0) {
                        ipc_modem_log(
-                               client,
+                               data->client,
                                MODEM_LOG_ERROR,
                                "Can't RECV from modem: please run this again"
                               "\n");
                        break;
                }
 
-               modem_response_handle(client, &resp);
+               modem_response_handle(data, &resp);
 
                if (resp.data != NULL)
                        free(resp.data);
@@ -625,7 +625,7 @@ int handle_command(struct ipc_modem_data *data)
                ipc_modem_log(data->client,
                              "1",
                              "Starting modem_read_loop on FMT client\n");
-               modem_read_loop(data->client);
+               modem_read_loop(data);
 
                modem_stop(data->client);
                break;
@@ -687,9 +687,9 @@ int main(int argc, char *argv[])
                        if (optarg) {
                                if (strlen(optarg) < 14) {
                                        assert(strlen(optarg) <
-                                              sizeof(call_number));
+                                              sizeof(data.call_number));
                                        printf("[I] Got call number!\n");
-                                       strcpy(call_number, optarg);
+                                       strcpy(data.call_number, optarg);
                                } else {
                                        printf("[E] "
                                               "Call number is too long!\n");
diff --git a/tools/ipc-modem.h b/tools/ipc-modem.h
index ec8e78c..e74b93a 100644
--- a/tools/ipc-modem.h
+++ b/tools/ipc-modem.h
@@ -44,6 +44,7 @@ enum log_target {
 
 struct ipc_modem_data {
        struct ipc_client *client;
+       char call_number[14];
        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