Update of /project/cl-xmpp/cvsroot/cl-xmpp
In directory common-lisp.net:/tmp/cvs-serv31460
Modified Files:
cl-xmpp.lisp utility.lisp
Log Message:
tls now works (thanks david lichteblau!)
Date: Fri Nov 18 23:29:28 2005
Author: eenge
Index: cl-xmpp/cl-xmpp.lisp
diff -u cl-xmpp/cl-xmpp.lisp:1.20 cl-xmpp/cl-xmpp.lisp:1.21
--- cl-xmpp/cl-xmpp.lisp:1.20 Fri Nov 18 22:43:52 2005
+++ cl-xmpp/cl-xmpp.lisp Fri Nov 18 23:29:27 2005
@@ -1,4 +1,4 @@
-;;;; $Id: cl-xmpp.lisp,v 1.20 2005/11/18 21:43:52 eenge Exp $
+;;;; $Id: cl-xmpp.lisp,v 1.21 2005/11/18 22:29:27 eenge Exp $
;;;; $Source: /project/cl-xmpp/cvsroot/cl-xmpp/cl-xmpp.lisp,v $
;;;; See the LICENSE file for licensing information.
@@ -355,17 +355,22 @@
(defmacro with-iq ((connection &key id to (type "get")) &body body)
"Macro to make it easier to write IQ stanzas."
- (let ((stream (gensym)))
+ (let ((stream (gensym "stream"))
+ (xml (gensym "xml")))
`(let ((,stream (server-stream ,connection)))
(prog1
- (cxml:with-xml-output (make-octet+character-debug-stream-sink ,stream)
- (cxml:with-element "iq"
- (when ,id
- (cxml:attribute "id" ,id))
- (when ,to
- (cxml:attribute "to" ,to))
- (cxml:attribute "type" ,type)
- ,@body))
+; (cxml:with-xml-output (make-octet+character-debug-stream-sink ,stream)
+ (let ((,xml (cxml:with-xml-output (cxml:make-octet-vector-sink)
+ (cxml:with-element "iq"
+ (when ,id
+ (cxml:attribute "id" ,id))
+ (when ,to
+ (cxml:attribute "to" ,to))
+ (cxml:attribute "type" ,type)
+ ,@body))))
+ (write-sequence (vector-to-array ,xml) ,stream)
+ (when *debug-stream*
+ (write-sequence (map 'string #'code-char ,xml) *debug-stream*)))
(force-output ,stream)))))
(defmacro with-iq-query ((connection &key xmlns id to node (type "get")) &body body)
Index: cl-xmpp/utility.lisp
diff -u cl-xmpp/utility.lisp:1.10 cl-xmpp/utility.lisp:1.11
--- cl-xmpp/utility.lisp:1.10 Mon Nov 14 21:07:36 2005
+++ cl-xmpp/utility.lisp Fri Nov 18 23:29:27 2005
@@ -1,4 +1,4 @@
-;;;; $Id: utility.lisp,v 1.10 2005/11/14 20:07:36 eenge Exp $
+;;;; $Id: utility.lisp,v 1.11 2005/11/18 22:29:27 eenge Exp $
;;;; $Source: /project/cl-xmpp/cvsroot/cl-xmpp/utility.lisp,v $
;;;; See the LICENSE file for licensing information.
@@ -52,4 +52,10 @@
(intern correct-case-thing :keyword)))
((typep thing 'array) (ensure-keyword (map 'string #'code-char thing)))
((eq thing nil) nil)
- (t (error "Don't know how to make keyword out of: ~a (type: ~a)" thing (type-of thing)))))
\ No newline at end of file
+ (t (error "Don't know how to make keyword out of: ~a (type: ~a)" thing (type-of thing)))))
+
+(defun vector-to-array (vector)
+ (let ((array (make-array (length vector) :element-type '(unsigned-byte 8))))
+ (dotimes (position (length vector))
+ (setf (aref array position) (aref vector position)))
+ array))
\ No newline at end of file