mirror of https://git.48k.eu/ogserver
src: place last client command information in struct
just a preparation, no functional changes are intended.master
parent
2febb50a92
commit
16cc22df3e
22
src/client.c
22
src/client.c
|
@ -1332,7 +1332,7 @@ static int og_clear_image_placeholder()
|
|||
|
||||
int og_agent_state_process_response(struct og_client *cli)
|
||||
{
|
||||
enum og_cmd_type cmd_type = cli->last_cmd;
|
||||
enum og_cmd_type cmd_type = cli->last_cmd.type;
|
||||
int ret, err = -1, code;
|
||||
json_error_t json_err;
|
||||
bool success;
|
||||
|
@ -1359,7 +1359,7 @@ int og_agent_state_process_response(struct og_client *cli)
|
|||
case 500:
|
||||
ret = 0;
|
||||
success = false;
|
||||
cli->last_cmd = OG_CMD_UNSPEC;
|
||||
cli->last_cmd.type = OG_CMD_UNSPEC;
|
||||
syslog(LOG_ERR, "Client %s:%hu reports failure to process command\n",
|
||||
inet_ntoa(cli->addr.sin_addr), ntohs(cli->addr.sin_port));
|
||||
/* ... cancel pending actions related to this task for this client here */
|
||||
|
@ -1379,21 +1379,21 @@ int og_agent_state_process_response(struct og_client *cli)
|
|||
}
|
||||
|
||||
if (success)
|
||||
cli->last_cmd_result = OG_SUCCESS;
|
||||
cli->last_cmd.result = OG_SUCCESS;
|
||||
else
|
||||
cli->last_cmd_result = OG_FAILURE;
|
||||
cli->last_cmd.result = OG_FAILURE;
|
||||
|
||||
if (!success && cmd_type == OG_CMD_IMAGE_CREATE)
|
||||
og_clear_image_placeholder();
|
||||
|
||||
if (code != 200 && code != 103) {
|
||||
cli->last_cmd_id = 0;
|
||||
cli->last_cmd.id = 0;
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!cli->content_length) {
|
||||
cli->last_cmd_id = 0;
|
||||
cli->last_cmd = OG_CMD_UNSPEC;
|
||||
cli->last_cmd.id = 0;
|
||||
cli->last_cmd.type = OG_CMD_UNSPEC;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1412,7 +1412,7 @@ int og_agent_state_process_response(struct og_client *cli)
|
|||
return err;
|
||||
}
|
||||
|
||||
switch (cli->last_cmd) {
|
||||
switch (cli->last_cmd.type) {
|
||||
case OG_CMD_SHELL_RUN:
|
||||
err = og_resp_shell_run(cli, root);
|
||||
break;
|
||||
|
@ -1452,12 +1452,12 @@ int og_agent_state_process_response(struct og_client *cli)
|
|||
if (err < 0) {
|
||||
err = 0;
|
||||
success = false;
|
||||
cli->last_cmd_result = OG_FAILURE;
|
||||
cli->last_cmd.result = OG_FAILURE;
|
||||
/* ... cancel pending actions related to this task for this client here */
|
||||
}
|
||||
|
||||
cli->last_cmd_id = 0;
|
||||
cli->last_cmd = OG_CMD_UNSPEC;
|
||||
cli->last_cmd.id = 0;
|
||||
cli->last_cmd.type = OG_CMD_UNSPEC;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
|
|
@ -122,7 +122,7 @@ static struct og_client *og_client_find(const char *ip)
|
|||
|
||||
static const char *og_client_status(const struct og_client *cli)
|
||||
{
|
||||
switch (cli->last_cmd) {
|
||||
switch (cli->last_cmd.type) {
|
||||
case OG_CMD_UNSPEC:
|
||||
break;
|
||||
default:
|
||||
|
@ -244,7 +244,7 @@ static bool og_client_is_busy(const struct og_client *cli,
|
|||
case OG_CMD_STOP:
|
||||
break;
|
||||
default:
|
||||
if (cli->last_cmd != OG_CMD_UNSPEC)
|
||||
if (cli->last_cmd.type != OG_CMD_UNSPEC)
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
|
@ -319,7 +319,7 @@ int og_send_request(enum og_rest_method method, enum og_cmd_type type,
|
|||
if (send(client_sd, buf, strlen(buf), 0) < 0)
|
||||
continue;
|
||||
|
||||
cli->last_cmd = type;
|
||||
cli->last_cmd.type = type;
|
||||
}
|
||||
|
||||
json_decref((json_t *)data);
|
||||
|
@ -396,7 +396,7 @@ static int og_json_client_append(json_t *array, struct og_client *client)
|
|||
}
|
||||
json_object_set_new(object, "state", state);
|
||||
json_object_set_new(object, "speed", json_integer(client->speed));
|
||||
last_cmd = og_json_client_cmd_result(client->last_cmd_result);
|
||||
last_cmd = og_json_client_cmd_result(client->last_cmd.result);
|
||||
json_object_set_new(object, "last_cmd", last_cmd);
|
||||
json_array_append_new(array, object);
|
||||
|
||||
|
|
|
@ -66,9 +66,11 @@ struct og_client {
|
|||
int content_length;
|
||||
char auth_token[64];
|
||||
enum og_client_status status;
|
||||
enum og_cmd_type last_cmd;
|
||||
unsigned int last_cmd_id;
|
||||
enum og_cmd_result last_cmd_result;
|
||||
struct {
|
||||
enum og_cmd_type type;
|
||||
unsigned int id;
|
||||
enum og_cmd_result result;
|
||||
} last_cmd;
|
||||
uint32_t speed;
|
||||
uint32_t seq;
|
||||
struct {
|
||||
|
|
Loading…
Reference in New Issue