0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-10-09 09:08:53 +02:00
Commit graph

3118 commits

Author SHA1 Message Date
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
63d28a77cc ircd:Ⓜ️:state: Make it right. 2018-02-02 15:06:12 -08:00
Jason Volk
50a0983fa0 ircd:Ⓜ️:state: Make it work. 2018-02-02 14:58:56 -08:00
Jason Volk
8296adb6c3 ircd:Ⓜ️:state: Try using a separate child array to store values at any level (partial). 2018-02-02 14:58:55 -08:00
Jason Volk
c3ceb94478 ircd: These should be rvalue refs. 2018-01-30 23:13:27 -08:00
Jason Volk
a4df66788c ircd::openssl: Minor simplify. 2018-01-30 22:53:28 -08:00
Jason Volk
a20e2c2319 ircd::json: Minor cleanup; note todo for exp. 2018-01-30 13:37:13 -08:00
Jason Volk
6f1220dc5f ircd:Ⓜ️ Cleanup and prep m::state related. 2018-01-30 13:33:17 -08:00
Jason Volk
365fabe638 ircd::db: Rename iov to txn (since iov should really be a rocksdb::SliceParts). 2018-01-30 09:58:36 -08:00
Jason Volk
0d8a646ccc ircd:Ⓜ️ Split state:: off dbs::. 2018-01-29 09:36:05 -08:00
Jason Volk
f7e928e852 ircd: Simplify various string generations. 2018-01-29 08:39:06 -08:00
Jason Volk
5f6b5852b1 ircd::rfc1035: Add CNAME RR; minor cleanup. 2018-01-28 21:18:26 -08:00
Jason Volk
aeaa031cce ircd::rfc1035: Add SRV record RR; add A/AAAA specific RR structs; 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
7057e1d98d ircd::rfc1035: Various question / answer development; add header debug. 2018-01-28 21:18:25 -08:00
Jason Volk
68b408a065 ircd: Add allocated string convenience for u2a(). 2018-01-28 21:18:25 -08:00
Jason Volk
513082b656 ircd::net: Reorg DNS related; move resolver into header. 2018-01-28 14:28:33 -08:00
Jason Volk
4cfd41327a ircd:Ⓜ️ Checkpoint single-level/splitless state query. 2018-01-28 08:45:09 -08:00
Jason Volk
6bc6d9f8a1 ircd: Minor cleanup. 2018-01-28 08:44:47 -08:00
Jason Volk
b926e6b42d ircd::db: Add nothrow overloads to the column viewer. 2018-01-27 10:07:08 -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
4818d7b651 ircd: Fix undefined RB_DEBUG for numerical RB_DEBUG_LEVEL. 2018-01-26 21:49:41 -08:00
Jason Volk
52ee74fe55 ircd::json: Place missing break; cleanup branches. 2018-01-26 19:27:12 -08:00
Jason Volk
8d59fab2dc ircd:Ⓜ️ Print less of the cert to the info log on init. 2018-01-26 19:27:12 -08:00
Jason Volk
638843ade1 ircd::openssl: Add wrapper to print certificate subject from a PEM buffer. 2018-01-26 19:27:12 -08:00
Jason Volk
fd2a7974e8 ircd: Minor cleanup; comments; spacing. 2018-01-26 19:27:12 -08:00
Jason Volk
a9cada32db ircd:Ⓜ️ Add dbs namespace; remove old interfaces; checkpoint various. 2018-01-26 18:12:46 -08:00
Jason Volk
ed5b4d0641 ircd:Ⓜ️ Room interface related. 2018-01-26 12:23:28 -08:00
Jason Volk
21518623fe ircd:Ⓜ️:v1: Minor cleanup: remove extra initializers. 2018-01-26 12:20:02 -08:00
Jason Volk
bb26abc23a ircd:Ⓜ️ Use the template iov composer in these places. 2018-01-26 10:29:36 -08:00
Jason Volk
b34608fba2 ircd::db: Update arguments to ircd::buffer; fix error. 2018-01-26 10:29:36 -08:00
Jason Volk
69d9d3c062 ircd: Reduce log facility of resource registration. 2018-01-25 17:29:37 -08:00
Jason Volk
9886522da3 ircd:Ⓜ️ Identify public signing key by base58 of hash; truncate that. 2018-01-25 12:16:43 -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
cc1b82cd59 ircd::fs: Log a warning when there's no support for any async IO. 2018-01-24 11:50:50 -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
7bbe116b88 ircd::http: Parse the server string into the response head. 2018-01-24 09:15:16 -08:00
Jason Volk
429e5e1dcf ircd::json: Fix treatment of already stringified number. 2018-01-24 07:30:36 -08:00
Jason Volk
ac27005cd7 ircd::json: Move these outside of value class. 2018-01-23 21:18:47 -08:00
Jason Volk
a79af0e606 ircd: Fix redundant critical assertive messages in debug builds. 2018-01-23 20:58:33 -08:00
Jason Volk
091657ec45 ircd: Ensure ID of acting main thread is properly sampled. 2018-01-23 17:56:05 -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
c06dd2e9df ircd::db: Split internal db header. 2018-01-23 16:35:28 -08:00
Jason Volk
22ae47ebe6 ircd:Ⓜ️ Show hash value in the multiline pretty(event). 2018-01-23 16:35:28 -08:00
Jason Volk
dd47d71905 ircd:Ⓜ️ Remove this derp. 2018-01-23 16:35:28 -08:00
Jason Volk
56191db9bc ircd:Ⓜ️ Add v1::send response helper; comments; minor cleanup. 2018-01-23 15:07:05 -08:00
Jason Volk
354cadb7dc ircd::net: Close the socket on a handler unexpected. 2018-01-23 15:07:05 -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
1a90a91a7b ircd::db: Suppress this noise for now. 2018-01-23 15:07:05 -08:00
Jason Volk
89ccdaa510 ircd::json: Proper throw when iov::at() key is not found. 2018-01-23 15:07:05 -08:00
Jason Volk
0c838448c2 ircd:Ⓜ️ Add send/send_join to v1; fix buffer sizes. 2018-01-22 10:06:27 -08:00
Jason Volk
c79539ebf3 ircd:Ⓜ️ Elaborate v1 federation requests in directory. 2018-01-22 03:34:12 -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
e63f06ecc2 ircd: Various minor cleanup. 2018-01-22 00:54:52 -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
8ea6e4f96d ircd:Ⓜ️ Remove cruft in id grammar. 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
a360c6f28f ircd:Ⓜ️ Add origin_server_ts to pretty event output. 2018-01-22 00:54:52 -08:00
Jason Volk
4ce6a8ac0a ircd: Remove various cruft. 2018-01-22 00:54:52 -08:00
Jason Volk
1d9d5fab49 ircd::info: Involve utsname on supported; improve startup information. 2018-01-22 00:54:52 -08:00
Jason Volk
7867e7a0b4 ircd::http: Support view of full URI in the request::head; use in X-Matrix auth. 2018-01-22 00:54:51 -08:00
Jason Volk
87effab106 Update configuration and library object versions. 2018-01-22 00:54:51 -08:00
Jason Volk
facf8e2e78 ircd: Add back URI composition for the X-Matrix auth; report errors to log. 2018-01-22 00:54:51 -08:00
Jason Volk
63ddbf8fbe ircd:Ⓜ️ Add addl name:: keys; cleanup event related. 2018-01-22 00:54:51 -08:00
Jason Volk
648981a4ce ircd: Add Base58 support. 2018-01-22 00:54:51 -08:00
Jason Volk
d108ec22f8 ircd::server: Invoke read handler as-needed; various fixes. 2018-01-20 13:59:24 -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
617b0d0777 ircd:Ⓜ️ Rework/cleanup request/session related. 2018-01-20 13:58: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
a6bdb38e4d ircd::http: Remove the URI composition from the http::request construction. 2018-01-20 02:29:03 -08:00
Jason Volk
6e2cf45571 ircd::net: Move acceptor into header; minor cleanup. 2018-01-19 06:55:48 -08:00
Jason Volk
09dc4acf06 ircd: Remove legacy stringops. 2018-01-19 02:47:08 -08:00
Jason Volk
497b4ec552 ircd:Ⓜ️ Improve MXID ctor related. 2018-01-19 02:47:08 -08:00
Jason Volk
936f138a3f ircd::fmt: Cleanup. Reduce sketchiness. 2018-01-19 02:47:08 -08:00
Jason Volk
0a6ea976a5 ircd: Split base64 from lexical. 2018-01-18 18:17:02 -08:00
Jason Volk
054c50edcc ircd::db: Split up / reorg database/env related. 2018-01-18 17:59:22 -08:00
Jason Volk
31fd9346f6 ircd: Baptize server.h into the standard include group. 2018-01-18 06:09:02 -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
a9dabd661b ircd: Propagate better error back to user here for now. 2018-01-18 03:55:28 -08:00
Jason Volk
9f6eda4c3d ircd::fs: Further simplify AIO interface. 2018-01-18 03:55:12 -08:00
Jason Volk
09e32dce56 ircd::db: Move this out of the ptr's destructor. 2018-01-17 21:44:56 -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
ce89a705c0 ircd::db: Add remaining environment stubs. 2018-01-17 21:38:17 -08:00
Jason Volk
8f3483391e ircd: Minor log suppressions via comment. 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
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
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
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
Jason Volk
745a00b332 ircd: Tweak client error handling stack apropos request timeout. 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
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
314bcb3d30 ircd::net: Update read()/write() strategies. 2018-01-14 20:45:30 -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
c3423ad80b ircd::net: Fix error. 2018-01-13 19:19:29 -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
f71a728225 ircd::net: Fix bug where received data is stuck in SSL buffer. 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
0f0c50017a ircd::logger: Take stuff off stderr to not compete with console input. 2018-01-12 16:06:01 -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
c1a3fabd5a ircd::openssl: Add function to print subject of certificate. 2018-01-12 15:31:58 -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
458869f9ef ircd::http: Remove response helper; add a couple fields to parse; minor cleanup. 2018-01-12 13:15:30 -08:00
Jason Volk
11adbae89a ircd::net: decorate the peek. 2018-01-12 03:13:49 -08:00
Jason Volk
ebb48d96a9 ircd::http: Burning desire to dedupe this. 2018-01-11 23:38:12 -08:00
Jason Volk
51d729fa3a ircd::db: Use off-stack buffer here for logging. 2018-01-11 22:29:00 -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
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
d151d96d83 ircd: Fix/improve response header related. 2018-01-11 22:02:34 -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
cd0dc9a0ff ircd::http: Simplify server response generation. 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
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
37b98b5a82 ircd::openssl: Add flags to the X509 printer. 2018-01-11 22:02:33 -08:00
Jason Volk
dc4b17f84a ircd/modules: Fix init prio removal related. 2018-01-11 03:24:22 -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
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
fed3265d33 ircd::fmt: Unrestrict long long from fmt specifiers. 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
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
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
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
f8127957c3 ircd: Various error handling fixes/cleanup. 2018-01-08 03:09:00 -08:00
Jason Volk
b507262582 ircd: Remove the close+wait after exiting client::main(). 2018-01-08 03:09:00 -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
54d6cbc8c1 ircd: Fwd declare boost::system::error_code; minor cleanup. 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
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
e4d1005965 ircd: Minor formatting. 2018-01-05 01:02:40 -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
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
fa85596b6b ircd: Various minor cleanup. 2017-12-30 01:17:10 -07: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
01feeaab6e ircd::db: Provide len to elide the strlen(buf) on string_view{buf}. 2017-12-28 13:32:44 -07:00
Jason Volk
db24cef649 ircd::json: Minor cleanup/formatting. 2017-12-24 21:54:59 -07:00
Jason Volk
3d1a173358 ircd::net: Add extern null_remote. 2017-12-24 21:54:59 -07:00
Jason Volk
09d0c9b2d6 ircd: Respond with Allow header when 405'ing. 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
cd4586e780 ircd: Remove these extra flushes/clears. 2017-12-24 21:54:59 -07:00
Jason Volk
47293f2dc7 ircd: Simplify logger with stream_buffer. 2017-12-24 21:54:59 -07:00
Jason Volk
f4e85af4c2 ircd::log: Use reentrance_assertion; make principal buffer static. 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
8178d96f64 ircd: Add iov size to client/server IO debug. 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
f8d3fee8b6 ircd::client: Add comments; move around error handlers; related. 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
eab178b97f ircd::net: Show a coarse io stat on disconnect for now. 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
Jason Volk
acff6139e9 ircd::http: Move request error handlers out of http (to client). 2017-12-24 20:25:40 -07:00
Jason Volk
5f939cc039 Remove certain cruft from .gitignore. 2017-12-12 14:59:41 -07:00
Jason Volk
f771e67dc7 Update library info. 2017-12-12 14:59:41 -07:00
Jason Volk
ada2b4ad17 ircd::http: Minor cleanup/reorg; use c_str() assertion in places. 2017-12-12 14:59:41 -07:00
Jason Volk
42246d8d5f ircd::json: Fix an empty string test. 2017-12-12 14:59:40 -07:00
Jason Volk
80931e4e86 ircd:Ⓜ️ Split m.cc; distribute inits; modules: Checkpoint matrix. 2017-12-12 14:59:40 -07:00
Jason Volk
f931308850 ircd/modules: Update resource / opts construction arguments. 2017-12-12 14:59:40 -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
03dea97bb2 ircd: Add preliminary RFC3986 grammar; move urlencoding there. 2017-12-12 14:59:40 -07:00
Jason Volk
d14d8a0f0f ircd::rfc1459: Cleanup namespace. 2017-12-12 14:59:40 -07:00
Jason Volk
e0f64a7ca2 ircd:Ⓜ️ Transitional improvements to mxid grammars & tools. 2017-12-12 14:59:40 -07:00
Jason Volk
1ddf0f546a ircd: Update various comments / documentation. 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
0bd2f896d0 ircd::mods: Add remangling to module system (pre dll::smart_lib); cleanup. 2017-12-02 13:07:55 -08:00
Jason Volk
2685125f05 ircd::openssl: Fix memleak. 2017-12-02 13:07:15 -08:00
Jason Volk
1a1a50f5f3 Checkpoint reorganization. 2017-11-30 12:30:19 -08:00
Jason Volk
7ef3b67213 ircd: Fix server.h inclusion checkpoint. 2017-11-30 11:23:48 -08:00
Jason Volk
3a057c80a4 ircd: Add preliminary skeleton for cuckoo suite. 2017-11-30 11:23:48 -08:00
Jason Volk
315d86a8d2 ircd: Checkpoint temp server link uniplexing... 2017-11-30 11:23:47 -08:00
Jason Volk
f928630747 ircd::db: Checkpoint current experimentals here. 2017-11-30 11:23:47 -08:00
Jason Volk
5d53cdab5e ircd:Ⓜ️ Checkpoint matrix. 2017-11-30 11:23:47 -08:00
Jason Volk
1c4d519db7 ircd::db: Use log::NOTICE facility rather than log::WARNING here. 2017-11-30 11:23:47 -08:00
Jason Volk
219d1ba245 ircd::json: Fix empty value stringification cases; Fix serialized number printing. 2017-11-30 11:23:47 -08:00
Jason Volk
96499c0e2a ircd:Ⓜ️ Improve room interface; Improve bootstrap/init related. 2017-11-30 11:23:47 -08:00
Jason Volk
2fa64e5b87 ircd::json: Update grammars: string escapes; generalize rules without raw[] if possible. 2017-11-30 11:23:47 -08:00
Jason Volk
d354991c68 ircd::json: Stub a canonize() function which isn't complete yet. 2017-11-30 11:23:47 -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
d1f0667b1e ircd: Add validations of outgoing JSON. 2017-11-30 11:23:47 -08:00
Jason Volk
13aff1d7a8 ircd::rfc1459: Move grammars out of includes. 2017-11-30 11:23:46 -08:00
Jason Volk
bcebeb420d ircd: Add interrupt for server dtor. 2017-11-30 11:23:46 -08:00
Jason Volk
97672ccc8f ircd: Preliminary initial conf. 2017-11-30 11:23:46 -08:00
Jason Volk
0e2fe01426 ircd::json: Add a validator suite. 2017-11-30 11:23:46 -08:00
Jason Volk
b17293ee86 ircd::net: Add existential checks here. 2017-11-30 11:23:46 -08:00
Jason Volk
ea26fd0016 ircd::fs: Path cleanup. 2017-11-30 11:23:46 -08:00
Jason Volk
9df74c910c ircd::openssl: Minor cleanup. 2017-11-30 11:23:46 -08:00
Jason Volk
366b0531a1 ircd: Remove this warning message when everything is normal. 2017-11-30 11:23:46 -08:00
Jason Volk
ae289de529 ircd::ctx: Improve the pool counters. 2017-11-30 11:23:46 -08:00
Jason Volk
a046a56d0d ircd: Wrap the std::terminate() handler and add some related toys. 2017-11-30 11:23:46 -08:00
Jason Volk
f81a9d8da9 ircd::db: Remove cruft from moving query out of db. 2017-11-30 11:23:46 -08:00
Jason Volk
31b778ee0b ircd:Ⓜ️ Improve server keys related functions. 2017-11-30 11:23:46 -08:00
Jason Volk
8869b1577c ircd: Main init for server. 2017-11-30 11:23:45 -08:00
Jason Volk
6f392049ba ircd: Use the asio error stringifier. 2017-11-30 11:23:45 -08:00
Jason Volk
62caa95ec8 ircd: Move client request exception handler to where the rest are. 2017-11-30 11:23:45 -08:00
Jason Volk
1b1e9ace7a ircd::log: Polishing and commentary and assertions. 2017-11-30 11:23:45 -08:00
Jason Volk
532f416a3d ircd: Develop various server. 2017-11-30 11:23:45 -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
0ef29fc433 ircd:Ⓜ️ Replace plaintext password storage with sha256. 2017-11-30 11:23:45 -08:00
Jason Volk
4793e4906c ircd:Ⓜ️ Checkpoint matrix top-half / modules. 2017-11-30 11:23:44 -08:00
Jason Volk
92c6f6c1a9 ircd: Split up matrix.cc. 2017-11-30 11:23:44 -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
87c6f91530 ircd::db: Improve column find by name from linear to logn; can still be O(1) with more work. 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
78e8a3668d ircd::json: Add missing stringify participant; minor cleanup. 2017-11-30 11:23:44 -08:00
Jason Volk
c16a6e8baa ircd::ctx: Adjust prof defaults; minor cleanup. 2017-11-30 11:23:43 -08:00
Jason Volk
ea097c9f53 ircd: Split crypto.cc to hash.cc and rand.cc. 2017-11-30 11:23:43 -08:00
Jason Volk
b172fd5739 ircd::fmt: Assert for not finished before loop break. 2017-11-30 11:23:43 -08:00
Jason Volk
0df7ad850f ircd::net: Quick & likely success branch for these handlers. 2017-11-30 11:23:43 -08:00
Jason Volk
d7136bb393 ircd: Improve and comment on runlevel / client interruption. 2017-11-30 11:23:43 -08:00
Jason Volk
99e431c8da ircd::ctx: Further fix and clarify the POST/DETACH leak potential. 2017-11-30 11:23:42 -08:00
Jason Volk
7f97ffdede ircd::json: Add support for parsing a vector of objects (non-standard). 2017-11-30 11:23:42 -08:00
Jason Volk
d09a3096be ircd::json: Clean up expectation failure catching. 2017-11-30 11:23:42 -08:00
Jason Volk
26800d5db4 ircd::ctx: Improve the spawn sequence to avoid complications. 2017-11-30 11:23:42 -08:00
Jason Volk
570f4d7f54 ircd::json: stringify empty array as expected by serialized size. 2017-11-30 11:23:42 -08:00
Jason Volk
2902fcf71d ircd/charybdis: Fix these stream manipulations. 2017-11-30 11:23:42 -08:00
Jason Volk
2930b93dcb ircd::net: Various net/client/listener bugfixes/cleanup. 2017-11-30 11:23:42 -08:00
Jason Volk
526bfa23e1 ircd:Ⓜ️ Add pretty/pretty_oneline for preferred event viewing; minor event rel. 2017-11-30 11:23:41 -08:00
Jason Volk
ac756a8856 ircd: Use dynamic allocations for these resource response buffers. 2017-11-30 11:23:41 -08:00
Jason Volk
bc5f429681 ircd::db: Fix a rocksdb api misuse. 2017-11-30 11:23:41 -08:00
Jason Volk
2ce9b0521f ircd::net: Various fixes / error handling / api. 2017-11-30 11:23:41 -08:00
Jason Volk
f36d3e2209 ircd::log: Fix these clear and flush points. 2017-11-30 11:23:41 -08:00
Jason Volk
32e0d3c5df ircd::ctx: Improve spawning; fix bug. 2017-11-30 11:23:41 -08:00
Jason Volk
ae34691610 ircd::log: Optimize logger to use a single buffer + single write. 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
8b573378e8 ircd: Fixes to client related to net. 2017-11-30 11:23:40 -08:00
Jason Volk
f10662fe7d ircd:Ⓜ️ Checkpoint matrix. 2017-11-30 11:23:40 -08:00
Jason Volk
6a024e9e16 ircd: Add preliminary 'server' as a client to *other* servers. 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
38023e0d9b ircd::openssl: Introduce openssl namespace for anything related to driving that beast. 2017-11-30 11:23:40 -08:00
Jason Volk
417e8ecad0 ircd::db: Fix comment; suppress a very verbose seek log message here. 2017-11-30 11:23:40 -08:00
Jason Volk
6562efb11e ircd::json: Add 'defaults' construct to iov. 2017-11-30 11:23:40 -08:00
Jason Volk
4a44d0368a ircd::http: Make server response header more like the User-Agent we also use as a client. 2017-11-30 11:23:39 -08:00
Jason Volk
92270b74ac ircd::http: Parse a connection header. 2017-11-30 11:23:39 -08:00
Jason Volk
a67228e8b5 ircd::log: Allow CRITICAL log messages to break through suppression. 2017-11-30 11:23:39 -08:00
Jason Volk
14fea52dcb ircd::net: Add async overloads; various cleanup. 2017-10-19 03:55:24 -07:00
Jason Volk
b83d7da7a0 ircd::log: Make sure the stream is flushed and reset when relinquishing control. 2017-10-19 01:38:25 -07:00
Jason Volk
0f51c84fb0 ircd::net: Move net into directory. 2017-10-19 01:30:19 -07:00
Jason Volk
0f00f21a1d ircd: Add preliminary tcmalloc version check. 2017-10-19 01:05:41 -07:00
Jason Volk
7feb0dff79 ircd: client: various cleanup. 2017-10-19 01:04:52 -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
c157967559 irct::ctx: Add this basic pool debug. 2017-10-19 00:58:43 -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
3c0d5bd5d6 ircd::db: Fix empty row seek; fix potential coherence issue on offload. 2017-10-17 00:47:30 -07:00
Jason Volk
cdcd2e2fb9 ircd: Add std::chrono lex_cast; cleanup lex_cast buffer argument related. 2017-10-17 00:41:51 -07:00
Jason Volk
0be93870ea ircd::log: Address any logger reentrancy; various cleanup. 2017-10-17 00:41:10 -07:00
Jason Volk
5797e99d81 ircd:Ⓜ️ Improve / cleanup ID related. 2017-10-15 21:54:28 -07:00
Jason Volk
33a35d5244 ircd: Add X-Matrix verification for resources. 2017-10-15 21:30:19 -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
37308b1672 ircd::log: Add context name and id into logger format. 2017-10-15 21:27:36 -07:00
Jason Volk
115940e803 ircd::http: Preserve leading slash from user's URL so we can use it for X-Matrix auth. 2017-10-15 21:26:05 -07:00
Jason Volk
87b62002dd fixup! ircd::json: Better bool related conversions etc. 2017-10-15 21:25:03 -07:00
Jason Volk
f20ff13a44 ircd::json: Sort members in during opportunity in this stringify(). 2017-10-15 21:22:18 -07:00
Jason Volk
9c875c71a6 ircd::json: Better bool related conversions etc. 2017-10-15 21:21:56 -07:00
Jason Volk
08b961351d ircd::fmt: Add more string types for the %s specifier here for now. 2017-10-15 21:20:25 -07:00
Jason Volk
5ca5f4b405 ircd::db: Improve formatting for seek debug messages. 2017-10-15 21:19:34 -07:00
Jason Volk
a3f7a41650 ircd::json: Rename json::string to json::strung and maintain json::string as intuitive type. 2017-10-15 21:18:42 -07:00
Jason Volk
124f7ea12a ircd::ctx: Add utils for getting this_ctxt name and id; truncate default name literal. 2017-10-15 21:12:58 -07:00
Jason Volk
18bbf758f3 ircd/modules: Improve path param parsing related; various m:: related. 2017-10-11 20:54:03 -07:00
Jason Volk
1a4c57653b ircd: Improve this stack buffer for now. 2017-10-11 20:54:02 -07:00
Jason Volk
6ba6cb1e7f ircd: Add version 5.0.0 to libircd. 2017-10-11 20:54:02 -07:00
Jason Volk
045d38d034 ircd::http: Add authorization; multiple-choices error; improve header proffer; cleanup/reorg. 2017-10-11 20:54:02 -07:00
Jason Volk
908fde12c4 ircd: Add string replace() utils. 2017-10-11 20:54:02 -07:00
Jason Volk
4f0de4915d ircd: Rename tokens_count() to token_count(). 2017-10-11 20:54:02 -07:00
Jason Volk
8da4874f2c ircd: Uniform initialization style for these. 2017-10-11 20:54:01 -07:00
Jason Volk
a663e80254 ircd::fs: Fix narrowing. 2017-10-11 20:54:01 -07:00
Jason Volk
3425659d7f ircd::fs: Add very preliminary aio and ircd init for such. 2017-10-11 20:54:01 -07:00
Jason Volk
dffe222a78 ircd: Improve date utils; add date formatted string output; related. 2017-10-11 20:54:01 -07:00
Jason Volk
b9f13ed2c2 ircd: Remove cruft. 2017-10-11 20:54:01 -07:00
Jason Volk
e3963da007 ircd: Various comments added/modified. 2017-10-11 18:18:20 -07:00
Jason Volk
2839eb4b50 ircd::log: Make logger threadsafe by injecting other thread's messages into ios. 2017-10-11 18:18:20 -07:00
Jason Volk
eb56befef0 ircd: Improve thread id related; add public functions to post to ios. 2017-10-11 18:18:19 -07:00
Jason Volk
638f5469c5 ircd::json: Minor conflict fix. 2017-10-11 18:18:19 -07:00
Jason Volk
5c69d3df5a ircd::crh: Improve hash related interface; comments etc. 2017-10-11 18:18:19 -07:00
Jason Volk
edcd95cd8f modules/ircd:Ⓜ️ Upgrade various json tuple templates with string literals. 2017-10-11 18:18:19 -07:00
Jason Volk
2d90965816 configure.ac: Various cleanup; Add more warnings; Add optimization flags for testing. 2017-10-11 18:18:19 -07:00
Jason Volk
75648c7397 configure.ac: Add an RB_DEBUG_LEVEL which will always be defined; 0 when RB_DEBUG is not defined. 2017-10-11 18:18:19 -07:00
Jason Volk
bd1a66e608 ircd: minor simplifications; minor cleanup. 2017-10-11 18:18:18 -07:00
Jason Volk
dc2346a753 ircd::http: Cleanup error messages. 2017-10-11 18:18:18 -07:00
Jason Volk
db43edb212 ircd: Various labels to help de-virtualization on recommendation of -Wsuggest-final-types. 2017-10-11 18:18:18 -07:00
Jason Volk
fccfa03308 ircd: Add mutable_buffer ctor to parse::buffer; cleanup parse related. 2017-10-11 18:18:17 -07:00
Jason Volk
9d4c2fb5c3 ircd: Turn off coredumps in production to not leak secret key material. 2017-10-03 04:27:15 -07:00
Jason Volk
8a9f2597b9 ircd: Fix http resource lookup. 2017-10-03 04:27:15 -07:00
Jason Volk
20869309a2 Checkpoint matrix with preliminary federation client and keyserver related. 2017-10-03 04:27:15 -07:00
Jason Volk
5073096335 ircd:Ⓜ️ Improve id construction / validation related. 2017-10-03 04:27:15 -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
5a8cc4e8cd ircd::fs: Fix error. 2017-10-03 04:27:14 -07:00
Jason Volk
5335371b1a ircd::http: Elide the strlcat() for user header generation. 2017-10-03 04:27:14 -07:00
Jason Volk
8c4925419a ircd: Improve base64 suite. 2017-10-03 04:27:14 -07:00
Jason Volk
67dba9c471 ircd::crh: Fix buffer argument types; cleanup. 2017-10-03 04:27:14 -07:00
Jason Volk
234f7e34d7 ircd::ed25519: Add filesystem related for sk; add seed constructor; various. 2017-10-03 04:27:14 -07:00
Jason Volk
4954c90e27 ircd::fs: Improve basic file read/write/append into buffers. 2017-10-03 04:27:14 -07:00
Jason Volk
0eb10c0495 ircd: Add b64encoded_unpadded variant. 2017-10-03 04:27:13 -07:00
Jason Volk
9c712486a1 ircd: Split up lexical.h; comments; cleanup. 2017-10-03 04:27:13 -07:00
Jason Volk
ec89d0ca25 ircd::db: I don't think this warning matters... 2017-10-03 04:27:13 -07:00
Jason Volk
1502b973da ircd: Add ed25519 dsa; reorg sodium related. 2017-10-03 04:27:13 -07:00
Jason Volk
014673d718 ircd::http: Minor urldecode grammar fix. 2017-10-03 04:27:12 -07:00
Jason Volk
4a6b3f5fcc Add support for libsodium (NaCl) cryptography. 2017-10-03 04:27:10 -07:00
Jason Volk
57f8b28330 ircd: Add X-IRCd-Response-Time header. 2017-10-03 04:17:11 -07:00
Jason Volk
3d754bffba ircd::db: Give RocksDB its own logging facility. 2017-10-03 04:17:11 -07:00
Jason Volk
19451ab914 ircd::ctx: shared_mutex; peek / view / shared_view; fixes. 2017-10-03 04:17:10 -07:00
Jason Volk
84d7746165 ircd: Add net; various asio related. 2017-10-03 04:17:10 -07:00
Jason Volk
babde26165 make: Minor cleanup. 2017-10-03 04:17:10 -07:00
Jason Volk
b9d657924d ircd::http: Various fixes; add urldecode; chunked encoding content. 2017-10-03 04:17:10 -07:00
Jason Volk
9ae9ea7357 ircd: Reorg crypto related by dependency. 2017-10-03 04:17:10 -07:00
Jason Volk
fae5984d5e ircd: Rename hash.cc to crypto.cc. 2017-10-03 04:17:10 -07:00
Jason Volk
ade7a138c4 ircd::db: Simplify the db::row using vector_view<cell>. 2017-10-03 04:17:09 -07:00
Jason Volk
4090b80d60 ircd::json: Add missing serialized() participants. 2017-10-03 04:17:09 -07:00
Jason Volk
f2264b02e6 ircd::http: Preliminary support for chunked encoding; improve header args. 2017-10-03 04:17:09 -07:00
Jason Volk
5d7eee1937 ircd:Ⓜ️ Simplify the event query interface by making more internal decisions from query data. 2017-10-03 04:17:08 -07:00
Jason Volk
c4a6addd5a ircd::ctx: Add critical_assertion debugging tool. 2017-10-03 04:17:08 -07:00
Jason Volk
bc9b0e990c ircd::json: Simplify expectation error message. 2017-10-03 04:17:08 -07:00
Jason Volk
dc1281a17c ircd::db: Fix iov related. 2017-10-03 04:17:08 -07:00
Jason Volk
f8d6e2dddc ircd::db: Update docs. 2017-10-03 04:17:08 -07:00
Jason Volk
dacff8eb9f ircd::db: Rename where to query. 2017-10-03 04:17:08 -07:00
Jason Volk
016ff64dbb ircd:Ⓜ️ Preliminary efficient membership query object. 2017-10-03 04:17:08 -07:00
Jason Volk
ffca90dd7b ircd:Ⓜ️ Indexers need to check if their columns were given by the user. 2017-10-03 04:17:07 -07:00
Jason Volk
92a8d8e2bf ircd:Ⓜ️ Improve interfaces; Add prelim sync loop; Add send resource handler. 2017-10-03 04:17:07 -07:00
Jason Volk
b309793ed0 ircd::ctx: Add some docs; minor cleanup. 2017-10-03 04:17:07 -07:00
Jason Volk
816b5125b2 ircd: Improve/cleanup ircd::init()/ircd::stop() related. 2017-10-03 04:17:07 -07:00
Jason Volk
d4508e157f ircd:Ⓜ️ Deduplicate user related in m::user. Update various resource related. 2017-09-24 20:48:53 -07:00
Jason Volk
ca1f5bbbe5 ircd:Ⓜ️ Fix some id constructor behavior. 2017-09-24 20:48:53 -07:00
Jason Volk
c032c686f6 Checkpoint matrix application basis. 2017-09-24 18:16:45 -07:00
Jason Volk
196d158398 ircd::db: Improve debug log messages. 2017-09-24 18:16:45 -07:00
Jason Volk
f060bd4fc5 ircd: Support resource response json::value for array/object values; cleanup. 2017-09-24 18:16:45 -07:00
Jason Volk
2a579390be ircd::db: Minor cleanup. 2017-09-24 18:16:45 -07:00
Jason Volk
f4682522a8 ircd::util: Rename stopped overload to nostart. 2017-09-24 18:16:44 -07:00
Jason Volk
0b1c37c585 ircd::db: Fix reverse iteration; cleanup seek; add ORDERED flag (prelim). 2017-09-24 18:16:44 -07:00
Jason Volk
7f7ef9a4bf ircd: Add client request timer related. 2017-09-24 18:16:44 -07:00
Jason Volk
c138c53449 ircd::db: Log snapshot sequence numbers. 2017-09-24 18:16:44 -07:00
Jason Volk
dd7c1adb05 ircd::db: Add timer to row seek. 2017-09-24 18:16:44 -07:00
Jason Volk
d7c59f4e49 ircd::db: Improve seek() stack. 2017-09-24 18:16:44 -07:00
Jason Volk
4077307ab5 ircd::db: Minor cleanup. 2017-09-24 18:16:43 -07:00
Jason Volk
1a35514653 ircd::db: Fixes for reverse iteration. 2017-09-24 18:16:43 -07:00
Jason Volk
10eabc5e40 ircd::db: Remove this from row constructor. 2017-09-24 18:16:43 -07:00
Jason Volk
c4b34b9e66 ircd::db: cell constructor branch on empty key. 2017-09-24 18:16:43 -07:00
Jason Volk
b29224aa3a ircd::db: Cleanup comparator related. 2017-09-24 18:16:43 -07:00
Jason Volk
2a17d2b939 ircd: Fix string length of demangle() value. 2017-09-24 18:16:43 -07:00
Jason Volk
57bcae7a32 ircd: Update notes. 2017-09-24 18:16:42 -07:00
Jason Volk
c87934cd4d ircd::crh: Support SHA256. 2017-09-24 18:16:42 -07:00
Jason Volk
4b17211a04 ircd::buffer: Add raw_buffer for binary data; lexical: simplify a2u/b64 related. 2017-09-24 18:16:42 -07:00
Jason Volk
d7def063b6 ircd: Add tools for binary/hex/b64 conversions. 2017-09-24 18:16:42 -07:00
Jason Volk
b207b9e909 ircd: Rename ircd::scope to ircd::unwind. 2017-09-24 18:16:41 -07:00
Jason Volk
56074325a1 ircd::db: Use extern const comparators and expose them in headers. 2017-09-24 18:16:41 -07:00
Jason Volk
69eab27209 ircd::db: Complete reverse iterations. 2017-09-24 18:16:41 -07:00
Jason Volk
43ddaa90a4 ircd::mods: Fix string termination for demangle(). 2017-09-24 18:16:41 -07:00
Jason Volk
dae391a578 ircd::db: Refactor opts to not store ilists; cleanup index/column relationship; cleanup where. 2017-09-24 18:16:41 -07:00
Jason Volk
f7708f47f6 ircd::db: Test valid-equal to index on cell load. 2017-09-24 18:16:40 -07:00
Jason Volk
fc753f7440 ircd::db: Add constant time seek to column in row by index number. 2017-09-24 18:16:40 -07:00
Jason Volk
971496817b Minor fixes / cleanup. 2017-09-24 18:16:40 -07:00
Jason Volk
46588d0ae8 ircd::db: Public functions to get the descriptor for a column. 2017-09-24 18:16:39 -07:00
Jason Volk
7f548cee1c ircd: Make asio header; comments; add special continuation for yielding to asio. 2017-09-24 18:16:39 -07:00
Jason Volk
a9ac3f9956 ircd: Move ircd::mods::demangle() to ircd::demangle(). 2017-09-24 18:16:39 -07:00
Jason Volk
3a56a30d77 ircd: Support char overloads for all tokenizers. 2017-09-24 18:16:38 -07:00
Jason Volk
e0c0f71754 ircd: Fix client shutdown. 2017-09-24 18:16:38 -07:00
Jason Volk
0d393c58dd ircd::db: Various cleanup / movements. 2017-09-24 18:16:38 -07:00
Jason Volk
1acd278632 ircd::ctx: Updates; add ctx::view; add preliminary ctx::fault; various reorg. 2017-09-24 18:16:38 -07:00
Jason Volk
4c50b2794f ircd::json: Various fixes/cleanup/conversions. 2017-09-24 18:16:38 -07:00
Jason Volk
38c1d2e195 ircd::json: Complete serialize/stringify for object/object::member. 2017-09-24 18:16:37 -07:00
Jason Volk
68b0356203 ircd: Simplify some info log messages. 2017-09-24 18:16:37 -07:00
Jason Volk
a12309be44 ircd: Log version information on startup. 2017-09-24 18:16:37 -07:00
Jason Volk
5e137c676f ircd::db: Use vector for descriptors. 2017-09-24 18:16:37 -07:00
Jason Volk
c50461c4c6 ircd::db: Rename txn to iov. 2017-09-24 18:16:37 -07:00
Jason Volk
fb026f58a7 ircd::db: Add features to txn. 2017-09-24 18:16:37 -07:00
Jason Volk
d7e9c9182a ircd::db: Add txn class to compose a transaction in stages. 2017-09-24 18:16:37 -07:00
Jason Volk
b27a2a6423 ircd::db: Support constant-time column lookup by id; various cleanup/fixes. 2017-09-24 18:16:37 -07:00
Jason Volk
469d286175 ircd: Use db based access_token query for auth. 2017-09-24 18:16:37 -07:00
Jason Volk
5261f9dd25 ircd::db: row cleanup / fixes. 2017-09-24 18:16:36 -07:00
Jason Volk
47cd7790ed ircd::json: Simplify generators with common list protocol. 2017-09-24 18:16:36 -07:00
Jason Volk
7d61dc4441 ircd::db: Reflect with string_view. 2017-09-24 18:16:36 -07:00
Jason Volk
276a902a62 ircd::db: Improve valid checking and valid() suite. 2017-09-24 18:16:36 -07:00
Jason Volk
1f8fb24e8d ircd: Update various comments. 2017-09-24 18:16:36 -07:00
Jason Volk
65802d3e47 ircd::resource: Cleanup JSON iov related; Add exception handlers. 2017-09-24 18:16:36 -07:00
Jason Volk
ccbd507c35 ircd::db: Fix issues with cell. 2017-09-24 18:16:35 -07:00
Jason Volk
eaca7429b6 ircd::json: Simplify grammar / various cleanup. 2017-09-24 18:16:35 -07:00
Jason Volk
438866a3d7 ircd::json: Fix estimation error. 2017-09-24 18:16:35 -07:00
Jason Volk
d3feb23a25 ircd: Add resource response json::iov related conversions for members lists. 2017-09-24 18:16:35 -07:00
Jason Volk
cd535b416b ircd::http: Check for outbound transfer-encoding. 2017-09-24 18:16:35 -07:00
Jason Volk
ca9ea5ac0c ircd::db: Simplify/fix seek(row). 2017-09-24 18:16:34 -07:00
Jason Volk
6aacf73dfa ircd: Remove the tokens container. 2017-09-24 18:16:34 -07:00
Jason Volk
6503d28006 ircd: Simplify this service stack for now. 2017-09-24 18:16:34 -07:00
Jason Volk
214e5e7107 Compiler recommended to use std::terminate() rather than throw into noexcept. 2017-09-24 18:16:34 -07:00
Jason Volk
6a5159499f ircd::json: Use ircd::iov for json::iov. 2017-09-24 18:16:34 -07:00
Jason Volk
f8fc03e57b ircd::json: Improve value semantics and various fixes. 2017-09-24 18:16:34 -07:00
Jason Volk
a0aeb2de2d configure.ac/Makefile: Add debug conditionals. 2017-09-24 18:16:34 -07:00
Jason Volk
54d6793f59 Update various documentation and comments. 2017-09-24 18:16:33 -07:00
Jason Volk
7cc4ed56ab ircd: Support both iov and ilist for socket and buffer related. 2017-09-24 18:16:33 -07:00
Jason Volk
8ad134c565 ircd::json: Rename builder to iov. 2017-09-24 18:16:33 -07:00
Jason Volk
6cd58b0d6a ircd: Update various comments / minor cleanup. 2017-09-24 18:16:32 -07:00
Jason Volk
e95fe7fbd9 ircd::json: Improve tuple/builder related. 2017-09-24 18:16:32 -07:00
Jason Volk
db748cae81 ircd::resource: Accept json::member for response for now. 2017-09-24 18:16:32 -07:00
Jason Volk
147a49a86c ircd::json: Improve stringification interface et al. 2017-09-08 07:47:07 -07:00
Jason Volk
85b699c286 Various makefile cleanup. 2017-09-08 03:47:53 -07:00
Jason Volk
1cea631f60 ircd::m modules: Matrix reinterface checkpoint. 2017-09-08 03:47:53 -07:00
Jason Volk
a89a8dfa5f ircd::db: Add preliminary cursor and where clause query. 2017-09-08 03:47:52 -07:00
Jason Volk
7baac31cc7 ircd: Add main init for ircd::db. 2017-09-08 03:47:52 -07:00
Jason Volk
6eb54bb67a ircd::buffer: Add extern linkage for null buffers. 2017-09-08 03:47:52 -07:00
Jason Volk
4cb99ba1a4 ircd::resource: Cleanup / fixes. 2017-09-08 03:47:52 -07:00
Jason Volk
d219858e73 ircd::db: Improve commitment stack. 2017-09-08 03:47:52 -07:00
Jason Volk
682686bcae ircd::db: Employ c++1z extensions to namespacing. 2017-09-08 03:47:52 -07:00
Jason Volk
5f25d90fd2 ircd::db: Add index interface. 2017-09-08 03:47:52 -07:00
Jason Volk
277765ebbc ircd::fmt: Show demangled type name of faulty argument. 2017-09-08 03:47:52 -07:00
Jason Volk
4eeb1c093d ircd::http: Proper exception when parse buffer is too small. 2017-09-08 03:47:51 -07:00
Jason Volk
c627095f51 ircd: Add date.h header for date and time utilities. 2017-09-08 03:47:51 -07:00
Jason Volk
b829c5d7ba ircd::json: Extend interface with some hackses for now but this has to be revisited eventually. 2017-09-08 03:47:51 -07:00
Jason Volk
1e7c0daed2 ircd::db: Improve opts, snapshot, and conversions for column::iterator. 2017-09-08 03:47:51 -07:00
Jason Volk
96d121c82a m: Improve mxid class 2017-09-08 03:47:50 -07:00
Jason Volk
f98be1582d ircd::ctx: Expose stack usage functions to user. 2017-09-08 03:47:50 -07:00
Jason Volk
cbdd176819 ircd::db: Remove unnecessary shared_ptr for column instance. 2017-09-08 03:47:50 -07:00
Jason Volk
e46faaf882 ircd::db: Support prefix indexing. 2017-09-08 03:47:50 -07:00
Jason Volk
69917f153f ircd::db: Add json::tuple related and utils to row. 2017-09-08 03:47:50 -07:00
Jason Volk
0ca1ebba61 ircd::db: Fix valid condition bugs and minor cleanup. 2017-09-08 03:47:49 -07:00
Jason Volk
19c5e6c83b ircd::db: Add generalized database delta interface. 2017-09-08 03:47:49 -07:00
Jason Volk
f729fd0917 ircd::db: Expose enum class pos. 2017-09-08 03:47:49 -07:00
Jason Volk
e583c0885d ircd::db: Improve seek() interface suite. 2017-09-08 03:47:49 -07:00
Jason Volk
62a68d8931 ircd::db: Use pointers in the delta tuple for more flexible semantics. 2017-09-08 03:47:49 -07:00
Jason Volk
04129d7444 ircd::json: Use proper output grammar for literal generation. 2017-09-08 03:47:49 -07:00
Jason Volk
7c9c0ffa38 ircd::mods: Rewrite undefined symbol exception using demangling. 2017-09-08 03:47:49 -07:00
Jason Volk
d9a4f06bf6 ircd: Employ namespace scope extensions from c++1z/gnu++14.
This is not a move to c++17. If the compiler happens to have support
for c++17 namespace scope resolution, they have been kind enough to
backport it to gnu++14. This limits our support for really old c++14
compilers, but that was limited anyway. GCC 6.1 and clang 3.6 tested.
2017-09-08 03:47:46 -07:00
Jason Volk
28cf226c3a ircd::mods: Add cxx abi name demangling. 2017-09-08 03:46:43 -07:00
Jason Volk
c43c8f83d3 ircd::listen: Fixes/cleanup and scaffold of options testing. 2017-08-23 15:52:15 -06:00
Jason Volk
207ac4ef53 ircd: Various improvements to client and socket related. 2017-08-23 15:52:15 -06:00
Jason Volk
ca608402f5 ircd::db: Various improvements to DB subsystem. 2017-08-23 15:52:15 -06:00
Jason Volk
48148c640c ircd: Add std::random subsystem and utils. 2017-08-23 15:52:15 -06:00
Jason Volk
b6d51b89dd ircd::ctx: Patch issues with direct jump. 2017-08-23 15:52:15 -06:00
Jason Volk
9f12672567 ircd::db: Fix seek offload procedure. 2017-08-23 15:52:15 -06:00
Jason Volk
5fe03e5c0a ircd::mods: Add unpostfixed() and postfixed() for module names. 2017-08-23 15:52:14 -06:00
Jason Volk
fe5614387e ircd::listen: Add string options overload. 2017-08-23 15:52:14 -06:00
Jason Volk
6db3c55f74 ircd::fs: Add directory creation. 2017-08-23 15:52:14 -06:00
Jason Volk
0149610bb2 ircd: Various matrix library / modules / database development. 2017-08-23 15:51:34 -06:00
Jason Volk
10472684f2 ircd: Cleanup client/ircd main. Fixes for exit notification. 2017-08-23 15:50:37 -06:00
Jason Volk
a32210a64d ircd: Support proper socket disconnect for SSL. 2017-08-23 15:49:33 -06:00
Jason Volk
144159c637 ircd: Mark the Access-Control-Allow-Origin header so it is not forgotten. 2017-08-23 15:48:46 -06:00
Jason Volk
1cb5433fce fixup! fixup! ircd::json/modules: Rename various types. 2017-08-23 15:48:28 -06:00
Jason Volk
dbbd72fe75 ircd: Handle a resource not found properly. 2017-08-23 15:47:54 -06:00
Jason Volk
60a22a0216 Update README / info.cc copyright / accoutrements. 2017-08-23 15:45:41 -06:00
Jason Volk
ab540c378c ircd::http: Increase these buffers (unnecessary; todo optimize). 2017-08-23 15:43:57 -06:00
Jason Volk
5751555834 ircd::fs: Fix ls_recursive / directory iteration related. 2017-08-23 15:43:25 -06:00
Jason Volk
a7cb94d042 ircd: Add listener device. 2017-08-23 15:42:53 -06:00
Jason Volk
caa6ed58e5 ircd: Makefile improvements. 2017-08-23 15:39:41 -06:00
Jason Volk
e09f272592 ircd::db: Improve/comment DB subsystem; Add version identification. 2017-08-23 15:38:51 -06:00
Jason Volk
4fd787d9d5 ircd::json/modules: Rename various types. 2017-08-23 15:32:28 -06:00
Jason Volk
2a6527993b fixup! ircd: Remove aborted cruft. 2017-08-23 15:30:24 -06:00
Jason Volk
c9e947e66f ircd: Remove aborted cruft. 2017-08-23 15:27:41 -06:00
Jason Volk
4d4a56fe9c ircd::js: Upgrade SpiderMonkey to esr52 from esr45. 2017-08-23 15:25:22 -06:00
Jason Volk
4f095024ee ircd::db: Update pure-virtual requirement in database::stats. 2017-08-23 15:19:35 -06:00
Jason Volk
6e44074bad ircd: Various client / listener / main related. 2017-08-23 15:13:57 -06:00
Jason Volk
c1ef99c0cd ircd::conf: Doomed conf related. 2017-08-23 15:12:16 -06:00
Jason Volk
a3117391b5 ircd/modules: Preliminary matrix scaffold. 2017-08-23 15:10:28 -06:00
Jason Volk
a57070a9cf ircd: Minor socket log message improvements. 2017-08-23 15:06:58 -06:00
Jason Volk
30fb1d59d7 ircd: Preliminary resource handler infrastructure. 2017-08-23 15:06:14 -06:00
Jason Volk
2172b39f9e ircd::js: Minor fixes to JS subsystem. 2017-08-23 15:04:45 -06:00
Jason Volk
03734c7fb5 ircd::json: Fixes to grammar and generator related. 2017-08-23 15:02:24 -06:00
Jason Volk
c1638d1dfa ircd::http: Fixes to HTTP grammar and output. 2017-08-23 15:00:21 -06:00
Jason Volk
a880e2e43e ircd::ctx: Add minor commentary. 2017-08-23 14:59:27 -06:00
Jason Volk
9ea5eceb0e ircd::fs: Add function to read file from local filesystem. 2017-08-23 14:56:52 -06:00
Jason Volk
cd7d86b699 ircd::fmt: Add lowercase hex specifier. 2017-04-06 18:34:44 -07:00
Jason Volk
39ab4d1c68 fixup! ircd::fmt: Cleanup grammar; fixes; support std::exception type to %s. 2017-04-06 18:34:09 -07:00
Jason Volk
4b2b7ea292 ircd::http: Allow elision of leading slash and empty '?' query. 2017-04-06 16:54:47 -07:00
Jason Volk
6097e82974 ircd: Add more HTTP status mappings. 2017-04-06 16:54:20 -07:00
Jason Volk
05f297c756 ircd: Fix token_last() iteration. 2017-04-04 22:12:32 -07:00
Jason Volk
17926e095f ircd::mods: Add workaround for dlclose() recursion issue. 2017-04-04 16:10:29 -07:00
Jason Volk
7ff04618c0 ircd;modules: Minor Makefile tweaks. 2017-04-04 16:10:29 -07:00
Jason Volk
8fdc6a4794 fixup! ircd: Minor cleanup. 2017-04-04 16:10:29 -07:00
Jason Volk
e7844a0771 ircd::db: Database system developments. 2017-04-04 16:10:29 -07:00
Jason Volk
397d1dd3dd fixup! ircd: Move and improve socket listener device. 2017-04-04 16:10:28 -07:00
Jason Volk
bcccddbf3f ircd::http: Add query string support; cleanup grammar; minor cleanup. 2017-04-04 16:10:28 -07:00
Jason Volk
cb96d59579 ircd::http: Update status codes. 2017-04-04 16:10:28 -07:00
Jason Volk
6de469c8fb ircd::json: Remove empty initializer list members. 2017-04-02 20:58:30 -07:00
Jason Volk
217a0e9454 ircd::json: Modify grammar to fail with error when member name is empty string. 2017-04-02 20:57:57 -07:00
Jason Volk
673c8ca068 ircd::json: Add val::empty() and full default initialization. 2017-04-02 20:54:35 -07:00
Jason Volk
49da778def ircd::fmt: Add bool support. 2017-04-02 20:53:14 -07:00
Jason Volk
b579d7dfc3 ircd::ctx: Add strand()/notify() with threadsafe_t. 2017-04-02 20:52:30 -07:00
Jason Volk
e4f258314a fixup! ircd::ctx: Fixes for the thread-unsafety of asio::steady_timer. 2017-03-30 21:14:59 -07:00
Jason Volk
a2625b9f4b fixup! ircd::db: Develop object-store out of db system. 2017-03-30 18:18:28 -07:00
Jason Volk
b07169dd69 Update Makefile flags for libraries to show more linkage issues. 2017-03-30 16:04:20 -07:00
Jason Volk
16c1326d40 ircd::db: Develop object-store out of db system. 2017-03-30 16:04:20 -07:00
Jason Volk
2ffab411df ircd::json: Various fixes to JSON subsystem. 2017-03-30 16:04:20 -07:00
Jason Volk
25df66a89a ircd::mods: Improve error reporting on failed module load. 2017-03-30 16:04:20 -07:00
Jason Volk
61e6f0dada ircd::log: Improve the log mark message. 2017-03-30 16:04:20 -07:00
Jason Volk
3a31c62681 ircd: Minor cleanup. 2017-03-30 16:04:20 -07:00
Jason Volk
2e7dd1e5ad ircd::fs: Fixes/renames to local filesystem support subsystem. 2017-03-30 16:04:19 -07:00
Jason Volk
33b2cd8f70 ircd::ctx: Fixes for the thread-unsafety of asio::steady_timer. 2017-03-30 16:04:19 -07:00
Jason Volk
c604b391be ircd::ctx: Support direct context switching without enqueueing with ios. 2017-03-30 16:04:19 -07:00
Jason Volk
aee06c5ff8 ircd::json: Scan until eoi for type check of numbers and literals. 2017-03-30 16:04:19 -07:00
Jason Volk
8ef53f2640 ircd: Move and improve socket listener device. 2017-03-30 16:04:19 -07:00
Jason Volk
b6b78f9674 ircd::fmt: Use stronger cast. 2017-03-30 16:04:19 -07:00
Jason Volk
d9521c4dc0 ircd::ctx: Fix bug where interrupts are lost before context spawns. 2017-03-30 16:04:19 -07:00
Jason Volk
31dd925b17 ircd::ctx: Mark the profiling leave time directly after the user finishes. 2017-03-30 16:04:19 -07:00
Jason Volk
a366731a4b ircd::db: Support column families. 2017-03-30 16:04:19 -07:00
Jason Volk
0c42835fa3 ircd::db: Integrate rocksdb::Logger with our logger. 2017-03-30 16:04:19 -07:00
Jason Volk
5a7852a0d4 ircd: Various cleanup. 2017-03-30 16:04:19 -07:00
Jason Volk
35345c164e ircd::fmt: Cleanup grammar; fixes; support std::exception type to %s. 2017-03-30 16:04:18 -07:00
Jason Volk
99d75648f0 ircd::log: Add assertion for log calls from non-main threads. 2017-03-30 16:04:18 -07:00
Jason Volk
1f6d83b5b1 ircd::db: additional support: stats, callbacks and merge operator. 2017-03-30 16:04:18 -07:00
Jason Volk
7ae5785431 ircd::json: Add merge constructor. 2017-03-30 16:04:18 -07:00
Jason Volk
0d09170507 ircd::db: Leverage the RocksDB WriteBatch with an initializer_list. 2017-03-30 16:04:18 -07:00
Jason Volk
21db4baab3 ircd: Various cleanup. 2017-03-30 16:04:18 -07:00
Jason Volk
ae9b37939e ircd::mods: Slightly more graceful handling of boost::dll's noexcept issue. 2017-03-20 21:29:30 -07:00
Jason Volk
6a0e5e4de5 ircd::mods: Add sym_ptr/sym_ref to link symbols with a typed object. 2017-03-20 21:29:29 -07:00
Jason Volk
a8fc400130 ircd: Towards a modern refactor of variadic arguments passed to functions. 2017-03-20 19:27:29 -07:00
Jason Volk
e48c93e42a ircd::http: Improve error messages; various cleanup. 2017-03-20 19:25:10 -07:00
Jason Volk
98c51be27d fixup! ircd: Add tokens_after() util. 2017-03-20 19:22:58 -07:00
Jason Volk
91cd0327bd ircd::fmt: Remove rfc1459 builtin specifiers; various/cleanup. 2017-03-20 19:20:33 -07:00
Jason Volk
26529b4ac6 fixup! ircd: JSON subsystem related. 2017-03-20 15:59:14 -07:00
Jason Volk
42ce334528 ircd::db: throw not_found for now in this case. 2017-03-20 04:25:01 -07:00
Jason Volk
adf408d4b0 ircd::ctx: Tweak default profiling values; fix fmt:: specifier. 2017-03-20 00:01:42 -07:00
Jason Volk
2b0d74c862 configure.ac: Add -ffriend-injection to CXXFLAGS. 2017-03-20 00:00:14 -07:00
Jason Volk
99a4e523b8 fixup! fixup! fixup! fixup! ircd: Add the va_rtti construct. 2017-03-17 23:30:09 -07:00
Jason Volk
d3e5cb7f73 ircd::fmt: Add the %p format specifier for pointer types. 2017-03-17 21:14:45 -07:00
Jason Volk
3c38aeb96e ircd: Nest this ep initializer for now. 2017-03-17 20:35:00 -07:00
Jason Volk
710d959a63 ircd::json: Cleanup/improve grammar; improve linear array parse (incomplete). 2017-03-17 20:33:47 -07:00
Jason Volk
1016e993e9 ircd: Optimal HTTP status code and content length parsing. 2017-03-17 20:29:27 -07:00
Jason Volk
274e2ec717 fixup! ircd::fmt: Support string_view; updates to the format string system. 2017-03-17 20:27:33 -07:00
Jason Volk
8ef0b50131 ircd: Add tokens_after() util. 2017-03-17 20:25:42 -07:00
Jason Volk
a0e7002dde ircd::log: Drop in ircd::fmt. 2017-03-17 20:24:25 -07:00
Jason Volk
fa1c393d7a fixup! ircd: Add the va_rtti construct. 2017-03-17 20:05:36 -07:00
Jason Volk
9c137d7c50 ircd::mapi: Remove linkage of MAGIC value. 2017-03-17 17:46:20 -07:00
Jason Volk
e64ca2827d ircd: Drop in ircd::fmt for stdarg for ircd::exception. 2017-03-17 17:37:40 -07:00
Jason Volk
86804755c8 ircd: Add the va_rtti construct. 2017-03-17 17:36:09 -07:00
Jason Volk
33b5dc21b7 ircd::fmt: Support string_view; updates to the format string system. 2017-03-17 17:00:41 -07:00
Jason Volk
1d0e2b0a6a fixup! ircd::json: Add stronger value typing with runtime visitor switching. 2017-03-16 13:36:18 -07:00
Jason Volk
03ee560c13 ircd: Add aggregate spirit header (without pch at this time). 2017-03-16 13:35:37 -07:00
Jason Volk
03cf816bb7 ircd: Add labeled-params tokenizer; fix bad lexical cast exception type. 2017-03-16 13:31:17 -07:00
Jason Volk
150583c711 fixup! What is the Matrix? Control. 2017-03-15 12:08:26 -07:00
Jason Volk
c9ddf4f6ab ircd: Add lex_cast wrapper interface; various cleanup. 2017-03-14 15:03:15 -07:00
Jason Volk
26f59954af ircd: Fix seed pun. 2017-03-13 21:14:40 -07:00
Jason Volk
4a65843064 ircd: Interrupt client request parsing with 408 Request Time-out after timeout. 2017-03-13 18:44:08 -07:00
Jason Volk
55be9a9f6d ircd: Loop the whole input tape before returning to async. 2017-03-13 18:44:08 -07:00
Jason Volk
e849897cc0 ircd::parse: Capstan. 2017-03-13 18:44:08 -07:00
Jason Volk
472ee2c648 ircd: HTTP interface function-objects et al. 2017-03-13 18:44:00 -07:00
Jason Volk
bfd61f84f1 ircd: Various fixes. 2017-03-13 14:43:35 -07:00
Jason Volk
bac30f93d1 ircd::http: Add a few more protocol codes. 2017-03-13 14:43:35 -07:00
Jason Volk
49c2a5361c ircd: Various fixes. 2017-03-13 14:43:27 -07:00
Jason Volk
60ce08d0df ircd::client: http protocol dispatch. 2017-03-10 18:03:10 -08:00
Jason Volk
44ade2612c ircd::socket: Add scope_timeout for timing out synchronous operations. 2017-03-10 17:51:19 -08:00
Jason Volk
b592b69b86 What is the Matrix? Control. 2017-03-10 17:51:18 -08:00
Jason Volk
d90312bf10 ircd::js: Improve exception system flow. 2016-11-27 21:48:24 -08:00
Jason Volk
7fd111487d ircd::js: Add a branch in trap::function handler for constructors. 2016-11-25 22:53:31 -08:00
Jason Volk
a149d56afa ircd::js: Swap the flags and arity argument order for trap::function. 2016-11-25 22:52:56 -08:00
Jason Volk
8b0fe0318f gold linker. 2016-11-25 19:23:50 -08:00
Jason Volk
062e013617 ircd::js: GC Weak pointer callback logging stubs. 2016-11-25 19:23:49 -08:00
Jason Volk
d005a95e80 [todo] ircd::js: Reorg init. 2016-11-25 19:23:49 -08:00
Jason Volk
a4f55b4627 ircd::mods: Reorganize and distill interface. 2016-11-25 19:23:49 -08:00
Jason Volk
abf1dda3a6 ircd::js: Customize GC; emancipation from template types. 2016-11-25 19:23:49 -08:00
Jason Volk
d30b7ef1f6 ircd::js: Post internal errors as pending exceptions. 2016-11-25 19:23:49 -08:00
Jason Volk
686951ea8d ircd::js: Allow string deleter to print the string in its debug log. 2016-11-25 19:23:49 -08:00
Jason Volk
50cb4371dd ircd::js: Handle simple path case. 2016-11-25 19:23:49 -08:00
Jason Volk
01d814ea1a ircd::js: Add trap::property; Improve trap construction interface. 2016-11-25 19:23:49 -08:00
Jason Volk
8d92c8a9c4 ircd::js: Improve trap debug formatting. 2016-11-25 19:23:49 -08:00
Jason Volk
1e1b7c8ce9 ircd::js: Workaround SpiderMonkey linkage bug when DEBUG is defined. 2016-11-25 19:23:48 -08:00
Jason Volk
fbbe8e604a ircd::js: Add reflection and decompilation at the task level. 2016-11-25 19:23:48 -08:00
Jason Volk
4c6e182241 ircd::js: Add script bytecode and compile-test utils. 2016-11-25 19:23:48 -08:00
Jason Volk
6c54215336 ircd::js: Add handler for runtime Preserve Wrapper callback. 2016-11-25 19:23:48 -08:00
Jason Volk
3e8aaf0c13 ircd::js: #define DEBUG internally for JS when RB_DEBUG is also set. 2016-11-25 19:23:48 -08:00
Jason Volk
f2a395b879 ircd::js: Improve for_each(). 2016-11-25 19:23:48 -08:00
Jason Volk
4edfd51106 ircd::js: Various fixes for conversions and root-ordering through calls. 2016-11-25 19:23:48 -08:00
Jason Volk
0e47468e63 ircd::js: Add JSON support. 2016-11-25 19:23:47 -08:00
Jason Volk
3e4a9e58f7 ircd::js: Improve trap function interface. 2016-11-25 19:23:47 -08:00
Jason Volk
29b384ca0f ircd::js: Remove trap tree traversal in the virtual default. 2016-11-25 19:23:47 -08:00
Jason Volk
88fd6971ec ircd::js: Improve private data slot interface related. 2016-11-25 19:23:47 -08:00
Jason Volk
6aae248357 ircd::js: Fix various debug log messages. 2016-11-25 19:23:47 -08:00
Jason Volk
254f5b921a ircd::js: Fixes to async state related. 2016-11-25 19:23:47 -08:00
Jason Volk
61017f4cdc ircd::js: Add tracing support for GC.
ircd::js: Add template constexprs for jsapi handle types.
2016-11-25 19:23:47 -08:00
Jason Volk
20e62f04df ircd::js: Minor context interface cleanup; prevent task struct address change. 2016-11-25 19:23:47 -08:00
Jason Volk
070771f49b ircd::mods: Make log messages more consistent. 2016-11-25 19:23:47 -08:00
Jason Volk
8554fc858b ircd::log: Add function to logger with facility argument. 2016-11-25 19:23:47 -08:00
Jason Volk
f0a9f8bdc4 ircd::js: Improve information in various debug outputs. 2016-11-25 19:23:46 -08:00
Jason Volk
a44e6f701f ircd::js: Fix pending exception propagation on interleaving stack. 2016-11-25 19:23:46 -08:00
Jason Volk
ae4057b1d5 ircd::js: Use std::string for trap mapping. 2016-11-25 19:23:33 -08:00
Jason Volk
f92f117edc ircd::js: trap GC handler must be 'noexcept' apropos JS. 2016-11-13 16:34:27 -08:00
Jason Volk
559bc530c8 ircd::js: Improve off-thread compilation error handling. 2016-11-13 16:34:27 -08:00
Jason Volk
c8402577c3 ircd::js: GC related fixes. 2016-11-13 16:34:27 -08:00
Jason Volk
c3e6c52192 ircd::js: Improve private slot access. 2016-11-13 16:34:27 -08:00
Jason Volk
7a99d919d6 ircd::js: Improve reserved data access. 2016-11-13 16:34:27 -08:00
Jason Volk
84383d41d8 ircd::js: Fix unconditional cast of this to object type in trap::on_call handlers. 2016-11-13 16:34:24 -08:00
Jason Volk
fcc654699d ircd::locale: Add char16_t conversion overloads for unterminated strings.
ircd::js: Use sized conversions when calling ircd::locale.
2016-11-13 16:34:06 -08:00
Jason Volk
b8f5366f52 ircd::js: Improve trap callback arguments; add this value. 2016-11-13 16:34:00 -08:00
Jason Volk
67d9f11fbc ircd::js: Add constructible-id overload for get()/set()/has()/del(). 2016-11-13 16:33:25 -08:00
Jason Volk
da78598d86 ircd::mapi: Rectify linkage of the header symbol name string. 2016-11-13 16:33:25 -08:00
Jason Volk
0d2d21b49f ircd::js: Add asynchronous/concurrent compilation. 2016-11-13 16:33:24 -08:00
Jason Volk
edd77d2265 ircd::js: Add asynchronous state and completion target mechanism. 2016-11-13 16:33:22 -08:00
Jason Volk
333b0dca5a ircd::js: Use a script object in the task (more flexible than function). 2016-11-13 16:32:42 -08:00
Jason Volk
0e541cd3a9 ircd::js: get()/set()/has()/del() for array object indexes. 2016-11-13 16:32:41 -08:00
Jason Volk
d5fd794511 ircd::js: Add JSProp flags as arguments for constructing trap. 2016-11-13 16:32:41 -08:00
Jason Volk
0ed531fff1 ircd::js: Move JSClass instances to a drainage container until JSRuntime shutdown. 2016-11-13 16:32:41 -08:00
Jason Volk
f2b59a57dc ircd::js: Variadic arguments for object construction via trap. 2016-11-13 16:32:41 -08:00
Jason Volk
d2b3bedca6 ircd::js: Task identification (PID) and reference counted management. 2016-11-13 16:32:41 -08:00
Jason Volk
cca79d87fc ircd::js: Assertions for pending exceptions. 2016-11-13 16:32:41 -08:00
Jason Volk
e214d6e40c ircd::js: Remove boolean return type from trap hook for enumeration. 2016-11-13 16:32:41 -08:00
Jason Volk
bf540caead ircd::js: Order arguments to call() more intuitively. 2016-11-13 16:32:41 -08:00
Jason Volk
8a3f592753 ircd::js: Add property flag reflection. 2016-11-13 16:32:41 -08:00
Jason Volk
1adc76034c ircd::js: Fix trap constructor handler (?) 2016-11-13 16:32:41 -08:00
Jason Volk
3fcd3d2bb0 ircd::js: Trap find() overload with JSString type. 2016-11-13 16:32:40 -08:00
Jason Volk
12c1755899 ircd::js: Functions to get current zone; debug callbacks for zone; etc. 2016-11-13 16:32:40 -08:00
Jason Volk
c70ddd5a80 ircd::js: Allow setting the ECMA version for a compartment. 2016-11-13 16:32:40 -08:00
Jason Volk
845e81e446 ircd::locale: Move char16_t conversions into namespace. 2016-11-13 16:32:40 -08:00
Jason Volk
fc6cf72e2d ircd::js: Nullify the trap JSClass contents on dtor; minor fixes. 2016-11-13 16:32:40 -08:00
Jason Volk
cff506e0be ircd::js: Add global/task struct. 2016-11-13 16:32:40 -08:00
Jason Volk
d0ec6497c7 ircd::js: Add object private/reserved getters and setters. 2016-11-13 16:32:40 -08:00
Jason Volk
2846f80a8d ircd::js: Make trap tree root thread local near rt/cx. 2016-11-13 16:32:40 -08:00
Jason Volk
5e81c26fdf ircd::js: Add and use calls for current_compartment(). 2016-11-13 16:32:39 -08:00
Jason Volk
639dd7903b ircd::js: Move TLS assignment out of runtime/context (though this doesn't matter). 2016-11-13 16:32:39 -08:00
Jason Volk
ac14c2a4db ircd::js: Add generator state class. 2016-11-13 16:32:39 -08:00
Jason Volk
afefb2db07 ircd::js: Fix erroneous has() exception. 2016-11-13 16:32:39 -08:00
Jason Volk
7e18e32ce4 ircd::js: Improve/cleanup exception string generaton related. 2016-11-13 16:32:39 -08:00
Jason Volk
164f650a0f ircd::js: Use JS::Heap<> container for exception value. 2016-11-13 16:32:39 -08:00
Jason Volk
6b5bab0871 ircd::js: Convert all JS type wrappers into templates and typedef on requsted GC.
Templates are now in the namespace basic:: i.e `basic::value<>`
Typedefs are in ircd::js:: matching the original non-template types.

Ex. stack-duration type in template form is: `basic::value<lifetime::stack>`
Ex. stack-duration type in typedef form is `value`
Ex. heap-duration type in template form is: `basic::value<lifetime::heap>`
Ex. heap-duration type in typedef form is: `heap_value`
2016-11-13 16:32:39 -08:00
Jason Volk
7e66df914a ircd::js: Add debug dump() calls from JS_DEBUG ifdef'ed api. 2016-11-13 16:32:39 -08:00
Jason Volk
54c8044ca1 ircd::js: Add trap_function alternative to full object trap. 2016-11-13 16:32:38 -08:00
Jason Volk
5de2622bd1 ircd::js: Add string literal constructor to prevent any alloc/copy/free. 2016-11-13 16:32:38 -08:00
Jason Volk
118fc20bbc ircd::js: Use js strings in trap tree mappings. 2016-11-13 16:32:38 -08:00
Jason Volk
be48466ef3 fixup! [temp] Checkpoint test. 2016-11-13 16:32:38 -08:00
Jason Volk
4c62795aeb ircd::js: Use jsapi external string facilities for string constructions. 2016-11-13 16:32:38 -08:00
Jason Volk
6a1fb4e8fb ircd::local: Add additional char/char16_t buffer conversion. 2016-11-13 16:32:37 -08:00
Jason Volk
97c0d3df7d ircd::js: Support trap dtors on GC. 2016-11-13 16:32:37 -08:00
Jason Volk
ae40f9c016 ircd: Move all signal handling to charybdis executable. 2016-11-13 16:32:37 -08:00
Jason Volk
2d89b583e9 ircd::mods: Throw filesystem_error when requesting symbols on bad path. 2016-11-13 16:32:37 -08:00
Jason Volk
859f464698 ircd::ctx: Set the SELF_DESTRUCT flag on context::detach(). 2016-11-13 16:32:37 -08:00
Jason Volk
a8736e2198 ircd::js: Record the main thread id to know if js ever calls/debugs from another. 2016-11-13 16:32:37 -08:00
Jason Volk
04c6b67649 fixup! ircd::js: Stub runtime/context callback framework. 2016-11-13 16:32:37 -08:00
Jason Volk
91d11f391b ircd::js: Add recursive tree semantics to object trap system. 2016-11-13 16:29:47 -08:00
Jason Volk
fedeab2ddd ircd: Add locale:: namespace for portable internationalization. 2016-11-13 16:29:47 -08:00
Jason Volk
fd0f925459 ircd::js: Add handle typedefs in object wrappers to clean up arguments. 2016-11-13 16:29:47 -08:00
Jason Volk
6d7e1157b1 ircd::js: Add recursive has(), get(), set(), del(). 2016-11-13 16:29:46 -08:00
Jason Volk
b69444138f ircd::js: Reflect JSType + value type tests. 2016-11-13 16:29:46 -08:00
Jason Volk
1ae9f4ffa4 ircd::js: Add function_literal convenience. 2016-11-13 16:29:46 -08:00
Jason Volk
c2f23a01bd ircd::js: Support more debug and statistics from js engine. 2016-11-13 16:29:46 -08:00
Jason Volk
8f9465764d ircd::js: Construct compartment from more implicit information. 2016-11-13 16:29:46 -08:00
Jason Volk
c704c67aa5 ircd: Add more stringops tokenizer overloads. 2016-11-13 16:29:46 -08:00
Jason Volk
9ecb26d27e ircd::js: Simplify the interrupt(context) call. 2016-11-13 16:29:46 -08:00
Jason Volk
b6ba71b6a0 ircd::js: Add ctor/call functionality to object trap. 2016-11-13 16:29:46 -08:00
Jason Volk
83fbbc6462 ircd::js: Fix compartment acquire; trap JSClass delete; debug related. 2016-11-13 16:29:46 -08:00
Jason Volk
5069df70c0 ircd::js: Add string comparison, equality operator and empty on null. 2016-11-13 16:29:45 -08:00
Jason Volk
aae1264d7f ircd::js: Add some GC related stats/controls. 2016-11-13 16:29:45 -08:00
Jason Volk
2d89f0e97c ircd::js: Improve exception sequence / Add script and line data. 2016-11-13 16:29:45 -08:00
Jason Volk
f9848b0494 ircd::js: Add wait-free (for the user) timer. 2016-11-13 16:29:45 -08:00
Jason Volk
ad1fef4247 ircd::js: Add wait-free execution interruption. 2016-11-13 16:29:45 -08:00
Jason Volk
2f645941a8 ircd::ctx: Move ctx headers into directory. 2016-11-13 16:29:45 -08:00
Jason Volk
e6c8025ae0 ircd::ctx: Add yield() allowing other contexts to run before returning. 2016-11-13 16:29:45 -08:00
Jason Volk
b289c63b99 ircd::js: Improve the exception translation. 2016-11-13 16:29:45 -08:00
Jason Volk
4872883860 ircd::js: Improve value construction / string related. 2016-11-13 16:29:45 -08:00
Jason Volk
0b9efe06a1 ircd::js: Make the best of SM's jsalloc.h missing ReportOutOfMemory here. 2016-11-13 16:29:45 -08:00
Jason Volk
23318a2b4f ircd::js: Add script object + caller / deinline function caller. 2016-11-13 16:29:44 -08:00
Jason Volk
8108773021 ircd::js: Wrap JSAPI objects for better semantics. 2016-11-13 16:29:44 -08:00
Jason Volk
f0a1177c07 ircd::js: Fix assertion of handler type for Global object trap. 2016-11-13 16:29:44 -08:00
Jason Volk
b3c46af4a1 ircd::js: Lock context and run js dtor even on bailout for now. 2016-11-13 16:29:44 -08:00
Jason Volk
7fa3777a57 ircd::js: Improve trap exceptions; noexcept all jsapi callbacks. 2016-11-13 16:29:44 -08:00
Jason Volk
4171a9c834 ircd::js: Add js exception hierarchy. 2016-11-13 16:29:44 -08:00
Jason Volk
2c231ac187 ircd: Add exception message generation bypass constructor. 2016-11-13 16:29:44 -08:00
Jason Volk
dffb39f8cc ircd::js: Add string utf conversions; improve string related. 2016-11-13 16:29:44 -08:00
Jason Volk
4cc0b16086 ircd::js: Force garbage collection when a trap is destructed. 2016-11-13 16:29:44 -08:00
Jason Volk
7b5629e4a5 ircd::js: Add basic trap debug / rename trap.res -> trap.has. 2016-11-13 16:29:44 -08:00
Jason Volk
34881325bb ircd::js: Develop object compartment related. 2016-11-13 16:29:43 -08:00
Jason Volk
0e2b8600e5 ircd::js: Moz people recommend thread_local JSRuntime/JSContext;
There is no reason to clutter most arguments with contexts. Additionally
these will be merged in the future SpiderMonkey. There is only one
JSRuntime/JSContext per thread and it must be locked when in use.
2016-11-13 16:29:43 -08:00
Jason Volk
6db6b2a975 ircd::js: Add trap to define JSObject functionality in C. 2016-11-13 16:29:43 -08:00
Jason Volk
c7ea23bece ircd::js: Add debug / reflection for JSErrorReport; deinline other debug. 2016-11-13 16:29:43 -08:00
Jason Volk
01e6e732cc ircd::js: Stub runtime/context callback framework. 2016-10-25 01:55:50 -07:00
Jason Volk
c1fd6391c6 ircd::js: Add barebones accoutrements. 2016-10-25 01:55:50 -07:00
Jason Volk
191258cea5 ircd::js: Add main runtime and main context. 2016-10-25 01:55:50 -07:00
Jason Volk
95068c7d06 Introduce Mozilla SpiderMonkey. 2016-10-25 01:55:50 -07:00
Jason Volk
fde4626fce ircd::cmds: Minor cleanup of cmds:: related. 2016-10-11 03:30:11 -07:00
Jason Volk
43b07d1180 ircd: Add more token related stringops. 2016-10-11 03:30:11 -07:00
Jason Volk
5e0659b2f9 ircd: Use variable length receive buffer. 2016-09-28 14:19:18 -07:00
Jason Volk
757d7e10a8 [temp] checkpoint some crap which isn't going to stick. 2016-09-27 17:29:06 -07:00
Jason Volk
bbd73746c3 ircd::ctx: Abstract the db::work subsystem into ctx::ole OffLoad Engine (OLE). 2016-09-27 17:28:24 -07:00
Jason Volk
33cc4c19d7 ircd::db: Add standard iteration + caching/options improvements. 2016-09-27 17:27:48 -07:00
Jason Volk
2251595551 ircd::ctx: Add preliminary profiling system to mitigate silent degradation.
This system alerts the developer when something blocks a context from yielding
for too long or exceeds stack usage limits. More profiling can be added for
further optimization.
2016-09-27 17:27:48 -07:00
Jason Volk
acd5593aac ircd::db: Develop basic key/value API. 2016-09-27 17:27:48 -07:00
Jason Volk
3083bb8e62 ircd::db: Add logging mask for db subsys and improve handle opening messages. 2016-09-27 17:27:48 -07:00
Jason Volk
34eae9a829 ircd::db: Develop options system for database. 2016-09-27 17:27:48 -07:00
Jason Volk
5df4bf6da2 ircd::db: Add database interface. Support RocksDB. 2016-09-27 02:20:42 -07:00
Jason Volk
e642d24681 ircd::mods: Allow a symbol unloader when no loader is given. 2016-09-27 02:20:42 -07:00
Jason Volk
1da6aa2b93 ircd::mapi: Improve the stuck-module message by showing it immediately. 2016-09-27 02:20:42 -07:00
Jason Volk
6d2d5a71f5 ircd::fs: Add function to build path. 2016-09-26 16:06:56 -07:00
Jason Volk
0913873b30 ircd::fs: Generalize DBPATH. 2016-09-26 16:06:56 -07:00
Jason Volk
284bad47e9 ircd: Add mods::init; a subsystem init/fini singleton held by ircd::main(). 2016-09-24 16:40:02 -07:00
Jason Volk
a4d186b6a1 ircd: Refactor hook system. 2016-09-23 00:01:00 -07:00
Jason Volk
2d494d8924 charybdis: Move getopt out from ircd::. 2016-09-23 00:01:00 -07:00
Jason Volk
f7f9d87df0 ircd::ctx: Add context pool. 2016-09-23 00:01:00 -07:00
Jason Volk
e2d115a97a ircd::ctx: Add sleep() suite, or a wait() which ignores notification. 2016-09-22 16:18:32 -07:00
Jason Volk
1a367399d3 ircd::rfc1459: Replace gather() with charset() for use with spirit char_(). 2016-09-22 16:18:32 -07:00
Jason Volk
581ca84439 ircd: sendf() directly to client (prelim). 2016-09-22 16:18:32 -07:00
Jason Volk
5dd280bb3b ircd::fmt: snprintf -> category. 2016-09-22 16:18:32 -07:00
Jason Volk
ccac92704d ircd::fmt: Add "%param" and "%parv" for middle and full-vector, respectively. 2016-09-22 16:18:32 -07:00
Jason Volk
fb50f82b6e ircd::rfc1459: Allow generation of single character params, and empty strings. 2016-09-22 16:18:32 -07:00
Jason Volk
99ad299ef0 ircd::fmt: Add a "%prefix" specifier which builds ":foo!bar@baz" from the arg. 2016-09-22 16:18:32 -07:00
Jason Volk
21aacf6509 ircd::fmt: Add syntax for specifier forced-termination.
This is available for a particular corner case due to our use of full-
word format specifiers.

Case: "%couch" is that %c followed by ouch, or is that the handled
format specifier '%couch' ?

If '%couch' is not registered there is no fallback to finding '%c'
(maybe one day), so in this case one must write "%c$ouch" and '%c'
becomes the specifier and the output for 'p' will be "pouch" and for
"%c$$ouch" the output will be "p$ouch."
2016-09-22 16:18:32 -07:00
Jason Volk
d82c013552 ircd::fmt: Develop format string basics. 2016-09-22 16:18:32 -07:00
Jason Volk
2b8bf0a4d1 ircd::fmt: Add modular format specifiers. 2016-09-22 16:18:32 -07:00
Jason Volk
d698b8a4a8 ircd: Break up rfc1459:: 2016-09-22 16:18:32 -07:00
Jason Volk
1837f55d11 ircd::rfc1459: Output grammar [part 2: protocol-safe format strings]. 2016-09-22 16:18:32 -07:00
Jason Volk
1e2ce3617d ircd::rfc1459: Output grammar [part 1: structure streams]. 2016-09-22 16:18:31 -07:00
Jason Volk
d8d2fe1564 ircd: Add scope 'life_guard' util for references in reentrant contexts. 2016-09-22 16:18:31 -07:00
Jason Volk
417594d0cd mapi: Add check for "stuck modules" and display warning for developer. 2016-09-21 16:29:30 -07:00
Jason Volk
0096a4a8c6 mapi: Reincarnate MAPI III key-value metadata, C++ style. 2016-09-21 16:29:30 -07:00
Jason Volk
679855be15 ircd: Split rbuf.h off client.cc 2016-09-21 16:29:30 -07:00
Jason Volk
ca4e04d85f ircd::vm: Introduce vm; temp demo an immediate context. 2016-09-21 16:29:30 -07:00
Jason Volk
fcd410d656 ircd::client: Add timer logic to client socket/io.
Note: Not sure if I like two reference counters for each client,
ideally, but we'll see where it goes after abstractions.
2016-09-21 16:29:30 -07:00
Jason Volk
a9f967d16a ircd: Feed received tape into the machine. 2016-09-21 16:29:30 -07:00
Jason Volk
fe7a1faccb ircd::rfc1459: Modify the tape grammar to accept empty terminated inputs. 2016-09-21 16:29:30 -07:00
Jason Volk
c706357db7 ircd: Add empty() for empty line checks; retune ircd::line typedef. 2016-09-21 16:29:29 -07:00
Jason Volk
e87a8cc5d2 ircd: Add low-level net utils for client (non-abstract). 2016-09-21 16:29:29 -07:00
Jason Volk
221145b31b ircd: Remove operhash. 2016-09-21 16:29:29 -07:00
Jason Volk
1fcb08d261 ircd: Post main exit cb to ios to keep the user off our stack; improve main comments. 2016-09-21 16:29:29 -07:00
Jason Volk
5cc056e68c ircd: Remove privset. 2016-09-21 16:29:29 -07:00
Jason Volk
dd1ef4fecf ircd: Remove dns, packet/parse, reject. 2016-09-21 16:29:29 -07:00
Jason Volk
922337386e ircd: Remove authproc, sslproc, wsproc, bandbi. 2016-09-21 16:29:29 -07:00
Jason Volk
d36541bb86 ircd: Remove old listener. (note to readd ban logic). 2016-09-21 16:29:29 -07:00
Jason Volk
d098a524e1 ircd: Remove msgbuf. 2016-09-21 16:29:29 -07:00
Jason Volk
6252d6f11e ircd: Remove cruft which boost abstracts away. 2016-09-21 16:29:29 -07:00
Jason Volk
26a3cd8441 Preliminary new client. Reorg/renames for ircd::client struct symbol. 2016-09-21 16:29:29 -07:00
Jason Volk
9d558e5eb4 ircd: Rename cmd.h/cc files to cmds.h/.cc 2016-09-21 16:29:28 -07:00
Jason Volk
556ceba8a0 ircd: new client; start over. 2016-09-21 16:29:28 -07:00
Jason Volk
89c2e74f3b ircd::ctx: Improve context interface. 2016-09-21 16:29:26 -07:00
Jason Volk
26adba7356 ircd::mods: Ignore empty handlers. 2016-09-21 16:28:52 -07:00
Jason Volk
090def32d2 ircd::mods: Add unload() to unload all modules. 2016-09-21 16:28:52 -07:00
Jason Volk
f71a7a5fb9 ircd::rfc1459: Reorganize grammar for better reuse. Add tape parser. 2016-09-21 16:28:52 -07:00
Jason Volk
07177e8a6b ircd/charybdis: Add at_main_exit() callback to indicate IRCd has finished
to the host program. Without any indication, the outer program's handlers
will continue to keep ios.run() from returning.
2016-09-21 16:28:51 -07:00
Jason Volk
aca6eefcd9 ircd: Improve exception reporting on newconf parsing. 2016-09-21 16:28:51 -07:00
Jason Volk
45c37f602e ircd: Establish main context; primary flow. 2016-09-21 16:28:51 -07:00
Jason Volk
2742547826 Introduce modular configuration system. 2016-09-21 16:28:51 -07:00
Jason Volk
d2bb8cd8a7 ircd::ctx: Add primary features to context. 2016-09-21 16:28:49 -07:00
Jason Volk
249ba02faa Introduce userspace contexts. 2016-09-09 16:17:36 -07:00
Jason Volk
88a15924ed ircd::log: Add console_quiet to suppress log messages to console. 2016-09-09 16:17:36 -07:00
Jason Volk
cead127c73 ircd::rfc1459: Adjust grammar to allow 'empty message' of "\r\n" 2016-09-09 16:17:36 -07:00
Jason Volk
9275429ee1 Replace command system. 2016-09-09 16:17:36 -07:00
Jason Volk
46d992d3a0 ircd::log: Connect the -debug command line switch to DEBUG facility. 2016-09-09 16:17:34 -07:00
Jason Volk
ae71d5eabb ircd::modules: Search for module with automated path suffix. 2016-09-09 16:17:03 -07:00
Jason Volk
db3d770b9d ircd::rfc1459: Introduce formal grammar. 2016-09-09 16:17:03 -07:00
Jason Volk
f446081021 ircd::rfc1459: Add util to build string of characters by attribute. 2016-09-09 16:17:03 -07:00
Jason Volk
2c854124af ircd::conf: Add newconf to oldconf translation. 2016-09-09 16:17:02 -07:00
Jason Volk
3e1bf93a22 ircd: Move reconstruct_parv() from parse.cc to stringops.cc 2016-09-09 16:17:02 -07:00
Jason Volk
670990a215 Upgrade newconf parser to boost::spirit. 2016-09-09 16:17:02 -07:00
Jason Volk
edd8fa2ab0 Chase the Bison off a cliff.
---<<|<᚜<᚜᚜᚜᚜-
2016-09-09 16:17:02 -07:00
Jason Volk
12c836dc6e Rip out libltdl. 2016-09-09 16:17:02 -07:00
Jason Volk
5aeeb73e20 ircd: Introduce ASIO; stub for signal handling and console UI. 2016-09-09 16:17:02 -07:00
Jason Volk
baa60ed253 ircd: Add booltype to getopts parser. 2016-09-09 16:17:02 -07:00
Jason Volk
4b9dc5bff4 ircd: Populate path:: with boost::filesystem wrapping. 2016-09-09 16:17:02 -07:00
Jason Volk
4b62a704bf charybdis: Establish main entry point. 2016-09-09 16:17:02 -07:00
Jason Volk
4399c1e2c3 ircd: Populate stringops with some general utils. 2016-09-09 16:17:01 -07:00
Jason Volk
a8ed3d2dc2 Simplify ircd::fs::path related to ircd::path. 2016-09-09 16:17:01 -07:00
Jason Volk
102c15d768 ircd: Remove fs path relocations for windows. 2016-09-09 16:17:01 -07:00
Jason Volk
153b017358 ircd: Remove pidfile. 2016-09-09 16:17:01 -07:00
Jason Volk
9d0a959bb5 MAPI IV. This iteration leverages the C++11 standardized RTTI.
* Simplifies the export declarations for module developers. While
MAPI III utilized a flexible key-value vector to eliminate positional
arguments in a header initializer, now the developer simply makes
a list of pointers to what they want to export for injection into
IRCd. Example:

mapi::header IRCD_MODULE
{
	"mymod",
	"My module adds a command, a hook, and a CLICAP",
	&my_cmdtab,
	&some_hook,
	&clicaptab
};

* Distributes the handlers for items passed to the above vector.
Anyone can add a type-handler to the module system from anywhere in IRCd
(and other modules?) When your type is encountered a handler is called
providing the symbol name to read out of the module. Example in parser.cc:

mods::add_loader<Message>([]
(mod &loading, const std::string &symbol)
{
	auto &msg(get<Message>(loading, symbol));
	add_command(msg.name, msg);
});
2016-09-09 16:17:01 -07:00
Jason Volk
e052b0ed06 ircd: Reuse umode template code here and there. 2016-09-09 16:17:01 -07:00
Jason Volk
3ebde4ab50 Convert umodes to mode_lease mechanism. 2016-09-09 16:17:01 -07:00
Jason Volk
127378b57c Refactor logger. 2016-09-09 16:17:00 -07:00
Jason Volk
7dc9b7648e ircd: Remove pleonastic message prefix in sendto_realops_snomask(). 2016-08-28 01:48:25 -07:00
Jason Volk
052a6c8d22 Refactor snomask. 2016-08-28 01:48:25 -07:00
Jason Volk
883dada3d4 ircd: Rename hostmask to mask; add pretty_mask() from chmode. 2016-08-27 20:57:36 -07:00
Jason Volk
8cca1190ec ircd: Deinline stringops.h 2016-08-27 20:57:36 -07:00
Jason Volk
21cfd2eefd ircd: Rename newconf name conflict. 2016-08-26 08:50:11 -07:00
Jason Volk
9d87313756 ircd: Hose fork()/close(fd) related. 2016-08-25 22:02:19 -07:00
Jason Volk
d9e90e8937 ircd::cache: Convert send function arguments client* -> client& 2016-08-25 04:57:23 -07:00
Jason Volk
5f79420c29 Refactor isupport. 2016-08-25 03:01:45 -07:00
Jason Volk
9c16de2d41 Refactor whowas. 2016-08-25 02:34:28 -07:00
Jason Volk
5f218cdbb2 Refactor scache. 2016-08-25 02:07:11 -07:00
Jason Volk
3e26e7ab44 ircd: Move tgchange related into namespace. 2016-08-25 02:07:11 -07:00
Jason Volk
9eaf1c80d1 ircd::client: Split client. 2016-08-25 02:07:11 -07:00
Jason Volk
f33b369609 Refactor umodes. 2016-08-23 15:25:09 -07:00
Jason Volk
2088193118 ircd: Allow non-default CAP_MASK during server estab. 2016-08-23 05:22:38 -07:00
Jason Volk
b65c5430f2 Refactor client flags. 2016-08-23 05:22:38 -07:00
Jason Volk
ab9a8e5c04 Convert all client handler arguments to reference type. 2016-08-23 05:22:38 -07:00
Jason Volk
dd9124b687 Preliminary Client refactor.
Add client to ircd::client:: namespace.

Also move former struct User and struct Server into client.cc as
opaque structure demo.
2016-08-22 15:56:12 -07:00
Jason Volk
90093b82e6 Upgrade user struct. 2016-08-21 15:30:22 -07:00
Jason Volk
9a22cfd393 ircd::chan: Add some basic protocol ERR exceptions. 2016-08-21 15:30:22 -07:00
Jason Volk
68b8a83419 ircd: Reduce is_chanop_voiced(). 2016-08-21 15:30:22 -07:00
Jason Volk
25d7274afa Fix missing namespace import. 2016-08-20 20:39:31 -07:00
Jason Volk
9835d43977 Upgrade channels structure. 2016-08-20 20:39:29 -07:00
Jason Volk
5752be41b8 Upgrade channel membership lists. 2016-08-20 19:30:35 -07:00
Jason Volk
276cad4275 Upgrade the channel invite list. 2016-08-20 19:30:35 -07:00
Jason Volk
a84fe8a09b Upgrade bqeI channel lists. 2016-08-20 19:30:35 -07:00
Jason Volk
125e3b21f2 ircd: Improve/rename channel name check related. 2016-08-20 19:30:34 -07:00
Jason Volk
7d44e271f7 Better names for some channel mode convenience former-macros. 2016-08-20 19:30:34 -07:00
Jason Volk
e1cccd482b Updates to match utilities. 2016-08-20 19:30:34 -07:00
Jason Volk
b7a84d3650 Prevent ambiguous cast when the comparator function is overloaded. 2016-08-20 19:30:34 -07:00
Jason Volk
2352528ffb ircd: rename mask_match() to match_mask(). 2016-08-20 19:30:34 -07:00
Jason Volk
f5143fbf73 Add channel structure into namespace + remove related rb_banheaps. 2016-08-20 19:30:34 -07:00
Jason Volk
03660fc4b0 Refactor chmode into namespace.
She's still a bit of a mess.
2016-08-20 19:30:34 -07:00
Jason Volk
f112111e51 Add rfc1459:: case compliance namespace. 2016-08-20 19:30:34 -07:00
Jason Volk
3f6d567285 ircd: Improve/refactor version.cc -> info.cc related. 2016-08-20 19:30:34 -07:00
Jason Volk
60c044d78a Fix redundant/conflicting namespace labels. 2016-08-20 19:30:33 -07:00
Jason Volk
fc4af83fdf Remove __unused macro. 2016-08-20 19:30:33 -07:00
Jason Volk
61b517ca3c Precompile and remove most include directives. Notes:
* To benefit from the precompiled-header (PCH) it MUST provide "the first C token."

Advantages:
Never worry about the include stack again. Remember, this means one less thing
for random module developers, community people learning C++, and new developers
to deal with. It should reduce the learning curve and barrier for participation.

Disadvantages:
Makes overall compilation a bit slower, especially without any additional
work to improve it again. There are several opportunities, places where the
PCH is probably being ignored, etc that can be addressed.
2016-08-20 19:30:33 -07:00
Jason Volk
029a83a17d ircd: Update exception macro to ensure format string checks. 2016-08-20 19:30:32 -07:00
Jason Volk
a1ee5034a2 Organize fs/path related into namespace. 2016-08-19 22:39:34 -07:00
Jason Volk
90c9fe686e ircd: Namespace and partially modernize ircd::cache. 2016-08-19 22:39:34 -07:00
Jason Volk
a71a4551ae ircd: Insert into ircd:: namespace. 2016-08-13 02:43:42 -07:00
Jason Volk
0e62b5a91a Add PIC/PCH condition in stdinc.h. 2016-08-13 02:43:41 -07:00
Jason Volk
fb8792da3d ircd: Towards a comprehensive capability C -> C++ refactor. 2016-08-13 02:43:41 -07:00
Jason Volk
f6199d5d12 Reduce redundant includes. 2016-08-12 16:41:40 -07:00
William Pitcock
09d19cbbd3 capability: clean up CAP_REQUIRED and CAP_ORPHANED flags, use bool variables instead 2016-07-31 18:39:19 -05:00
William Pitcock
e7a768ca22 capability: fix capability stats dumping 2016-07-31 18:10:31 -05:00
William Pitcock
8bb208aaa2 version: don't crash due to buffer underrun 2016-07-31 03:35:45 -05:00
William Pitcock
d0a59d58a0 capability: major rewrite for C++ support.
- no rb_dictionary use anymore
- CapabilityIndex converted into a proper class
- proper RAII lifecycle management
2016-07-31 03:18:22 -05:00
William Pitcock
10ff2d192c alias: convert to RAII/std::string/etc, no more rb_dictionary use (ref #202) 2016-07-31 01:57:04 -05:00
William Pitcock
1c77b054a8 parse: move cmd_dict to a std::set 2016-07-31 01:36:14 -05:00
William Pitcock
4ed0aebcb6 cache: further cleanups 2016-07-31 01:21:10 -05:00
William Pitcock
840ffb0935 cache: do not cause an implicit copy of std::string elements 2016-07-31 01:19:15 -05:00
William Pitcock
c7135bdf9a cache: adopt proper RAII pattern 2016-07-31 01:03:05 -05:00
William Pitcock
1c813cee95 cache: rough conversion of help system to std::map (ref #202) 2016-07-30 22:13:29 -05:00
Jason Volk
625fb277ca Add root exception + basic utilities. 2016-07-25 19:43:26 -07:00
Jason Volk
73297c988b Preliminary defaults/paths namespacing.
The namespace is inline to mimic the C namespace for now.
2016-07-25 16:49:00 -07:00
Jason Volk
4796bec441 Activate PCH for position independent code.
Cuts compilation time by 30%+
2016-07-25 00:54:38 -07:00
Jason Volk
d1edbc0e58 Complete the C++ linkage with flex/bison. 2016-07-25 00:54:38 -07:00
Jason Volk
404239eb60 Build system cleanup. 2016-07-22 19:46:28 -07:00
Jason Volk
8f03786300 ircd: Use rb_socklen_t type. 2016-07-22 19:46:28 -07:00
Jason Volk
ac577c1322 Regress brace init relaxation for clang. 2016-07-22 19:46:28 -07:00
Jason Volk
e7e7f8ff9f Convert bison.
NOTE: This only has "C" linkage right now.
2016-07-22 19:46:27 -07:00
Jason Volk
754a6d9b5c ircd: add local .gitignore. 2016-07-22 19:46:27 -07:00
Jason Volk
834964c659 Convert IRCd to C++
Happy 28th birthday. You're all grown up.
2016-07-22 19:46:27 -07:00
Jason Volk
7cea4c784d ircd: Merge the defaults/ircd_defs stuff for now.
ircd/rb: Move some lowish level macros down to rb.
2016-07-21 20:51:02 -07:00
Jason Volk
ffb2f63850 ircd: newconf: Fix const correctness. 2016-07-21 20:51:02 -07:00
Jason Volk
ea53aab823 Refactor repository layout.
* librb is no longer a separately configured subproject.
* charybdis is now a standalone directory with a binary.
* Include path layout now requires a directory ircd/ rb/ etc.
2016-07-21 20:51:02 -07:00
Jason Volk
acd516444a Fix header compatibility with c++ dialects.
This allows the option of at least -std=gnu++14 for new translation units.
Changes are trivial.
2016-07-19 22:38:56 -07:00
Jason Volk
de800bd3d7 ircd: Fix log error. 2016-07-19 22:35:49 -07:00
Jason Volk
fbcb6a2549 ircd: Fix missing operhash reference decrement from b02a913b. 2016-07-19 15:59:35 -07:00
Jason Volk
d58468f03b Fix erroneous return value. 2016-07-16 11:49:19 -07:00
Jason Volk
e8355cb7be MAPI Version 3
This version leverages a flexible, cleaner key-value strategy
reducing the need to design entire new headers for every feature
addition, change, etc.

* A friendly declaration for the module authors, with minimal
requirements to fill in, and explicit labels of what the fields are.
* Repetition of keys, removing references to (and the requirement to
build) a clist, hlist and hfnlist and caplist and whatever the future
holds.
* Safe deterministic loading and unloading. Keys are evaluated in
order, errors can be recognized, and unloading occurs in reverse
order.

ircd: Refactor internal half of modules.c, with some V3 additions.
Provides better delegation for versions, a cleaner stack with better
error handling, and some functionality deduping. V1 and V2 handlers
are still somewhat unaltered, just factored in.
2016-06-28 20:14:09 -07:00
Jason Volk
97a4adae40 ircd/librb: epoch needs a john hancock 2016-06-28 20:14:09 -07:00
Jason Volk
3073c2fa3a ircd: Add slog(), a log function that takes both an L_ argument and
a SNO_ argument to smash the pattern of having an ilog() followed by
sendto_realops_snomask() with the same message.
2016-06-27 14:32:53 -07:00
Mantas Mikulėnas
33bbdf474e
use designated initializers for the mode table
The table sure was pretty but we've been using the C99 syntax in quite a
few places already with no complaints, anyway.
2016-06-27 09:18:01 +03:00
William Pitcock
7e1bb8ad0d Proper channel mode classification. Fixes existing ad hoc
channel mode classification which is required by RPL_MYINFO indicating arity,
and RPL_ISUPPORT indicating an enumerated class. The content of these replies
had previously been generated by hardcoded strings of some letters.

Channel modes require classification which corresponds to the
CHANMODES= data in RPL_ISUPPORT. Classes A,B,C can then be
listed in the unary column of RPL_MYINFO. cflag_add() is updated
for this. Additional cleanup of chmode.h and channel.h
circularity is also proffered within.

Submitted-by: Jason Volk <jason@zemos.net>
2016-06-25 22:54:37 -05:00
Jason Volk
12de082e2c Fix bug. Note: The second hunk is just an assumption. It's not called from anywhere. 2016-06-25 14:27:32 -05:00
Jason Volk
b5cfad0319 Core modules cannot be unloaded, otherwise bad things happen.
Additionally some information is logged and passed to the operator
conducting a MODRESTART.
2016-06-21 17:42:36 -07:00
Jason Volk
94afbe9c8e ircd: Fix capability entry name string ownership.
The entry->cap must be copied and exclusive to the entry for the
cap to be orphaned, even if literals are expected. Because modules.
2016-06-21 17:32:28 -07:00
William Pitcock
94555087a1 ircd: relocate_paths() back on windows only now 2016-06-18 01:05:38 -05:00
William Pitcock
1e37cb443d conf_parser: warning fixes 2016-06-18 00:52:54 -05:00
William Pitcock
e55a9d6abc modules: serious cleanups 2016-06-18 00:52:16 -05:00
William Pitcock
92dad4831d modules: cleanups 2016-06-18 00:38:40 -05:00
William Pitcock
73b70ae846 ircd: fix compile of relocate_paths() 2016-06-18 00:22:02 -05:00
William Pitcock
7145720468 ircd: make relocate_paths() available always 2016-06-18 00:21:39 -05:00
William Pitcock
c51b77a312 ircd: call relocate_paths() in all cases 2016-06-18 00:20:59 -05:00
William Pitcock
e0e0c41524 ircd: print runtime path configuration 2016-06-17 23:36:47 -05:00
Aaron Jones
ab9088ad2e
wsproc: compile out dead code
Investigation is required to determine if this function should
actually be used
2016-06-01 20:54:12 +00:00
Aaron Jones
0b91afb2e1
ircd_signal: a function that tailcalls a noreturn function should be marked noreturn 2016-06-01 20:54:12 +00:00
Aaron Jones
df3db5d99b
ircd: functions that call exit(3) should be marked noreturn 2016-06-01 20:54:12 +00:00
Aaron Jones
b1cfd3922c
dns: make function used only within this unit static 2016-06-01 20:54:12 +00:00
Aaron Jones
4decc628bd
class: remove unused macros 2016-06-01 20:54:12 +00:00
Aaron Jones
ce2c092b49
chmode: remove unreachable break statement 2016-06-01 20:54:12 +00:00
Aaron Jones
bca336720e
chmode: silence harmless uninitialised variable warning 2016-06-01 20:54:12 +00:00
Aaron Jones
ec5522a1ca
channel: silence harmless uninitialised variable warning 2016-06-01 20:54:12 +00:00
Aaron Jones
2ec9f59588
bandbi: a function that calls exit(3) should be marked noreturn 2016-06-01 20:54:11 +00:00
Aaron Jones
5cbd46a893
authproc: don't shadow variable decls, avoid reserved name 2016-06-01 20:54:11 +00:00
Aaron Jones
0982871a99
strcpy: mass-migrate to strlcpy where appropriate 2016-05-15 03:58:44 +00:00
Aaron Jones
d539f22782
ircd_lexer: fix another crash with the same cause 2016-05-15 00:57:16 +00:00
Aaron Jones
401cb2bb17
ircd_lexer: fix crash with very large config option strings 2016-05-15 00:00:23 +00:00
Aaron Jones
b143df9ac4
minor spring cleaning: remove/relocate duplicate/unused includes & macros
[ci skip]
2016-05-14 23:29:33 +00:00
William Pitcock
dcf450702b newconf: ensure wsock and defer_accept are default-to-disable for now, for consistency sake on rehashes 2016-05-14 17:23:51 -05:00
Simon Arlott
d2a4981ab2
client: call authd_abort_client with the client that is exiting, not the originator 2016-05-12 10:06:31 +01:00
Aaron Jones
f5960b830b
[sslproc] Use certificate file if key file is not present 2016-05-05 04:10:57 +00:00
Aaron Jones
4d83a4d92d
[sslproc] Allow absense of private key file
Backends can then assume that the private key is in the certificate file
2016-05-05 03:47:18 +00:00
Simon Arlott
da20854e83
random_ping: stop producing negative values that become 16 chars 2016-05-02 21:14:16 +01:00
Simon Arlott
3c5f720c6f
authd_check: don't try to update bl_stats if it doesn't exist
This can happen if all the blacklists are removed and then authd
sends a blacklisted response for a client.
2016-04-30 13:18:06 +01:00
Simon Arlott
4573f8f2fb
authproc: don't try to delete bl_stats if it hasn't been created 2016-04-30 13:11:06 +01:00
Elizabeth Myers
e7c4ecd5b1
authproc: don't delete during iteration, this is not safe. 2016-04-30 01:11:56 -05:00
William Pitcock
b5f3e5e5e8 ircd: Channel.bants is not a serial but a timestamp.
Previously, the IRCd would increment bants instead of resyncing the timestamp, causing the potential of
false negatives from the bancache system.
2016-04-29 18:59:32 -05:00
Aaron Jones
fed4fc59bc
Mention another RFC with regard to deprecating plaintext 2016-04-29 16:28:18 +00:00
Simon Arlott
1cdf323be9
sslproc: don't send updated config to dead/shutdown sslds
They might be running older versions of the SSL library that
doesn't support the key type or ciphers being configured.
2016-04-29 07:35:43 +01:00
Simon Arlott
036cafaaaf
sslproc: reset ssld_wait/spin_count when explicitly requested to restart ssld 2016-04-28 22:25:36 +01:00
Simon Arlott
f018ed844d
certfp: Move method name/prefix strings to a separate header file 2016-04-26 20:33:18 +01:00
Simon Arlott
5adde7a4ed
getopt: don't modify argv as it breaks restart() 2016-04-25 23:32:18 +01:00
Simon Arlott
c173a8ad44
modules: use exit(EXIT_FAILURE) on failure
This will allow service process monitoring to recognise the difference
between a shutdown and an error of a -foreground ircd, because only
/DIE (or SIGINT) will exit with return code 0.
2016-04-25 22:27:57 +01:00
Simon Arlott
762468f85d
authd: wait until the ssl connection is "open" before reading
It's useful to allow authd to run in parallel with ssl negotiation,
but if the ssld connection has plaintext data ready for reading
there's a race condition between authd calling read_packet() and
ssl_process_certfp() storing the certificate fingerprint. This
scenario would be bad for a server connecting because fingerprint
verification will fail.

Allow either operation to complete first, but wait until
ssl_process_open_fd() calls the ssl open callback before calling
read_packet().
2016-04-25 21:43:21 +01:00
Simon Arlott
53789fddda
sslproc: simplify ssl open callback
Don't use the librb callback type as we're always passing client_p.

Provide a return value so that the connect handler can exit_client()
and the accept handler can opt to use the default dead handler.
2016-04-25 21:12:44 +01:00
Simon Arlott
f61d096186
conf: require certificate fingerprint for SSL connections 2016-04-25 20:19:48 +01:00
Simon Arlott
dc986b5468
sslproc: prefix SPKI certfp types to distinguish them from CERT 2016-04-25 20:12:27 +01:00
Simon Arlott
93ad89b232
sslproc: send the certftp method on rehash 2016-04-25 19:25:45 +01:00
Simon Arlott
f7b0c4b3d8
sslproc: use global ServerInfo configuration
There's no need to pass information around that sslproc already has access
to, so use ServerInfo directly. Remove the extra NULL checks as these are
already performed before setting ircd_ssl_ok = true.
2016-04-25 19:20:45 +01:00
Simon Arlott
90fd6ede1b
sslproc: include ssl_cipher_list in length check before sending configuration to ssld 2016-04-25 19:12:47 +01:00
Simon Arlott
19d1853f71
ssld: remove init_prng command
This is no longer configurable so it's redundant.
2016-04-25 19:02:03 +01:00
Simon Arlott
8cbd70a8ed
ircd: don't send ERR_NOTREGISTERED to servers
Sending messages after SERVER but before zlib is established breaks
outgoing connections. If the other server is misbehaving then ignore
its messages.
2016-04-24 17:41:44 +01:00
Simon Arlott
5ad62c80ee
librb: remove socklen parameter from rb_connect_tcp 2016-04-24 17:11:20 +01:00
Simon Arlott
d4214e9445
ircd: server connection configuration
Fix the server connection configuration so that it can simultaneously
handle a hostname/IPv4/IPv6 for connecting and a hostname/IPv4/IPv6
for binding. Maintains backwards compatibility for matching a hostname
with a mask.

Multiple host/vhost entries can be specified and the last value for
each address family is stored. Hostnames that resolve automatically
overwrite the IP address.

Server connections can now be made to either IPv4 or IPv6 at random
as well as preferring a specific address family.
2016-04-24 17:06:24 +01:00
Simon Arlott
65f43a4fc4
ircd: Don't try to connect to servers that we know have an invalid fingerprint
This just causes an unnecessary link/squit on the other server.
2016-04-24 11:49:21 +01:00
Simon Arlott
4fbb736202
ssld: add a callback when the connection is opened
This allows us to wait until we have the fingerprint information before
continuing with a server connect process.
2016-04-24 11:48:35 +01:00
Simon Arlott
5c317f1313
ircd: parse: add asserts for improper use of mod_add_cmd/mod_del_cmd 2016-04-23 23:56:41 +01:00
Simon Arlott
e8de2bfaf0
modules: add missing break 2016-04-23 23:37:38 +01:00
Simon Arlott
558744e520
ircd: do nothing in client_release_connids if !MyConnect 2016-04-23 23:25:25 +01:00
Simon Arlott
cc02bdf3a6
ircd: fix assert in client_release_connids
The connection may have already been closed and MyConnect cleared.

It's only a bug if the connection somehow has connids but is not
our connection.
2016-04-23 23:22:01 +01:00
Simon Arlott
cf430c1a40
ssld: Add new certfp_methods spki_sha256 and spki_sha512
These operate on the SubjectPublicKeyInfo of the certificate, which does
change unless the private key is changed. This allows the fingerprint to
stay constant even if the certificate is reissued.

(The same fingerprint is also used by DANE)
2016-04-23 22:51:05 +01:00
Simon Arlott
0ae7a89d78
ircd: sslproc: certfp commands have a 9 byte header, not 5 bytes
SHA512 hashes were being ignored because the message was too large
2016-04-23 20:52:20 +01:00
William Pitcock
c6098ed357 client: fix up client_release_connids() too, pointed out by lp0 2016-04-23 14:26:01 -05:00
William Pitcock
5c63bfe8b1 client: connid_get() should check MyConnect(), not MyClient(). 2016-04-23 14:17:36 -05:00
Simon Arlott
84e3e445aa
mr_server: Report certificate fingerprint mismatches
Log the received certificate fingerprint when it causes a server to be
rejected.
2016-04-23 17:37:05 +01:00
Simon Arlott
e7c4cf63bc
authproc: set GOT_ID flag when an ident response is received 2016-04-23 15:41:27 +01:00
staticfox
1729f46eab
authd: Avoid negative array indices 2016-04-22 23:06:42 -04:00
Elizabeth Myers
7445ece1d1
Revert "Implement the netsplit batch type."
This needs more work, see
https://github.com/ircv3/ircv3-specifications/issues/253

This reverts commit 2373891299.
2016-04-16 11:05:00 -05:00
Elizabeth Myers
2373891299
Implement the netsplit batch type.
This also lays the groundwork for the netjoin batch type, but that isn't
implemented yet. I don't like how some of this is implemented but it'll
have to do for now...

Compile tested, needs more testing.
2016-04-15 16:50:43 -05:00
Elizabeth Myers
4f2b9a4fd1
Don't use key member of dictionary iter objects after deletion 2016-04-12 09:43:50 -05:00
Elizabeth Myers
9e5c31ea0d
authproc: fix a typo 2016-04-12 09:37:56 -05:00
Elizabeth Myers
5e9a3f8674
Change the way authd configures opm
It's a bit of a hack, but better than before. Rather than rehashing
(which could get us into an endless loop), we now segregate the
configuration phase (creating entries ircd-side in case we restart authd
later) and sending phases (when configure_authd() is called). Since we
have to call configure_authd() no matter what (to send timeouts etc.)
and we have to send this data to configure authd anyway, and sending
duplicate data is bad, this is the only way I can think of for now.
2016-04-12 09:36:09 -05:00
Elizabeth Myers
ed5e1d1e41 send: trim a blank line [ci skip] 2016-04-11 11:52:01 -05:00
Elizabeth Myers
7a21fb5b34 s_user: clean up authd checks 2016-04-10 10:02:33 -05:00
Elizabeth Myers
2a104d6641 s_user: enhancements to proxy reporting messages 2016-04-10 09:35:02 -05:00
Elizabeth Myers
d19aab3375 Fix stupid linux warning 2016-04-10 09:22:34 -05:00
Elizabeth Myers
154dc91ef0 Wrap up authd preclient stuff in its own struct 2016-04-10 09:20:51 -05:00
staticfox
02fa4362cd version.c.SH: Fix build
We need stddef.h mainly for NULL
2016-04-09 06:05:08 -04:00
Elizabeth Myers
b14d2bd6ea Formatting fixes for credits
Contributed from jackal^, but fixed up a bit.
2016-04-09 04:55:57 -05:00
Elizabeth Myers
4eafa9e62f ipv4_from_ipv6: move to librb 2016-04-08 03:49:23 -05:00
Elizabeth Myers
66f7fe673b Get rid of flags2.
It seems to come from an era where long long didn't exist and 64-bit
machines weren't common. 32-bit machines are still common but I can't
imagine this will have much performance impact there.

This "fixes" #179 in title only, but see comments within.
2016-04-07 07:40:55 -05:00
Elizabeth Myers
9057170ce8 Cleanup defaults.h config file.
Clean up spaces/tabs mixing mess (bleh), add some defaults for authd
stuff, and get rid of CHARYBDIS_SOMAXCONN (just define SOMAXCONN if it's
available...).
2016-04-07 04:47:48 -05:00
Elizabeth Myers
0a87075b86 modules: fix up display names 2016-04-07 04:15:12 -05:00
Elizabeth Myers
78946542bb modules: move module loading/unloading commands to dedicated module.
There's no reason to really have these in the main ircd anymore, static
modules are dead and aren't coming back.

To ensure people don't do something hopelessly retarded, this is a core
module.
2016-04-07 04:00:25 -05:00
Elizabeth Myers
999c42bad8 Remove useless alias_entry hits member 2016-04-06 11:47:13 -05:00
Elizabeth Myers
a19097baa4 ircd: load modules after conf files
The alias module depends on this
2016-04-06 07:43:45 -05:00
Elizabeth Myers
b663a8070f Move alias handling into a dedicated module.
Not yet tested, caveat emptor!

Closes #166
2016-04-06 07:27:50 -05:00
Elizabeth Myers
2575a78b0e Add hook for when rehash is called.
This will be used by the future alias module.
2016-04-06 05:43:54 -05:00
Elizabeth Myers
f956cb0f1f Use rb_* versions of nonportable string functions 2016-04-05 05:39:59 -05:00
Elizabeth Myers
731d128990 authd: rework module ID system
Provider ID's are now assigned dynamically at load-time. To accomodate
this, there is now a lookup system for finding providers by name (all
providers have names as well).
2016-04-05 04:31:22 -05:00
Elizabeth Myers
3256156aca Announce changed capabilities on module load
Closes #165
2016-04-04 02:30:35 -05:00
staticfox
5eb3d7a7c0 modules: Revert mapi_register() to use ints
modinit() returns either 0 (success) or -1 (failure) so we
can't check for true/false.
2016-04-03 20:14:36 -04:00
Elizabeth Myers
c0483ac17b boolify calls to rehash 2016-04-03 01:53:34 -05:00
Elizabeth Myers
aa483e55bd bool-ify modules stuff 2016-04-03 01:51:45 -05:00
Elizabeth Myers
6603175304 Clean up module loading a bit. 2016-04-03 01:21:19 -05:00
Elizabeth Myers
ffa79a9516 Use rb_dlink_list_length... == 0, not !rb_dlink_list_length 2016-04-02 22:45:52 -05:00
Elizabeth Myers
34bc7caeae Send enabling message to opm at the end of opm block. 2016-04-02 22:33:19 -05:00
Elizabeth Myers
5c5296c8f8 newconf: delete all proxies on rehash 2016-04-02 22:30:54 -05:00
Elizabeth Myers
e2a8228f85 authproc: minor fixes 2016-04-02 20:31:32 -05:00
Elizabeth Myers
8d48aa190b dns: don't use zero ID's 2016-04-02 20:19:37 -05:00
Elizabeth Myers
1d657e0b08 authproc: rehash on authd restart
This is a hack for now so it gets the config again.
2016-04-02 20:10:56 -05:00
Elizabeth Myers
3d2fc110e3 authproc: add more API's for opm management 2016-04-02 19:45:27 -05:00
Elizabeth Myers
c1f4db3fb7 Tweak some configuration semantics of opm 2016-04-02 19:45:09 -05:00
Elizabeth Myers
d9364d2913 authproc: pad leading 0 for localhost IP's
This avoids misparsing by rb's helper stuff..
2016-04-02 19:29:16 -05:00
Elizabeth Myers
eb0814b3cb opm: add support for HTTPS CONNECT proxies.
TBD: do we need an SSL listener for these?
2016-04-02 18:38:21 -05:00
Elizabeth Myers
64fae2607a Rename authd.[ch] on ircd side to authproc.[ch] to prevent shadowing. 2016-04-02 16:44:04 -05:00
Elizabeth Myers
b0326abdc9 authd: warn on a bad command 2016-04-02 05:05:28 -05:00
Elizabeth Myers
6d0fafec99 authd: minor cleanups 2016-04-02 04:51:11 -05:00
Elizabeth Myers
ae0a058544 authd: clean up command handling with a table 2016-04-02 04:49:01 -05:00
Elizabeth Myers
61d1befa2a authd: fix race on the ircd side.
The client may have already gone away, so if we can't find the local
cid, don't try to restart authd.
2016-04-02 03:51:54 -05:00
Elizabeth Myers
6d5edc6f53 authd: when aborting, don't just do read_packet. 2016-04-02 03:46:31 -05:00
Elizabeth Myers
9bba0f6143 opm: add adjustable timeout values 2016-04-02 03:33:27 -05:00
William Pitcock
34b88b6571 ircd: conf: properly calculate the number of wsockd to start 2016-04-02 03:20:16 -05:00
Elizabeth Myers
fabe8b94c5 Add HTTP CONNECT proxy scanning 2016-04-02 03:11:30 -05:00
William Pitcock
bccb7dedef ircd: wsproc: cleanups 2016-04-02 03:10:01 -05:00
William Pitcock
c53ca1e029 ircd: integrate ircd side of wsockd support 2016-04-02 02:56:22 -05:00
Elizabeth Myers
fbe8d087e7 Add exempt logic for open proxies 2016-04-02 02:42:11 -05:00
Elizabeth Myers
51fa2ab8a3 opm: allow scanners to be configurable 2016-04-02 02:29:48 -05:00
Elizabeth Myers
adfe7b8396 authd: small cleanup 2016-04-02 01:20:49 -05:00
Elizabeth Myers
6a7bb6f1df authd: more minor cleanups 2016-04-02 01:16:47 -05:00
Elizabeth Myers
b1a577f224 ircd/authd: cleanups 2016-04-02 01:05:21 -05:00
Elizabeth Myers
8275e2700d Add opm stuff to default configs 2016-04-01 04:11:04 -05:00
Elizabeth Myers
34f16c467d authd: fix API boo boo 2016-04-01 02:56:03 -05:00
Elizabeth Myers
6da256dc93 authd: remove some whitespace 2016-04-01 02:44:50 -05:00
Elizabeth Myers
4f6119cd40 authd: add API for setting OPM listeners 2016-04-01 02:43:01 -05:00
Elizabeth Myers
7372553dd6 authd: fix compile error 2016-04-01 02:42:50 -05:00
Elizabeth Myers
e158281056 authd: properly abort clients who timeout or when the helper restarts 2016-04-01 02:27:48 -05:00
Elizabeth Myers
d86692fa44 Add new sockaddr_storage port retrieval/setting macros
These macros are safe for use on IPv6 and clean up a lot of code.
2016-03-31 03:00:29 -05:00
Elizabeth Myers
bf3ecca24b ircd/listener: un-obsoleteify comments 2016-03-30 03:36:04 -05:00
Elizabeth Myers
4094d2fad5 Remove trailing whitespace from files. 2016-03-29 13:23:27 -05:00
Matt Ullman
2b535500f9 automake: Ensure ircd_parser.h is created
Fixes random travis explosions
2016-03-28 21:39:10 -04:00
Elizabeth Myers
7ad083b065 logger: add idebug
This only does something if debugging is enabled.
2016-03-28 19:06:31 -05:00
Elizabeth Myers
bae7e637de ircd/authd: remove rb_free no longer needed. 2016-03-28 18:19:06 -05:00
Elizabeth Myers
0bb5d3f031 authd: this isn't a list dammit! 2016-03-28 18:13:57 -05:00
Elizabeth Myers
540ae37b96 authd: don't use wild pointer 2016-03-28 18:09:22 -05:00
Elizabeth Myers
a6a30cc7b8 ircd/newconf: better IPv4 example 2016-03-28 17:55:54 -05:00
Elizabeth Myers
771dcfad37 newconf: add illustrative examples to comments 2016-03-28 17:54:01 -05:00
Elizabeth Myers
835d456c64 newconf: fix check for IPv6 address length 2016-03-28 17:47:13 -05:00
Elizabeth Myers
3fe0efd55a newconf: change an error to a warning 2016-03-28 17:45:35 -05:00
Elizabeth Myers
50808796e0 authd: It Works, Bitches™ 2016-03-28 16:47:51 -05:00
Elizabeth Myers
a9b809c796 ircd_lexer: use correct variable here.
ircd_paths[IRCD_PATH_ETC] is what's wanted, not IRCD_PATH_ETC.
2016-03-28 14:58:26 -05:00
Elizabeth Myers
7b4d1de38d Merge branch 'master' into authd-framework 2016-03-28 14:44:47 -05:00
Elizabeth Myers
ad04380360 ircd/authd: respect auth_disabled config option 2016-03-28 02:42:20 -05:00
Elizabeth Myers
59d42a9fcb ircd/authd: use proper timeout values for clients 2016-03-28 02:32:05 -05:00
Elizabeth Myers
ef0b13b960 ircd/authd: timeout dead authd clients 2016-03-28 02:30:54 -05:00
Elizabeth Myers
cc4d393152 ircd/authd: implement client noticing 2016-03-28 02:19:34 -05:00
Elizabeth Myers
d3f6b80867 Replace s_auth/blacklist stuff with authd calls
This also does a lot of surgery on the conf system to reconfigure authd.

/!\ WARNING! ACHTUNG! ADVERTENCIA! ATTENTION! AVVERTIMENTO! /!\
This code has not been run-time tested yet (though it compiles)!
2016-03-28 02:11:16 -05:00
Matt Ullman
33d43d4fa4 ircd: Move signaled variables to volatile sig_atomic_t 2016-03-27 20:05:38 -04:00
Matt Ullman
aa7eff28f2 hash.c: Save some more bytes 2016-03-27 06:29:10 -04:00
Elizabeth Myers
3f7039934f s_auth: remove trailing whitespace at end of usernames. 2016-03-26 19:21:16 -05:00
Elizabeth Myers
938f93f4bc ircd/authd: some comments 2016-03-26 16:44:41 -05:00
Matt Ullman
de8b3b7174 sslproc: Remove unused variable 2016-03-26 16:41:36 -04:00
Elizabeth Myers
0a659bf0ab Port notice stuff over from authd-framework-2 and use it.
This allows things like oper warnings from authd using the W message type
also.
2016-03-25 21:58:32 -05:00
Elizabeth Myers
122ae255d7 authd: change reload character to R from H.
This is more in line with the specification @kaniini laid out.
2016-03-25 21:00:13 -05:00
William Pitcock
de7cf7e009 ircd: client: substantially rework the connid registry system
now connid's are allocated on demand and clients may have as many connid's as necessary.
this allows us to build chains of helpers while ensuring the ircd properly tracks and GCs the resources.
2016-03-25 19:50:29 -05:00
Matt Ullman
afba2488ec extb_combi: More int to bool conversion
Cleanup whitespace in ircd_lexer.l
2016-03-25 19:47:58 -04:00
William Pitcock
0aaa37f721 ircd: only relocate_paths on windows, no point on posix 2016-03-25 18:13:39 -05:00
William Pitcock
d6c17e5de2 ircd: implement path relocation 2016-03-25 01:57:25 -05:00
William Pitcock
2f545aad87 ircd: use ircd_paths for logFileName and pidFileName 2016-03-25 00:00:06 -05:00
William Pitcock
0d180487b4 ircd: unbreak build 2016-03-24 18:50:13 -05:00
William Pitcock
4d8cfacd95 ircd: start staging for relocatable paths 2016-03-24 18:45:28 -05:00
Matt Ullman
e0a9b5d3bf chmode: Move check_forward() to a boolean 2016-03-24 14:42:54 -04:00
Matt Ullman
a383180a0a chmode: Move add_id() to a boolean 2016-03-24 14:37:52 -04:00
Matt Ullman
9aa639eddd chmode: Move allow_mode_change() to a boolean 2016-03-24 14:26:02 -04:00
Matt Ullman
2a4b3ea648 version.c.SH: Fix generation not incrementing 2016-03-24 04:00:23 -04:00
Matt Ullman
3b9507d0e9 channel: Move flood_attack_channel() to a boolean 2016-03-24 02:25:26 -04:00
Matt Ullman
216f58a27c channel: Change check_channel_name() note to false
[ci skip]
2016-03-24 02:14:03 -04:00
Matt Ullman
3a46803fef channel: Move check_channel_name() to a boolean 2016-03-24 01:54:39 -04:00
Matt Ullman
2e45f5d808 Cleanup more BSD-isms 2016-03-23 22:37:52 -04:00
Matt Ullman
4b11f39115 Move away from BSD data types 2016-03-23 19:11:42 -04:00
Elizabeth Myers
28c94d6598 Remove common.h from lexer and parser 2016-03-23 10:09:53 -05:00
Elizabeth Myers
79435744c7 common.h: raison d'être is gone, so out it goes.
Fold whatever was left into ircd_defs.h
2016-03-23 09:33:56 -05:00
Elizabeth Myers
7ac3261f97 Ensure the parser/lexer don't use IRCD_BUFSIZE. 2016-03-23 09:26:07 -05:00
Elizabeth Myers
82236a2a65 IRCD_BUFSIZE is redundant with BUFSIZE, so kill it. 2016-03-23 09:22:55 -05:00
Elizabeth Myers
ab31d2b07e Send YES/NO to Davy Jones's Locker. 2016-03-23 08:52:32 -05:00
Elizabeth Myers
bd43a44469 Remove more YES/NO usage. 2016-03-23 08:43:28 -05:00
Elizabeth Myers
2fc6772ee1 typedef-ify rb_radixtree for consistency. 2016-03-23 08:32:22 -05:00
Elizabeth Myers
4177311e6e Change struct Dictionary(*) to rb_dictionary(_\1).
This cleans things up a slightly and puts the dictionary stuff in its
own namespace.
2016-03-23 08:09:58 -05:00
Elizabeth Myers
2ac4ba969b ircd: shut GCC the fuck up.
No, it can't probably fail... that isn't what that's there for.
2016-03-23 08:07:23 -05:00
Elizabeth Myers
56f84dedf7 DICTIONARY_FOREACH → RB_DICTIONARY_FOREACH
This is in librb and therefore should be prefixed.
2016-03-23 07:45:44 -05:00
Matt Ullman
66769bc1f8 More cleanup 2016-03-23 00:11:26 -04:00
Matt Ullman
e23126c83b Cleanup warnings 2016-03-21 22:28:41 -04:00
William Pitcock
4d383612d4 ircd: log runtime path (mainly as proof of concept for rb_path_to_self()) 2016-03-21 21:14:11 -05:00
Matt Ullman
ad9cbf9e0d s_user: Don't send CHGHOST clients op/voice syncs 2016-03-20 18:59:07 -04:00
William Pitcock
5a5f173daa parse: check IsServer() before firing off a remove_unknowns() call 2016-03-20 06:40:54 -05:00
William Pitcock
4f5056dd83 ircd: fix build on freebsd 2016-03-20 06:22:39 -05:00
William Pitcock
dd92c99b83 modules: fix thinko 2016-03-20 06:01:12 -05:00
William Pitcock
c9108ea073 ircd: modules: findmodule_byname(): also check LT_MODULE_EXT here 2016-03-20 06:00:20 -05:00
William Pitcock
6cb643f4f9 ircd: modules: use LT_MODULE_EXT more consistently 2016-03-20 05:54:48 -05:00
William Pitcock
44f442e3fb ircd: parse: now this type cast for POINTER MATH is just fucking stupid 2016-03-20 04:21:25 -05:00
William Pitcock
09f528c24c ircd: win32 does not need the FD 0,1,2 stuff 2016-03-20 03:10:05 -05:00
William Pitcock
c1bfea7332 ircd: handle some EXIT_FAILURE cases differently on win32 2016-03-20 03:06:14 -05:00
William Pitcock
48c6d0f56c ircd: squelch write(2) warning differently 2016-03-20 03:02:56 -05:00
William Pitcock
02831b6f65 modules: warning cleanups 2016-03-20 02:42:42 -05:00
William Pitcock
b5c0180c4b ircd: build: tell libtool what to DLL_EXPORT 2016-03-20 02:08:14 -05:00
William Pitcock
1ba9eba550 ircd: _WIN32 checks on geteuid() too 2016-03-20 02:04:26 -05:00
William Pitcock
538d208948 ircd: ircd main: use librb functions for daemon management 2016-03-20 02:03:32 -05:00
William Pitcock
a7fb269357 ircd: listener: more ss_family grr 2016-03-20 02:01:00 -05:00
William Pitcock
53e50d0e2f ircd: ircd_signal: win32 stubs 2016-03-20 02:00:22 -05:00
William Pitcock
7671316784 ircd: lexer: likewise 2016-03-20 01:59:09 -05:00
William Pitcock
e16f4b78b1 ircd: ircd_parser: we do not need to include netinet/in.h 2016-03-20 01:58:28 -05:00
William Pitcock
0b9aca384a ircd: client: fix format string for free_user() debug notice 2016-03-20 01:57:19 -05:00
William Pitcock
e867208deb ircd: use GET_SS_FAMILY() in a bunch of places 2016-03-20 01:54:24 -05:00
William Pitcock
1d90b085d3 ircd: blacklist: use GET_SS_FAMILY() 2016-03-20 01:48:14 -05:00
William Pitcock
85368a13d3 ircd: rewrite SOCKET_ERROR as I_SOCKET_ERROR 2016-03-20 01:44:00 -05:00
William Pitcock
1859e9d7d7 ircd: remove basically entirely pointless ServerInfo.hub (closes #167) 2016-03-19 23:05:07 -05:00
William Pitcock
72b51232a9 ensure we do not distribute flex/bison files 2016-03-19 19:23:08 -05:00
Elizabeth Myers
9b8e9eb321 config.h delenda est 2016-03-19 19:14:26 -05:00
William Pitcock
43f06d8d8c ircd/sslproc: same for zlib_ok 2016-03-19 00:58:57 -05:00
William Pitcock
bfc44622c8 ircd: do not shadow internal openssl symbol "ssl_ok" (yeah, i know) 2016-03-19 00:57:32 -05:00
William Pitcock
7cc67225cb sslproc: return after calling free_ssl_daemon() when in sandbox ipc service routine 2016-03-19 00:04:38 -05:00
William Pitcock
61eb4ba64a ircd: link libircd with -no-external 2016-03-18 23:14:38 -05:00
Elizabeth Myers
c084fcafec ircd: fix a really retarded GCC warning by being anal retentively "standards compliant" 2016-03-18 15:53:43 -05:00
Elizabeth Myers
1db8a31395 modules: fix stupid GCC false positive warning.
This invocation of strlen is on a constant string and should be folded
by any sane compiler (GCC included), but it warns anyway because GCC is
stupid.
2016-03-18 15:32:33 -05:00
William Pitcock
1ca8cd5276 parse: ensure that aliases have a sufficient number of parameters before trying to process them 2016-03-17 23:13:22 -05:00
Elizabeth Myers
617144af7a dns: remove unneeded defines 2016-03-14 22:15:28 -05:00
Elizabeth Myers
9ca15a2679 Merge branch 'master' of github.com:charybdis-ircd/charybdis 2016-03-14 22:14:28 -05:00
Simon Arlott
532f83a70a
ircd: Don't refer to the IP address as a "netmask" in error messages 2016-03-14 22:38:04 +00:00
Elizabeth Myers
068c6c4a2b dns: use a dictionary for query storage 2016-03-13 03:23:41 -05:00
Elizabeth Myers
9abdcf1c64 modules: can .la suffix.
.la archives are prohibited by most Linux distributions because they
clutter up the linker. They may get caught up as victims in scripts that
purge .la files. Besides, .la files don't matter for simple loadable
modules on most systems.

So, what we do now instead is just use the platform suffix detected by
libtool.
2016-03-12 20:10:46 -06:00
Elizabeth Myers
50f842125a authd: crap, C was taken already, rename reload to H. 2016-03-10 08:07:29 -06:00
Elizabeth Myers
6445c1cf0b rehash: don't restart authd for DNS reloads
This could lead to pretty nasty things, like losing DNS (and in the
future, ident) queries. That's a Bad Thing™.
2016-03-09 03:46:04 -06:00
Elizabeth Myers
503727d1ee More bool conversions 2016-03-09 02:19:31 -06:00
Elizabeth Myers
1b916de505 More bool conversions [ci skip] 2016-03-09 02:10:21 -06:00
Elizabeth Myers
f66f0baa67 More bool conversions 2016-03-09 02:00:40 -06:00
Elizabeth Myers
550e851c5e Merge branch 'master' of github.com:charybdis-ircd/charybdis into elizafox-cleanups 2016-03-09 01:41:10 -06:00
Elizabeth Myers
3c7d6fcce7 Message handlers should return void.
Also fix up some return values and stuff to use bool (or void if
nothing). I just did it whilst I was here.

According to jilles, the return value used to signify whether or not the
client had exited. This was error-prone and was fixed a long, long time
ago, but the return value was left int for historical reasons.

Since the return type is not used (and has no clear use case anyway),
it's safe to just get rid of it.
2016-03-09 01:37:03 -06:00
William Pitcock
ea111ea544 ircd: further cleanup of YES/NO 2016-03-08 13:52:48 -06:00
William Pitcock
881acf00c6 ircd: fix up some iwarn() calls which referred to L_MAIN 2016-03-08 13:47:41 -06:00
William Pitcock
3089f59c10 modules: using labs() for date math is unsafe 2016-03-08 13:46:19 -06:00
William Pitcock
d2e0b78f6c s_conf: remove YES/NO references 2016-03-08 13:45:29 -06:00
Elizabeth Myers
6287d57fa9 s_user: clean up return types and can YES/NO. 2016-03-08 05:06:29 -06:00
Elizabeth Myers
07554369bd Detect stdbool.h and add conformant shims if it isn't available
Charybdis requires C99 already, so it's high time we start using
stdbool. I've converted a few pieces of code already.

A lot of the old code that uses YES/NO should probably be updated too
because that's fucking hideous.
2016-03-08 04:54:04 -06:00
Elizabeth Myers
55799c6b4d dns: prune worthless function. 2016-03-08 03:25:21 -06:00
Elizabeth Myers
8a26cd1973 dns: clean up awful hacks.
We now have a resolver cache which we init on startup.
2016-03-08 03:22:25 -06:00
Elizabeth Myers
394b8dde17 authd: allow querying the list of DNS servers.
This was an asston of pain, and it still feels "dirty" as it introduces
an async call where there normally wouldn't be one. Better
implementation more than welcome.
2016-03-08 02:53:25 -06:00
Elizabeth Myers
cdf5ed6cc8 blacklist: clean up some of my old code 2016-03-07 19:54:25 -06:00
Elizabeth Myers
7e6b5384b3 Convert 2.8 style ToUpper/ToLower names to irctoupper/irctolower 2016-03-07 19:04:24 -06:00
Elizabeth Myers
81204be809 Add ircd serials to AV2. 2016-03-07 18:10:22 -06:00
Elizabeth Myers
749d697c98 Fix generation of serno.h
Due to reversed conditionals, it wasn't being generated properly.

This also actually fixes its generation in librb by just copying the
Charybdis version. Unbundlers will want to take note of this.
2016-03-07 17:15:39 -06:00
Elizabeth Myers
638d286293 Change some RATBOX_FOO defines to CHARYBDIS_FOO. 2016-03-07 05:01:31 -06:00
Elizabeth Myers
978b723252 modules: show module provenance in modlist 2016-03-06 23:21:08 -06:00
Elizabeth Myers
216d70e91d modules: tag origin at load time. 2016-03-06 18:57:05 -06:00
Elizabeth Myers
c63aeb44e9 modules: add origin field to V2 2016-03-06 17:52:49 -06:00
Elizabeth Myers
2ab24be6f9 modules: show descriptions in list 2016-03-06 17:26:30 -06:00
Elizabeth Myers
0eb7d9c02c modules: add description field 2016-03-06 17:14:31 -06:00
Elizabeth Myers
0e5bf029a6 modules: wow, that was a dumb error.
Add a stupid break statement.
2016-03-06 17:08:44 -06:00
Elizabeth Myers
8e9c6a7590 modules: add new MAPI V2
MAPI V1 is still supported for legacy modules, but it is highly
recommended to update to MAPI V2. It includes support for capability
tables, module descriptions, and implicit versions.
2016-03-06 16:53:03 -06:00
Elizabeth Myers
a4bf26dd34 Move irc_* data structures to librb.
This makes the base ircd less cluttered up with data structures that can
go elsewhere.
2016-03-06 14:17:19 -06:00
Elizabeth Myers
fe037171d6 Change all leftover libratbox stuff to librb. 2016-03-06 03:49:27 -06:00
Elizabeth Myers
cbeab4bc34 Remove $Id tags from everything.
These are obsolete and none have changed since 10 years gao...
2016-03-06 02:47:27 -06:00
William Pitcock
a3a2f405fc ircd: -lrb, not -lratbox 2016-03-06 02:34:47 -06:00
William Pitcock
c83f2f5e12 rename libratbox to librb, since its pretty modified anyway 2016-03-06 02:30:20 -06:00
Elizabeth Myers
1d91de8100 Remove old .indent.pro files
These have been unused since dinosaurs roamed the earth and are mostly
smelly old Hybrid relics.
2016-03-05 21:21:36 -06:00
William Pitcock
9ea48ec30a remove presupplied autotools files 2016-03-05 17:47:48 -06:00
Elizabeth Myers
7416e480b0 parse: export cmd_dict for use elsewhere. 2016-03-05 01:05:26 -06:00
Elizabeth Myers
e8f1c19e7b parse: get rid of report_messages
It is a function with a single usage, that is used only for one specific
stats command on one line.
2016-03-05 00:55:33 -06:00
Simon Arlott
e9ffc3c153
ssld: provide version in stats S output 2016-03-03 22:14:50 +00:00
William Pitcock
428f9bc117 client: handle UID rollover. ircd-ratbox r28917 2016-03-02 15:56:49 -06:00
William Pitcock
65f2c0a263 ircd: simplify connid table handling 2016-03-02 15:31:50 -06:00
William Pitcock
1b6568f6d0 sslproc: compile fix 2016-03-01 20:24:12 -06:00
William Pitcock
a0130f9daf sslproc: properly use zconnid's for ziplinks 2016-03-01 20:02:55 -06:00
William Pitcock
36f0ec74c1 client: always purge a client from the connid table, as connid is not related to FD 2016-03-01 19:52:34 -06:00
Simon Arlott
035d9143bd ircd: add missing sslproc function ssld_foreach_info()
Iterate through the ssl daemons and report their status.
2016-03-01 21:30:51 +00:00
William Pitcock
2e4bf32f36 capability: set ownerdata to NULL when orphaning 2016-02-28 19:15:04 -06:00
William Pitcock
193d4db30c sasl: transfer ownership of 'sasl' capability to m_sasl module 2016-02-28 00:29:26 -06:00
William Pitcock
573896f639 send: allow passing NULL origin to build_msgbuf_from() (for future use) 2016-02-27 02:56:44 -06:00
William Pitcock
be2ce24c42 send: implement echo-message 2016-02-27 02:48:37 -06:00
William Pitcock
0416a2cc86 starttls: take ownership of 'tls' capability 2016-02-27 01:45:40 -06:00
William Pitcock
32df5e96a6 cap: substantial rewrite leveraging the ircd capabilities framework for client caps 2016-02-27 01:41:36 -06:00
William Pitcock
ba83226733 capability: move some previously private structures to public API 2016-02-27 00:46:49 -06:00
William Pitcock
486cd34415 ircd: chase capability API changes 2016-02-27 00:01:54 -06:00
William Pitcock
63b9db9675 capability: allow attaching capability-owner data to a capability token, to enable extended data for client capabilities 2016-02-26 23:55:43 -06:00
William Pitcock
4d2f203026 msgbuf: msgbuf_unparse_tags(): don't send a tags sigil unless tags will actually be emitted 2016-02-20 18:41:16 -06:00
William Pitcock
474f6342e8 send: we dont actually want tags in sendto_channel_local_butone() 2016-02-20 18:35:35 -06:00
William Pitcock
c8c3ac2440 send: obviously we can't just reuse a va_list, duh 2016-02-20 18:32:32 -06:00
William Pitcock
667fb62eec send: implement tags support for sendto_channel_flags() too 2016-02-20 18:27:15 -06:00
William Pitcock
adaa9ba989 send: more sendto_anywhere() fixing 2016-02-20 18:12:46 -06:00
William Pitcock
f2003b4411 send: fix sendto_anywhere() missing a target param 2016-02-20 17:59:38 -06:00
William Pitcock
71c875fb9a msgbuf: allow for an explicit target to be defined 2016-02-20 17:59:00 -06:00
William Pitcock
5559c3cf17 send: implement partial support for outbound tags (enough for account-tag as a testcase) 2016-02-20 16:37:19 -06:00
William Pitcock
4f8ababae0 send: implement linebuf_put_msgbuf() and msgbuf_build_from(), which build the core of the ircv3.2 tags support for outbound messages 2016-02-20 15:50:12 -06:00
William Pitcock
33085472a2 msgbuf: make msgbuf_unparse_prefix() public 2016-02-20 14:46:09 -06:00
William Pitcock
c678fbc08b ircd: remove broken USE_IODEBUG_HOOKS knob and related code 2016-02-20 12:02:49 -06:00
William Pitcock
8f64d32533 msgbuf: implement msgbuf_vunparse_fmt() and friends 2016-02-20 11:38:00 -06:00
William Pitcock
691adddd0e msgbuf: handle me.name properly 2016-02-20 11:23:44 -06:00
William Pitcock
4a13e3f1da msgbuf: add some message building code 2016-02-20 11:21:12 -06:00
William Pitcock
d84acbceca newconf: move SSL/TLS deprecation message from ERROR severity to WARNING severity 2016-02-19 17:11:25 -06:00
William Pitcock
7baa37a9ef msg: remove last vestiges of the fakelag system. charybdis has never supported fakelag. 2016-02-19 16:43:39 -06:00
Antoine Beaupré
a393a68a0e make build reproducible
we do this by removing the uname usage everywhere: it is not actually
used at runtime at all.

we keep the timestamp, because it is actually used in user_welcome()
but allow it to be overriden.

ideally, that timestamp would be completely removed, but I am not sure
what to put in its place, or if it would break some mysterious RFC (or
client!) if we remove that announcement.
2016-02-16 00:37:20 -05:00
William Pitcock
d670fe5271 msgbuf: msgbuf_append_tag(): add support for attaching a specific capability bit 2016-02-13 00:19:23 -06:00
William Pitcock
08006c16f8 msgbuf: do a better job of handling gotchas with parsing tags 2016-02-10 21:16:28 -06:00
William Pitcock
4a84a763cd ircd: change MessageHandler to include a MsgBuf pointer at the front for tag access 2016-02-10 20:13:44 -06:00
Simon Arlott
eb1b303d56 ircd: support restarting ssld processes
Add REHASH SSLD (admins only) that starts new sslds and marks the
existing ones as inactive until all their clients disconnect.

Very useful whenever the SSL library has a vulnerability because
new connections can use a new version of the library without
disconnecting existing clients/servers.

Add STATS S (admins only) to list ssld processes, status, and client
count.
2016-02-10 19:03:30 -06:00
Simon Arlott
5e270e7d89
ircd: Handle which_ssld failure
It's possible for which_ssld to fail and return NULL, handle this in
start_ssld_connect and start_ssld_accept by returning NULL. The NULL
return value is already handled in all calls to start_ssld_accept,
so handle this for start_ssld_connect by reporting an error connecting.

Handle it in start_zlib_session by exiting the client.
2016-02-10 22:45:38 +00:00
Simon Arlott
b9ff4868a9
ircd: add missing rb_free in start_zlib_session 2016-02-10 22:45:35 +00:00
William Pitcock
1579e155b1 parse: further cleanups 2016-02-10 10:25:16 -06:00
William Pitcock
20dd3725b8 parse: fix aliases 2016-02-10 10:09:42 -06:00
William Pitcock
269dd686b3 msgbuf: improve parse logic 2016-02-10 00:46:32 -06:00
William Pitcock
4d03595da4 parse: utilise MsgBuf to simplify message parsing 2016-02-10 00:22:37 -06:00
William Pitcock
a8e69f5dfc msgbuf: implement msgbuf_parse() 2016-02-10 00:08:58 -06:00
William Pitcock
de50a480af Remove unused .depend files. 2016-02-09 23:08:35 -06:00
Valerii Iatsko
5203cba5ce Remove libratbox's snprintf.c, update related ircd code 2016-02-10 02:25:32 +01:00
William Pitcock
55d5f7970a ircd: various memory leak fixes from pull requests 2016-02-09 10:53:24 -06:00
Simon Arlott
87c44482d0 ircd: chmode: Avoid referencing beyond the end of the flags_list array in set_channel_mode
We're setting flags to flags_list[3] at the end of the loop, but the
array only has 3 elements. Unless the compiler optimises this away
(because flags will not be used again) we're accessing memory beyond
the end of the array.

With gcc-4.9:
chmode.c: In function 'set_channel_mode':
chmode.c:1548:54: warning: iteration 2u invokes undefined behavior [-Waggressive-loop-optimizations]
  for(j = 0, flags = flags_list[0]; j < 3; j++, flags = flags_list[j])
                                                      ^
chmode.c:1548:2: note: containing loop
  for(j = 0, flags = flags_list[0]; j < 3; j++, flags = flags_list[j])

Explicitly set "flags = flags_list[j]" at the start of each loop
iteration, which will avoid referencing off the end of the array.
2016-02-09 10:41:37 -06:00
William Pitcock
35f284c2bd ircd: newconf: impose a deprecation warning for plaintext listeners 2016-01-29 11:35:05 -05:00
William Pitcock
cc6ce2d689 ircd: hash: remove some detritus 2016-01-23 11:44:08 -05:00
William Pitcock
d38c08c178 ircd: hostname lists are now stored in a radix tree 2016-01-23 11:40:17 -05:00
William Pitcock
b47f8a4fda ircd: import modified version of ratbox 3.1 whowas code 2016-01-23 11:16:34 -05:00
William Pitcock
3de2266243 ircd: monitor: use irc_radixtree instead of home-grown hashtable 2016-01-23 10:35:40 -05:00
William Pitcock
912cae0c9c Revert "ircd: rework sendq limits a bit."
This reverts commit 9a5958119c.
2016-01-20 22:27:33 -05:00
William Pitcock
704697b6b6 ircd: radixtree: allow irc_radixtree_elem_find() to find a fuzzy match instead of an exact match 2016-01-20 22:10:35 -05:00
William Pitcock
0d9a72de21 ircd: radixtree: add irc_radixtree_foreach_start_from() which uses irc_radixtree_elem_find() to find the starting point 2016-01-20 21:02:03 -05:00
William Pitcock
1b68574301 ircd: radixtree: move some things into the right namespace 2016-01-20 20:52:17 -05:00
William Pitcock
1046ac77af ircd: chmode: change CHFL_CHANOP checks where appropriate to allow levels above CHFL_CHANOP
this is the same behaviour as other checks in other places in the code.
2016-01-16 01:55:57 -06:00
William Pitcock
f60055d32d ircd: call rehash_authd(), not restart_authd() when rehashing 2016-01-16 00:04:07 -06:00
William Pitcock
71c955336e ircd: add general::hide_opers_in_whois to simulate ircd-seven operhide 2016-01-15 13:38:40 -06:00
William Pitcock
3ee43bcf29 ircd: get_channel_access(): do not derive channel pointer from membership 2016-01-13 22:16:44 -06:00
William Pitcock
633531a4aa TOPIC: strip channel topic colors here if configured, instead of in set_channel_topic() 2016-01-13 17:17:14 -06:00
William Pitcock
14482679ce ircd: channel: implement an option to strip color codes from channel topics 2016-01-13 17:05:41 -06:00
William Pitcock
b4e3861bf9 ircd: get_channel_access(): allow override hooks to work without a membership pointer 2016-01-13 16:56:05 -06:00
William Pitcock
fd8e3f892c ircd: chmode: clean up chm_hidden() a little bit 2016-01-13 16:37:25 -06:00
William Pitcock
be29ec793d ircd: import hidden channel modes framework, from ircd-seven
This allows for modules to define channel modes which are only visible to opers.
2016-01-13 16:34:27 -06:00
William Pitcock
15feac531c ircd: implement support for remote module load/unload/etc commands 2016-01-12 00:37:54 -06:00
William Pitcock
cc7ae51cdc Allow remote DIE and RESTART (from ircd-seven) 2016-01-12 00:04:54 -06:00
William Pitcock
a4721f5e9f ircd: implement EXTENDCHANS, based on ircd-seven (with some improvements from chatircd) 2016-01-11 23:32:23 -06:00
William Pitcock
fe749d3709 ircd: implement GRANT subsystem based on ircd-seven 2016-01-11 23:02:03 -06:00
William Pitcock
cd66c5b922 ircd: change_nick_user_host(): only update target_p->username if the buffer has actually changed (pointed out by Valgrind) 2016-01-11 22:46:49 -06:00
William Pitcock
b870a5f8e9 extensions/override: display mode-change string in override messages 2016-01-11 22:40:32 -06:00
William Pitcock
e4603e3d27 parse: implement reconstruct_parv() 2016-01-11 22:28:55 -06:00
William Pitcock
9b74b99268 ircd: hash: channels are no longer a hashtable 2016-01-09 23:47:50 -06:00
William Pitcock
9a5958119c ircd: rework sendq limits a bit.
The sendq limit is now soft, now we halt processing if a sendq is exceeded, until it is sufficiently drained.
This allows us to implement SAFELIST and other floody commands without hacks.
2016-01-09 23:14:04 -06:00
William Pitcock
8dacf9e917 ircd: make STATS B easier to understand 2016-01-09 06:23:13 -06:00
William Pitcock
a21e57bebe ircd: scache: use irc_radixtree 2016-01-09 05:55:46 -06:00
William Pitcock
ed4d1541ff ircd: hash: we do not use 2.8-style chained hashtables for client lookups anymore, so remove no longer relevant comments 2016-01-09 05:43:51 -06:00
William Pitcock
bb4ac31447 ircd: hash: use an irc_radixtree for client names 2016-01-09 05:30:13 -06:00
William Pitcock
3eeccbe3ce ircd: hash: use an irc_radixtree for IDs 2016-01-09 05:13:10 -06:00
William Pitcock
46be39faab ircd: hash: use an irc_radixtree for storing resv's 2016-01-09 04:59:02 -06:00
William Pitcock
5c7c7d65c2 ircd: hash: client connection id hashtables are now dictionaries keyed by uint32 2016-01-09 04:25:41 -06:00
William Pitcock
45dfdf46c8 ircd: irc_dictionary: allow storage of non-string types as keys 2016-01-09 04:09:40 -06:00
William Pitcock
d99ff0298c ircd: irc_dictionary: fix up stats routines 2016-01-09 01:41:20 -06:00
William Pitcock
21d5a11cb8 ircd: irc_dictionary: also show dictionary stats 2016-01-09 01:34:37 -06:00
William Pitcock
99b461bb2f ircd: ensure irc_dictionary users have names, for stats tracking. 2016-01-09 01:22:11 -06:00
William Pitcock
b02a913bc8 ircd: operhash: rewrite to use irc_radixtree 2016-01-09 01:08:15 -06:00
William Pitcock
db891ac3ca ircd: irc_radixtree: add irc_radixtree_irccasecanon and irc_radixtree_strcasecanon helpers 2016-01-09 01:00:55 -06:00
William Pitcock
325cc939b7 ircd: irc_radixtree: add some convenience functions for tracking radix tree stats 2016-01-09 00:54:57 -06:00
William Pitcock
8e6ba6f9ce ircd: add irc_radixtree, which is like irc_dictionary but uses a radix tree as the backing store 2016-01-09 00:44:39 -06:00
William Pitcock
d6797f8639 ircd: operhash: convert to a proper stringpool implementation 2016-01-08 11:09:00 -06:00
William Pitcock
9e45a5ca19 buildsystem: further cleanup 2016-01-08 07:01:00 -06:00
William Pitcock
1eeb046930 ircd: remove internal resolver, no longer used 2016-01-08 06:39:51 -06:00
William Pitcock
1d02144f8b ircd: move DNS resolution over to authd 2016-01-08 06:31:08 -06:00
William Pitcock
1bf2919817 ircd/dns: implement final version of authd-dns line protocol 2016-01-08 05:44:05 -06:00
William Pitcock
6d063f05b0 ircd: start up authd 2016-01-08 05:20:09 -06:00
Aaron Jones
d8c4154da2 Fix LTDL conditional, remove some unnecessary and/or ugly configure tests 2016-01-07 17:15:55 +00:00
Aaron Jones
eec2776c6c Fix some autotools discrepancies, disable SQLite threading code 2016-01-07 16:58:28 +00:00
William Pitcock
63f53befd3 ircd: add main.c stub executable 2016-01-06 23:57:35 -06:00
William Pitcock
415b482ce3 ircd: add new lex/yacc files 2016-01-06 22:50:54 -06:00
William Pitcock
1d9974511b ircd/dns: same 2016-01-06 21:35:34 -06:00
William Pitcock
ebccc13b84 authd: fix ratbox3.1-ism 2016-01-06 21:25:07 -06:00
William Pitcock
3949459b81 ircd/authd: minor cleanups 2016-01-06 04:46:11 -06:00
William Pitcock
fb7d74efef ircd/authd: split out authd lifecycle functions from actual DNS functions 2016-01-06 04:41:57 -06:00
William Pitcock
7d2852b4d1 dns: new WIP client which queries authd for DNS records, not yet in use 2016-01-06 04:28:34 -06:00
William Pitcock
b697c3296a sslproc: process title of ssld seemed gramatically weird (nitpicking) 2016-01-06 02:15:23 -06:00
William Pitcock
d76258f559 modules: revert lt_dlopenext() change 2016-01-06 01:57:24 -06:00
William Pitcock
4f0e3623ca ircd: fix linking on OS X 2016-01-06 01:40:48 -06:00
William Pitcock
30da589e9e modules: use lt_dlopenext() to make the config look nicer 2016-01-06 01:33:33 -06:00
William Pitcock
2a19fc3f57 general: remove last vestiges of static modules support (this hasn't ever actually worked...) 2016-01-06 01:28:20 -06:00
William Pitcock
46fded53d4 update buildsystem artifacts 2016-01-06 01:16:49 -06:00
William Pitcock
ff12cc9479 rename src to ircd, libcore to libircd 2016-01-06 01:16:08 -06:00