akosut 97/07/15 14:40:21
Modified: src alloc.c alloc.h buff.c buff.h http_bprintf.c http_conf_globals.h http_config.c http_config.h http_log.c http_log.h http_main.c http_main.h http_protocol.c http_protocol.h http_request.c http_request.h httpd.h scoreboard.h util.c util_md5.c util_md5.h util_script.c util_script.h Log: Tag (most of) the rest of the Apache module API symbols with API_EXPORT. Reviewed by: Ben Laurie Revision Changes Path 1.40 +7 -3 apache/src/alloc.c Index: alloc.c =================================================================== RCS file: /export/home/cvs/apache/src/alloc.c,v retrieving revision 1.39 retrieving revision 1.40 diff -c -C3 -r1.39 -r1.40 *** alloc.c 1997/07/14 11:28:54 1.39 --- alloc.c 1997/07/15 21:39:50 1.40 *************** *** 299,305 **** permanent_pool = make_sub_pool (NULL); } ! void clear_pool (struct pool *a) { block_alarms(); --- 299,305 ---- permanent_pool = make_sub_pool (NULL); } ! API_EXPORT(void) clear_pool (struct pool *a) { block_alarms(); *************** *** 333,340 **** unblock_alarms(); } ! long bytes_in_pool (pool *p) { return bytes_in_block_list (p->first); } ! long bytes_in_free_blocks () { return bytes_in_block_list (block_freelist); } /***************************************************************** * --- 333,344 ---- unblock_alarms(); } ! API_EXPORT(long) bytes_in_pool (pool *p) { ! return bytes_in_block_list (p->first); ! } ! API_EXPORT(long) bytes_in_free_blocks () { ! return bytes_in_block_list (block_freelist); ! } /***************************************************************** * 1.29 +3 -3 apache/src/alloc.h Index: alloc.h =================================================================== RCS file: /export/home/cvs/apache/src/alloc.h,v retrieving revision 1.28 retrieving revision 1.29 diff -c -C3 -r1.28 -r1.29 *** alloc.h 1997/07/13 19:01:07 1.28 --- alloc.h 1997/07/15 21:39:50 1.29 *************** *** 86,92 **** /* Clearing out EVERYTHING in an pool... destroys any sub-pools */ ! void clear_pool (struct pool *); /* Preparing for exec() --- close files, etc., but *don't* flush I/O * buffers, *don't* wait for subprocesses, and *don't* free any memory. --- 86,92 ---- /* Clearing out EVERYTHING in an pool... destroys any sub-pools */ ! API_EXPORT(void) clear_pool (struct pool *); /* Preparing for exec() --- close files, etc., but *don't* flush I/O * buffers, *don't* wait for subprocesses, and *don't* free any memory. *************** *** 262,266 **** /* Finally, some accounting */ ! long bytes_in_pool(pool *p); ! long bytes_in_free_blocks(); --- 262,266 ---- /* Finally, some accounting */ ! API_EXPORT(long) bytes_in_pool(pool *p); ! API_EXPORT(long) bytes_in_free_blocks(); 1.37 +14 -24 apache/src/buff.c Index: buff.c =================================================================== RCS file: /export/home/cvs/apache/src/buff.c,v retrieving revision 1.36 retrieving revision 1.37 diff -c -C3 -r1.36 -r1.37 *** buff.c 1997/07/13 19:01:08 1.36 --- buff.c 1997/07/15 21:39:50 1.37 *************** *** 246,253 **** /* * Create a new buffered stream */ ! BUFF * ! bcreate(pool *p, int flags) { BUFF *fb; --- 246,252 ---- /* * Create a new buffered stream */ ! API_EXPORT(BUFF *) bcreate(pool *p, int flags) { BUFF *fb; *************** *** 290,304 **** /* * Push some I/O file descriptors onto the stream */ ! void ! bpushfd(BUFF *fb, int fd_in, int fd_out) { fb->fd = fd_out; fb->fd_in = fd_in; } ! int ! bsetopt(BUFF *fb, int optname, const void *optval) { if (optname == BO_BYTECT) { --- 289,301 ---- /* * Push some I/O file descriptors onto the stream */ ! API_EXPORT(void) bpushfd(BUFF *fb, int fd_in, int fd_out) { fb->fd = fd_out; fb->fd_in = fd_in; } ! API_EXPORT(int) bsetopt(BUFF *fb, int optname, const void *optval) { if (optname == BO_BYTECT) { *************** *** 311,318 **** } } ! int ! bgetopt(BUFF *fb, int optname, void *optval) { if (optname == BO_BYTECT) { --- 308,314 ---- } } ! API_EXPORT(int) bgetopt(BUFF *fb, int optname, void *optval) { if (optname == BO_BYTECT) { *************** *** 415,421 **** /* * Set a flag on (1) or off (0). */ ! int bsetflag(BUFF *fb, int flag, int value) { if (value) { fb->flags |= flag; --- 411,417 ---- /* * Set a flag on (1) or off (0). */ ! API_EXPORT(int) bsetflag(BUFF *fb, int flag, int value) { if (value) { fb->flags |= flag; *************** *** 518,525 **** * If fewer than byte bytes are currently available, then return those. * Returns 0 for EOF, -1 for error. */ ! int ! bread(BUFF *fb, void *buf, int nbyte) { int i, nrd; --- 514,520 ---- * If fewer than byte bytes are currently available, then return those. * Returns 0 for EOF, -1 for error. */ ! API_EXPORT(int) bread(BUFF *fb, void *buf, int nbyte) { int i, nrd; *************** *** 684,690 **** * Returns 1 on success, zero on end of transmission, or -1 on an error. * */ ! int blookc(char *buff, BUFF *fb) { int i; --- 679,685 ---- * Returns 1 on success, zero on end of transmission, or -1 on an error. * */ ! API_EXPORT(int) blookc(char *buff, BUFF *fb) { int i; *************** *** 723,730 **** * Skip data until a linefeed character is read * Returns 1 on success, 0 if no LF found, or -1 on error */ ! int ! bskiplf(BUFF *fb) { unsigned char *x; int i; --- 718,724 ---- * Skip data until a linefeed character is read * Returns 1 on success, 0 if no LF found, or -1 on error */ ! API_EXPORT(int) bskiplf(BUFF *fb) { unsigned char *x; int i; *************** *** 762,769 **** /* * Emtpy the buffer after putting a single character in it */ ! int ! bflsbuf(int c, BUFF *fb) { char ss[1]; --- 756,762 ---- /* * Emtpy the buffer after putting a single character in it */ ! API_EXPORT(int) bflsbuf(int c, BUFF *fb) { char ss[1]; *************** *** 774,781 **** /* * Fill the buffer and read a character from it */ ! int ! bfilbuf(BUFF *fb) { int i; char buf[1]; --- 767,773 ---- /* * Fill the buffer and read a character from it */ ! API_EXPORT(int) bfilbuf(BUFF *fb) { int i; char buf[1]; *************** *** 1130,1137 **** /* * returns the number of bytes written or -1 on error */ ! int ! bputs(const char *x, BUFF *fb) { int i, j=strlen(x); i = bwrite(fb, x, j); --- 1122,1128 ---- /* * returns the number of bytes written or -1 on error */ ! API_EXPORT(int) bputs(const char *x, BUFF *fb) { int i, j=strlen(x); i = bwrite(fb, x, j); *************** *** 1142,1149 **** /* * returns the number of bytes written or -1 on error */ ! int ! bvputs(BUFF *fb, ...) { int i, j, k; va_list v; --- 1133,1139 ---- /* * returns the number of bytes written or -1 on error */ ! API_EXPORT_NONSTD(int) bvputs(BUFF *fb, ...) { int i, j, k; va_list v; *************** *** 1169,1176 **** return k; } ! void ! bonerror(BUFF *fb, void (*error)(BUFF *, int, void *), void *data) { fb->error = error; fb->error_data = data; --- 1159,1166 ---- return k; } ! API_EXPORT(void) bonerror(BUFF *fb, void (*error)(BUFF *, int, void *), ! void *data) { fb->error = error; fb->error_data = data; 1.19 +15 -15 apache/src/buff.h Index: buff.h =================================================================== RCS file: /export/home/cvs/apache/src/buff.h,v retrieving revision 1.18 retrieving revision 1.19 diff -c -C3 -r1.18 -r1.19 *** buff.h 1997/07/14 11:28:54 1.18 --- buff.h 1997/07/15 21:39:51 1.19 *************** *** 120,153 **** #define BO_BYTECT (1) /* Stream creation and modification */ ! extern BUFF *bcreate(pool *p, int flags); ! extern void bpushfd(BUFF *fb, int fd_in, int fd_out); ! extern int bsetopt(BUFF *fb, int optname, const void *optval); ! extern int bgetopt(BUFF *fb, int optname, void *optval); ! extern int bsetflag(BUFF *fb, int flag, int value); API_EXPORT(int) bclose(BUFF *fb); #define bgetflag(fb, flag) ((fb)->flags & (flag)) /* Error handling */ ! extern void bonerror(BUFF *fb, void (*error)(BUFF *, int, void *), void *data); /* I/O */ ! extern int bread(BUFF *fb, void *buf, int nbyte); API_EXPORT(int) bgets(char *s, int n, BUFF *fb); ! extern int blookc(char *buff, BUFF *fb); ! extern int bskiplf(BUFF *fb); API_EXPORT(int) bwrite(BUFF *fb, const void *buf, int nbyte); API_EXPORT(int) bflush(BUFF *fb); ! extern int bputs(const char *x, BUFF *fb); ! extern int bvputs(BUFF *fb, ...); ! extern int bprintf(BUFF *fb,const char *fmt,...); ! extern int vbprintf(BUFF *fb,const char *fmt,va_list vlist); /* Internal routines */ ! extern int bflsbuf(int c, BUFF *fb); ! extern int bfilbuf(BUFF *fb); #define bgetc(fb) ( ((fb)->incnt == 0) ? bfilbuf(fb) : \ ((fb)->incnt--, *((fb)->inptr++)) ) --- 120,153 ---- #define BO_BYTECT (1) /* Stream creation and modification */ ! API_EXPORT(BUFF *) bcreate(pool *p, int flags); ! API_EXPORT(void) bpushfd(BUFF *fb, int fd_in, int fd_out); ! API_EXPORT(int) bsetopt(BUFF *fb, int optname, const void *optval); ! API_EXPORT(int) bgetopt(BUFF *fb, int optname, void *optval); ! API_EXPORT(int) bsetflag(BUFF *fb, int flag, int value); API_EXPORT(int) bclose(BUFF *fb); #define bgetflag(fb, flag) ((fb)->flags & (flag)) /* Error handling */ ! API_EXPORT(void) bonerror(BUFF *fb, void (*error)(BUFF *, int, void *), void *data); /* I/O */ ! API_EXPORT(int) bread(BUFF *fb, void *buf, int nbyte); API_EXPORT(int) bgets(char *s, int n, BUFF *fb); ! API_EXPORT(int) blookc(char *buff, BUFF *fb); ! API_EXPORT(int) bskiplf(BUFF *fb); API_EXPORT(int) bwrite(BUFF *fb, const void *buf, int nbyte); API_EXPORT(int) bflush(BUFF *fb); ! API_EXPORT(int) bputs(const char *x, BUFF *fb); ! API_EXPORT(int) bvputs(BUFF *fb, ...); ! API_EXPORT_NONSTD(int) bprintf(BUFF *fb,const char *fmt,...); ! API_EXPORT_NONSTD(int) vbprintf(BUFF *fb,const char *fmt,va_list vlist); /* Internal routines */ ! API_EXPORT(int) bflsbuf(int c, BUFF *fb); ! API_EXPORT(int) bfilbuf(BUFF *fb); #define bgetc(fb) ( ((fb)->incnt == 0) ? bfilbuf(fb) : \ ((fb)->incnt--, *((fb)->inptr++)) ) 1.11 +1 -1 apache/src/http_bprintf.c Index: http_bprintf.c =================================================================== RCS file: /export/home/cvs/apache/src/http_bprintf.c,v retrieving revision 1.10 retrieving revision 1.11 diff -c -C3 -r1.10 -r1.11 *** http_bprintf.c 1997/06/29 23:54:50 1.10 --- http_bprintf.c 1997/07/15 21:39:51 1.11 *************** *** 60,66 **** *srcPtr = src; } ! int vbprintf(BUFF *bp, const char *format, va_list arg) { const char *f,*fStop,*percentPtr,*p; char *fmtBuffPtr, *buffPtr; --- 60,66 ---- *srcPtr = src; } ! API_EXPORT_NONSTD(int) vbprintf(BUFF *bp, const char *format, va_list arg) { const char *f,*fStop,*percentPtr,*p; char *fmtBuffPtr, *buffPtr; 1.14 +1 -1 apache/src/http_conf_globals.h Index: http_conf_globals.h =================================================================== RCS file: /export/home/cvs/apache/src/http_conf_globals.h,v retrieving revision 1.13 retrieving revision 1.14 diff -c -C3 -r1.13 -r1.14 *** http_conf_globals.h 1997/07/13 19:01:09 1.13 --- http_conf_globals.h 1997/07/15 21:39:51 1.14 *************** *** 76,82 **** extern char *pid_fname; extern char *scoreboard_fname; extern char *lock_fname; ! extern char *server_argv0; /* Trying to allocate these in the config pool gets us into some *nasty* * chicken-and-egg problems in http_main.c --- where do you stick them --- 76,82 ---- extern char *pid_fname; extern char *scoreboard_fname; extern char *lock_fname; ! MODULE_VAR_EXPORT char *server_argv0; /* Trying to allocate these in the config pool gets us into some *nasty* * chicken-and-egg problems in http_main.c --- where do you stick them 1.60 +9 -7 apache/src/http_config.c Index: http_config.c =================================================================== RCS file: /export/home/cvs/apache/src/http_config.c,v retrieving revision 1.59 retrieving revision 1.60 diff -c -C3 -r1.59 -r1.60 *** http_config.c 1997/07/13 19:01:09 1.59 --- http_config.c 1997/07/15 21:39:52 1.60 *************** *** 442,448 **** /* One-time setup for precompiled modules --- NOT to be done on restart */ ! void add_module (module *m) { /* This could be called from an AddModule httpd.conf command, * after the file has been linked and the module structure within it --- 442,448 ---- /* One-time setup for precompiled modules --- NOT to be done on restart */ ! API_EXPORT(void) add_module (module *m) { /* This could be called from an AddModule httpd.conf command, * after the file has been linked and the module structure within it *************** *** 489,500 **** } } ! const char *find_module_name (module *m) { return m->name; } ! module *find_linked_module (const char *name) { module *modp; --- 489,500 ---- } } ! API_EXPORT(const char *) find_module_name (module *m) { return m->name; } ! API_EXPORT(module *) find_linked_module (const char *name) { module *modp; *************** *** 506,512 **** } /* Add a named module. Returns 1 if module found, 0 otherwise. */ ! int add_named_module (const char *name) { extern module *preloaded_modules[]; module *modp; --- 506,512 ---- } /* Add a named module. Returns 1 if module found, 0 otherwise. */ ! API_EXPORT(int) add_named_module (const char *name) { extern module *preloaded_modules[]; module *modp; *************** *** 526,532 **** } /* Clear the internal list of modules, in preparation for starting over. */ ! void clear_module_list () { module **m = &top_module; module **next_m; --- 526,532 ---- } /* Clear the internal list of modules, in preparation for starting over. */ ! API_EXPORT(void) clear_module_list () { module **m = &top_module; module **next_m; *************** *** 776,782 **** * Generic command functions... */ ! API_EXPORT_NONSTD(const char *) set_string_slot (cmd_parms *cmd, char *struct_ptr, char *arg) { /* This one's pretty generic... */ --- 776,783 ---- * Generic command functions... */ ! API_EXPORT_NONSTD(const char *) set_string_slot (cmd_parms *cmd, ! char *struct_ptr, char *arg) { /* This one's pretty generic... */ *************** *** 785,791 **** return NULL; } ! const char *set_flag_slot (cmd_parms *cmd, char *struct_ptr, int arg) { /* This one's pretty generic too... */ --- 786,793 ---- return NULL; } ! API_EXPORT_NONSTD(const char *) set_flag_slot (cmd_parms *cmd, ! char *struct_ptr, int arg) { /* This one's pretty generic too... */ 1.35 +6 -6 apache/src/http_config.h Index: http_config.h =================================================================== RCS file: /export/home/cvs/apache/src/http_config.h,v retrieving revision 1.34 retrieving revision 1.35 diff -c -C3 -r1.34 -r1.35 *** http_config.h 1997/07/13 19:01:10 1.34 --- http_config.h 1997/07/15 21:39:52 1.35 *************** *** 239,245 **** /* Generic command handling function... */ API_EXPORT_NONSTD(const char *) set_string_slot (cmd_parms *, char *, char *); ! const char *set_flag_slot (cmd_parms *, char *, int); /* For modules which need to read config files, open logs, etc. ... * this returns the fname argument if it begins with '/'; otherwise --- 239,245 ---- /* Generic command handling function... */ API_EXPORT_NONSTD(const char *) set_string_slot (cmd_parms *, char *, char *); ! API_EXPORT_NONSTD(const char *) set_flag_slot (cmd_parms *, char *, int); /* For modules which need to read config files, open logs, etc. ... * this returns the fname argument if it begins with '/'; otherwise *************** *** 250,260 **** /* Finally, the hook for dynamically loading modules in... */ ! void add_module (module *m); ! int add_named_module (const char *name); ! void clear_module_list (); ! const char *find_module_name (module *m); ! module *find_linked_module (const char *name); #ifdef CORE_PRIVATE --- 250,260 ---- /* Finally, the hook for dynamically loading modules in... */ ! API_EXPORT(void) add_module (module *m); ! API_EXPORT(int) add_named_module (const char *name); ! API_EXPORT(void) clear_module_list (); ! API_EXPORT(const char *) find_module_name (module *m); ! API_EXPORT(module *) find_linked_module (const char *name); #ifdef CORE_PRIVATE 1.20 +5 -7 apache/src/http_log.c Index: http_log.c =================================================================== RCS file: /export/home/cvs/apache/src/http_log.c,v retrieving revision 1.19 retrieving revision 1.20 diff -c -C3 -r1.19 -r1.20 *** http_log.c 1997/07/13 19:01:11 1.19 --- http_log.c 1997/07/15 21:39:53 1.20 *************** *** 158,171 **** fclose(pid_file); } ! void log_error(char *err, server_rec *s) { fprintf(s->error_log, "[%s] %s\n",get_time(),err); fflush(s->error_log); } ! void ! log_unixerr(const char *routine, const char *file, const char *msg, ! server_rec *s) { const char *p, *q; FILE *err=s ? s->error_log : stderr; --- 158,170 ---- fclose(pid_file); } ! API_EXPORT(void) log_error(char *err, server_rec *s) { fprintf(s->error_log, "[%s] %s\n",get_time(),err); fflush(s->error_log); } ! API_EXPORT(void) log_unixerr(const char *routine, const char *file, ! const char *msg, server_rec *s) { const char *p, *q; FILE *err=s ? s->error_log : stderr; *************** *** 182,189 **** fflush(err); } ! void ! log_printf(const server_rec *s, const char *fmt, ...) { va_list args; --- 181,187 ---- fflush(err); } ! API_EXPORT(void) log_printf(const server_rec *s, const char *fmt, ...) { va_list args; *************** *** 206,212 **** fflush (r->server->error_log); } ! void log_assert(const char *szExp,const char *szFile,int nLine) { fprintf(stderr, "[%s] file %s, line %d, assertion \"%s\" failed\n", get_time(), szFile, nLine, szExp); --- 204,210 ---- fflush (r->server->error_log); } ! API_EXPORT(void) log_assert(const char *szExp, const char *szFile, int nLine) { fprintf(stderr, "[%s] file %s, line %d, assertion \"%s\" failed\n", get_time(), szFile, nLine, szExp); 1.9 +6 -5 apache/src/http_log.h Index: http_log.h =================================================================== RCS file: /export/home/cvs/apache/src/http_log.h,v retrieving revision 1.8 retrieving revision 1.9 diff -c -C3 -r1.8 -r1.9 *** http_log.h 1997/07/13 19:01:11 1.8 --- http_log.h 1997/07/15 21:39:54 1.9 *************** *** 54,62 **** API_EXPORT(void) error_log2stderr (server_rec *); void log_pid (pool *p, char *pid_fname); ! void log_error(char *err, server_rec *s); ! extern void log_unixerr(const char *routine, const char *file, ! const char *msg, server_rec *s); ! void log_printf(const server_rec *s, const char *fmt, ...); ! API_EXPORT(void) log_reason(const char *reason, const char *fname, request_rec *r); --- 54,63 ---- API_EXPORT(void) error_log2stderr (server_rec *); void log_pid (pool *p, char *pid_fname); ! API_EXPORT(void) log_error(char *err, server_rec *s); ! API_EXPORT(void) log_unixerr(const char *routine, const char *file, ! const char *msg, server_rec *s); ! API_EXPORT(void) log_printf(const server_rec *s, const char *fmt, ...); ! API_EXPORT(void) log_reason(const char *reason, const char *fname, ! request_rec *r); 1.179 +4 -4 apache/src/http_main.c Index: http_main.c =================================================================== RCS file: /export/home/cvs/apache/src/http_main.c,v retrieving revision 1.178 retrieving revision 1.179 diff -c -C3 -r1.178 -r1.179 *** http_main.c 1997/07/13 19:01:11 1.178 --- http_main.c 1997/07/15 21:39:54 1.179 *************** *** 777,783 **** scoreboard_image = NULL; } ! void sync_scoreboard_image () {} --- 777,783 ---- scoreboard_image = NULL; } ! API_EXPORT(void) sync_scoreboard_image () {} *************** *** 1057,1063 **** * anyway. */ ! void sync_scoreboard_image () { #ifdef SCOREBOARD_FILE lseek (scoreboard_fd, 0L, 0); --- 1057,1063 ---- * anyway. */ ! API_EXPORT(void) sync_scoreboard_image () { #ifdef SCOREBOARD_FILE lseek (scoreboard_fd, 0L, 0); *************** *** 1067,1073 **** #endif /* MULTITHREAD */ ! int exists_scoreboard_image () { return (scoreboard_image ? 1 : 0); } --- 1067,1073 ---- #endif /* MULTITHREAD */ ! API_EXPORT(int) exists_scoreboard_image () { return (scoreboard_image ? 1 : 0); } *************** *** 1143,1149 **** #endif } ! short_score get_scoreboard_info(int i) { return (scoreboard_image->servers[i]); } --- 1143,1149 ---- #endif } ! API_EXPORT(short_score) get_scoreboard_info(int i) { return (scoreboard_image->servers[i]); } 1.15 +1 -1 apache/src/http_main.h Index: http_main.h =================================================================== RCS file: /export/home/cvs/apache/src/http_main.h,v retrieving revision 1.14 retrieving revision 1.15 diff -c -C3 -r1.14 -r1.15 *** http_main.h 1997/07/13 19:01:12 1.14 --- http_main.h 1997/07/15 21:39:55 1.15 *************** *** 91,97 **** API_EXPORT(void) kill_timeout (request_rec *); API_EXPORT(void) reset_timeout (request_rec *); ! void sync_scoreboard_image (); int update_child_status (int child_num, int status, request_rec *r); void time_process_request (int child_num, int status); unsigned int set_callback_and_alarm(void (*fn)(int), int x); --- 91,97 ---- API_EXPORT(void) kill_timeout (request_rec *); API_EXPORT(void) reset_timeout (request_rec *); ! API_EXPORT(void) sync_scoreboard_image (); int update_child_status (int child_num, int status, request_rec *r); void time_process_request (int child_num, int status); unsigned int set_callback_and_alarm(void (*fn)(int), int x); 1.138 +19 -17 apache/src/http_protocol.c Index: http_protocol.c =================================================================== RCS file: /export/home/cvs/apache/src/http_protocol.c,v retrieving revision 1.137 retrieving revision 1.138 diff -c -C3 -r1.137 -r1.138 *** http_protocol.c 1997/07/15 15:52:42 1.137 --- http_protocol.c 1997/07/15 21:39:56 1.138 *************** *** 108,114 **** static int internal_byterange(int, long*, request_rec*, char**, long*, long*); ! int set_byterange (request_rec *r) { char *range, *if_range, *match; char ts[MAX_STRING_LEN]; --- 108,114 ---- static int internal_byterange(int, long*, request_rec*, char**, long*, long*); ! API_EXPORT(int) set_byterange (request_rec *r) { char *range, *if_range, *match; char ts[MAX_STRING_LEN]; *************** *** 182,188 **** return 1; } ! int each_byterange (request_rec *r, long *offset, long *length) { return internal_byterange(1, NULL, r, &r->range, offset, length); } --- 182,188 ---- return 1; } ! API_EXPORT(int) each_byterange (request_rec *r, long *offset, long *length) { return internal_byterange(1, NULL, r, &r->range, offset, length); } *************** *** 245,251 **** return 1; } ! int set_content_length (request_rec *r, long clength) { char ts[MAX_STRING_LEN]; --- 245,251 ---- return 1; } ! API_EXPORT(int) set_content_length (request_rec *r, long clength) { char ts[MAX_STRING_LEN]; *************** *** 344,350 **** return 0; } ! int set_last_modified(request_rec *r, time_t mtime) { char *etag, weak_etag[MAX_STRING_LEN]; char *if_match, *if_modified_since, *if_unmodified, *if_nonematch; --- 344,350 ---- return 0; } ! API_EXPORT(int) set_last_modified(request_rec *r, time_t mtime) { char *etag, weak_etag[MAX_STRING_LEN]; char *if_match, *if_modified_since, *if_unmodified, *if_nonematch; *************** *** 883,889 **** /* Support for the Basic authentication protocol, and a bit for Digest. */ ! void note_auth_failure(request_rec *r) { if (!strcasecmp(auth_type(r), "Basic")) note_basic_auth_failure(r); --- 883,889 ---- /* Support for the Basic authentication protocol, and a bit for Digest. */ ! API_EXPORT(void) note_auth_failure(request_rec *r) { if (!strcasecmp(auth_type(r), "Basic")) note_basic_auth_failure(r); *************** *** 891,897 **** note_digest_auth_failure(r); } ! void note_basic_auth_failure(request_rec *r) { if (strcasecmp(auth_type(r), "Basic")) note_auth_failure(r); --- 891,897 ---- note_digest_auth_failure(r); } ! API_EXPORT(void) note_basic_auth_failure(request_rec *r) { if (strcasecmp(auth_type(r), "Basic")) note_auth_failure(r); *************** *** 900,906 **** pstrcat(r->pool, "Basic realm=\"", auth_name(r), "\"", NULL)); } ! void note_digest_auth_failure(request_rec *r) { char nonce[256]; --- 900,906 ---- pstrcat(r->pool, "Basic realm=\"", auth_name(r), "\"", NULL)); } ! API_EXPORT(void) note_digest_auth_failure(request_rec *r) { char nonce[256]; *************** *** 910,916 **** "\", nonce=\"", nonce, "\"", NULL)); } ! int get_basic_auth_pw (request_rec *r, char **pw) { const char *auth_line = table_get (r->headers_in, "Authorization"); char *t; --- 910,916 ---- "\", nonce=\"", nonce, "\"", NULL)); } ! API_EXPORT(int) get_basic_auth_pw (request_rec *r, char **pw) { const char *auth_line = table_get (r->headers_in, "Authorization"); char *t; *************** *** 1525,1533 **** return (chunk_start + len_read); } ! long send_fd(FILE *f, request_rec *r) { return send_fd_length(f, r, -1); } ! long send_fd_length(FILE *f, request_rec *r, long length) { char buf[IOBUFSIZE]; long total_bytes_sent = 0; --- 1525,1535 ---- return (chunk_start + len_read); } ! API_EXPORT(long)send_fd(FILE *f, request_rec *r) { ! return send_fd_length(f, r, -1); ! } ! API_EXPORT(long) send_fd_length(FILE *f, request_rec *r, long length) { char buf[IOBUFSIZE]; long total_bytes_sent = 0; *************** *** 1582,1588 **** return total_bytes_sent; } ! int rputc (int c, request_rec *r) { if (r->connection->aborted) return EOF; bputc(c, r->connection->client); --- 1584,1590 ---- return total_bytes_sent; } ! API_EXPORT(int) rputc (int c, request_rec *r) { if (r->connection->aborted) return EOF; bputc(c, r->connection->client); *************** *** 1590,1603 **** return c; } ! int rputs(const char *str, request_rec *r) { if (r->connection->aborted) return EOF; SET_BYTES_SENT(r); return bputs(str, r->connection->client); } ! int rwrite(const void *buf, int nbyte, request_rec *r) { int n; if (r->connection->aborted) return EOF; --- 1592,1605 ---- return c; } ! API_EXPORT(int) rputs(const char *str, request_rec *r) { if (r->connection->aborted) return EOF; SET_BYTES_SENT(r); return bputs(str, r->connection->client); } ! API_EXPORT(int) rwrite(const void *buf, int nbyte, request_rec *r) { int n; if (r->connection->aborted) return EOF; *************** *** 1606,1612 **** return n; } ! int rprintf(request_rec *r,const char *fmt,...) { va_list vlist; int n; --- 1608,1614 ---- return n; } ! API_EXPORT(int) rprintf(request_rec *r,const char *fmt,...) { va_list vlist; int n; *************** *** 1619,1625 **** return n; } ! int rvputs(request_rec *r, ...) { va_list args; int i, j, k; --- 1621,1627 ---- return n; } ! API_EXPORT_NONSTD(int) rvputs(request_rec *r, ...) { va_list args; int i, j, k; *************** *** 1648,1654 **** return k; } ! int rflush (request_rec *r) { return bflush(r->connection->client); } --- 1650,1656 ---- return k; } ! API_EXPORT(int) rflush (request_rec *r) { return bflush(r->connection->client); } *************** *** 1919,1925 **** * comes along? */ ! void client_to_stdout (conn_rec *c) { bflush(c->client); dup2(c->client->fd, STDOUT_FILENO); --- 1921,1927 ---- * comes along? */ ! API_EXPORT(void) client_to_stdout (conn_rec *c) { bflush(c->client); dup2(c->client->fd, STDOUT_FILENO); 1.23 +17 -17 apache/src/http_protocol.h Index: http_protocol.h =================================================================== RCS file: /export/home/cvs/apache/src/http_protocol.h,v retrieving revision 1.22 retrieving revision 1.23 diff -c -C3 -r1.22 -r1.23 *** http_protocol.h 1997/07/14 11:28:55 1.22 --- http_protocol.h 1997/07/15 21:39:56 1.23 *************** *** 93,101 **** * permit_cache argument is set to one). */ ! int set_content_length (request_rec *r, long length); int set_keepalive (request_rec *r); ! int set_last_modified (request_rec *r, time_t mtime); /* Other ways to send stuff at the client. All of these keep track * of bytes_sent automatically. This indirection is intended to make --- 93,101 ---- * permit_cache argument is set to one). */ ! API_EXPORT(int) set_content_length (request_rec *r, long length); int set_keepalive (request_rec *r); ! API_EXPORT(int) set_last_modified (request_rec *r, time_t mtime); /* Other ways to send stuff at the client. All of these keep track * of bytes_sent automatically. This indirection is intended to make *************** *** 108,126 **** * (Ditto the send_header stuff). */ ! long send_fd(FILE *f, request_rec *r); ! long send_fd_length(FILE *f, request_rec *r, long length); /* Hmmm... could macrofy these for now, and maybe forever, though the * definitions of the macros would get a whole lot hairier. */ ! int rputc (int c, request_rec *r); ! int rputs(const char *str, request_rec *r); ! int rwrite(const void *buf, int nbyte, request_rec *r); ! int rvputs(request_rec *r, ...); ! int rprintf(request_rec *r,const char *fmt,...); ! int rflush(request_rec *r); /* * Index used in custom_responses array for a specific error code --- 108,126 ---- * (Ditto the send_header stuff). */ ! API_EXPORT(long) send_fd(FILE *f, request_rec *r); ! API_EXPORT(long) send_fd_length(FILE *f, request_rec *r, long length); /* Hmmm... could macrofy these for now, and maybe forever, though the * definitions of the macros would get a whole lot hairier. */ ! API_EXPORT(int) rputc (int c, request_rec *r); ! API_EXPORT(int) rputs(const char *str, request_rec *r); ! API_EXPORT(int) rwrite(const void *buf, int nbyte, request_rec *r); ! API_EXPORT_NONSTD(int) rvputs(request_rec *r, ...); ! API_EXPORT_NONSTD(int) rprintf(request_rec *r,const char *fmt,...); ! API_EXPORT(int) rflush(request_rec *r); /* * Index used in custom_responses array for a specific error code *************** *** 137,144 **** /* Sending a byterange */ ! int set_byterange (request_rec *r); ! int each_byterange (request_rec *r, long *offset, long *length); /* Finally, this charming little number is here to encapsulate the * degree to which nph- scripts completely escape from any discipline --- 137,144 ---- /* Sending a byterange */ ! API_EXPORT(int) set_byterange (request_rec *r); ! API_EXPORT(int) each_byterange (request_rec *r, long *offset, long *length); /* Finally, this charming little number is here to encapsulate the * degree to which nph- scripts completely escape from any discipline *************** *** 147,153 **** * to explicitly set the status line). */ ! void client_to_stdout (conn_rec *c); /* Support for the Basic authentication protocol. Note that there's --- 147,153 ---- * to explicitly set the status line). */ ! API_EXPORT(void) client_to_stdout (conn_rec *c); /* Support for the Basic authentication protocol. Note that there's *************** *** 172,181 **** * */ ! void note_auth_failure(request_rec *r); ! void note_basic_auth_failure(request_rec *r); ! void note_digest_auth_failure(request_rec *r); ! int get_basic_auth_pw (request_rec *r, char **pw); /* * Setting up the protocol fields for subsidiary requests... --- 172,181 ---- * */ ! API_EXPORT(void) note_auth_failure(request_rec *r); ! API_EXPORT(void) note_basic_auth_failure(request_rec *r); ! API_EXPORT(void) note_digest_auth_failure(request_rec *r); ! API_EXPORT(int) get_basic_auth_pw (request_rec *r, char **pw); /* * Setting up the protocol fields for subsidiary requests... 1.62 +8 -6 apache/src/http_request.c Index: http_request.c =================================================================== RCS file: /export/home/cvs/apache/src/http_request.c,v retrieving revision 1.61 retrieving revision 1.62 diff -c -C3 -r1.61 -r1.62 *** http_request.c 1997/07/14 02:32:10 1.61 --- http_request.c 1997/07/15 21:39:57 1.62 *************** *** 601,607 **** } ! request_rec *sub_req_lookup_uri (const char *new_file, const request_rec *r) { request_rec *rnew; int res; --- 601,608 ---- } ! API_EXPORT(request_rec *) sub_req_lookup_uri (const char *new_file, ! const request_rec *r) { request_rec *rnew; int res; *************** *** 676,682 **** return rnew; } ! request_rec *sub_req_lookup_file (const char *new_file, const request_rec *r) { request_rec *rnew; int res; --- 677,684 ---- return rnew; } ! API_EXPORT(request_rec *) sub_req_lookup_file (const char *new_file, ! const request_rec *r) { request_rec *rnew; int res; *************** *** 764,777 **** return rnew; } ! int run_sub_req (request_rec *r) { int retval = invoke_handler (r); finalize_sub_req_protocol (r); return retval; } ! void destroy_sub_req (request_rec *r) { /* Reclaim the space */ destroy_pool (r->pool); --- 766,779 ---- return rnew; } ! API_EXPORT(int) run_sub_req (request_rec *r) { int retval = invoke_handler (r); finalize_sub_req_protocol (r); return retval; } ! API_EXPORT(void) destroy_sub_req (request_rec *r) { /* Reclaim the space */ destroy_pool (r->pool); *************** *** 1116,1122 **** return new; } ! void internal_redirect (const char *new_uri, request_rec *r) { request_rec *new = internal_internal_redirect(new_uri, r); process_request_internal (new); --- 1118,1124 ---- return new; } ! API_EXPORT(void) internal_redirect (const char *new_uri, request_rec *r) { request_rec *new = internal_internal_redirect(new_uri, r); process_request_internal (new); *************** *** 1139,1145 **** * it is the initial main request, which we only get *once* per HTTP request */ ! int is_initial_req(request_rec *r) { return (r->main == NULL) /* otherwise, this is a sub-request */ --- 1141,1147 ---- * it is the initial main request, which we only get *once* per HTTP request */ ! API_EXPORT(int) is_initial_req(request_rec *r) { return (r->main == NULL) /* otherwise, this is a sub-request */ 1.13 +8 -6 apache/src/http_request.h Index: http_request.h =================================================================== RCS file: /export/home/cvs/apache/src/http_request.h,v retrieving revision 1.12 retrieving revision 1.13 diff -c -C3 -r1.12 -r1.13 *** http_request.h 1997/07/13 19:01:13 1.12 --- http_request.h 1997/07/15 21:39:57 1.13 *************** *** 70,79 **** * about which was allocated in its pool elsewhere before doing this. */ ! request_rec *sub_req_lookup_uri (const char *new_file, const request_rec *r); ! request_rec *sub_req_lookup_file (const char *new_file, const request_rec *r); ! int run_sub_req (request_rec *r); ! void destroy_sub_req (request_rec *r); /* * Then there's the case that you want some other request to be served --- 70,81 ---- * about which was allocated in its pool elsewhere before doing this. */ ! API_EXPORT(request_rec *) sub_req_lookup_uri (const char *new_file, ! const request_rec *r); ! API_EXPORT(request_rec *) sub_req_lookup_file (const char *new_file, ! const request_rec *r); ! API_EXPORT(int) run_sub_req (request_rec *r); ! API_EXPORT(void) destroy_sub_req (request_rec *r); /* * Then there's the case that you want some other request to be served *************** *** 81,90 **** * If so, call this from a handler, and then immediately return OK. */ ! void internal_redirect (const char *new_uri, request_rec *); API_EXPORT(void) internal_redirect_handler (const char *new_uri, request_rec *); API_EXPORT(int) some_auth_required (request_rec *r); ! int is_initial_req(request_rec *r); #ifdef CORE_PRIVATE /* Function called by main.c to handle first-level request */ --- 83,92 ---- * If so, call this from a handler, and then immediately return OK. */ ! API_EXPORT(void) internal_redirect (const char *new_uri, request_rec *); API_EXPORT(void) internal_redirect_handler (const char *new_uri, request_rec *); API_EXPORT(int) some_auth_required (request_rec *r); ! API_EXPORT(int) is_initial_req(request_rec *r); #ifdef CORE_PRIVATE /* Function called by main.c to handle first-level request */ 1.127 +41 -39 apache/src/httpd.h Index: httpd.h =================================================================== RCS file: /export/home/cvs/apache/src/httpd.h,v retrieving revision 1.126 retrieving revision 1.127 diff -c -C3 -r1.126 -r1.127 *** httpd.h 1997/07/13 19:01:14 1.126 --- httpd.h 1997/07/15 21:39:57 1.127 *************** *** 678,737 **** */ /* Time */ ! extern const char month_snames[12][4]; ! struct tm *get_gmtoff(int *tz); API_EXPORT(char *) get_time(); ! char *ht_time (pool *p, time_t t, const char *fmt, int gmt); ! char *gm_timestr_822(pool *p, time_t t); /* String handling. The *_nc variants allow you to use non-const char **s as arguments (unfortunately C won't automatically convert a char ** to a const char **) */ API_EXPORT(char *) getword(pool *p, const char **line, char stop); ! char *getword_nc(pool *p, char **line, char stop); ! char *getword_white(pool *p, const char **line); ! char *getword_white_nc(pool *p, char **line); ! char *getword_nulls (pool *p, const char **line, char stop); ! char *getword_nulls_nc (pool *p, char **line, char stop); API_EXPORT(char *) getword_conf (pool *p, const char **line); ! char *getword_conf_nc (pool *p, char **line); ! char *get_token (pool *p, char **accept_line, int accept_white); ! int find_token (pool *p, const char *line, const char *tok); ! int find_last_token (pool *p, const char *line, const char *tok); API_EXPORT(int) is_url(const char *u); ! extern int unescape_url(char *url); ! void no2slash(char *name); ! void getparents(char *name); ! char *escape_path_segment(pool *p, const char *s); API_EXPORT(char *) os_escape_path(pool *p,const char *path,int partial); #define escape_uri(ppool,path) os_escape_path(ppool,path,1) ! extern char *escape_html(pool *p, const char *s); ! char *construct_server(pool *p, const char *hostname, unsigned port); ! char *construct_url (pool *p, const char *path, const server_rec *s); ! char *escape_shell_cmd (pool *p, const char *s); ! ! int count_dirs(const char *path); ! char *make_dirstr_prefix (char *d, const char *s, int n); ! char *make_dirstr_parent (pool *p, const char *s); /* deprecated. The previous two routines are preferred. */ ! char *make_dirstr(pool *a, const char *s, int n); ! char *make_full_path(pool *a, const char *dir, const char *f); ! ! int is_matchexp(const char *str); ! int strcmp_match(const char *str, const char *exp); ! int strcasecmp_match(const char *str, const char *exp); ! char *uudecode (pool *, const char *); API_EXPORT(char *) pregsub(pool *p, const char *input, const char *source, size_t nmatch, regmatch_t pmatch[]); API_EXPORT(void) str_tolower (char *); ! int ind (const char *, char); /* Sigh... */ ! int rind (const char *, char); API_EXPORT(int) cfg_getline(char *s, int n, FILE *f); --- 678,739 ---- */ /* Time */ ! extern MODULE_VAR_EXPORT const char month_snames[12][4]; ! API_EXPORT(struct tm *) get_gmtoff(int *tz); API_EXPORT(char *) get_time(); ! API_EXPORT(char *) ht_time (pool *p, time_t t, const char *fmt, int gmt); ! API_EXPORT(char *) gm_timestr_822(pool *p, time_t t); /* String handling. The *_nc variants allow you to use non-const char **s as arguments (unfortunately C won't automatically convert a char ** to a const char **) */ API_EXPORT(char *) getword(pool *p, const char **line, char stop); ! API_EXPORT(char *) getword_nc(pool *p, char **line, char stop); ! API_EXPORT(char *) getword_white(pool *p, const char **line); ! API_EXPORT(char *) getword_white_nc(pool *p, char **line); ! API_EXPORT(char *) getword_nulls (pool *p, const char **line, char stop); ! API_EXPORT(char *) getword_nulls_nc (pool *p, char **line, char stop); API_EXPORT(char *) getword_conf (pool *p, const char **line); ! API_EXPORT(char *) getword_conf_nc (pool *p, char **line); ! API_EXPORT(char *) get_token (pool *p, char **accept_line, int accept_white); ! API_EXPORT(int) find_token (pool *p, const char *line, const char *tok); ! API_EXPORT(int) find_last_token (pool *p, const char *line, const char *tok); API_EXPORT(int) is_url(const char *u); ! API_EXPORT(int) unescape_url(char *url); ! API_EXPORT(void) no2slash(char *name); ! API_EXPORT(void) getparents(char *name); ! API_EXPORT(char *) escape_path_segment(pool *p, const char *s); API_EXPORT(char *) os_escape_path(pool *p,const char *path,int partial); #define escape_uri(ppool,path) os_escape_path(ppool,path,1) ! API_EXPORT(char *) escape_html(pool *p, const char *s); ! API_EXPORT(char *) construct_server(pool *p, const char *hostname, ! unsigned port); ! API_EXPORT(char *) construct_url (pool *p, const char *path, ! const server_rec *s); ! API_EXPORT(char *) escape_shell_cmd (pool *p, const char *s); ! ! API_EXPORT(int) count_dirs(const char *path); ! API_EXPORT(char *) make_dirstr_prefix (char *d, const char *s, int n); ! API_EXPORT(char *) make_dirstr_parent (pool *p, const char *s); /* deprecated. The previous two routines are preferred. */ ! API_EXPORT(char *) make_dirstr(pool *a, const char *s, int n); ! API_EXPORT(char *) make_full_path(pool *a, const char *dir, const char *f); ! ! API_EXPORT(int) is_matchexp(const char *str); ! API_EXPORT(int) strcmp_match(const char *str, const char *exp); ! API_EXPORT(int) strcasecmp_match(const char *str, const char *exp); ! API_EXPORT(char *) uudecode (pool *, const char *); API_EXPORT(char *) pregsub(pool *p, const char *input, const char *source, size_t nmatch, regmatch_t pmatch[]); API_EXPORT(void) str_tolower (char *); ! API_EXPORT(int) ind (const char *, char); /* Sigh... */ ! API_EXPORT(int) rind (const char *, char); API_EXPORT(int) cfg_getline(char *s, int n, FILE *f); *************** *** 741,756 **** /* Misc system hackery */ ! uid_t uname2id(const char *name); ! gid_t gname2id(const char *name); ! int is_directory(const char *name); API_EXPORT(int) can_exec(const struct stat *); API_EXPORT(void) chdir_file(const char *file); char *get_local_host(pool *); unsigned long get_virthost_addr (const char *hostname, unsigned short *port); ! extern time_t restart_time; /* * Apache tries to keep all of its long term filehandles (such as log files, --- 743,758 ---- /* Misc system hackery */ ! API_EXPORT(uid_t) uname2id(const char *name); ! API_EXPORT(gid_t) gname2id(const char *name); ! API_EXPORT(int) is_directory(const char *name); API_EXPORT(int) can_exec(const struct stat *); API_EXPORT(void) chdir_file(const char *file); char *get_local_host(pool *); unsigned long get_virthost_addr (const char *hostname, unsigned short *port); ! MODULE_VAR_EXPORT time_t restart_time; /* * Apache tries to keep all of its long term filehandles (such as log files, *************** *** 787,791 **** /* * Redefine assert() to something more useful for an Apache... */ ! void log_assert(const char *szExp,const char *szFile,int nLine); #define ap_assert(exp) (void)( (exp) || (log_assert(#exp, __FILE__, __LINE__), 0) ) --- 789,793 ---- /* * Redefine assert() to something more useful for an Apache... */ ! API_EXPORT(void) log_assert(const char *szExp,const char *szFile,int nLine); #define ap_assert(exp) (void)( (exp) || (log_assert(#exp, __FILE__, __LINE__), 0) ) 1.25 +3 -3 apache/src/scoreboard.h Index: scoreboard.h =================================================================== RCS file: /export/home/cvs/apache/src/scoreboard.h,v retrieving revision 1.24 retrieving revision 1.25 diff -c -C3 -r1.24 -r1.25 *** scoreboard.h 1997/07/07 14:34:28 1.24 --- scoreboard.h 1997/07/15 21:39:58 1.25 *************** *** 114,122 **** #define SCOREBOARD_SIZE sizeof(scoreboard) ! extern void sync_scoreboard_image(void); ! short_score get_scoreboard_info(int x); ! int exists_scoreboard_image (); /* for time_process_request() in http_main.c */ #define START_PREQUEST 1 --- 114,122 ---- #define SCOREBOARD_SIZE sizeof(scoreboard) ! API_EXPORT(void) sync_scoreboard_image(void); ! API_EXPORT(short_score) get_scoreboard_info(int x); ! API_EXPORT(int) exists_scoreboard_image (); /* for time_process_request() in http_main.c */ #define START_PREQUEST 1 1.62 +38 -36 apache/src/util.c Index: util.c =================================================================== RCS file: /export/home/cvs/apache/src/util.c,v retrieving revision 1.61 retrieving revision 1.62 diff -c -C3 -r1.61 -r1.62 *** util.c 1997/07/13 19:01:16 1.61 --- util.c 1997/07/15 21:39:58 1.62 *************** *** 75,81 **** return (time_string); } ! char *ht_time(pool *p, time_t t, const char *fmt, int gmt) { char ts[MAX_STRING_LEN]; struct tm *tms; --- 75,81 ---- return (time_string); } ! API_EXPORT(char *) ht_time(pool *p, time_t t, const char *fmt, int gmt) { char ts[MAX_STRING_LEN]; struct tm *tms; *************** *** 86,92 **** return pstrdup (p, ts); } ! char *gm_timestr_822(pool *p, time_t sec) { static const char *const days[7]= {"Sun","Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; char ts[50]; --- 86,92 ---- return pstrdup (p, ts); } ! API_EXPORT(char *) gm_timestr_822(pool *p, time_t sec) { static const char *const days[7]= {"Sun","Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; char ts[50]; *************** *** 105,111 **** /* What a pain in the ass. */ #if defined(HAVE_GMTOFF) ! struct tm *get_gmtoff(int *tz) { time_t tt = time(NULL); struct tm *t; --- 105,111 ---- /* What a pain in the ass. */ #if defined(HAVE_GMTOFF) ! API_EXPORT(struct tm *) get_gmtoff(int *tz) { time_t tt = time(NULL); struct tm *t; *************** *** 114,120 **** return t; } #else ! struct tm *get_gmtoff(int *tz) { time_t tt = time(NULL); struct tm gmt; struct tm *t; --- 114,120 ---- return t; } #else ! API_EXPORT(struct tm *) get_gmtoff(int *tz) { time_t tt = time(NULL); struct tm gmt; struct tm *t; *************** *** 137,143 **** /* Based loosely on sections of wildmat.c by Rich Salz * Hmmm... shouldn't this really go component by component? */ ! int strcmp_match(const char *str, const char *exp) { int x,y; for(x=0,y=0;exp[y];++y,++x) { --- 137,143 ---- /* Based loosely on sections of wildmat.c by Rich Salz * Hmmm... shouldn't this really go component by component? */ ! API_EXPORT(int) strcmp_match(const char *str, const char *exp) { int x,y; for(x=0,y=0;exp[y];++y,++x) { *************** *** 160,166 **** return (str[x] != '\0'); } ! int strcasecmp_match(const char *str, const char *exp) { int x,y; for(x=0,y=0;exp[y];++y,++x) { --- 160,166 ---- return (str[x] != '\0'); } ! API_EXPORT(int) strcasecmp_match(const char *str, const char *exp) { int x,y; for(x=0,y=0;exp[y];++y,++x) { *************** *** 183,189 **** return (str[x] != '\0'); } ! int is_matchexp(const char *str) { register int x; for(x=0;str[x];x++) --- 183,189 ---- return (str[x] != '\0'); } ! API_EXPORT(int) is_matchexp(const char *str) { register int x; for(x=0;str[x];x++) *************** *** 274,280 **** /* * Parse .. so we don't compromise security */ ! void getparents(char *name) { int l, w; --- 274,280 ---- /* * Parse .. so we don't compromise security */ ! API_EXPORT(void) getparents(char *name) { int l, w; *************** *** 329,335 **** } } ! void no2slash(char *name) { register int x,y; for(x=0; name[x];) --- 329,335 ---- } } ! API_EXPORT(void) no2slash(char *name) { register int x,y; for(x=0; name[x];) *************** *** 352,358 **** * /a/b, 3 ==> /a/b/ * /a/b, 4 ==> /a/b/ */ ! char *make_dirstr_prefix (char *d, const char *s, int n) { for(;;) { *d = *s; --- 352,358 ---- * /a/b, 3 ==> /a/b/ * /a/b, 4 ==> /a/b/ */ ! API_EXPORT(char *) make_dirstr_prefix (char *d, const char *s, int n) { for(;;) { *d = *s; *************** *** 372,378 **** /* * return the parent directory name including trailing / of the file s */ ! char *make_dirstr_parent (pool *p, const char *s) { char *last_slash = strrchr (s, '/'); char *d; --- 372,378 ---- /* * return the parent directory name including trailing / of the file s */ ! API_EXPORT(char *) make_dirstr_parent (pool *p, const char *s) { char *last_slash = strrchr (s, '/'); char *d; *************** *** 394,400 **** * This function is deprecated. Use one of the preceeding two functions * which are faster. */ ! char *make_dirstr(pool *p, const char *s, int n) { register int x,f; char *res; --- 394,400 ---- * This function is deprecated. Use one of the preceeding two functions * which are faster. */ ! API_EXPORT(char *) make_dirstr(pool *p, const char *s, int n) { register int x,f; char *res; *************** *** 415,421 **** return pstrcat (p, s, "/", NULL); } ! int count_dirs(const char *path) { register int x,n; for(x=0,n=0;path[x];x++) --- 415,421 ---- return pstrcat (p, s, "/", NULL); } ! API_EXPORT(int) count_dirs(const char *path) { register int x,n; for(x=0,n=0;path[x];x++) *************** *** 434,440 **** ((char *)file)[i] = '/'; } ! char *getword_nc(pool* atrans, char **line, char stop) { return getword(atrans,(const char **)line,stop); } --- 434,440 ---- ((char *)file)[i] = '/'; } ! API_EXPORT(char *) getword_nc(pool* atrans, char **line, char stop) { return getword(atrans,(const char **)line,stop); } *************** *** 460,471 **** return res; } ! char *getword_white_nc(pool* atrans, char **line) { return getword_white(atrans,(const char **)line); } ! char *getword_white(pool* atrans, const char **line) { int pos = -1, x; char *res; --- 460,471 ---- return res; } ! API_EXPORT(char *) getword_white_nc(pool* atrans, char **line) { return getword_white(atrans,(const char **)line); } ! API_EXPORT(char *) getword_white(pool* atrans, const char **line) { int pos = -1, x; char *res; *************** *** 493,504 **** return res; } ! char *getword_nulls_nc(pool* atrans, char **line, char stop) { return getword_nulls(atrans,(const char **)line,stop); } ! char *getword_nulls(pool* atrans, const char **line, char stop) { int pos = ind(*line, stop); char *res; --- 493,504 ---- return res; } ! API_EXPORT(char *) getword_nulls_nc(pool* atrans, char **line, char stop) { return getword_nulls(atrans,(const char **)line,stop); } ! API_EXPORT(char *) getword_nulls(pool* atrans, const char **line, char stop) { int pos = ind(*line, stop); char *res; *************** *** 541,547 **** return result; } ! char *getword_conf_nc(pool* p, char **line) { return getword_conf(p,(const char **)line); } --- 541,547 ---- return result; } ! API_EXPORT(char *) getword_conf_nc(pool* p, char **line) { return getword_conf(p,(const char **)line); } *************** *** 643,649 **** * by whitespace at the caller's option. */ ! char *get_token (pool *p, char **accept_line, int accept_white) { char *ptr = *accept_line; char *tok_start; --- 643,649 ---- * by whitespace at the caller's option. */ ! API_EXPORT(char *) get_token (pool *p, char **accept_line, int accept_white) { char *ptr = *accept_line; char *tok_start; *************** *** 717,723 **** return ret; } ! int find_token (pool *p, const char *line, const char *tok) { char *ltok; char *lcopy; --- 717,723 ---- return ret; } ! API_EXPORT(int) find_token (pool *p, const char *line, const char *tok) { char *ltok; char *lcopy; *************** *** 731,737 **** return 0; } ! int find_last_token (pool *p, const char *line, const char *tok) { int llen, tlen, lidx; --- 731,737 ---- return 0; } ! API_EXPORT(int) find_last_token (pool *p, const char *line, const char *tok) { int llen, tlen, lidx; *************** *** 748,754 **** return (strncasecmp(&line[lidx], tok, tlen) == 0); } ! char *escape_shell_cmd(pool *p, const char *s) { register int x,y,l; char *cmd; --- 748,754 ---- return (strncasecmp(&line[lidx], tok, tlen) == 0); } ! API_EXPORT(char *) escape_shell_cmd(pool *p, const char *s) { register int x,y,l; char *cmd; *************** *** 809,816 **** * decoding %2f -> / (a special character) * returns NOT_FOUND */ ! int ! unescape_url(char *url) { register int x,y, badesc, badpath; badesc = 0; --- 809,815 ---- * decoding %2f -> / (a special character) * returns NOT_FOUND */ ! API_EXPORT(int) unescape_url(char *url) { register int x,y, badesc, badpath; badesc = 0; *************** *** 837,843 **** else return OK; } ! char *construct_server(pool *p, const char *hostname, unsigned port) { char portnum[22]; /* Long enough, even if port > 16 bits for some reason */ --- 836,843 ---- else return OK; } ! API_EXPORT(char *) construct_server(pool *p, const char *hostname, ! unsigned port) { char portnum[22]; /* Long enough, even if port > 16 bits for some reason */ *************** *** 849,855 **** } } ! char *construct_url(pool *p, const char *uri, const server_rec *s) { return pstrcat (p, "http://", construct_server(p, s->server_hostname, s->port), uri, NULL); --- 849,856 ---- } } ! API_EXPORT(char *)construct_url(pool *p, const char *uri, ! const server_rec *s) { return pstrcat (p, "http://", construct_server(p, s->server_hostname, s->port), uri, NULL); *************** *** 872,878 **** something with a '/' in it (and thus does not prefix "./"). */ ! char *escape_path_segment(pool *p, const char *segment) { register int x,y; char *copy = palloc (p, 3 * strlen (segment) + 1); --- 873,879 ---- something with a '/' in it (and thus does not prefix "./"). */ ! API_EXPORT(char *) escape_path_segment(pool *p, const char *segment) { register int x,y; char *copy = palloc (p, 3 * strlen (segment) + 1); *************** *** 924,930 **** /* escape_uri is now a macro for os_escape_path */ ! char *escape_html(pool *p, const char *s) { int i, j; char *x; --- 925,931 ---- /* escape_uri is now a macro for os_escape_path */ ! API_EXPORT(char *) escape_html(pool *p, const char *s) { int i, j; char *x; *************** *** 956,962 **** return x; } ! int is_directory(const char *path) { struct stat finfo; if(stat(path,&finfo) == -1) --- 957,963 ---- return x; } ! API_EXPORT(int) is_directory(const char *path) { struct stat finfo; if(stat(path,&finfo) == -1) *************** *** 965,971 **** return(S_ISDIR(finfo.st_mode)); } ! char *make_full_path(pool *a, const char *src1, const char *src2) { register int x; x = strlen(src1); --- 966,973 ---- return(S_ISDIR(finfo.st_mode)); } ! API_EXPORT(char *) make_full_path(pool *a, const char *src1, ! const char *src2) { register int x; x = strlen(src1); *************** *** 1116,1122 **** } #endif ! int ind(const char *s, char c) { register int x; for(x=0;s[x];x++) --- 1118,1124 ---- } #endif ! API_EXPORT(int) ind(const char *s, char c) { register int x; for(x=0;s[x];x++) *************** *** 1125,1131 **** return -1; } ! int rind(const char *s, char c) { register int x; for(x=strlen(s)-1;x != -1;x--) --- 1127,1133 ---- return -1; } ! API_EXPORT(int) rind(const char *s, char c) { register int x; for(x=strlen(s)-1;x != -1;x--) *************** *** 1141,1147 **** } } ! uid_t uname2id(const char *name) { #ifdef WIN32 return(1); #else --- 1143,1149 ---- } } ! API_EXPORT(uid_t) uname2id(const char *name) { #ifdef WIN32 return(1); #else *************** *** 1158,1164 **** #endif } ! gid_t gname2id(const char *name) { #ifdef WIN32 return(1); #else --- 1160,1166 ---- #endif } ! API_EXPORT(gid_t) gname2id(const char *name) { #ifdef WIN32 return(1); #else *************** *** 1307,1313 **** 64,64,64,64,64,64,64,64,64,64,64,64,64 }; ! char *uudecode(pool *p, const char *bufcoded) { int nbytesdecoded; register unsigned char *bufin; register char *bufplain; --- 1309,1315 ---- 64,64,64,64,64,64,64,64,64,64,64,64,64 }; ! API_EXPORT(char *) uudecode(pool *p, const char *bufcoded) { int nbytesdecoded; register unsigned char *bufin; register char *bufplain; 1.8 +3 -3 apache/src/util_md5.c Index: util_md5.c =================================================================== RCS file: /export/home/cvs/apache/src/util_md5.c,v retrieving revision 1.7 retrieving revision 1.8 diff -c -C3 -r1.7 -r1.8 *** util_md5.c 1997/01/01 18:10:46 1.7 --- util_md5.c 1997/07/15 21:39:59 1.8 *************** *** 82,88 **** #include "httpd.h" #include "util_md5.h" ! char *md5 (pool *p, unsigned char *string) { MD5_CTX my_md5; unsigned char hash[16]; --- 82,88 ---- #include "httpd.h" #include "util_md5.h" ! API_EXPORT(char *) md5 (pool *p, unsigned char *string) { MD5_CTX my_md5; unsigned char hash[16]; *************** *** 149,155 **** static char basis_64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; ! char *md5contextTo64(pool *a, MD5_CTX *context) { unsigned char digest[18]; char *encodedDigest; --- 149,155 ---- static char basis_64[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; ! API_EXPORT(char *) md5contextTo64(pool *a, MD5_CTX *context) { unsigned char digest[18]; char *encodedDigest; *************** *** 174,180 **** return encodedDigest; } ! char *md5digest(pool *p, FILE *infile) { MD5_CTX context; unsigned char buf[1000]; --- 174,180 ---- return encodedDigest; } ! API_EXPORT(char *) md5digest(pool *p, FILE *infile) { MD5_CTX context; unsigned char buf[1000]; 1.6 +3 -3 apache/src/util_md5.h Index: util_md5.h =================================================================== RCS file: /export/home/cvs/apache/src/util_md5.h,v retrieving revision 1.5 retrieving revision 1.6 diff -c -C3 -r1.5 -r1.6 *** util_md5.h 1997/01/01 18:10:46 1.5 --- util_md5.h 1997/07/15 21:39:59 1.6 *************** *** 52,58 **** #include "md5.h" ! char *md5(pool *a, unsigned char *string); ! char *md5contextTo64(pool *p, MD5_CTX *context); ! char *md5digest(pool *p, FILE *infile); --- 52,58 ---- #include "md5.h" ! API_EXPORT(char *) md5(pool *a, unsigned char *string); ! API_EXPORT(char *) md5contextTo64(pool *p, MD5_CTX *context); ! API_EXPORT(char *) md5digest(pool *p, FILE *infile); 1.66 +3 -3 apache/src/util_script.c Index: util_script.c =================================================================== RCS file: /export/home/cvs/apache/src/util_script.c,v retrieving revision 1.65 retrieving revision 1.66 diff -c -C3 -r1.65 -r1.66 *** util_script.c 1997/07/14 11:28:56 1.65 --- util_script.c 1997/07/15 21:39:59 1.66 *************** *** 221,227 **** * and find as much of the two that match as possible. */ ! int find_path_info (char *uri, char *path_info) { int lu = strlen(uri); int lp = strlen(path_info); --- 221,227 ---- * and find as much of the two that match as possible. */ ! API_EXPORT(int) find_path_info (char *uri, char *path_info) { int lu = strlen(uri); int lp = strlen(path_info); *************** *** 312,318 **** } } ! int scan_script_header_err(request_rec *r, FILE *f, char *buffer) { char x[MAX_STRING_LEN]; char *w, *l; --- 312,318 ---- } } ! API_EXPORT(int) scan_script_header_err(request_rec *r, FILE *f, char *buffer) { char x[MAX_STRING_LEN]; char *w, *l; *************** *** 402,408 **** } } ! void send_size(size_t size, request_rec *r) { char ss[20]; if(size == -1) --- 402,408 ---- } } ! API_EXPORT(void) send_size(size_t size, request_rec *r) { char ss[20]; if(size == -1) 1.21 +3 -3 apache/src/util_script.h Index: util_script.h =================================================================== RCS file: /export/home/cvs/apache/src/util_script.h,v retrieving revision 1.20 retrieving revision 1.21 diff -c -C3 -r1.20 -r1.21 *** util_script.h 1997/07/14 11:28:56 1.20 --- util_script.h 1997/07/15 21:40:00 1.21 *************** *** 59,69 **** #endif API_EXPORT(char **) create_environment(pool *p, table *t); ! int find_path_info(char *uri, char *path_info); API_EXPORT(void) add_cgi_vars(request_rec *r); API_EXPORT(void) add_common_vars(request_rec *r); #define scan_script_header(a1,a2) scan_script_header_err(a1,a2,NULL) ! int scan_script_header_err(request_rec *r, FILE *f, char *buffer); ! void send_size(size_t size, request_rec *r); API_EXPORT(int) call_exec (request_rec *r, char *argv0, char **env, int shellcmd); --- 59,69 ---- #endif API_EXPORT(char **) create_environment(pool *p, table *t); ! API_EXPORT(int) find_path_info(char *uri, char *path_info); API_EXPORT(void) add_cgi_vars(request_rec *r); API_EXPORT(void) add_common_vars(request_rec *r); #define scan_script_header(a1,a2) scan_script_header_err(a1,a2,NULL) ! API_EXPORT(int) scan_script_header_err(request_rec *r, FILE *f, char *buffer); ! API_EXPORT(void) send_size(size_t size, request_rec *r); API_EXPORT(int) call_exec (request_rec *r, char *argv0, char **env, int shellcmd);