Beispiel #1
0
        return NULL;
    }
    /*
     * Now we just take each word in turn from the command line and add it to
     * the appropriate table.
     */
    while (*usernames) {
        username = ap_getword_conf(cmd->pool, &usernames);
        apr_table_setn(usertable, username, kw);
    }
    return NULL;
}

static const command_rec userdir_cmds[] = {
    AP_INIT_RAW_ARGS("UserDir", set_user_dir, NULL, RSRC_CONF,
                     "the public subdirectory in users' home directories, or "
                     "'disabled', or 'disabled username username...', or "
                     "'enabled username username...'"),
    {NULL}
};

static int translate_userdir(request_rec *r)
{
    ap_conf_vector_t *server_conf;
    const userdir_config *s_cfg;
    const char *userdirs;
    const char *user, *dname;
    char *redirect;
    apr_finfo_t statbuf;

    /*
     * If the URI doesn't match our basic pattern, we've nothing to do with
    SSL_CMD_DIR(Options, OPTIONS, RAW_ARGS,
               "Set one or more options to configure the SSL engine"
               "(`[+-]option[=value] ...' - see manual)")
    SSL_CMD_DIR(RequireSSL, AUTHCFG, NO_ARGS,
               "Require the SSL protocol for the per-directory context "
               "(no arguments)")
    SSL_CMD_DIR(Require, AUTHCFG, RAW_ARGS,
               "Require a boolean expression to evaluate to true for granting access"
               "(arbitrary complex boolean expression - see manual)")
    SSL_CMD_DIR(RenegBufferSize, AUTHCFG, TAKE1,
                "Configure the amount of memory that will be used for buffering the "
                "request body if a per-location SSL renegotiation is required due to "
                "changed access control requirements")

    /* Deprecated directives. */
    AP_INIT_RAW_ARGS("SSLLog", ap_set_deprecated, NULL, OR_ALL,
      "SSLLog directive is no longer supported - use ErrorLog."),
    AP_INIT_RAW_ARGS("SSLLogLevel", ap_set_deprecated, NULL, OR_ALL,
      "SSLLogLevel directive is no longer supported - use LogLevel."),

    AP_END_CMD
};

/*
 *  the various processing hooks
 */
static apr_status_t ssl_cleanup_pre_config(void *data)
{
    /*
     * Try to kill the internals of the SSL library.
     */
#ifdef HAVE_OPENSSL
Beispiel #3
0
        code =  cwx_request(&conn);
        //free idle connect
        cwx_free_socket(&conn);
        //success, break;
        if (HTTP_PRECONDITION_FAILED != code) break;
        //using other.
        if ((time(NULL) - now > svr->m_user_config.m_query_timeout/2000)) break;
    }
    return code;
}

/*
 * Only needed configuration is pointer to resin.conf
 */
static const command_rec cwx_commands[] = {
    AP_INIT_RAW_ARGS("cwinux-service", cwx_svr_command, NULL,
    RSRC_CONF, "Configures service."),
    AP_INIT_RAW_ARGS("cwinux-host", cwx_host_command, NULL,
    RSRC_CONF, "Configures host."),
    AP_INIT_RAW_ARGS("cwinux-balance", cwx_balance_command, NULL,
    RSRC_CONF, "Configures balance."),
    AP_INIT_RAW_ARGS("cwinux-header", cwx_header_command, NULL,
    RSRC_CONF, "Configures header."),
    AP_INIT_TAKE1("cwinux-show", cwx_show_command, NULL,
    RSRC_CONF, "Configures default show."),
    AP_INIT_TAKE1("cwinux-delay", cwx_delay_command, NULL,
    RSRC_CONF, "Configures default delay."),
    AP_INIT_TAKE1("cwinux-persistent", cwx_persistent_command, NULL,
    RSRC_CONF, "Configures default persistent."),
    AP_INIT_TAKE1("cwinux-query-timeout", cwx_query_timeout_command, NULL,
    RSRC_CONF, "Configures default query-timeout."),
    AP_INIT_TAKE1("cwinux-conn-timeout", cwx_conn_timeout_command, NULL,
Beispiel #4
0
static const command_rec moon_cmds[];
module AP_MODULE_DECLARE_DATA moon_module;

// config struct
typedef struct moon_svr_cfg {
	char *buf;
	const char* user_data_url;
	const char* group_data_url;
	apr_hash_t * user_to_css;
	apr_hash_t * group_to_css;
} moon_svr_cfg;

// List of containers and directives
static const command_rec moon_cmds[] = {
	AP_INIT_RAW_ARGS("<LMMPGroup", lmmpgroup_cmd, NULL, EXEC_ON_READ|OR_ALL, "Container for 								setting group css style"),
	AP_INIT_RAW_ARGS("<LMMPUser", lmmpuser_cmd, NULL, EXEC_ON_READ|OR_ALL, "Container for 								setting user css style"),
	AP_INIT_TAKE1("LMMPSetUserDataUrl", lmmpset_user_data_url_cmd, NULL, OR_ALL, "set user 							data url"),
	AP_INIT_TAKE1("LMMPSetGroupDataUrl", lmmpset_group_data_url_cmd, NULL, OR_ALL, "set group 							data url"),
	{ NULL }
};

// Standard Module declaration for Apache 2.0
module AP_MODULE_DECLARE_DATA moon_module = {
	STANDARD20_MODULE_STUFF,
	NULL,
	NULL,
	create_moon_cfg,
	NULL,
	moon_cmds,
	moon_hooks
Beispiel #5
0
}

#ifdef APACHE_2_X
static int tora_init( apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s ) {
	mod_tora_do_init();
	return OK;
}
#else
static void tora_init(server_rec *s, pool *p) {
	mod_tora_do_init();
}
#endif

static command_rec tora_module_cmds[] = {
#	ifdef APACHE_2_X
	AP_INIT_RAW_ARGS( "ModTora", mod_tora_config , NULL, RSRC_CONF, NULL ),
#	else
	{ "ModTora", mod_tora_config, NULL, RSRC_CONF, RAW_ARGS, NULL },
#	endif
	{ NULL }
};

#ifdef APACHE_2_X

static void tora_register_hooks( apr_pool_t *p ) {
	ap_hook_post_config( tora_init, NULL, NULL, APR_HOOK_MIDDLE );
	ap_hook_handler( tora_handler, NULL, NULL, APR_HOOK_LAST );
};

module AP_MODULE_DECLARE_DATA tora_module = {
	STANDARD20_MODULE_STUFF,
Beispiel #6
0
	 (void *)APR_OFFSETOF(logsql_state, notes_list), RSRC_CONF,
	 "Notes that you would like to log in a separate table")
	,
	AP_INIT_ITERATE("LogSQLWhichHeadersOut", add_server_string_slot,
	 (void *)APR_OFFSETOF(logsql_state, hout_list), RSRC_CONF,
	 "Outbound headers that you would like to log in a separate table")
	,
	AP_INIT_ITERATE("LogSQLWhichHeadersIn", add_server_string_slot,
	 (void *)APR_OFFSETOF(logsql_state, hin_list), RSRC_CONF,
	 "Inbound headers that you would like to log in a separate table")
	,
	AP_INIT_ITERATE("LogSQLWhichCookies", add_server_string_slot,
	 (void *)APR_OFFSETOF(logsql_state, cookie_list), RSRC_CONF,
	 "The cookie(s) that you would like to log in a separate table")
	,
	AP_INIT_RAW_ARGS("LogSQLDeprecated", ap_set_deprecated, NULL, RSRC_CONF,
	 "<br><b>Deprecated</b><br>The following Commands are deprecated and should not be used.. <br>Read the documentation for more information<br><b>Deprecated</b>")
	,
	/* Deprecated commands */
	AP_INIT_TAKE1("LogSQLDatabase", set_dbparam_slot,
	 (void *)"database", RSRC_CONF,
	 "<b>(Deprecated) Use LogSQLDBParam database dbname.</b> The name of the database database for logging")
	,
	AP_INIT_TAKE1("LogSQLTableType", set_dbparam_slot,
	 (void *)"tabletype", RSRC_CONF,
	 "<b>(Deprecated) Use LogSQLDBParam tabletype type.</b> What kind of table to create (MyISAM, InnoDB,...) when creating tables")
	,
	AP_INIT_TAKE1("LogSQLSocketFile", set_dbparam_slot,
	 (void *)"socketfile", RSRC_CONF,
	 "<b>(Deprecated) Use LogSQLDBParam socketfile socket.</b> Name of the file to employ for socket connections to database")
	,
	AP_INIT_TAKE1("LogSQLTCPPort", set_dbparam_slot,
Beispiel #7
0
            return "DirectoryIndexRedirect only accepts values between 300 and 399";
        }
    }
    else {
        return "DirectoryIndexRedirect ON|OFF|permanent|temp|seeother|3xx";
    }

    d->redirect_index = status;
    return NULL;
}
static const command_rec dir_cmds[] =
{
    AP_INIT_TAKE1("FallbackResource", ap_set_string_slot,
                  (void*)APR_OFFSETOF(dir_config_rec, dflt),
                  DIR_CMD_PERMS, "Set a default handler"),
    AP_INIT_RAW_ARGS("DirectoryIndex", add_index, NULL, DIR_CMD_PERMS,
                    "a list of file names"),
    AP_INIT_FLAG("DirectorySlash", configure_slash, NULL, DIR_CMD_PERMS,
                 "On or Off"),
    AP_INIT_TAKE1("DirectoryIndexRedirect", configure_redirect,
                   NULL, DIR_CMD_PERMS, "On, Off, or a 3xx status code."),

    {NULL}
};

static void *create_dir_config(apr_pool_t *p, char *dummy)
{
    dir_config_rec *new = apr_pcalloc(p, sizeof(dir_config_rec));

    new->index_names = NULL;
    new->do_slash = SLASH_UNSET;
    new->redirect_index = REDIRECT_UNSET;
                     "%s", "OOM handling GssapiDelegCcacheDir option");
    }

    return NULL;
}

static const command_rec mag_commands[] = {
    AP_INIT_FLAG("GssapiSSLonly", mag_ssl_only, NULL, OR_AUTHCFG,
                  "Work only if connection is SSL Secured"),
    AP_INIT_FLAG("GssapiLocalName", mag_map_to_local, NULL, OR_AUTHCFG,
                  "Translate principals to local names"),
    AP_INIT_FLAG("GssapiConnectionBound", mag_conn_ctx, NULL, OR_AUTHCFG,
                  "Authentication is bound to the TCP connection"),
    AP_INIT_FLAG("GssapiUseSessions", mag_use_sess, NULL, OR_AUTHCFG,
                  "Authentication uses mod_sessions to hold status"),
    AP_INIT_RAW_ARGS("GssapiSessionKey", mag_sess_key, NULL, OR_AUTHCFG,
                     "Key Used to seal session data."),
#ifdef HAVE_GSS_ACQUIRE_CRED_FROM
    AP_INIT_FLAG("GssapiUseS4U2Proxy", mag_use_s4u2p, NULL, OR_AUTHCFG,
                  "Initializes credentials for s4u2proxy usage"),
#endif
#ifdef HAVE_GSS_STORE_CRED_INTO
    AP_INIT_ITERATE("GssapiCredStore", mag_cred_store, NULL, OR_AUTHCFG,
                    "Credential Store"),
    AP_INIT_RAW_ARGS("GssapiDelegCcacheDir", mag_deleg_ccache_dir, NULL,
                     OR_AUTHCFG, "Directory to store delegated credentials"),
#endif
    { NULL }
};

static void
mag_register_hooks(apr_pool_t *p)
        ap_assert(1 != 1); /* we set the field wrong somehow */
    }

    return NULL;
}

static const command_rec cmds[] =
{
    AP_INIT_ITERATE("ExtFilterOptions",
                    add_options,
                    NULL,
                    ACCESS_CONF, /* same as SetInputFilter/SetOutputFilter */
                    "valid options: DebugLevel=n, LogStderr, NoLogStderr"),
    AP_INIT_RAW_ARGS("ExtFilterDefine",
                     define_filter,
                     NULL,
                     RSRC_CONF,
                     "Define an external filter"),
    {NULL}
};

static int ef_init(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *main_s)
{
    main_server = main_s;
    return OK;
}

static void register_hooks(apr_pool_t *p)
{
    ap_hook_post_config(ef_init, NULL, NULL, APR_HOOK_MIDDLE);
}
    return NULL;
}

/**
 * Definition on how to react if the specified commands (ReplaceFilterDefine,
 * ReplacePattern, HeaderReplacePattern) occur in the configuration file.
 */
static const command_rec cmds[] =
{
    /** Definition of a new filter. The directive is allowed everywhere
     * (RSRC_CONF) and the method define_filter is to be called. The directive
     * takes any number of arguments which get passed "raw" to the method.
     */
    AP_INIT_RAW_ARGS("ReplaceFilterDefine",
                     define_filter,
                     NULL,
                     RSRC_CONF,
                     "Define a replace filter"),
    /** Add a replacement pattern to the specified filter. The directive takes
     * three arguments: the name of the filter, the regular expression for the
     * pattern and the replacement string. This directive is also allowed
     * everywhere (RSRC_CONF) and add_pattern is called.
     */
    AP_INIT_TAKE3("ReplacePattern",
                  add_pattern,
                  NULL,
                  RSRC_CONF,
                  "usage: ReplacePattern filtername pattern replacement"),
    /** Add a header replacement pattern to the specified filter. This 
     * directive takes four arguments: the name of the filter, the name of the 
     * header field, the regular expression for the pattern and its replacement
Beispiel #11
0

#ifdef APACHE_2_X
static int neko_init( apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp, server_rec *s ) {
	mod_neko_do_init();
	return OK;
}
#else
static void neko_init(server_rec *s, pool *p) {
	mod_neko_do_init();
}
#endif

static command_rec neko_module_cmds[] = {
#	ifdef APACHE_2_X
	AP_INIT_RAW_ARGS( "ModNeko", mod_neko_config , NULL, RSRC_CONF, NULL ),
#	else
	{ "ModNeko", mod_neko_config, NULL, RSRC_CONF, RAW_ARGS, NULL },
#	endif
	{ NULL }
};

#ifdef APACHE_2_X

static void neko_register_hooks( apr_pool_t *p ) {
	ap_hook_post_config( neko_init, NULL, NULL, APR_HOOK_MIDDLE );
	ap_hook_handler( neko_handler, NULL, NULL, APR_HOOK_LAST );
};

module AP_MODULE_DECLARE_DATA neko_module = {
	STANDARD20_MODULE_STUFF,
}

static void interval_limit_register_hooks(apr_pool_t *p)
{
    ap_hook_access_checker(interval_limit_access_checker, NULL, NULL, APR_HOOK_MIDDLE);
}

static const command_rec interval_limit_cmds[] =
{
    AP_INIT_FLAG("IntervalLimitEngine", set_engine, NULL,
        OR_FILEINFO, "set \"On\" to enable interval_limit, \"Off\" to disable"),
    AP_INIT_TAKE1("IntervalLimitCookieName",set_cookie_name, NULL,
        OR_FILEINFO, "Name of cookie to lookup"),
    AP_INIT_TAKE1("IntervalLimitMemcachedAddrPort", set_memc_addr, NULL,
        OR_FILEINFO, "Liste of the memcached address( ip or host adresse(s) and port ':' separated). The addresses are ',' comma separated"),
    AP_INIT_RAW_ARGS("IntervalLimitRule", set_rule, NULL,
        OR_FILEINFO, "set an interval limit rule line. multiple rules can be defined."),
    {NULL}
};

/* Dispatch list for API hooks */
module AP_MODULE_DECLARE_DATA interval_limit_module = {
    STANDARD20_MODULE_STUFF,
    interval_limit_create_dir_config,        /* create per-dir    config structures */
    NULL,                                    /* merge  per-dir    config structures */
    NULL,                                    /* create per-server config structures */
    NULL,                                    /* merge  per-server config structures */
    interval_limit_cmds,                     /* table of config file commands       */
    interval_limit_register_hooks            /* register hooks                      */
};

/*
Beispiel #13
0
    }
    else if (add->chain) {
        conf->chain = add->chain;
    }
    else {
        conf->chain = base->chain;
    }

    return conf;
}

static const command_rec filter_cmds[] = {
    AP_INIT_TAKE12("FilterDeclare", filter_declare, NULL, OR_OPTIONS,
        "filter-name [, filter-type]"),
    /** we don't have a TAKE4, so we have to use RAW_ARGS */
    AP_INIT_RAW_ARGS("FilterProvider", filter_provider, NULL, OR_OPTIONS,
        "filter-name, provider-name, dispatch--criterion, dispatch-match"),
    AP_INIT_ITERATE("FilterChain", filter_chain, NULL, OR_OPTIONS,
        "list of filter names with optional [+-=!@]"),
    AP_INIT_TAKE2("FilterTrace", filter_debug, NULL, RSRC_CONF | ACCESS_CONF,
        "Debug level"),
#ifndef NO_PROTOCOL
    AP_INIT_TAKE23("FilterProtocol", filter_protocol, NULL, OR_OPTIONS,
        "filter-name [provider-name] protocol-args"),
#endif
    { NULL }
};

module AP_MODULE_DECLARE_DATA filter_module = {
    STANDARD20_MODULE_STUFF,
    filter_config,
    filter_merge,
    return scfg;
}

static const command_rec mag_commands[] = {
    AP_INIT_FLAG("GssapiSSLonly", mag_ssl_only, NULL, OR_AUTHCFG,
                  "Work only if connection is SSL Secured"),
    AP_INIT_FLAG("GssapiLocalName", mag_map_to_local, NULL, OR_AUTHCFG,
                  "Translate principals to local names"),
    AP_INIT_FLAG("GssapiConnectionBound", mag_conn_ctx, NULL, OR_AUTHCFG,
                  "Authentication is bound to the TCP connection"),
    AP_INIT_FLAG("GssapiSignalPersistentAuth", mag_send_persist, NULL, OR_AUTHCFG,
                  "Send Persitent-Auth header according to connection bound"),
    AP_INIT_FLAG("GssapiUseSessions", mag_use_sess, NULL, OR_AUTHCFG,
                  "Authentication uses mod_sessions to hold status"),
    AP_INIT_RAW_ARGS("GssapiSessionKey", mag_sess_key, NULL, OR_AUTHCFG,
                     "Key Used to seal session data."),
#ifdef HAVE_CRED_STORE
    AP_INIT_FLAG("GssapiUseS4U2Proxy", mag_use_s4u2p, NULL, OR_AUTHCFG,
                  "Initializes credentials for s4u2proxy usage"),
    AP_INIT_ITERATE("GssapiCredStore", mag_cred_store, NULL, OR_AUTHCFG,
                    "Credential Store"),
    AP_INIT_RAW_ARGS("GssapiDelegCcacheDir", mag_deleg_ccache_dir, NULL,
                     OR_AUTHCFG, "Directory to store delegated credentials"),
    AP_INIT_FLAG("GssapiDelegCcacheUnique", mag_deleg_ccache_unique, NULL,
                 OR_AUTHCFG, "Use unique ccaches for delgation"),
#endif
#ifdef HAVE_GSS_ACQUIRE_CRED_WITH_PASSWORD
    AP_INIT_FLAG("GssapiBasicAuth", mag_use_basic_auth, NULL, OR_AUTHCFG,
                     "Allows use of Basic Auth for authentication"),
    AP_INIT_ITERATE("GssapiBasicAuthMech", mag_basic_auth_mechs, NULL,
                    OR_AUTHCFG, "Mechanisms to use for basic auth"),
Beispiel #15
0
  else
    return "CDNHTMLIgnoreTokenLocation: first argument must be \"before\" or \"after\"";
  cfg->ignore_token_arg_relative = apr_pstrdup(cmd->pool, arg);
  return NULL;
}

static const command_rec cdn_cmds[] = {
  AP_INIT_ITERATE("CDNHTMLFromServers", set_fromservers, NULL,
                  RSRC_CONF | ACCESS_CONF,
                  "Set server names that will be replaced by CDNHTMLMapServer"),
  AP_INIT_TAKE1("CDNHTMLToServer", ap_set_string_slot,
                (void *)APR_OFFSETOF(cdn_conf, to_server),
                RSRC_CONF | ACCESS_CONF,
                "Set destination server name for CDNHTMLRemapURLServer"),
  AP_INIT_RAW_ARGS("CDNHTMLRemapURLServer", set_serverremap, NULL,
                   RSRC_CONF | ACCESS_CONF,
                   "Convert matching URLs to come from a different server"),

  AP_INIT_ITERATE("CDNHTMLContentType", set_content_type, NULL,
                  RSRC_CONF | ACCESS_CONF,
                  "Declare content types that will be parsed for CDNification as HTML"),

  AP_INIT_TAKE12("CDNHTMLDocType", set_doctype, NULL,
                 RSRC_CONF|ACCESS_CONF, "(HTML|XHTML) [Legacy]"),

  AP_INIT_TAKE1("CDNHTMLCharsetDefault", set_charset_default, NULL,
                RSRC_CONF|ACCESS_CONF, "Set default input/output character set"),

  AP_INIT_ITERATE("CDNHTMLStartParse", set_skipto, NULL,
                  RSRC_CONF | ACCESS_CONF,
                  "Ignore anything in front of the first of these elements"),