/** var get: Hash[String, Tainted[String]] This contains key+value pairs that were sent to the server as GET variables. Any pair that has a key or a value that is not valid utf-8 will not be present. */ static lily_value *load_var_get(lily_options *options, uint16_t *unused) { apr_table_t *http_get_args; ap_args_to_table((request_rec *)options->data, &http_get_args); return bind_table_as(options, http_get_args, "get"); }
/** var env: Hash[String, Tainted[String]] This contains key+value pairs containing the current environment of the server. */ static lily_value *load_var_env(lily_options *options, uint16_t *unused) { request_rec *r = (request_rec *)options->data; ap_add_cgi_vars(r); ap_add_common_vars(r); return bind_table_as(options, r->subprocess_env, "env"); }
static int apache_bind_server(lily_parse_state *parser, request_rec *r) { int ret = 1; lily_symtab *symtab = parser->symtab; lily_class *package_cls = lily_class_by_id(symtab, SYM_CLASS_PACKAGE); lily_sig *package_sig = lily_try_sig_for_class(symtab, package_cls); lily_var *bound_var = lily_try_new_var(symtab, package_sig, "server", 0); if (bound_var) { lily_var *save_top = symtab->var_top; int save_spot = symtab->next_register_spot; int count = 0; ap_add_cgi_vars(r); ap_add_common_vars(r); bind_table_as(&count, parser, r, r->subprocess_env, "env"); apr_table_t *http_get_args; ap_args_to_table(r, &http_get_args); bind_table_as(&count, parser, r, http_get_args, "get"); bind_post(&count, parser, r); bind_httpmethod(&count, parser, r); if (count != -1) { int ok = 1; make_package(&ok, parser, bound_var, count, save_spot, save_top); if (ok == 0) ret = 0; } else ret = 0; } else ret = 0; return ret; }