HAProxy
Configuration Manual
----------------------
- version 1.3.12
+ version 1.3.12.1
willy tarreau
- 2007/07/24
+ 2007/07/25
This document covers the configuration language as implemented in the version
stats auth X - X X
stats enable X - X X
stats realm X - X X
+stats refresh X - X X
stats scope X - X X
stats uri X - X X
transparent X X X -
/*
* URI-based user authentication using the HTTP basic method.
*
- * Copyright 2006 Willy Tarreau <w@1wt.eu>
+ * Copyright 2006-2007 Willy Tarreau <w@1wt.eu>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
int uri_len; /* the prefix length */
char *uri_prefix; /* the prefix we want to match */
char *auth_realm; /* the realm reported to the client */
+ int refresh; /* refresh interval for the browser (in seconds) */
struct user_auth *users; /* linked list of valid user:passwd couples */
struct stat_scope *scope; /* linked list of authorized proxies */
};
struct uri_auth *stats_check_init_uri_auth(struct uri_auth **root);
struct uri_auth *stats_set_uri(struct uri_auth **root, char *uri);
struct uri_auth *stats_set_realm(struct uri_auth **root, char *realm);
+struct uri_auth *stats_set_refresh(struct uri_auth **root, int interval);
struct uri_auth *stats_add_auth(struct uri_auth **root, char *user);
struct uri_auth *stats_add_scope(struct uri_auth **root, char *scope);
#endif /* _COMMON_URI_AUTH_H */
+
+/*
+ * Local variables:
+ * c-indent-level: 8
+ * c-basic-offset: 8
+ * End:
+ */
Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
return -1;
}
+ } else if (!strcmp(args[1], "refresh")) {
+ int interval = atoi(args[2]);
+
+ if (interval < 0) {
+ Alert("parsing [%s:%d] : 'refresh' needs a positive interval in seconds.\n", file, linenum);
+ return -1;
+ } else if (!stats_set_refresh(&curproxy->uri_auth, interval)) {
+ Alert("parsing [%s:%d] : out of memory.\n", file, linenum);
+ return -1;
+ }
} else if (!strcmp(args[1], "auth")) {
if (*(args[2]) == 0) {
Alert("parsing [%s:%d] : 'auth' needs a user:password account.\n", file, linenum);
"HTTP/1.0 200 OK\r\n"
"Cache-Control: no-cache\r\n"
"Connection: close\r\n"
- "Content-Type: text/html\r\n"
- "\r\n");
+ "Content-Type: text/html\r\n");
+
+ if (s->be->uri_auth->refresh > 0)
+ chunk_printf(&msg, sizeof(trash), "Refresh: %d\r\n",
+ s->be->uri_auth->refresh);
+
+ chunk_printf(&msg, sizeof(trash), "\r\n");
s->txn.status = 200;
client_retnclose(s, &msg); // send the start of the response.
/*
* URI-based user authentication using the HTTP basic method.
*
- * Copyright 2006 Willy Tarreau <w@1wt.eu>
+ * Copyright 2006-2007 Willy Tarreau <w@1wt.eu>
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
return NULL;
}
+/*
+ * Returns a default uri_auth with the <refresh> refresh interval.
+ * Uses the pointer provided if not NULL and not initialized.
+ */
+struct uri_auth *stats_set_refresh(struct uri_auth **root, int interval)
+{
+ struct uri_auth *u;
+
+ if ((u = stats_check_init_uri_auth(root)) != NULL)
+ u->refresh = interval;
+ return u;
+}
+
/*
* Returns a default uri_auth with a <user:passwd> entry added to the list of
* authorized users. If a matching entry is found, no update will be performed.
return NULL;
}
+/*
+ * Local variables:
+ * c-indent-level: 8
+ * c-basic-offset: 8
+ * End:
+ */