summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Kew <niq@apache.org>2006-08-08 23:18:23 +0000
committerNick Kew <niq@apache.org>2006-08-08 23:18:23 +0000
commit537844367d277667a913c1408c08b4f48177b352 (patch)
tree3f54b99efdff5e43cc4f6984949ce610159886bc
parentf4d7f735055d6c51e37dbd1bf8c433fd9cd7abbc (diff)
downloadhttpd-537844367d277667a913c1408c08b4f48177b352.tar.gz
Fix style (indentation at least) to apache style rules before reviewing top of this.
No functional change. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@429875 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--modules/proxy/proxy_util.c722
1 files changed, 411 insertions, 311 deletions
diff --git a/modules/proxy/proxy_util.c b/modules/proxy/proxy_util.c
index 801495a402..957311dff9 100644
--- a/modules/proxy/proxy_util.c
+++ b/modules/proxy/proxy_util.c
@@ -49,21 +49,27 @@ PROXY_DECLARE(int) ap_proxy_hex2c(const char *x)
#if !APR_CHARSET_EBCDIC
ch = x[0];
- if (apr_isdigit(ch))
- i = ch - '0';
- else if (apr_isupper(ch))
- i = ch - ('A' - 10);
- else
- i = ch - ('a' - 10);
+ if (apr_isdigit(ch)) {
+ i = ch - '0';
+ }
+ else if (apr_isupper(ch)) {
+ i = ch - ('A' - 10);
+ }
+ else {
+ i = ch - ('a' - 10);
+ }
i <<= 4;
ch = x[1];
- if (apr_isdigit(ch))
- i += ch - '0';
- else if (apr_isupper(ch))
- i += ch - ('A' - 10);
- else
- i += ch - ('a' - 10);
+ if (apr_isdigit(ch)) {
+ i += ch - '0';
+ }
+ else if (apr_isupper(ch)) {
+ i += ch - ('A' - 10);
+ }
+ else {
+ i += ch - ('a' - 10);
+ }
return i;
#else /*APR_CHARSET_EBCDIC*/
/*
@@ -98,16 +104,20 @@ PROXY_DECLARE(void) ap_proxy_c2hex(int ch, char *x)
x[0] = '%';
i = (ch & 0xF0) >> 4;
- if (i >= 10)
- x[1] = ('A' - 10) + i;
- else
- x[1] = '0' + i;
+ if (i >= 10) {
+ x[1] = ('A' - 10) + i;
+ }
+ else {
+ x[1] = '0' + i;
+ }
i = ch & 0x0F;
- if (i >= 10)
- x[2] = ('A' - 10) + i;
- else
- x[2] = '0' + i;
+ if (i >= 10) {
+ x[2] = ('A' - 10) + i;
+ }
+ else {
+ x[2] = '0' + i;
+ }
#else /*APR_CHARSET_EBCDIC*/
static const char ntoa[] = { "0123456789ABCDEF" };
char buf[1];
@@ -134,8 +144,9 @@ PROXY_DECLARE(void) ap_proxy_c2hex(int ch, char *x)
* and encodes those which must be encoded, and does not touch
* those which must not be touched.
*/
-PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, enum enctype t,
- int forcedec, int proxyreq)
+PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len,
+ enum enctype t, int forcedec,
+ int proxyreq)
{
int i, j, ch;
char *y;
@@ -150,55 +161,65 @@ PROXY_DECLARE(char *)ap_proxy_canonenc(apr_pool_t *p, const char *x, int len, en
* it may be form-encoded. (Although RFC 1738 doesn't allow this -
* it only permits ; / ? : @ = & as reserved chars.)
*/
- if (t == enc_path)
- allowed = "$-_.+!*'(),;:@&=";
- else if (t == enc_search)
- allowed = "$-_.!*'(),;:@&=";
- else if (t == enc_user)
- allowed = "$-_.+!*'(),;@&=";
- else if (t == enc_fpath)
- allowed = "$-_.+!*'(),?:@&=";
- else /* if (t == enc_parm) */
- allowed = "$-_.+!*'(),?/:@&=";
-
- if (t == enc_path)
- reserved = "/";
- else if (t == enc_search)
- reserved = "+";
- else
- reserved = "";
+ if (t == enc_path) {
+ allowed = "$-_.+!*'(),;:@&=";
+ }
+ else if (t == enc_search) {
+ allowed = "$-_.!*'(),;:@&=";
+ }
+ else if (t == enc_user) {
+ allowed = "$-_.+!*'(),;@&=";
+ }
+ else if (t == enc_fpath) {
+ allowed = "$-_.+!*'(),?:@&=";
+ }
+ else { /* if (t == enc_parm) */
+ allowed = "$-_.+!*'(),?/:@&=";
+ }
+
+ if (t == enc_path) {
+ reserved = "/";
+ }
+ else if (t == enc_search) {
+ reserved = "+";
+ }
+ else {
+ reserved = "";
+ }
y = apr_palloc(p, 3 * len + 1);
for (i = 0, j = 0; i < len; i++, j++) {
/* always handle '/' first */
- ch = x[i];
- if (strchr(reserved, ch)) {
- y[j] = ch;
- continue;
- }
+ ch = x[i];
+ if (strchr(reserved, ch)) {
+ y[j] = ch;
+ continue;
+ }
/*
* decode it if not already done. do not decode reverse proxied URLs
* unless specifically forced
*/
- if ((forcedec || (proxyreq && proxyreq != PROXYREQ_REVERSE)) && ch == '%') {
- if (!apr_isxdigit(x[i + 1]) || !apr_isxdigit(x[i + 2]))
- return NULL;
- ch = ap_proxy_hex2c(&x[i + 1]);
- i += 2;
- if (ch != 0 && strchr(reserved, ch)) { /* keep it encoded */
- ap_proxy_c2hex(ch, &y[j]);
- j += 2;
- continue;
+ if ((forcedec || (proxyreq && proxyreq != PROXYREQ_REVERSE)) && ch == '%') {
+ if (!apr_isxdigit(x[i + 1]) || !apr_isxdigit(x[i + 2])) {
+ return NULL;
+ }
+ ch = ap_proxy_hex2c(&x[i + 1]);
+ i += 2;
+ if (ch != 0 && strchr(reserved, ch)) { /* keep it encoded */
+ ap_proxy_c2hex(ch, &y[j]);
+ j += 2;
+ continue;
+ }
}
- }
/* recode it, if necessary */
- if (!apr_isalnum(ch) && !strchr(allowed, ch)) {
- ap_proxy_c2hex(ch, &y[j]);
- j += 2;
- }
- else
- y[j] = ch;
+ if (!apr_isalnum(ch) && !strchr(allowed, ch)) {
+ ap_proxy_c2hex(ch, &y[j]);
+ j += 2;
+ }
+ else {
+ y[j] = ch;
+ }
}
y[j] = '\0';
return y;
@@ -223,41 +244,46 @@ PROXY_DECLARE(char *)
apr_port_t tmp_port;
apr_status_t rv;
- if (url[0] != '/' || url[1] != '/')
- return "Malformed URL";
+ if (url[0] != '/' || url[1] != '/') {
+ return "Malformed URL";
+ }
host = url + 2;
url = strchr(host, '/');
- if (url == NULL)
- url = "";
- else
- *(url++) = '\0'; /* skip seperating '/' */
+ if (url == NULL) {
+ url = "";
+ }
+ else {
+ *(url++) = '\0'; /* skip seperating '/' */
+ }
/* find _last_ '@' since it might occur in user/password part */
strp = strrchr(host, '@');
if (strp != NULL) {
- *strp = '\0';
- user = host;
- host = strp + 1;
+ *strp = '\0';
+ user = host;
+ host = strp + 1;
/* find password */
- strp = strchr(user, ':');
- if (strp != NULL) {
- *strp = '\0';
- password = ap_proxy_canonenc(p, strp + 1, strlen(strp + 1), enc_user, 1, 0);
- if (password == NULL)
- return "Bad %-escape in URL (password)";
- }
+ strp = strchr(user, ':');
+ if (strp != NULL) {
+ *strp = '\0';
+ password = ap_proxy_canonenc(p, strp + 1, strlen(strp + 1), enc_user, 1, 0);
+ if (password == NULL) {
+ return "Bad %-escape in URL (password)";
+ }
+ }
- user = ap_proxy_canonenc(p, user, strlen(user), enc_user, 1, 0);
- if (user == NULL)
- return "Bad %-escape in URL (username)";
+ user = ap_proxy_canonenc(p, user, strlen(user), enc_user, 1, 0);
+ if (user == NULL) {
+ return "Bad %-escape in URL (username)";
+ }
}
if (userp != NULL) {
- *userp = user;
+ *userp = user;
}
if (passwordp != NULL) {
- *passwordp = password;
+ *passwordp = password;
}
/*
@@ -300,49 +326,64 @@ PROXY_DECLARE(const char *)
q = strchr(x, ',');
/* check for RFC 850 date */
if (q != NULL && q - x > 3 && q[1] == ' ') {
- *q = '\0';
- for (wk = 0; wk < 7; wk++)
- if (strcmp(x, lwday[wk]) == 0)
- break;
- *q = ',';
- if (wk == 7)
- return x; /* not a valid date */
- if (q[4] != '-' || q[8] != '-' || q[11] != ' ' || q[14] != ':' ||
- q[17] != ':' || strcmp(&q[20], " GMT") != 0)
- return x;
- if (sscanf(q + 2, "%u-%3s-%u %u:%u:%u %3s", &mday, month, &year,
- &hour, &min, &sec, zone) != 7)
- return x;
- if (year < 70)
- year += 2000;
- else
- year += 1900;
+ *q = '\0';
+ for (wk = 0; wk < 7; wk++) {
+ if (strcmp(x, lwday[wk]) == 0) {
+ break;
+ }
+ }
+ *q = ',';
+ if (wk == 7) {
+ return x; /* not a valid date */
+ }
+ if (q[4] != '-' || q[8] != '-' || q[11] != ' ' || q[14] != ':' ||
+ q[17] != ':' || strcmp(&q[20], " GMT") != 0) {
+ return x;
+ }
+ if (sscanf(q + 2, "%u-%3s-%u %u:%u:%u %3s", &mday, month, &year,
+ &hour, &min, &sec, zone) != 7) {
+ return x;
+ }
+ if (year < 70) {
+ year += 2000;
+ }
+ else {
+ year += 1900;
+ }
}
else {
/* check for acstime() date */
- if (x[3] != ' ' || x[7] != ' ' || x[10] != ' ' || x[13] != ':' ||
- x[16] != ':' || x[19] != ' ' || x[24] != '\0')
- return x;
- if (sscanf(x, "%3s %3s %u %u:%u:%u %u", week, month, &mday, &hour,
- &min, &sec, &year) != 7)
- return x;
- for (wk = 0; wk < 7; wk++)
- if (strcmp(week, apr_day_snames[wk]) == 0)
- break;
- if (wk == 7)
- return x;
+ if (x[3] != ' ' || x[7] != ' ' || x[10] != ' ' || x[13] != ':' ||
+ x[16] != ':' || x[19] != ' ' || x[24] != '\0') {
+ return x;
+ }
+ if (sscanf(x, "%3s %3s %u %u:%u:%u %u", week, month, &mday, &hour,
+ &min, &sec, &year) != 7) {
+ return x;
+ }
+ for (wk = 0; wk < 7; wk++) {
+ if (strcmp(week, apr_day_snames[wk]) == 0) {
+ break;
+ }
+ }
+ if (wk == 7) {
+ return x;
+ }
}
/* check date */
- for (mon = 0; mon < 12; mon++)
- if (strcmp(month, apr_month_snames[mon]) == 0)
- break;
- if (mon == 12)
- return x;
+ for (mon = 0; mon < 12; mon++) {
+ if (strcmp(month, apr_month_snames[mon]) == 0) {
+ break;
+ }
+ }
+ if (mon == 12) {
+ return x;
+ }
q = apr_palloc(p, 30);
apr_snprintf(q, 30, "%s, %.2d %s %d %.2d:%.2d:%.2d GMT", apr_day_snames[wk],
- mday, apr_month_snames[mon], year, hour, min, sec);
+ mday, apr_month_snames[mon], year, hour, min, sec);
return q;
}
@@ -389,21 +430,24 @@ PROXY_DECLARE(int) ap_proxy_liststr(const char *list, const char *val)
len = strlen(val);
while (list != NULL) {
- p = ap_strchr_c(list, ',');
- if (p != NULL) {
- i = p - list;
- do
- p++;
- while (apr_isspace(*p));
- }
- else
- i = strlen(list);
+ p = ap_strchr_c(list, ',');
+ if (p != NULL) {
+ i = p - list;
+ do {
+ p++;
+ } while (apr_isspace(*p));
+ }
+ else {
+ i = strlen(list);
+ }
- while (i > 0 && apr_isspace(list[i - 1]))
- i--;
- if (i == len && strncasecmp(list, val, len) == 0)
- return 1;
- list = p;
+ while (i > 0 && apr_isspace(list[i - 1])) {
+ i--;
+ }
+ if (i == len && strncasecmp(list, val, len) == 0) {
+ return 1;
+ }
+ list = p;
}
return 0;
}
@@ -423,28 +467,32 @@ PROXY_DECLARE(char *)ap_proxy_removestr(apr_pool_t *pool, const char *list, cons
len = strlen(val);
while (list != NULL) {
- p = ap_strchr_c(list, ',');
- if (p != NULL) {
- i = p - list;
- do
- p++;
- while (apr_isspace(*p));
- }
- else
- i = strlen(list);
-
- while (i > 0 && apr_isspace(list[i - 1]))
- i--;
- if (i == len && strncasecmp(list, val, len) == 0) {
- /* do nothing */
- }
- else {
- if (new)
- new = apr_pstrcat(pool, new, ",", apr_pstrndup(pool, list, i), NULL);
- else
- new = apr_pstrndup(pool, list, i);
- }
- list = p;
+ p = ap_strchr_c(list, ',');
+ if (p != NULL) {
+ i = p - list;
+ do {
+ p++;
+ } while (apr_isspace(*p));
+ }
+ else {
+ i = strlen(list);
+ }
+
+ while (i > 0 && apr_isspace(list[i - 1])) {
+ i--;
+ }
+ if (i == len && strncasecmp(list, val, len) == 0) {
+ /* do nothing */
+ }
+ else {
+ if (new) {
+ new = apr_pstrcat(pool, new, ",", apr_pstrndup(pool, list, i), NULL);
+ }
+ else {
+ new = apr_pstrndup(pool, list, i);
+ }
+ }
+ list = p;
}
return new;
}
@@ -458,19 +506,24 @@ PROXY_DECLARE(int) ap_proxy_hex2sec(const char *x)
unsigned int j;
for (i = 0, j = 0; i < 8; i++) {
- ch = x[i];
- j <<= 4;
- if (apr_isdigit(ch))
- j |= ch - '0';
- else if (apr_isupper(ch))
- j |= ch - ('A' - 10);
- else
- j |= ch - ('a' - 10);
+ ch = x[i];
+ j <<= 4;
+ if (apr_isdigit(ch)) {
+ j |= ch - '0';
+ }
+ else if (apr_isupper(ch)) {
+ j |= ch - ('A' - 10);
+ }
+ else {
+ j |= ch - ('a' - 10);
+ }
+ }
+ if (j == 0xffffffff) {
+ return -1; /* so that it works with 8-byte ints */
+ }
+ else {
+ return j;
}
- if (j == 0xffffffff)
- return -1; /* so that it works with 8-byte ints */
- else
- return j;
}
/*
@@ -482,12 +535,14 @@ PROXY_DECLARE(void) ap_proxy_sec2hex(int t, char *y)
unsigned int j = t;
for (i = 7; i >= 0; i--) {
- ch = j & 0xF;
- j >>= 4;
- if (ch >= 10)
- y[i] = ch + ('A' - 10);
- else
- y[i] = ch + '0';
+ ch = j & 0xF;
+ j >>= 4;
+ if (ch >= 10) {
+ y[i] = ch + ('A' - 10);
+ }
+ else {
+ y[i] = ch + '0';
+ }
}
y[8] = '\0';
}
@@ -520,21 +575,22 @@ static const char *
char *url, *user = NULL, *password = NULL, *err, *host;
apr_port_t port;
- if (r->hostname != NULL)
- return r->hostname;
+ if (r->hostname != NULL) {
+ return r->hostname;
+ }
/* Set url to the first char after "scheme://" */
- if ((url = strchr(r->uri, ':')) == NULL
- || url[1] != '/' || url[2] != '/')
- return NULL;
+ if ((url = strchr(r->uri, ':')) == NULL || url[1] != '/' || url[2] != '/') {
+ return NULL;
+ }
url = apr_pstrdup(r->pool, &url[1]); /* make it point to "//", which is what proxy_canon_netloc expects */
err = ap_proxy_canon_netloc(r->pool, &url, &user, &password, &host, &port);
- if (err != NULL)
- ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
- "%s", err);
+ if (err != NULL) {
+ ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r, "%s", err);
+ }
r->hostname = host;
@@ -567,89 +623,99 @@ PROXY_DECLARE(int) ap_proxy_is_ipaddr(struct dirconn_entry *This, apr_pool_t *p)
/* Iterate over up to 4 (dotted) quads. */
for (quads = 0; quads < 4 && *addr != '\0'; ++quads) {
- char *tmp;
+ char *tmp;
- if (*addr == '/' && quads > 0) /* netmask starts here. */
- break;
+ if (*addr == '/' && quads > 0) { /* netmask starts here. */
+ break;
+ }
- if (!apr_isdigit(*addr))
- return 0; /* no digit at start of quad */
+ if (!apr_isdigit(*addr)) {
+ return 0; /* no digit at start of quad */
+ }
- ip_addr[quads] = strtol(addr, &tmp, 0);
+ ip_addr[quads] = strtol(addr, &tmp, 0);
- if (tmp == addr) /* expected a digit, found something else */
- return 0;
+ if (tmp == addr) { /* expected a digit, found something else */
+ return 0;
+ }
- if (ip_addr[quads] < 0 || ip_addr[quads] > 255) {
- /* invalid octet */
- return 0;
- }
+ if (ip_addr[quads] < 0 || ip_addr[quads] > 255) {
+ /* invalid octet */
+ return 0;
+ }
- addr = tmp;
+ addr = tmp;
- if (*addr == '.' && quads != 3)
- ++addr; /* after the 4th quad, a dot would be illegal */
+ if (*addr == '.' && quads != 3) {
+ ++addr; /* after the 4th quad, a dot would be illegal */
+ }
}
- for (This->addr.s_addr = 0, i = 0; i < quads; ++i)
- This->addr.s_addr |= htonl(ip_addr[i] << (24 - 8 * i));
+ for (This->addr.s_addr = 0, i = 0; i < quads; ++i) {
+ This->addr.s_addr |= htonl(ip_addr[i] << (24 - 8 * i));
+ }
if (addr[0] == '/' && apr_isdigit(addr[1])) { /* net mask follows: */
- char *tmp;
+ char *tmp;
- ++addr;
+ ++addr;
- bits = strtol(addr, &tmp, 0);
+ bits = strtol(addr, &tmp, 0);
- if (tmp == addr) /* expected a digit, found something else */
- return 0;
+ if (tmp == addr) { /* expected a digit, found something else */
+ return 0;
+ }
- addr = tmp;
+ addr = tmp;
- if (bits < 0 || bits > 32) /* netmask must be between 0 and 32 */
- return 0;
+ if (bits < 0 || bits > 32) { /* netmask must be between 0 and 32 */
+ return 0;
+ }
}
else {
- /*
- * Determine (i.e., "guess") netmask by counting the
- * number of trailing .0's; reduce #quads appropriately
- * (so that 192.168.0.0 is equivalent to 192.168.)
- */
- while (quads > 0 && ip_addr[quads - 1] == 0)
- --quads;
+ /*
+ * Determine (i.e., "guess") netmask by counting the
+ * number of trailing .0's; reduce #quads appropriately
+ * (so that 192.168.0.0 is equivalent to 192.168.)
+ */
+ while (quads > 0 && ip_addr[quads - 1] == 0) {
+ --quads;
+ }
- /* "IP Address should be given in dotted-quad form, optionally followed by a netmask (e.g., 192.168.111.0/24)"; */
- if (quads < 1)
- return 0;
+ /* "IP Address should be given in dotted-quad form, optionally followed by a netmask (e.g., 192.168.111.0/24)"; */
+ if (quads < 1) {
+ return 0;
+ }
- /* every zero-byte counts as 8 zero-bits */
- bits = 8 * quads;
+ /* every zero-byte counts as 8 zero-bits */
+ bits = 8 * quads;
- if (bits != 32) /* no warning for fully qualified IP address */
+ if (bits != 32) { /* no warning for fully qualified IP address */
ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- "Warning: NetMask not supplied with IP-Addr; guessing: %s/%ld",
- inet_ntoa(This->addr), bits);
+ "Warning: NetMask not supplied with IP-Addr; guessing: %s/%ld",
+ inet_ntoa(This->addr), bits);
+ }
}
This->mask.s_addr = htonl(APR_INADDR_NONE << (32 - bits));
if (*addr == '\0' && (This->addr.s_addr & ~This->mask.s_addr) != 0) {
ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- "Warning: NetMask and IP-Addr disagree in %s/%ld",
- inet_ntoa(This->addr), bits);
- This->addr.s_addr &= This->mask.s_addr;
+ "Warning: NetMask and IP-Addr disagree in %s/%ld",
+ inet_ntoa(This->addr), bits);
+ This->addr.s_addr &= This->mask.s_addr;
ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- " Set to %s/%ld",
- inet_ntoa(This->addr), bits);
+ " Set to %s/%ld", inet_ntoa(This->addr), bits);
}
if (*addr == '\0') {
- This->matcher = proxy_match_ipaddr;
- return 1;
+ This->matcher = proxy_match_ipaddr;
+ return 1;
+ }
+ else {
+ return (*addr == '\0'); /* okay iff we've parsed the whole string */
}
- else
- return (*addr == '\0'); /* okay iff we've parsed the whole string */
}
/* Return TRUE if addr represents an IP address (or an IP network address) */
@@ -659,80 +725,79 @@ static int proxy_match_ipaddr(struct dirconn_entry *This, request_rec *r)
struct in_addr addr, *ip;
const char *host = proxy_get_host_of_request(r);
- if (host == NULL) /* oops! */
+ if (host == NULL) { /* oops! */
return 0;
+ }
memset(&addr, '\0', sizeof addr);
memset(ip_addr, '\0', sizeof ip_addr);
if (4 == sscanf(host, "%d.%d.%d.%d", &ip_addr[0], &ip_addr[1], &ip_addr[2], &ip_addr[3])) {
- for (addr.s_addr = 0, i = 0; i < 4; ++i)
- addr.s_addr |= htonl(ip_addr[i] << (24 - 8 * i));
+ for (addr.s_addr = 0, i = 0; i < 4; ++i) {
+ addr.s_addr |= htonl(ip_addr[i] << (24 - 8 * i));
+ }
- if (This->addr.s_addr == (addr.s_addr & This->mask.s_addr)) {
+ if (This->addr.s_addr == (addr.s_addr & This->mask.s_addr)) {
#if DEBUGGING
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
"1)IP-Match: %s[%s] <-> ", host, inet_ntoa(addr));
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
"%s/", inet_ntoa(This->addr));
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
"%s", inet_ntoa(This->mask));
#endif
- return 1;
- }
+ return 1;
+ }
#if DEBUGGING
- else {
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ else {
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
"1)IP-NoMatch: %s[%s] <-> ", host, inet_ntoa(addr));
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
"%s/", inet_ntoa(This->addr));
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
"%s", inet_ntoa(This->mask));
- }
+ }
#endif
}
else {
- struct apr_sockaddr_t *reqaddr;
+ struct apr_sockaddr_t *reqaddr;
if (apr_sockaddr_info_get(&reqaddr, host, APR_UNSPEC, 0, 0, r->pool)
- != APR_SUCCESS) {
+ != APR_SUCCESS) {
#if DEBUGGING
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- "2)IP-NoMatch: hostname=%s msg=Host not found",
- host);
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ "2)IP-NoMatch: hostname=%s msg=Host not found", host);
#endif
- return 0;
- }
+ return 0;
+ }
- /* Try to deal with multiple IP addr's for a host */
- /* FIXME: This needs to be able to deal with IPv6 */
- while (reqaddr) {
- ip = (struct in_addr *) reqaddr->ipaddr_ptr;
- if (This->addr.s_addr == (ip->s_addr & This->mask.s_addr)) {
+ /* Try to deal with multiple IP addr's for a host */
+ /* FIXME: This needs to be able to deal with IPv6 */
+ while (reqaddr) {
+ ip = (struct in_addr *) reqaddr->ipaddr_ptr;
+ if (This->addr.s_addr == (ip->s_addr & This->mask.s_addr)) {
#if DEBUGGING
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- "3)IP-Match: %s[%s] <-> ", host,
- inet_ntoa(*ip));
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- "%s/", inet_ntoa(This->addr));
- ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- "%s", inet_ntoa(This->mask));
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ "3)IP-Match: %s[%s] <-> ", host, inet_ntoa(*ip));
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ "%s/", inet_ntoa(This->addr));
+ ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
+ "%s", inet_ntoa(This->mask));
#endif
- return 1;
- }
+ return 1;
+ }
#if DEBUGGING
- else {
+ else {
ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- "3)IP-NoMatch: %s[%s] <-> ", host,
- inet_ntoa(*ip));
+ "3)IP-NoMatch: %s[%s] <-> ", host, inet_ntoa(*ip));
ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- "%s/", inet_ntoa(This->addr));
+ "%s/", inet_ntoa(This->addr));
ap_log_error(APLOG_MARK, APLOG_STARTUP, 0, NULL,
- "%s", inet_ntoa(This->mask));
- }
+ "%s", inet_ntoa(This->mask));
+ }
#endif
- reqaddr = reqaddr->next;
- }
+ reqaddr = reqaddr->next;
+ }
}
return 0;
@@ -745,12 +810,14 @@ PROXY_DECLARE(int) ap_proxy_is_domainname(struct dirconn_entry *This, apr_pool_t
int i;
/* Domain name must start with a '.' */
- if (addr[0] != '.')
+ if (addr[0] != '.') {
return 0;
+ }
/* rfc1035 says DNS names must consist of "[-a-zA-Z0-9]" and '.' */
- for (i = 0; apr_isalnum(addr[i]) || addr[i] == '-' || addr[i] == '.'; ++i)
+ for (i = 0; apr_isalnum(addr[i]) || addr[i] == '-' || addr[i] == '.'; ++i) {
continue;
+ }
#if 0
if (addr[i] == ':') {
@@ -760,12 +827,14 @@ PROXY_DECLARE(int) ap_proxy_is_domainname(struct dirconn_entry *This, apr_pool_t
}
#endif
- if (addr[i] != '\0')
+ if (addr[i] != '\0') {
return 0;
+ }
/* Strip trailing dots */
- for (i = strlen(addr) - 1; i > 0 && addr[i] == '.'; --i)
+ for (i = strlen(addr) - 1; i > 0 && addr[i] == '.'; --i) {
addr[i] = '\0';
+ }
This->matcher = proxy_match_domainname;
return 1;
@@ -777,17 +846,20 @@ static int proxy_match_domainname(struct dirconn_entry *This, request_rec *r)
const char *host = proxy_get_host_of_request(r);
int d_len = strlen(This->name), h_len;
- if (host == NULL) /* some error was logged already */
+ if (host == NULL) { /* some error was logged already */
return 0;
+ }
h_len = strlen(host);
/* @@@ do this within the setup? */
/* Ignore trailing dots in domain comparison: */
- while (d_len > 0 && This->name[d_len - 1] == '.')
+ while (d_len > 0 && This->name[d_len - 1] == '.') {
--d_len;
- while (h_len > 0 && host[h_len - 1] == '.')
+ }
+ while (h_len > 0 && host[h_len - 1] == '.') {
--h_len;
+ }
return h_len > d_len
&& strncasecmp(&host[h_len - d_len], This->name, d_len) == 0;
}
@@ -800,20 +872,22 @@ PROXY_DECLARE(int) ap_proxy_is_hostname(struct dirconn_entry *This, apr_pool_t *
int i;
/* Host names must not start with a '.' */
- if (host[0] == '.')
+ if (host[0] == '.') {
return 0;
-
+ }
/* rfc1035 says DNS names must consist of "[-a-zA-Z0-9]" and '.' */
for (i = 0; apr_isalnum(host[i]) || host[i] == '-' || host[i] == '.'; ++i);
- if (host[i] != '\0' || apr_sockaddr_info_get(&addr, host, APR_UNSPEC, 0, 0, p) != APR_SUCCESS)
+ if (host[i] != '\0' || apr_sockaddr_info_get(&addr, host, APR_UNSPEC, 0, 0, p) != APR_SUCCESS) {
return 0;
+ }
This->hostaddr = addr;
/* Strip trailing dots */
- for (i = strlen(host) - 1; i > 0 && host[i] == '.'; --i)
+ for (i = strlen(host) - 1; i > 0 && host[i] == '.'; --i) {
host[i] = '\0';
+ }
This->matcher = proxy_match_hostname;
return 1;
@@ -827,8 +901,9 @@ static int proxy_match_hostname(struct dirconn_entry *This, request_rec *r)
int h2_len;
int h1_len;
- if (host == NULL || host2 == NULL)
+ if (host == NULL || host2 == NULL) {
return 0; /* oops! */
+ }
h2_len = strlen(host2);
h1_len = strlen(host);
@@ -845,10 +920,12 @@ static int proxy_match_hostname(struct dirconn_entry *This, request_rec *r)
#endif
/* Ignore trailing dots in host2 comparison: */
- while (h2_len > 0 && host2[h2_len - 1] == '.')
+ while (h2_len > 0 && host2[h2_len - 1] == '.') {
--h2_len;
- while (h1_len > 0 && host[h1_len - 1] == '.')
+ }
+ while (h1_len > 0 && host[h1_len - 1] == '.') {
--h1_len;
+ }
return h1_len == h2_len
&& strncasecmp(host, host2, h1_len) == 0;
}
@@ -1176,15 +1253,18 @@ PROXY_DECLARE(proxy_balancer *) ap_proxy_get_balancer(apr_pool_t *p,
int i;
c = strchr(uri, ':');
- if (c == NULL || c[1] != '/' || c[2] != '/' || c[3] == '\0')
+ if (c == NULL || c[1] != '/' || c[2] != '/' || c[3] == '\0') {
return NULL;
+ }
/* remove path from uri */
- if ((c = strchr(c + 3, '/')))
+ if ((c = strchr(c + 3, '/'))) {
*c = '\0';
+ }
balancer = (proxy_balancer *)conf->balancers->elts;
for (i = 0; i < conf->balancers->nelts; i++) {
- if (strcasecmp(balancer->name, uri) == 0)
+ if (strcasecmp(balancer->name, uri) == 0) {
return balancer;
+ }
balancer++;
}
return NULL;
@@ -1247,8 +1327,9 @@ PROXY_DECLARE(proxy_worker *) ap_proxy_get_worker(apr_pool_t *p,
int i;
c = ap_strchr_c(url, ':');
- if (c == NULL || c[1] != '/' || c[2] != '/' || c[3] == '\0')
+ if (c == NULL || c[1] != '/' || c[2] != '/' || c[3] == '\0') {
return NULL;
+ }
url_copy = apr_pstrdup(p, url);
url_length = strlen(url);
@@ -1266,7 +1347,8 @@ PROXY_DECLARE(proxy_worker *) ap_proxy_get_worker(apr_pool_t *p,
*pathstart = '\0';
ap_str_tolower(url_copy);
*pathstart = '/';
- } else {
+ }
+ else {
ap_str_tolower(url_copy);
}
@@ -1445,11 +1527,10 @@ PROXY_DECLARE(int) ap_proxy_post_request(proxy_worker *worker,
proxy_server_conf *conf)
{
int access_status;
- if (balancer)
+ if (balancer) {
access_status = proxy_run_post_request(worker, balancer, r, conf);
+ }
else {
-
-
access_status = OK;
}
@@ -1538,8 +1619,9 @@ static apr_status_t connection_cleanup(void *theconn)
* If the connection pool is NULL the worker
* cleanup has been run. Just return.
*/
- if (!worker->cp)
+ if (!worker->cp) {
return APR_SUCCESS;
+ }
#if APR_HAS_THREADS
/* Sanity check: Did we already return the pooled connection? */
@@ -1571,7 +1653,7 @@ static apr_status_t connection_cleanup(void *theconn)
worker->cp->conn = conn;
}
- /* Allways return the SUCCESS */
+ /* Always return the SUCCESS */
return APR_SUCCESS;
}
@@ -1609,8 +1691,9 @@ static apr_status_t connection_destructor(void *resource, void *params,
proxy_conn_rec *conn = (proxy_conn_rec *)resource;
/* Destroy the pool only if not called from reslist_destroy */
- if (conn->worker->cp->pool)
+ if (conn->worker->cp->pool) {
apr_pool_destroy(conn->pool);
+ }
return APR_SUCCESS;
}
@@ -1666,14 +1749,18 @@ PROXY_DECLARE(void) ap_proxy_initialize_worker_share(proxy_server_conf *conf,
worker->name);
return;
}
- if (worker->route)
+ if (worker->route) {
strcpy(worker->s->route, worker->route);
- else
+ }
+ else {
*worker->s->route = '\0';
- if (worker->redirect)
+ }
+ if (worker->redirect) {
strcpy(worker->s->redirect, worker->redirect);
- else
+ }
+ else {
*worker->s->redirect = '\0';
+ }
worker->s->status |= (worker->status | PROXY_WORKER_INITIALIZED);
@@ -1693,8 +1780,9 @@ PROXY_DECLARE(apr_status_t) ap_proxy_initialize_worker(proxy_worker *worker, ser
}
/* Set default parameters */
- if (!worker->retry)
+ if (!worker->retry) {
worker->retry = apr_time_from_sec(PROXY_WORKER_DEFAULT_RETRY);
+ }
/* By default address is reusable */
worker->is_address_reusable = 1;
@@ -1702,13 +1790,16 @@ PROXY_DECLARE(apr_status_t) ap_proxy_initialize_worker(proxy_worker *worker, ser
ap_mpm_query(AP_MPMQ_MAX_THREADS, &mpm_threads);
if (mpm_threads > 1) {
/* Set hard max to no more then mpm_threads */
- if (worker->hmax == 0 || worker->hmax > mpm_threads)
+ if (worker->hmax == 0 || worker->hmax > mpm_threads) {
worker->hmax = mpm_threads;
- if (worker->smax == 0 || worker->smax > worker->hmax)
+ }
+ if (worker->smax == 0 || worker->smax > worker->hmax) {
worker->smax = worker->hmax;
+ }
/* Set min to be lower then smax */
- if (worker->min > worker->smax)
+ if (worker->min > worker->smax) {
worker->min = worker->smax;
+ }
}
else {
/* This will supress the apr_reslist creation */
@@ -1732,8 +1823,9 @@ PROXY_DECLARE(apr_status_t) ap_proxy_initialize_worker(proxy_worker *worker, ser
#if (APR_MAJOR_VERSION > 0)
/* Set the acquire timeout */
- if (rv == APR_SUCCESS && worker->acquire_set)
+ if (rv == APR_SUCCESS && worker->acquire_set) {
apr_reslist_timeout_set(worker->cp->res, worker->acquire);
+ }
#endif
}
else
@@ -1770,11 +1862,13 @@ PROXY_DECLARE(int) ap_proxy_retry_worker(const char *proxy_function,
proxy_function, worker->hostname);
return OK;
}
- else
+ else {
return DECLINED;
+ }
}
- else
+ else {
return OK;
+ }
}
PROXY_DECLARE(int) ap_proxy_acquire_connection(const char *proxy_function,
@@ -1803,8 +1897,9 @@ PROXY_DECLARE(int) ap_proxy_acquire_connection(const char *proxy_function,
#endif
{
/* create the new connection if the previous was destroyed */
- if (!worker->cp->conn)
+ if (!worker->cp->conn) {
connection_constructor((void **)conn, worker, worker->cp->pool);
+ }
else {
*conn = worker->cp->conn;
worker->cp->conn = NULL;
@@ -1909,7 +2004,8 @@ ap_proxy_determine_connection(apr_pool_t *p, request_rec *r,
if (proxyname) {
conn->hostname = apr_pstrdup(conn->pool, proxyname);
conn->port = proxyport;
- } else {
+ }
+ else {
conn->hostname = apr_pstrdup(conn->pool, uri->hostname);
conn->port = uri->port;
}
@@ -1946,8 +2042,9 @@ ap_proxy_determine_connection(apr_pool_t *p, request_rec *r,
conn->addr = worker->cp->addr;
PROXY_THREAD_UNLOCK(worker);
}
- else
+ else {
conn->addr = worker->cp->addr;
+ }
if (err != APR_SUCCESS) {
return ap_proxyerror(r, HTTP_BAD_GATEWAY,
@@ -1960,7 +2057,8 @@ ap_proxy_determine_connection(apr_pool_t *p, request_rec *r,
server_port = ap_get_server_port(r);
if (ap_is_default_port(server_port, r)) {
strcpy(server_portstr,"");
- } else {
+ }
+ else {
apr_snprintf(server_portstr, server_portstr_size, ":%d",
server_port);
}
@@ -1991,10 +2089,12 @@ static int is_socket_connected(apr_socket_t *sock)
socket_status = apr_socket_recv(sock, test_buffer, &buffer_len);
/* put back old timeout */
apr_socket_timeout_set(sock, current_timeout);
- if (APR_STATUS_IS_EOF(socket_status))
+ if (APR_STATUS_IS_EOF(socket_status)) {
return 0;
- else
+ }
+ else {
return 1;
+ }
}
PROXY_DECLARE(int) ap_proxy_connect_backend(const char *proxy_function,