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