| Commit message (Collapse) | Author | Age | |
|---|---|---|---|
| * | ipc/tcp stream tests: use dup() to avoid confusion and hang in teardown | Garrett D'Amore | 2024-12-30 |
| | | | | | | This was observed only in the select poller, but the behavior of having the same file descriptor registered in the poller more than once is undefined. | ||
| * | bump test timeouts for CI/CD | Garrett D'Amore | 2024-12-30 |
| | | |||
| * | fixup! fixes #863 socket activation: for TCP and IPC (POSIX only) | Garrett D'Amore | 2024-12-30 |
| | | |||
| * | socket activation: test fixes (improve coverage, etc.) | Garrett D'Amore | 2024-12-30 |
| | | |||
| * | fixes #863 socket activation: for TCP and IPC (POSIX only) | Garrett D'Amore | 2024-12-30 |
| | | | | | | | | | | This introduces a new option "NNG_OPT_LISTEN_FD", understood by TCP, TLS, and (on POSIX systems) IPC. This option is used to pass a file descriptor or handle (Windows) that is already listening (ready for ACCEPT to be called). For TCP and TLS, the socket must be of type AF_INET or AF_INET6, and for IPC it must be of type AF_UNIX. | ||
| * | posix: fall back to send if sendmsg is unavailable for ipc and tcp | Garrett D'Amore | 2024-12-29 |
| | | | | | | This will be slower, as each vector element has to be sent in a single system call, but for platforms that lack sendmsg it will at least work. | ||
| * | aio: clear vector on advance (debugging aid) | Garrett D'Amore | 2024-12-29 |
| | | |||
| * | aio test: add a test for IOV overrun | Garrett D'Amore | 2024-12-29 |
| | | |||
| * | udp: use a bounce buffer if we lack sendmsg or recvmsg | Garrett D'Amore | 2024-12-29 |
| | | | | | | This includes checks to determine if those functions are present, and a test case to verify that scatter gather with UDP works. | ||
| * | resolver: add some additional test coverage | Garrett D'Amore | 2024-12-29 |
| | | | | | | | While here, remove some code paths that do not occur by definition. (For example, if the resolver succeeds, we will definitely have a valid set of addresses, but if it fails, we will definitely not.) | ||
| * | tcp listener: remove obsolete function prototypes | Garrett D'Amore | 2024-12-28 |
| | | |||
| * | fixup! resolver: use explicit resolver item provided by caller | Garrett D'Amore | 2024-12-28 |
| | | |||
| * | resolver: default to just a single resolver thread | Garrett D'Amore | 2024-12-28 |
| | | | | | | | | Nearly all applications are either purely server based (needing no resolvers really), or dialers only dialing a single destination. These do not need multiple dialers, and threads are expensive on some platforms (and they are more trouble during debugging.) | ||
| * | resolver: use explicit resolver item provided by caller | Garrett D'Amore | 2024-12-28 |
| | | | | | | | This avoids the need to perform multiple allocations for dialing, eliminating additional potential failures. Cancellation is also made simpler and more perfectly robust. | ||
| * | windows tcp: fix compilation warning | Garrett D'Amore | 2024-12-28 |
| | | |||
| * | windows tests: some tests of performance tools fail lately in CI/CD on Windows | Garrett D'Amore | 2024-12-28 |
| | | |||
| * | fixes #961 surprising pipe event order | Garrett D'Amore | 2024-12-28 |
| | | |||
| * | tcp stream: add test for ESTATE getting port on unbound listener | Garrett D'Amore | 2024-12-28 |
| | | |||
| * | windows tcp: Lookup extended TCP function pointers at startup | Garrett D'Amore | 2024-12-28 |
| | | | | | | | This avoids the need for a lock during listener or dialer initialization, and it avoids the need to carry these pointers on those objects. It also eliminates a potential failure case "post startup". | ||
| * | tcp: flatten the listener implementation | Garrett D'Amore | 2024-12-28 |
| | | | | | | | | | | | The endpoints both use a nesting level for some common code and some platform dependent code. But the common code isn't that much and we have similar patterns for e.g. IPC. This avoids a layer of indirection in the structs, and extra allocations. The payoff will be even larger for the dialers, but that is next. (Dialers are more complicated because of DNS.) | ||
| * | zerotier: removed | Garrett D'Amore | 2024-12-26 |
| | | | | | | | | | | | All vestiges of ZeroTier have been removed. Also, as consequence, some binary values have changed (specifically the number of the address family used for NNG_AF_ABSTRACT.) We may create a new ZeroTier transport that makes use of lwIP to provide for ZeroTier and native host network coexistence, without requiring ZeroTier to participate in the native networking stack. | ||
| * | http: inline aios | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | tcp dialer: inline aio objects | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | dialer: use inline aio | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | fix for potential leaking connections | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | aio: remove nni_aio_begin and nni_aio_schedule | Garrett D'Amore | 2024-12-26 |
| | | | | | | The nni_aio_start function replaces these two functions with a simple, single call, reducing pressure on common locks. | ||
| * | pipeline: use nni_aio_start | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | sub: remove some calls to nni_aio_begin | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | pair0: use nni_aio_start | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | pair1: use nni_aio_start | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | pub sub: use nni_aio_start | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | bus: use nni_aio_start | Garrett D'Amore | 2024-12-26 |
| | | | | | | | The test needed a change to ensure that we do not trigger a debugging check (you cannot submit another job on an aio that you've been notified is stopped via NNG_ESTOPPED.) | ||
| * | req rep: use nni_aio_start | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | survey protocol conversion to nni_aio_start | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | udp: more nni_aio_start | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | http: more nni_aio_start changes | Garrett D'Amore | 2024-12-26 |
| | | |||
| * | 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. | ||
