| Commit message (Collapse) | Author | Age | ||
|---|---|---|---|---|
| ... | ||||
| * | tls: use nni_aio_begin | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | http: No need to do nni_aio_begin for callbacks | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | udp: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | | | | | | This also moves the close of the UDP socket later, to avoid a potential use after free while the aio's are still in-flight. Unfortunately we cannot unbind cleanly without a hard close. | |||
| * | aio: nng_aio_defer replaced by nng_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | | | | | This represents an API change, and we remove the nng_aio_begin function as well, introducing the lightweight nng_aio_reset instead. | |||
| * | dialer: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | ipc: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | resolver: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | tcp: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | device: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | websocket: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | http: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | inproc: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | sockfd: convert to use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | aio: introduce nni_aio_reset to reset the aio before submitting more work | Garrett D'Amore | 2024-12-26 | |
| | | | | | | | This allows some use cases to reset things like the counts and outputs, before submitting more jobs. Providers should call this near the top of their functions; this is done without any locks so it should be very fast. | |||
| * | msg queue: use nni_aio_start | Garrett D'Amore | 2024-12-26 | |
| | | ||||
| * | aio: introduce NNG_ESTOPPED | Garrett D'Amore | 2024-12-26 | |
| | | | | | | | | | | | | This error code results when an AIO is stopped permanently, as a result of nni_aio_close or nni_aio_stop. The associated AIO object cannot be used again. This discrimantes against a file being closed, or a temporary cancellation which might allow the aio to be reused. Consumers must check for this error status in their callbacks, and not resubmit an operation that failed with this error. Doing so, will result in an infinite loop of submit / errors. | |||
| * | nni_aio_start: introduce nni_aio_start to replace aio_begin, schedule, and defer | Garrett D'Amore | 2024-12-26 | |
| | | | | | Also make nni_aio_sleep use it. | |||
| * | taskq: skip the lock/unlock if there is no callback | Garrett D'Amore | 2024-12-26 | |
| | | | | | | This should help some cases of synchronous callers that don't use a callback at all. | |||
| * | posix resolver: use nni_aio_defer | Garrett D'Amore | 2024-12-24 | |
| | | ||||
| * | msgq: use nni_aio_defer | Garrett D'Amore | 2024-12-23 | |
| | | ||||
| * | websocket test: workaround EADDRINUSE during tests | Garrett D'Amore | 2024-12-22 | |
| | | | | | | These failures are responsible for false SEGFAULTS during testing, as we wind up failing to listen and then proceeding anyway. | |||
| * | aio: introduce nni_aio_defer | Garrett D'Amore | 2024-12-22 | |
| | | | | | | | | | This will replace nni_aio_schedule, and it includes finishing the task if needed. It does so without dropping the lock and so is more efficient and race free. This includes some conversion of some subsystems to it. | |||
| * | posix tcp: use common refcnt implementation | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | port events poller (illumos/Solaris): use atomic events mask | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | epoll: use atomic event mask | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | pollers: use atomic bit masking operations to eliminate lockss | Garrett D'Amore | 2024-12-22 | |
| | | | | | This is done for kqueue and poll. Others coming soon. | |||
| * | ipc dialer: use common refcnt logic | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | test: fix valgrind complaint about unitialized test data in ipc test | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | dialer: configure default redial cool-down times (fixes #1964) | Garrett D'Amore | 2024-12-22 | |
| | | | | | | | | The missing default of zero leads to a hard spin and exhaustion of the open files (since reaping can take too long). The workaround is to configure these explicitly. | |||
| * | poll: sign extension bug + incorrect use leads to tiny max files on macOS | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | http: limit handler uri to 1K | Garrett D'Amore | 2024-12-22 | |
| | | | | | | | | | | | | This is just the part of the tree that will be matched when looking up a handler. Requests may come in with very much longer URIs, and be matched to the handler as a "subdirectory". This approach makes it possible to avoid a dynamic allocation on the handler, at the cost of pre-allocating 1KB with the handler object. This size can be overridden using a NNG_HTTP_MAX_URI at compile time. | |||
| * | http server test: fix leak in test | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | http: nng_http_handler_set_data is now void return (API break) | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | nng_http_server_collect_body now void return (API break) | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | http: handler set tree no longer returns a value (API break) | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | HTTP: nng_http_handler_set_method no longer fails | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | HTTP handler: limit host names to 256 bytes (RFC 1035 specifies 253.) | Garrett D'Amore | 2024-12-22 | |
| | | | | | This also makes `nng_http_handler_set_host` never fail (API break). | |||
| * | http: setting response status never fails (breaking API change) | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | http: method on request structure is now static | Garrett D'Amore | 2024-12-22 | |
| | | | | | | This saves yet another allocation. It also no longer returns a value making this a breaking change. | |||
| * | http handler: avoid method allocation | Garrett D'Amore | 2024-12-22 | |
| | | | | | | | | | | We limit HTTP method lengths to 32.. there are no currently defined HTTP methods that need more than 19 bytes (including trailing zero.) Generally most servers will not have vast numbers of handlers, so the cost of allocating some storage up front to avoid the dynamic allocation is worth while. | |||
| * | Updated information about dependencies. | Garrett D'Amore | 2024-12-22 | |
| | | | | We can support WolfSSL. We require C11. We don't support certain older operating systems. | |||
| * | Update release badges. | Garrett D'Amore | 2024-12-22 | |
| | | | | This sets up a pre-release bade and also shows the latest stable release. | |||
| * | HTTP: intern the version and avoid allocationv2.0.0-alpha.1 | Garrett D'Amore | 2024-12-22 | |
| | | | | | | | There are only a few possible reasonable values, and we can intern them to avoid any allocations for it. (We will probably do the same for the HTTP method shortly as well.) | |||
| * | Use the Linux logo instead of Ubuntu | Garrett D'Amore | 2024-12-22 | |
| | | ||||
| * | OmniOS tests (this covers illumos and Solaris mostly, which uses the port ↵ | Garrett D'Amore | 2024-12-21 | |
| | | | | | poller.) | |||
| * | posix IPv6: BSD platforms us netinet6/in6.h | Garrett D'Amore | 2024-12-21 | |
| | | ||||
| * | posix udp: AF_INET6 fixup | Garrett D'Amore | 2024-12-21 | |
| | | ||||
| * | Add freebsd status to README. | Garrett D'Amore | 2024-12-21 | |
| | | ||||
| * | posix udp: More explicit checks for bogus address family | Garrett D'Amore | 2024-12-21 | |
| | | | | | | This triggered an error on FreeBSD because apparently FreeBSD will return a different value when seeing an AF_UNIX socket with UDP. | |||
| * | files test: check to skip permissions before testing | Garrett D'Amore | 2024-12-21 | |
| | | ||||
