summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* Refactored file API.Garrett D'Amore2018-01-11
| | | | | | | | | This refactor of the file API provides a simpler and easier to use interface for our needs (and simpler to implement) in both the ZeroTier transport and the HTTP/TLS file accesses. It also removes some restrictions present on the old one, although it is still not suitable for working with large files. (It will work, just be very inefficient as the entire file must be loaded into memory.)
* Clarifications around nng_fini(), and remove old http_msg structure.Garrett D'Amore2018-01-10
|
* fixes #186 Suggested API changes for nng TLS certsGarrett D'Amore2018-01-09
|
* Add reference to pipeline protocol.Garrett D'Amore2018-01-09
|
* fixes #197 surveyor documentation (man pages) incorrectGarrett D'Amore2018-01-09
|
* fixes #196 surveyor pattern hangs after second surveyGarrett D'Amore2018-01-09
|
* Fix possible use-after-free reaping things using random.Garrett D'Amore2018-01-05
|
* Convert existing websocket and http code to use new URL framework.Garrett D'Amore2018-01-05
| | | | | | This also fixes a use-after-free bug in the HTTP framework, where the handler could be deleted why callbacks were still using it. (We now reference count the handlers.)
* Fix some more leaks, add a generic URL parser.Garrett D'Amore2018-01-05
|
* Fix leaks on send.Garrett D'Amore2018-01-03
| | | | | | | I'm pretty sure I need to go back and review the handling of send messages for websocket too. We still have a receive leak in websocket and leaks caused by the new URL parsing code which needs to be refactored.
* Fix websocket hang after sending one message.Garrett D'Amore2018-01-03
| | | | | | | | | | | | | This fixes a problem where the websocket would only send one message, then no others, due to not clearing the "frame" busy flag on completion of the frame transmit. We have also added a test that tries to send 10 messages back and forth to make sure that we catch this kind of problem in the future. Finally we've fixed some problems that were found when testing edge cases around the protocol, which were responsible for invalid memory accesses.
* Do not free the request structure on error -- the http server needs it.Garrett D'Amore2018-01-03
|
* Don't hold the lock while stopping HTTP!Garrett D'Amore2018-01-02
|
* fixes #191 Several HTTP problems foundGarrett D'Amore2018-01-02
| | | | | | | | | | | | | | | | First, httpbin.org was having some high latency (load) earlier today, so we needed to bump the timeout up. Next, this also uncovered a bug where our cancellation of http channels was a bit dodgy. This is changed to be a bit more robust, separating the "current" active http streams (for read or write) into separate tracking variables variables. Also, now cancellation immediately calls the aio finish for those -- there were assumptions elsewhere (expire timeouts) that cancellation caused nni_aio_finish() to be called. Finally there was a use after free bug in the websocket listener code where the listener could be freed while still having outstanding streams waiting to send the websocket reply.
* Websocket subprotocol not sent or checked.Garrett D'Amore2018-01-02
|
* Websocket handshake was broken (no base64 decode step needed).Garrett D'Amore2018-01-02
| | | | | Big thanks to @bertrand- for figuring this out, and a prototype of the fix.
* SHA1 should just use void * for message pointers in API.Garrett D'Amore2018-01-02
|
* Fix HTTP sconn race, and compile bugs introduced.Garrett D'Amore2018-01-01
|
* Add TLS configuration manipulation documentation.Garrett D'Amore2018-01-01
| | | | | | While here, also fixup the markup on many of the pages, to use commas in SEE ALSO, avoid adding the .adoc extension to cross-references, and correct the link to the MIT license text.
* Rename config init/fini to alloc/free, add documentation for them.Garrett D'Amore2017-12-31
|
* Add reference to websocket man page.Garrett D'Amore2017-12-30
|
* Bump version (0.2.0)0.2.0Garrett D'Amore2017-12-30
| | | | We forgot to bump for 0.1.0 even though we tagged.
* fixes #166 Websocket TLS mappingGarrett D'Amore2017-12-30
| | | | | | | | | | | | | | | | | This introduces the wss:// scheme, which is available and works like the ws:// scheme if TLS is enabled in the library. The library modularization is refactored somewhat, to make it easier to use. There is now a single NNG_ENABLE_TLS that enables TLS support under the hood. This also adds a new option for the TLS transport, NNG_OPT_TLS_CONFIG (and a similar one for WSS, NNG_OPT_TLS_WSS_CONFIG) that offer access to the underlying TLS configuration object, which now has a public API to go with it as well. Note that it is also possible to use pure HTTPS using the *private* API, which will be exposed in a public form soon.
* Attempt to use Ninja on AppVeyor, and shorten the build matrix.Garrett D'Amore2017-12-28
|
* Compile warning (possible size_t overrun) on Windows.Garrett D'Amore2017-12-28
|
* fixes #158 nni_plat_init: undefined return value if called from two threadsGarrett D'Amore2017-12-28
|
* fixes #172 HTTP and websocket need better conditional inclusionGarrett D'Amore2017-12-28
|
* CI updates.Garrett D'Amore2017-12-28
| | | | | | | | | This updates to use Circle CI by default, but we leave Travis in place (but only one default build and one coverage build) until we can move it. We also switch to using ninja for performance reasons. The hope is to get to using CircleCI for everything except Windows. The AppVeyor build needs cleanups and should switch to ninja later.
* Fix compilation warnings, bugs, and crashes found on Windows.Garrett D'Amore2017-12-28
| | | | | This addresses a number of problems that were found on Windows, including one bug that actually turned up in testing on POSIX.
* Fix zerotier compilation regression (caused by winsock changes).Garrett D'Amore2017-12-28
|
* fixes #169 document websocket transportGarrett D'Amore2017-12-27
|
* One more set of Windows fixes.Garrett D'Amore2017-12-27
|
* Compilation fixes for Windows.Garrett D'Amore2017-12-27
|
* fixes #180 add websocket header propertiesGarrett D'Amore2017-12-27
|
* fixes #165 Add address properties for websocket pipesGarrett D'Amore2017-12-26
|
* fixes #2 Websocket transportGarrett D'Amore2017-12-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a rather large changeset -- it fundamentally adds websocket transport, but as part of this changeset we added a generic framework for both HTTP and websocket. We also made some supporting changes to the core, such as changing the way timeouts work for AIOs and adding additional state keeping for AIOs, and adding a common framework for deferred finalization (to avoid certain kinds of circular deadlocks during resource cleanup). We also invented a new initialization framework so that we can avoid wiring in knowledge about them into the master initialization framework. The HTTP framework is not yet complete, but it is good enough for simple static serving and building additional services on top of -- including websocket. We expect both websocket and HTTP support to evolve considerably, and so these are not part of the public API yet. Property support for the websocket transport (in particular address properties) is still missing, as is support for TLS. The websocket transport here is a bit more robust than the original nanomsg implementation, as it supports multiple sockets listening at the same port sharing the same HTTP server instance, discriminating between them based on URI (and possibly the virtual host). Websocket is enabled by default at present, and work to conditionalize HTTP and websocket further (to minimize bloat) is still pending.
* Fix sha1 prototype.Garrett D'Amore2017-12-26
|
* Added SHA1 implementation and test suite.Garrett D'Amore2017-12-26
|
* Added base64 implementation, needed by websocket.Garrett D'Amore2017-12-26
|
* Fix cut'n'paste typoAndy Kirkham2017-12-12
|
* Minor markup tweaks to code-of-conduct.Garrett D'Amore2017-11-27
|
* Add code of conduct.Garrett D'Amore2017-11-27
|
* Minor README updates, including commercial support options.Garrett D'Amore2017-11-27
|
* fixes #160 Convert TLS url from tls:// to tls+tcp://Garrett D'Amore2017-11-27
|
* Minor language fix.0.1Garrett D'Amore2017-11-21
|
* Cope better with the net.h rename in mbedTLS 2.4.0.Garrett D'Amore2017-11-21
|
* Fixes for Circle environment.Garrett D'Amore2017-11-21
| | | | | | | | | The test suites run as root inside docker (?), so the files permission test needs to be skipped. Circle, like Travis, lacks support correct IPv6. I think this is because of basic deficiency in Amazon's EC2 product. Come on Amazon, it's 2017, you have to support IPv6!
* Another CircleCI swag.Garrett D'Amore2017-11-21
|
* More CircleCI tweaks.Garrett D'Amore2017-11-21
|
* Fix up YAML syntax for CircleCI.Garrett D'Amore2017-11-21
|