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

Log of /releases/wanproxy-0.3.1

View Directory Listing Directory Listing


Sticky Revision:

Revision 94 - Directory Listing
Modified Thu Mar 19 22:25:01 2009 UTC (17 months, 2 weeks ago) by juli
Use a high log mask in a release build; also remove flow-monitor.

Revision 93 - Directory Listing
Modified Thu Mar 19 22:22:24 2009 UTC (17 months, 2 weeks ago) by juli
Copied from: trunk revision 92
Branch WANProxy 0.3.1.

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