Théo Gaillard
4d0acf91a1
feat: add multi lines support for CTCP
2020-05-13 07:33:21 +08:00
Théo Gaillard
67e61e0606
feature: add TLS as feature and support multiples TLS backends (currently native-tls and rustls)
2020-03-31 09:48:57 +08:00
Kaleb Elwert
f785d15b4c
Handle suffix as a plain param
2020-01-30 16:25:52 -08:00
Kaleb Elwert
57e5874852
Fix client::test::no_user_tracking
2020-01-28 22:11:17 -08:00
John-John Tedro
731f792686
Fix updating outgoing client state
...
This also allows us to simplify the channel_tracking_names_part test.
2019-12-28 07:34:48 +01:00
Aaron Weiss
71a703c762
Merge pull request #186 from udoprog/config
...
Simplify Config structure
2019-12-27 16:57:09 -05:00
Aaron Weiss
4c756654a1
Merge pull request #187 from udoprog/fix-test-todo
...
Fix test which requires driving the outgoing queue
2019-12-27 16:52:57 -05:00
John-John Tedro
9066824213
Fix test which requires driving the outgoing queue
2019-12-27 17:36:11 +01:00
John-John Tedro
5189b69e7e
Simplify Config structure
...
This simplifies some of the `Config` structure, in particular this
means:
Parameters which are meaningfully equivalent longer stored in
an `Option<T>`, an example of this is `channels`. If you don't
want to join any channels you simply leave it as empty instead.
In effect, `None` is behaviorally equivalent to `vec![]`.
We don't allocate when accessing certain configuration options.
For example, when accessing `channels` we used to allocate a
vector to handle the "empty case", we simply return the slice
corresponding to the list of channels instead.
We skip serializing empty or optional configuration fields.
From a deserialization perspective this is already something
that was mostly supported through use of `Option<T>` and
`#[serde(default)]`.
2019-12-27 17:12:46 +01:00
John-John Tedro
f200a9f281
Switch to modern error handling
2019-12-27 17:01:03 +01:00
John-John Tedro
549e2e8722
Port to tokio 0.2
2019-12-18 21:06:04 +01:00
Aaron Weiss
0b7a7a0f02
fixup! Merge branch 'develop' into 0.14
2019-06-06 13:41:30 -04:00
Aaron Weiss
c383c6241e
Merge branch 'develop' into 0.14
2019-06-06 13:40:55 -04:00
jesopo
379a2db9fa
Update source_response
test
2019-05-18 23:08:08 +01:00
jesopo
9dbb04431a
Don't send an empty CTCP SOURCE response
2019-05-18 22:51:55 +01:00
John-John Tedro
f02362c782
Mark Future in PackedIrcClient as Send + 'static
2019-03-17 11:52:48 +01:00
David Blajda
199f591e78
Handle the case of a single SOH in PRIVMSG
2019-01-03 19:33:17 +00:00
Christoph Herzog
e112efe7dd
Add 'Send' bound for PackedClient client future.
...
The Future is Send anyway, but this bound on the Box is neccessary
to use the future across threads because the compiler can't figure
out the Send bound otherwise.
2018-10-04 18:20:41 +02:00
Christoph Herzog
2aff64b645
Refactor IrcClientFuture and ConnectionFuture to own the config
...
This commit refactors IrcClientFuture and ConnectionFuture to own
the config instead of holding a reference.
This is required for reconnecting in dynamic contexts.
This is not possible with the old API, because Config is a reference,
requiring the value to live for the whole execution of the reactor.
2018-10-04 02:52:53 +02:00
Douman
23112f7582
Clean up tokio-core
2018-09-22 23:43:47 +03:00
Aaron Weiss
53fb890a7e
Merged develop onto 0.14 (which was tricky, and this might have introduced bugs?).
2018-09-17 17:50:53 -04:00
Eunchong Yu
12003c880c
Remove deprecated AsciiExt
2018-08-19 08:50:38 +09:00
Ratys
bdeb7054b3
Removed PackedIrcClient
, IrcClientFuture
:
...
They are redundant now, and are dead code;
Cleaned up unused imports.
2018-06-08 22:18:40 +03:00
Ratys
5275e79971
Rewrote conn
module to utilize impl Future
in return position:
...
Changed all involved structs to take `Config`s, rather than borrow them - this is due to `'static` requirement that is bound to crop up somewhere, when spawning a future into a reactor/runtime.
Updated examples and docs to reflect the change.
2018-06-08 22:00:49 +03:00
Ratys
bfb8bf5a1b
Partial rewrite to utilize impl Future
in return position:
...
Changed return types relevant methods of `conn` module; no implementation changes;
Rewrote relevant methods of `reactor` and `client`.
2018-06-08 17:25:57 +03:00
Ratys
b5a575966f
Partially moved from tokio_core
to tokio
, removed handle
args:
...
Migrated `conn` and `client` modules to `tokio` types;
Removed `handle` arguments and fields in `reactor`, `conn` and `client` modules;
Removed unused imports of `Handle`, updated doctest.
2018-06-08 17:24:26 +03:00
Aaron Weiss
0e53b979bc
Added a bunch of additional comments and documentation to irc::client
.
2018-05-05 16:01:59 +02:00
Aaron Weiss
0235c71268
Added current nickname tracking ( fixes #125 ). [BREAKING]
2018-05-05 15:12:29 +02:00
Aaron Weiss
845ca63416
Track users who are kicked out of channels ( fixes #127 ).
2018-03-31 15:39:02 +02:00
Aaron Weiss
cef0462859
Added a regression test for sending raw messages (see #128 ).
2018-03-31 15:39:02 +02:00
Aaron Weiss
7680227222
Sanitize messages later to stop the problematic round-trip parsing.
2018-03-31 15:39:01 +02:00
Aaron Weiss
363629f400
Changed ClientExt to be more generic.
2018-02-18 22:54:24 +01:00
Aaron Weiss
c91d14a949
Fixed a small bug when using nochanlists.
2018-02-18 21:13:01 +01:00
Aaron Weiss
cabe0919c8
Cleaned up a bit of testing code.
2018-02-12 20:58:50 +01:00
Emīls Piņķis
a8cdf1ecfc
Add error type for when there are no valid nicks
2018-02-12 19:16:00 +00:00
Aaron Weiss
4c26dfc3cd
Reverted a7ae091
because it caused a regression ( resolves #112 ).
2018-01-29 14:04:41 +01:00
Aaron Weiss
59f426ac8d
Cleaned up tests and documentation after the big renaming.
2018-01-28 03:19:05 +01:00
Aaron Weiss
87b84fdeb9
Changed naming scheme from server to client ( resolves #46 ).
2018-01-28 02:16:50 +01:00
Aaron Weiss
9c574b00c0
Moved prelude module into its own file.
2018-01-28 02:02:45 +01:00
Aaron Weiss
fd4e5706eb
Added more documentation for IrcReactor, and made new_future internal-only.
2018-01-27 19:26:48 +01:00
Aaron Weiss
bbc6b0244d
Added an experimental reactor API to hide tokio.
2018-01-08 21:52:56 -05:00
Aaron Weiss
2564e6b060
Added a bunch of detail about the high-level client API to the prelude.
2017-12-24 21:50:43 -05:00
Aaron Weiss
52035bd31e
Added EachIncomingExt to prelude.
2017-06-25 05:02:27 -04:00
Aaron Weiss
bd5253016e
Added ChannelExt to prelude.
2017-06-25 04:47:09 -04:00
Aaron Weiss
1030f51b46
Improved top-level module documentation.
2017-06-22 16:04:09 -04:00
Aaron Weiss
eecbe1630c
Refactored Mode API into its own module and added it to prelude.
2017-06-22 14:15:55 -04:00
Aaron Weiss
c0af567258
Cleaned up imports and prelude.
2017-06-21 22:14:15 -04:00
Aaron Weiss
073b82feec
Replaced old conn.rs with async.rs.
2017-06-21 16:55:37 -04:00
Aaron Weiss
c363dc7837
Migrated real IrcServer API to be async based on experiment.
2017-06-21 16:53:28 -04:00
Aaron Weiss
7d3e923de8
Added a first real cut at async.
2017-06-21 13:18:22 -04:00