|
Packit Service |
384592 |
/*
|
|
Packit Service |
384592 |
* ModSecurity for Apache 2.x, http://www.modsecurity.org/
|
|
Packit Service |
384592 |
* Copyright (c) 2004-2013 Trustwave Holdings, Inc. (http://www.trustwave.com/)
|
|
Packit Service |
384592 |
*
|
|
Packit Service |
384592 |
* You may not use this file except in compliance with
|
|
Packit Service |
384592 |
* the License. You may obtain a copy of the License at
|
|
Packit Service |
384592 |
*
|
|
Packit Service |
384592 |
* http://www.apache.org/licenses/LICENSE-2.0
|
|
Packit Service |
384592 |
*
|
|
Packit Service |
384592 |
* If any of the files related to licensing are missing or if you have any
|
|
Packit Service |
384592 |
* other questions related to licensing please contact Trustwave Holdings, Inc.
|
|
Packit Service |
384592 |
* directly using the email address security@modsecurity.org.
|
|
Packit Service |
384592 |
*/
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#pragma once
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#include <limits.h>
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#include "http_core.h"
|
|
Packit Service |
384592 |
#include "http_request.h"
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#include "modsecurity.h"
|
|
Packit Service |
384592 |
#include "apache2.h"
|
|
Packit Service |
384592 |
#include "http_main.h"
|
|
Packit Service |
384592 |
#include "http_connection.h"
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#include "apr_optional.h"
|
|
Packit Service |
384592 |
#include "mod_log_config.h"
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#include "msc_logging.h"
|
|
Packit Service |
384592 |
#include "msc_util.h"
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#include "ap_mpm.h"
|
|
Packit Service |
384592 |
#include "scoreboard.h"
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#include "apr_version.h"
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#include "apr_lib.h"
|
|
Packit Service |
384592 |
#include "ap_config.h"
|
|
Packit Service |
384592 |
#include "http_config.h"
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#ifdef __cplusplus
|
|
Packit Service |
384592 |
extern "C"
|
|
Packit Service |
384592 |
{
|
|
Packit Service |
384592 |
#endif
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
server_rec *modsecInit();
|
|
Packit Service |
384592 |
void modsecTerminate();
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
void modsecStartConfig();
|
|
Packit Service |
384592 |
directory_config *modsecGetDefaultConfig();
|
|
Packit Service |
384592 |
const char *modsecProcessConfig(directory_config *config, const char *file, const char *dir);
|
|
Packit Service |
384592 |
void modsecFinalizeConfig();
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
void modsecInitProcess();
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
conn_rec *modsecNewConnection();
|
|
Packit Service |
384592 |
void modsecProcessConnection(conn_rec *c);
|
|
Packit Service |
384592 |
int modsecFinishConnection(conn_rec *c);
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
request_rec *modsecNewRequest(conn_rec *connection, directory_config *config);
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
int modsecProcessRequestBody(request_rec *r);
|
|
Packit Service |
384592 |
int modsecProcessRequestHeaders(request_rec *r);
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
static inline int modsecProcessRequest(request_rec *r) {
|
|
Packit Service |
384592 |
int status;
|
|
Packit Service |
384592 |
status = modsecProcessRequestHeaders(r);
|
|
Packit Service |
384592 |
if (status != DECLINED) {
|
|
Packit Service |
384592 |
return status;
|
|
Packit Service |
384592 |
}
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
return modsecProcessRequestBody(r);
|
|
Packit Service |
384592 |
}
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
int modsecProcessResponse(request_rec *r);
|
|
Packit Service |
384592 |
int modsecFinishRequest(request_rec *r);
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
void modsecSetLogHook(void *obj, void (*hook)(void *obj, int level, char *str));
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#define NOTE_MSR_BRIGADE_REQUEST "modsecurity-brigade-request"
|
|
Packit Service |
384592 |
#define NOTE_MSR_BRIGADE_RESPONSE "modsecurity-brigade-response"
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
static inline void
|
|
Packit Service |
384592 |
modsecSetBodyBrigade(request_rec *r, apr_bucket_brigade *b) {
|
|
Packit Service |
384592 |
apr_table_setn(r->notes, NOTE_MSR_BRIGADE_REQUEST, (char *)b);
|
|
Packit Service |
384592 |
};
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
static inline apr_bucket_brigade *
|
|
Packit Service |
384592 |
modsecGetBodyBrigade(request_rec *r) {
|
|
Packit Service |
384592 |
return (apr_bucket_brigade *)apr_table_get(r->notes, NOTE_MSR_BRIGADE_REQUEST);
|
|
Packit Service |
384592 |
};
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
static inline void
|
|
Packit Service |
384592 |
modsecSetResponseBrigade(request_rec *r, apr_bucket_brigade *b) {
|
|
Packit Service |
384592 |
apr_table_setn(r->notes, NOTE_MSR_BRIGADE_RESPONSE, (char *)b);
|
|
Packit Service |
384592 |
};
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
static inline apr_bucket_brigade *
|
|
Packit Service |
384592 |
modsecGetResponseBrigade(request_rec *r) {
|
|
Packit Service |
384592 |
return (apr_bucket_brigade *)apr_table_get(r->notes, NOTE_MSR_BRIGADE_RESPONSE);
|
|
Packit Service |
384592 |
};
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
void modsecSetReadBody(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos));
|
|
Packit Service |
384592 |
void modsecSetReadResponse(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length, unsigned int *readcnt, int *is_eos));
|
|
Packit Service |
384592 |
void modsecSetWriteBody(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length));
|
|
Packit Service |
384592 |
void modsecSetWriteResponse(apr_status_t (*func)(request_rec *r, char *buf, unsigned int length));
|
|
Packit Service |
384592 |
void modsecSetDropAction(int (*func)(request_rec *r));
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
int modsecIsResponseBodyAccessEnabled(request_rec *r);
|
|
Packit Service |
384592 |
int modsecIsRequestBodyAccessEnabled(request_rec *r);
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
int modsecContextState(request_rec *r);
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
void modsecSetConfigForIISRequestBody(request_rec *r);
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
const char *modsecIsServerSignatureAvailale(void);
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#ifdef VERSION_IIS
|
|
Packit Service |
384592 |
void modsecStatusEngineCall(void);
|
|
Packit Service |
384592 |
void modsecReportRemoteLoadedRules(void);
|
|
Packit Service |
384592 |
#endif
|
|
Packit Service |
384592 |
|
|
Packit Service |
384592 |
#ifdef __cplusplus
|
|
Packit Service |
384592 |
}
|
|
Packit Service |
384592 |
#endif
|