Commit graph

516 commits

Author SHA1 Message Date
Aaron Weiss
a086e0913c
Merge pull request #189 from udoprog/fix-sync-resolve
Avoid synchronously resolving server address
2019-12-30 19:28:34 -05:00
John-John Tedro
b08e2a89ae Avoid synchronously resolving server address 2019-12-29 19:08:31 +01: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
Adam Gausmann
400c982639 Fix compilation errors on 0.14 2019-06-10 20:52:36 -05: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
Daniel Griffen
971a386ca0
spawn handler futures on the reactor 2019-01-09 20:18:38 -08:00
David Blajda
199f591e78 Handle the case of a single SOH in PRIVMSG 2019-01-03 19:33:17 +00:00
Chris West (Faux)
99fe1256e1 parse traditional USER form
Fixes: #160
2018-10-21 12:25:08 +01:00
Aaron Weiss
47d9c4c78b
Merge pull request #149 from brigand/feat/develop/message-prefix
Introduces Prefix enum
2018-10-15 11:16:30 -04:00
Jason Liquorish
cdf874c23e Re-format ci bot message 2018-10-12 23:11:02 +01:00
Jason Liquorish
f1d7d71471 Add test bot for CI 2018-10-09 19:06:16 +01: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
e5089fa317 Use tokio::net::tcp::ConnectFuture instead of deprecated re-export. 2018-10-04 02:53:56 +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
Frankie Bagnardi
f66dcd6b0a rebased 2018-09-17 22:03:22 -07:00
Frankie Bagnardi
140c981e63 prefix cleanup and docs 2018-09-17 22:00:52 -07:00
Frankie Bagnardi
c44ec0984e Prefix with FromStr and Display 2018-09-17 21:59:02 -07:00
Aaron Weiss
f109c10475
Fixed a warning in config.rs (for some tests) and the README example. 2018-09-17 18:08:21 -04:00
Aaron Weiss
befe0ada84
Removed the old colors module (now in irc_proto). 2018-09-17 17:56:14 -04:00
Aaron Weiss
acbdb1de2f
Merge branch 'develop' into 0.14 2018-09-17 17:54:09 -04: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
Jokler
0be5cb26c8 Upgrade native-tls and tokio-tls to 0.2 2018-09-17 02:11:25 +02:00
Eunchong Yu
8d07c117bb Polish the parser 2018-09-01 06:51:25 +09:00
Eunchong Yu
c311d37902 Use macro 2018-09-01 06:51:25 +09:00
Eunchong Yu
e7fe08f29d Make is_formatted simple 2018-09-01 06:51:24 +09:00
Eunchong Yu
b108c833bb Reduce allocation more
String::strip_formatting will do most of operations in place.
2018-09-01 06:51:24 +09:00
Eunchong Yu
4feafc681a Reduce memcpy case in strip_formatting
This makes the return type of FormattedStringExt::strip_formatting
more meaningful.

Drawbacks:

  In theory, it breaks backward compatbility due to the shape of
FormattedStringExt trait was changed. But I expected it's not the
problem for the most case because it's rare to implement that trait
while using this library.
2018-09-01 06:51:24 +09:00
Eunchong Yu
c7c65ef671 Fix infinite recursive calls
It reverts #137.
2018-09-01 06:51:24 +09:00
Eunchong Yu
8ffac6bef0 Replace deprecated tokio_io::codec to tokio_codec 2018-08-19 09:18:50 +09:00
Eunchong Yu
1cf7744156 Clarify to prevent unintended recursions 2018-08-19 08:54:22 +09:00
Eunchong Yu
12003c880c Remove deprecated AsciiExt 2018-08-19 08:50:38 +09:00
Aaron Weiss
abbf1eafcb
Added notes for PRIVMSG and NOTICE about responses (re: #144). 2018-08-16 12:18:05 -04:00
Aaron Weiss
c69e944033
Reverted some of the TLS changes from #141 because they broke TLS completely. 2018-06-18 21:29:45 +02: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
Ratys
efd13d5a13 Added dependency on tokio 0.1. 2018-06-08 16:41:13 +03:00
Aaron Weiss
791edb2bd7
Added a small optimization (suggested in tokio guide) to LineCodec. 2018-06-05 20:04:06 +02:00