| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | 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 |
| | | |||
| * | freebsd workflow | Garrett D'Amore | 2024-12-21 |
| | | |||
| * | workflows: only generate docs when appropriate, and don't do tests when only ↵ | Garrett D'Amore | 2024-12-21 |
| | | | | | docs change | ||
| * | posix udp: stop the PFD explicitly before finalizing | Garrett D'Amore | 2024-12-21 |
| | | |||
| * | nuts: add 20 millisecond delay before nng_fini | Garrett D'Amore | 2024-12-21 |
| | | | | | | | This is to allow finalizers to run for the HTTP framework. This is a bug workaround for now, and should be fixed in the HTTP framework later by using reference counts correctly. | ||
| * | poll: fix poll based poller | Garrett D'Amore | 2024-12-21 |
| | | |||
| * | workflows: add pollq and make build debug for backtraces | Garrett D'Amore | 2024-12-21 |
| | | |||
| * | epoll: fixes for races and early wakeups | Garrett D'Amore | 2024-12-21 |
| | | |||
| * | posix: fix for IPC and TCP dialing | Garrett D'Amore | 2024-12-21 |
| | | | | | | The dialer aio needs to be set before starting the dial operation, as the operation may complete right away. | ||
| * | posix pollers: inline the pfd and make callbacks constant | Garrett D'Amore | 2024-12-20 |
| | | | | | | | | This change moves the posix pollers to inline the PFD and makes the callbacks constant, so that we can dispense with tests, failures, and locks. It is anticipated that this will reduce lock based pressure on the bus and increase performance modestly. | ||
