Log of /releases/wanproxy-0.3.1
Directory Listing
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.