diff --git a/src/client/client.h b/src/client/client.h index b828882..0024f52 100644 --- a/src/client/client.h +++ b/src/client/client.h @@ -48,7 +48,7 @@ int frontend_request_modem_reset(struct bankd_client *bc); int frontend_handle_card2modem(struct bankd_client *bc, const uint8_t *data, size_t len); int frontend_handle_set_atr(struct bankd_client *bc, const uint8_t *data, size_t len); int frontend_handle_slot_status(struct bankd_client *bc, const SlotPhysStatus_t *sts); -int frontend_append_script_env(struct bankd_client *bc, char **env, size_t max_env); +int frontend_append_script_env(struct bankd_client *bc, char **env, int idx, size_t max_env); /* main.c */ diff --git a/src/client/main_fsm.c b/src/client/main_fsm.c index 0674f6c..673b19e 100644 --- a/src/client/main_fsm.c +++ b/src/client/main_fsm.c @@ -75,9 +75,9 @@ static char **build_script_env(struct bankd_client *bc, const char *cause) env[i++] = talloc_asprintf(env, "REMSIM_CAUSE=%s", cause); /* ask frontend to append any frontend-speccific additional environment vars */ - rc = frontend_append_script_env(bc, env+i, 256-i); + rc = frontend_append_script_env(bc, env, i, 256-i-1); if (rc > 0) - i += rc; + i = rc; /* terminate last entry */ env[i++] = NULL; diff --git a/src/client/user_ifdhandler.c b/src/client/user_ifdhandler.c index 188d3a6..a690503 100644 --- a/src/client/user_ifdhandler.c +++ b/src/client/user_ifdhandler.c @@ -206,9 +206,9 @@ int frontend_handle_slot_status(struct bankd_client *bc, const SlotPhysStatus_t return 0; } -int frontend_append_script_env(struct bankd_client *bc, char **env, size_t max_env) +int frontend_append_script_env(struct bankd_client *bc, char **env, int idx, size_t max_env) { - return 0; + return idx; } /*********************************************************************** diff --git a/src/client/user_shell.c b/src/client/user_shell.c index 40bcddd..9c804c6 100644 --- a/src/client/user_shell.c +++ b/src/client/user_shell.c @@ -54,9 +54,9 @@ int frontend_handle_slot_status(struct bankd_client *bc, const SlotPhysStatus_t return 0; } -int frontend_append_script_env(struct bankd_client *bc, char **env, size_t max_env) +int frontend_append_script_env(struct bankd_client *bc, char **env, int idx, size_t max_env) { - return 0; + return idx; } diff --git a/src/client/user_simtrace2.c b/src/client/user_simtrace2.c index 5d5bfc1..f84db9d 100644 --- a/src/client/user_simtrace2.c +++ b/src/client/user_simtrace2.c @@ -361,10 +361,9 @@ int frontend_handle_slot_status(struct bankd_client *bc, const SlotPhysStatus_t return 0; } -int frontend_append_script_env(struct bankd_client *bc, char **env, size_t max_env) +int frontend_append_script_env(struct bankd_client *bc, char **env, int i, size_t max_env) { struct osmo_st2_cardem_inst *ci = bc->cardem; - int i = 0; if (max_env < 4) return -ENOSPC;