/[wanproxy]/releases/wanproxy-0.6.2
ViewVC logotype

Log of /releases/wanproxy-0.6.2

View Directory Listing Directory Listing


Sticky Revision:

Revision 423 - Directory Listing
Modified Tue Jan 19 23:38:58 2010 UTC (7 months, 2 weeks ago) by juli
Manually update copyright year as in trunk.

Revision 422 - Directory Listing
Modified Tue Jan 19 23:38:41 2010 UTC (7 months, 2 weeks ago) by juli
Prepare for release.

Revision 420 - Directory Listing
Modified Tue Jan 19 23:37:24 2010 UTC (7 months, 2 weeks ago) by juli
Copied from: trunk revision 419
Branch for 0.6.2.

Revision 419 - Directory Listing
Modified Tue Jan 19 23:35:22 2010 UTC (7 months, 2 weeks ago) by juli
Original Path: trunk
Rename 'encoder' and 'decoder' to something more logical, as discussed
on the mailing list.

Revision 418 - Directory Listing
Modified Fri Jan 8 21:17:09 2010 UTC (7 months, 4 weeks ago) by juli
Original Path: trunk
Prioritize?

Revision 417 - Directory Listing
Modified Fri Dec 11 23:51:10 2009 UTC (8 months, 3 weeks ago) by juli
Original Path: trunk
Just use USE_LIBS.  __LIBRARIES is obviously not DWIMing anyway, so put the
burden on the user to not double up in USE_LIBS.

Revision 416 - Directory Listing
Modified Fri Dec 11 18:28:08 2009 UTC (8 months, 3 weeks ago) by juli
Original Path: trunk
GNU Make doesn't support .MAIN:, so arrange for it by hand.

Revision 415 - Directory Listing
Modified Thu Dec 10 18:06:02 2009 UTC (8 months, 3 weeks ago) by juli
Original Path: trunk
Whitespace between VPATH+= and the content.

Revision 413 - Directory Listing
Modified Thu Dec 10 18:03:43 2009 UTC (8 months, 3 weeks ago) by juli
Original Path: trunk
Add missed file.

Revision 409 - Directory Listing
Modified Thu Dec 10 17:49:25 2009 UTC (8 months, 3 weeks ago) by juli
Original Path: trunk
Switch to GNU Make in the interest of portability.

Revision 408 - Directory Listing
Modified Wed Dec 9 00:04:32 2009 UTC (8 months, 4 weeks ago) by juli
Original Path: trunk
Fix spelling of a filename.

Revision 407 - Directory Listing
Modified Sun Nov 22 20:24:52 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Clean up empty-body expression style.

Revision 406 - Directory Listing
Modified Sun Nov 22 12:13:32 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Add XCodecDecoderPipe::process_eos().

Revision 405 - Directory Listing
Modified Sun Nov 22 12:05:12 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Note that the decoder needs process_eos(), too.

Revision 403 - Directory Listing
Modified Sun Nov 22 11:48:59 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Add GNU Make build system to-do.

Revision 401 - Directory Listing
Modified Sun Nov 22 11:45:56 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
I'm going to push out 0.6.0.

Revision 400 - Directory Listing
Modified Sun Nov 22 11:41:37 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Fix buffering of unhandled data.

Revision 399 - Directory Listing
Modified Sun Nov 22 11:37:46 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Attempt to implement EOS again, using process_eos facility.

Revision 398 - Directory Listing
Modified Sun Nov 22 11:28:32 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Make it possible for a processing function to be explicit about EOS.

Revision 397 - Directory Listing
Modified Sun Nov 22 08:54:59 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Send EOS at reasonable times from the XCodecEncoder.

Revision 396 - Directory Listing
Modified Sun Nov 22 08:27:40 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Remove broken <EOS> implementation.

Revision 395 - Directory Listing
Modified Sun Nov 22 01:28:57 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Try to improve EOS support; probably still wrong.

Revision 394 - Directory Listing
Modified Sun Nov 22 01:19:49 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Fix some assertions and queueing needs.

Revision 393 - Directory Listing
Modified Sun Nov 22 01:14:13 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
o) Add skeletal, hackish EOS support.
o) Expose some PipeSimple fields to subclassen.

Revision 392 - Directory Listing
Modified Sun Nov 22 00:02:17 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Simplify.

Revision 391 - Directory Listing
Modified Sun Nov 22 00:00:38 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
o) Log an undesirable condition in PipeSimple.
o) Make PipeSimple require a LogHandle from its subclasses.

Revision 390 - Directory Listing
Modified Sat Nov 21 23:58:00 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Don't send any gratuitous EOSen.

Revision 389 - Directory Listing
Modified Sat Nov 21 23:46:03 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Make it possible for PipeSimple::process() to fail!

Revision 388 - Directory Listing
Modified Sat Nov 21 23:45:21 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
ConfigValue is a struct not a class.

Revision 387 - Directory Listing
Modified Sat Nov 21 23:40:48 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
o) Implement a PipeSimple which can be used for Pipes that just have a
   processing function (including support for spontaneous output.)
o) Make PipeNull a PipeSimple instance.

Revision 386 - Directory Listing
Modified Sat Nov 21 11:22:29 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Use a boolean to track whether data has been queued and only push encoder data
if we have done.

Revision 385 - Directory Listing
Modified Sat Nov 21 11:13:45 2009 UTC (9 months, 2 weeks ago) by juli
Original Path: trunk
Add a definition of the EOS op.  Implementation to come.

Revision 384 - Directory Listing
Modified Fri Nov 13 09:39:31 2009 UTC (9 months, 3 weeks ago) by juli
Original Path: trunk
Add an infrastructure item.

Revision 383 - Directory Listing
Modified Tue Nov 10 08:22:01 2009 UTC (9 months, 3 weeks ago) by juli
Original Path: trunk
Mark some fields const.

Revision 382 - Directory Listing
Modified Mon Oct 19 22:57:16 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
I think EOS signalling is the solution.

Revision 381 - Directory Listing
Modified Mon Oct 19 21:23:18 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Track XCodecDecoder constructor signature changes.

Revision 380 - Directory Listing
Modified Sun Oct 18 22:19:25 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Think out loud.

Revision 379 - Directory Listing
Modified Sun Oct 18 21:25:01 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Batch ASKs and LEARNs.

Revision 378 - Directory Listing
Modified Sun Oct 18 11:01:47 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Remove overly-enthusiastic assertions, bug was tracked down.

Revision 377 - Directory Listing
Modified Sun Oct 18 10:58:50 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Track number of outstanding ASKs at destruction time.

Revision 376 - Directory Listing
Modified Sun Oct 18 10:55:14 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Update xcdump for the new protocol and reconnect it to the build.

Revision 375 - Directory Listing
Modified Sun Oct 18 10:54:55 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Remove unused, ill-conceived foreach_byte().

Revision 374 - Directory Listing
Modified Sun Oct 18 10:54:40 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Fix build with !XCODEC_PIPES.

Revision 373 - Directory Listing
Modified Sun Oct 18 10:32:02 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Note an easy optimization of ASK/LEARN that needs to happen.

Revision 372 - Directory Listing
Modified Sun Oct 18 10:20:14 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Set the encoder in XCodecDecoder like how the pipe is set in XCodecEncoder.

Revision 371 - Directory Listing
Modified Sun Oct 18 10:12:23 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Set the association with a pipe on the creation and destruction of the pipe so that
the XCodecEncoder does not refer to the pipe after it has been destroyed.

Revision 370 - Directory Listing
Modified Sun Oct 18 10:05:09 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Pepper with assertions.

Revision 369 - Directory Listing
Modified Sun Oct 18 09:59:53 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Allow data at EOS to get queued data appended to it, too.

Revision 368 - Directory Listing
Modified Sun Oct 18 09:55:25 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
o) Change the XCodecEncoderPipe to be a little bit more aggressive in pulling data from XCodec.
o) Don't trip an assertion if we only have one byte of data to decode.
o) Give some output when we're pushing queued data from the XCodecEncoder.

Revision 367 - Directory Listing
Modified Sun Oct 18 09:42:54 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Skip magic and op in LEARN.

Revision 366 - Directory Listing
Modified Sun Oct 18 08:14:11 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
There look to be problems with spontaneous output.

Revision 365 - Directory Listing
Modified Sun Oct 18 08:11:52 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Handle empty input to get spontaneous output correctly.

Revision 364 - Directory Listing
Modified Sun Oct 18 08:09:36 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Only build in references to XCodecEncoderPipe if Pipes are around.

Revision 363 - Directory Listing
Modified Sun Oct 18 08:06:47 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
There is no XCodecEncoderPipe associated with our XCodecEncoder.

Revision 362 - Directory Listing
Modified Sun Oct 18 08:06:06 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
o) Associate XCodecEncoderPipes with each XCodecEncoder where appropriate.
o) Alert an XCodecEncoderPipe when spontaneous data is available.

Revision 361 - Directory Listing
Modified Sun Oct 18 07:56:38 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Chase some member changes from last revision.

Revision 360 - Directory Listing
Modified Sun Oct 18 07:56:11 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Try a slightly clearer approach to queueing data and then
processing it.

Revision 359 - Directory Listing
Modified Sun Oct 18 07:43:35 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Add some more messages.

Revision 358 - Directory Listing
Modified Sun Oct 18 07:41:25 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Remove now-irrelevant log mask tweaks.

Revision 357 - Directory Listing
Modified Sun Oct 18 07:38:21 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Handle REF queueing properly...

Revision 356 - Directory Listing
Modified Sun Oct 18 07:36:46 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
o) Add a crummy approach to look-ahead parsing.  Queue encoded data
   as it is parsed if data is already queued due to waiting for a LEARN
   or similar.  This may be sufficient for now but is not optimal.

Revision 355 - Directory Listing
Modified Sun Oct 18 06:34:47 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
o) Remove unused xcodec_special_p.
o) Queue a <HELLO> at the creation of each XCodecEncoder.
o) Store a <HELLO> message for each XCodec instance.
o) Add functions to queue ASKs and LEARNs.
o) Queue ASKs and LEARNs and handle ASKs and LEARNs as much as is
   possible in XCodecDecoder right now without adding lookahead
   parsing support.

Revision 354 - Directory Listing
Modified Sun Oct 18 06:14:37 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Remove magical-thinking non-entropy from the hash.  More collisions, but faster
and not so much worse.

Revision 353 - Directory Listing
Modified Sun Oct 18 06:10:16 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Start working towards 0.6.0.

o) Modify XCodecWindow::dereference to return NULL rather than crashing
   if a hostile remote system requests data outside of the window.
o) Have XCodecDecoder track any associated XCodecEncoder.  There may not
   be one, but if there is we can do other things...
o) Removall XCODEC_STATS code.
o) Reinvent XCodec protocol to use a single magic character followed by
   an opcode, which uses fewer bytes in almost all circumstances, and
   provably uses fewer bytes overall.  The result is a non-trivial size
   reduction for encoded streams.  All of them.
o) Get rid of Buffer::escape and Buffer:find_if, which were awkward and
   just there due to the badness of the old XCodec protocol.
o) Update the encoder to use the new output format and to do its own
   data escaping.
o) Make Buffer::find() use memchr(3), which is faster than doing it by
   hand.
o) Get rid of XCodec::decoder() and XCodec::encoder(), which were not in
   use (and which should not have been used.)
o) Add an XCodec::side_effects() static method which will help the decoder
   track whether it can disorder its evaluation of data in the stream.
o) Rewrite the decoder to handle the trivial cases of the new protocol,
   leaving ASK and LEARN unimplemented.  Since we can use the faster
   Buffer::find() now instead of Buffer::find_if(), it's faster even though
   it uses none of the old, clever speed tricks.  It's going to get slower
   as out-of-order parsing is implemented.
o) Update TODO to reflect new priorities.
o) Disable xcdump, as it needs rewritten.

Revision 352 - Directory Listing
Modified Sun Oct 18 01:57:42 2009 UTC (10 months, 2 weeks ago) by juli
Original Path: trunk
Note that memchr would really be better.

Revision 351 - Directory Listing
Modified Wed Oct 14 20:58:03 2009 UTC (10 months, 3 weeks ago) by juli
Original Path: trunk
Need to handle OOB data in the distant future.  This seems not too hard, but
we'll see.

Revision 350 - Directory Listing
Modified Thu Oct 8 08:47:05 2009 UTC (10 months, 4 weeks ago) by juli
Original Path: trunk
A good idea of how to optimize first-sends.

Revision 349 - Directory Listing
Modified Thu Oct 8 08:42:08 2009 UTC (10 months, 4 weeks ago) by juli
Original Path: trunk
Gather and display periodically statistics on the efficiency of the XCodec encoder.

Revision 348 - Directory Listing
Modified Thu Oct 8 08:41:41 2009 UTC (10 months, 4 weeks ago) by juli
Original Path: trunk
Hide output from the decoder.

Revision 347 - Directory Listing
Modified Sat Oct 3 19:48:30 2009 UTC (11 months ago) by juli
Original Path: trunk
Add per-instance tracking of XCodec{Encoder,Decoder} input and output amounts.
This makes it possible to watch efficiency on the fly so long as there is not a
CLI or similar.

Revision 344 - Directory Listing
Modified Sat Sep 26 08:18:16 2009 UTC (11 months, 1 week ago) by juli
Original Path: trunk
0.5.2 is going to go out as-is.

Revision 343 - Directory Listing
Modified Sat Sep 26 07:56:55 2009 UTC (11 months, 1 week ago) by juli
Original Path: trunk
XCodec pipes are in place.

Revision 342 - Directory Listing
Modified Sat Sep 26 01:27:05 2009 UTC (11 months, 1 week ago) by juli
Original Path: trunk
Use tabs not spaces after #if/#define.

Revision 341 - Directory Listing
Modified Fri Sep 25 23:49:22 2009 UTC (11 months, 1 week ago) by juli
Original Path: trunk
Work around a bug with OpenBSD's ancient compiler in ConfigObject::coerce.

This may be a bug in GCC 3.x but since I don't develop against any non-OpenBSD
GCC3 installations, I've just conditionalized it on OpenBSD.  It should be
harmless, but I don't want to replace good code with obtuse code outright just
because of a compiler deficiency, so it's conditionalized.

Revision 340 - Directory Listing
Modified Fri Sep 25 23:47:48 2009 UTC (11 months, 1 week ago) by juli
Original Path: trunk
Use kqueue on OpenBSD.

Revision 339 - Directory Listing
Modified Fri Sep 25 23:35:38 2009 UTC (11 months, 1 week ago) by juli
Original Path: trunk
Add <unistd.h> for usleep(3).

Revision 338 - Directory Listing
Modified Fri Sep 25 23:35:18 2009 UTC (11 months, 1 week ago) by juli
Original Path: trunk
Add <unistd.h> for *_FILENO on OpenBSD.

Revision 337 - Directory Listing
Modified Thu Sep 24 05:43:56 2009 UTC (11 months, 1 week ago) by juli
Original Path: trunk
Fix memory leak.

Revision 336 - Directory Listing
Modified Thu Sep 24 04:50:39 2009 UTC (11 months, 1 week ago) by juli
Original Path: trunk
Harmonize UDPClient with TCPClient.

Revision 335 - Directory Listing
Modified Wed Sep 23 05:17:26 2009 UTC (11 months, 2 weeks ago) by juli
Original Path: trunk
Improve Socket allocation in TCPClient::connect().  Callers will get the Socket
in the connect completion callback.

Revision 334 - Directory Listing
Modified Tue Sep 22 10:20:59 2009 UTC (11 months, 2 weeks ago) by juli
Original Path: trunk
Add protocol-framing for XCodec.

Revision 333 - Directory Listing
Modified Sun Sep 20 13:50:28 2009 UTC (11 months, 2 weeks ago) by juli
Original Path: trunk
Return success rather than failure from shutdown() on FileDescriptor, since it
is entirely immaterial.

Revision 332 - Directory Listing
Modified Sun Sep 20 13:47:47 2009 UTC (11 months, 2 weeks ago) by juli
Original Path: trunk
o) Add a TODO item.
o) Add a null-sink Pipe (PipeNull.)
o) Add an example program using PipeNull.

Revision 331 - Directory Listing
Modified Sat Sep 19 09:33:35 2009 UTC (11 months, 2 weeks ago) by juli
Original Path: trunk
Match reality.

Revision 330 - Directory Listing
Modified Thu Sep 17 01:29:11 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Add a note about the gratuitous polling we do, especially since we're not
edge-triggered.

Revision 329 - Directory Listing
Modified Tue Sep 15 11:35:32 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Format to save my eyes.

Revision 328 - Directory Listing
Modified Tue Sep 15 09:43:36 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Add an item.

Revision 327 - Directory Listing
Modified Sun Sep 13 18:05:20 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
o) Push member setting into ConfigClass::set() from Config::set().
o) Allow the user to try to set a field twice.
o) Add a "flags" type, which allows the user to set a field multiple times
   to OR together some flags.
o) Add a test of the "flags" type.

Revision 326 - Directory Listing
Modified Sun Sep 13 17:38:21 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Make mapping table static.

Revision 325 - Directory Listing
Modified Sun Sep 13 17:38:05 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Make mapping table static.

Revision 324 - Directory Listing
Modified Sun Sep 13 10:36:14 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Use a less-obtuse substringing mechanism.

Revision 323 - Directory Listing
Modified Sun Sep 13 10:22:13 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Stop parsing when we encounter a token beginning with a hash.  This allows for
comments after the important stuff.

Revision 322 - Directory Listing
Modified Sun Sep 13 10:20:15 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Make the configuration system give some better idea as to what went wrong.

Revision 321 - Directory Listing
Modified Sat Sep 12 10:33:52 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Updat.

Revision 320 - Directory Listing
Modified Fri Sep 11 11:00:59 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Remove wrong comments.

Revision 319 - Directory Listing
Modified Fri Sep 11 09:10:50 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Don't halt if we're unable to set fd flags, just accept blocking I/O.

Revision 318 - Directory Listing
Modified Fri Sep 11 06:05:23 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Attempt to raise the file descriptor limit to its maximum.

Revision 317 - Directory Listing
Modified Fri Sep 11 02:41:02 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
o) Institutionalize the SIGPIPE workaround.
o) Make the IO system announce itself like the Event system.

Revision 316 - Directory Listing
Modified Thu Sep 10 13:07:20 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
o) Constify a parameter.
o) Remove unused assignment.

Revision 315 - Directory Listing
Modified Thu Sep 10 13:07:02 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Don't include pipe-related code if not using the io library.

Revision 314 - Directory Listing
Modified Thu Sep 10 12:26:19 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Use XCodec Pipes.

Revision 313 - Directory Listing
Modified Thu Sep 10 12:25:55 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Fix buffering of encoded data.

Revision 312 - Directory Listing
Modified Thu Sep 10 12:21:47 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Take a stab at implementing the decoder pipe.

Revision 311 - Directory Listing
Modified Thu Sep 10 11:53:31 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Include headers for the XCodec Pipes.

Revision 310 - Directory Listing
Modified Thu Sep 10 11:53:18 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Fix copy-paste bug.

Revision 309 - Directory Listing
Modified Thu Sep 10 11:50:38 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
o) Add untested mechanism for creating a pair of XCodec pipes.
o) Implement XCodecEncoderPipe.
o) Stub out XCodecDecoderPipe.

Revision 308 - Directory Listing
Modified Thu Sep 10 11:40:33 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Clean up some based on what I think will get done while I'm sick in bed this
weekend, etc.

Revision 307 - Directory Listing
Modified Thu Sep 10 11:15:25 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Update with an idea.

Revision 306 - Directory Listing
Modified Thu Sep 10 11:12:30 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
o) Make some internal constructs only log errors as DEBUG, not ERROR.

Revision 305 - Directory Listing
Modified Thu Sep 10 10:41:51 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Note spontaneous data problems.

Revision 304 - Directory Listing
Modified Thu Sep 10 09:14:39 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
o) Create PipeLinks with PipeNulls for both sides for proxied pipes.
o) Track and delete any Pipes created.

Revision 303 - Directory Listing
Modified Thu Sep 10 08:34:18 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Give in and set SO_REUSEADDR.

Revision 302 - Directory Listing
Modified Thu Sep 10 03:34:44 2009 UTC (11 months, 3 weeks ago) by juli
Original Path: trunk
Add a PipeLink class which is a Pipe that pipes between two Pipes.

Revision 301 - Directory Listing
Modified Thu Sep 10 01:59:40 2009 UTC (11 months, 4 weeks ago) by juli
Original Path: trunk
Remove some things already kind of done.

Revision 300 - Directory Listing
Modified Thu Sep 10 01:32:26 2009 UTC (11 months, 4 weeks ago) by juli
Original Path: trunk
Remove old include.

Revision 299 - Directory Listing
Modified Thu Sep 10 01:28:32 2009 UTC (11 months, 4 weeks ago) by juli
Original Path: trunk
o) Add a shutdown() method to the Channel description.
o) Make shutdown() call shutdown(2) for Sockets.
o) Make Splices call shutdown() for writes to pass EOS from one side of the
   Splice to another.

Revision 298 - Directory Listing
Modified Thu Sep 10 00:50:05 2009 UTC (11 months, 4 weeks ago) by juli
Original Path: trunk
o) Replace ProxyPipe with Splices via SplicePair.
   XXX For now this is just using (and leaking) PipeNulls.  Add XCodec Pipes
       and PipeLinks or Pipelines or whatever soon.

Revision 297 - Directory Listing
Modified Thu Sep 10 00:23:32 2009 UTC (11 months, 4 weeks ago) by juli
Original Path: trunk
Add an untested SplicePair implementation.

Revision 296 - Directory Listing
Modified Wed Sep 9 22:59:46 2009 UTC (11 months, 4 weeks ago) by juli
Original Path: trunk
Don't keep reading once we've already pushed an EOS indicator to the Pipe.

Revision 295 - Directory Listing
Modified Wed Sep 9 22:56:47 2009 UTC (11 months, 4 weeks ago) by juli
Original Path: trunk
o) Cancel all pending actions when calling Splice::complete().
o) Add a Splice-based cat-alike.

Revision 294 - Directory Listing
Modified Wed Sep 9 11:37:06 2009 UTC (11 months, 4 weeks ago) by juli
Original Path: trunk
Add compile-tested Splice class.

Revision 293 - Directory Listing
Modified Wed Sep 9 11:35:23 2009 UTC (11 months, 4 weeks ago) by juli
Original Path: trunk
Add a comment.

Revision 292 - Directory Listing
Modified Mon Sep 7 09:46:06 2009 UTC (12 months ago) by juli
Original Path: trunk
A resolver: how hard can it be?

Revision 291 - Directory Listing
Modified Mon Sep 7 09:26:36 2009 UTC (12 months ago) by juli
Original Path: trunk
Allow *Client::connect to fail and handle gracefully in ProxyClient.

Revision 290 - Directory Listing
Modified Mon Sep 7 08:47:46 2009 UTC (12 months ago) by juli
Original Path: trunk
o) Note where IPv6 support is missing.
o) Use IP connection when given a name, so that IPv6 may be used.

Revision 289 - Directory Listing
Modified Mon Sep 7 08:28:25 2009 UTC (12 months ago) by juli
Original Path: trunk
o) Remove an old XXX about  a decision long made and enjoyed.
o) Explain a bit about why Events are as they are.

Revision 288 - Directory Listing
Modified Mon Sep 7 08:23:57 2009 UTC (12 months ago) by juli
Original Path: trunk
Discuss read vs. readv.

Revision 287 - Directory Listing
Modified Mon Sep 7 06:13:02 2009 UTC (12 months ago) by juli
Original Path: trunk
o) Add Solaris port(3C)-based polling that uses /dev/poll on the backend.

Revision 286 - Directory Listing
Modified Mon Sep 7 01:29:33 2009 UTC (12 months ago) by juli
Original Path: trunk
Make sure the PROGRAM is the main target.

Revision 285 - Directory Listing
Modified Sun Sep 6 07:14:36 2009 UTC (12 months ago) by juli
Original Path: trunk
o) Handle modification of events not just add/delete.
o) Handle EPOLLIN and EPOLLOUT at the same time.

Revision 284 - Directory Listing
Modified Sun Sep 6 07:04:13 2009 UTC (12 months ago) by juli
Original Path: trunk
Add barely-tested epoll support and turn it on on Linux.

Revision 283 - Directory Listing
Modified Sun Sep 6 01:31:21 2009 UTC (12 months ago) by juli
Original Path: trunk
Plan 0.5.2 to just add new poll mechanisms and to fix WANProxy on Mac OS X 10.6
and Interix.

Revision 282 - Directory Listing
Modified Sun Sep 6 01:23:55 2009 UTC (12 months ago) by juli
Original Path: trunk
o) Interix was hanging due to using poll instead of select.
o) Probably should add /dev/poll support for Solaris.

Revision 281 - Directory Listing
Modified Sun Sep 6 00:26:43 2009 UTC (12 months ago) by juli
Original Path: trunk
Use select, not poll, on Interix.

Revision 280 - Directory Listing
Modified Sun Sep 6 00:20:06 2009 UTC (12 months ago) by juli
Original Path: trunk
There's now basic Interix support committed.

Revision 279 - Directory Listing
Modified Sun Sep 6 00:19:37 2009 UTC (12 months ago) by juli
Original Path: trunk
IOV_MAX of 1024 seems to work for Interix.

Revision 278 - Directory Listing
Modified Sun Sep 6 00:17:43 2009 UTC (12 months ago) by juli
Original Path: trunk
Use strtoll like strtoimax on Interix.

Revision 277 - Directory Listing
Modified Sun Sep 6 00:17:30 2009 UTC (12 months ago) by juli
Original Path: trunk
Merge changes from tack.

Revision 276 - Directory Listing
Modified Sat Sep 5 23:31:50 2009 UTC (12 months ago) by juli
Original Path: trunk
Add not-entirely-tested getnameinfo and getaddrinfo implementations for Interix.

Revision 275 - Directory Listing
Modified Sat Sep 5 23:24:14 2009 UTC (12 months ago) by juli
Original Path: trunk
tack should not need its own stdint.h include.

Revision 274 - Directory Listing
Modified Sat Sep 5 22:11:18 2009 UTC (12 months ago) by juli
Original Path: trunk
Use getnameinfo(3) instead of inet_ntop(3) and try stringifying Unix addresses.

Revision 273 - Directory Listing
Modified Sat Sep 5 21:56:56 2009 UTC (12 months ago) by juli
Original Path: trunk
Hide IPv6 support if even AF_INET6 is undefined!

Revision 272 - Directory Listing
Modified Sat Sep 5 21:56:28 2009 UTC (12 months ago) by juli
Original Path: trunk
Add more types for Interix.

Revision 271 - Directory Listing
Modified Sat Sep 5 21:25:03 2009 UTC (12 months ago) by juli
Original Path: trunk
Reluctantly define uintptr_t on Interix.

Revision 270 - Directory Listing
Modified Sat Sep 5 21:16:47 2009 UTC (12 months ago) by juli
Original Path: trunk
Stop using bsd.obj.mk.

Revision 269 - Directory Listing
Modified Sat Sep 5 21:14:21 2009 UTC (12 months ago) by juli
Original Path: trunk
Add types and limits headers to handle OS dependencies (namely OSes that don't
support C99, like Interix.)

Revision 268 - Directory Listing
Modified Sat Sep 5 10:48:28 2009 UTC (12 months ago) by juli
Original Path: trunk
Mention Interix.

Revision 267 - Directory Listing
Modified Sat Sep 5 10:37:04 2009 UTC (12 months ago) by juli
Original Path: trunk
Expand.

Revision 266 - Directory Listing
Modified Fri Sep 4 09:01:25 2009 UTC (12 months ago) by juli
Original Path: trunk
Work around an incredibly-stupid regression in latest Mac OS X.

Revision 265 - Directory Listing
Modified Thu Aug 27 04:14:25 2009 UTC (12 months, 1 week ago) by juli
Original Path: trunk
Mention the need for something higher-level since Pipes have a lot of duplicated code.

Revision 264 - Directory Listing
Modified Sun Aug 23 04:08:59 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Reserve ESCAPE followed by non-special characters for extended functionality.

Revision 263 - Directory Listing
Modified Sat Aug 22 07:41:54 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Adjust logging levels and add a verbose flag.

Revision 262 - Directory Listing
Modified Sat Aug 22 06:12:26 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Some experiments with the XCodecHash suggest that it doesn't benefit from doing
an xor of bytes in the hashed data and that it costs a non-trivial amount of
performance.  If nothing else, we store two copies of the byte being rolled in,
which is unacceptable.  In the future, just Jenkins mixing the low 32-bits and
using the upper 32-bits for UUID is probably workable.  Actually, maybe we'd be
best off just using 32-bit hashes.  Dunno.  Depends how we store hashes sent by
the peer and whether we generate references to them, etc.?

Revision 261 - Directory Listing
Modified Sat Aug 22 06:00:29 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Rename previously-added 'find' method to 'find_if' given its predicate argument
to avoid crazy template ugliness with the plain character find function.

Revision 260 - Directory Listing
Modified Sat Aug 22 05:53:54 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Add a Buffer::find() method that takes a predicate rather than a single
character.  XXX At some point want to be able to take an array of characters as
the input, which I believe would be even better.

Revision 259 - Directory Listing
Modified Sat Aug 22 05:38:06 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Comment the XCodecEncoder::encode() routine better.

Revision 258 - Directory Listing
Modified Sat Aug 22 02:19:46 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Massive simplification of XCodecEncoder::encode() given the realizations behind
the previous commit.

Revision 257 - Directory Listing
Modified Sat Aug 22 01:57:57 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Before processing a reference, if that reference is for data beyond the current
declaration candidate, encode the declaration.  This fixes the mysterious 128
byte literal runs that show up before references sometimes.  Add an ASSERT to
check some assumptions for a few runs before taking advantage of some
simplification that this makes possible.

Revision 256 - Directory Listing
Modified Sat Aug 22 00:55:10 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
o) Now that we only ever have one candidate hash outstanding, just use a bool to
   store whether there is one and a single candidate hash offset-hash pair,
   rather than using a deque (or even a 1-element vector) for performance and
   clarity of code.

Revision 252 - Directory Listing
Modified Thu Aug 20 07:11:33 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Test IP family "localhost" along with IPv4 and IPv6 localhosts.

Revision 251 - Directory Listing
Modified Thu Aug 20 07:10:11 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Fix GNU/Linux systems that don't know about an IPv6 host named "localhost" by
specifying "localhost" for IPv4 and "::1" for IPv6.

Revision 250 - Directory Listing
Modified Thu Aug 20 07:05:25 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Include <errno.h> for extern int errno on Slowlaris.

Revision 249 - Directory Listing
Modified Thu Aug 20 07:00:39 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Fall back to IPv4 when trying IPv6 for an IP socket fails due to a lack of
support.  But why is it Protocol not supported and not EPFNOSUPPORT!?

Revision 248 - Directory Listing
Modified Thu Aug 20 06:43:35 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Push off on Pipes until 0.5.2, possibly.

Revision 247 - Directory Listing
Modified Thu Aug 20 06:40:43 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
o) Add the SocketAddressFamilyIP type which auto-detects IPv4 or IPv6.
o) Pass the address as a hint to Socket::create where applicable.
o) Make socket_address::operator() use getaddrinfo(3) to find an appropriate
   address in the desired family and to handle family inference when passed
   AF_UNSPEC.
o) Remember the socket type and numeric protocol to facilitate getaddrinfo(3).
o) Reorder Socket::create to make it possible to determine which IP family to
   use based on an address hint passed in.
o) While here make Socket::create's protocol argument default to empty.
o) Don't pass an empty protocol by hand to Socket::create for Unix domain
   sockets anymore.
o) Make the WANProxy default configuration use the IP address family and the
   "localhost" name so that it uses IPv4 or IPv6 as appropriate for that
   system.

Revision 246 - Directory Listing
Modified Thu Aug 20 05:33:09 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Make encode_reference look more like encode_declaration.

Revision 245 - Directory Listing
Modified Thu Aug 20 00:37:32 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Use a more efficient segment-sized copyout() invocation that might just create
a reference rather than copying if we're lucky.

Revision 244 - Directory Listing
Modified Thu Aug 20 00:33:57 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Remove offset_seg_pair_t.

Revision 243 - Directory Listing
Modified Thu Aug 20 00:33:28 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Factor out encode_declaration() and encode_reference() from the main encode() body.

Revision 242 - Directory Listing
Modified Thu Aug 20 00:08:11 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Remove now-unused XCodecEncoder::Data class.

Revision 241 - Directory Listing
Modified Wed Aug 19 13:24:03 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Rewrite the XCodecEncoder encode function...
o) Do the entirety of processing in the first loop rather than processing
   references and then declarations.  This improves handling of in-stream
   collisions and references to data earlier in a stream.
   XXX This duplicates a lot of code.  Add a TODO item to clean it up.
o) Correct an implementation bug: when we have a collision, we should still
   check to see whether the last-known-good hash should be declared.
o) As a result of merging the loops add logic to handle adjacent hash collisions
   (and hits) gracefully.

The net effect of this is that performance may be slightly degraded in terms of
encode throughput (merging the loops was at first a boost in throughput but
handling edge cases and better encoding possibilities ate the increase) the
compression ratio for non-random, non-uniform data is significantly better than
previously, from 1% to 10% better in some tested data sets.  Random data should
be the same and veryuniform data sees a significant performance boost from the
elimination of the second loop (both in terms of eliminating the number of loops
and in terms of registering declarations earlier) -- about twice the throughput
of the previous encoder.

Revision 240 - Directory Listing
Modified Wed Aug 19 11:41:24 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Correct and add.

Revision 239 - Directory Listing
Modified Tue Aug 18 06:25:20 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Add a couple of ideas.

Revision 238 - Directory Listing
Modified Tue Aug 18 06:18:44 2009 UTC (12 months, 2 weeks ago) by juli
Original Path: trunk
Add a file in which to keep notes about future ideas.

Revision 237 - Directory Listing
Modified Mon Aug 17 10:48:05 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Only build address class and address family type if the io module is being
compiled in.

Revision 236 - Directory Listing
Modified Sun Aug 16 08:58:36 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Don't pass a prefix to the XCodec log handle.

Revision 235 - Directory Listing
Modified Sun Aug 16 07:09:08 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Thinking about XCodec now.

Revision 234 - Directory Listing
Modified Sat Aug 15 10:53:53 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Remove gratuitous vertical whitespace.

Revision 233 - Directory Listing
Modified Sat Aug 15 10:51:41 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Give a hint as to why a socket could not be created.

Revision 232 - Directory Listing
Modified Sat Aug 15 10:40:15 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Add a UDPServer and a UDP client-server test.

Revision 231 - Directory Listing
Modified Sat Aug 15 10:30:56 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Note my unhappiness with doing an extra copy of read data.

Revision 230 - Directory Listing
Modified Sat Aug 15 10:26:35 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Add EOS suppport to Pipes.
o) Update TODO for EOS support being done and explain what I mean wrt flush.

Revision 229 - Directory Listing
Modified Sat Aug 15 10:07:21 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Add a cat-like (well, not really) program that passes its stdin to its stdout
   via a PipeNull and which is useful for benchmarking the event system, IO,
   Pipe, Buffer, etc. (about 10% of cat(1) right now), and which clearly
   illustrates the need for a way to signal EOF to a Pipe and to get EOS back
   from one.

Revision 228 - Directory Listing
Modified Sat Aug 15 09:09:43 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Think about PipeEndpoints.

Revision 227 - Directory Listing
Modified Sat Aug 15 08:42:16 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Fix a shadowing error in PipeNull.
o) Add a bidirectional Pipe interface: PipePair.
o) Add an echo PipePair and a test for it.

Revision 226 - Directory Listing
Modified Sat Aug 15 00:51:50 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Add a Pipe mechanism which will be used for producer-consumer interfaces, if all
goes well.  Also include a pass-through Pipe and a test that exercises it.

Revision 225 - Directory Listing
Modified Sat Aug 15 00:46:35 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Do not allow passing a Buffer pointer to an Event().  Prevents accidentally
   passing the Buffer * via data_ instead of buffer_.

Revision 224 - Directory Listing
Modified Fri Aug 14 22:57:24 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Move up doing producer/consumer stuff.

Revision 223 - Directory Listing
Modified Thu Aug 13 07:25:12 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Update.

Revision 222 - Directory Listing
Modified Thu Aug 13 07:24:27 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Support using service names.
o) Give some informative errors if hosts/services are invalid.

Revision 221 - Directory Listing
Modified Thu Aug 13 07:14:35 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Note SOCKS IPv6 support.

Revision 220 - Directory Listing
Modified Thu Aug 13 07:14:22 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
IPv6 support seems to mostly be there.

Revision 219 - Directory Listing
Modified Thu Aug 13 07:13:54 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Unbreak validity-checking of IPv6.

Revision 218 - Directory Listing
Modified Thu Aug 13 07:12:35 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Support IPv4 and IPv6 get*name() in a sane-ish manner.
o) Support IPv6 address parsing on non-Slowlaris systems.
o) Test TCP over IPv6.

Revision 217 - Directory Listing
Modified Thu Aug 13 06:55:39 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Turn some HALTs into ERRORs.

Revision 216 - Directory Listing
Modified Thu Aug 13 06:53:40 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Plan for 0.5.1.

Revision 215 - Directory Listing
Modified Thu Aug 13 06:53:01 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Move Socket{AddressFamily,Type} enums to new <io/socket_types.h> for
   consumers of the types but not the Socket API.
o) Make the configuration system use the SocketAddressFamily instead of its own
   hand-rolled thing.
o) Make the Unix client/server API ask for the SocketType since that can vary,
   but the SocketAddressFamily is implicit.
o) Make TCP* and UDP* API ask for the SocketAddressFamily.  The rest is implied.
o) Modify a test so that it will be possible to sneak IPv6 into it RSN.

Revision 214 - Directory Listing
Modified Thu Aug 13 06:16:52 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Remove unused include.

Revision 213 - Directory Listing
Modified Thu Aug 13 06:16:23 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Add enumerators for socket domains and types rather than using the
   Unix names everywhere.
o) Add a few stub IPv6 allusions.

Revision 212 - Directory Listing
Modified Thu Aug 13 01:38:40 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Put hostnames in brackets, just to be sure.

Revision 209 - Directory Listing
Modified Thu Aug 13 00:14:54 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Forcefully set the ConfigType pointer to NULL in case of failure sine GCC seems
to be confused about this in many versions.  XXX Would be nice to conditionalize
but it seems to be a great many versions, indeed.

Revision 208 - Directory Listing
Modified Wed Aug 12 23:44:19 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Nuke some now-irrelevant TODO items.

Revision 207 - Directory Listing
Modified Wed Aug 12 23:36:26 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Add some helper methods to simplify configuration classes.
o) Make ConfigObject a class not a struct and hide its implementation details a
   bit.

Revision 206 - Directory Listing
Modified Wed Aug 12 23:05:12 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
o) Switch to single-string connect() and bind().
o) Make ports strings.
o) Use getsockname() to construct the listening address if bind() with
   port of 0, rather than passing in a pointer to the port, simplifying
   the API for non-0 code.
o) Add getsockname() pass-through to TCPServer.

Revision 205 - Directory Listing
Modified Wed Aug 12 21:41:21 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Update TODO a bit.

Revision 204 - Directory Listing
Modified Tue Aug 11 02:11:00 2009 UTC (12 months, 3 weeks ago) by juli
Original Path: trunk
Fix heavy-handed :%s///.

Revision 203 - Directory Listing
Modified Thu Aug 6 23:56:04 2009 UTC (13 months ago) by juli
Original Path: trunk
Logic and consistency fixes for unix domain sockets.

Revision 202 - Directory Listing
Modified Thu Aug 6 23:54:28 2009 UTC (13 months ago) by juli
Original Path: trunk
Actually compile and compile-fix.

Revision 201 - Directory Listing
Modified Thu Aug 6 23:53:46 2009 UTC (13 months ago) by juli
Original Path: trunk
Add experimental AF_UNIX support; compile-tested.

Revision 200 - Directory Listing
Modified Thu Aug 6 23:47:23 2009 UTC (13 months ago) by juli
Original Path: trunk
Add compile-tested Unix domain socket support.  I'd like to make CLI<->WANProxy
use Unix domain sockets, and this also helps clarify how the Socket API and
implementation need to change to be more general.

Revision 199 - Directory Listing
Modified Thu Aug 6 22:40:17 2009 UTC (13 months ago) by juli
Original Path: trunk
Check in expansion of ConfigClassAddress to allow for fields necessary for use
of Unix domain sockets.

Revision 198 - Directory Listing
Modified Thu Aug 6 22:39:12 2009 UTC (13 months ago) by juli
Original Path: trunk
Call base class activation routine.

Revision 197 - Directory Listing
Modified Tue Aug 4 02:57:16 2009 UTC (13 months ago) by juli
Original Path: trunk
Blow up nicely if the Buffer * passed to write() is empty, instead of blowing
up in Buffer::skip() later on.

Revision 196 - Directory Listing
Modified Sun Aug 2 20:49:28 2009 UTC (13 months ago) by juli
Original Path: trunk
Make accept virtual.

Revision 195 - Directory Listing
Modified Sat Aug 1 09:00:38 2009 UTC (13 months ago) by juli
Original Path: trunk
Only ever try to read 64K onto the stack at a time.

Revision 194 - Directory Listing
Modified Sat Aug 1 08:47:49 2009 UTC (13 months ago) by juli
Original Path: trunk
Fix accidentally-aggressive s/Proxy/ProxySocks/g.

Revision 193 - Directory Listing
Modified Sat Aug 1 08:21:54 2009 UTC (13 months ago) by juli
Original Path: trunk
Make <algorithm> part of the common environment.

Revision 192 - Directory Listing
Modified Fri Jul 31 19:34:34 2009 UTC (13 months, 1 week ago) by juli
Original Path: trunk
Make close, read and write virtual.

Revision 191 - Directory Listing
Modified Thu Jul 30 10:03:03 2009 UTC (13 months, 1 week ago) by juli
Original Path: trunk
Record io's dependency on event and net's dependency on event and io.

XXX This approach is kind of ugly.  Perhaps just REQUIREMENTS or DEPENDENCIES
    or something and either make it hard to find out which library's requirement
    is unmet, or make it slightly less ugly at best, like, DEPENDENCIES+=io:net
    rather than IO_DEPENDENCIES+=net.  Almost better to just hard-code it.  But
    not quite.

Revision 190 - Directory Listing
Modified Thu Jul 30 09:58:09 2009 UTC (13 months, 1 week ago) by juli
Original Path: trunk
Add a hastily-tried way to ensure that library dependencies are honored.

Revision 189 - Directory Listing
Modified Thu Jul 30 09:52:08 2009 UTC (13 months, 1 week ago) by juli
Original Path: trunk
Stop using FreeBSD-like PROG_CXX variable and call it PROGRAM instead.

Revision 188 - Directory Listing
Modified Thu Jul 30 05:40:46 2009 UTC (13 months, 1 week ago) by juli
Original Path: trunk
Disable -g on SunOS systems since at least my OpenSolaris setup can't link with it.

Revision 187 - Directory Listing
Modified Thu Jul 30 05:13:54 2009 UTC (13 months, 1 week ago) by juli
Original Path: trunk
Do not assume that <stdarg.h> will be leaked into the namespace.

Revision 186 - Directory Listing
Modified Tue Jun 30 17:33:29 2009 UTC (14 months, 1 week ago) by juli
Original Path: trunk
Attempt to prioritize by way of hypothetical releases.

Revision 185 - Directory Listing
Modified Tue Jun 30 04:59:28 2009 UTC (14 months, 1 week ago) by juli
Original Path: trunk
Update.

Revision 184 - Directory Listing
Modified Tue Jun 30 04:50:13 2009 UTC (14 months, 1 week ago) by juli
Original Path: trunk
Remove FlowTables and the FlowMonitor since the new configuration format doesn't
support either yet.  They can come back when there's a reasonable integration
plan.

Revision 183 - Directory Listing
Modified Sun Jun 28 01:19:31 2009 UTC (14 months, 1 week ago) by juli
Original Path: trunk
Add config directory and mention os directory's non-use as yet.

Revision 182 - Directory Listing
Modified Sun Jun 28 00:54:19 2009 UTC (14 months, 1 week ago) by juli
Original Path: trunk
Add rather hackish proxy support for the new configuration system.

Revision 181 - Directory Listing
Modified Sun Jun 28 00:27:40 2009 UTC (14 months, 1 week ago) by juli
Original Path: trunk
Rather hackishly create SOCKS proxy listeners.

Revision 180 - Directory Listing
Modified Sat Jun 27 19:35:46 2009 UTC (14 months, 1 week ago) by juli
Original Path: trunk
Unify duplicated code from the various poll implementations into poll.h.

Revision 179 - Directory Listing
Modified Sat Jun 27 09:21:33 2009 UTC (14 months, 1 week ago) by juli
Original Path: trunk
Move program.mk into common/ to make tab-completion of programs/ less ugly and
to hide implementation details from the top-level file list.

Revision 178 - Directory Listing
Modified Fri Jun 26 06:19:10 2009 UTC (14 months, 1 week ago) by juli
Original Path: trunk
Small steps towards proxy activation.

Revision 177 - Directory Listing
Modified Tue Jun 16 03:09:11 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
o) Temporarily disable a destructor assertion in Config since we're not to the
   point of starting proxies, let alone shutting them down correctly.
o) Add skeleton proxy and proxy-socks ConfigClasses.

Revision 176 - Directory Listing
Modified Tue Jun 16 00:11:41 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
We implicitly make <string> a part of the standard environment for WANProxy by
needing it in <common/log.h>, so be explicit and put it in <common/common.h> since
it's basically indispensible like the logging and debugging stuff.  This allows
me to clean up recent confusion I've introduced about this in the config code.

Revision 175 - Directory Listing
Modified Mon Jun 15 23:02:27 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Remove TODO.  The remainder of the work is WANProxy-specific.

Revision 174 - Directory Listing
Modified Mon Jun 15 22:59:42 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Sketch codec configuration and uncomment relevant bits of wanproxy.conf.

Revision 173 - Directory Listing
Modified Mon Jun 15 17:54:18 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Support pointers to "None" as used in the wanproxy.conf.

Revision 172 - Directory Listing
Modified Mon Jun 15 17:53:08 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Add a WANProxy peer ConfigClass.

Revision 171 - Directory Listing
Modified Mon Jun 15 17:47:28 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
o) Add a network address ConfigClass.
o) Fix parsing of references to other configuration parameters.
o) Clean up some left-over ConfigClassString stuff in ConfigClassInt.
o) Add a stub WANProxy interface ConfigClass.
o) Comment out codec0 stuff since I want to take care of the rest of the
   stuff in wanproxy.conf first.

Revision 170 - Directory Listing
Modified Mon Jun 15 08:41:33 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Saner speculation as to class names.


Revision 169 - Directory Listing
Modified Mon Jun 15 08:36:45 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Get the class name from the ConfigClass rather than requiring it be passed down.

Revision 168 - Directory Listing
Modified Mon Jun 15 04:46:42 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Add an address family config type.

Revision 167 - Directory Listing
Modified Mon Jun 15 04:42:43 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Strike off a TODO item.

Revision 166 - Directory Listing
Modified Mon Jun 15 04:41:10 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Add a ConfigType for referencing another ConfigObject.

Revision 165 - Directory Listing
Modified Mon Jun 15 01:59:56 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Add untested reference resolution code.

Revision 164 - Directory Listing
Modified Sun Jun 14 22:06:14 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Stash the value string in the ConfigValue.

Revision 163 - Directory Listing
Modified Sun Jun 14 19:42:41 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
o) Add a templated enum config type.
o) Make log-level an enum.
o) Make Log::mask take a Log::Priority rather than a string for the log level.
o) Make example configuration use the new enum log-level rather than a string.

Revision 162 - Directory Listing
Modified Sun Jun 14 19:05:08 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Wrongly mark destructors for ConfigClass and ConfigType virtual to please GCC.

Revision 161 - Directory Listing
Modified Fri Jun 12 07:00:20 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Add a TODO just for config-related stuff.

Revision 160 - Directory Listing
Modified Fri Jun 12 06:38:27 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Add an untested integer type.

Revision 159 - Directory Listing
Modified Thu Jun 11 21:34:49 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
o) Add log-mask class.
o) Temporarily make the log mask itself a string rather than an enum since there
   is not yet a type for enums.

Revision 158 - Directory Listing
Modified Thu Jun 11 21:33:59 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Stash the correct string.

Revision 157 - Directory Listing
Modified Thu Jun 11 21:27:54 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Try writing a test class and type.

Revision 156 - Directory Listing
Modified Thu Jun 11 20:52:53 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Add an add_member method for adding members.  Change visibility of everything.

Revision 155 - Directory Listing
Modified Thu Jun 11 20:52:19 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Add commented-out import statements for each class that we need to support.

Revision 154 - Directory Listing
Modified Thu Jun 11 20:39:56 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Stash pointers back to the configuration in values and objects.

Revision 153 - Directory Listing
Modified Thu Jun 11 20:37:44 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Remove README now that the skeletal configuration stuff is in place.

Revision 152 - Directory Listing
Modified Thu Jun 11 20:33:19 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Flesh out more of the configuration system.

Revision 151 - Directory Listing
Modified Thu Jun 11 20:32:21 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Forward-declare Config before referencing it; print out the correct token in an
error.

Revision 150 - Directory Listing
Modified Thu Jun 11 08:29:49 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
I think it will be nice to copy values/scalars from other objects.

Revision 149 - Directory Listing
Modified Thu Jun 11 07:56:40 2009 UTC (14 months, 3 weeks ago) by juli
Original Path: trunk
Break configuration entirely:

Begin introducing the new configuration system.  Right now it does nothing, but
this is a promise to fix it real soon now.

Update the WANProxy configurator to use it and update wanproxy.conf to, as well.

Revision 148 - Directory Listing
Modified Wed Jun 10 07:03:51 2009 UTC (14 months, 4 weeks ago) by juli
Original Path: trunk
I think definitions need to go OOB, too.

Revision 147 - Directory Listing
Modified Tue Jun 9 07:25:20 2009 UTC (14 months, 4 weeks ago) by juli
Original Path: trunk
Add a README describing what the new config system should look like...

Revision 146 - Directory Listing
Modified Sat Jun 6 08:33:00 2009 UTC (15 months ago) by juli
Original Path: trunk
Remove zig-zag codec, which didn't prove even remotely useful.

Revision 145 - Directory Listing
Modified Fri May 8 08:44:33 2009 UTC (16 months ago) by juli
Original Path: trunk
Remove obsolete File interface.

Revision 144 - Directory Listing
Modified Sat Apr 25 05:51:52 2009 UTC (16 months, 1 week ago) by juli
Original Path: trunk
Nuke some whitespace.

Revision 143 - Directory Listing
Modified Fri Apr 24 21:14:45 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Try to compute the zig-zag table in a more novel way.  XXX It's pretty
non-optimal code, still, with too many edge cases.

Revision 142 - Directory Listing
Modified Fri Apr 24 03:53:47 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Add a comment about a minor epiphany I've had about how to do this.

Revision 141 - Directory Listing
Modified Thu Apr 23 19:20:41 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
When decoding ZZCodec data, fill up a BufferSegment at a time, rather than a
Buffer, since we can make the column size dependent on the BufferSegment length
and this is much quicker (due to avoiding the obvious indirection.)

Revision 140 - Directory Listing
Modified Thu Apr 23 19:15:55 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Reflect that XCodec is basically dependent on the BufferSegment length.

Revision 139 - Directory Listing
Modified Thu Apr 23 12:43:58 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
o) Add ZZCodec, which zig-zag transforms blocks of data.  This produces fewer
   hits overall when used with XCodec, including greatly-reduced collisions,
   which means it's probably better for repeated data, but worse for initial
   compression.  Need to investigate how it performs for small deltas.
o) Add zztack, which uses ZZCodec like tack uses XCodec.

Revision 138 - Directory Listing
Modified Wed Apr 22 07:15:25 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
o) Add verbosity levels, at 1+, display hashes and single characters, at 2+,
   display hexdumps of entire segments in hash declarations.

Revision 137 - Directory Listing
Modified Wed Apr 22 06:28:24 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Add a partly-formulated idea.

Revision 136 - Directory Listing
Modified Tue Apr 21 08:34:30 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Add missing Makefile.

Revision 135 - Directory Listing
Modified Mon Apr 20 23:31:58 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Add more comments.

Revision 134 - Directory Listing
Modified Mon Apr 20 20:55:26 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Add the xcdump program, a WIP that will humanize an XCodec stream.

Revision 133 - Directory Listing
Modified Sat Apr 18 08:23:27 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Mention switching to getnameinfo(3).

Revision 130 - Directory Listing
Modified Sat Apr 18 04:50:48 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Undo some gratuitous double-quoting of things including a path, which was not
done consistently enough, and which BSD Make doesn't really support internally
well enough, that was originally done when working on Interix support, where it
turned out to be advantageous all around to just build in /tmp or somewhere else
that wasn't going to have a space in its path.

Revision 129 - Directory Listing
Modified Sat Apr 18 04:05:51 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
o) Set OSNAME in program.mk rather than in each library that needs it.
o) If running OpenBSD, disable -Werror, since OpenBSD has an ancient compiler
   that bogusly warns about private destructors without any defined friends.

Revision 128 - Directory Listing
Modified Sat Apr 18 01:23:26 2009 UTC (16 months, 2 weeks ago) by juli
Original Path: trunk
Make everything build on OpenSolaris.
o) Include <errno.h> in cases where the extern definition of errno may be
   needed, in addition to <sys/errno.h>.
o) Remove serial interface support code, it has not been needed and will not
   likely be needed in the WANProxy repository.
o) On SunOS, add -lnsl and -lsocket when using IO routines as networking
   support requires them.
o) On SunOS, like on Linux, do not populate a 'len' field of a socket address.
o) Mark a bad assertion with a comment.
o) Don't use gethostbyname2(3) on SunOS, sigh.  Would be good to write a
   simple non-blocking resolver anyway...
o) Attempt to use the SunOS method of endianness-determination at compile
   time.  Hopefully I got that right.

Revision 127 - Directory Listing
Modified Wed Apr 15 08:48:31 2009 UTC (16 months, 3 weeks ago) by juli
Original Path: trunk
Add missing includes of unistd.h for close and usleep.

Revision 126 - Directory Listing
Modified Tue Apr 7 09:32:29 2009 UTC (17 months ago) by juli
Original Path: trunk
Add a TODO to finally tackle the problem of IPv6, lack of a good network address
representation, etc.

Revision 125 - Directory Listing
Modified Tue Apr 7 07:58:30 2009 UTC (17 months ago) by juli
Original Path: trunk
Move the Timer class to the common module from the event module.  It is a more
logical fit there with other general facilities like logging and buffers than
with the event system, which it has no direct relation to.  This also means that
in the future the test code can do timing tests (since test support is in
common as well) and that tack now builds no gratuitous code.

Revision 124 - Directory Listing
Modified Tue Apr 7 07:54:55 2009 UTC (17 months ago) by juli
Original Path: trunk
Move networking-specific code out to 'net' library.  Mostly wrappers for now,
but I'm sure that will change.

Revision 123 - Directory Listing
Modified Thu Apr 2 00:47:10 2009 UTC (17 months ago) by juli
Original Path: trunk
A better default configuration, maybe.

Revision 122 - Directory Listing
Modified Tue Mar 31 09:35:03 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Delete listeners, etc., on shutdown.

Revision 121 - Directory Listing
Modified Tue Mar 31 06:09:53 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Change the stop-handling API to a general register_interest API that can
register interest in all sorts of one-shot events.  For now, just support the
EventInterestStop interest type.  Others that are likely include
EventInterestIdle for when there's no events pending, EventInterestLowMemory for
when memory is becoming scarce, etc.

Revision 120 - Directory Listing
Modified Tue Mar 31 05:41:26 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Add stopping of ProxyClients.

Revision 119 - Directory Listing
Modified Tue Mar 31 05:28:57 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Add stop handlers for the proxy listeners and the flow monitor.

Revision 118 - Directory Listing
Modified Tue Mar 31 05:28:24 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Make poll and select EventPoll implementations friendly to EINTR like kqueue.

Revision 117 - Directory Listing
Modified Tue Mar 31 05:26:07 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
o) When deleting a CallbackQueue, make sure it's empty.
o) Make CallbackQueue::empty() const.
o) Add a SIGINT handler and a mechanism to stop and register for callback on
   stop of the Event System.
o) The TimeoutQueue::perform function should always drain and remove its
   CallbackQueue if it executes one at all.  No need for all the back and forth
   if there are multiple timeouts that expire at the same time.
o) Make it okay for kqueue to return EINTR.
o) Only claim that a TimeoutQueue is not empty if at least one of its
   CallbackQueues is empty.  The comment that used to be here was right --
   since items can be removed from those queues by a cancel, it's important to
   actually check.

Revision 116 - Directory Listing
Modified Mon Mar 30 04:10:52 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Drop references in the cache and then clear the hash map out, rather than
erasing and dropping reference on an entry at a time.  The new way seems to be
quite a lot faster.

Revision 115 - Directory Listing
Modified Sat Mar 28 07:57:56 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Drop references to BufferSegments appropriately.  Thanks, Valgrind!

Revision 114 - Directory Listing
Modified Sat Mar 28 07:03:25 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Drop references to BufferSegments as they are evicted from the XCodecWindow.

Revision 113 - Directory Listing
Modified Sat Mar 28 06:15:36 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Drop references when destroying the cache.

Revision 112 - Directory Listing
Modified Fri Mar 27 07:50:58 2009 UTC (17 months, 1 week ago) by juli
Original Path: trunk
Fix build with GCC 4.4, note some flags that may be useful in the future, etc.
Instead of including common/log.h and common/debug.h on the command line, just
include common/common.h, and let that include headers that are globally-desired,
namely stdint stuff and common/log.h and common/debug.h.  Elsewhere, include
headers that are required at least with GCC 4.4 at least in GNU++0x mode to get
certain functions and constants to be visible.

Revision 111 - Directory Listing
Modified Sun Mar 22 23:57:11 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Don't use File when we basically want synchronous file semantics.  (Especially
since poll doesn't seem to work right on Files.)  Use an fstream to read the
config file.

Revision 110 - Directory Listing
Modified Sun Mar 22 20:30:33 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Add a CLI TODO.

Revision 109 - Directory Listing
Modified Sun Mar 22 10:31:37 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Add a hackish EventPoll implementation using select(2).  I hate select(2).

Revision 108 - Directory Listing
Modified Sun Mar 22 07:59:11 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Remove the tcache subsystem until something is going to use it.

Revision 107 - Directory Listing
Modified Sun Mar 22 07:58:49 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Describe layout.

Revision 106 - Directory Listing
Modified Sat Mar 21 10:03:41 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Add a UDPClient.

Revision 105 - Directory Listing
Modified Sat Mar 21 07:06:34 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Add a comment.

Revision 104 - Directory Listing
Modified Sat Mar 21 06:05:27 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Trim elements from the tokens deque as they are processed, rather than
hand-coding offets.  This will make it easier to write helper rouintes
for extracting common configuration elements.

Revision 103 - Directory Listing
Modified Sat Mar 21 05:54:42 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Use a deque rather than a vector for tokens.

Revision 102 - Directory Listing
Modified Sat Mar 21 05:01:20 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Use slightly less obscure names for the various XCodec components.

Revision 101 - Directory Listing
Modified Sat Mar 21 02:12:20 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Quote paths which could include spaces.

Revision 100 - Directory Listing
Modified Fri Mar 20 10:54:09 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Update TODO and *really* fix clock_gettime detection.

Revision 99 - Directory Listing
Modified Fri Mar 20 10:46:45 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
o) Use our own clean target rather than hoping bsd.obj.mk will do it.
o) Define a no-action regress target for programs.

Revision 98 - Directory Listing
Modified Fri Mar 20 10:46:04 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Use the correct scheme to detect presence of clock_gettime(3).

XXX Does not try to detect available monotonic clock feature.

Revision 97 - Directory Listing
Modified Fri Mar 20 10:45:27 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
On Linux use librt for clock_gettime.

Revision 96 - Directory Listing
Modified Fri Mar 20 01:23:50 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Add a comment.

Revision 95 - Directory Listing
Modified Fri Mar 20 01:22:56 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
o) Use typedefs for offset-hash and offset-seg pairs rather than spelling
   out the full template every time.
o) Don't leak a refernece to a BufferSegment if there's a first-pass
   collision.
o) Remove some comments from the block before the main encode function
   which are being replaced by inline comments reflecting where work can
   be done or where it has been done.  Namely:
o) Comment where we should be (first) caching the database_ presense, so we
   avoid having to search the giant hash when we already know the results in
   a more local context.
o) Don't add redundant possible-declarations to the offset-hash map.  Also
   note where it is possible to do declarations in the first pass without
   resorting to the second pass.

The last item results in a 30% performance boost (statistically significant)
on random data and no statistically significant performance change on zero
data.

Revision 92 - Directory Listing
Modified Thu Mar 19 09:34:26 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Correctly escape short data.

Revision 91 - Directory Listing
Modified Thu Mar 19 08:47:55 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Remove hash printing code.

Revision 90 - Directory Listing
Modified Thu Mar 19 08:47:29 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Explicitly construct timeout_queue_.

Revision 89 - Directory Listing
Modified Thu Mar 19 04:58:49 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Use a typedef for a typedef rather than silly struct inheritance.

Revision 88 - Directory Listing
Modified Thu Mar 19 00:53:34 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Fix include guard spelling.

Revision 86 - Directory Listing
Modified Thu Mar 19 00:43:11 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Increase the backref window size by one.  This breaks interoperability.

Revision 85 - Directory Listing
Modified Thu Mar 19 00:27:24 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Remove dead include.

Revision 84 - Directory Listing
Modified Wed Mar 18 19:28:24 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
o) Fold XCodecSlice into XCodecEncoder.
o) Make XCodecEncoder::encode() the equivalent of XCodecSlice::process()
   followed by XCodecSlice::encode().  This gets rid of some intermediate
   data structure usage and makes our performance better than the old
   XCodecEncoder, in a single, reasonable function that is well-commented.

Revision 83 - Directory Listing
Modified Wed Mar 18 19:13:23 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
o) Reserve the correct amount for the data_ vector.
o) Get rid of the XCodecSlice::prefix_.

Revision 82 - Directory Listing
Modified Wed Mar 18 19:07:58 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
o) Don't make XCodecSlice create more XCodecSlices, there's no need.  We've
   now well-encapsulated the child data, so create an XCodecSlice::Data
   struct to reflect that, much like xcodec_slice.
o) Make the children just a vector of XCodecSlice::Datas.
o) Make declarations_ a std::set since the Data will have a BufferSegment.
o) Get rid of the type_ of XCodecSlice now.
o) Hash all input, not all but the last XCODEC_SEGMENT_LENGTH.
o) Since we're no longer recursive, we can make decisions when outputting the
   references in encode()...
o) Copy the declarations_ set to a local variable called 'need_declared' in
   encode so that we can output declarations when they are referenced, and be
   sure to output them only once.  This restores locality of reference.  It
   also puts us back in the situation where we wonder if we need to make a
   DECLARE/HASHREF pair, or if we can have DECLARE imply HASHREF.

Revision 81 - Directory Listing
Modified Wed Mar 18 19:03:06 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Print out the hashes in a mismatch.

Revision 80 - Directory Listing
Modified Wed Mar 18 18:13:03 2009 UTC (17 months, 2 weeks ago) by juli
Original Path: trunk
Choose the correct boundary for the 'base' variable.

Revision 79 - Directory Listing
Modified Wed Mar 18 10:20:05 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Update TODO.

Revision 78 - Directory Listing
Modified Wed Mar 18 10:19:20 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Don't include <deque> here.

Revision 77 - Directory Listing
Modified Wed Mar 18 10:18:32 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Double performance on random data by not using a map<> where we can ensure
ordering otherwise, and don't need random-access.  For now, use a deque.

Revision 76 - Directory Listing
Modified Wed Mar 18 09:53:43 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Fix some style bugs, mostly in comments.

Revision 75 - Directory Listing
Modified Wed Mar 18 09:48:06 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Get rid of wonky reordering, etc., and improve performance 4x.

Revision 74 - Directory Listing
Modified Wed Mar 18 09:27:42 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Write the new slice/encoder.

o) Track declarations needed by a slice and its children.
o) Look for redundant data using algorithms explained in the code.
o) Get rid of trying to slice the data up into smaller working units.  The
   only gains that gives are related to locality of reference, which is
   absolutely broken now, but likely to be fixed.

Performance is below that of the old encoder by a few times in the case of
data with a lot of redundancy, but it's probably fairly easy to fix that,
at least for some data sets.  Comments explain the plan-of-action and the
perceived problem space.

Random data performs about as well, it seems, in terms of streaming rate.

And even if performance is worse, that's to be expected since there's no
more crazy inlining, and probably a worthwhile trade-off since this version
of the encoder is humanly-comprehensible (and full of almost-useful
comments.)

Revision 73 - Directory Listing
Modified Wed Mar 18 09:13:50 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Do the right thing if a hash is in the window twice.

Revision 72 - Directory Listing
Modified Wed Mar 18 09:10:48 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Add a Buffer::moveout variant to yield the first BufferSegment.

Revision 71 - Directory Listing
Modified Tue Mar 17 22:19:00 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
o) Start work on a class that slices up input so it can be encoded optimally.
   For now it just escapes everything.
o) Rename XCODEC_CHUNK_LENGTH to XCODEC_SEGMENT_LENGTH.

Revision 70 - Directory Listing
Modified Tue Mar 17 09:28:00 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Use a dummy encoder that just escapes special characters.  The encoder is
going to be rewritten over the next few days and having a blank slate helps
me focus.

Revision 69 - Directory Listing
Modified Tue Mar 17 09:27:27 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Don't name unused argument.

Revision 68 - Directory Listing
Modified Tue Mar 17 03:46:18 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
If NDEBUG is not set, set -g.

Revision 67 - Directory Listing
Modified Sun Mar 15 06:48:13 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Add a desperately-desired item.

Revision 66 - Directory Listing
Modified Sun Mar 15 06:40:59 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Vastly improve the decoder despite keeping it mostly the same:
o) Be more tolerant of errors in the stream, and don't use exceptions
   to detect them.  Most importantly, don't crash because of them.
o) Keep track of the number of bytes in the input Buffer and use that
   to figure out how long to loop, etc., rather than looking into the
   Buffer all the time to figure out whether it's empty (and sometimes
   what its length is.)
o) Loop over un-escaped non-special data aggressively.  There's going to
   be some in every stream and we should process it well.
o) Don't leak segments in the event that some errors occur.

This translates into a slight performance increase (less slight with some
workloads), a huge reliability boost and a good chance to improve the
comments and clarity of the code.

Revision 65 - Directory Listing
Modified Sun Mar 15 06:33:52 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Add an option, -Q, to output nothing at all.

Revision 64 - Directory Listing
Modified Sun Mar 15 02:51:49 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
o) Don't use bsd.prog.mk where bsd.subdir.mk is desired.
o) Make TCPClient just give the user a Socket.  There's no reason they
   would want to have to go through some silly wrapper class.
o) Get rid of a warning in file.cc by returning NULL if HALT()<< for
   some incomprehensible reason doesn't return.  I hate GCC.
o) Make TCPClient::connect ASSERT that it can get a Socket rather than
   having it return NULL, since nobody checks its return value anyway.
o) Make program.mk not rely on bsd.prog.mk (just bsd.obj.mk.)
o) Crank up warnings a bit.

Revision 63 - Directory Listing
Modified Sun Mar 15 02:24:55 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Default to C99 compilation on systems that support CSTD.

Revision 62 - Directory Listing
Modified Sun Mar 15 02:24:37 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Default to kqueue(2) on FreeBSD and Darwin, poll(2) elsewhere.

Revision 61 - Directory Listing
Modified Sat Mar 14 05:05:01 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Document some thinking on a recent TODO item.

Revision 60 - Directory Listing
Modified Fri Mar 13 06:40:22 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Rename sets of listeners to be more appropriate.

Revision 59 - Directory Listing
Modified Fri Mar 13 06:32:04 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Use gethostbyname2.

Revision 58 - Directory Listing
Modified Thu Mar 12 23:40:57 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Don't COW a BufferSegment just because we'd like to append to it.
Leave it shared and create a new BufferSegment.

Revision 57 - Directory Listing
Modified Thu Mar 12 23:17:09 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Update TODO.

Revision 56 - Directory Listing
Modified Thu Mar 12 22:10:06 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
Start playing around with XML serialization of flow information.  This
will be useful when there's a socket front-end to the flow monitor.

Revision 55 - Directory Listing
Modified Thu Mar 12 04:09:25 2009 UTC (17 months, 3 weeks ago) by juli
Original Path: trunk
o) Make the Event callback system no longer require a void * user data argument.
   Instead, provide two callback classes, one with a user-specified argument, one
   with none and one with an argument type specified by a template parameter.
   For now the only consumer of user-specified arguments still uses a void *.

Revision 54 - Directory Listing
Modified Mon Mar 9 18:35:27 2009 UTC (17 months, 4 weeks ago) by juli
Original Path: trunk
o) If a segment is already in the database, use the copy of it from the database
   for the backref window, rather than keeping around a gratuitous copy.
o) Remove some stale comments.

Revision 53 - Directory Listing
Modified Sat Mar 7 07:48:12 2009 UTC (18 months ago) by juli
Original Path: trunk
Fix compilation on (stupid) systems where ntohs is a macro.

Revision 52 - Directory Listing
Modified Sat Mar 7 04:40:20 2009 UTC (18 months ago) by juli
Original Path: trunk
Remove unused include.

Revision 51 - Directory Listing
Modified Sat Mar 7 04:38:41 2009 UTC (18 months ago) by juli
Original Path: trunk
o) Make it possible to get the underlying Socket from a TCPClient.
o) Add getpeername() and getsockname() to Socket, returning strings.
o) Handle EOS in ProxySocksConnection for when a client goes away before
   it finishes authenticating and connecting outwards.
o) Add a FlowTable structure for registering flows.
o) Parameterize proxy listeners and such with a FlowTable.
o) Make ProxyClient manage flow table entries.
o) Pass Sockets around rather than Channels where we want to be able to
   do things like getpeername()/getsockname().
o) Fix WANProxyConfig log handle.
o) Create a FlowMonitor which reports on flow table entries.
o) Add flow-monitor and flow-table commands to start a FlowMonitor and to
   create FlowTables.
o) Make proxies specify which FlowTable their clients go into.

Revision 50 - Directory Listing
Modified Sat Mar 7 04:32:27 2009 UTC (18 months ago) by juli
Original Path: trunk
Temporarily back out r45.

Revision 49 - Directory Listing
Modified Fri Mar 6 10:05:53 2009 UTC (18 months ago) by juli
Original Path: trunk
Fix code to correctly handle priority masks.

Revision 48 - Directory Listing
Modified Fri Mar 6 08:05:45 2009 UTC (18 months ago) by juli
Original Path: trunk
Update TODO.

Revision 47 - Directory Listing
Modified Thu Mar 5 20:14:26 2009 UTC (18 months ago) by juli
Original Path: trunk
Use gettimeofday if clock_gettime / CLOCK_MONOTONIC is not available.

Revision 46 - Directory Listing
Modified Thu Mar 5 11:21:02 2009 UTC (18 months ago) by juli
Original Path: trunk
o) Consolidate all of the decoder funcitons into the decode() function for now.
o) Add some DEBUG if we decode only some data due to there not being enough buffered
   to decode the current command.
o) Use the existing seg if we're trying to enter a sum that already exists (and is
   correct) in the database.

XXX Really should rewrite encoder and decoder at some point.  Or at least make it so
    the decoder fails more gracefully.

XXX I did this work in search of an infinite loop due to a ESCAPE at end of input.
    How did it get there!?  Is there an encoder bug?  Could not reproduce.

Revision 45 - Directory Listing
Modified Thu Mar 5 11:16:45 2009 UTC (18 months ago) by juli
Original Path: trunk
Handle the decoder failing gracefully.

Revision 44 - Directory Listing
Modified Thu Mar 5 11:16:22 2009 UTC (18 months ago) by juli
Original Path: trunk
o) ASSERT that we're not trying to skip bytes on an empty Buffer.
o) Return immediately if we're just clearing a whole Buffer in trim/skip.

Revision 43 - Directory Listing
Modified Thu Mar 5 05:43:59 2009 UTC (18 months ago) by juli
Original Path: trunk
o) In polling code, if idle sleep using usleep/nanosleep if a wait is
   okay, rather than spinning.
o) Whitespace cleanup.
o) Add an example program for timeout usage.
o) Fix timeout interval calculation.
o) Fix NanoTime conditionals.

Revision 42 - Directory Listing
Modified Thu Mar 5 04:15:05 2009 UTC (18 months ago) by juli
Original Path: trunk
o) Use millisecond waits and timeouts.
o) Internally use a monotonic nanosecond clock for TimeoutQueues.

Revision 41 - Directory Listing
Modified Thu Mar 5 03:45:50 2009 UTC (18 months ago) by juli
Original Path: trunk
Add mistakenly-omitted Makefile.

Revision 40 - Directory Listing
Modified Thu Mar 5 02:39:39 2009 UTC (18 months ago) by juli
Original Path: trunk
o) Create Adler64 from Adler32.
o) Reimplement XCHash in terms of Adler64 with a custom functor to
   mix the internal state.

Revision 39 - Directory Listing
Modified Thu Mar 5 02:21:51 2009 UTC (18 months ago) by juli
Original Path: trunk
Add Adler32.

Revision 38 - Directory Listing
Modified Thu Mar 5 02:05:02 2009 UTC (18 months ago) by juli
Original Path: trunk
Close a race whereby:

	1) Channel X closes its file descriptor, N.
	2) An Event::Done for close is queued.
	3) A pending callback which creates a socket is called, which is given
	   file descriptor N, since it's free.  This would blow up since when
	   the channel attaches to the socket, N will be found to be in use by
	   the IOSystem.  Even if it didn't blow up:
	4) The Event::Done for the close is delivered, channel X detaches from
	   socket N and finds it is not closed anymore.

Do this by keying the IOSystem's Handle map with a std::pair of file descriptor
and Channel.  This may even allow for Channels to pass file descriptors to each
other if we get rid of the need to close before detach.

Revision 37 - Directory Listing
Modified Thu Mar 5 01:02:32 2009 UTC (18 months ago) by juli
Original Path: trunk
Comment a race I noticed last night.

Revision 36 - Directory Listing
Modified Wed Mar 4 09:13:44 2009 UTC (18 months ago) by juli
Original Path: trunk
Add a singleton IOSystem which manages IO requests (close/read/write.)  It may
at some point use lio_listio or similar to batch up IO requests.  This moves
some code out of FileDescriptor.  It also means we have to remove some
assertions from Socket and FileDescriptor since they no longer have visibility
into close() calls.

Revision 35 - Directory Listing
Modified Wed Mar 4 02:57:29 2009 UTC (18 months ago) by juli
Original Path: trunk
Add the alg hierarchy to the build.

Revision 34 - Directory Listing
Modified Wed Mar 4 00:24:54 2009 UTC (18 months ago) by juli
Original Path: trunk
Add an IO grouping TODO.

Revision 33 - Directory Listing
Modified Tue Mar 3 09:12:43 2009 UTC (18 months ago) by juli
Original Path: trunk
Get rid of the unspecified-amount overload/default for read().  Explicitly
specify 0 for the read amount if there is no preference.

Revision 32 - Directory Listing
Modified Tue Mar 3 08:11:47 2009 UTC (18 months ago) by juli
Original Path: trunk
Add a command line option to dump timer samples.

Revision 31 - Directory Listing
Modified Tue Mar 3 06:45:00 2009 UTC (18 months ago) by juli
Original Path: trunk
Move HashMatch out as XCodecEncoderMatch.

Revision 30 - Directory Listing
Modified Tue Mar 3 05:31:57 2009 UTC (18 months ago) by juli
Original Path: trunk
Add a microsecond-sampling mechanism and use it to instrument tack.

Revision 29 - Directory Listing
Modified Tue Mar 3 04:24:38 2009 UTC (18 months ago) by juli
Original Path: trunk
Don't implement the decoder in a header.  It doesn't make a big difference in the
performance and complicates many other things.

Revision 28 - Directory Listing
Modified Sat Feb 28 01:32:13 2009 UTC (18 months, 1 week ago) by juli
Original Path: trunk
Create a directory for implementations of miscellaneous and marginally-useful algorithms.

Revision 27 - Directory Listing
Modified Sun Feb 22 22:24:38 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Use a simpler log message format.

Revision 26 - Directory Listing
Modified Sun Feb 22 18:53:18 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Remove debugging messages that will certainly run before log masks could be
configured.

Revision 25 - Directory Listing
Modified Sun Feb 22 18:51:48 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Add a facility to control the verbosity of the log with regular expressions.

Revision 24 - Directory Listing
Modified Sun Feb 22 07:59:03 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Grrr.  Definition of timeval isn't very standard, so just use %u.%06u and
cast to unsigned.  That'll be good enough for a long time.  (No pun intended.)

Revision 23 - Directory Listing
Modified Sun Feb 22 07:55:25 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Use tcpdump-style timeval timestamps of all log entries.

Revision 20 - Directory Listing
Modified Sun Feb 22 01:27:54 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Bump copyright.

Revision 19 - Directory Listing
Modified Sun Feb 22 01:24:18 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
When drain() is called, return immediately if we're already performing a
callback to tell ProxyClient why we'd like to disappear.

Revision 18 - Directory Listing
Modified Sun Feb 22 01:19:57 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Add a drain function to ProxyPipe that tells it there will be no more data
inbound for it and that it should finish writing its data and then disappear.

Call this from ProxyClient whenever we get flow_complete and there is an
active pipe.

Revision 17 - Directory Listing
Modified Sun Feb 22 00:58:02 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Pass errno when accept fails.

Revision 16 - Directory Listing
Modified Sun Feb 22 00:48:33 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
o) Add some more assertions to ProxyPipe around errors and cancelling.
o) When ProxyClient cancels us before we've told it we're done or there's an
   error we must cancel any outstanding actions.

Revision 15 - Directory Listing
Modified Sun Feb 22 00:30:09 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Disable SIGPIPE to work around a deficiency in ProxyPipe/ProxyClient.

Revision 14 - Directory Listing
Modified Sun Feb 22 00:21:59 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
o) If an accept fails in one of the listeners, we should keep trying to accept.
   XXX Maybe we need to check the errno.
o) Switch to the new ProxyPipe code and rewrite the ProxyClient for it.
o) Update TODO to mention a race that could lead to SIGPIPE.

Revision 13 - Directory Listing
Modified Sat Feb 21 10:19:13 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Start work on a ProxyPipe class, not hooked up to anything, to replace the ugly
hack that is ProxyPeer.  ProxyClient will instead work in terms of a pair of
pipes, I believe.

Revision 12 - Directory Listing
Modified Sat Feb 21 03:41:19 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
State my resounding confidence in the proxy code.

Revision 11 - Directory Listing
Modified Sat Feb 21 03:29:26 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Lazily SOCKS5 support.

Revision 10 - Directory Listing
Modified Fri Feb 20 13:26:48 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Fix accidental boolean inversion.

Revision 9 - Directory Listing
Modified Fri Feb 20 13:22:07 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
As in the case of a missing hash, give a failure for duplicate hash.

Revision 8 - Directory Listing
Modified Fri Feb 20 13:19:30 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
o) Temporarily make XCodecDecocer::decode return a boolean, false if there's a
   fatal error.  (Namely, that a hash could not be resolved, in which case we
   reset the connection.)
o) Reset the connection if decode fails, per above.

Revision 7 - Directory Listing
Modified Fri Feb 20 13:11:22 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Change priority of some INFO messages to DEBUG.

Revision 6 - Directory Listing
Modified Fri Feb 20 12:52:57 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Do as the XXX suggests and avoid starting the local peer until the remote peer
is connected.  Otherwise we would blow up when close_peer() is called while we
are still connecting to the remote peer.  Now, maybe the right thing to do is to
fix that case to work properly so we can buffer lots of data from a client that
is starting out with a lot of data, but really that's an uncommon case so for
now do the easy thing.

Revision 5 - Directory Listing
Modified Fri Feb 20 12:36:32 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Update TODO to reflect things that came up working on the SOCKS4 mode.

Revision 4 - Directory Listing
Modified Fri Feb 20 12:35:58 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
o) Add a parameter to Channel::read to take an amount to read, defaulting to 0,
   which retains the old behavior of reading whatever amount is available.
o) Implement new Channel::read semantics in FileDescriptor::read.  Add buffering
   to FileDescriptor.
   Note that this tries to only read the amount specified by the caller, which
   may not be most efficient, but may provide the right behavior in terms of
   not acknowledging data?
o) Add ugly hackish redundant APIs to support numeric IP addresses in addition
   to strings.
o) Use said ugly hackish API to implement a simple SOCKS4 proxy.  It's a very
   conservative proxy that tries to be discreet (in that it doesn't send errors
   to clients sending random requests.)
   XXX SOCKS5 would be nice.
o) Modify the default config to show chaining through to the SOCKS4 proxy.

Revision 3 - Directory Listing
Modified Tue Feb 17 03:23:58 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Comment BufferSegment functions and add a missing check in
BufferSegment::prefix().

Revision 2 - Directory Listing
Modified Mon Feb 16 08:42:45 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Nuke the history file.  This may not be a great idea, but I think that now that
Subversion is available publically it's pretty redundant.

Revision 1 - Directory Listing
Added Mon Feb 16 08:26:47 2009 UTC (18 months, 2 weeks ago) by juli
Original Path: trunk
Initial import of public WANProxy codebase.

Based on r238 in the Marvelous Proof repository.

  ViewVC Help
Powered by ViewVC 1.2-dev