manoj 99/12/08 15:03:21
Modified: src CHANGES src/include ap_config.h src/main buff.c src/modules/proxy proxy_cache.c proxy_ftp.c proxy_http.c proxy_util.c src/os/tpf TPFExport Log: Make mod_proxy work on TPF. Submitted by: Joe Moenich <[EMAIL PROTECTED]> Revision Changes Path 1.1474 +3 -0 apache-1.3/src/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1473 retrieving revision 1.1474 diff -u -d -u -r1.1473 -r1.1474 --- CHANGES 1999/12/08 19:01:13 1.1473 +++ CHANGES 1999/12/08 23:01:46 1.1474 @@ -1,5 +1,8 @@ Changes with Apache 1.3.10 + *) mod_proxy now works on TPF. + [Joe Moenich <[EMAIL PROTECTED]>] + *) Enhance mod_actions' Script handling to be able to deal with arbitrary methods and not just the well-known ones. This allows experimental or organisation-private methods to be used without 1.278 +3 -0 apache-1.3/src/include/ap_config.h Index: ap_config.h =================================================================== RCS file: /home/cvs/apache-1.3/src/include/ap_config.h,v retrieving revision 1.277 retrieving revision 1.278 diff -u -d -u -r1.277 -r1.278 --- ap_config.h 1999/12/07 12:19:50 1.277 +++ ap_config.h 1999/12/08 23:02:23 1.278 @@ -937,6 +937,9 @@ /*#define USE_TPF_DAEMON*/ #define USE_TPF_SCOREBOARD #define USE_TPF_SELECT +#define S_IREAD S_IRUSR +#define S_IWRITE S_IWUSR +#define S_IEXEC S_IXUSR #define crypt(buf,salt) ((char *)buf) #undef offsetof #define offsetof(s_type,field) ((size_t)&(((s_type*)0)->field)) 1.92 +1 -2 apache-1.3/src/main/buff.c Index: buff.c =================================================================== RCS file: /home/cvs/apache-1.3/src/main/buff.c,v retrieving revision 1.91 retrieving revision 1.92 diff -u -d -u -r1.91 -r1.92 --- buff.c 1999/12/01 20:24:56 1.91 +++ buff.c 1999/12/08 23:02:34 1.92 @@ -285,10 +285,9 @@ ap_check_signals(); if (fb->flags & B_SOCKET) { - alarm(rv = alarm(0)); FD_ZERO(&fds); FD_SET(fb->fd_in, &fds); - tv.tv_sec = rv+1; + tv.tv_sec = 1; tv.tv_usec = 0; rv = ap_select(fb->fd_in + 1, &fds, NULL, NULL, &tv); if (rv > 0) 1.65 +29 -6 apache-1.3/src/modules/proxy/proxy_cache.c Index: proxy_cache.c =================================================================== RCS file: /home/cvs/apache-1.3/src/modules/proxy/proxy_cache.c,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -u -r1.64 -r1.65 --- proxy_cache.c 1999/10/21 20:45:03 1.64 +++ proxy_cache.c 1999/12/08 23:02:43 1.65 @@ -73,6 +73,9 @@ #include <sys/types.h> #include <sys/stat.h> #endif +#ifdef TPF +#include "os.h" +#endif DEF_Explain @@ -123,7 +126,7 @@ const char *cachedir, const char *cachesubdir); static void help_proxy_garbage_coll(request_rec *r); static int should_proxy_garbage_coll(request_rec *r); -#if !defined(WIN32) && !defined(MPE) && !defined(OS2) && !defined(NETWARE) +#if !defined(WIN32) && !defined(MPE) && !defined(OS2) && !defined(NETWARE) && !defined(TPF) static void detached_proxy_garbage_coll(request_rec *r); #endif @@ -143,7 +146,7 @@ ap_block_alarms(); /* avoid SIGALRM on big cache cleanup */ if (should_proxy_garbage_coll(r)) -#if !defined(WIN32) && !defined(MPE) && !defined(OS2) && !defined(NETWARE) +#if !defined(WIN32) && !defined(MPE) && !defined(OS2) && !defined(NETWARE) && !defined(TPF) detached_proxy_garbage_coll(r); #else help_proxy_garbage_coll(r); @@ -203,7 +206,7 @@ return 0; } -#if !defined(WIN32) && !defined(MPE) && !defined(OS2) && !defined(NETWARE) +#if !defined(WIN32) && !defined(MPE) && !defined(OS2) && !defined(NETWARE) && !defined(TPF) static void detached_proxy_garbage_coll(request_rec *r) { pid_t pid; @@ -465,9 +468,19 @@ /* if (strlen(ent->d_name) != HASH_LEN) continue; */ /* under OS/2 use dirent's d_attr to identify a diretory */ -#ifdef OS2 +/* under TPF use stat to identify a directory */ +#if defined(OS2) || defined(TPF) /* is it a directory? */ +#ifdef OS2 if (ent->d_attr & A_DIR) { +#elif defined(TPF) + if (stat(filename, &buf) == -1) { + if (errno != ENOENT) + ap_log_error(APLOG_MARK, APLOG_ERR, r->server, + "proxy gc: stat(%s)", filename); + } + if (S_ISDIR(buf.st_mode)) { +#endif char newcachedir[HUGE_STRING_LEN]; ap_snprintf(newcachedir, sizeof(newcachedir), "%s%s/", cachesubdir, ent->d_name); @@ -500,8 +513,8 @@ continue; } -/* In OS/2 this has already been done above */ -#ifndef OS2 +/* In OS/2 and TPF this has already been done above */ +#if !defined(OS2) && !defined(TPF) if (S_ISDIR(buf.st_mode)) { char newcachedir[HUGE_STRING_LEN]; close(fd); @@ -1029,6 +1042,7 @@ buff[35] = ' '; /* open temporary file */ +#ifndef TPF #define TMPFILESTR "/tmpXXXXXX" if (conf->cache.root == NULL) return DECLINED; @@ -1037,6 +1051,15 @@ strcat(c->tempfile, TMPFILESTR); #undef TMPFILESTR p = mktemp(c->tempfile); +#else + if (conf->cache.root == NULL) + return DECLINED; + c->tempfile = ap_palloc(r->pool, strlen(conf->cache.root) +1+ L_tmpnam); + strcpy(c->tempfile, conf->cache.root); + strcat(c->tempfile, "/"); + p = tmpnam(NULL); + strcat(c->tempfile, p); +#endif if (p == NULL) return DECLINED; 1.79 +4 -0 apache-1.3/src/modules/proxy/proxy_ftp.c Index: proxy_ftp.c =================================================================== RCS file: /home/cvs/apache-1.3/src/modules/proxy/proxy_ftp.c,v retrieving revision 1.78 retrieving revision 1.79 diff -u -d -u -r1.78 -r1.79 --- proxy_ftp.c 1999/08/14 08:35:53 1.78 +++ proxy_ftp.c 1999/12/08 23:02:48 1.79 @@ -564,6 +564,7 @@ return HTTP_INTERNAL_SERVER_ERROR; } +#ifndef TPF if (conf->recv_buffer_size > 0 && setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (const char *) &conf->recv_buffer_size, sizeof(int)) @@ -571,6 +572,7 @@ ap_log_rerror(APLOG_MARK, APLOG_ERR, r, "setsockopt(SO_RCVBUF): Failed to set ProxyReceiveBufferSize, using default"); } +#endif if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *) &one, sizeof(one)) == -1) { @@ -816,6 +818,7 @@ return HTTP_INTERNAL_SERVER_ERROR; } +#ifndef TPF if (conf->recv_buffer_size) { if (setsockopt(dsock, SOL_SOCKET, SO_RCVBUF, (const char *) &conf->recv_buffer_size, sizeof(int)) == -1) { @@ -823,6 +826,7 @@ "setsockopt(SO_RCVBUF): Failed to set ProxyReceiveBufferSize, using default"); } } +#endif ap_bputs("PASV" CRLF, f); ap_bflush(f); 1.65 +2 -0 apache-1.3/src/modules/proxy/proxy_http.c Index: proxy_http.c =================================================================== RCS file: /home/cvs/apache-1.3/src/modules/proxy/proxy_http.c,v retrieving revision 1.64 retrieving revision 1.65 diff -u -d -u -r1.64 -r1.65 --- proxy_http.c 1999/05/01 17:02:29 1.64 +++ proxy_http.c 1999/12/08 23:02:52 1.65 @@ -257,6 +257,7 @@ return HTTP_INTERNAL_SERVER_ERROR; } +#ifndef TPF if (conf->recv_buffer_size) { if (setsockopt(sock, SOL_SOCKET, SO_RCVBUF, (const char *) &conf->recv_buffer_size, sizeof(int)) @@ -265,6 +266,7 @@ "setsockopt(SO_RCVBUF): Failed to set ProxyReceiveBufferSize, using default"); } } +#endif #ifdef SINIX_D_RESOLVER_BUG { 1.82 +2 -2 apache-1.3/src/modules/proxy/proxy_util.c Index: proxy_util.c =================================================================== RCS file: /home/cvs/apache-1.3/src/modules/proxy/proxy_util.c,v retrieving revision 1.81 retrieving revision 1.82 diff -u -d -u -r1.81 -r1.82 --- proxy_util.c 1999/10/21 20:45:04 1.81 +++ proxy_util.c 1999/12/08 23:02:56 1.82 @@ -280,7 +280,7 @@ if (!ap_isdigit(host[i]) && host[i] != '.') break; /* must be an IP address */ -#if defined(WIN32) || defined(NETWARE) +#if defined(WIN32) || defined(NETWARE) || defined(TPF) if (host[i] == '\0' && (inet_addr(host) == -1)) #else if (host[i] == '\0' && (ap_inet_addr(host) == -1 || inet_network(host) == -1)) @@ -517,7 +517,7 @@ ap_kill_timeout(r); -#ifdef WIN32 +#if defined(WIN32) || defined(TPF) /* works fine under win32, so leave it */ ap_hard_timeout("proxy send body", r); alternate_timeouts = 0; 1.3 +2 -0 apache-1.3/src/os/tpf/TPFExport Index: TPFExport =================================================================== RCS file: /home/cvs/apache-1.3/src/os/tpf/TPFExport,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -u -r1.2 -r1.3 --- TPFExport 1999/01/06 21:57:04 1.2 +++ TPFExport 1999/12/08 23:03:11 1.3 @@ -4,4 +4,6 @@ # replace the following with the location of your TPF include files export _C89_INCDIRS="/u/tpf41/currentmaint/include /u/tpf41/currentmaint/include/oco" export TPF=YES +export _C89_INCLIBS="" +export _C89_CSYSLIB="" echo "Done"