[cl-irc-cvs] r206 - trunk

ehuelsmann at common-lisp.net ehuelsmann at common-lisp.net
Fri May 4 17:36:22 UTC 2007


Author: ehuelsmann
Date: Fri May  4 13:36:22 2007
New Revision: 206

Modified:
   trunk/command.lisp
Log:
Make DCC commands and responses work with dcc CHAT connections.

Modified: trunk/command.lisp
==============================================================================
--- trunk/command.lisp	(original)
+++ trunk/command.lisp	Fri May  4 13:36:22 2007
@@ -387,7 +387,6 @@
 (defmethod ctcp-reply ((connection connection) target message)
   (send-irc-message connection :notice target (make-ctcp-message message)))
 
-
 ;; Intermezzo: Manage outstanding offers
 
 (defvar *passive-offer-sequence-token* 0)
@@ -465,7 +464,12 @@
     ;; or do active request
     (error "Active DCC initiating not (yet) supported.")))
 
-(defmethod dcc-request-cancel (connection token)
+(defmethod ctcp-chat-initiate ((connection dcc-chat-connection)
+                               nickname &key passive)
+  (declare (ignore nickname passive))
+  (error "Chat connection already in progress"))
+
+(defmethod dcc-request-cancel ((connection connection) token)
   (dcc-remove-offer connection token)
   (if (stringp token)
       (let ((offer (dcc-offer-get connection token)))
@@ -483,6 +487,9 @@
 |#
       )))
 
+(defmethod dcc-request-cancel ((connection dcc-chat-connection) token)
+  (dcc-request-cancel (irc-connection connection) token))
+
 (defmethod dcc-request-accept ((message ctcp-dcc-chat-request-message))
   ;; There are 2 options here: it was an active dcc offer or a passive one
   ;; For now, we'll support only active offers (where we act as a client)
@@ -537,12 +544,22 @@
              :socket socket
              :network-stream (usocket:socket-stream socket))))))))
 
+(defmethod dcc-request-accept ((message dcc-ctcp-dcc-chat-request-message))
+  (error "DCC Chat already in progress"))
+
 (defmethod dcc-request-reject ((message ctcp-dcc-chat-request-message)
                                &optional reason)
   (ctcp-reply (connection message) (source message)
               (format nil "ERRMSG DCC CHAT ~A" (if reason reason
                                                  "rejected"))))
 
+(defmethod dcc-request-reject ((message dcc-ctcp-dcc-chat-request-message)
+                               &optional reason)
+  (ctcp-reply (irc-connection (connection message))
+              (nickname (user (connection message)))
+              (format nil "ERRMSG DCC CHAT ~A" (if reason reason
+                                                 "rejected"))))
+
 ;;
 ;; IRC commands which make some sence in a DCC CHAT context
 ;;



More information about the cl-irc-cvs mailing list