diff options
author | Till Hoeppner | 2015-05-04 21:14:52 +0200 |
---|---|---|
committer | Till Hoeppner | 2015-05-04 21:14:52 +0200 |
commit | fbb7251493ff5a9bc42f849b9b781e69aef9d184 (patch) | |
tree | a0c7bb5196ccc970f67bca40679d34a04b1102c2 /examples/01.rs | |
parent | f3f58e1770d1f2ae9fe69415376690125e3c8269 (diff) | |
download | irsc-fbb7251493ff5a9bc42f849b9b781e69aef9d184.tar.gz irsc-fbb7251493ff5a9bc42f849b9b781e69aef9d184.tar.xz irsc-fbb7251493ff5a9bc42f849b9b781e69aef9d184.zip |
More control about SSL methods, and proper selection between ssl vs plain at compile time in example
Diffstat (limited to 'examples/01.rs')
-rw-r--r-- | examples/01.rs | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/examples/01.rs b/examples/01.rs index 595bc70..96848f6 100644 --- a/examples/01.rs +++ b/examples/01.rs @@ -1,5 +1,7 @@ extern crate irsc; extern crate env_logger; +#[cfg(feature = "ssl")] +extern crate openssl; use std::borrow::ToOwned; use std::borrow::Cow::*; @@ -10,6 +12,9 @@ use irsc::*; use irsc::Command::*; use irsc::Reply::*; +#[cfg(feature = "ssl")] +use openssl::ssl::{ Ssl, SslContext, SslMethod }; + static NAME: &'static str = "rusticbot"; static DESC: &'static str = "A bot, written in Rust."; @@ -39,14 +44,21 @@ fn callback(server: &mut Client, msg: &Message) { } } +#[cfg(feature = "ssl")] +fn connect(s: &mut Client) { + let ssl = Ssl::new(&SslContext::new(SslMethod::Tlsv1).unwrap()).unwrap(); + s.connect_ssl("irc.mozilla.org".to_owned(), 6697, ssl).unwrap(); +} + +#[cfg(not(feature = "ssl"))] +fn connect(s: &mut Client) { + s.connect("irc.mozilla.org".to_owned(), 6667).unwrap(); +} + fn main() { env_logger::init().unwrap(); let mut s = Client::new(); - if cfg!(feature = "ssl") { - s.connect_ssl("irc.mozilla.org".to_owned(), 6697).unwrap(); - } else { - s.connect("irc.mozilla.org".to_owned(), 6667).unwrap(); - } + connect(&mut s); s.send(NICK(Borrowed(NAME))).unwrap(); s.send(USER(Borrowed(NAME), Borrowed("*"), Borrowed("*"), Borrowed(DESC))).unwrap(); |