Log of /trunk/io
Directory Listing
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.