:documentation "Nickname's nickserver password.")
(server :initarg :server :reader server
:documentation "Connected IRC server.")
+ (port :initarg :port :reader port
+ :documentation "Connected IRC server's port.")
(channel-names :initarg :channel-names :accessor channel-names
:documentation "List of channel names.")
(realname :initarg :realname :reader l-realname
"Returns T if output is setup for a single channel directory structure."
(and (pathnamep user-output) (null (pathname-name user-output))))
-(defun do-connect-and-join (nick server username realname logging-stream channels)
- (let ((conn (connect :nickname nick :server server
+(defun do-connect-and-join (nick server port username realname logging-stream channels)
+ (let ((conn (connect :nickname nick :server server :port port
:username username :realname realname
:logging-stream logging-stream)))
(mapc #'(lambda (channel) (join conn channel)) channels)
(raw-message-string msg))))
result))
-(defun create-logger (nick server &key channels output password
+(defun create-logger (nick server &key port channels output password
realname username async
private-log unknown-log
(logging-stream t) (formats '(:text)))
(setq formats (list formats)))
(if (stringp output)
(setq output (parse-namestring output)))
- (let* ((conn (do-connect-and-join nick server username realname logging-stream channels))
+ (let* ((conn (do-connect-and-join nick server port username realname logging-stream channels))
(logger (make-instance
'logger
:connection conn
:nick nick
:password password
:server server
+ :port port
:channels (make-channels channels formats output)
:channel-names channels
:username username
(delete nick *loggers* :test #'string-equal :key #'l-nickname))
t))))
-(defun add-logger (nick server &key channels output (password "")
+(defun add-logger (nick server &key port channels output (password "")
realname username private-log unknown-log
(logging-stream t) (async t)
(formats '(:sexp)))
(do ((new-logger
(#-sbcl mp:with-timeout #-sbcl (*timeout* nil)
#+sbcl sb-ext:with-timeout #+sbcl *timeout*
- (create-logger nick server :channels channels :output output
+ (create-logger nick server :port port :channels channels :output output
:logging-stream logging-stream :password password
:realname realname :username username
:private-log private-log
:async async))
(#-sbcl mp:with-timeout #-sbcl (*timeout* nil)
#+sbcl sb-ext:with-timeout #+sbcl *timeout*
- (create-logger nick server :channels channels :output output
+ (create-logger nick server :port port :channels channels :output output
:logging-stream logging-stream :password password
:realname realname :username username
:private-log private-log
(daemon-sleep 1))))
-(let (*recon-nick* *recon-server* *recon-username* *recon-realname*
+(let (*recon-nick* *recon-server* *recon-port* *recon-username* *recon-realname*
*recon-user-output* *recon-private-log* *recon-unknown-log*
*recon-formats* *recon-async* *recon-logging-stream* *recon-channel-names*)
- (declare (special *recon-nick* *recon-server* *recon-username* *recon-realname*
+ (declare (special *recon-nick* *recon-server* *recon-port* *recon-username* *recon-realname*
*recon-formats* *recon-password* *recon-async*
*recon-user-output* *recon-private-log* *recon-unknown-log*
*recon-logging-stream* *recon-channel-names*))
(ignore-errors (quit-with-timeout (connection logger) "Client terminated by server"))
(setf *recon-nick* (l-nickname logger)
*recon-server* (server logger)
+ *recon-port* (port logger)
*recon-username* (l-username logger)
*recon-realname* (l-realname logger)
*recon-password* (password logger)
(setq new-logger
(ignore-errors
(add-logger *recon-nick* *recon-server*
+ :port *recon-port*
:channels *recon-channel-names*
:output *recon-user-output*
:password *recon-password*