(require :cl+ssl) (require :cl-irc) (in-package :cl-irc) (defun connect-ssl (&key (nickname *default-nickname*) (username nil) (realname nil) (password nil) (mode 0) (server *default-irc-server*) (port 9999) (connection-type 'connection) (logging-stream t)) "Connect to server via SSL and return a connection object." (let* ((socket (usocket:socket-connect server port :element-type 'flexi-streams:octet)) (stream (cl+ssl:make-ssl-client-stream (usocket:socket-stream socket))) (connection (make-connection :connection-type connection-type :socket socket :network-stream stream :client-stream logging-stream :server-name server)) (user (make-user connection :nickname nickname :username username :realname realname))) (setf (user connection) user) (unless (null password) (pass connection password)) (nick connection nickname) (user- connection (or username nickname) mode (or realname nickname)) (add-default-hooks connection) connection))