![]()
| Links to HEAD: | (view) (download) (as text) (annotate) |
| Sticky Revision: |
reno & vegas-style congestion control now working across multiple segments
Add LGPL copyright notices, update licensing info/explanation in README
Re-simplified connectTo() API to take only a single destination hint again; renamed awkward foundPeerEndpoint() to simpler connectAt().
Added API hooks for listen modes and receive buffer control
Beginnings of an SST-based secure remote shell - works, barely, but not really usable yet.
Prioritized web demo working! (Barely.)
Major overhaul of stream IDs and attachment mechanism, to correspond with the current version of the SST paper. got stream detachment and migration working in the process (streams automatically migate to new channels as necessary, e.g., when a host's underlying IP address changes).
big reorg merge: merge -r 1807:1841 branches/reorg branch->trunk
copy sst into branch
Got rid of DefaultHost class in favor of simply providing two alternative constructors in the basic Host class. Also, finished writing up a hopefully usable main page for the library API documentation.
Added a protocol name to the top-level service connectTo()/listen() API, so that a registered StreamServer is indexed by a (service,protocol) pair. This design makes it natural to allow a host to support multiple protocols, or incompatible protocol versions, that provide the same logical service, and eventually should allow users/administrators to browse and enable/disable complete logical services without necessarily having to know the details of which specific protocols are used to provide those services. The top-level stream API is now, I believe, pretty close to the way I want it and thus hopefully approaching some level of stability.
Ephemeral streams now work properly in the cases of: - small datagrams that fit in one packet - datagrams up to 64KB that get sent as substreams. Fragmentation and reassembly of intermediate-size datagrams is not implemented yet, and extremely large datagrams don't work because of outstanding issues in the stream init/attach state machine.
Added AbstractStream base class for internal control objects, in preparation for making datagrams look like "real" ephemeral streams.
Separated Stream class into two classes: one representing the object seen in the "public" API, the other holding the internal state. The internal BaseStream object can now stay around after the client has deleted the public Stream, in order to shut down the stream gracefully in the background.
Changed StreamServer and substream API to traditional accept() interface, instead of just passing the new Stream pointer directly in the signal. (Passing it in the signal is probably technically OK in the current context, but may create race conditions if extended across thread/process boundaries.)
Replaced readEnd(), writeEnd(), and close() with single shutdown() call mirroring the standard sockets API.
Start incrementally incorporating sst-reorg branch changes back into mainline
Wrapped everything in a top-level SST namespace for cleanliness. Also, got rid of the SHA256/384/512 code now that OpenSSL has it.
Fixes and minor reorganization for Netsteria integration
Moved SST tree into proper place in SVN repository
Worked on documentation a bit
Got prioritization working and graphed. YES!!!
Added support for asynchronous connect over existing flows.
fixed some performance bugs in congestion control, more remain...
Got key protocol switched over to new XDR stuff, checksum negotiation mostly implemented
Got static/global data encapsulated into new Host class so it should now be possible to run multiple SST instances together.
Made network sockets layer virtualizable
Replaced all direct uses of QTimer with new virtualizable Timer class
Copied SST parts of Netsteria snapshot-061231, to start working on standalone Qt-SST library and test code
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
| Maintained by PDOS | ViewVC Help |
| Powered by ViewVC 1.0.3 |