|
|
|
@ -371,7 +371,7 @@ static int process_ssi_stmt(server *srv, connection *con, handler_ctx *p, const
|
|
|
|
|
case SSI_ECHO_USER_NAME: { |
|
|
|
|
struct passwd *pw; |
|
|
|
|
|
|
|
|
|
b = buffer_init(); |
|
|
|
|
b = srv->tmp_buf; |
|
|
|
|
#ifdef HAVE_PWD_H |
|
|
|
|
if (NULL == (pw = getpwuid(st->st_uid))) { |
|
|
|
|
buffer_copy_int(b, st->st_uid); |
|
|
|
@ -381,8 +381,7 @@ static int process_ssi_stmt(server *srv, connection *con, handler_ctx *p, const
|
|
|
|
|
#else |
|
|
|
|
buffer_copy_int(b, st->st_uid); |
|
|
|
|
#endif |
|
|
|
|
chunkqueue_append_buffer(con->write_queue, b); |
|
|
|
|
buffer_free(b); |
|
|
|
|
chunkqueue_append_mem(con->write_queue, CONST_BUF_LEN(b)); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case SSI_ECHO_LAST_MODIFIED: { |
|
|
|
@ -580,7 +579,7 @@ static int process_ssi_stmt(server *srv, connection *con, handler_ctx *p, const
|
|
|
|
|
|
|
|
|
|
switch (ssicmd) { |
|
|
|
|
case SSI_FSIZE: |
|
|
|
|
b = buffer_init(); |
|
|
|
|
b = srv->tmp_buf; |
|
|
|
|
if (p->sizefmt) { |
|
|
|
|
int j = 0; |
|
|
|
|
const char *abr[] = { " B", " kB", " MB", " GB", " TB", NULL }; |
|
|
|
@ -594,8 +593,7 @@ static int process_ssi_stmt(server *srv, connection *con, handler_ctx *p, const
|
|
|
|
|
} else { |
|
|
|
|
buffer_copy_int(b, stb.st_size); |
|
|
|
|
} |
|
|
|
|
chunkqueue_append_buffer(con->write_queue, b); |
|
|
|
|
buffer_free(b); |
|
|
|
|
chunkqueue_append_mem(con->write_queue, CONST_BUF_LEN(b)); |
|
|
|
|
break; |
|
|
|
|
case SSI_FLASTMOD: |
|
|
|
|
if (0 == strftime(buf, sizeof(buf), p->timefmt->ptr, localtime(&t))) { |
|
|
|
@ -719,7 +717,8 @@ static int process_ssi_stmt(server *srv, connection *con, handler_ctx *p, const
|
|
|
|
|
case SSI_PRINTENV: |
|
|
|
|
if (p->if_is_false) break; |
|
|
|
|
|
|
|
|
|
b = buffer_init(); |
|
|
|
|
b = srv->tmp_buf; |
|
|
|
|
buffer_string_set_length(b, 0); |
|
|
|
|
for (i = 0; i < p->ssi_vars->used; i++) { |
|
|
|
|
data_string *ds = (data_string *)p->ssi_vars->data[p->ssi_vars->sorted[i]]; |
|
|
|
|
|
|
|
|
@ -736,9 +735,7 @@ static int process_ssi_stmt(server *srv, connection *con, handler_ctx *p, const
|
|
|
|
|
buffer_append_string_encoded(b, CONST_BUF_LEN(ds->value), ENCODING_MINIMAL_XML); |
|
|
|
|
buffer_append_string_len(b, CONST_STR_LEN("\n")); |
|
|
|
|
} |
|
|
|
|
chunkqueue_append_buffer(con->write_queue, b); |
|
|
|
|
buffer_free(b); |
|
|
|
|
|
|
|
|
|
chunkqueue_append_mem(con->write_queue, CONST_BUF_LEN(b)); |
|
|
|
|
break; |
|
|
|
|
case SSI_EXEC: { |
|
|
|
|
const char *cmd = NULL; |
|
|
|
|