Commit graph

537 commits

Author SHA1 Message Date
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
Frederik B
acc6d7f0f0
Remove unnecessary [..]
Replaces  (&self[..]).strip_formatting() with (&self).strip_formatting() in `impl FormattedStringExt for String`
2018-05-16 11:15:43 +02:00
Aaron Weiss
7d8feafb52
Documented panic condition for client registration with a reactor. 2018-05-14 20:53:06 +02:00
Aaron Weiss
5bd349f8ff
Added more documentation to send_privmsg about line splitting. 2018-05-11 22:28:18 +02:00
Aaron Weiss
4e9b1ece19
Improved documentation of the IrcTransport. 2018-05-05 16:22:33 +02: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
c97469d630
Moved irc::proto::colors into irc-proto crate. 2018-05-05 13:48:35 +02:00
Aaron Weiss
11f86aedc3
Fixed irc crate to use irc-proto crate now. 2018-05-05 13:37:36 +02:00
Aaron Weiss
991e030a4f
Started splitting out proto into its own crate. 2018-05-05 13:37:32 +02:00
Aaron Weiss
af16961037
Merge pull request #134 from freddyb/color-problems
parse 2nd color digit only if within (0..16)
2018-04-22 01:14:30 +02:00
Frederik B
5833403ffd parse 2nd color digit only if within (0..16) 2018-04-21 20:12:21 +02:00
Aaron Weiss
4fe5862632
Merge pull request #133 from freddyb/add-formattedstring
add support for formatted strings (fixes #130)
2018-04-15 22:41:59 +02:00
Frederik B
30dd756588 add tests for formatted strings (#130) 2018-04-15 22:33:56 +02:00
Frederik B
654b759c02 add support for formatted strings (fixes #130) 2018-04-14 23:15:00 +02:00
Alex S. Glomsaas
e80a0f3a89 Implement CertFP
resolves #131
2018-03-31 21:09:42 +02:00
Aaron Weiss
f2e10001c0
Improved the documentation for Config. 2018-03-31 16:22:07 +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
panicbit
e514c97688 Use FnMut for registering client handlers 2018-03-26 08:53:38 +02:00
isra17
121e2cc844
Fix wrong RPL numeric formatting 2018-03-13 13:18:58 -04:00
Aaron Weiss
4921127372
Changed ping logic to eliminate a rare panic under heavy load (fixes #120). 2018-02-23 21:08:38 +01:00
Aaron Weiss
c78770f763
Added a custom error that wraps failure::Error to add error possibilities for API consumers. 2018-02-21 14:30:27 +01:00
Aaron Weiss
4509336d74
Fixed config tests after Config::get_option API change. 2018-02-21 12:23:54 +01:00
Aaron Weiss
7d744529e6
Eliminated possible panics in Config::get_option. 2018-02-21 12:17:41 +01:00
Aaron Weiss
363629f400
Changed ClientExt to be more generic. 2018-02-18 22:54:24 +01:00
Aaron Weiss
3847bcb5a6
Always skip serializing config's path. 2018-02-18 21:39:06 +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
Aaron Weiss
9b99677391
Changed error message for NoUsableNick. 2018-02-12 20:30:02 +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
e847cda40a
IrcTransport::poll_complete now polls the ping timer (fixes #115). 2018-02-08 02:21:08 +01:00
Aaron Weiss
decfd0b9bc
Noted inaccuracies of the is_error function for Response. 2018-02-07 12:13:43 +01:00
Aaron Weiss
31f8c692b6
Added some more information to the response docs, and some extra common response codes. 2018-02-07 12:08:59 +01:00
Aaron Weiss
4c26dfc3cd
Reverted a7ae091 because it caused a regression (resolves #112). 2018-01-29 14:04:41 +01:00
Aaron Weiss
ea2c05f9fc
Removed irc::client::server (which should've been done before, woops). 2018-01-29 14:01:44 +01:00
Aaron Weiss
bc8f7342dd
Added missing call to IrcReactor::run in the reactor docs. 2018-01-28 14:04:21 +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
d6786936fa
Fixed the code that shouldn't have worked without AsciiExt. 2018-01-28 01:59:47 +01:00
Aaron Weiss
e4d441695e
Merge branch 'use-failure' into develop 2018-01-28 01:16:38 +01:00
Aaron Weiss
afe3558880
Cleaned up a bunch of code with clippy. 2018-01-28 01:14:55 +01:00
Aaron Weiss
5266e4098d
Refactored the whole crate to use failure. 2018-01-28 00:52:11 +01:00
Aaron Weiss
8782f66de4
Merge branch 'irc-reactor' into develop 2018-01-27 21:19:38 +01:00
Aaron Weiss
2d28a71c6c
Removed some trailing whitespace in reactor docs. 2018-01-27 20:59:41 +01:00
Aaron Weiss
de6e5f331d
Added debug derivations for irc::client types (fixes #104). 2018-01-27 20:39:35 +01:00
Aaron Weiss
ce158fc612
Made unspecified server or nickname into errors instead of simply panics. 2018-01-27 20:26:56 +01:00
Aaron Weiss
67cca339a7
Eliminated a panic that can occur when using IrcServerFuture, and recommend using IrcReactor instead. 2018-01-27 19:50:48 +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
ff9eba2722
Made some of the reactor API more generic. 2018-01-27 15:35:44 +01:00
Aaron Weiss
982d1b5a0d
Added a function to access the tokio reactor handle in IrcReactor. 2018-01-27 15:18:15 +01:00
Aaron Weiss
e62d4a97aa
Added a first cut (without examples) of documentation for IrcReactor. 2018-01-24 14:51:41 +01:00
Aaron Weiss
fbe17978fc
Removed trailing whitespace in documentation. 2018-01-24 12:21:03 +01:00
Aaron Weiss
ab16c865bb
Added a function to spawn arbitrary futures on a reactor (i.e. opt-in "full" tokio support). 2018-01-24 12:13:33 +01:00
Aaron Weiss
fc4b4cad7f
Reorganized imports in reactor.rs. 2018-01-08 23:54:06 -05:00
Aaron Weiss
a7ae091ff5
Moved connection creation sooner for better error handling in IrcServer::from_config. 2018-01-08 23:19:29 -05:00
Aaron Weiss
bbc6b0244d
Added an experimental reactor API to hide tokio. 2018-01-08 21:52:56 -05:00
Aaron Weiss
40ff295821
Fixed parsing bug allowing messages without arguments to parse correctly. 2018-01-06 13:31:08 -05:00
Aaron Weiss
452645a56f
Fixed compilation error with no-default-features. 2018-01-01 23:07:10 -05:00
Aaron Weiss
a0d0d3e249
Cleaned up a bunch of code with clippy. 2018-01-01 22:25:25 -05:00
Aaron Weiss
68666aef09
Made a stylistic change to the new message throttling code. 2018-01-01 21:52:23 -05:00
Aaron Weiss
70ff2ec992
Changed throttling window to be properly rolling. 2018-01-01 21:47:59 -05:00
Aaron Weiss
16292fcc2c
Improved documentation for message throttling configuration. 2018-01-01 21:47:28 -05:00
Aaron Weiss
c7772c0479
Changed message throttling to use a rolling window. 2018-01-01 21:18:33 -05:00
Aaron Weiss
321bbec7ad
Changed message parsing to accept more line ending options. 2017-12-30 12:21:20 -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
f78909f74d
Improved documentation for the top-level library and Message struct. 2017-12-24 21:23:19 -05:00
Aaron Weiss
6348ad0567
Fixed broken links in some documentation. 2017-12-24 21:22:51 -05:00
Aaron Weiss
dcac92084f
Improved the documentation for irc::proto::message a bit. 2017-12-13 20:38:04 +01:00
Aaron Weiss
4ec2212dbd
Implemented tag output in Message::to_string() which apparently was _still_ a TODO. 2017-12-13 20:33:26 +01:00
Aaron Weiss
f6588cb980
Removed server module (refining project scope), and fixed up README. 2017-12-13 20:31:28 +01:00
Aaron Weiss
7625c364a6
Added logging support via the log crate. 2017-12-12 14:02:45 +01:00
Aaron Weiss
dc55d08996
Fixed some typographical errors in new documentation. 2017-11-16 17:26:46 +01:00
Aaron Weiss
899accaa2f
Improved the documentation for irc::client::server. 2017-11-16 15:54:08 +01:00
Frederik B
98371429b6
Add usermode +x and channelmode +r
This commit adds the usermode +x (masked hostname) and the channelmode +r (entry for users registered with NickServ only)
2017-11-07 15:24:55 +01:00
Jokler
9ec7356d10 Improved error-handling in config (fixes #98) 2017-10-17 00:38:59 +02:00
Aaron Weiss
c992fbdf77
Fixed deprecation warnings. 2017-10-02 17:00:46 +02:00
Aaron Weiss
99347f536c
Improved documentation on IrcTransport. 2017-08-15 14:43:30 -04:00