Skip to content

Commit

Permalink
lib-master: ipc-client: Split code to ipc_client_abort_commands()
Browse files Browse the repository at this point in the history
  • Loading branch information
sirainen committed Jul 9, 2018
1 parent 435f054 commit a5818b2
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions src/lib-master/ipc-client.c
Expand Up @@ -101,21 +101,26 @@ static int ipc_client_connect(struct ipc_client *client)
return 0;
}

static void ipc_client_disconnect(struct ipc_client *client)
static void ipc_client_abort_commands(struct ipc_client *client,
const char *reason)
{
struct ipc_client_cmd *cmd, *next;

if (client->fd == -1)
return;

cmd = client->cmds_head;
client->cmds_head = client->cmds_tail = NULL;
for (; cmd != NULL; cmd = next) {
cmd->callback(IPC_CLIENT_CMD_STATE_ERROR,
"Disconnected", cmd->context);
cmd->callback(IPC_CLIENT_CMD_STATE_ERROR, reason, cmd->context);
next = cmd->next;
i_free(cmd);
}
}

static void ipc_client_disconnect(struct ipc_client *client)
{
if (client->fd == -1)
return;

ipc_client_abort_commands(client, "Disconnected");

io_remove(&client->io);
i_stream_destroy(&client->input);
Expand Down

0 comments on commit a5818b2

Please sign in to comment.