Jason Volk
9a6c5f5fe4
ircd::server: Don't parse from outbound buffer for canceled requests.
2019-04-11 20:49:29 -07:00
Jason Volk
446964bb67
ircd::server: Apply stack protected canary on key frames.
2019-04-10 22:32:06 -07:00
Jason Volk
5c359f22f3
ircd::net::socket: Change behavior of non-blocking read_() calls to not throw for EAGAIN.
2019-04-09 21:08:15 -07:00
Jason Volk
97ee68d4f3
ircd::server: Don't alter open_opts.hostport here.
2019-03-25 19:14:49 -07:00
Jason Volk
0f184cd449
ircd::server: Fix loghead() failure conditions.
2019-03-25 18:48:32 -07:00
Jason Volk
6b3a459d29
Revert "ircd::server: Fix concurrency assumptions in server::get()."
...
This reverts commit 3db83faac3
.
2019-03-25 18:31:05 -07:00
Jason Volk
195937cd08
ircd::server: Condition the next query after SRV on ipv6 state.
2019-03-25 15:20:01 -07:00
Jason Volk
672e9dd712
ircd::server: Add conf item to toggle ipv6 use.
2019-03-25 15:18:06 -07:00
Jason Volk
a43c0e5798
ircd::server: Split AAAA and A handlers for chaining.
2019-03-25 14:37:01 -07:00
Jason Volk
d7631dc39b
ircd::server: Skip DNS resolution on IP literals.
2019-03-25 12:26:56 -07:00
Jason Volk
c5088c3af2
ircd::server: Show response code in tag completion debug log msg.
2019-03-25 12:25:25 -07:00
Jason Volk
d149c540f4
ircd::server: Split link opening routine from resolver handler.
2019-03-24 20:50:16 -07:00
Jason Volk
7f5f07509a
ircd::net::dns: Add utils to properly check for empty records in JSON.
2019-03-24 20:13:23 -07:00
Jason Volk
e640e6ac62
ircd::server: Perform DNS resolution sequence and handler logic externally here.
2019-03-24 15:28:07 -07:00
Jason Volk
dbb965ce48
ircd::server: Add loghead() and display request method/paths in some debug log msgs.
2019-03-24 14:10:11 -07:00
Jason Volk
b72758f904
ircd::server: Fix insertion/resolver reentrancy conflict.
2019-03-22 21:06:28 -07:00
Jason Volk
77648137e9
Revert "ircd: Remove use of all unwind::exceptional and unwind::nominal devices."
...
This reverts commit 4f243826c2
.
2019-03-22 21:06:28 -07:00
Jason Volk
3db83faac3
ircd::server: Fix concurrency assumptions in server::get().
2019-03-22 15:13:55 -07:00
Jason Volk
8f41687940
modules/s_dns: Fix exception propagation to callback.
2019-03-22 13:51:28 -07:00
Jason Volk
e62e65df6b
ircd::server: Add peer to map before resolve.
2019-03-22 10:51:11 -07:00
Jason Volk
68e3655a1d
ircd::net::dns: Refactor system for the !dns room.
2019-03-21 18:24:36 -07:00
Jason Volk
cff17eaa40
ircd: Add exception tools which elide copying.
2019-03-16 16:28:28 -07:00
Jason Volk
4f243826c2
ircd: Remove use of all unwind::exceptional and unwind::nominal devices.
2019-03-12 18:41:05 -07:00
Jason Volk
395a6ceabd
ircd::server: Add request option to control whether content overrun is an error.
2019-03-08 16:52:48 -08:00
Jason Volk
6d9fb00d8c
ircd::server: Fix discard buffering.
2019-03-08 16:32:37 -08:00
Jason Volk
62d33e2f7a
ircd::server: Improve this error information.
2019-03-01 10:07:56 -08:00
Jason Volk
d639eceba2
ircd: Move runlevel related into ircd::run:: namespace.
2019-01-18 09:08:56 -08:00
Jason Volk
cbf456a388
ircd: Rename and refactor ircd::assertion interface into ircd::panic.
2019-01-13 16:37:31 -08:00
Jason Volk
e4922772f4
ircd::server: Fix issues with non-matrix peer construction.
2018-12-05 19:38:40 -08:00
Jason Volk
36bb0d3175
ircd: Integrate all boost::system::system_error with stdlib.
2018-11-08 23:05:11 -08:00
Jason Volk
3a36bbfca5
ircd::server: Fix dangling-type exception_ptr in peer::err by clearing peers here.
...
This will destruct the exception first before the module which introduced the
exception's type unloads. On daemon shutdown, the module will unload and if
an instance of the exception is still held by peer::err bad things happen.
2018-10-24 17:31:22 -07:00
Jason Volk
100325b5a8
ircd::server: deinline peer::err ctor.
2018-10-21 05:35:02 -07:00
Jason Volk
58c7a4885b
ircd::server: Remove redundant strings; minor cleanup.
2018-10-02 22:37:07 -07:00
Jason Volk
5b7cf5a8eb
ircd::net::dns: Reorg namespace structure related.
2018-10-01 12:03:31 -07:00
Jason Volk
2e245dacd1
ircd::server: Minor move handler binding.
2018-09-18 23:47:52 -07:00
Jason Volk
5a32754937
ircd::server: Catch anything at these handlers.
2018-09-18 21:48:40 -07:00
Jason Volk
3b960d2576
ircd: Add misc assertions.
2018-09-18 21:24:19 -07:00
Jason Volk
dadf237bb5
ircd::server: Minor cleanup; modernize some log calls.
2018-09-18 15:10:10 -07:00
Jason Volk
a4f8cf83f6
ircd::server: Handle unfavorable runlevel in resolver callback.
2018-09-17 21:06:38 -07:00
Jason Volk
439e8618d6
ircd: Simplify/cleanup the coarse controls for client/server subsystems.
2018-09-17 16:47:36 -07:00
Jason Volk
bc88a4cf6d
ircd::server: Assertion on tag removal.
2018-09-04 20:27:30 -07:00
Jason Volk
2b199ae3ed
ircd::net/ircd::server/ircd::client: Various cleanup; log messages.
2018-08-28 12:06:45 -07:00
Jason Volk
b13193611d
ircd::server: Rename peer::interrupt() to peer::cancel().
2018-05-29 11:53:37 -07:00
Jason Volk
69e9c9bbc6
ircd::server: Fix peer hostname string discrepancy.
2018-05-19 18:49:08 -07:00
Jason Volk
65f7adc8c6
ircd::server: Internalize more references to the peer instance; various cleanup.
2018-05-19 18:49:07 -07:00
Jason Volk
dcbbaf2579
ircd::server: Add opts::prio value; special case prio value in link selection.
2018-05-09 17:07:37 -07:00
Jason Volk
6b0c011535
ircd::server: Copies of the link pointers must be on stack.
2018-05-08 16:03:56 -07:00
Jason Volk
51d0f1a6a4
ircd::server: Use fixed tls vector for copying link pointers.
2018-05-07 23:24:51 -07:00
Jason Volk
9a3bda06af
ircd::server: Copy link pointers while iterating for open().
2018-05-07 23:09:06 -07:00
Jason Volk
b113322a28
ircd::server: Improve assertion for no key movement.
2018-05-07 16:34:59 -07:00
Jason Volk
292e8c5a12
ircd::server: Remove deprecated assertion.
2018-05-02 22:22:12 -07:00
Jason Volk
1d0ae3855a
ircd::server: Close link if the only commitment is a cancelled tag.
2018-05-02 12:33:08 -07:00
Jason Volk
c84fe8d962
ircd::server: Fix preservation of nullity for in.content through cancellation.
2018-05-02 12:00:32 -07:00
Jason Volk
8f7a05c9ed
ircd::server: Minor cleanup / assertions / comments.
2018-05-02 12:00:26 -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
9c5b10fb61
ircd::server: Preserve nullity of cancellation tag's in.content.
2018-04-26 21:35:55 -07:00
Jason Volk
6add3e9952
ircd::server: Limit recursion of chunk head parses.
2018-04-25 20:52:27 -07:00
Jason Volk
e2568457f4
ircd::server: Add dynamic chunk vectoring.
2018-04-25 20:52:26 -07:00
Jason Volk
7e32d3cbaa
ircd::server: Checkpoint preliminary chunk vectoring; state, options.
2018-04-25 15:10:04 -07:00
Jason Volk
7c92eb2757
ircd::server: Use system time for error time state.
2018-04-13 20:02:48 -07:00
Jason Volk
516d1797c9
ircd::server: Clear op_fini flag on err_clear().
2018-04-10 21:02:34 -07:00
Jason Volk
331d0a955d
ircd::server: Yield in exception handler.
2018-04-07 11:05:54 -07:00
Jason Volk
0012793bf6
ircd::server: Ensure open_opts references are fresh after resolve comes back.
2018-04-07 06:16:41 -07:00
Jason Volk
6488141f64
ircd::server: Additional assertions.
2018-04-07 06:16:24 -07:00
Jason Volk
db93acf8fb
ircd::server: Fix condition for promise resolution on cancel().
2018-04-07 05:00:55 -07:00
Jason Volk
c2b2dc8d69
ircd::server: Use disassociate() during cancel(); tweak assertions.
2018-04-07 05:00:55 -07:00
Jason Volk
4c26b65613
ircd::server: Add head bytes when calculating read total.
2018-04-06 02:50:29 -07:00
Jason Volk
5648903998
ircd::server: Adjust discard error expectations.
2018-04-06 02:50:29 -07:00
Jason Volk
c4b18438ce
ircd::server: Additional debug logging / tweaks.
2018-04-06 02:50:29 -07:00
Jason Volk
d2388a1abf
ircd::server: Discard reads when tag has committed no writes.
2018-04-06 01:05:04 -07:00
Jason Volk
c79cbe670b
ircd::server: Additional assertions that buffers are not zero size.
2018-04-06 00:33:09 -07:00
Jason Volk
47edaed3a6
ircd::server: Add stats for total bytes up and down to peer and links.
2018-03-26 23:29:58 -07:00
Jason Volk
270120c922
ircd::server: Rename _total() to _size() for bytes accounting.
2018-03-26 23:29:58 -07:00
Jason Volk
26b33a1845
ircd::ctx: Remove the cv_status enum.
2018-03-26 23:29:58 -07:00
Jason Volk
05ded4f0e4
ircd::server: Checkpoint discard based on ssl pending; move branch.
2018-03-26 02:24:29 -07:00
Jason Volk
968ef4115c
ircd: Fix signage related.
2018-03-23 23:19:53 -07:00
Jason Volk
84ede3ceac
ircd::server: Support tag::cancel() case for chunked encoding.
2018-03-20 16:31:02 -07:00
Jason Volk
bc8f5cba05
ircd::server: Use better buffer sizes and offsets in tag::cancel() procedure.
2018-03-20 16:31:02 -07:00
Jason Volk
d21c2fc37c
ircd::server: Separate out the link's socket read function.
2018-03-20 16:31:02 -07:00
Jason Volk
6e7751eaf3
ircd::server: Receive chunked transfer-encoding.
2018-03-20 14:12:44 -07:00
Jason Volk
bd80297733
ircd::server: Minor cleanup: relocate the contiguous / dynamic feature branches.
2018-03-20 01:26:42 -07:00
Jason Volk
5a1057a6a5
ircd::server: Check against a null status code to leave head mode.
2018-03-20 01:24:42 -07:00
Jason Volk
0ba91776d1
ircd::server: Move insufficient buffer checks into the creator functions.
2018-03-20 01:23:42 -07:00
Jason Volk
c8b80046d1
ircd::server: Aggregate all accounting values riding on tag into one struct.
2018-03-19 20:37:28 -07:00
Jason Volk
2e801a0219
ircd::server: Remove content_over from the state and calculate functionally.
2018-03-19 20:26:23 -07:00
Jason Volk
90bbbeaf02
ircd::server: Save content_length in tag state; fix stepping on content_over calculation.
2018-03-19 20:26:23 -07:00
Jason Volk
c5addbd450
ircd::server: Minor cleanup/reorg; Add unsupported encoding exception branch.
2018-03-19 16:07:42 -07:00
Jason Volk
7f2f855c4e
ircd::server: Reinstall the read handler after discard.
2018-03-18 13:51:43 -07:00
Jason Volk
a48426e25d
ircd/modules: Migrate some log messages to new facilities.
2018-03-15 22:25:16 -07:00
Jason Volk
0ffa3b6257
ircd::server: Condition before killing link on open error.
2018-03-13 22:44:13 -07:00
Jason Volk
b16e53337c
ircd::server: Use canonized hostport as peer remote; store net::open_opts; minor cleanup.
2018-03-13 22:44:13 -07:00
Jason Volk
8091bdd007
ircd::server: Fix the interrupted link open to close to delete transit.
2018-03-12 18:59:38 -07:00
Jason Volk
09923ff758
ircd::server: Add external interface to clear a peer error; w/ console command.
2018-03-12 14:20:39 -07:00
Jason Volk
a22e45a9f5
ircd: Break down client shutdown; improve various shutdown refusals.
2018-03-12 14:20:39 -07:00
Jason Volk
27b0dfffa4
ircd::server: Fix condition for link finished; add assertion here.
2018-03-11 13:54:51 -07:00
Jason Volk
00ba8ebdb4
ircd::ctx: Factor shared_ptr out of promise/future.
2018-03-10 23:04:58 -08:00
Jason Volk
d59de1a391
ircd::server: Improve peer state transitions and destruction paths.
2018-03-10 23:04:58 -08:00
Jason Volk
e09111ff4e
ircd::server: Case for close during init.
2018-03-09 17:10:46 -08:00
Jason Volk
b1a4ca6852
ircd::server: More descriptive message in this error.
2018-03-09 17:10:45 -08:00
Jason Volk
4e75566c94
ircd::server: Break down the shutdown process further.
2018-03-09 17:10:44 -08:00
Jason Volk
7f336200ea
ircd::server: Check and clear peer error after timeout.
2018-03-09 12:45:25 -08:00
Jason Volk
81b3916953
ircd::server: Simplify without refcounting async ops.
2018-03-09 12:45:25 -08:00
Jason Volk
f1fb3d8b49
ircd::server: Add peer::err object.
2018-03-08 08:24:19 -08:00
Jason Volk
9b44217ea4
ircd::server: Rename opts member pointer to opt.
2018-03-07 07:23:35 -08:00
Jason Volk
37753a9648
ircd::server: Make close timeout shorter on close_all (shutdown).
2018-03-06 07:50:14 -08:00
Jason Volk
ea3f7abde5
ircd::server: Add state to deny any resubmission on peer close.
2018-03-06 04:51:20 -08:00
Jason Volk
327e4da356
ircd::server: Rename node to peer.
2018-03-05 06:59:10 -08:00
Jason Volk
c7ae8d3f27
ircd::server: Fix conditions for link removal from link::close().
2018-03-04 02:09:41 -08:00
Jason Volk
90b7810921
ircd::server: Reset necessary link state if any exception before handler.
2018-03-04 02:09:41 -08:00
Jason Volk
92bef88b6c
ircd::server: Improve tag cancellation/dispersal on closing/shutdown; minor cleanup.
2018-03-03 21:56:50 -08:00
Jason Volk
4df13f5d4f
ircd::server: Add conf items for existing todos.
2018-03-03 21:54:42 -08:00
Jason Volk
b840156b37
ircd::server: Add preliminary node error state; keep erroneous node in map as cache.
2018-03-02 22:37:52 -08:00
Jason Volk
a8569fb81b
ircd::server: Improve conditional for dynamic content feature.
2018-02-27 23:12:26 -08:00
Jason Volk
34ad473bdc
ircd::server: Pass along remote's error content into our http::error.
2018-02-27 01:38:34 -08:00
Jason Volk
fc3b68b9e9
ircd::server: Add more state for async ops; adjust post points.
2018-02-27 01:00:12 -08:00
Jason Volk
7f77c68232
ircd::net/ircd::server: Rename misleading functions.
2018-02-26 22:49:44 -08:00
Jason Volk
c412beacbf
ircd::server: Add dynamic content allocation after receiving head.
2018-02-26 21:56:05 -08:00
Jason Volk
f235fc155e
ircd::server: Close and remove node on name resolution error.
2018-02-21 17:44:08 -08:00
Jason Volk
24fdfdd9fe
ircd::server: Fix error; fix regression.
2018-02-07 00:24:54 -08:00
Jason Volk
be624ca7f6
Update Copyrastafaris.
2018-02-05 21:24:34 -08:00
Jason Volk
c3ceb94478
ircd: These should be rvalue refs.
2018-01-30 23:13:27 -08:00
Jason Volk
513082b656
ircd::net: Reorg DNS related; move resolver into header.
2018-01-28 14:28:33 -08:00
Jason Volk
6bc6d9f8a1
ircd: Minor cleanup.
2018-01-28 08:44:47 -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
ed4d645523
ircd::server: Flash the HTTP header to a node callback to learn information.
2018-01-24 09:26:27 -08:00
Jason Volk
5d1790fb0d
ircd::server: Add reference count of pending async handlers.
2018-01-23 15:07:05 -08:00
Jason Volk
33796d00c1
ircd::server: Handle write errors.
2018-01-23 15:07:05 -08:00
Jason Volk
b91fcefe45
ircd::server: Default to two requests in flight in a pipe.
2018-01-22 00:54:52 -08:00
Jason Volk
72bacdedf6
ircd::server: Fix these assertions.
2018-01-22 00:54:52 -08:00
Jason Volk
f1d659a6c0
ircd::server: Add a complementary upload progress callback.
2018-01-22 00:54:52 -08:00
Jason Volk
9da18261a6
ircd::server: Add an optional download progress callback.
2018-01-22 00:54:52 -08:00
Jason Volk
ceed6d5d44
ircd::server: Reuse the read_content() function when reading partial.
2018-01-22 00:54:52 -08:00
Jason Volk
d108ec22f8
ircd::server: Invoke read handler as-needed; various fixes.
2018-01-20 13:59:24 -08:00
Jason Volk
93364b6072
ircd::server: Add content buffer deduction from single in buffer.
2018-01-20 02:30:20 -08:00
Jason Volk
31fd9346f6
ircd: Baptize server.h into the standard include group.
2018-01-18 06:09:02 -08:00
Jason Volk
9ba31f77c2
ircd::server: Various fixes; error handling; minor cleanup.
2018-01-17 21:38:17 -08:00
Jason Volk
ca6dc44a6c
ircd::server: Various fixes.
2018-01-17 03:33:08 -08:00
Jason Volk
4727e93f8a
ircd::server: Handle link open error.
2018-01-17 03:33:08 -08:00
Jason Volk
5a51638db8
ircd::server: Add options to request; add http code exception option.
2018-01-17 03:33:07 -08:00
Jason Volk
7f9f970b5b
ircd::server: Improve some exception messages conveyed back to promise.
2018-01-17 01:05:31 -08:00
Jason Volk
862fb1ebcd
ircd::server: Support robust request cancellation without disrupting pipeline.
2018-01-17 00:47:37 -08:00
Jason Volk
b9fe5c69ad
ircd::server: Additional exception propagations; fail on link unavailability.
2018-01-16 04:01:26 -08:00
Jason Volk
2520afe5a6
ircd::server: Handle insufficient head buffer; preliminary tag reassign.
2018-01-16 00:55:44 -08:00
Jason Volk
ce31219b00
ircd::server: Elide saving head in tag; add content buffer-underrun discard.
2018-01-16 00:55:44 -08:00
Jason Volk
286f117ef8
ircd::server: Add idle link removal when over pool min; stubs for node decision-making.
2018-01-16 00:55:44 -08:00
Jason Volk
8536c57982
ircd::server: Minor renames; minor cleanup; improve some error handlers.
2018-01-15 20:26:27 -08:00
Jason Volk
1e0fe2b3d5
ircd::server/net: Proper snomask on these log calls.
2018-01-15 19:28:55 -08:00
Jason Volk
bf99718a0f
ircd::server: Basic pipeline.
2018-01-15 19:03:32 -08:00
Jason Volk
8e9bae5209
ircd::server: Add stats accumulation; develop preliminary dispatch; various.
2018-01-15 19:02:26 -08:00
Jason Volk
59621eb266
ircd::server: Improve write stack; add close_all(); various.
2018-01-15 03:12:56 -08:00