23 #define APR_WANT_STRFUNC 24 #define APR_WANT_MEMFUNC 74 "%sstderr from %s: %s", logno ? logno :
"", r->
filename, error);
80 (finfo.
size > conf->logbytes)) ||
112 newline = strchr(argsbuffer,
'\n');
114 char *
prev = newline - 1;
115 if (prev >= argsbuffer && *prev ==
'\r') {
121 log_scripterror(r, conf, r->
status, 0,
APLOGNO(01215), argsbuffer);
131 char *tag_val = NULL;
141 "missing argument for exec element in %s", r->
filename);
162 if (!tag || !tag_val) {
166 if (!strcmp(tag,
"cmd")) {
169 cgi_pfn_ps(ctx, tag_val, parsed_string,
sizeof(parsed_string),
172 rv = include_cmd(ctx, f, bb, parsed_string);
175 "for parameter \"%s\" to tag exec in file %s",
181 else if (!strcmp(tag,
"cgi")) {
184 cgi_pfn_ps(ctx, tag_val, parsed_string,
sizeof(parsed_string),
187 rv = include_cgi(ctx, f, bb, parsed_string);
190 "\"%s\" in %s", tag_val, file);
197 "\"%s\" to tag exec in %s", tag, file);
207 static void cgi_optfns_retrieve(
void)
215 if (cgi_pfn_reg_with_ssi && cgi_pfn_gtv && cgi_pfn_ps) {
219 cgi_pfn_reg_with_ssi(
"exec", cgi_handle_exec);
223 #ifdef WANT_CGI_BUCKET 228 struct cgi_bucket_data {
253 b->
type = &bucket_type_cgi;
261 "apr_pollset_create(); check system or user limits");
273 "apr_pollset_add(); check system or user limits");
282 "apr_pollset_add(); check system or user limits");
287 data->timeout = timeout;
293 static apr_bucket *cgi_bucket_dup(
struct cgi_bucket_data *data,
300 b->
type = &bucket_type_cgi;
327 struct cgi_bucket_data *data = a->
data;
350 struct cgi_bucket_data *data = b->
data;
356 timeout = data->timeout > 0 ? data->timeout : data->r->server->timeout;
367 "Timeout waiting for output from CGI script %s",
380 "poll failed waiting for CGI child");
384 for (; num; num--, results++) {
385 if (results[0].client_data == (
void *)1) {
387 rv = cgi_read_stdout(b, results[0].
desc.f, str, len);
407 "CGI", 5, APR_BUCKET_DATA,
427 const char *location;
441 ret = log_script(r, conf, ret, logdata, sbuf, bb, script_err);
473 if (location && r->
status == 200) {
477 discard_script_output(bb);
482 log_script_err(r, script_err);
486 if (location && location[0] ==
'/' && r->
status == 200) {
502 else if (location && r->
status == 200) {
506 discard_script_output(bb);
536 log_script_err(r, script_err);
552 int child_stopped_reading = 0;
584 if (child_stopped_reading) {
594 if (logbufbytes && dbpos < logbufbytes) {
597 if ((dbpos + len) > logbufbytes) {
598 cursize = logbufbytes - dbpos;
603 memcpy(logbuf + dbpos, data, cursize);
614 child_stopped_reading = 1;
616 "Error writing request body to script %s",
625 logbuf[dbpos] =
'\0';
void ap_ssi_get_tag_and_value(include_ctx_t *ctx, char **tag, char **tag_val, int dodecode)
#define APR_STATUS_IS_EINTR(s)
Definition: apr_errno.h:1295
#define APR_WRITE
Definition: apr_file_io.h:121
apr_status_t apr_ctime(char *date_str, apr_time_t t)
Definition: apr_buckets.h:59
Definition: apr_buckets.h:546
struct ap_conf_vector_t * module_config
Definition: httpd.h:1393
char * args
Definition: httpd.h:1041
request_rec * r
Definition: util_filter.h:294
#define APLOG_MARK
Definition: http_log.h:283
#define APLOG_ERR
Definition: http_log.h:46
apr_datatype_e desc_type
Definition: apr_poll.h:119
#define APR_BUCKET_INSERT_AFTER(a, b)
Definition: apr_buckets.h:414
Definition: apr_arch_file_io.h:107
Definition: apr_poll.h:103
server_rec * server
Definition: httpd.h:866
void * data
Definition: apr_buckets.h:244
int ap_scan_script_header_err_brigade_ex(request_rec *r, apr_bucket_brigade *bb, char *buffer, int module_index)
apr_off_t size
Definition: apr_file_info.h:198
The representation of a filter chain.
Definition: util_filter.h:278
apr_status_t apr_pollset_remove(apr_pollset_t *pollset, const apr_pollfd_t *descriptor)
void * ap_get_module_config(const ap_conf_vector_t *cv, const module *m)
struct apr_bucket_alloc_t apr_bucket_alloc_t
Definition: apr_buckets.h:123
apr_status_t ap_pass_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket)
#define SSI_FLAG_PRINTING
Definition: mod_include.h:56
const char * method
Definition: httpd.h:915
conn_rec * connection
Definition: httpd.h:864
apr_bucket apr_bucket * apr_bucket_immortal_make(apr_bucket *b, const char *buf, apr_size_t nbyte) __attribute__((nonnull(1
#define HUGE_STRING_LEN
Definition: httpd.h:307
void * apr_palloc(apr_pool_t *p, apr_size_t size) __attribute__((nonnull(1)))
#define APR_STATUS_IS_TIMEUP(s)
Definition: apr_errno.h:540
#define APR_OPTIONAL_FN_TYPE(name)
Definition: apr_optional.h:42
#define APR_BUCKET_INIT(e)
Definition: apr_buckets.h:443
int flags
Definition: mod_include.h:77
APR Standard Headers Support.
struct ap_filter_t * proto_output_filters
Definition: httpd.h:1091
apr_bucket_brigade apr_status_t apr_brigade_destroy(apr_bucket_brigade *b) __attribute__((nonnull(1)))
void apr_table_unset(apr_table_t *t, const char *key)
apr_status_t apr_file_read(apr_file_t *thefile, void *buf, apr_size_t *nbytes)
#define APR_BUCKET_BUFF_SIZE
Definition: apr_buckets.h:54
void apr_bucket_destroy_noop(void *data)
apr_table_t * headers_out
Definition: httpd.h:993
Definition: apr_buckets.h:258
#define APR_POLLIN
Definition: apr_poll.h:49
#define apr_bucket_read(e, str, len, block)
Definition: apr_buckets.h:1122
apr_int64_t apr_interval_time_t
Definition: apr_time.h:55
apr_int16_t reqevents
Definition: apr_poll.h:120
apr_status_t apr_bucket_copy_notimpl(apr_bucket *e, apr_bucket **c)
apr_size_t alloc_len
Definition: apr_buckets.h:554
apr_status_t apr_file_write_full(apr_file_t *thefile, const void *buf, apr_size_t nbytes, apr_size_t *bytes_written)
void(* free)(void *e)
Definition: apr_buckets.h:252
struct ap_filter_t * output_filters
Definition: httpd.h:1085
int int apr_status_t const char * desc
Definition: mod_dav.h:141
int method_number
Definition: httpd.h:913
Definition: util_filter.h:43
Definition: mod_include.h:69
Definition: util_filter.h:180
#define APR_BUCKET_IS_FLUSH(e)
Definition: apr_buckets.h:458
ap_filter_rec_t * frec
Definition: util_filter.h:282
apr_bucket_brigade * bb
Definition: mod_dav.h:555
#define APR_STATUS_IS_EOF(s)
Definition: apr_errno.h:573
apr_pool_t * p
Definition: apr_poll.h:118
#define APR_APPEND
Definition: apr_file_io.h:123
apr_descriptor desc
Definition: apr_poll.h:122
apr_status_t apr_brigade_cleanup(void *data) __attribute__((nonnull(1)))
apr_status_t apr_bucket_split_notimpl(apr_bucket *data, apr_size_t point)
#define MAX_STRING_LEN
Definition: httpd.h:304
apr_status_t ap_get_brigade(ap_filter_t *filter, apr_bucket_brigade *bucket, ap_input_mode_t mode, apr_read_type_e block, apr_off_t readbytes)
char * uri
Definition: httpd.h:1031
Definition: apr_poll.h:117
Definition: apr_buckets.h:224
dav_error * err
Definition: mod_dav.h:203
apr_pool_t * pool
Definition: httpd.h:862
apr_status_t apr_file_gets(char *str, int len, apr_file_t *thefile)
#define OK
Definition: httpd.h:460
APR-UTIL Buckets/Bucket Brigades.
Definition: apr_buckets.h:58
const char * apr_table_get(const apr_table_t *t, const char *key)
apr_file_t * f
Definition: apr_poll.h:109
ap_filter_type ftype
Definition: util_filter.h:254
int apr_file_printf(apr_file_t *fptr, const char *format,...) __attribute__((format(printf
APR Platform Definitions.
#define APLOG_WARNING
Definition: http_log.h:47
APR general purpose library routines.
#define APR_FINFO_SIZE
Definition: apr_file_info.h:149
#define APR_BUCKET_IS_EOS(e)
Definition: apr_buckets.h:464
#define SSI_CREATE_ERROR_BUCKET(ctx, f, bb)
Definition: mod_include.h:48
#define APR_RETRIEVE_OPTIONAL_FN(name)
Definition: apr_optional.h:84
#define APR_BUCKET_NEXT(e)
Definition: apr_buckets.h:425
int status
Definition: httpd.h:906
#define APLOG_MODULE_INDEX
Definition: http_log.h:168
#define HTTP_NOT_MODIFIED
Definition: httpd.h:511
apr_status_t apr_file_pipe_timeout_set(apr_file_t *thepipe, apr_interval_time_t timeout)
#define apr_bucket_delete(e)
Definition: apr_buckets.h:1049
unsigned argc
Definition: mod_include.h:89
apr_read_type_e
Definition: apr_buckets.h:57
apr_off_t start
Definition: apr_buckets.h:242
A structure that represents the current request.
Definition: httpd.h:860
void ap_log_rerror(const char *file, int line, int module_index, int level, apr_status_t status, const request_rec *r, const char *fmt,...)
#define HTTP_GATEWAY_TIME_OUT
Definition: httpd.h:548
void ap_register_include_handler(char *tag, include_handler_fn_t *func)
#define M_GET
Definition: httpd.h:601
#define HTTP_MOVED_TEMPORARILY
Definition: httpd.h:509
apr_status_t apr_file_close(apr_file_t *file)
#define SSI_EXPAND_DROP_NAME
Definition: mod_include.h:42
dav_buffer const char * str
Definition: mod_dav.h:464
#define SSI_VALUE_DECODED
Definition: mod_include.h:35
apr_time_t apr_time_now(void)
const char * protocol
Definition: httpd.h:894
void * client_data
Definition: apr_poll.h:123
int int const char dav_error * prev
Definition: mod_dav.h:170
#define APR_BRIGADE_FIRST(b)
Definition: apr_buckets.h:348
apr_status_t apr_pollset_create(apr_pollset_t **pollset, apr_uint32_t size, apr_pool_t *p, apr_uint32_t flags)
apr_table_t * headers_in
Definition: httpd.h:991
Definition: apr_buckets.h:131
#define APR_CTIME_LEN
Definition: apr_time.h:198
void ap_internal_redirect_handler(const char *new_uri, request_rec *r)
ap_filter_t * next
Definition: util_filter.h:288
int apr_status_t
Definition: apr_errno.h:44
request_rec * r
Definition: mod_dav.h:518
#define APR_EOF
Definition: apr_errno.h:467
const apr_bucket_type_t * type
Definition: apr_buckets.h:228
#define APR_EAGAIN
Definition: apr_errno.h:736
proxy_worker proxy_server_conf * conf
Definition: mod_proxy.h:636
apr_status_t apr_bucket_setaside_notimpl(apr_bucket *data, apr_pool_t *pool)
apr_status_t apr_pollset_add(apr_pollset_t *pollset, const apr_pollfd_t *descriptor)
#define APR_SUCCESS
Definition: apr_errno.h:225
#define APR_BRIGADE_SENTINEL(b)
Definition: apr_buckets.h:334
#define APLOGNO(n)
Definition: http_log.h:117
apr_status_t apr_stat(apr_finfo_t *finfo, const char *fname, apr_int32_t wanted, apr_pool_t *pool)
char * filename
Definition: httpd.h:1033
#define SSI_EXPAND_LEAVE_NAME
Definition: mod_include.h:41
apr_bucket apr_bucket apr_bucket apr_bucket apr_bucket apr_bucket * apr_bucket_heap_make(apr_bucket *b, const char *buf, apr_size_t nbyte, void(*free_func)(void *data)) __attribute__((nonnull(1
struct ap_filter_t * input_filters
Definition: httpd.h:1087
apr_status_t apr_file_open(apr_file_t **newf, const char *fname, apr_int32_t flag, apr_fileperms_t perm, apr_pool_t *pool)
unsigned aborted
Definition: httpd.h:1247
#define APR_OS_DEFAULT
Definition: apr_file_info.h:112
apr_bucket_alloc_t * list
Definition: apr_buckets.h:254
void apr_bucket_free(void *block) __attribute__((nonnull(1)))
Definition: apr_file_info.h:174
apr_status_t apr_pollset_poll(apr_pollset_t *pollset, apr_interval_time_t timeout, apr_int32_t *num, const apr_pollfd_t **descriptors)
void * apr_bucket_alloc(apr_size_t size, apr_bucket_alloc_t *list) __attribute__((nonnull(2)))
char * ap_ssi_parse_string(include_ctx_t *ctx, const char *in, char *out, apr_size_t length, int leave_name)
apr_size_t length
Definition: apr_buckets.h:234
#define APR_CREATE
Definition: apr_file_io.h:122
#define SSI_FLAG_NO_EXEC
Definition: mod_include.h:59
Definition: apr_arch_poll_private.h:119