Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate irc;
- extern crate base64;
- use irc::client::prelude::*;
- use irc::proto::command::Command::*;
- use irc::proto::CapSubCommand::*;
- use base64::encode;
- fn main() {
- let server = IrcServer::new("config.toml").unwrap();
- let auth_str = format!("{}\u{0000}{}\u{0000}{}", server.config().nickname().to_owned(), server.config().username().to_owned(), server.config().nick_password().to_owned());
- println!("{}", auth_str);
- server.send_cap_ls(NegotiationVersion::V302).unwrap();
- server.send(NICK(server.config().nickname().to_owned())).unwrap();
- server.send(USER(server.config().username().to_owned(), "0".to_owned(), server.config().real_name().to_owned())).unwrap();
- server.send_cap_req(&[Capability::Sasl]).unwrap();
- server.send_sasl_plain().unwrap();
- server.for_each_incoming(|msg| {
- println!("{}", msg.to_string().trim());
- if msg.to_string().trim() == "AUTHENTICATE +" {
- server.send_sasl(&encode(&auth_str[..])).unwrap();
- server.send(CAP(None, END, None, None)).unwrap();
- }
- }).unwrap()
- }
Advertisement
Add Comment
Please, Sign In to add comment