[REORG] http: move the http-request rules to proto_http
And also rename "req_acl_rule" "http_req_rule". At the beginning that
was a bit confusing to me, especially the "req_acl" list which in fact
holds what we call rules. After some digging, it appeared that some
part of the code is 100% HTTP and not just related to authentication
anymore, so let's move that part to HTTP and keep the auth-only code
in auth.c.
diff --git a/include/types/auth.h b/include/types/auth.h
index f7e3dd6..e60d363 100644
--- a/include/types/auth.h
+++ b/include/types/auth.h
@@ -22,25 +22,6 @@
#define AU_O_INSECURE 0x00000001 /* insecure, unencrypted password */
-enum {
- PR_REQ_ACL_ACT_UNKNOWN = 0,
- PR_REQ_ACL_ACT_ALLOW,
- PR_REQ_ACL_ACT_DENY,
- PR_REQ_ACL_ACT_HTTP_AUTH,
-
- PR_REQ_ACL_ACT_MAX
-};
-
-
-struct req_acl_rule {
- struct list list;
- struct acl_cond *cond; /* acl condition to meet */
- unsigned int action;
- struct {
- char *realm;
- } http_auth;
-};
-
struct auth_users {
struct auth_users *next;
unsigned int flags;
diff --git a/include/types/proto_http.h b/include/types/proto_http.h
index 421bb98..3ccb2bd 100644
--- a/include/types/proto_http.h
+++ b/include/types/proto_http.h
@@ -2,7 +2,7 @@
* include/types/proto_http.h
* This file contains HTTP protocol definitions.
*
- * Copyright (C) 2000-2010 Willy Tarreau - w@1wt.eu
+ * Copyright (C) 2000-2011 Willy Tarreau - w@1wt.eu
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -228,6 +228,14 @@
HTTP_AUTH_DIGEST,
};
+enum {
+ HTTP_REQ_ACT_UNKNOWN = 0,
+ HTTP_REQ_ACT_ALLOW,
+ HTTP_REQ_ACT_DENY,
+ HTTP_REQ_ACT_HTTP_AUTH,
+ HTTP_REQ_ACT_MAX
+};
+
/* This is an HTTP message, as described in RFC2616. It can be either a request
* message or a response message.
*
@@ -285,6 +293,15 @@
char *user, *pass; /* extracted username & password */
};
+struct http_req_rule {
+ struct list list;
+ struct acl_cond *cond; /* acl condition to meet */
+ unsigned int action;
+ struct {
+ char *realm;
+ } http_auth;
+};
+
/* This is an HTTP transaction. It contains both a request message and a
* response message (which can be empty).
*/
diff --git a/include/types/proxy.h b/include/types/proxy.h
index 6208d7b..214cdf5 100644
--- a/include/types/proxy.h
+++ b/include/types/proxy.h
@@ -2,7 +2,7 @@
* include/types/proxy.h
* This file defines everything related to proxies.
*
- * Copyright (C) 2000-2010 Willy Tarreau - w@1wt.eu
+ * Copyright (C) 2000-2011 Willy Tarreau - w@1wt.eu
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -188,7 +188,7 @@
char *name; /* default backend name during config parse */
} defbe;
struct list acl; /* ACL declared on this proxy */
- struct list req_acl; /* request ACL: allow/deny/http-auth */
+ struct list http_req_rules; /* HTTP request rules: allow/deny/http-auth */
struct list block_cond; /* early blocking conditions (chained) */
struct list redirect_rules; /* content redirecting rules (chained) */
struct list switching_rules; /* content switching rules (chained) */