diff options
Diffstat (limited to 'libs/sgi-webuci/unmerged-patches/050-lfs_support.patch')
-rw-r--r-- | libs/sgi-webuci/unmerged-patches/050-lfs_support.patch | 455 |
1 files changed, 455 insertions, 0 deletions
diff --git a/libs/sgi-webuci/unmerged-patches/050-lfs_support.patch b/libs/sgi-webuci/unmerged-patches/050-lfs_support.patch new file mode 100644 index 0000000000..470bffa1f7 --- /dev/null +++ b/libs/sgi-webuci/unmerged-patches/050-lfs_support.patch @@ -0,0 +1,455 @@ +Index: boa-0.94.14rc21/src/boa.h +=================================================================== +--- boa-0.94.14rc21.orig/src/boa.h 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/boa.h 2007-11-03 01:05:20.000000000 -0400 +@@ -25,7 +25,9 @@ + #ifndef _BOA_H + #define _BOA_H + ++/* Important, include before anything else */ + #include "config.h" ++ + #include <errno.h> + #include <stdlib.h> /* malloc, free, etc. */ + #include <stdio.h> /* stdin, stdout, stderr */ +@@ -165,7 +167,7 @@ + void clean_pathname(char *pathname); + char *get_commonlog_time(void); + void rfc822_time_buf(char *buf, time_t s); +-char *simple_itoa(unsigned int i); ++char *simple_itoa(uint64_t i); + int boa_atoi(const char *s); + int month2int(const char *month); + int modified_since(time_t * mtime, const char *if_modified_since); +Index: boa-0.94.14rc21/src/buffer.c +=================================================================== +--- boa-0.94.14rc21.orig/src/buffer.c 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/buffer.c 2007-11-03 01:05:20.000000000 -0400 +@@ -212,7 +212,7 @@ + return -2; + + if (bytes_to_write) { +- int bytes_written; ++ off_t bytes_written; + + bytes_written = write(req->fd, req->buffer + req->buffer_start, + bytes_to_write); +Index: boa-0.94.14rc21/src/config.h.in +=================================================================== +--- boa-0.94.14rc21.orig/src/config.h.in 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/config.h.in 2007-11-03 01:08:36.000000000 -0400 +@@ -205,3 +205,16 @@ + + /* Define to `int' if <sys/types.h> doesn't define. */ + #undef uid_t ++ ++/* Those enable the LFS ready structures in the system headers */ ++#define _FILE_OFFSET_BITS 64 /* glibc style */ ++#define _LARGEFILE_SOURCE 1 /* To make ftello() visible (HP-UX 10.20). */ ++#define _LARGE_FILES 1 /* Large file defined on AIX-style hosts. */ ++ ++#define _LARGEFILE64_SOURCE /* tell kernel headers to provide the O_LARGEFILE value */ ++ ++#if __WORDSIZE == 64 ++#define PRINTF_OFF_T_ARG "%ld" ++#elif __WORDSIZE == 32 ++#define PRINTF_OFF_T_ARG "%lld" ++#endif +Index: boa-0.94.14rc21/src/get.c +=================================================================== +--- boa-0.94.14rc21.orig/src/get.c 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/get.c 2007-11-03 01:08:20.000000000 -0400 +@@ -25,6 +25,10 @@ + #include "boa.h" + #include "access.h" + ++#include <sys/types.h> ++#include <sys/stat.h> ++#include <fcntl.h> ++ + #define STR(s) __STR(s) + #define __STR(s) #s + +@@ -52,9 +56,9 @@ + { + int data_fd, saved_errno; + struct stat statbuf; +- volatile unsigned int bytes_free; ++ volatile off_t bytes_free; + +- data_fd = open(req->pathname, O_RDONLY); ++ data_fd = open(req->pathname, O_RDONLY|O_LARGEFILE); + saved_errno = errno; /* might not get used */ + + #ifdef GUNZIP +@@ -76,7 +80,7 @@ + memcpy(gzip_pathname, req->pathname, len); + memcpy(gzip_pathname + len, ".gz", 3); + gzip_pathname[len + 3] = '\0'; +- data_fd = open(gzip_pathname, O_RDONLY); ++ data_fd = open(gzip_pathname, O_RDONLY|O_LARGEFILE); + if (data_fd != -1) { + close(data_fd); + +@@ -430,8 +434,8 @@ + + int process_get(request * req) + { +- int bytes_written; +- volatile unsigned int bytes_to_write; ++ off_t bytes_written; ++ volatile off_t bytes_to_write; + + if (req->method == M_HEAD) { + return complete_response(req); +@@ -531,7 +535,7 @@ + memcpy(pathname_with_index, req->pathname, l1); /* doesn't copy NUL */ + memcpy(pathname_with_index + l1, directory_index, l2 + 1); /* does */ + +- data_fd = open(pathname_with_index, O_RDONLY); ++ data_fd = open(pathname_with_index, O_RDONLY|O_LARGEFILE); + + if (data_fd != -1) { /* user's index file */ + /* We have to assume that directory_index will fit, because +@@ -555,7 +559,7 @@ + * try index.html.gz + */ + strcat(pathname_with_index, ".gz"); +- data_fd = open(pathname_with_index, O_RDONLY); ++ data_fd = open(pathname_with_index, O_RDONLY|O_LARGEFILE); + if (data_fd != -1) { /* user's index file */ + close(data_fd); + +@@ -624,9 +628,9 @@ + * include the NUL when calculating if the size is enough + */ + snprintf(pathname_with_index, sizeof(pathname_with_index), +- "%s/dir.%d.%ld", cachedir, ++ "%s/dir.%d." PRINTF_OFF_T_ARG, cachedir, + (int) statbuf->st_dev, statbuf->st_ino); +- data_fd = open(pathname_with_index, O_RDONLY); ++ data_fd = open(pathname_with_index, O_RDONLY|O_LARGEFILE); + + if (data_fd != -1) { /* index cache */ + +@@ -642,7 +646,7 @@ + if (index_directory(req, pathname_with_index) == -1) + return -1; + +- data_fd = open(pathname_with_index, O_RDONLY); /* Last chance */ ++ data_fd = open(pathname_with_index, O_RDONLY|O_LARGEFILE); /* Last chance */ + if (data_fd != -1) { + strcpy(req->request_uri, directory_index); /* for mimetype */ + fstat(data_fd, statbuf); +@@ -671,7 +675,7 @@ + DIR *request_dir; + FILE *fdstream; + struct dirent *dirbuf; +- int bytes = 0; ++ off_t bytes = 0; + char *escname = NULL; + + if (chdir(req->pathname) == -1) { +Index: boa-0.94.14rc21/src/globals.h +=================================================================== +--- boa-0.94.14rc21.orig/src/globals.h 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/globals.h 2007-11-03 01:05:20.000000000 -0400 +@@ -130,9 +130,9 @@ + int numranges; + + int data_fd; /* fd of data */ +- unsigned long filesize; /* filesize */ +- unsigned long filepos; /* position in file */ +- unsigned long bytes_written; /* total bytes written (sans header) */ ++ off_t filesize; /* filesize */ ++ off_t filepos; /* position in file */ ++ size_t bytes_written; /* total bytes written (sans header) */ + char *data_mem; /* mmapped/malloced char array */ + + char *logline; /* line to log file */ +Index: boa-0.94.14rc21/src/index_dir.c +=================================================================== +--- boa-0.94.14rc21.orig/src/index_dir.c 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/index_dir.c 2007-11-03 01:08:11.000000000 -0400 +@@ -19,6 +19,7 @@ + + /* $Id: index_dir.c,v 1.32.2.7 2005/02/22 03:00:24 jnelson Exp $*/ + ++#include "config.h" + #include <stdio.h> + #include <sys/stat.h> + #include <limits.h> /* for PATH_MAX */ +@@ -266,10 +267,12 @@ + printf("<tr>" + "<td width=\"40%%\"><a href=\"%s/\">%s/</a></td>" + "<td align=right>%s</td>" +- "<td align=right>%ld bytes</td>" ++ "<td align=right>" ++ PRINTF_OFF_T_ARG ++ " bytes</td>" + "</tr>\n", + escaped_filename, html_filename, +- ctime(&statbuf.st_mtime), (long) statbuf.st_size); ++ ctime(&statbuf.st_mtime), (off_t) statbuf.st_size); + } + + printf +@@ -312,10 +315,12 @@ + "<td width=\"40%%\"><a href=\"%s\">%s</a> " + "<a href=\"%s.gz\">(.gz)</a></td>" + "<td align=right>%s</td>" +- "<td align=right>%ld bytes</td>" ++ "<td align=right>" ++ PRINTF_OFF_T_ARG ++ "bytes</td>" + "</tr>\n", + escaped_filename, html_filename, http_filename, +- ctime(&statbuf.st_mtime), (long) statbuf.st_size); ++ ctime(&statbuf.st_mtime), (off_t) statbuf.st_size); + } else { + #endif + if (html_escape_string(http_filename, escaped_filename, +@@ -326,10 +331,12 @@ + printf("<tr>" + "<td width=\"40%%\"><a href=\"%s\">%s</a></td>" + "<td align=right>%s</td>" +- "<td align=right>%ld bytes</td>" ++ "<td align=right>" ++ PRINTF_OFF_T_ARG ++ "bytes</td>" + "</tr>\n", + escaped_filename, html_filename, +- ctime(&statbuf.st_mtime), (long) statbuf.st_size); ++ ctime(&statbuf.st_mtime), (off_t) statbuf.st_size); + #ifdef GUNZIP + } + #endif +Index: boa-0.94.14rc21/src/log.c +=================================================================== +--- boa-0.94.14rc21.orig/src/log.c 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/log.c 2007-11-03 01:05:20.000000000 -0400 +@@ -146,7 +146,7 @@ + } else if (vhost_root) { + printf("%s ", (req->host ? req->host : "(null)")); + } +- printf("%s - - %s\"%s\" %d %ld \"%s\" \"%s\"\n", ++ printf("%s - - %s\"%s\" %d %zu \"%s\" \"%s\"\n", + req->remote_ip_addr, + get_commonlog_time(), + req->logline ? req->logline : "-", +Index: boa-0.94.14rc21/src/mmap_cache.c +=================================================================== +--- boa-0.94.14rc21.orig/src/mmap_cache.c 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/mmap_cache.c 2007-11-03 01:05:20.000000000 -0400 +@@ -140,7 +140,7 @@ + int data_fd; + struct stat statbuf; + struct mmap_entry *e; +- data_fd = open(fname, O_RDONLY); ++ data_fd = open(fname, O_RDONLY|O_LARGEFILE); + if (data_fd == -1) { + perror(fname); + return NULL; +Index: boa-0.94.14rc21/src/pipe.c +=================================================================== +--- boa-0.94.14rc21.orig/src/pipe.c 2007-11-03 01:05:20.000000000 -0400 ++++ boa-0.94.14rc21/src/pipe.c 2007-11-03 01:05:20.000000000 -0400 +@@ -37,8 +37,8 @@ + + int read_from_pipe(request * req) + { +- int bytes_read; /* signed */ +- unsigned int bytes_to_read; /* unsigned */ ++ off_t bytes_read; /* signed */ ++ off_t bytes_to_read; /* unsigned */ /* XXX really? */ + + bytes_to_read = BUFFER_SIZE - (req->header_end - req->buffer - 1); + +@@ -128,8 +128,8 @@ + + int write_from_pipe(request * req) + { +- int bytes_written; +- size_t bytes_to_write = req->header_end - req->header_line; ++ off_t bytes_written; ++ off_t bytes_to_write = req->header_end - req->header_line; + + if (bytes_to_write == 0) { + if (req->cgi_status == CGI_DONE) +@@ -170,9 +170,9 @@ + #ifdef HAVE_SENDFILE + int io_shuffle_sendfile(request * req) + { +- int bytes_written; +- size_t bytes_to_write; + off_t sendfile_offset; ++ off_t bytes_written; ++ off_t bytes_to_write; + + if (req->method == M_HEAD) { + return complete_response(req); +@@ -266,8 +266,8 @@ + + int io_shuffle(request * req) + { +- int bytes_to_read; +- int bytes_written, bytes_to_write; ++ off_t bytes_to_read; ++ off_t bytes_written, bytes_to_write; + + if (req->method == M_HEAD) { + return complete_response(req); +@@ -287,7 +287,7 @@ + bytes_to_read = bytes_to_write; + + if (bytes_to_read > 0 && req->data_fd) { +- int bytes_read; ++ off_t bytes_read; + off_t temp; + + temp = lseek(req->data_fd, req->ranges->start, SEEK_SET); +Index: boa-0.94.14rc21/src/range.c +=================================================================== +--- boa-0.94.14rc21.orig/src/range.c 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/range.c 2007-11-03 01:05:20.000000000 -0400 +@@ -147,7 +147,7 @@ + * 5) start > stop && start != -1 :: invalid + */ + DEBUG(DEBUG_RANGE) { +- fprintf(stderr, "range.c: ranges_fixup: %lu-%lu\n", r->start, r->stop); ++ fprintf(stderr, "range.c: ranges_fixup: %lu - %lu\n", r->start, r->stop); + } + + /* no stop range specified or stop is too big. +Index: boa-0.94.14rc21/src/read.c +=================================================================== +--- boa-0.94.14rc21.orig/src/read.c 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/read.c 2007-11-03 01:05:20.000000000 -0400 +@@ -38,7 +38,7 @@ + + int read_header(request * req) + { +- int bytes; ++ off_t bytes; + char *check, *buffer; + unsigned char uc; + +@@ -179,7 +179,7 @@ + */ + + if (req->content_length) { +- int content_length; ++ off_t content_length; + + content_length = boa_atoi(req->content_length); + /* Is a content-length of 0 legal? */ +@@ -195,7 +195,7 @@ + && content_length > single_post_limit) { + log_error_doc(req); + fprintf(stderr, +- "Content-Length [%d] > SinglePostLimit [%d] on POST!\n", ++ "Content-Length [" PRINTF_OFF_T_ARG "] > SinglePostLimit [%d] on POST!\n", + content_length, single_post_limit); + send_r_bad_request(req); + return 0; +@@ -224,7 +224,7 @@ + + if (req->status < BODY_READ) { + /* only reached if request is split across more than one packet */ +- unsigned int buf_bytes_left; ++ off_t buf_bytes_left; + + buf_bytes_left = CLIENT_STREAM_SIZE - req->client_stream_pos; + if (buf_bytes_left < 1 || buf_bytes_left > CLIENT_STREAM_SIZE) { +@@ -273,7 +273,7 @@ + DEBUG(DEBUG_HEADER_READ) { + log_error_time(); + req->client_stream[req->client_stream_pos] = '\0'; +- fprintf(stderr, "%s:%d -- We read %d bytes: \"%s\"\n", ++ fprintf(stderr, "%s:%d -- We read " PRINTF_OFF_T_ARG " bytes: \"%s\"\n", + __FILE__, __LINE__, bytes, + #ifdef VERY_FASCIST_LOGGING2 + req->client_stream + req->client_stream_pos - bytes +@@ -309,8 +309,8 @@ + + int read_body(request * req) + { +- int bytes_read; +- unsigned int bytes_to_read, bytes_free; ++ off_t bytes_read; ++ off_t bytes_to_read, bytes_free; + + bytes_free = BUFFER_SIZE - (req->header_end - req->header_line); + bytes_to_read = req->filesize - req->filepos; +@@ -367,8 +367,8 @@ + + int write_body(request * req) + { +- int bytes_written; +- unsigned int bytes_to_write = req->header_end - req->header_line; ++ off_t bytes_written; ++ off_t bytes_to_write = req->header_end - req->header_line; + + if (req->filepos + bytes_to_write > req->filesize) + bytes_to_write = req->filesize - req->filepos; +@@ -402,7 +402,7 @@ + } + DEBUG(DEBUG_HEADER_READ) { + log_error_time(); +- fprintf(stderr, "%s:%d - wrote %d bytes of CGI body. %ld of %ld\n", ++ fprintf(stderr, "%s:%d - wrote " PRINTF_OFF_T_ARG " bytes of CGI body. " PRINTF_OFF_T_ARG " of " PRINTF_OFF_T_ARG "\n", + __FILE__, __LINE__, + bytes_written, req->filepos, req->filesize); + } +@@ -417,7 +417,7 @@ + + req->header_line[bytes_written] = '\0'; + fprintf(stderr, +- "%s:%d - wrote %d bytes (%s). %lu of %lu\n", ++ "%s:%d - wrote " PRINTF_OFF_T_ARG " bytes (%s). " PRINTF_OFF_T_ARG " of " PRINTF_OFF_T_ARG "\n", + __FILE__, __LINE__, bytes_written, + req->header_line, req->filepos, req->filesize); + req->header_line[bytes_written] = c; +Index: boa-0.94.14rc21/src/request.c +=================================================================== +--- boa-0.94.14rc21.orig/src/request.c 2007-11-03 00:51:46.000000000 -0400 ++++ boa-0.94.14rc21/src/request.c 2007-11-03 01:05:20.000000000 -0400 +@@ -259,14 +259,14 @@ + + static void sanitize_request(request * req, int new_req) + { +- static unsigned int bytes_to_zero = offsetof(request, fd); ++ static off_t bytes_to_zero = offsetof(request, fd); + + if (new_req) { + req->kacount = ka_max; + req->time_last = current_time; + req->client_stream_pos = 0; + } else { +- unsigned int bytes_to_move = ++ off_t bytes_to_move = + req->client_stream_pos - req->parse_pos; + + if (bytes_to_move) { +@@ -282,7 +282,7 @@ + + DEBUG(DEBUG_REQUEST) { + log_error_time(); +- fprintf(stderr, "req: %p, offset: %u\n", (void *) req, ++ fprintf(stderr, "req: %p, offset: " PRINTF_OFF_T_ARG "\n", (void *) req, + bytes_to_zero); + } + +Index: boa-0.94.14rc21/src/util.c +=================================================================== +--- boa-0.94.14rc21.orig/src/util.c 2007-11-03 01:05:20.000000000 -0400 ++++ boa-0.94.14rc21/src/util.c 2007-11-03 01:05:20.000000000 -0400 +@@ -497,7 +497,7 @@ + memcpy(p, day_tab + t->tm_wday * 4, 4); + } + +-char *simple_itoa(unsigned int i) ++char *simple_itoa(uint64_t i) + { + /* 21 digits plus null terminator, good for 64-bit or smaller ints + * for bigger ints, use a bigger buffer! |