Aaron Weiss
c363dc7837
Migrated real IrcServer API to be async based on experiment.
2017-06-21 16:53:28 -04:00
Aaron Weiss
6118516951
Fixed bug in line protocol.
2017-06-21 16:50:54 -04:00
Aaron Weiss
7d3e923de8
Added a first real cut at async.
2017-06-21 13:18:22 -04:00
Aaron Weiss
cc1aa5717e
Migrated to using error_chain.
2017-06-20 14:54:06 -04:00
Aaron Weiss
1ca609331c
Added reexports to the proto module.
2017-06-20 11:48:42 -04:00
Aaron Weiss
e7440d9b23
Made some small assorted changes.
2017-06-20 11:48:13 -04:00
Aaron Weiss
1c1e4af311
Updated tests to compile.
2017-06-19 14:42:27 -04:00
Aaron Weiss
cf3ee671ed
Merge branch 'master' into async
2017-06-19 14:33:02 -04:00
Aaron Weiss
e5e33e9069
Fixed bug when compiling with no-default-features.
2017-06-19 14:19:57 -04:00
Manish Goregaokar
02f9968b0c
Update OpenSSL to 0.9.
2017-06-19 14:11:57 -04:00
Aaron Weiss
f0f0b95038
Ran rustfmt on all the code.
2017-06-19 13:59:26 -04:00
Aaron Weiss
388628d62a
Applied a bunch of clippy lints.
2017-06-19 13:46:01 -04:00
Torbjörn Lönnemark
1c84b699d4
Add support for RPL_TOPICWHOTIME (numeric 333)
2017-06-15 21:20:17 +02:00
Torbjörn Lönnemark
e33248f043
Replace rustc-serialize with serde
...
rustc-serialize is deprecated.
Fixes #84 .
2017-06-14 22:20:31 +02:00
TheMightyBuzzard
c6efd4d9f0
Properly remove users from channels on quit
2017-06-06 04:37:25 -05:00
Aaron Weiss
9a2222d802
Updated Tokio protocol code.
2017-05-26 14:09:09 +02:00
Aaron Weiss
38c7ed2c71
Changed Server API to provide channel lists, and fixed channel tracking
...
to work with user PARTs.
2017-05-25 17:27:00 +02:00
Aaron Weiss
f3fb23d755
Added input sanitization to prevent newline injection ( fixes #80 ).
2017-05-02 19:47:16 -04:00
TheMightyBuzzard
9706d93968
track nick changes
...
Client did not track nick changes. This solves that, although admittedly in a rather inefficient way.
2017-04-11 07:29:33 -05:00
Perl I. Weird
2da5f4defc
Allow all of SSL2, SSL3 and TLS1 connections
2017-04-01 13:22:25 -07:00
Dominik Miedziński
fcb0c1da64
Use CTCP VERSION and SOURCE replies from Config
2017-03-22 22:06:43 +01:00
Aaron Weiss
6a0f2a184f
Merge branch 'master' into async
2017-03-15 12:44:46 -04:00
Aaron Weiss
fbeeaed874
Changed implementation of socket_addr on Config.
2017-03-15 12:42:15 -04:00
Aaron Weiss
c402371450
Merge pull request #75 from miedzinski/fix-warnings
...
Remove unused imports and fix broken test
2017-03-15 12:35:27 -04:00
Dominik Miedziński
59b79c06cc
Remove unused imports and fix broken test
2017-03-15 17:28:07 +01:00
Dominik Miedziński
f4f49c6dd3
Ignore CTCP PINGs without timestamps
2017-03-15 17:11:19 +01:00
Aaron Weiss
342a11aba4
Added dependency on futures.
2017-01-15 18:10:35 -05:00
Aaron Weiss
abf981c4ad
Added dependency for native-tls.
2017-01-15 18:08:03 -05:00
Aaron Weiss
db140baf9e
Added dependence on tokio-tls.
2017-01-15 17:50:56 -05:00
Aaron Weiss
d9fc586b8c
Added socket_addr() helper to Config.
2017-01-15 17:32:41 -05:00
Aaron Weiss
1f3b3d64b5
IrcCodec is no longer paramterized by inner codec type.
2017-01-15 17:06:43 -05:00
Aaron Weiss
a6303d4858
Removed dependence on tokio-proto.
2017-01-15 17:02:37 -05:00
Aaron Weiss
843b7ba3c0
Implemented IrcCodec and IrcProto using LineCodec.
2017-01-15 16:34:59 -05:00
Aaron Weiss
7003270834
Removed parameterization of LineCodec on encoding.
2017-01-15 16:34:37 -05:00
Aaron Weiss
59e219f466
Implemented a line-delimited codec.
2017-01-15 14:28:12 -05:00
Aaron Weiss
880870770e
Moved protocol-related stuff to new proto module.
2017-01-15 13:41:16 -05:00
Aaron Weiss
1fd5668def
Removed optional encoding feature, forcing encoding always. Temporarily
...
purged SSL support.
2017-01-15 13:31:50 -05:00
Aaron Weiss
d13a28ff98
Added send_part to ServerExt.
2016-12-18 16:25:24 -05:00
Dominik Miedziński
e13f94e0c2
Rejoin all channels on reconnect ( fixes #55 )
2016-09-24 23:22:20 +02:00
Aaron Weiss
5b8f320050
Implemented channel keys for autojoined channels ( fixes #51 ).
2016-07-05 16:21:21 -04:00
ChanMin Kim
bba8648252
Changed ping timeout logic in ping thread
...
Previously, ping thread might enter infinite reconnect loop.
Consider the following scenario.
1. If at least one ping is sent, last_ping_data is updated.
2. Then there are many activities, so should_ping() becomes false.
3. After some seconds, now().to_timespec() - time > strong.ping_timeout_duration() is satisfied.
4. reconnect()
5. But should_ping() is still false.
6. The condition is still satisfied, so reconnect() again and again.
I made several changes.
Followings are the changes in the code
- Handle PONG message from server.
- Add `waiting_pong_reply' flag in the state. The flag is set if ping is
sent but the corresponding pong did not arrive yet.
- Ping thread checks ping timeout in correct way.
- Sleeping duration for ping is now based on idle time.
- Initialize ping related fields when `reconnect()' is called.
Hopefully, this commit may be related to issue #50 .
2016-07-05 06:55:30 +09:00
Geordon Worley
baef34f947
make tag members public
2016-06-19 00:37:58 -04:00
Aaron Weiss
e450621a57
Removed unnecessary parentheses.
2016-04-11 23:00:50 -04:00
Aaron Weiss
85e30e6f9f
Added a bounds check on handle_ctcp.
2016-04-11 22:59:20 -04:00
Aaron Weiss
fcc5c64826
Command parsing now parses into raw, rather than producing an error.
2016-04-02 13:50:27 -04:00
Aaron Weiss
863946ecb8
Implemented Display for Message.
2016-03-17 21:39:58 -04:00
Aaron Weiss
e4495940fc
Made a whole lot of linting changes to improve code.
...
Small API changes:
1. Message::into_string -> Message:to_string
2. NetStream::UnsecuredTcpStream -> NetStream::Unsecured
3. NetStream::SslTcpStream -> NetStream::Ssl
2016-03-17 21:35:35 -04:00
angelsl
46f9136c93
Write directly from threads (through a mutex) instead of using a writing thread
...
The writing thread now becomes a simple pinging thread. The pinging
thread will exit when the weak reference to the ServerState can no
longer be upgraded i.e. when the ServerState has been dropped i.e. when
the IrcServer has been dropped.
This fixes #43 as well.
This is the first in a series of changes that will reduce allocations by
the library.
2016-02-17 23:25:01 -05:00
Aaron Weiss
7d7e09fa8e
Removed incomplete doc comment.
2016-02-12 11:30:55 -05:00
Aaron Weiss
e7b5d5e9d1
Made some formatting changes for readability.
2016-02-12 11:21:00 -05:00