Log of /releases/wanproxy-0.6.1
Directory Listing
Revision
414 -
Directory Listing
Modified
Thu Dec 10 18:04:44 2009 UTC
(8 months, 3 weeks ago)
by
juli
Add subdir.mk.
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, 2 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, 3 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, 3 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, 3 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
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.