1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
Wed Jun 4 22:30:41 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
* main.cpp (main): Changed SIGCLD to SIGCHLD for better
portability.
* IO.cpp (transmit_file): The third argument passed
ACE_Asynch_Transmit_File::Header_And_Trailer() should be an
address (&).
Mon Jun 2 16:35:18 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* HTTP_Helpers.cpp: Serious bug in base64 decoder routine
squashed. Didn't initialize an array with 0's. The original
source had them declared static. Also, changed sizeof alphabet_
to strlen (alphabet_), because original code had alphabet_ as an
array, but my translation has alphabet_ as a pointer.
* HTTP_Response.cpp: Added some code to check to see if the
decoder returns 0. If it does, flag this as a failed
authorization attempt.
* HTTP_Handler.cpp: Added a "\r\n" to the confirmation message in
receive_file_complete () method.
* HTTP_Request.cpp: In parse_request_line (), created conditional
expressions in the debugging print statement so that a null
string will not cause the server to crash.
* HTTP_Response.cpp:
(1) cgi_resposnse () no longer has to wait for the process to
die. The fix to ACE_Process of closing down child handles was
enough to get the connection to die on its own.
(2) Mike (mrm@cisco.com) pointed out that the output for CGI
responses was not create. The fix was to output a small header
before execing the CGI program.
* test.cgi: a sample cgi program to use when testing the JAWS
server.
Sat May 31 13:34:14 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* *.h, *.cpp: Changed include lines from "apps/JAWS/server/..." to
"..." to avoid dependencies on the WRAPPER_ROOT tree.
* jaws.auth: This file is added to be a sample authorization
file. This is the file which JAWS is currently hardcoded to use
to verify authenticated PUT requests.
* HTTP_Response.cpp: Added code to normal_response () and to
error_response () to better handle authentication. Now, all PUT
methods are required to be authenticated. The strategy now is
very simple, there is only one authorization file and only one
realm of authorization. This will be easy to bring up to spec
later, though.
* HTTP_Helpers.h: Added alphabet_ data member for the
decode/encode base64 methods.
* HTTP_Helpers.cpp: Added HTTP_decode_base64 and
HTTP_encode_base64 methods. HTTP_encode_base64 is currently not
used, but HTTP_decode_base64 is being used for Basic
authentication.
* *.h, *.cpp: Changed include lines from "JAWS/server/..." to
"apps/JAWS/server/..." to fix an error reported by Rob Payne
<repayne@jeeves.net>. This was really due to a bug in the
platform_macros.GNU file not adding INCLDIRS to the CCFLAGS
during compilation, but in the case other platforms have the
same problem, changing the source is a better fix.
Fri May 30 23:19:03 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* README: updated to better reflect the status of JAWS.
* main.cpp (handler): Added a signal handler for SIGINT, and also
set SIG_IGN for SIGCLD. The first handler calls exit (0) if
SIGINT is received, so that static destructors are called. The
second is so that zombies are not formed.
* HTTP_Response.cpp (cgi_response): Debugging. (1) The CGI
program spewed output on the server side instead of the client.
(2) The CGI program had environment variable being set even
though there was no associated value. (3) The client connection
was not being closed after the CGI program executed. Problem
(1) was fixed by using set_handles () in cgi_options. Problem
(2) was fixed by testing to see if the header had an associated
value before assigning it to the environment. Problem (3) was
fixed by sending an empty confirmation message after waiting for
the CGI process to exit.
* HTTP_Request.cpp (cgi): Debugging. It was not looking for a
".cgi" extension during the stage of determining if a URI is a
CGI script. This will later be fixed when a full mime-type
facility is implemented.
Fri May 23 00:45:24 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* JAWS/server: Debugged HTTP/0.9 GET requests, and HTTP/1.0 PUT
requests. Both work now, with minor problems: e.g. the
Content-type header doesn't really work (always sends text/html
as the content type). What it should do is see if the request
included a content type header, and use it, otherwise, resort to
some file suffix and mimetype matching algorithm.
* Parse_Headers.h (complete_header_line): Added comments
explaining the new return values of -1, 0 and 1 (see comments
for Parse_Headers.cpp below).
* Parse_Headers.cpp (complete_header_line): modified so that it
returns three values instead of two. -1 means that an end of
line was encountered, but nothing after it yet to verify if it
is really a complete header line. 0 means the read cut off in
the middle of a line (no end of line character found). 1 means
the line is verified to be a complete header line.
* HTTP_Request.cpp (parse_request): Changed the test so that an
HTTP/0.9 request would be sent immediately after being issued.
This involved changes to Parse_Headers.
* JAWS_File.cpp (acquire): Changes involved adding some debugging
statements to understand why PUT was not working. Discovered a
bug in how ACE_Mem_Map was being used.
* HTTP_Request.cpp (content_length): Changed to extract value from
the headers, if available.
Thu May 22 16:22:03 1997 James C. Hu <jxh@pride.cs.wustl.edu>
* HTTP_Request.cpp (cgi_env): Added a cast so that a warning
generated by SGI C++ compiler goes away.
* Makefile: Reordered the way the files are compiled/linked so
that useless warnings about object files not resolving any
symbols go away.
Wed May 21 15:33:33 1997 James C Hu <jxh@polka.cs.wustl.edu>
* JAWS_File.{h,cpp}: Added some comments. Will add a copy ()
method soon, after I move my workspace over to lambada.
* JAWS_Tilde.{h,cpp}: This class is being implemented but has not
been added to the repository yet, since JAWS as yet does not use
it, and it is still being developed. This will be a cache of
the expansions from ~foo to the home directory of foo.
Tue May 20 22:49:24 1997 James C Hu <jxh@polka.cs.wustl.edu>
* JAWS_File.{h,cpp}: New class created to replace the old kludgy
VFS thingy. This new cached virtual filesystem is way cool: a
file which is being retrieved can be simultaneously replaced
without causing either reader or writer to wait. Reference
counts are maintained now, which was missing in VFS. Also,
there is no longer a dependency on the JXH_List template now,
which is a plus.
* IO.cpp: Changes to adapt to the new virtual filesystem. The
changes all involved simplifications to the programming
interface.
* HTTP_Handler.cpp: Changes required to deal with the more
generic error responses returned from the JAWS_File/JAWS_IO
interface. This generality will make it easier to adapt
JAWS_File and JAWS_IO into ACE.
* test_JAWS_File.cpp: A test program written to see if the new
virtual filesystem works the way I expect it to.
|