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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
|
Mon Dec 29 20:20:36 1997 James C Hu <jxh@cs.wustl.edu>
* clients/Caching/http_handler.cpp: Idem to previous change.
Mon Dec 29 18:50:02 1997 James C Hu <jxh@cs.wustl.edu>
* server/IO.cpp: Idem to previous change, but fixes to improve
compatibility and portability to Windows NT.
Thu Dec 18 15:37:36 1997 James C Hu <jxh@cs.wustl.edu>
* server/IO.cpp: Modified to account for changes in ACE_Filecache
to not map file on NT.
Tue Dec 16 09:29:11 1997 David L. Levine <levine@cs.wustl.edu>
* server/Makefile: expanded rules.bin.GNU, but without
$(VOBJS), to avoid make warnings.
* client/WebSTONE/src/nsapi-includes/base/systems.h:
#ifdef linux, not LINUX.
Fri Dec 12 03:06:16 1997 James C Hu <jxh@cs.wustl.edu>
* server/Parse_Headers.cpp: Many things have been touched, but
only a few things have significantly changed. I originally
attempted to change the implementation entirely to use
Hash_Map_Manager instead, but it was getting more complicated
than I wanted, so I went back to debugging.
- Trailing whitespace has been removed.
- A couple of debug messages have been added the
Headers::parse_header_line ().
- Method declarations had to be changed to account for the
fact that the Map_Item class (which had previously
been declared inside of Headers_Map) is now in global
scope and has been renamed to Headers_Map_Item.
- The no_value_ data member and the char* cast operator of
Map_Item have been removed.
- The assignment operator for Map_Item has been made a bit
tidier in its memory management (say no to memory
leaks!).
- Debugged the Headers_Map data structure. This involved
the following:
. Re-implementation of strcasecmp (red-herring).
. Re-implementation of Headers::compare (). This is
needed because empty table entries need to compare as
infinity against real strings, so that real strings get
inserted correctly.
. Debugging the Headers_Map::find () method by
implementing first a linear search, and then my own binary
search. It turns out the C library ::bsearch() does work,
but I will leave in my implementation for now, since
::bsearch () is not in ACE_OS yet.
. Re-implementation of Headers::place (). The old one
was badly written. The new one is more efficient, and
less error prone. This method turned out to be the main
problem. It was the reason that binary search was
previously failing (but linear search worked). The
reason? It was corrupting memory, believe it or not.
No longer!
In addition, Headers::place () had a serious bug in which a call
to ACE_OS::free () was added, but included the ++ operator on
the pointer from the previous line. Ug.
* server/Parse_Headers.h: See comments for HTTP_Request.cpp.
* server/HTTP_Request.cpp: Removed extraneous whitespace. It's
not what you think Doug! Just trailing whitespace at the end of
lines that somehow get added on when people use LoseNT editors.
Also, changes were made to Parse_Headers which made it necessary
to explicitly use the value () accessor method when examining
parsed headers. There use to be a operator char* () method.
* server/HTTP_Response.cpp: See comments for HTTP_Request.cpp.
* server/HTTP_Helpers.cpp: Added a comment to
HTTP_Helper::fixyear ().
Tue Dec 9 01:19:09 1997 James C Hu <jxh@cs.wustl.edu>
* stress_testing/util.cpp: Off by one errors when parsing a URL.
Did I write this code? I don't think so. Thanks to Valik
Solorzano Barboza <valik@geodan.nl> for pointing this out.
Thu Nov 20 00:36:34 1997 James C Hu <jxh@cs.wustl.edu>
* server/Pipeline.h: Added methods and members so that the
pipeline can be both push and pull driven.
* server/Pipeline.cpp: Made the pipeline a doubly linked list of
components, so that it can be operated as push-driven or
pull-driven pipelines.
Wed Nov 19 05:10:38 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* server/HTTP_Handler.h: Added the keyword "virtual" on the open()
method which is inherited from ACE_Sevice_Handler. Perhaps this
will fix a bug with BORLANDC reported by Valik Solorzano Barboza
<valik@xs4all.nl>.
Mon Nov 17 07:34:09 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* server/Parse_Headers.cpp (end_of_line): Replaced a const char *
with a char * to work with the new ACE_OS::strchr() signature.
Thanks to James for finding this.
Tue Nov 11 19:52:38 1997 James C Hu <jxh@cs.wustl.edu>
* server/Pipeline.{h,cpp}: The beginning of a new Pipeline
framework has been added.
Sun Oct 12 16:21:32 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
* clients/Caching/Makefile:
* stress_testing/Makefile:
There is no need to set LDLIBS to add local object files
anymore, using FILES is enough.
Fri Oct 10 18:41:47 1997 Carlos O'Ryan <coryan@macarena.cs.wustl.edu>
* clients/Blobby/Makefile:
Fixed problem that made compilation fail.
Thu Sep 11 10:40:38 1997 Carlos O'Ryan <coryan@polka.cs.wustl.edu>
* server/HTTP_Request.cpp:
I checked the use of MAXNAMELEN vs. MAXPATHLEN; all buffers
intended to keep full filenames should have at least
MAXPATHLEN+1 chars.
Only buffers that will keep basenames (without any directories)
should have MAXNAMELEN+1 bytes.
I also added a new macro ACE_MAX_FULLY_QUALIFIED_NAME_LEN which
is the maximum number of characters for a fully qualified
internet hostname.
There remain one obscure usage of these macros in ace/Malloc.h
and Local_Naming_Space_T.{h,cpp}, but a quick fix broke
something, I will try again soon.
Tue Sep 9 22:08:36 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* server/HTTP_Server.{cpp,h}: Changes which answer questions
brought up in design review. Mostly additional comments. Also
changes to have a task spawn a number of threads rather than
iterating through calls to the activate method.
Fri Aug 29 11:07:43 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* server/*.{cpp,h}: Changes to make JAWS comply with ACE
coding standards. In particular, broke up CGI method in
HTTP_Request, remove dependency on static object in
HTTP_Config, and answered all questions from Doug.
Tue Aug 26 21:34:11 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
* clients/Caching/ID_Generator.h: Made some minor changes to
the programming style.
Sun Aug 10 13:44:14 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* server/HTTP_Helpers.cpp (HTTP_date): We can't use
ACE_Thread_Mutex directly in the code since that breaks
platforms that lack threads.
Wed Aug 6 16:45:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* server/main.cpp: Added another signal handler so I can kill JAWS
when purifying.
Mon Aug 4 00:07:24 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
* server/main.cpp (main): Service configurator now doesn't return
-1 when errors occur. Therefore, we check for not success
instread of fail when opening the service contifurator.
Mon Jul 28 04:54:01 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* server/Parse_Headers.cpp (place): Reformatted the same
stuff again...
Mon Jul 28 01:48:40 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* server/README: Updated the README file to reflect new features
and server flags.
* server/Parse_Headers.cpp (place): Fixed a compile error found by
David Levine. I don't know why this was compiling for me.
Sun Jul 27 21:56:12 1997 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
* server/Parse_Headers.cpp (place): Reformatted a few things
to make them easier to read.
Fri Jul 25 02:05:20 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* server/HTTP_Server.cpp: Changes to allow the thread creation
flags to be specified from the command line. Removed some code
that was used to track down memory leaks.
* server/HTTP_Helpers.{h,cpp}: Added another method
HTTP_date (char *), so that a buffer to which the date will be
written to can be passed into the HTTP_date routine.
* server/HTTP_Response.cpp: Changed some code so that the baseline
implementation can be created at compile time.
* server/IO.cpp: Changed some code so that the baseline
implementation can be created at compile time.
* server/main.cpp: Changed the signal handler to wait for threads
to die. However, this code will remain dormant for now, until
we design a nice way to shut down a thread pool.
* server/svc.conf: Changes to add some other entries people can
try.
* server/Makefile: Changes to allow JAWS to be built with static
linking only, to ease the process of using Purify and Quantify.
Dynamic linking will be re-configured in the future when we have
all the memory leaks worked out.
Mon Jul 22 16:55:00 1997 Chris Cleeland <cleeland@cs.wustl.edu>
* Changed references to WRAPPER_ROOT to ACE_ROOT in every
place except ChangeLog entries.
Mon Jul 21 15:09:03 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* server/HTTP_Server.{h,cpp}: Got rid of Solaris specific
debugging code (thr_create, thr_join).
Fri Jul 11 02:15:12 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* server/HTTP_Response.cpp: Changes so that the HEADER is not
rebuilt all the time.
* server/IO.cpp (JAWS_Synch_IO::transmit_file): Changed to use
writev () instead of multiple send ()s.
Thu Jul 10 01:53:48 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* server/HTTP_Helpers.{h,cpp}: Changed so that creating the date
header is less expensive.
* server/HTTP_Response.cpp: Changes to match above.
* clients/Caching/README: Added to the repository.
* clients/Caching/http_handler.{h,cpp}: Added some comments to the
code. Also, moved the code to check to see if the file is in
cache already into the connector, so that a connect is not
done if the file is cached. This required a filename ()
accessor method to be added to the handler.
Wed Jul 9 13:08:00 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* clients/Caching/http_handler.cpp (svc): Added code to check to
see if the file is already cached before trying to cache it.
* clients/Caching/http_client.cpp (main): Added a comment block at
the top of the file.
* server/HTTP_Handler.cpp and IO.cpp: Changes that were needed
since JAWS_File is now integrated into ACE (as ACE_Filecache).
* server/HTTP_Server.*: Attempting to track down memory leak.
This code may be in a state a flux for the next week or so.
Mon Jul 7 23:40:13 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
* clients/WebSTONE/src/webclient.c: Removed a bunch of THREAD
storage class decorators from function makeload() because auto
variables can't be declared as TSS. Also #ifdef random number
generation code so it uses rand_r on Solaris() and rand() on NT.
* clients/WebSTONE/src/rexec.c: Modified prototypes for
PassOutputThread() and PassErrorThread() to avoid warnings from
MSVC. Still need more refinement on this one. ;(
* clients/WebSTONE/src/webmaster.c: Added prototype for
HostEntCpy() and a null statement to avoid warning from MSVC.
* clients/WebSTONE/src/gendata/genrand.mak:
* clients/WebSTONE/src/master/webmaster.mak:
* clients/WebSTONE/src/client/webclient.mak: Updated file paths
and dependencies.
Sat Jul 5 14:19:20 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
* Renamed the client directory "clients" to reflect the fact that
we've got multiple client tests now. Also, moved the original
contents of the client directory into a new clients/Blobby
directory and added Caching and WebSTONE.
* Moved the ChangeLog from the ./server directory into the ./JAWS
directory since we want to apply ChangeLog entries to all
aspects of JAWS, not just the server.
* HTTP_Server.cpp (open): Added THR_DETACHED as a flag to
activate(). This should prevent a memory leak that was
occurring since no thread was ever "joining" the threads that
were spawned.
Thu Jul 3 23:33:47 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* HTTP_Response.cpp (~HTTP_Response): changed delete to delete [],
removing a major memory leak from JAWS. Still to find is a
memory lead associated with thread per request. Nanbor's fix is
about what I did to EMPTY_HEADER too.
* JAWS_File.cpp: David points out I need to add specializations
for the GNU C++ compiler.
Thu Jul 3 22:38:04 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
* HTTP_Response.cpp (build_headers): Added explicit cast for
EMPTY_HEADER from (const char *) to (char *) in order to make
MSVC happy. This is probably very badly styled. But
HTTP_HEADER is only used in places that require (const char *),
so I think it's safe to do so.
Thu Jul 3 15:34:30 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* HTTP_Response.cpp (HTTP_Response): Moved a call to delete out of
constructor into the destructor where it belongs.
Thu Jul 3 12:28:44 1997 Sumedh Mungee <sumedh@lindy.cs.wustl.edu>
* Parse_Headers.cpp: Line 137, Changed pt to ptr (it was a typo)
Wed Jul 2 22:33:52 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* JAWS_File.{h,cpp}: Fixed deadlock bug, since RW_MUTEX's are not
recursive (drat!).
Wed Jul 2 21:03:12 1997 Douglas C. Schmidt <schmidt@flamenco.cs.wustl.edu>
* Made a major pass through all the code and made the style
consistent with that found in ACE.
Wed Jul 2 14:33:27 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* JAWS_File.cpp: Added double check locking pattern to the fetch
routine of the virtual filesystem. This slows things down
considerably for files which change frequently and for cache
misses in general, but it should be correct.
Wed Jul 2 14:59:29 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
* HTTP_Helpers.cpp (HTTP_decode_string): Added cast from strtol to
char explicitly to prevent NT from complaining.
Wed Jul 2 14:33:27 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* JAWS_File.{h.cpp}: Modifications to support RW_MUTEX for both
the virtual filesystem and the low level ACE_File. Next major
change will be to re-implement the virtual filesystem to use a
hash table ala ACE_Hash_Map_Manager.
Wed Jul 2 00:23:22 1997 James C Hu <jxh@polka.cs.wustl.edu>
* HTTP_Server.{h,cpp}: Changed parsing of options to use
mnemonic names rather than numbers. Added a new thread
strategy, THROTTLE. This is thread-per-request until some
maximum number. Unfortunately, it does not become thread-pool
at this point... yet :-). Added a new option to pass in a
backlog value.
* svc.conf: adjusted to account for the changed options.
* README: changed to explain new svc.conf options.
* JAWS_File.cpp: Changed it so that when the file is added to the
cache, it is also acquired. When it is removed from the cache,
it is released. This is so that the reference count is at least
one while the file is in the cache. Also, fixed the virtual
filesystem by giving it a simple replacement strategy if the
table is full. For now, it will replace the largest file in the
cache with the request for the current file.
Tue Jul 1 19:13:44 1997 Nanbor Wang <nw1@cumbia.cs.wustl.edu>
* JAWS_File.cpp (JAWS_File): Changes the creation method of a
cached copy from using plain file copy to using mmap and memcpy.
This avoid the extra complexity caused by FILE_FLAG_OVERLAPPED.
Sat Jun 28 11:55:38 1997 James C Hu <jxh@tango.cs.wustl.edu>
* HTTP_Handler.cpp (open): fixed a typo
* HTTP_Handler.cpp (cgi): fixed a bug, strdup fails on NULL
Sat Jun 28 16:14:38 1997 Sumedh Mungee <sumedh@cumbia.cs.wustl.edu>
* HTTP_Handler.cpp (open): Changed socket send-buffer to 64k
Wed Jun 25 01:11:50 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
* JAWS_File.cpp: Removed initialization of vfs_ (see below) and
changed all references of vfs_ to
JAWS_Virtual_Filesystem::instance (). Thanks to Detlef Becker
<detlef.becker@med.siemens.de> for pointing this out.
(init): Added initialization of reference_count_ to 0.
* JAWS_File.h: Removed private member JAWS_Virtual_Filesystem vfs_
since JAWS_Virtual_Filesystem is a singleton already. Caching
it doesn't seem to win much and depends on the order of static
variables initialization, which is non-portable.
Fri Jun 13 02:42:39 1997 Nanbor Wang <nw1@dingo.wolfpack.cs.wustl.edu>
* jaws.{mdp,mak}: Updated to incoporate latest changes.
Thu Jun 5 14:13:22 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* HTTP_Server.cpp: Added more informative comments to the
asynch_thread_pool() method due to comments posed by Mehul
(MehulM@spa-marketing.com).
Wed Jun 4 23:00:47 1997 James C Hu <jxh@lambada.cs.wustl.edu>
* JAWS_File.cpp (JAWS_File): Fixed a bug where JAWS_File wanted
the file to have write permissions before openning it. This is
now only true if the file is to be written to.
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.
|