summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Yves Ritschard <pyr@cvs.openbsd.org>2010-02-25 07:49:54 +0000
committerPierre-Yves Ritschard <pyr@cvs.openbsd.org>2010-02-25 07:49:54 +0000
commit6785875505e59b5c2e05ef2bb51896ca41677048 (patch)
tree90f3dff7d698f9978b2cb116f2844949f8101b37
parentad386c2ad266f519dcc597e40db025a3353caeab (diff)
fix some fallout from the >2G commit. namely allow for all byte counters to
report the correct size when it exceeds a long's capacity. From Dan Harnett <daniel @ harnett . name>
-rw-r--r--usr.sbin/httpd/src/include/buff.h4
-rw-r--r--usr.sbin/httpd/src/include/httpd.h4
-rw-r--r--usr.sbin/httpd/src/include/scoreboard.h8
-rw-r--r--usr.sbin/httpd/src/main/buff.c16
-rw-r--r--usr.sbin/httpd/src/main/http_main.c14
-rw-r--r--usr.sbin/httpd/src/main/http_protocol.c8
-rw-r--r--usr.sbin/httpd/src/modules/proxy/proxy_cache.c2
-rw-r--r--usr.sbin/httpd/src/modules/standard/mod_log_config.c10
-rw-r--r--usr.sbin/httpd/src/modules/standard/mod_status.c4
9 files changed, 35 insertions, 35 deletions
diff --git a/usr.sbin/httpd/src/include/buff.h b/usr.sbin/httpd/src/include/buff.h
index 3a2b5a5d7dd..8fd8ff47702 100644
--- a/usr.sbin/httpd/src/include/buff.h
+++ b/usr.sbin/httpd/src/include/buff.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: buff.h,v 1.12 2005/03/28 23:26:51 niallo Exp $ */
+/* $OpenBSD: buff.h,v 1.13 2010/02/25 07:49:53 pyr Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -105,7 +105,7 @@ struct buff_struct {
int bufsiz;
void (*error) (BUFF *fb, int op, void *data);
void *error_data;
- long int bytes_sent; /* number of bytes actually written */
+ off_t bytes_sent; /* number of bytes actually written */
ap_pool *pool;
diff --git a/usr.sbin/httpd/src/include/httpd.h b/usr.sbin/httpd/src/include/httpd.h
index bfcdc5d1038..3d682b339e5 100644
--- a/usr.sbin/httpd/src/include/httpd.h
+++ b/usr.sbin/httpd/src/include/httpd.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: httpd.h,v 1.29 2009/06/02 23:36:40 pyr Exp $ */
+/* $OpenBSD: httpd.h,v 1.30 2010/02/25 07:49:53 pyr Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -735,7 +735,7 @@ struct request_rec {
int allowed; /* Allowed methods - for 405, OPTIONS, etc */
int sent_bodyct; /* byte count in stream is for body */
- long bytes_sent; /* body byte count, for easy access */
+ off_t bytes_sent; /* body byte count, for easy access */
time_t mtime; /* Time the resource was last modified */
/* HTTP/1.1 connection-level features */
diff --git a/usr.sbin/httpd/src/include/scoreboard.h b/usr.sbin/httpd/src/include/scoreboard.h
index ad9535fbe86..ff12aab3772 100644
--- a/usr.sbin/httpd/src/include/scoreboard.h
+++ b/usr.sbin/httpd/src/include/scoreboard.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: scoreboard.h,v 1.12 2006/03/22 13:19:19 ray Exp $ */
+/* $OpenBSD: scoreboard.h,v 1.13 2010/02/25 07:49:53 pyr Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -132,10 +132,10 @@ typedef struct {
unsigned short timeout_len; /* length of the timeout */
unsigned char status;
unsigned long access_count;
- unsigned long bytes_served;
+ unsigned long long bytes_served;
unsigned long my_access_count;
- unsigned long my_bytes_served;
- unsigned long conn_bytes;
+ unsigned long long my_bytes_served;
+ unsigned long long conn_bytes;
unsigned short conn_count;
struct timeval start_time;
struct timeval stop_time;
diff --git a/usr.sbin/httpd/src/main/buff.c b/usr.sbin/httpd/src/main/buff.c
index da90327eed5..91174f5f324 100644
--- a/usr.sbin/httpd/src/main/buff.c
+++ b/usr.sbin/httpd/src/main/buff.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: buff.c,v 1.20 2008/05/15 06:05:43 mbalmer Exp $ */
+/* $OpenBSD: buff.c,v 1.21 2010/02/25 07:49:53 pyr Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -209,7 +209,7 @@ ap_bcreate(pool *p, int flags)
fb->outcnt = 0;
fb->outchunk = -1;
fb->error = NULL;
- fb->bytes_sent = 0L;
+ fb->bytes_sent = 0LL;
fb->fd = -1;
fb->fd_in = -1;
@@ -236,8 +236,8 @@ API_EXPORT(int)
ap_bsetopt(BUFF *fb, int optname, const void *optval)
{
if (optname == BO_BYTECT) {
- fb->bytes_sent = *(const long int *)optval -
- (long int)fb->outcnt;
+ fb->bytes_sent = *(off_t *)optval -
+ (off_t)fb->outcnt;
return 0;
}
else {
@@ -250,10 +250,10 @@ API_EXPORT(int)
ap_bgetopt(BUFF *fb, int optname, void *optval)
{
if (optname == BO_BYTECT) {
- long int bs = fb->bytes_sent + fb->outcnt;
- if (bs < 0L)
- bs = 0L;
- *(long int *)optval = bs;
+ off_t bs = fb->bytes_sent + fb->outcnt;
+ if (bs < 0LL)
+ bs = 0LL;
+ *(off_t *)optval = bs;
return 0;
}
else {
diff --git a/usr.sbin/httpd/src/main/http_main.c b/usr.sbin/httpd/src/main/http_main.c
index bff720f88fa..2f55ee413f5 100644
--- a/usr.sbin/httpd/src/main/http_main.c
+++ b/usr.sbin/httpd/src/main/http_main.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: http_main.c,v 1.53 2008/12/02 17:55:35 sthen Exp $ */
+/* $OpenBSD: http_main.c,v 1.54 2010/02/25 07:49:53 pyr Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -1244,10 +1244,10 @@ API_EXPORT(int) ap_update_child_status(int child_num, int status, request_rec *r
*/
if (status == SERVER_DEAD) {
ss->my_access_count = 0L;
- ss->my_bytes_served = 0L;
+ ss->my_bytes_served = 0ULL;
}
ss->conn_count = (unsigned short) 0;
- ss->conn_bytes = (unsigned long) 0;
+ ss->conn_bytes = 0ULL;
}
else if (status == SERVER_STARTING) {
/* clean out the start_time so that mod_status will print Req=0 */
@@ -1309,7 +1309,7 @@ void ap_time_process_request(int child_num, int status)
static void increment_counts(int child_num, request_rec *r)
{
- long int bs = 0;
+ off_t bs = 0;
short_score *ss;
ss = &ap_scoreboard_image->servers[child_num];
@@ -1321,9 +1321,9 @@ static void increment_counts(int child_num, request_rec *r)
ss->access_count++;
ss->my_access_count++;
ss->conn_count++;
- ss->bytes_served += (unsigned long) bs;
- ss->my_bytes_served += (unsigned long) bs;
- ss->conn_bytes += (unsigned long) bs;
+ ss->bytes_served += bs;
+ ss->my_bytes_served += bs;
+ ss->conn_bytes += bs;
}
static int find_child_by_pid(int pid)
diff --git a/usr.sbin/httpd/src/main/http_protocol.c b/usr.sbin/httpd/src/main/http_protocol.c
index 429613078dd..2ddd8c997a5 100644
--- a/usr.sbin/httpd/src/main/http_protocol.c
+++ b/usr.sbin/httpd/src/main/http_protocol.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: http_protocol.c,v 1.36 2010/02/23 08:15:27 pyr Exp $ */
+/* $OpenBSD: http_protocol.c,v 1.37 2010/02/25 07:49:53 pyr Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -1582,7 +1582,7 @@ API_EXPORT(void) ap_basic_http_header(request_rec *r)
*/
static void terminate_header(BUFF *client)
{
- long int bs;
+ off_t bs;
ap_bgetopt(client, BO_BYTECT, &bs);
if (bs >= 255 && bs <= 257)
@@ -1645,7 +1645,7 @@ API_EXPORT(int) ap_send_http_trace(request_rec *r)
API_EXPORT(int) ap_send_http_options(request_rec *r)
{
- const long int zero = 0L;
+ const off_t zero = 0LL;
if (r->assbackwards)
return DECLINED;
@@ -1765,7 +1765,7 @@ static void fixup_vary(request_rec *r)
API_EXPORT(void) ap_send_http_header(request_rec *r)
{
int i;
- const long int zero = 0L;
+ const off_t zero = 0LL;
if (r->assbackwards) {
if (!r->main)
diff --git a/usr.sbin/httpd/src/modules/proxy/proxy_cache.c b/usr.sbin/httpd/src/modules/proxy/proxy_cache.c
index 46cded628a6..75eb0094294 100644
--- a/usr.sbin/httpd/src/modules/proxy/proxy_cache.c
+++ b/usr.sbin/httpd/src/modules/proxy/proxy_cache.c
@@ -1576,7 +1576,7 @@ int ap_proxy_cache_update(cache_req *c, table *resp_hdrs,
void ap_proxy_cache_tidy(cache_req *c)
{
server_rec *s;
- long int bc;
+ off_t bc;
if (!c || !c->fp)
return;
diff --git a/usr.sbin/httpd/src/modules/standard/mod_log_config.c b/usr.sbin/httpd/src/modules/standard/mod_log_config.c
index e8898a483a3..74ae4281a95 100644
--- a/usr.sbin/httpd/src/modules/standard/mod_log_config.c
+++ b/usr.sbin/httpd/src/modules/standard/mod_log_config.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: mod_log_config.c,v 1.18 2008/10/03 19:36:36 mbalmer Exp $ */
+/* $OpenBSD: mod_log_config.c,v 1.19 2010/02/25 07:49:53 pyr Exp $ */
/* ====================================================================
* The Apache Software License, Version 1.1
@@ -385,9 +385,9 @@ clf_log_bytes_sent(request_rec *r, char *a)
if (!r->sent_bodyct)
return "-";
else {
- long int bs;
+ off_t bs;
ap_bgetopt(r->connection->client, BO_BYTECT, &bs);
- return ap_psprintf(r->pool, "%ld", bs);
+ return ap_psprintf(r->pool, "%qd", bs);
}
}
@@ -397,9 +397,9 @@ log_bytes_sent(request_rec *r, char *a)
if (!r->sent_bodyct)
return "0";
else {
- long int bs;
+ off_t bs;
ap_bgetopt(r->connection->client, BO_BYTECT, &bs);
- return ap_psprintf(r->pool, "%ld", bs);
+ return ap_psprintf(r->pool, "%qd", bs);
}
}
diff --git a/usr.sbin/httpd/src/modules/standard/mod_status.c b/usr.sbin/httpd/src/modules/standard/mod_status.c
index 6159b7683cf..6f1a897934f 100644
--- a/usr.sbin/httpd/src/modules/standard/mod_status.c
+++ b/usr.sbin/httpd/src/modules/standard/mod_status.c
@@ -218,8 +218,8 @@ static int status_handler(request_rec *r)
int ready = 0;
int busy = 0;
unsigned long count = 0;
- unsigned long lres, bytes;
- unsigned long my_lres, my_bytes, conn_bytes;
+ unsigned long lres, my_lres;
+ unsigned long long bytes, my_bytes, conn_bytes;
unsigned short conn_lres;
unsigned long bcount = 0;
unsigned long kbcount = 0;