Hi folks,
authorrobs <robs>
Fri, 21 Jul 2000 20:56:28 +0000 (20:56 +0000)
committerrobs <robs>
Fri, 21 Jul 2000 20:56:28 +0000 (20:56 +0000)
commit98e2ddaa31257e9fd6f3f095165131546b29308c
tree94f9f7c1caa21e0bcfea522466abdbccdbc4f7fc
parent37a69de13c890a0a5d52ef8ce89c580288409e8c
Hi folks,

The next two posts (subject fcgio2.h and fcgio2.cpp) contain the
documentation and source code for the new version of the fcgio
FCGI C++ iostream library.

The new version fixes two very bad bugs in the original version:

1. falsely indicating an EOF when uploading binary data as would
   be done with a <input type=file> form using multipart form
   encoding - or if a hacker were to send binary data instead of
   normal form data.

2. data loss when using different read methods, such as a getline()
   followed by a read().

There is also now full buffer support for both input and output
streams.

Two new methods have been added. Attach() lets you attach to
an fcgi stream pointer in your code, so that you can construct
your streams at the beginning of your code and attach() to the fcgi
interface pointers later (i.e. after accept())
Drain() is a method which provides a way to drain the get buffer
for those of you who need to mix istream code with the I/O
provided by the fcgiapp library (and hence sync the inputs).

The docs have been greatly expanded to include some example code
in the header file. See fcgio2.h for full details.

Note that the stream types are now fcgi_istream and fcgi_ostream
NOT fcgio_xxx as was done in the older version.

It is my hope that this code provides everyone with a higher
performance, more reliable C++ interface than that which previously
existed.

 Enjoy!

 Mike Shell

Modified Files:  libfcgi/fcgio.cpp include/fcgio.h
include/fcgio.h
libfcgi/fcgio.cpp