void msre_engine_register_default_variables()

in apache2/re_variables.c [2802:4182]


void msre_engine_register_default_variables(msre_engine *engine) {

    /* ARGS */
    msre_engine_variable_register(engine,
        "ARGS",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_args_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* ARGS_COMBINED_SIZE */
    msre_engine_variable_register(engine,
        "ARGS_COMBINED_SIZE",
        VAR_LIST,
        0, 0,
        NULL,
        var_args_combined_size_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* ARGS_GET */
    msre_engine_variable_register(engine,
        "ARGS_GET",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_args_get_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* ARGS_GET_NAMES */
    msre_engine_variable_register(engine,
        "ARGS_GET_NAMES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_args_get_names_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* ARGS_NAMES */
    msre_engine_variable_register(engine,
        "ARGS_NAMES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_args_names_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* ARGS_POST */
    msre_engine_variable_register(engine,
        "ARGS_POST",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_args_post_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* ARGS_POST_NAMES */
    msre_engine_variable_register(engine,
        "ARGS_POST_NAMES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_args_post_names_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* AUTH_TYPE */
    msre_engine_variable_register(engine,
        "AUTH_TYPE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_auth_type_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* ENV */
    msre_engine_variable_register(engine,
        "ENV",
        VAR_LIST,
        0, 1,
        var_env_validate,
        var_env_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* FILES */
    msre_engine_variable_register(engine,
        "FILES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_files_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* FILES_COMBINED_SIZE */
    msre_engine_variable_register(engine,
        "FILES_COMBINED_SIZE",
        VAR_LIST,
        0, 0,
        NULL,
        var_files_combined_size_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_BODY
    );

    /* FILES_NAMES */
    msre_engine_variable_register(engine,
        "FILES_NAMES",
        VAR_LIST,
        0, 0,
        NULL,
        var_files_names_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* FILES_SIZES */
    msre_engine_variable_register(engine,
        "FILES_SIZES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_files_sizes_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_BODY
    );

    /* FILES_TMPNAMES */
    msre_engine_variable_register(engine,
        "FILES_TMPNAMES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_files_tmpnames_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* FILES_TMP_CONTENT */
    msre_engine_variable_register(engine,
        "FILES_TMP_CONTENT",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_files_tmp_contents_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* GEO */
    msre_engine_variable_register(engine,
        "GEO",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_geo_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* GLOBAL */
    msre_engine_variable_register(engine,
        "GLOBAL",
        VAR_LIST,
        1, 1,
        var_generic_list_validate,
        var_global_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* HIGHEST_SEVERITY */
    msre_engine_variable_register(engine,
        "HIGHEST_SEVERITY",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_highest_severity_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* IP */
    msre_engine_variable_register(engine,
        "IP",
        VAR_LIST,
        1, 1,
        var_generic_list_validate,
        var_ip_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* MATCHED_VAR */
    msre_engine_variable_register(engine,
        "MATCHED_VAR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_matched_var_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* MATCHED_VAR_NAME */
    msre_engine_variable_register(engine,
        "MATCHED_VAR_NAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_matched_var_name_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* MODSEC_BUILD */
    msre_engine_variable_register(engine,
        "MODSEC_BUILD",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_modsec_build_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* MULTIPART_FILENAME */
    msre_engine_variable_register(engine,
        "MULTIPART_FILENAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_filename_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_NAME */
    msre_engine_variable_register(engine,
        "MULTIPART_NAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_name_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_BOUNDARY_QUOTED */
    msre_engine_variable_register(engine,
        "MULTIPART_BOUNDARY_QUOTED",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_boundary_quoted_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_BOUNDARY_WHITESPACE */
    msre_engine_variable_register(engine,
        "MULTIPART_BOUNDARY_WHITESPACE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_boundary_whitespace_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_DATA_AFTER */
    msre_engine_variable_register(engine,
        "MULTIPART_DATA_AFTER",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_data_after_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_DATA_BEFORE */
    msre_engine_variable_register(engine,
        "MULTIPART_DATA_BEFORE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_data_before_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_HEADER_FOLDING */
    msre_engine_variable_register(engine,
        "MULTIPART_HEADER_FOLDING",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_header_folding_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_CRLF_LINE */
    msre_engine_variable_register(engine,
        "MULTIPART_CRLF_LINE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_crlf_line_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_CRLF_LF_LINES */
    msre_engine_variable_register(engine,
        "MULTIPART_CRLF_LF_LINES",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_crlf_lf_lines_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_LF_LINE */
    msre_engine_variable_register(engine,
        "MULTIPART_LF_LINE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_lf_line_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_MISSING_SEMICOLON */
    msre_engine_variable_register(engine,
        "MULTIPART_MISSING_SEMICOLON",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_missing_semicolon_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_INVALID_PART */
    msre_engine_variable_register(engine,
        "MULTIPART_INVALID_PART",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_invalid_part_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_INVALID_QUOTING */
    msre_engine_variable_register(engine,
        "MULTIPART_INVALID_QUOTING",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_invalid_quoting_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_INVALID_HEADER_FOLDING */
    msre_engine_variable_register(engine,
        "MULTIPART_INVALID_HEADER_FOLDING",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_invalid_header_folding_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_FILE_LIMIT_EXCEEDED */
    msre_engine_variable_register(engine,
        "MULTIPART_FILE_LIMIT_EXCEEDED",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_file_limit_exceeded_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_STRICT_ERROR */
    msre_engine_variable_register(engine,
        "MULTIPART_STRICT_ERROR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_strict_error_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* MULTIPART_UNMATCHED_BOUNDARY */
    msre_engine_variable_register(engine,
        "MULTIPART_UNMATCHED_BOUNDARY",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_multipart_unmatched_boundary_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* PATH_INFO */
    msre_engine_variable_register(engine,
        "PATH_INFO",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_path_info_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* QUERY_STRING */
    msre_engine_variable_register(engine,
        "QUERY_STRING",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_query_string_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

#if AP_SERVER_MAJORVERSION_NUMBER > 1 && AP_SERVER_MINORVERSION_NUMBER > 2
    /* USERAGENT_IP */
    msre_engine_variable_register(engine,
        "USERAGENT_IP",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_useragent_ip_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );
#endif

    /* REMOTE_ADDR */
    msre_engine_variable_register(engine,
        "REMOTE_ADDR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_remote_addr_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REMOTE_HOST */
    msre_engine_variable_register(engine,
        "REMOTE_HOST",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_remote_host_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* REMOTE_PORT */
    msre_engine_variable_register(engine,
        "REMOTE_PORT",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_remote_port_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_BODY
    );

    /* REMOTE_USER */
    msre_engine_variable_register(engine,
        "REMOTE_USER",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_remote_user_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* RESOURCE */
    msre_engine_variable_register(engine,
        "RESOURCE",
        VAR_LIST,
        1, 1,
        var_generic_list_validate,
        var_resource_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* REQBODY_PROCESSOR */
    msre_engine_variable_register(engine,
        "REQBODY_PROCESSOR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_reqbody_processor_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_HEADERS
    );

    msre_engine_variable_register(engine,
        "SDBM_DELETE_ERROR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_sdbm_delete_error_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_BODY
    );

    /* REQBODY_PROCESSOR_ERROR - Deprecated */
    msre_engine_variable_register(engine,
        "REQBODY_PROCESSOR_ERROR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_reqbody_processor_error_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_BODY
    );

    /* REQBODY_PROCESSOR_ERROR_MSG - Deprecated */
    msre_engine_variable_register(engine,
        "REQBODY_PROCESSOR_ERROR_MSG",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_reqbody_processor_error_msg_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_BODY
    );

    /* REQBODY_ERROR */
    msre_engine_variable_register(engine,
        "REQBODY_ERROR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_reqbody_processor_error_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_BODY
    );

    /* REQBODY_ERROR_MSG */
    msre_engine_variable_register(engine,
        "REQBODY_ERROR_MSG",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_reqbody_processor_error_msg_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_BODY
    );

    /* REQUEST_BASENAME */
    msre_engine_variable_register(engine,
        "REQUEST_BASENAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_request_basename_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_HEADERS
    );

    /* FULL_REQUEST */
    msre_engine_variable_register(engine,
        "FULL_REQUEST",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_full_request_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* FULL_REQUEST_LENGTH */
    msre_engine_variable_register(engine,
        "FULL_REQUEST_LENGTH",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_full_request_length_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );


    /* REQUEST_BODY */
    msre_engine_variable_register(engine,
        "REQUEST_BODY",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_request_body_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* REQUEST_BODY_LENGTH */
    msre_engine_variable_register(engine,
        "REQUEST_BODY_LENGTH",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_request_body_length_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* MATCHED_VARS_NAMES */
    msre_engine_variable_register(engine,
        "MATCHED_VARS_NAMES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_matched_vars_names_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* MATCHED_VARS */
    msre_engine_variable_register(engine,
        "MATCHED_VARS",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_matched_vars_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_COOKIES */
    msre_engine_variable_register(engine,
        "REQUEST_COOKIES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_request_cookies_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_COOKIES_NAMES */
    msre_engine_variable_register(engine,
        "REQUEST_COOKIES_NAMES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_request_cookies_names_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_FILENAME */
    msre_engine_variable_register(engine,
        "REQUEST_FILENAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_request_filename_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_HEADERS */
    msre_engine_variable_register(engine,
        "REQUEST_HEADERS",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_request_headers_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_HEADERS_NAMES */
    msre_engine_variable_register(engine,
        "REQUEST_HEADERS_NAMES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_request_headers_names_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_LINE */
    msre_engine_variable_register(engine,
        "REQUEST_LINE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_request_line_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_METHOD */
    msre_engine_variable_register(engine,
        "REQUEST_METHOD",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_request_method_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_PROTOCOL */
    msre_engine_variable_register(engine,
        "REQUEST_PROTOCOL",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_request_protocol_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_URI */
    msre_engine_variable_register(engine,
        "REQUEST_URI",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_request_uri_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_HEADERS
    );

    /* REQUEST_URI_RAW */
    msre_engine_variable_register(engine,
        "REQUEST_URI_RAW",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_request_uri_raw_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* UNIQUE_ID */
    msre_engine_variable_register(engine,
        "UNIQUE_ID",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_uniqueid_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );


    /* STREAM_OUTPUT_BODY */
    msre_engine_variable_register(engine,
        "STREAM_OUTPUT_BODY",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_stream_output_generate,
        VAR_CACHE,
        PHASE_RESPONSE_BODY
    );

    /* STREAM_INPUT_BODY */
    msre_engine_variable_register(engine,
        "STREAM_INPUT_BODY",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_stream_input_generate,
        VAR_CACHE,
        PHASE_FIRST
    );


    /* RESPONSE_BODY */
    msre_engine_variable_register(engine,
        "RESPONSE_BODY",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_response_body_generate,
        VAR_CACHE,
        PHASE_RESPONSE_BODY
    );

    /* RESPONSE_CONTENT_LENGTH */
    msre_engine_variable_register(engine,
        "RESPONSE_CONTENT_LENGTH",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_response_content_length,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_RESPONSE_HEADERS
    );

    /* RESPONSE_CONTENT_TYPE */
    msre_engine_variable_register(engine,
        "RESPONSE_CONTENT_TYPE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_response_content_type,
        VAR_CACHE,
        PHASE_RESPONSE_HEADERS
    );

    /* RESPONSE_HEADERS */
    msre_engine_variable_register(engine,
        "RESPONSE_HEADERS",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_response_headers_generate,
        VAR_CACHE,
        PHASE_RESPONSE_HEADERS
    );

    /* RESPONSE_HEADERS_NAMES */
    msre_engine_variable_register(engine,
        "RESPONSE_HEADERS_NAMES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_response_headers_names_generate,
        VAR_CACHE,
        PHASE_RESPONSE_HEADERS
    );

    /* RESPONSE_PROTOCOL */
    msre_engine_variable_register(engine,
        "RESPONSE_PROTOCOL",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_response_protocol_generate,
        VAR_CACHE,
        PHASE_RESPONSE_HEADERS
    );

    /* RESPONSE_STATUS */
    msre_engine_variable_register(engine,
        "RESPONSE_STATUS",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_response_status_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_RESPONSE_HEADERS
    );

    /* RULE */
    msre_engine_variable_register(engine,
        "RULE",
        VAR_LIST,
        1, 1,
        NULL,
        var_rule_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_RESPONSE_HEADERS
    );

    /* SCRIPT_GID */
    msre_engine_variable_register(engine,
        "SCRIPT_GID",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_script_gid_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_BODY
    );

    /* SCRIPT_BASENAME */
    msre_engine_variable_register(engine,
        "SCRIPT_BASENAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_script_basename_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_BODY
    );

    /* SCRIPT_FILENAME */
    msre_engine_variable_register(engine,
        "SCRIPT_FILENAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_script_filename_generate,
        VAR_CACHE,
        PHASE_REQUEST_BODY
    );

    /* SCRIPT_GROUPNAME */
    msre_engine_variable_register(engine,
        "SCRIPT_GROUPNAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_script_groupname_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_BODY
    );

    /* SCRIPT_MODE */
    msre_engine_variable_register(engine,
        "SCRIPT_MODE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_script_mode_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_BODY
    );

    /* SCRIPT_UID */
    msre_engine_variable_register(engine,
        "SCRIPT_UID",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_script_uid_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_BODY
    );

    /* SCRIPT_USERNAME */
    msre_engine_variable_register(engine,
        "SCRIPT_USERNAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_script_username_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_BODY
    );

    /* SERVER_ADDR */
    msre_engine_variable_register(engine,
        "SERVER_ADDR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_server_addr_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* SERVER_NAME */
    msre_engine_variable_register(engine,
        "SERVER_NAME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_server_name_generate,
        VAR_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* SERVER_PORT */
    msre_engine_variable_register(engine,
        "SERVER_PORT",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_server_port_generate,
        VAR_DONT_CACHE, /* temp copy */
        PHASE_REQUEST_HEADERS
    );

    /* SESSION */
    msre_engine_variable_register(engine,
        "SESSION",
        VAR_LIST,
        1, 1,
        var_generic_list_validate,
        var_session_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* SESSIONID */
    msre_engine_variable_register(engine,
        "SESSIONID",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_sessionid_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_RESPONSE_HEADERS
    );

    /* STATUS_LINE */
    msre_engine_variable_register(engine,
        "STATUS_LINE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_status_line_generate,
        VAR_CACHE,
        PHASE_RESPONSE_HEADERS
    );

    /* URLENCODED_ERROR */
    msre_engine_variable_register(engine,
        "URLENCODED_ERROR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_urlencoded_error_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_HEADERS
    );

    /* INBOUND_DATA_ERROR */
    msre_engine_variable_register(engine,
        "INBOUND_DATA_ERROR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_inbound_error_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_REQUEST_BODY
    );

    /* OUTBOUND_DATA_ERROR */
    msre_engine_variable_register(engine,
        "OUTBOUND_DATA_ERROR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_outbound_error_generate,
        VAR_DONT_CACHE, /* flag */
        PHASE_RESPONSE_BODY
    );

    /* USER */
    msre_engine_variable_register(engine,
        "USER",
        VAR_LIST,
        1, 1,
        var_generic_list_validate,
        var_user_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* USERID */
    msre_engine_variable_register(engine,
        "USERID",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_userid_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_RESPONSE_HEADERS
    );

    /* PERF_RULES */
    msre_engine_variable_register(engine,
        "PERF_RULES",
        VAR_LIST,
        0, 1,
        var_generic_list_validate,
        var_perf_rules_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_ALL */
    msre_engine_variable_register(engine,
        "PERF_ALL",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_all_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_COMBINED */
    msre_engine_variable_register(engine,
        "PERF_COMBINED",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_combined_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_GC */
    msre_engine_variable_register(engine,
        "PERF_GC",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_gc_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_LOGGING */
    msre_engine_variable_register(engine,
        "PERF_LOGGING",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_logging_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_PHASE1 */
    msre_engine_variable_register(engine,
        "PERF_PHASE1",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_phase1_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_PHASE2 */
    msre_engine_variable_register(engine,
        "PERF_PHASE2",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_phase2_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_PHASE3 */
    msre_engine_variable_register(engine,
        "PERF_PHASE3",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_phase3_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_PHASE4 */
    msre_engine_variable_register(engine,
        "PERF_PHASE4",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_phase4_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_PHASE5 */
    msre_engine_variable_register(engine,
        "PERF_PHASE5",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_phase5_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_SREAD */
    msre_engine_variable_register(engine,
        "PERF_SREAD",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_sread_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* PERF_SWRITE */
    msre_engine_variable_register(engine,
        "PERF_SWRITE",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_perf_swrite_generate,
        VAR_DONT_CACHE,
        PHASE_REQUEST_HEADERS
    );

    /* DURATION */
    msre_engine_variable_register(engine,
        "DURATION",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_duration_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TIME */
    msre_engine_variable_register(engine,
        "TIME",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_time_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TIME_DAY */
    msre_engine_variable_register(engine,
        "TIME_DAY",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_time_day_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TIME_EPOCH */
    msre_engine_variable_register(engine,
        "TIME_EPOCH",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_time_epoch_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TIME_HOUR */
    msre_engine_variable_register(engine,
        "TIME_HOUR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_time_hour_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TIME_MIN */
    msre_engine_variable_register(engine,
        "TIME_MIN",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_time_min_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TIME_MON */
    msre_engine_variable_register(engine,
        "TIME_MON",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_time_mon_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TIME_SEC */
    msre_engine_variable_register(engine,
        "TIME_SEC",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_time_sec_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TIME_WDAY */
    msre_engine_variable_register(engine,
        "TIME_WDAY",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_time_wday_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TIME_YEAR */
    msre_engine_variable_register(engine,
        "TIME_YEAR",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_time_year_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* TX */
    msre_engine_variable_register(engine,
        "TX",
        VAR_LIST,
        1, 1,
        var_generic_list_validate,
        var_tx_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* WEBAPPID */
    msre_engine_variable_register(engine,
        "WEBAPPID",
        VAR_SIMPLE,
        0, 0,
        NULL,
        var_webappid_generate,
        VAR_DONT_CACHE,
        PHASE_RESPONSE_HEADERS
    );

    /* WEBSERVER_ERROR_LOG */
    msre_engine_variable_register(engine,
        "WEBSERVER_ERROR_LOG",
        VAR_LIST,
        0, 0,
        NULL,
        var_webserver_error_log_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_HEADERS
    );

    /* XML */
    msre_engine_variable_register(engine,
        "XML",
        VAR_LIST,
        0, 1,
        var_xml_validate,
        var_xml_generate,
        VAR_DONT_CACHE, /* dynamic */
        PHASE_REQUEST_BODY
    );
}