summaryrefslogtreecommitdiff
path: root/apps/JAWS/server/ChangeLog
blob: 404d530599e0adde47c764d8d429e62786dc93e6 (plain)
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.