Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

irc connection with ssl

by kelscat18 (Initiate)
on Oct 06, 2013 at 13:23 UTC ( #1057146=perlquestion: print w/replies, xml ) Need Help??
kelscat18 has asked for the wisdom of the Perl Monks concerning the following question:

Hi all I will admit i am a complete newb when it comes to ssl topics let alone being a perl novice! but I'm in need of writing a small basic irc bot that will connect to a server that only allows ssl connections, all the bot needs to do is call a subroutine that will send a message to the channel every couple seconds. I've looked at Net::IRC and other libs that support ssl but it's all way over my head.. writing a bot without ssl support using sockets is no problem. I'm using windows 7 if that helps. Sorry If i'm asking to much of you, been ripping my hair out all day over this! :/ thanks.

Replies are listed 'Best First'.
Re: irc connection with ssl
by Corion (Pope) on Oct 06, 2013 at 13:36 UTC

    I didn't find an easy way to take an existing IRC client and just swap out its connection routine.

    Your two approaches would be to either use an existing client and find out how to make its socket connection speak SSL. For example the connect method in AnyEvent::IRC::Connection should be all that's needed to make AnyEvent::IRC speak SSL.

    The other approach would be to write your own irc client, using for example Parse::IRC. If you go this route, swapping out the transport layer is even easier, at the cost of actually having to implement an IRC client.

Re: irc connection with ssl
by moritz (Cardinal) on Oct 06, 2013 at 16:33 UTC

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1057146]
Approved by Corion
Front-paged by Tanktalus
[ambrus]: You only provide the watcher part that tells when the handle is readable or writable, not the actual writing and reading.
[Corion]: ambrus: Hmmm. It makes sense that AnyEvent would implement the push_write itself, but I think I don't have a good idea of where the boundary between AnyEvent and the underlying event system lies... Implementing the timer should give me a better idea
[ambrus]: Corion: push_write is in the higher level abstraction of AnyEvent::Handle, not in the watcher
[Corion]: ambrus: Hmm - rereading Prima::File, that merrily coincides with what Prima does - it tells you "you can read", and you're supposed to read from the fh yourself. I thought it called you with the data already read, which would've been harder to integrate
[ambrus]: you just need an io watcher, created by &AnyEvent::Impl:: Whatever::io(...)
[Corion]: So after talking it through with you even while I'm still not entirely clear on where AE ends and my implementation begins, I think I understand that I only need to implement some smaller parts for each functionality I want to support.
[Corion]: Yeah... and you might even be able to mix and match additional functionality if you have additional async suppliers, like from a separate thread
[ambrus]: You hvae to be careful with the timer, because apparently Prima::Timer insists on being periodic, wheras AnyEvent::Impl:: Whatever::timer should give a one-shot timer watcher

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (6)
As of 2016-12-08 12:23 GMT
Find Nodes?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:

    Results (141 votes). Check out past polls.