0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-11-26 08:42:34 +01:00
Commit graph

1888 commits

Author SHA1 Message Date
Jason Volk
31fd9346f6 ircd: Baptize server.h into the standard include group. 2018-01-18 06:09:02 -08:00
Jason Volk
78b77f9da8 ircd::ctx: Eliminate the shared_ptr in pool::async; minor cleanup. 2018-01-18 06:05:56 -08:00
Jason Volk
90ea730a04 ircd::json: Add recursion depth checking. 2018-01-18 06:05:56 -08:00
Jason Volk
c9b89ec6ef ircd::db: Plan on not sending any exceptions through RocksDB... 2018-01-18 03:55:28 -08:00
Jason Volk
d436861aed ircd::db: Update comment. 2018-01-18 03:55:28 -08:00
Jason Volk
e5a50a0b79 ircd: Use address of ::gettimeofday to resolve error in g++-7. 2018-01-17 21:38:18 -08:00
Jason Volk
2c8154dfe4 ircd::info: Add additional line of information in debug log. 2018-01-17 21:38:17 -08:00
Jason Volk
d9c6737b28 ircd: Use feature test macros here. 2018-01-17 21:38:17 -08:00
Jason Volk
408e8dfb47 configure: Add <new> header. 2018-01-17 21:38:17 -08:00
Jason Volk
ce89a705c0 ircd::db: Add remaining environment stubs. 2018-01-17 21:38:17 -08:00
Jason Volk
169f5aef84 ircd::db: Add data() participant for rocksdb::Slice. 2018-01-17 21:38:17 -08:00
Jason Volk
87f0f3bc5a ircd::db: Add additional environment stubs for writable_file; minor cleanup. 2018-01-17 21:38:17 -08:00
Jason Volk
48c798de3f ircd::db: Add size() participant for rocksdb::Slice. 2018-01-17 21:38:17 -08:00
Jason Volk
625dc73978 ircd::db: Skeleton stubs for basic environment. 2018-01-17 21:38:17 -08:00
Jason Volk
79447c504a ircd::db: Reorg internal headers to directory. 2018-01-17 21:38:17 -08:00
Jason Volk
e4f6b64fec ircd::db: Update copyrights; use doxygen comments; minor cleanup. 2018-01-17 21:38:17 -08:00
Jason Volk
9ba31f77c2 ircd::server: Various fixes; error handling; minor cleanup. 2018-01-17 21:38:17 -08:00
Jason Volk
557b521d62 ircd::info: Update info. 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
6fc8de8587 ircd::ctx: Enforce semantics in mutex / shared_mutex; assertion related. 2018-01-17 03:33:08 -08:00
Jason Volk
b93b294d7b ircd::ctx: Validate all state access in ctx::promise. 2018-01-17 03:33:08 -08:00
Jason Volk
59e921d453 ircd::ctx: Enforce semantics on ctx::list. 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
8366c735b4 ircd::ctx: Add this non-standard finished() observer for now. 2018-01-16 22:54:08 -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
6682f0ce80 ircd::net: On disconnect, turn an EOF ec into a success. 2018-01-15 19:46:23 -08:00
Jason Volk
8e9bae5209 ircd::server: Add stats accumulation; develop preliminary dispatch; various. 2018-01-15 19:02:26 -08:00
Jason Volk
e4b1485db0 ircd::ctx: Specify missing semantics for promise. 2018-01-15 18:00:54 -08:00
Jason Volk
59621eb266 ircd::server: Improve write stack; add close_all(); various. 2018-01-15 03:12:56 -08:00
Jason Volk
6b7399bf4a ircd::fs: Simplify API/AIO by eliminating callback: ctx yield only for now. 2018-01-15 03:12:56 -08:00
Jason Volk
a8efc59adf ircd::server: Split tag from request.h. 2018-01-15 03:12:56 -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
2962ecdc72 ircd: Add preliminary RFC1035 support. 2018-01-14 20:45:30 -08:00
Jason Volk
b2503ba1d0 ircd::util: Fix bswap() to not rely on data()/size() et al. 2018-01-14 20:45:30 -08:00
Jason Volk
af0c02cc10 ircd::buffer: Allow returning completed() mutable_buffer. 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
7b62568ff0 ircd::ctx: Replace std::deque's in ctx::mutex and ctx::shared_mutex. 2018-01-13 23:45:36 -08:00
Jason Volk
dcd36f8200 ircd::ctx: Replace the std::deque with a ctx::list for ctx::dock's queue. 2018-01-13 23:45:36 -08:00
Jason Volk
df0e59a5e0 ircd::ctx: Add custom intrinsic list structure for contexts. 2018-01-13 23:45:36 -08:00
Jason Volk
7c4659a99f ircd::server: Develop basic infrastructure. 2018-01-13 21:17:10 -08:00
Jason Volk
15bf7f5f6d ircd::net: Add non-blocking discard_any(socket). 2018-01-13 20:21:29 -08:00
Jason Volk
6643cad758 ircd::http: Allow default construction on response head. 2018-01-13 18:03:26 -08:00
Jason Volk
56cefcb650 ircd::server: Move into directory; various cleanup. 2018-01-13 18:03:04 -08:00
Jason Volk
c83665ca6c ircd: Reorg client; add class members; pointer to current request; conf, etc. 2018-01-13 17:58:11 -08:00
Jason Volk
fa3afc7ad7 ircd::server: Preliminary client request pipeline framework. 2018-01-12 18:57:58 -08:00
Jason Volk
c1a3fabd5a ircd::openssl: Add function to print subject of certificate. 2018-01-12 15:31:58 -08:00
Jason Volk
311df26156 ircd: Expose utilities for boost errors. 2018-01-12 15:04:30 -08:00
Jason Volk
458869f9ef ircd::http: Remove response helper; add a couple fields to parse; minor cleanup. 2018-01-12 13:15:30 -08:00
Jason Volk
ed0760ef8e ircd: Minor cleanup of rfc1459 header. 2018-01-12 13:13:37 -08:00
Jason Volk
d3be7129cf ircd: Minor housekeeping fixes. 2018-01-12 03:22:57 -08:00
Jason Volk
4db2ac3ab7 ircd: Cleanup standard usage importations. 2018-01-12 03:00:23 -08:00
Jason Volk
d566e90402 ircd::util: Move more utils into util; minor cleanup. 2018-01-12 02:59:21 -08:00
Jason Volk
2a65c17ce3 ircd::util: Split out typography related; minor cleanup. 2018-01-11 23:36:42 -08:00
Jason Volk
239eb0e9ad ircd::openssl: Support EC. 2018-01-11 22:29:00 -08:00
Jason Volk
8c869e3ee5 ircd::openssl: Convenience to print information about an X509 from a PEM. 2018-01-11 22:29:00 -08:00
Jason Volk
04fa556c58 ircd: Reflow the request handlers to give the resource more control over content. 2018-01-11 22:02:34 -08:00
Jason Volk
1f7ed51f3b ircd::http: Remove request parser helper from here. 2018-01-11 22:02:34 -08:00
Jason Volk
7aa1dedd86 ircd::http: Add 413 PAYLOAD_TOO_LARGE. 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
37b98b5a82 ircd::openssl: Add flags to the X509 printer. 2018-01-11 22:02:33 -08:00
Jason Volk
29b135de0a ircd::ctx: Export critical_assertion down to ircd::. 2018-01-11 18:37:08 -08:00
Jason Volk
b0acc95559 ircd::util: Update syscall() comments; minor cleanup. 2018-01-11 03:21:19 -08:00
Jason Volk
c698101d6d ircd::fs: Initial asynchronous file IO support for Linux platforms. 2018-01-10 22:09:05 -08:00
Jason Volk
c4ea3cc3e3 ircd: Utils for std::system_error related; minor cleanup. 2018-01-10 21:43:49 -08:00
Jason Volk
40bead52b7 ircd: Move and breakup util.h into util/; move fs.h into fs/. 2018-01-10 21:34:21 -08:00
Jason Volk
76e16e4d80 ircd::net: Improve remote construction; hostport/ipport related. 2018-01-10 01:20:16 -08:00
Jason Volk
8a43a37733 ircd: Import std::nothrow_t. 2018-01-10 00:57:43 -08:00
Jason Volk
84bbeecc83 ircd: Move sys/resource / coredump related out of libircd. 2018-01-10 00:56:33 -08:00
Jason Volk
8acdf52443 ircd::fs: Use direct kernel interface rather than glibc aio nonsense. 2018-01-10 00:55:08 -08:00
Jason Volk
6a552e349e ircd: Preliminary AIO experimental stub on linux platforms. 2018-01-09 16:49:53 -08:00
Jason Volk
78c2af094e ircd::util: Extend return value in syscall() suite. 2018-01-09 16:24:42 -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
65a81301a7 ircd: Add fwd decl of boost::system::errc namespace. 2018-01-08 13:42:54 -08:00
Jason Volk
9e086e9acd ircd: Add ircd::assertion and exception suite for assertive errors. 2018-01-08 13:42:54 -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
4fa7ad9286 ircd::ctx: Add use_future_t; minor cleanup. 2018-01-08 12:40:09 -08:00
Jason Volk
0cafcd7b84 ircd::ctx: Update async() with moveable promise. 2018-01-08 12:39:05 -08:00
Jason Volk
f8127957c3 ircd: Various error handling fixes/cleanup. 2018-01-08 03:09:00 -08:00
Jason Volk
a9bd77a67d ircd::net: Add an internal non-blocking read call; minor comments. 2018-01-08 03:08:59 -08:00
Jason Volk
a1f0075d62 ircd::net: Improve the timeout callback related. 2018-01-08 03:08:59 -08:00
Jason Volk
9bb927712e ircd::net: Kill implicit conversion. 2018-01-08 03:08:59 -08:00
Jason Volk
54d6cbc8c1 ircd: Fwd declare boost::system::error_code; minor cleanup. 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
499e322e83 ircd::net: Fix hostport split default. 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
4561bb21a0 ircd: Various fixes to net related call points. 2018-01-06 23:27:02 -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
0e1b605991 ircd::openssl: Add convenience to copy out certificate CN. 2018-01-05 16:59:26 -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
b878fd6ed0 ircd::openssl: Add X509_STORE_CTX suite. 2018-01-04 22:00:10 -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
8ccdd8568f doc: Move conventions to STYLE; ircd: Add additional README related. 2018-01-04 17:44:34 -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
2bca92d85d ircd: We don't need this here; RocksDB has interface. 2018-01-04 17:44:34 -08:00
Jason Volk
58c26b616c ircd: Update README note on assert(). 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
864249febb ircd: Update README with assert() related. 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
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
baa35a368a ircd: Update include/ircd README with conventions section. 2017-12-29 15:53:49 -07:00
Jason Volk
9871332957 fixup! Pin boost to 1.66.0. 2017-12-29 15:53:39 -07:00
Jason Volk
c77ee478e5 ircd::ctx: Add custom refcnt to allow copyable promise. 2017-12-29 15:32:08 -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
bf9db52428 ircd::net: Include a remote::resolved() indicator. 2017-12-28 15:25:57 -07:00
Jason Volk
1bc4b46fbd fixup! configure.ac: Add c++17 header <optional>. 2017-12-28 14:02:24 -07:00
Jason Volk
59bd14e862 ircd:Ⓜ️ Update README. 2017-12-25 21:02:36 -07:00
Jason Volk
3d1a173358 ircd::net: Add extern null_remote. 2017-12-24 21:54:59 -07:00
Jason Volk
e63632c78f ircd::buffer: Ensure default constructions available in all derivatives. 2017-12-24 21:54:59 -07:00
Jason Volk
36142718f6 ircd::http: Massage additional header related into response interface/stack. 2017-12-24 21:54:59 -07:00
Jason Volk
c20a2927d0 ircd: Minor reorg client/resource relationship. 2017-12-24 21:54:59 -07:00
Jason Volk
ae8a8e736a ircd: Comment on ctype(string_view). 2017-12-24 21:54:59 -07:00
Jason Volk
8604819bd5 ircd::buffer: Remove the terminated string copy from this context. 2017-12-24 21:54:59 -07:00
Jason Volk
04ad57965e ircd::ctx: Fix promise move constructions etc. 2017-12-24 21:54:59 -07:00
Jason Volk
abcf2c2c14 ircd::buffer: Add convenience completed() conversion to stream_buffer. 2017-12-24 21:54:59 -07:00
Jason Volk
9f75f80c21 ircd::ctx: Consolidate release sequence in mutex/shared_mutex. 2017-12-24 21:54:59 -07:00
Jason Volk
df38f2c8fa ircd::util: Add reentrancy assertion utility. 2017-12-24 21:54:59 -07:00
Jason Volk
ef6152c0ef ircd: Move openssl.h way down here so it can use json. 2017-12-24 21:54:59 -07:00
Jason Volk
51ebd9c346 ircd::http: Update HTTP send-sides to write to stream_buffer. 2017-12-24 21:54:59 -07:00
Jason Volk
56f4d156af ircd::buffer: Attempt to tighten these buffers templates by specifying buffer. 2017-12-24 21:54:59 -07:00
Jason Volk
18ef10643b ircd::util: Narrow the coverage of the size() -> sizeof(T) template. 2017-12-24 21:54:59 -07:00
Jason Volk
7d863091bb ircd::buffer: Add the stream_buffer. 2017-12-24 21:54:58 -07:00
Jason Volk
40d6b6055b ircd::http: Remove the write_closure from the request parse object. 2017-12-24 21:54:58 -07:00
Jason Volk
f37311a3f1 ircd::util: Add an endian bswap; add more data()/size() participants. 2017-12-24 21:54:58 -07:00
Jason Volk
8d2e098d16 ircd::buffer: Proper exports of templates to compete in ircd::. 2017-12-24 21:54:58 -07:00
Jason Volk
6b57387cc2 ircd::openssl: Add several suites of utils for OpenSSL/X.509/RSA/BIGNUM et al. 2017-12-24 21:54:58 -07:00
Jason Volk
bdf696b91f ircd::fs: Add these string_view overloads.
This is to not force string conversions in callerspace. Right now everything
gets converted to std::string internally but eventually string_view may be
preferable. Either way the overload finds the best behavior for now.
2017-12-24 20:25:40 -07:00
Jason Volk
27721860c2 ircd::fs: Add a file sizing suite. 2017-12-24 20:25:40 -07:00