/[wanproxy]/trunk/io
ViewVC logotype

Log of /trunk/io

View Directory Listing Directory Listing


Sticky Revision:

Revision 477 - Directory Listing
Modified Wed Aug 18 20:52:28 2010 UTC (2 weeks, 5 days ago) by juli
Remove whitespace at end-of-line.

Revision 464 - Directory Listing
Modified Sat Aug 14 21:24:49 2010 UTC (3 weeks, 2 days ago) by juli
Decide how to handle PipePairs.

Revision 457 - Directory Listing
Modified Wed Aug 4 05:37:30 2010 UTC (4 weeks, 6 days ago) by juli
Assertions.

Revision 456 - Directory Listing
Modified Tue Aug 3 06:11:46 2010 UTC (5 weeks ago) by juli
Cancel shutdown actions.

Revision 455 - Directory Listing
Modified Tue Aug 3 05:26:28 2010 UTC (5 weeks ago) by juli
Make shutdown asynchronous.

Revision 452 - Directory Listing
Modified Wed Jul 28 07:18:31 2010 UTC (5 weeks, 6 days ago) by juli
Remove unused computation of read size, per Clang.

Revision 450 - Directory Listing
Modified Sun Jun 13 10:10:58 2010 UTC (2 months, 3 weeks ago) by juli
Fix offset calculation (i.e. actually do it.)

Revision 449 - Directory Listing
Modified Sun Jun 13 10:05:52 2010 UTC (2 months, 3 weeks ago) by juli
Turn an INFO into a DEBUG.

Revision 448 - Directory Listing
Modified Fri Jun 4 11:25:25 2010 UTC (3 months ago) by juli
Add a thread-unsafe but much more snappy lseek+writev implementation of pwritev.

Revision 447 - Directory Listing
Modified Fri Jun 4 11:19:22 2010 UTC (3 months ago) by juli
Simplify and add some assertions.

Revision 446 - Directory Listing
Modified Fri Jun 4 11:19:01 2010 UTC (3 months ago) by juli
Add a block write example (not correctness-tested yet.)

Revision 445 - Directory Listing
Modified Fri Jun 4 10:56:22 2010 UTC (3 months ago) by juli
Attempt to implement pwritev in terms of pwrite on systems lacking the former.

Revision 444 - Directory Listing
Modified Tue Jun 1 09:24:08 2010 UTC (3 months ago) by juli
o) Add an untested block device class.
o) Make Channel into a base class that only supports close and derive
   StreamChannel and BlockChannel from it to get I/O functionality.

Revision 443 - Directory Listing
Modified Tue Jun 1 09:10:22 2010 UTC (3 months ago) by juli
Make block size a protected member of a block channel.

Revision 442 - Directory Listing
Modified Tue Jun 1 09:07:20 2010 UTC (3 months ago) by juli
Teach the IOSystem about I/O with offsets.

Revision 439 - Directory Listing
Modified Mon May 31 10:12:18 2010 UTC (3 months, 1 week ago) by juli
Generalize EventCallback into TypedCallback, which takes a typed parameter
specified by the caller-back.

Revision 438 - Directory Listing
Modified Mon May 31 08:35:38 2010 UTC (3 months, 1 week ago) by juli
Sketch a possible interface for a block-oriented Channel.

Revision 431 - Directory Listing
Modified Thu Feb 25 09:38:59 2010 UTC (6 months, 1 week ago) by juli
o) Don't require an errno when constructing an Event.

Revision 429 - Directory Listing
Modified Thu Feb 18 19:24:36 2010 UTC (6 months, 2 weeks ago) by juli
Reword a comment.

Revision 427 - Directory Listing
Modified Thu Feb 18 19:19:54 2010 UTC (6 months, 2 weeks ago) by juli
Handle errors from the polling mechanism in the IOSystem.

While here, update a comment on why iovecs may be a problem for UDP.

Reported by:	David Keeffe

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

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

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

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

Revision 394 - Directory Listing
Modified Sun Nov 22 01:19:49 2009 UTC (9 months, 2 weeks ago) by juli
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
o) Add skeletal, hackish EOS support.
o) Expose some PipeSimple fields to subclassen.

Revision 391 - Directory Listing
Modified Sun Nov 22 00:00:38 2009 UTC (9 months, 2 weeks ago) by juli
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
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
Make it possible for PipeSimple::process() to fail!

Revision 387 - Directory Listing
Modified Sat Nov 21 23:40:48 2009 UTC (9 months, 2 weeks ago) by juli
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 338 - Directory Listing
Modified Fri Sep 25 23:35:18 2009 UTC (11 months, 1 week ago) by juli
Add <unistd.h> for *_FILENO on OpenBSD.

Revision 333 - Directory Listing
Modified Sun Sep 20 13:50:28 2009 UTC (11 months, 2 weeks ago) by juli
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
o) Add a TODO item.
o) Add a null-sink Pipe (PipeNull.)
o) Add an example program using PipeNull.

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

Revision 319 - Directory Listing
Modified Fri Sep 11 09:10:50 2009 UTC (11 months, 3 weeks ago) by juli
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
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
o) Institutionalize the SIGPIPE workaround.
o) Make the IO system announce itself like the Event system.

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

Revision 306 - Directory Listing
Modified Thu Sep 10 11:12:30 2009 UTC (11 months, 3 weeks ago) by juli
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
Note spontaneous data problems.

Revision 303 - Directory Listing
Modified Thu Sep 10 08:34:18 2009 UTC (11 months, 3 weeks ago) by juli
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
Add a PipeLink class which is a Pipe that pipes between two Pipes.

Revision 299 - Directory Listing
Modified Thu Sep 10 01:28:32 2009 UTC (11 months, 3 weeks ago) by juli
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 297 - Directory Listing
Modified Thu Sep 10 00:23:32 2009 UTC (11 months, 4 weeks ago) by juli
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
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
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
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
Add a comment.

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

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

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

Revision 274 - Directory Listing
Modified Sat Sep 5 22:11:18 2009 UTC (12 months ago) by juli
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
Hide IPv6 support if even AF_INET6 is undefined!

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

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

Revision 249 - Directory Listing
Modified Thu Aug 20 07:00:39 2009 UTC (12 months, 2 weeks ago) by juli
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 247 - Directory Listing
Modified Thu Aug 20 06:40:43 2009 UTC (12 months, 2 weeks ago) by juli
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 234 - Directory Listing
Modified Sat Aug 15 10:53:53 2009 UTC (12 months, 3 weeks ago) by juli
Remove gratuitous vertical whitespace.

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

Revision 231 - Directory Listing
Modified Sat Aug 15 10:30:56 2009 UTC (12 months, 3 weeks ago) by juli
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
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
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 227 - Directory Listing
Modified Sat Aug 15 08:42:16 2009 UTC (12 months, 3 weeks ago) by juli
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
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 222 - Directory Listing
Modified Thu Aug 13 07:24:27 2009 UTC (12 months, 3 weeks ago) by juli
o) Support using service names.
o) Give some informative errors if hosts/services are invalid.

Revision 218 - Directory Listing
Modified Thu Aug 13 07:12:35 2009 UTC (12 months, 3 weeks ago) by juli
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
Turn some HALTs into ERRORs.

Revision 215 - Directory Listing
Modified Thu Aug 13 06:53:01 2009 UTC (12 months, 3 weeks ago) by juli
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
Remove unused include.

Revision 213 - Directory Listing
Modified Thu Aug 13 06:16:23 2009 UTC (12 months, 3 weeks ago) by juli
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
Put hostnames in brackets, just to be sure.

Revision 206 - Directory Listing
Modified Wed Aug 12 23:05:12 2009 UTC (12 months, 3 weeks ago) by juli
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 203 - Directory Listing
Modified Thu Aug 6 23:56:04 2009 UTC (13 months ago) by juli
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
Actually compile and compile-fix.

Revision 201 - Directory Listing
Modified Thu Aug 6 23:53:46 2009 UTC (13 months ago) by juli
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
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 197 - Directory Listing
Modified Tue Aug 4 02:57:16 2009 UTC (13 months ago) by juli
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
Make accept virtual.

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

Revision 192 - Directory Listing
Modified Fri Jul 31 19:34:34 2009 UTC (13 months, 1 week ago) by juli
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
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 179 - Directory Listing
Modified Sat Jun 27 09:21:33 2009 UTC (14 months, 1 week ago) by juli
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 145 - Directory Listing
Modified Fri May 8 08:44:33 2009 UTC (16 months ago) by juli
Remove obsolete File interface.

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

Revision 129 - Directory Listing
Modified Sat Apr 18 04:05:51 2009 UTC (16 months, 2 weeks ago) by juli
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
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
Add missing includes of unistd.h for close and usleep.

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

Revision 112 - Directory Listing
Modified Fri Mar 27 07:50:58 2009 UTC (17 months, 1 week ago) by juli
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 106 - Directory Listing
Modified Sat Mar 21 10:03:41 2009 UTC (17 months, 2 weeks ago) by juli
Add a UDPClient.

Revision 64 - Directory Listing
Modified Sun Mar 15 02:51:49 2009 UTC (17 months, 3 weeks ago) by juli
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 61 - Directory Listing
Modified Sat Mar 14 05:05:01 2009 UTC (17 months, 3 weeks ago) by juli
Document some thinking on a recent TODO item.

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

Revision 55 - Directory Listing
Modified Thu Mar 12 04:09:25 2009 UTC (17 months, 3 weeks ago) by juli
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 53 - Directory Listing
Modified Sat Mar 7 07:48:12 2009 UTC (18 months ago) by juli
Fix compilation on (stupid) systems where ntohs is a macro.

Revision 51 - Directory Listing
Modified Sat Mar 7 04:38:41 2009 UTC (18 months ago) by juli
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 38 - Directory Listing
Modified Thu Mar 5 02:05:02 2009 UTC (18 months ago) by juli
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
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
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 33 - Directory Listing
Modified Tue Mar 3 09:12:43 2009 UTC (18 months ago) by juli
Get rid of the unspecified-amount overload/default for read().  Explicitly
specify 0 for the read amount if there is no preference.

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

Revision 4 - Directory Listing
Modified Fri Feb 20 12:35:58 2009 UTC (18 months, 2 weeks ago) by juli
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 1 - Directory Listing
Added Mon Feb 16 08:26:47 2009 UTC (18 months, 2 weeks ago) by juli
Initial import of public WANProxy codebase.

Based on r238 in the Marvelous Proof repository.

  ViewVC Help
Powered by ViewVC 1.2-dev