0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-07-03 01:09:05 +02:00
Commit graph

376 commits

Author SHA1 Message Date
Jason Volk 8c5b47950f ircd::net: Add conf items for default open_opts. 2018-06-01 04:05:19 -07:00
Jason Volk 5a058be4ba ircd::net: Use specific canon service/port variables. 2018-05-19 18:49:08 -07:00
Jason Volk a7b0246830 ircd::net: Increase default acceptor timeout for spinapps friends. 2018-05-19 18:49:05 -07:00
Jason Volk 0abfc6e927 ircd::net: Minor fix spacing. 2018-05-19 18:49:02 -07:00
Jason Volk 3e877ebad3 ircd::net: Elaborate the peer_cert stack: add sha256; add b64 of sha256. 2018-05-10 21:00:32 -07:00
Jason Volk 3f296f2108 ircd::net: Fix error fmtstr; use static exception instance for copy. 2018-05-09 21:12:01 -07:00
Jason Volk c47324f741 ircd::net::dns: Add retries. 2018-05-08 16:03:56 -07:00
Jason Volk 477fe01e40 ircd::net::dns: Write question into tag buffer; add send_burst conf item. 2018-05-08 16:03:55 -07:00
Jason Volk a318319ba4 ircd::net: attribute noreturn upon advice. 2018-05-08 14:32:40 -07:00
Jason Volk 79a44e4587 ircd::net: No need to hold this pointer in closure. 2018-05-08 14:31:39 -07:00
Jason Volk 618fc8a95e ircd::net::dns: Tweak reference prototypes. 2018-05-08 14:29:44 -07:00
Jason Volk 003ecf6357 ircd: Remove / update various ctx::interrupted catch blocks for ctx::terminated. 2018-05-06 02:06:08 -07:00
Jason Volk 386901f4c2 ircd::net: Fix conditions for eptr creation from cached error. 2018-05-05 00:55:42 -07:00
Jason Volk 5ba64df248 ircd::net: Explicitly construct these things here. 2018-05-04 20:43:05 -07:00
Jason Volk 695fb4c9b0 ircd::net: Ensure proper string() is resolved; minor cleanup. 2018-05-02 12:15:04 -07:00
Jason Volk 4c61eeba89 ircd::net::dns: Use explicit static empty record instances. 2018-05-02 11:28:34 -07:00
Jason Volk fb53069c6f ircd::net::dns Include query in callback arguments to prevent any stale captures. 2018-05-01 18:56:22 -07:00
Jason Volk 3f2320c49e ircd::net::dns: Strip the cached-error SRV target of its prefix; minor fixes. 2018-04-28 17:47:59 -07:00
Jason Volk 30d8c0b961 ircd::net::dns: Allocate separate reply buffer in resolver. 2018-04-28 17:47:59 -07:00
Jason Volk a3bea15eef ircd::net::dns: Various send cleanup/asserts; fix hostport reference in eh. 2018-04-28 17:47:59 -07:00
Jason Volk 2b41672259 ircd::net::dns: Improve the SRV -> A callback chain. 2018-04-28 17:47:59 -07:00
Jason Volk 4e796c896a ircd::net::dns: Allow an exception to calling back with nxdomain as an exception. 2018-04-28 17:47:58 -07:00
Jason Volk 1d408173dc ircd::net: Return pointer to cached error record for put_error(). 2018-04-28 16:25:20 -07:00
Jason Volk 48abece29b ircd::net: Improve dns::resolver instance init/fini. 2018-04-28 15:31:07 -07:00
Jason Volk 49d83de384 ircd::net: Propagate ctx interruption to socket. 2018-04-15 17:46:20 -07:00
Jason Volk f4b2273a4b ircd::net: Add a semaphore to the socket timer to invalidate queued callbacks. 2018-04-15 17:46:20 -07:00
Jason Volk 5be18475df ircd::net: Move scope_timeout from socket:: to net:: w/ exposure. 2018-04-15 16:43:09 -07:00
Jason Volk 2dad8d8832 ircd::net::dns: Empty cache key assertions. 2018-04-15 02:44:28 -07:00
Jason Volk f37176d698 ircd::net::dns: Enforce min ttl for cache entries; add conf option. 2018-04-14 18:35:48 -07:00
Jason Volk de295777d0 ircd::net::dns: Improve/fix cache management related. 2018-04-14 18:13:19 -07:00
Jason Volk 1ad4d58e43 ircd::net::dns: Move cache interfaces into cache class. 2018-04-14 17:34:07 -07:00
Jason Volk cf22eacfd3 ircd::net::dns: Add static fire-and-forget callbacks for prefetching. 2018-04-14 17:15:06 -07:00
Jason Volk dc81d77c19 ircd::net: Improve/comment on various sundry DNS cache related. 2018-04-13 18:34:48 -07:00
Jason Volk 6ca4f6eec5 ircd::net: Expose interface for socket stat counter. 2018-04-13 17:24:07 -07:00
Jason Volk 9dfd9f8258 ircd::net: No propagation from accept/handshake handlers; use debug error. 2018-04-12 23:07:45 -07:00
Jason Volk 8bf0b4d093 ircd::net: Assert proper socket object semantics. 2018-04-12 12:52:14 -07:00
Jason Volk 37a0b0362b ircd::net::dns: Post callback away from timeout worker ctx's stack. 2018-04-07 11:20:22 -07:00
Jason Volk 603658c722 ircd::net: Increase default resolver rate limiting. 2018-04-03 23:34:10 -07:00
Jason Volk 751b896c3d ircd:Ⓜ️ Improve various initial conf related keys and routines. 2018-03-28 14:11:33 -07:00
Jason Volk 26b33a1845 ircd::ctx: Remove the cv_status enum. 2018-03-26 23:29:58 -07:00
Jason Volk 980d24b38e ircd::net: Simplify listener config object. 2018-03-23 22:17:10 -07:00
Jason Volk d29b98b0ea ircd::net: Fix these conf item paths. 2018-03-22 15:11:29 -07:00
Jason Volk f5fa5100de ircd::net: Revert no-readahead; post immediate continuation to next stack. 2018-03-18 13:51:43 -07:00
Jason Volk 01fc6db0c5 ircd::net: Disable readahead for socket's SSL_CTX. 2018-03-15 22:25:16 -07:00
Jason Volk df3243e31d ircd::net: Eliminate the existing net::remote. 2018-03-13 22:44:13 -07:00
Jason Volk cadabb5521 ircd::net: Add suite to print a hostname and port or just hostname based on portnum canon. 2018-03-13 22:44:13 -07:00
Jason Volk 79f6974f86 ircd::net: Wait for destruction of all sockets on shutdown. 2018-03-12 18:50:36 -07:00
Jason Volk 949a006950 ircd::net: Close socket before its dtor on accept except. 2018-03-12 15:56:30 -07:00
Jason Volk cabeb4c128 ircd::net::dns: Add send rate-limiting for resolver queries. 2018-03-12 12:20:22 -07:00
Jason Volk 8653d62c37 ircd::net: Handle case for belated timeout callback after socket close. 2018-03-11 14:51:14 -07:00
Jason Volk bbd2cbc15b ircd::net: Checkpoint case for read eof in the readiness handler; should split. 2018-03-11 13:40:24 -07:00
Jason Volk 94716e5ea7 ircd::net: Use socket fini state to condition automatic close on open error. 2018-03-10 23:04:58 -08:00
Jason Volk 9f7aa315fa ircd::net: Recondition socket handlers to not cancel socket timer. 2018-03-10 23:04:58 -08:00
Jason Volk 49d6d2b8ea ircd::net: Add socket state and assertion for fini. 2018-03-09 19:41:16 -08:00
Jason Volk e59c04e2a5 ircd::net: Indicate no timeout before any handler invocation on cancel. 2018-03-09 17:10:46 -08:00
Jason Volk e4a4526b0c ircd::net: Add additional conf items; update resolver timeout to use ms. 2018-03-09 17:10:45 -08:00
Jason Volk 4670fdbd1b ircd: Remove ircd::error_code typedef with more local typedefs. 2018-03-08 10:08:38 -08:00
Jason Volk eafa9fd5b2 ircd: Move boost system error related out of ios.h to exception.h et al. 2018-03-08 08:40:26 -08:00
Jason Volk 2ec4bd025f ircd::net: Underp the cache map until heterogeneous key support in stdlib. 2018-03-06 04:03:31 -08:00
Jason Volk 581e804e37 ircd::net::dns: Use conf item for DNS resolver timeout value. 2018-03-02 08:02:20 -08:00
Jason Volk d54d6b687c ircd::net::dns: Add crucial support for caching errors. 2018-03-02 08:02:20 -08:00
Jason Volk 3aea407a85 ircd::net::dns: Add dns::cache. 2018-03-01 23:08:22 -08:00
Jason Volk 0e9a1e5109 ircd::net: wat. 2018-02-28 00:00:19 -08:00
Jason Volk 03034723df ircd::net: Update socket handler conditions to ignore timeout if data is there too. 2018-02-27 18:08:15 -08:00
Jason Volk a5389dfd95 ircd::net: Assertion found case where (timedout && !ec) is valid:
This happens when handle_timeout is executed while handle_ready has
already hit the asio queue. The sd.cancel() is too late to cause
ec==operation_canceled.
2018-02-27 07:12:04 -08:00
Jason Volk 7f77c68232 ircd::net/ircd::server: Rename misleading functions. 2018-02-26 22:49:44 -08:00
Jason Volk de08752853 ircd::net: Remove unused/erroneous has_timeout(). 2018-02-18 22:38:23 -08:00
Jason Volk 0dc8593b9c ircd::net: Add open() option to allow expired certificates. 2018-02-10 18:37:06 -08:00
Jason Volk 09b0c3d20d ircd::net::dns: Don't log.error common NXDOMAIN rcodes. 2018-02-07 12:16:17 -08:00
Jason Volk 12f1bf97b4 ircd::net: Move the timedout nulling to here. 2018-02-07 12:16:17 -08:00
Jason Volk dc4d827def ircd::net::dns: Improve the resolution handlers and callback chain. 2018-02-07 00:24:54 -08:00
Jason Volk 7b4906e85f ircd::net: Throw net::not_found for the ipport_one convenience if no A record. 2018-02-06 13:20:24 -08:00
Jason Volk be624ca7f6 Update Copyrastafaris. 2018-02-05 21:24:34 -08:00
Jason Volk 565a760255 ircd::net: Integrate SRV query composition; RFC1035 records to the user interface. 2018-02-05 18:54:56 -08:00
Jason Volk 3441368b25 ircd::net: Use "service" string in net::hostport. 2018-02-05 18:54:55 -08:00
Jason Volk a9ac7fd8d9 ircd::net: Add constructions for ipport from rfc1035 resource records. 2018-02-05 18:54:55 -08:00
Jason Volk d53eef4ab6 ircd: Eliminate the raw_buffer concept. 2018-02-05 18:54:55 -08:00
Jason Volk cde4507ef6 ircd::rfc1035: Put the record structs into record:: for possible vtable opportunity. 2018-02-03 14:10:49 -08:00
Jason Volk c3ceb94478 ircd: These should be rvalue refs. 2018-01-30 23:13:27 -08:00
Jason Volk 5f6b5852b1 ircd::rfc1035: Add CNAME RR; minor cleanup. 2018-01-28 21:18:26 -08:00
Jason Volk 9a2714f5aa ircd::net: Replace asio::ip::tcp::resolver / threaded getaddrinfo() with solution. 2018-01-28 21:18:26 -08:00
Jason Volk 670b4b8e23 ircd::net: Add UDP analogues for the make_endpoint() related. 2018-01-28 21:18:26 -08:00
Jason Volk 513082b656 ircd::net: Reorg DNS related; move resolver into header. 2018-01-28 14:28:33 -08:00
Jason Volk e95dd21e9e ircd::net: Decay this array to properly pun the header. 2018-01-26 22:22:09 -08:00
Jason Volk 1cdb893b1b ircd: Replace various log.critical+assert(0) with ircd::assertives; minor cleanup. 2018-01-24 18:40:19 -08:00
Jason Volk d56cc60b88 ircd::net: Tweak these error handlers and log facilities. 2018-01-24 14:38:12 -08:00
Jason Volk 7bf9ce225c ircd::net: Tweak what's left of the socket handle_ready cattle grid. 2018-01-24 14:12:38 -08:00
Jason Volk e99b32a176 ircd::net: Hit cancel() before any of the disconnect sequences. 2018-01-23 16:35:28 -08:00
Jason Volk 354cadb7dc ircd::net: Close the socket on a handler unexpected. 2018-01-23 15:07:05 -08:00
Jason Volk b3b424a531 ircd::net: Add option to bypass CN verification of self-signed certs. 2018-01-22 00:54:53 -08:00
Jason Volk ac77dfd4f0 ircd::net: Better to not invoke the callback in these places. 2018-01-20 13:59:24 -08:00
Jason Volk 103ff45553 ircd::net: Translate operation_canceled into timed_out where appropos. 2018-01-20 13:59:24 -08:00
Jason Volk 6e2cf45571 ircd::net: Move acceptor into header; minor cleanup. 2018-01-19 06:55:48 -08:00
Jason Volk 6682f0ce80 ircd::net: On disconnect, turn an EOF ec into a success. 2018-01-15 19:46:23 -08:00
Jason Volk 1e0fe2b3d5 ircd::server/net: Proper snomask on these log calls. 2018-01-15 19:28:55 -08:00
Jason Volk 368838d5a5 ircd::server: Add preliminary write loop; minor cleanup. 2018-01-15 03:12:56 -08:00
Jason Volk d62afeb0a7 ircd::net: Add RFC1035 preliminary stub; minor reorg of resolver related. 2018-01-14 20:45:30 -08:00
Jason Volk 314bcb3d30 ircd::net: Update read()/write() strategies. 2018-01-14 20:45:30 -08:00
Jason Volk 15bf7f5f6d ircd::net: Add non-blocking discard_any(socket). 2018-01-13 20:21:29 -08:00
Jason Volk c3423ad80b ircd::net: Fix error. 2018-01-13 19:19:29 -08:00
Jason Volk f71a728225 ircd::net: Fix bug where received data is stuck in SSL buffer. 2018-01-13 17:58:11 -08:00
Jason Volk 4d14adc961 ircd::net: Debug print certificate subject rather than whole cert. 2018-01-12 15:38:14 -08:00
Jason Volk 06cf9031b7 ircd::net: Increase buffer size for cert debug print. 2018-01-12 15:22:48 -08:00
Jason Volk 88e4445f0e ircd::net: Move error checking fix back to initiator out of handler. 2018-01-12 14:14:01 -08:00
Jason Volk 11adbae89a ircd::net: decorate the peek. 2018-01-12 03:13:49 -08:00
Jason Volk 3d8d6f47b4 ircd::net: Ensure ordering of various operations if immediately dispatched. 2018-01-11 22:28:59 -08:00
Jason Volk 4d310ac22b ircd: Towards debug message uniformity. 2018-01-11 22:02:34 -08:00
Jason Volk f99461481c ircd: Take some buffers off the stack. 2018-01-11 22:02:34 -08:00
Jason Volk a135227370 ircd::net: Tighten assumptions on cancel(). 2018-01-11 22:02:33 -08:00
Jason Volk 725f069621 ircd::net: Add discard_all() convenience. 2018-01-11 22:02:33 -08:00
Jason Volk 382d1b0bf3 ircd::net: Close the sd in dc handler unconditionally; align the peek buf. 2018-01-11 03:23:40 -08:00
Jason Volk fcfa386e33 ircd::net: Remove impossible log conditional; minor cleanup. 2018-01-11 03:22:17 -08:00
Jason Volk 76e16e4d80 ircd::net: Improve remote construction; hostport/ipport related. 2018-01-10 01:20:16 -08:00
Jason Volk c03bb7e4f2 ircd: Various fixes and elaborations to client/net. 2018-01-08 21:49:00 -08:00
Jason Volk 89c481d1f8 ircd::net: Improve wait related; fix issues with bad behavior. 2018-01-08 18:33:05 -08:00
Jason Volk b0579d0963 ircd::net: Show more information in some debug messages. 2018-01-08 15:16:47 -08:00
Jason Volk c8aaeb491f ircd::net: Develop interface for async_wait / waiting on socket. 2018-01-08 13:25:13 -08:00
Jason Volk 17a1982c24 ircd::net: Add read_one() interface. 2018-01-08 12:41:22 -08:00
Jason Volk a1f0075d62 ircd::net: Improve the timeout callback related. 2018-01-08 03:08:59 -08:00
Jason Volk d10b9effd0 ircd::net: Improve string output for remote. 2018-01-08 03:08:59 -08:00
Jason Volk 274b4b43ed ircd::net: Fix this bug fix. 2018-01-08 03:08:59 -08:00
Jason Volk c22631ebf5 ircd::net: Consistent debug log messages. 2018-01-08 03:08:59 -08:00
Jason Volk 273e22c50e ircd::net: Add common_name(opts) consistent function to get proper CN. 2018-01-08 03:08:59 -08:00
Jason Volk b0427fbb91 ircd::net: ipport string contructions. 2018-01-08 03:08:59 -08:00
Jason Volk bad0037d78 ircd::net: Copy around open_opts for now to prevent any lifetime complications. 2018-01-08 03:08:59 -08:00
Jason Volk 5615ef2470 ircd::net: Split up remote.h 2018-01-07 14:31:35 -08:00
Jason Volk 9dbae8b27a ircd::net: Rename sockopts to sock_opts. 2018-01-07 02:02:41 -08:00
Jason Volk ac3802c0f9 ircd::net: Refine network subsystem; break up interfaces; various. 2018-01-06 23:27:01 -08:00
Jason Volk 7e0c01708a ircd::net: Refine socket interfaces; connection options structure. 2018-01-05 19:19:03 -08:00
Jason Volk 72317c07c3 ircd::net: Shlock certificate common-name verification into the net stack. 2018-01-04 23:17:11 -08:00
Jason Volk 35ad641251 ircd::openssl: Minor rename function. 2018-01-04 21:59:39 -08:00
Jason Volk 6aec038479 ircd::net: Additional socket option accoutrements. 2018-01-04 19:25:46 -08:00
Jason Volk ebad745a3f ircd::net: Tentative future-based socket resolve->connect->handshake. 2018-01-04 19:25:40 -08:00
Jason Volk fcb2660f0a ircd::net: Elaborate low-level socket interface. 2018-01-04 17:44:35 -08:00
Jason Volk dd137d50e3 ircd::net: Move resolution constructor from ipport to remote. 2018-01-04 17:44:35 -08:00
Jason Volk 1898cb307d ircd::net: Improve resolver interface. 2018-01-04 17:44:34 -08:00
Jason Volk 6f81d0c643 ircd::net: Minor simplify API. 2018-01-04 17:44:34 -08:00
Jason Volk 26e04ecda4 ircd: buffer/net: Minor cleanup. 2018-01-04 17:44:34 -08:00
Jason Volk acc73957f8 ircd::net: Socket interface package. 2018-01-04 17:44:34 -08:00
Jason Volk 9ad618a329 ircd::net: Move some string() / various cleanup. 2018-01-04 17:44:34 -08:00
Jason Volk 2606837044 ircd::net: Use fixed result stack buffer. 2017-12-29 23:03:35 -07:00
Jason Volk c7d97eaf00 ircd::net: Minor cleanup/movement. 2017-12-29 23:03:35 -07:00
Jason Volk 126df4b54a ircd::net: Split resolve into file. 2017-12-29 22:44:15 -07:00
Jason Volk 35038f3d63 ircd::net: Reverse DNS resolution; various cleanup/related. 2017-12-29 22:38:00 -07:00
Jason Volk 8ec7c988a3 ircd::net: Add mass-resolution function. 2017-12-29 21:20:16 -07:00
Jason Volk 0eb16673ee ircd::net: Add resolve interface; Update remote interface. 2017-12-29 19:33:04 -07:00
Jason Volk 9871332957 fixup! Pin boost to 1.66.0. 2017-12-29 15:53:39 -07:00
Jason Volk 46482e61f2 ircd::net: Consistent nesting for null_remote to remote::null. 2017-12-28 15:26:19 -07:00
Jason Volk 3d1a173358 ircd::net: Add extern null_remote. 2017-12-24 21:54:59 -07:00
Jason Volk 3d5eea0ce3 ircd::net: Move these temp items here. 2017-12-24 21:54:58 -07:00
Jason Volk eab178b97f ircd::net: Show a coarse io stat on disconnect for now. 2017-12-24 21:54:58 -07:00
Jason Volk cc81ed2f33 ircd::net: Comment out this debug message contributing to excessive wind. 2017-12-12 14:59:40 -07:00
Jason Volk c1bda4008f ircd::net: Fix port inclusion in these places. 2017-12-03 13:55:56 -08:00
Jason Volk a747098b65 ircd::net: listener: Explicit string ctor; no default port to ensure one is specified. 2017-11-30 11:23:47 -08:00
Jason Volk b17293ee86 ircd::net: Add existential checks here. 2017-11-30 11:23:46 -08:00
Jason Volk 69f05391a6 ircd::net: Use nothrowing remote() for socket; cleanup handler. 2017-11-30 11:23:45 -08:00
Jason Volk 6b961711cb ircd::net: Fix asio error code casting for SSL codes. 2017-11-30 11:23:45 -08:00
Jason Volk 5b61e1d01f ircd::net/db: Hard debug log quiet for now; minor cleanup. 2017-11-30 11:23:44 -08:00
Jason Volk 6937e91fc3 ircd::net: OpenSSL/net interface for peer certificates so m:: can hash/verify. 2017-11-30 11:23:44 -08:00
Jason Volk 08469eb2a0 ircd::net: Tweak net::remote ctor related. 2017-11-30 11:23:44 -08:00
Jason Volk 0df7ad850f ircd::net: Quick & likely success branch for these handlers. 2017-11-30 11:23:43 -08:00
Jason Volk 2930b93dcb ircd::net: Various net/client/listener bugfixes/cleanup. 2017-11-30 11:23:42 -08:00
Jason Volk 2ce9b0521f ircd::net: Various fixes / error handling / api. 2017-11-30 11:23:41 -08:00
Jason Volk 888c7d5739 ircd::net: Update log messages. 2017-11-30 11:23:40 -08:00
Jason Volk 52641ba47f ircd::net: Add net::remote, suite; update network utils; fixes. 2017-11-30 11:23:40 -08:00
Jason Volk 14fea52dcb ircd::net: Add async overloads; various cleanup. 2017-10-19 03:55:24 -07:00
Jason Volk 0f51c84fb0 ircd::net: Move net into directory. 2017-10-19 01:30:19 -07:00
Jason Volk c501f21ac2 ircd::net: Move listener next() to the accept event slice; various cleanup. 2017-10-19 01:03:40 -07:00
Jason Volk a1e798f12c ircd::net: Improve dc/socket dtor related. 2017-10-19 01:02:30 -07:00
Jason Volk df8faae81d ircd::net: Improve some exception specs related to socket. 2017-10-19 01:02:19 -07:00
Jason Volk 8fc336a1e9 ircd::net: No user input so use standard ::snprintf() here. 2017-10-17 00:48:10 -07:00
Jason Volk 29d9f2bfdb ircd::net: Improve some error handling and log message related. 2017-10-15 21:28:40 -07:00
Jason Volk 8da4874f2c ircd: Uniform initialization style for these. 2017-10-11 20:54:01 -07:00
Jason Volk bd1a66e608 ircd: minor simplifications; minor cleanup. 2017-10-11 18:18:18 -07:00
Jason Volk fe4c59003f ircd::net: Add debugging messages for client connect; also for unhandled server errors. 2017-10-03 04:27:14 -07:00
Jason Volk 84d7746165 ircd: Add net; various asio related. 2017-10-03 04:17:10 -07:00