View | Details | Raw Unified | Return to bug 58310
Collapse All | Expand All

(-)pserv/Makefile (-2 / +2 lines)
Lines 6-16 Link Here
6
#
6
#
7
7
8
PORTNAME=	pserv
8
PORTNAME=	pserv
9
PORTVERSION=	3.0.b1
9
PORTVERSION=	3.0.b2
10
CATEGORIES=	www
10
CATEGORIES=	www
11
MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
11
MASTER_SITES=	${MASTER_SITE_SOURCEFORGE}
12
MASTER_SITE_SUBDIR=	${PORTNAME}
12
MASTER_SITE_SUBDIR=	${PORTNAME}
13
DISTNAME=	${PORTNAME}-22-Sep-03
13
DISTNAME=	${PORTNAME}-20-Oct-03
14
EXTRACT_SUFX=	.tar.Z
14
EXTRACT_SUFX=	.tar.Z
15
15
16
MAINTAINER=	sysadmin@alexdupre.com
16
MAINTAINER=	sysadmin@alexdupre.com
(-)pserv/distinfo (-1 / +1 lines)
Line 1 Link Here
1
MD5 (pserv-22-Sep-03.tar.Z) = 4895631b730836c9202d5ac28b05f0fa
1
MD5 (pserv-20-Oct-03.tar.Z) = 1b38238b8de0704b03ae245271f4899e
(-)pserv/files/patch-Makefile (-3 / +3 lines)
Lines 1-12 Link Here
1
--- Makefile.orig	Mon Sep  8 20:05:54 2003
1
--- Makefile.orig	Tue Oct 21 00:05:55 2003
2
+++ Makefile	Thu Oct 16 14:24:50 2003
2
+++ Makefile	Tue Oct 21 00:07:34 2003
3
@@ -1,11 +1,11 @@
3
@@ -1,11 +1,11 @@
4
 #Change the following to your needs
4
 #Change the following to your needs
5
-CC = gcc
5
-CC = gcc
6
+CC ?= gcc
6
+CC ?= gcc
7
 #insert here flags, eg. optimizations
7
 #insert here flags, eg. optimizations
8
-CFLAGS = -Wall -O3
8
-CFLAGS = -Wall -O3
9
-LIBS = -lnsl -lsocket
9
-LIBS = 
10
 SRCS = main.c handlers.c mime.c log.c
10
 SRCS = main.c handlers.c mime.c log.c
11
 OBJS = main.o handlers.o mime.o log.o
11
 OBJS = main.o handlers.o mime.o log.o
12
 PROGRAM = pserv
12
 PROGRAM = pserv
(-)pserv/files/patch-handlers.c (-74 / +26 lines)
Lines 1-5 Link Here
1
--- handlers.c.orig	Thu Sep 18 15:26:48 2003
1
--- handlers.c.orig	Mon Oct 20 10:27:32 2003
2
+++ handlers.c	Thu Oct 16 14:16:05 2003
2
+++ handlers.c	Tue Oct 21 00:13:59 2003
3
@@ -24,6 +24,7 @@
3
@@ -24,6 +24,7 @@
4
 #endif
4
 #endif
5
 
5
 
Lines 8-17 Link Here
8
 extern int port;                     /* server port */
8
 extern int port;                     /* server port */
9
 extern char defaultFileName[MAX_PATH_LEN+1]; /* default name for index, default or similar file */
9
 extern char defaultFileName[MAX_PATH_LEN+1]; /* default name for index, default or similar file */
10
 
10
 
11
@@ -262,12 +263,33 @@
11
@@ -263,6 +264,14 @@
12
         newArgv[i] = NULL; /* we correctly terminate argv */
13
         
12
         
14
         i = 0;
13
         i = 0;
14
 	/* beware of not overfilling this array, check MAX_ENVP_LEN */
15
+        if (req.contentLength != -1)
15
+        if (req.contentLength != -1)
16
+        {
16
+        {
17
+            sprintf(newEnvp[i++], "CONTENT_LENGTH=%ld", req.contentLength);
17
+            sprintf(newEnvp[i++], "CONTENT_LENGTH=%ld", req.contentLength);
Lines 23-55 Link Here
23
         strcpy(newEnvp[i], "SERVER_SOFTWARE=");
23
         strcpy(newEnvp[i], "SERVER_SOFTWARE=");
24
         strcat(newEnvp[i], SERVER_SOFTWARE_STR);
24
         strcat(newEnvp[i], SERVER_SOFTWARE_STR);
25
         strcat(newEnvp[i], "/");
25
         strcat(newEnvp[i], "/");
26
         strcat(newEnvp[i++], SERVER_VERSION_STR);
26
@@ -285,6 +294,11 @@
27
+        strcpy(newEnvp[i], "SERVER_PROTOCOL=");
27
 	strcat(newEnvp[i++], req.userAgent);
28
+        strcat(newEnvp[i++], req.protocolVersion);
28
 	strcpy(newEnvp[i], "SCRIPT_FILENAME=");
29
         strcpy(newEnvp[i], "REQUEST_METHOD=");
29
 	strcat(newEnvp[i++], completedPath);
30
         strcat(newEnvp[i++], req.method);
31
+        strcpy(newEnvp[i], "REMOTE_ADDR=");
32
+        strcat(newEnvp[i++], req.address);
33
+        strcpy(newEnvp[i], "HTTP_USER_AGENT=");
34
+        strcat(newEnvp[i++], req.userAgent);
35
+        if (req.cookie[0] != '\0')
30
+        if (req.cookie[0] != '\0')
36
+        {
31
+        {
37
+            strcpy(newEnvp[i], "HTTP_COOKIE=");
32
+            strcpy(newEnvp[i], "HTTP_COOKIE=");
38
+            strcat(newEnvp[i++], req.cookie);
33
+            strcat(newEnvp[i++], req.cookie);
39
+        }
34
+        }
40
+        strcpy(newEnvp[i], "SCRIPT_FILENAME=");
35
         newEnvp[i] = NULL;
41
+        strcat(newEnvp[i++], completedPath);
36
         
42
         strcpy(newEnvp[i], "SCRIPT_NAME=");
37
         /* we change the current working directory to the scripts one */
43
         strcat(newEnvp[i++], req.documentAddress);
38
@@ -317,7 +331,244 @@
44
         strcpy(newEnvp[i], "GATEWAY_INTERFACE=");
45
@@ -302,13 +324,256 @@
46
         execve(completedPath, newArgv, newEnvp);
47
 	/* we reach this line only if an execution error occoured */
48
 	/* logging will happen in the father */
49
-	printf("\n<HTML><HEAD><TITLE>CGI Error</TITLE></HEAD><BODY><H1>Cgi Exec error</H1></BODY></HTML>\n");
50
+	printf("\n<HTML><HEAD><TITLE>CGI Error</TITLE></HEAD><BODY><H1>CGI Exec error</H1></BODY></HTML>\n");
51
         exit(-1);        
52
     }
53
     return 0;
39
     return 0;
54
 }
40
 }
55
 
41
 
Lines 228-268 Link Here
228
+        newArgv[i] = NULL; /* we correctly terminate argv */
214
+        newArgv[i] = NULL; /* we correctly terminate argv */
229
+
215
+
230
+        i = 0;
216
+        i = 0;
231
+        if (req.contentLength != -1)
232
+        {
233
+            sprintf(newEnvp[i++], "CONTENT_LENGTH=%ld", req.contentLength);
234
+            strcpy(newEnvp[i], "CONTENT_TYPE=");
235
+            strcat(newEnvp[i++], req.contentType);
236
+        }
237
+        strcpy(newEnvp[i], "SERVER_NAME=");
217
+        strcpy(newEnvp[i], "SERVER_NAME=");
238
+        strcat(newEnvp[i++], DEFAULT_SERVER_NAME);
218
+        strcat(newEnvp[i++], DEFAULT_SERVER_NAME);
239
+        strcpy(newEnvp[i], "SERVER_SOFTWARE=");
219
+        strcpy(newEnvp[i], "SERVER_SOFTWARE=");
240
+        strcat(newEnvp[i], SERVER_SOFTWARE_STR);
220
+        strcat(newEnvp[i], SERVER_SOFTWARE_STR);
241
+        strcat(newEnvp[i], "/");
221
+        strcat(newEnvp[i], "/");
242
+        strcat(newEnvp[i++], SERVER_VERSION_STR);
222
+        strcat(newEnvp[i++], SERVER_VERSION_STR);
243
+        strcpy(newEnvp[i], "SERVER_PROTOCOL=");
244
+        strcat(newEnvp[i++], req.protocolVersion);
245
+        strcpy(newEnvp[i], "REQUEST_METHOD=");
223
+        strcpy(newEnvp[i], "REQUEST_METHOD=");
246
+        strcat(newEnvp[i++], req.method);
224
+        strcat(newEnvp[i++], req.method);
225
+        strcpy(newEnvp[i], "SCRIPT_NAME=");
226
+        strcat(newEnvp[i++], req.documentAddress);
227
+        strcpy(newEnvp[i], "GATEWAY_INTERFACE=");
228
+        strcat(newEnvp[i++], CGI_VERSION);
229
+        sprintf(newEnvp[i++], "SERVER_PORT=%d", port);
230
+        strcpy(newEnvp[i++], envPath);
231
+        strcpy(newEnvp[i], "QUERY_STRING=");
232
+        strcat(newEnvp[i++], req.queryString);
233
+        strcpy(newEnvp[i], "SERVER_PROTOCOL=");
234
+        strcat(newEnvp[i++], req.protocolVersion);
247
+        strcpy(newEnvp[i], "REMOTE_ADDR=");
235
+        strcpy(newEnvp[i], "REMOTE_ADDR=");
248
+        strcat(newEnvp[i++], req.address);
236
+        strcat(newEnvp[i++], req.address);
249
+        strcpy(newEnvp[i], "HTTP_USER_AGENT=");
237
+        strcpy(newEnvp[i], "HTTP_USER_AGENT=");
250
+        strcat(newEnvp[i++], req.userAgent);
238
+        strcat(newEnvp[i++], req.userAgent);
239
+        strcpy(newEnvp[i], "SCRIPT_FILENAME=");
240
+        strcat(newEnvp[i++], completedPath);
251
+        if (req.cookie[0] != '\0')
241
+        if (req.cookie[0] != '\0')
252
+        {
242
+        {
253
+            strcpy(newEnvp[i], "HTTP_COOKIE=");
243
+            strcpy(newEnvp[i], "HTTP_COOKIE=");
254
+            strcat(newEnvp[i++], req.cookie);
244
+            strcat(newEnvp[i++], req.cookie);
255
+        }
245
+        }
256
+        strcpy(newEnvp[i], "SCRIPT_FILENAME=");
257
+        strcat(newEnvp[i++], completedPath);
258
+        strcpy(newEnvp[i], "SCRIPT_NAME=");
259
+        strcat(newEnvp[i++], req.documentAddress);
260
+        strcpy(newEnvp[i], "GATEWAY_INTERFACE=");
261
+        strcat(newEnvp[i++], CGI_VERSION);
262
+        sprintf(newEnvp[i++], "SERVER_PORT=%d", port);
263
+        strcpy(newEnvp[i++], envPath);
264
+        strcpy(newEnvp[i], "QUERY_STRING=");
265
+        strcat(newEnvp[i++], req.queryString);
266
+        newEnvp[i] = NULL;
246
+        newEnvp[i] = NULL;
267
+
247
+
268
+        /* we change the current working directory to the scripts one */
248
+        /* we change the current working directory to the scripts one */
Lines 301-307 Link Here
301
 int sock;
281
 int sock;
302
 char filePath[];
282
 char filePath[];
303
 char mimeType[];
283
 char mimeType[];
304
@@ -351,11 +616,11 @@
284
@@ -360,11 +611,11 @@
305
         return -1;
285
         return -1;
306
     }
286
     }
307
     stat(filePath, &fileStats);
287
     stat(filePath, &fileStats);
Lines 315-321 Link Here
315
         fatal = NO;
295
         fatal = NO;
316
         retry = NO;
296
         retry = NO;
317
         while(!feof(inFile) && !fatal)
297
         while(!feof(inFile) && !fatal)
318
@@ -399,11 +664,11 @@
298
@@ -408,11 +659,11 @@
319
             if (howMany > 0)
299
             if (howMany > 0)
320
             {
300
             {
321
 #ifdef ON_THE_FLY_CONVERSION
301
 #ifdef ON_THE_FLY_CONVERSION
Lines 332-362 Link Here
332
 #endif
312
 #endif
333
                 if (send(sock, outBuff, howMany, 0) < 0)
313
                 if (send(sock, outBuff, howMany, 0) < 0)
334
                 {
314
                 {
335
@@ -449,7 +714,7 @@
336
     FILE *tempFile;
337
     size_t generatedBytes;
338
     char tempStr[MAX_PATH_LEN+1];
339
-    char linkStr[MAX_PATH_LEN+1];
340
+    char linkStr[MAX_PATH_LEN+2];
341
     time_t currTime;
342
     char timeStr[256];
343
     
344
@@ -497,10 +762,16 @@
345
         if (strcmp(dp->d_name, ".")) /* not self */
346
         {
347
             if (strcmp(dp->d_name, ".."))
348
+            {
349
                 strcpy(linkStr, dp->d_name);
350
-            else
351
+                if (dp->d_type == DT_DIR)
352
+                    strcat(linkStr, "/");
353
+                sprintf(tempStr, "<A HREF=\"%s\">%s</A><BR>\n", linkStr, linkStr);
354
+            } else
355
+            {
356
                 strcpy(linkStr, "Parent Directory");
357
-            sprintf(tempStr, "<A HREF=\"%s\">%s</A><BR>\n", dp->d_name, linkStr);
358
+                sprintf(tempStr, "<A HREF=\"%s/\">%s</A><BR>\n", dp->d_name, linkStr);
359
+            }
360
             generatedBytes += strlen(tempStr);
361
             fprintf(tempFile, "%s\n", tempStr);
362
         }
(-)pserv/files/patch-main.h (-11 / +10 lines)
Lines 1-6 Link Here
1
--- main.h.orig	Fri Sep 19 00:36:03 2003
1
--- main.h.orig	Sun Oct 19 17:22:03 2003
2
+++ main.h	Thu Oct 16 13:52:18 2003
2
+++ main.h	Tue Oct 21 00:19:57 2003
3
@@ -24,11 +24,12 @@
3
@@ -27,11 +27,12 @@
4
 
4
 
5
 
5
 
6
 /* --- CPP parsing options --- */
6
 /* --- CPP parsing options --- */
Lines 14-24 Link Here
14
 
14
 
15
 /* --- Configure options --- */
15
 /* --- Configure options --- */
16
 #define CONFIG_FILE_NAME "pserv.conf"
16
 #define CONFIG_FILE_NAME "pserv.conf"
17
@@ -39,19 +40,19 @@
17
@@ -42,19 +43,19 @@
18
 #define MIME_TYPE_DEFAULT "application/octet-stream"
18
 #define MIME_TYPE_DEFAULT "application/octet-stream"
19
 
19
 
20
 /* configuration file location */
20
 /* configuration file location */
21
-#define DEFAULT_CONFIG_LOCATION "/export/home/multix/pserv/"
21
-#define DEFAULT_CONFIG_LOCATION "/home/multix/pserv/"
22
-//#define DEFAULT_CONFIG_LOCATION "/Users/multix/Documents/code/pserv/"
22
-//#define DEFAULT_CONFIG_LOCATION "/Users/multix/Documents/code/pserv/"
23
+#define DEFAULT_CONFIG_LOCATION "/usr/local/etc/"
23
+#define DEFAULT_CONFIG_LOCATION "/usr/local/etc/"
24
 
24
 
Lines 26-32 Link Here
26
-#define DEFAULT_PORT 2000
26
-#define DEFAULT_PORT 2000
27
+#define DEFAULT_PORT 80
27
+#define DEFAULT_PORT 80
28
 #define DEFAULT_MAX_CHILDREN 5
28
 #define DEFAULT_MAX_CHILDREN 5
29
-#define DEFAULT_DOCS_LOCATION "/export/home/multix/public_html"
29
-#define DEFAULT_DOCS_LOCATION "/home/multix/public_html"
30
+#define DEFAULT_DOCS_LOCATION "/usr/local/www/data"
30
+#define DEFAULT_DOCS_LOCATION "/usr/local/www/data"
31
 #define DEFAULT_FILE_NAME "index.html"
31
 #define DEFAULT_FILE_NAME "index.html"
32
 #define DEFAULT_SEC_TO 1
32
 #define DEFAULT_SEC_TO 1
Lines 41-59 Link Here
41
 #define DEFAULT_SERVER_NAME "localhost"
41
 #define DEFAULT_SERVER_NAME "localhost"
42
 
42
 
43
 /* amount of connections queued in listening */
43
 /* amount of connections queued in listening */
44
@@ -120,9 +121,11 @@
44
@@ -123,8 +124,10 @@
45
 #define ADDRESS_LEN 16
45
 #define ADDRESS_LEN 16
46
 #define METHOD_LEN 16
46
 #define METHOD_LEN 16
47
 #define PROTOCOL_LEN 16
47
 #define PROTOCOL_LEN 16
48
+#define CONTENT_TYPE_LEN 256
48
+#define CONTENT_TYPE_LEN 256
49
 #define USER_AGENT_LEN 256
49
 #define USER_AGENT_LEN 256
50
 #define MAX_QUERY_STRING_LEN 1024
50
 #define MAX_QUERY_STRING_LEN 1024
51
 #define MAX_PATH_LEN 1024
52
+#define MAX_COOKIE_LEN 4096
51
+#define MAX_COOKIE_LEN 4096
53
 
52
 
54
 struct request
53
 /* the maximum path name of your system should be available in MAXNAMLEN 
55
 {
54
    defined in dirent.h. If not, set a reasonable value like 1024 */
56
@@ -133,7 +136,9 @@
55
@@ -139,7 +142,9 @@
57
     char protocolVersion[PROTOCOL_LEN+1];
56
     char protocolVersion[PROTOCOL_LEN+1];
58
     int keepAlive;
57
     int keepAlive;
59
     char userAgent[USER_AGENT_LEN+1];
58
     char userAgent[USER_AGENT_LEN+1];
(-)pserv/files/patch-pserv.conf (-8 / +8 lines)
Lines 1-17 Link Here
1
--- pserv.conf.orig	Wed Oct 15 16:18:05 2003
1
--- pserv.conf.orig	Sun Oct 19 16:51:27 2003
2
+++ pserv.conf	Wed Oct 15 16:20:01 2003
2
+++ pserv.conf	Tue Oct 21 00:22:07 2003
3
@@ -1,9 +1,10 @@
3
@@ -1,9 +1,10 @@
4
-port	80
4
-port	80	
5
+port		80
5
+port		80	
6
 maxChildren	4
6
 maxChildren	4
7
-documentsPath	/export/home/multix/public_html
7
-documentsPath	/home/multix/public_html
8
+documentsPath	%%PREFIX%%/www/data
8
+documentsPath	%%PREFIX%%/www/data
9
 defaultFile	index.html
9
 defaultFile	index.html
10
 secTimeout	1
10
 secTimeout	1
11
 uSecTimeout	100000
11
 uSecTimeout	100000
12
-logFile		/export/home/multix/pserv/pserv.log
12
-logFile		/home/multix/pserv/pserv.log
13
-mimeTypesFile	/export/home/multix/pserv/mime_types.dat
13
-mimeTypesFile	/home/multix/pserv/mime_types.dat
14
-cgiRoot		/export/home/multix/public_html/cgi-bin
14
-cgiRoot		/home/multix/public_html/cgi-bin
15
+logFile		/var/log/pserv.log
15
+logFile		/var/log/pserv.log
16
+mimeTypesFile	%%PREFIX%%/etc/mime.types
16
+mimeTypesFile	%%PREFIX%%/etc/mime.types
17
+phpFile		%%LOCALBASE%%/bin/php
17
+phpFile		%%LOCALBASE%%/bin/php

Return to bug 58310