]> granicus.if.org Git - apache/commitdiff
WIN64: API changes to clean up Windows 64bit compile warnings
authorAllan K. Edwards <ake@apache.org>
Fri, 22 Oct 2004 15:22:05 +0000 (15:22 +0000)
committerAllan K. Edwards <ake@apache.org>
Fri, 22 Oct 2004 15:22:05 +0000 (15:22 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@105545 13f79535-47bb-0310-9956-ffa450edef68

13 files changed:
CHANGES
include/ap_mmn.h
include/http_protocol.h
include/httpd.h
include/scoreboard.h
include/util_script.h
modules/http/http_protocol.c
server/core.c
server/protocol.c
server/request.c
server/scoreboard.c
server/util.c
server/util_script.c

diff --git a/CHANGES b/CHANGES
index 4b68b0f7d51cf97f5ce253f0c92f58fdcf3370c6..126f71c26c6df4a773c3f73d885fa7651b3ae467 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,9 @@ Changes with Apache 2.1.0-dev
 
   [Remove entries to the current 2.0 section below, when backported]
 
+  *) WIN64: API changes to clean up Windows 64bit compile warnings
+     [Allan Edwards]
+
   *) mod_cache: CacheDisable will only disable the URLs it was meant to 
      disable, not all caching. PR 31128.
      [Edward Rudd <eddie omegaware.com>, Paul Querna]
index d724fe7ef6f60ac275fd8add393ba485d77f405d..d7db39273f6922f6cfa96cfa560c629895c75d58 100644 (file)
  *                      changed ap_add_module, ap_add_loaded_module,
  *                      ap_setup_prelinked_modules, ap_process_resource_config
  * 20040425.1 (2.1.0-dev) Added ap_module_symbol_t and ap_prelinked_module_symbols
+ * 20041022   (2.1.0-dev) API changes to clean up 64bit compiles
  */
 
 #define MODULE_MAGIC_COOKIE 0x41503230UL /* "AP20" */
 
 #ifndef MODULE_MAGIC_NUMBER_MAJOR
-#define MODULE_MAGIC_NUMBER_MAJOR 20040425
+#define MODULE_MAGIC_NUMBER_MAJOR 20041022
 #endif
-#define MODULE_MAGIC_NUMBER_MINOR 1                     /* 0...n */
+#define MODULE_MAGIC_NUMBER_MINOR 0                     /* 0...n */
 
 /**
  * Determine if the server's current MODULE_MAGIC_NUMBER is at least a
index cb2d23886dc5bcb9e33bf3c94d59b2935e0b9e30..55af6ef7b54a1f98e188eb91a0f6d554a0e9fdf6 100644 (file)
@@ -338,9 +338,9 @@ AP_DECLARE(int) ap_rputc(int c, request_rec *r);
  * @param str The string to output
  * @param r The current request
  * @return The number of bytes sent
- * @deffunc int ap_rputs(const char *str, request_rec *r)
+ * @deffunc apr_ssize_t ap_rputs(const char *str, request_rec *r)
  */
-AP_DECLARE(int) ap_rputs(const char *str, request_rec *r);
+AP_DECLARE(apr_ssize_t) ap_rputs(const char *str, request_rec *r);
 
 /**
  * Write a buffer for the current request
@@ -357,9 +357,9 @@ AP_DECLARE(int) ap_rwrite(const void *buf, int nbyte, request_rec *r);
  * @param r The current request
  * @param ... The strings to write
  * @return The number of bytes sent
- * @deffunc int ap_rvputs(request_rec *r, ...)
+ * @deffunc apr_ssize_t ap_rvputs(request_rec *r, ...)
  */
-AP_DECLARE_NONSTD(int) ap_rvputs(request_rec *r,...);
+AP_DECLARE_NONSTD(apr_ssize_t) ap_rvputs(request_rec *r,...);
 
 /**
  * Output data to the client in a printf format
@@ -367,9 +367,9 @@ AP_DECLARE_NONSTD(int) ap_rvputs(request_rec *r,...);
  * @param fmt The format string
  * @param vlist The arguments to use to fill out the format string
  * @return The number of bytes sent
- * @deffunc int ap_vrprintf(request_rec *r, const char *fmt, va_list vlist)
+ * @deffunc apr_ssize_t ap_vrprintf(request_rec *r, const char *fmt, va_list vlist)
  */
-AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, va_list vlist);
+AP_DECLARE(apr_ssize_t) ap_vrprintf(request_rec *r, const char *fmt, va_list vlist);
 
 /**
  * Output data to the client in a printf format
@@ -377,9 +377,9 @@ AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, va_list vlist);
  * @param fmt The format string
  * @param ... The arguments to use to fill out the format string
  * @return The number of bytes sent
- * @deffunc int ap_rprintf(request_rec *r, const char *fmt, ...)
+ * @deffunc apr_ssize_t ap_rprintf(request_rec *r, const char *fmt, ...)
  */
-AP_DECLARE_NONSTD(int) ap_rprintf(request_rec *r, const char *fmt,...)
+AP_DECLARE_NONSTD(apr_ssize_t) ap_rprintf(request_rec *r, const char *fmt,...)
                                __attribute__((format(printf,2,3)));
 /**
  * Flush all of the data for the current request to the client
@@ -443,9 +443,9 @@ AP_DECLARE(int) ap_should_client_block(request_rec *r);
  * @param bufsiz The size of the buffer
  * @return Number of bytes inserted into the buffer.  When done reading, 0
  *         if EOF, or -1 if there was an error
- * @deffunc long ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz)
+ * @deffunc apr_ssize_t ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz)
  */
-AP_DECLARE(long) ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz);
+AP_DECLARE(apr_ssize_t) ap_get_client_block(request_rec *r, char *buffer, apr_size_t bufsiz);
 
 /**
  * In HTTP/1.1, any method can have a body.  However, most GET handlers
index 8ff392bf8f59b4df17c2df8435e106153cfd3e84..1d2cc0e63b5082cff72ef285bc514d8fe7c66dc9 100644 (file)
@@ -1091,7 +1091,7 @@ struct server_rec {
     /** Pathname for ServerPath */
     const char *path;
     /** Length of path */
-    int pathlen;
+    apr_size_t pathlen;
 
     /** Normal names for ServerAlias servers */
     apr_array_header_t *names;
@@ -1244,7 +1244,7 @@ AP_DECLARE(const char *) ap_resolve_env(apr_pool_t *p, const char * word);
  * address of field is shifted to the next non-comma, non-whitespace 
  * character.  len is the length of the item excluding any beginning whitespace.
  */
-AP_DECLARE(const char *) ap_size_list_item(const char **field, int *len);
+AP_DECLARE(const char *) ap_size_list_item(const char **field, apr_size_t *len);
 
 /**
  * Retrieve an HTTP header field list item, as separated by a comma,
@@ -1587,7 +1587,7 @@ AP_DECLARE(void) ap_str_tolower(char *s);
  * @param c The character to search for
  * @return The index of the first occurrence of c in str
  */
-AP_DECLARE(int) ap_ind(const char *str, char c);       /* Sigh... */
+AP_DECLARE(apr_ssize_t) ap_ind(const char *str, char c);       /* Sigh... */
 
 /**
  * Search a string from right to left for the first occurrence of a 
@@ -1596,7 +1596,7 @@ AP_DECLARE(int) ap_ind(const char *str, char c);  /* Sigh... */
  * @param c The character to search for
  * @return The index of the first occurrence of c in str
  */
-AP_DECLARE(int) ap_rind(const char *str, char c);
+AP_DECLARE(apr_ssize_t) ap_rind(const char *str, char c);
 
 /**
  * Given a string, replace any bare " with \" .
index 0a045d1859d31d1a31cdc37885b018b4db51fd16..bff736d60d68230b2be12d271670eb993457d5f9 100644 (file)
@@ -164,7 +164,7 @@ AP_DECLARE(void) ap_increment_counts(ap_sb_handle_t *sbh, request_rec *r);
 int ap_create_scoreboard(apr_pool_t *p, ap_scoreboard_e t);
 apr_status_t ap_reopen_scoreboard(apr_pool_t *p, apr_shm_t **shm, int detached);
 void ap_init_scoreboard(void *shared_score);
-AP_DECLARE(int) ap_calc_scoreboard_size(void);
+AP_DECLARE(apr_size_t) ap_calc_scoreboard_size(void);
 apr_status_t ap_cleanup_scoreboard(void *d);
 
 AP_DECLARE(void) ap_create_sb_handle(ap_sb_handle_t **new_sbh, apr_pool_t *p,
index bdffb2b221d38e61556cdee3774a23f721197d39..ece07a04f2b6469182a46dde949c72ecf5b18a84 100644 (file)
@@ -53,7 +53,7 @@ AP_DECLARE(char **) ap_create_environment(apr_pool_t *p, apr_table_t *t);
  * @return The length of the path info
  * @deffunc int ap_find_path_info(const char *uri, const char *path_info)
  */
-AP_DECLARE(int) ap_find_path_info(const char *uri, const char *path_info);
+AP_DECLARE(apr_size_t) ap_find_path_info(const char *uri, const char *path_info);
 
 /**
  * Add CGI environment variables required by HTTP/1.1 to the request's 
@@ -131,7 +131,7 @@ AP_DECLARE_NONSTD(int) ap_scan_script_header_err_strs(request_rec *r,
  * @deffunc int ap_scan_script_header_err_core(request_rec *r, char *buffer, int (*getsfunc)(char *, int, void *), void *getsfunc_data)
  */ 
 AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r, char *buffer,
-                                      int (*getsfunc) (char *, int, void *),
+                                      int (*getsfunc) (char *, apr_size_t, void *),
                                       void *getsfunc_data);
 
 #ifdef __cplusplus
index 27fecaa14b646ec5b7da30c4a26be53ff4f2bdb1..9d32182c5494f8e55761998d117357e2a2e60829 100644 (file)
@@ -662,7 +662,7 @@ static int lookup_builtin_method(const char *method, apr_size_t len)
  */
 AP_DECLARE(int) ap_method_number_of(const char *method)
 {
-    int len = strlen(method);
+    apr_size_t len = strlen(method);
     int which = lookup_builtin_method(method, len);
 
     if (which != UNKNOWN_METHOD)
@@ -1858,7 +1858,7 @@ static long get_chunk_size(char *b)
  * Returns 0 on End-of-body, -1 on error or premature chunk end.
  *
  */
-AP_DECLARE(long) ap_get_client_block(request_rec *r, char *buffer,
+AP_DECLARE(apr_ssize_t) ap_get_client_block(request_rec *r, char *buffer,
                                      apr_size_t bufsiz)
 {
     apr_status_t rv;
index 1fe2cce3c5974c92374180f395bc505d00bc66b1..5e926e9c2d193df45396440b2d6d194dee53e322 100644 (file)
@@ -2298,7 +2298,7 @@ static const char *set_serverpath(cmd_parms *cmd, void *dummy,
     }
 
     cmd->server->path = arg;
-    cmd->server->pathlen = (int)strlen(arg);
+    cmd->server->pathlen = strlen(arg);
     return NULL;
 }
 
@@ -3009,19 +3009,20 @@ void ap_add_output_filters_by_type(request_rec *r)
 }
 
 static apr_status_t writev_it_all(apr_socket_t *s,
-                                  struct iovec *vec, int nvec,
+                                  struct iovec *vec, apr_size_t nvec,
                                   apr_size_t len, apr_size_t *nbytes)
 {
     apr_size_t bytes_written = 0;
     apr_status_t rv;
     apr_size_t n = len;
-    int i = 0;
+    apr_size_t i = 0;
 
     *nbytes = 0;
 
     /* XXX handle checking for non-blocking socket */
     while (bytes_written != len) {
-        rv = apr_socket_sendv(s, vec + i, nvec - i, &n);
+        /* Cast to eliminate 64 bit warning */
+        rv = apr_socket_sendv(s, vec + i, (apr_int32_t)(nvec - i), &n);
         *nbytes += n;
         bytes_written += n;
         if (rv != APR_SUCCESS)
@@ -3793,7 +3794,7 @@ static int core_input_filter(ap_filter_t *f, apr_bucket_brigade *b,
     core_net_rec *net = f->ctx;
     core_ctx_t *ctx = net->in_ctx;
     const char *str;
-    apr_size_t len;
+    apr_ssize_t len;
 
     if (mode == AP_MODE_INIT) {
         /*
@@ -4288,12 +4289,14 @@ static apr_status_t core_output_filter(ap_filter_t *f, apr_bucket_brigade *b)
 
             memset(&hdtr, '\0', sizeof(hdtr));
             if (nvec) {
-                hdtr.numheaders = nvec;
+                /* Cast to eliminate 64 bit warning */
+                hdtr.numheaders = (int)nvec;
                 hdtr.headers = vec;
             }
 
             if (nvec_trailers) {
-                hdtr.numtrailers = nvec_trailers;
+                /* Cast to eliminate 64 bit warning */
+                hdtr.numtrailers = (int)nvec_trailers;
                 hdtr.trailers = vec_trailers;
             }
 
index 81904a40a5e093b9363ebc48570e885bbe1905df..445c72fe27e9906123fa3c427e1c8cf8bbac79e2 100644 (file)
@@ -1387,7 +1387,7 @@ AP_DECLARE(int) ap_rputc(int c, request_rec *r)
     return c;
 }
 
-AP_DECLARE(int) ap_rputs(const char *str, request_rec *r)
+AP_DECLARE(apr_ssize_t) ap_rputs(const char *str, request_rec *r)
 {
     apr_size_t len;
 
@@ -1441,9 +1441,9 @@ static apr_status_t r_flush(apr_vformatter_buff_t *buff)
     return APR_SUCCESS;
 }
 
-AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, va_list va)
+AP_DECLARE(apr_ssize_t) ap_vrprintf(request_rec *r, const char *fmt, va_list va)
 {
-    apr_size_t written;
+    apr_ssize_t written;
     struct ap_vrprintf_data vd;
     char vrprintf_buf[AP_IOBUFSIZE];
 
@@ -1461,7 +1461,7 @@ AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, va_list va)
     *(vd.vbuff.curpos) = '\0';
 
     if (written != -1) {
-        int n = vd.vbuff.curpos - vrprintf_buf;
+        apr_size_t n = vd.vbuff.curpos - vrprintf_buf;
 
         /* last call to buffer_output, to finish clearing the buffer */
         if (buffer_output(r, vrprintf_buf,n) != APR_SUCCESS)
@@ -1473,10 +1473,10 @@ AP_DECLARE(int) ap_vrprintf(request_rec *r, const char *fmt, va_list va)
     return written;
 }
 
-AP_DECLARE_NONSTD(int) ap_rprintf(request_rec *r, const char *fmt, ...)
+AP_DECLARE_NONSTD(apr_ssize_t) ap_rprintf(request_rec *r, const char *fmt, ...)
 {
     va_list va;
-    int n;
+    apr_ssize_t n;
 
     if (r->connection->aborted)
         return -1;
@@ -1488,7 +1488,7 @@ AP_DECLARE_NONSTD(int) ap_rprintf(request_rec *r, const char *fmt, ...)
     return n;
 }
 
-AP_DECLARE_NONSTD(int) ap_rvputs(request_rec *r, ...)
+AP_DECLARE_NONSTD(apr_ssize_t) ap_rvputs(request_rec *r, ...)
 {
     va_list va;
     const char *s;
index 11cad1bc4ac504ea07d2b823e0f6028e5a017601..3bf521b9ac0058d3fad504d7d919b6a940981490 100644 (file)
@@ -1213,7 +1213,8 @@ AP_DECLARE(int) ap_location_walk(request_rec *r)
         /* We start now_merged from NULL since we want to build
          * a locations list that can be merged to any vhost.
          */
-        int len, sec_idx;
+        apr_size_t len;
+        int sec_idx;
         int matches = cache->walked->nelts;
         walk_walked_t *last_walk = (walk_walked_t*)cache->walked->elts;
         cache->cached = entry_uri;
index 465cb3d886d776bff322af08fe0984db33205bc4..02f81c74ff35396a7410dfa3c2922ebb46d22263 100644 (file)
@@ -88,7 +88,7 @@ static apr_status_t ap_cleanup_shared_mem(void *d)
     return APR_SUCCESS;
 }
 
-AP_DECLARE(int) ap_calc_scoreboard_size(void)
+AP_DECLARE(apr_size_t) ap_calc_scoreboard_size(void)
 {
     ap_mpm_query(AP_MPMQ_HARD_LIMIT_THREADS, &thread_limit);
     ap_mpm_query(AP_MPMQ_HARD_LIMIT_DAEMONS, &server_limit);
index a7d0d51cde5af3ca4a51f5d389b3b1d434cf74cf..d5f1464c5249d84734d9da39b59a000cf1b96c64 100644 (file)
@@ -451,7 +451,7 @@ AP_DECLARE(char *) ap_pregsub(apr_pool_t *p, const char *input,
 AP_DECLARE(void) ap_getparents(char *name)
 {
     char *next;
-    int l, w, first_dot;
+    apr_ssize_t l, w, first_dot;
 
     /* Four paseses, as per RFC 1808 */
     /* a) remove ./ path segments */
@@ -480,7 +480,7 @@ AP_DECLARE(void) ap_getparents(char *name)
     while (name[l] != '\0') {
         if (name[l] == '.' && name[l + 1] == '.' && IS_SLASH(name[l + 2])
             && (l == 0 || IS_SLASH(name[l - 1]))) {
-            register int m = l + 3, n;
+            register apr_ssize_t m = l + 3, n;
 
             l = l - 2;
             if (l >= 0) {
@@ -592,7 +592,7 @@ AP_DECLARE(char *) ap_make_dirstr_parent(apr_pool_t *p, const char *s)
 {
     const char *last_slash = ap_strrchr_c(s, '/');
     char *d;
-    int l;
+    apr_size_t l;
 
     if (last_slash == NULL) {
         return apr_pstrdup(p, "");
@@ -623,7 +623,7 @@ AP_DECLARE(char *) ap_getword_nc(apr_pool_t *atrans, char **line, char stop)
 AP_DECLARE(char *) ap_getword(apr_pool_t *atrans, const char **line, char stop)
 {
     const char *pos = *line;
-    int len;
+    apr_size_t len;
     char *res;
 
     while ((*pos != stop) && *pos) {
@@ -653,7 +653,7 @@ AP_DECLARE(char *) ap_getword_white_nc(apr_pool_t *atrans, char **line)
 AP_DECLARE(char *) ap_getword_white(apr_pool_t *atrans, const char **line)
 {
     const char *pos = *line;
-    int len;
+    apr_size_t len;
     char *res;
 
     while (!apr_isspace(*pos) && *pos) {
@@ -705,12 +705,12 @@ AP_DECLARE(char *) ap_getword_nulls(apr_pool_t *atrans, const char **line,
  * all honored
  */
 
-static char *substring_conf(apr_pool_t *p, const char *start, int len,
+static char *substring_conf(apr_pool_t *p, const char *start, apr_size_t len,
                             char quote)
 {
     char *result = apr_palloc(p, len + 2);
     char *resp = result;
-    int i;
+    apr_size_t i;
 
     for (i = 0; i < len; ++i) {
         if (start[i] == '\\' && (start[i + 1] == '\\'
@@ -887,11 +887,13 @@ static int cfg_getch(void *param)
     return (int)EOF;
 }
 
-static void *cfg_getstr(void *buf, size_t bufsiz, void *param)
+static void *cfg_getstr(void *buf, apr_size_t bufsiz, void *param)
 {
     apr_file_t *cfp = (apr_file_t *) param;
     apr_status_t rv;
-    rv = apr_file_gets(buf, bufsiz, cfp);
+
+    /* Cast to eliminate 64 bit warning */
+    rv = apr_file_gets(buf, (int)bufsiz, cfp);
     if (rv == APR_SUCCESS) {
         return buf;
     }
@@ -971,7 +973,7 @@ AP_DECLARE(apr_status_t) ap_pcfg_openfile(ap_configfile_t **ret_cfg,
     new_cfg->param = file;
     new_cfg->name = apr_pstrdup(p, name);
     new_cfg->getch = (int (*)(void *)) cfg_getch;
-    new_cfg->getstr = (void *(*)(void *, size_t, void *)) cfg_getstr;
+    new_cfg->getstr = (void *(*)(void *, apr_size_t, void *)) cfg_getstr;
     new_cfg->close = (int (*)(void *)) cfg_close;
     new_cfg->line_number = 0;
     *ret_cfg = new_cfg;
@@ -1152,7 +1154,7 @@ AP_DECLARE(int) ap_cfg_getline(char *buf, size_t bufsize, ap_configfile_t *cfp)
  * of field is shifted to the next non-comma, non-whitespace character.
  * len is the length of the item excluding any beginning whitespace.
  */
-AP_DECLARE(const char *) ap_size_list_item(const char **field, int *len)
+AP_DECLARE(const char *) ap_size_list_item(const char **field, apr_size_t *len)
 {
     const unsigned char *ptr = (const unsigned char *)*field;
     const unsigned char *token;
@@ -1218,7 +1220,8 @@ AP_DECLARE(char *) ap_get_list_item(apr_pool_t *p, const char **field)
     const unsigned char *ptr;
     unsigned char *pos;
     char *token;
-    int addspace = 0, in_qpair = 0, in_qstr = 0, in_com = 0, tok_len = 0;
+    int addspace = 0, in_qpair = 0, in_qstr = 0, in_com = 0;
+    apr_size_t tok_len = 0;
 
     /* Find the beginning and maximum length of the list item so that
      * we can allocate a buffer for the new string and reset the field.
@@ -1411,7 +1414,7 @@ AP_DECLARE(char *) ap_get_token(apr_pool_t *p, const char **accept_line,
     const char *ptr = *accept_line;
     const char *tok_start;
     char *token;
-    int tok_len;
+    apr_size_t tok_len;
 
     /* Find first non-white byte */
 
@@ -1484,7 +1487,8 @@ AP_DECLARE(int) ap_find_token(apr_pool_t *p, const char *line, const char *tok)
 AP_DECLARE(int) ap_find_last_token(apr_pool_t *p, const char *line,
                                    const char *tok)
 {
-    int llen, tlen, lidx;
+    apr_size_t llen, tlen;
+    apr_ssize_t lidx;
 
     if (!line)
         return 0;
@@ -1969,7 +1973,7 @@ AP_DECLARE(int) ap_is_url(const char *u)
     return (x ? 1 : 0);                /* If the first character is ':', it's broken, too */
 }
 
-AP_DECLARE(int) ap_ind(const char *s, char c)
+AP_DECLARE(apr_ssize_t) ap_ind(const char *s, char c)
 {
     const char *p = ap_strchr_c(s, c);
 
@@ -1978,7 +1982,7 @@ AP_DECLARE(int) ap_ind(const char *s, char c)
     return p - s;
 }
 
-AP_DECLARE(int) ap_rind(const char *s, char c)
+AP_DECLARE(apr_ssize_t) ap_rind(const char *s, char c)
 {
     const char *p = ap_strrchr_c(s, c);
 
@@ -2079,10 +2083,13 @@ AP_DECLARE(char *) ap_pbase64decode(apr_pool_t *p, const char *bufcoded)
 AP_DECLARE(char *) ap_pbase64encode(apr_pool_t *p, char *string) 
 { 
     char *encoded;
-    int l = strlen(string);
+    apr_size_t l = strlen(string);
+
+    /* Cast to eliminate 64 bit warning */
+    encoded = (char *) apr_palloc(p, 1 + apr_base64_encode_len((int)l));
 
-    encoded = (char *) apr_palloc(p, 1 + apr_base64_encode_len(l));
-    l = apr_base64_encode(encoded, string, l);
+    /* Cast to eliminate 64 bit warning */
+    l = apr_base64_encode(encoded, string, (int)l);
     encoded[l] = '\0'; /* make binary sequence into string */
 
     return encoded;
index f7788926b301996720be6c36b7ca95a926e46d4e..20845aa973641970dd20fc1a2f3022b47a1c2536 100644 (file)
@@ -283,10 +283,10 @@ AP_DECLARE(void) ap_add_common_vars(request_rec *r)
  * and find as much of the two that match as possible.
  */
 
-AP_DECLARE(int) ap_find_path_info(const char *uri, const char *path_info)
+AP_DECLARE(apr_size_t) ap_find_path_info(const char *uri, const char *path_info)
 {
-    int lu = strlen(uri);
-    int lp = strlen(path_info);
+    apr_ssize_t lu = strlen(uri);
+    apr_size_t lp = strlen(path_info);
 
     while (lu-- && lp-- && uri[lu] == path_info[lp]);
 
@@ -354,7 +354,7 @@ AP_DECLARE(void) ap_add_cgi_vars(request_rec *r)
         apr_table_setn(e, "SCRIPT_NAME", r->uri);
     }
     else {
-        int path_info_start = ap_find_path_info(r->uri, r->path_info);
+        apr_size_t path_info_start = ap_find_path_info(r->uri, r->path_info);
 
         apr_table_setn(e, "SCRIPT_NAME",
                       apr_pstrndup(r->pool, r->uri, path_info_start));
@@ -394,12 +394,12 @@ static int set_cookie_doo_doo(void *v, const char *key, const char *val)
 }
 
 AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r, char *buffer,
-                                       int (*getsfunc) (char *, int, void *),
+                                       int (*getsfunc) (char *, apr_size_t, void *),
                                        void *getsfunc_data)
 {
     char x[MAX_STRING_LEN];
     char *w, *l;
-    int p;
+    apr_size_t p;
     int cgi_status = HTTP_OK;
     apr_table_t *merge;
     apr_table_t *cookie_table;
@@ -581,9 +581,10 @@ AP_DECLARE(int) ap_scan_script_header_err_core(request_rec *r, char *buffer,
     return OK;
 }
 
-static int getsfunc_FILE(char *buf, int len, void *f)
+static int getsfunc_FILE(char *buf, apr_size_t len, void *f)
 {
-    return apr_file_gets(buf, len, (apr_file_t *) f) == APR_SUCCESS;
+    /* Cast to eliminate 64 bit warning */
+    return apr_file_gets(buf, (int)len, (apr_file_t *) f) == APR_SUCCESS;
 }
 
 AP_DECLARE(int) ap_scan_script_header_err(request_rec *r, apr_file_t *f,
@@ -592,7 +593,7 @@ AP_DECLARE(int) ap_scan_script_header_err(request_rec *r, apr_file_t *f,
     return ap_scan_script_header_err_core(r, buffer, getsfunc_FILE, f);
 }
 
-static int getsfunc_BRIGADE(char *buf, int len, void *arg)
+static int getsfunc_BRIGADE(char *buf, apr_size_t len, void *arg)
 {
     apr_bucket_brigade *bb = (apr_bucket_brigade *)arg;
     const char *dst_end = buf + len - 1; /* leave room for terminating null */
@@ -650,11 +651,11 @@ struct vastrs {
     const char *curpos;
 };
 
-static int getsfunc_STRING(char *w, int len, void *pvastrs)
+static int getsfunc_STRING(char *w, apr_size_t len, void *pvastrs)
 {
     struct vastrs *strs = (struct vastrs*) pvastrs;
     const char *p;
-    int t;
+    apr_size_t t;
     
     if (!strs->curpos || !*strs->curpos) 
         return 0;
@@ -674,7 +675,7 @@ static int getsfunc_STRING(char *w, int len, void *pvastrs)
     }
     else
         strs->curpos += t;
-    return t;    
+    return (int)t;    
 }
 
 /* ap_scan_script_header_err_strs() accepts additional const char* args...