[GNE]Latest Changes
Brought to you by:
gillius
|
From: Gillius <gi...@ma...> - 2003-08-19 04:08:18
|
I was hoping to get the next GNE release out the door the first few days of
this week, but in addition to the blackout, I'm having to do overtime work.
I did finish the very last code change I wanted to make. Nothing more
should change in the code unless I discover any "showstopper" errors. the
only thing I expect to work on is on the install scripts, docs, and
readmes.
In that department, some may be interested to hear that someone has
expressed interest in trying to compile GNE on a Mac OS X machine. If I
hear more details, GNE may have a Mac OS X port for this next release!
Theorietically, if Mac OS X looks like a "generic UNIX machine" then GNE
should compile on it. I've already run GNE on Solaris and Linux on both
little and big-endian machines. I built GNE to be aware of different
processor architectures so it should theoritically work on Mac without a
hitch if it supports ncurses and POSIX threads (which I believe it does).
Yes Elias, I know I have no addressed your issues mentioned earlier. That
is because I need to relook at the installation method of the library now
that it requires Boost.
The latest code change I made was to retire the unsafe RawPacket class and
replace it with the Buffer class. Java fans will take note that it has the
same semantics as a java.nio.Buffer for many of its methods. The Buffer
class is "safe" in that it will throw exceptions if the buffer overflows or
underflows. RawPacket provided some asserts but not all conditions could
be checked, and asserts are only run in debug mode. Buffer's checks are as
stringent as possible and are always performed. Hopefully this will make
it very difficult to remote exploit a GNE application through a fault of
GNE.
Therefore, the internal parsing API has changed so that readPacket and
writePacket are not only allowed but are now encouraged to throw exceptions
(compatable with type GNE::Error&). The GNE code now gracefully handles
these exceptions.
Jason
Latest changes:
Added ErrorCode User for user-inherited Error objects.
Throwing exceptions during readPacket and writePacket is now allowed.
RawPacket class was retired and replaced by the new safer class Buffer.
RawPacket's name was confusing, and did not have strong protection against
overflow and underflow.
|