Skip to content

Commit

Permalink
doveadm-server: http: Created local variable for conn->client.output …
Browse files Browse the repository at this point in the history
…as an abbreviation.

This is a preparation for subsequent commits.
  • Loading branch information
stephanbosch committed Oct 24, 2017
1 parent f17ff90 commit 4b2c686
Showing 1 changed file with 45 additions and 40 deletions.
85 changes: 45 additions & 40 deletions src/doveadm/client-connection-http.c
Expand Up @@ -191,37 +191,39 @@ doveadm_http_server_request_destroy(struct client_connection_http *conn)
static void doveadm_http_server_json_error(void *context, const char *error)
{
struct client_connection_http *conn = context;
struct ostream *output = conn->client.output;
string_t *escaped;
o_stream_nsend_str(conn->client.output,"[\"error\",{\"type\":\"");
o_stream_nsend_str(output,"[\"error\",{\"type\":\"");
escaped = str_new(conn->client.pool, 10);
json_append_escaped(escaped, error);
o_stream_nsend_str(conn->client.output,str_c(escaped));
o_stream_nsend_str(conn->client.output,"\", \"exitCode\":");
o_stream_nsend_str(output,str_c(escaped));
o_stream_nsend_str(output,"\", \"exitCode\":");
str_truncate(escaped,0);
str_printfa(escaped,"%d", doveadm_exit_code);
o_stream_nsend_str(conn->client.output, str_c(escaped));
o_stream_nsend_str(conn->client.output,"},\"");
o_stream_nsend_str(output, str_c(escaped));
o_stream_nsend_str(output,"},\"");
str_truncate(escaped,0);
if (conn->method_id != NULL) {
json_append_escaped(escaped, conn->method_id);
o_stream_nsend_str(conn->client.output, str_c(escaped));
o_stream_nsend_str(output, str_c(escaped));
}
o_stream_nsend_str(conn->client.output,"\"]");
o_stream_nsend_str(output,"\"]");
}

static void doveadm_http_server_json_success(void *context, struct istream *result)
{
struct client_connection_http *conn = context;
struct ostream *output = conn->client.output;
string_t *escaped;
escaped = str_new(conn->client.pool, 10);
o_stream_nsend_str(conn->client.output,"[\"doveadmResponse\",");
o_stream_nsend_istream(conn->client.output, result);
o_stream_nsend_str(conn->client.output,",\"");
o_stream_nsend_str(output,"[\"doveadmResponse\",");
o_stream_nsend_istream(output, result);
o_stream_nsend_str(output,",\"");
if (conn->method_id != NULL) {
json_append_escaped(escaped, conn->method_id);
o_stream_nsend_str(conn->client.output, str_c(escaped));
o_stream_nsend_str(output, str_c(escaped));
}
o_stream_nsend_str(conn->client.output,"\"]");
o_stream_nsend_str(output,"\"]");
}

static int doveadm_http_server_istream_read(struct client_connection_http *conn)
Expand Down Expand Up @@ -598,58 +600,59 @@ static void doveadm_http_server_camelcase_value(string_t *value)
static void
doveadm_http_server_send_api_v1(struct client_connection_http *conn)
{
struct ostream *output = conn->client.output;
string_t *tmp = str_new(conn->client.pool, 8);
size_t i,k;
const struct doveadm_cmd_ver2 *cmd;
const struct doveadm_cmd_param *par;
bool sent;
o_stream_nsend_str(conn->client.output,"[\n");
o_stream_nsend_str(output,"[\n");
for(i = 0; i < array_count(&doveadm_cmds_ver2); i++) {
cmd = array_idx(&doveadm_cmds_ver2, i);
if (i>0) o_stream_nsend_str(conn->client.output, ",\n");
o_stream_nsend_str(conn->client.output, "\t{\"command\":\"");
if (i>0) o_stream_nsend_str(output, ",\n");
o_stream_nsend_str(output, "\t{\"command\":\"");
json_append_escaped(tmp, cmd->name);
doveadm_http_server_camelcase_value(tmp);
o_stream_nsend_str(conn->client.output, str_c(tmp));
o_stream_nsend_str(conn->client.output, "\", \"parameters\":[");
o_stream_nsend_str(output, str_c(tmp));
o_stream_nsend_str(output, "\", \"parameters\":[");
sent = FALSE;
for(k=0;cmd->parameters[k].name != NULL; k++) {
str_truncate(tmp, 0);
par = &(cmd->parameters[k]);
if ((par->flags & CMD_PARAM_FLAG_DO_NOT_EXPOSE) != 0)
continue;
if (sent)
o_stream_nsend_str(conn->client.output, ",\n");
o_stream_nsend_str(output, ",\n");
else
o_stream_nsend_str(conn->client.output, "\n");
o_stream_nsend_str(output, "\n");
sent = TRUE;
o_stream_nsend_str(conn->client.output, "\t\t{\"name\":\"");
o_stream_nsend_str(output, "\t\t{\"name\":\"");
json_append_escaped(tmp, par->name);
doveadm_http_server_camelcase_value(tmp);
o_stream_nsend_str(conn->client.output, str_c(tmp));
o_stream_nsend_str(conn->client.output, "\",\"type\":\"");
o_stream_nsend_str(output, str_c(tmp));
o_stream_nsend_str(output, "\",\"type\":\"");
switch(par->type) {
case CMD_PARAM_BOOL:
o_stream_nsend_str(conn->client.output, "boolean");
o_stream_nsend_str(output, "boolean");
break;
case CMD_PARAM_INT64:
o_stream_nsend_str(conn->client.output, "integer");
o_stream_nsend_str(output, "integer");
break;
case CMD_PARAM_ARRAY:
o_stream_nsend_str(conn->client.output, "array");
o_stream_nsend_str(output, "array");
break;
case CMD_PARAM_IP:
case CMD_PARAM_ISTREAM:
case CMD_PARAM_STR:
o_stream_nsend_str(conn->client.output, "string");
o_stream_nsend_str(output, "string");
}
o_stream_nsend_str(conn->client.output, "\"}");
o_stream_nsend_str(output, "\"}");
}
if (k>0) o_stream_nsend_str(conn->client.output,"\n\t");
o_stream_nsend_str(conn->client.output,"]}");
if (k>0) o_stream_nsend_str(output,"\n\t");
o_stream_nsend_str(output,"]}");
str_truncate(tmp, 0);
}
o_stream_nsend_str(conn->client.output,"\n]");
o_stream_nsend_str(output,"\n]");
doveadm_http_server_send_response(conn);
}

Expand All @@ -674,23 +677,25 @@ doveadm_http_server_options_handler(struct client_connection_http *conn)
static void
doveadm_http_server_print_mounts(struct client_connection_http *conn)
{
o_stream_nsend_str(conn->client.output,"[\n");
struct ostream *output = conn->client.output;

o_stream_nsend_str(output,"[\n");
for(size_t i = 0; i < N_ELEMENTS(doveadm_http_server_mounts); i++) {
if (i>0)
o_stream_nsend_str(conn->client.output,",\n");
o_stream_nsend_str(conn->client.output,"{\"method\":\"");
o_stream_nsend_str(output,",\n");
o_stream_nsend_str(output,"{\"method\":\"");
if (doveadm_http_server_mounts[i].verb == NULL)
o_stream_nsend_str(conn->client.output,"*");
o_stream_nsend_str(output,"*");
else
o_stream_nsend_str(conn->client.output,doveadm_http_server_mounts[i].verb);
o_stream_nsend_str(conn->client.output,"\",\"path\":\"");
o_stream_nsend_str(output,doveadm_http_server_mounts[i].verb);
o_stream_nsend_str(output,"\",\"path\":\"");
if (doveadm_http_server_mounts[i].path == NULL)
o_stream_nsend_str(conn->client.output,"*");
o_stream_nsend_str(output,"*");
else
o_stream_nsend_str(conn->client.output,doveadm_http_server_mounts[i].path);
o_stream_nsend_str(conn->client.output,"\"}");
o_stream_nsend_str(output,doveadm_http_server_mounts[i].path);
o_stream_nsend_str(output,"\"}");
}
o_stream_nsend_str(conn->client.output,"\n]");
o_stream_nsend_str(output,"\n]");
doveadm_http_server_send_response(conn);
}

Expand Down

0 comments on commit 4b2c686

Please sign in to comment.