From mvilleneuve at common-lisp.net Fri Mar 12 13:18:40 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 08:18:40 -0500 Subject: [Unetwork-cvs] CVS update: Directory change: src Message-ID: Update of /project/unetwork/cvsroot/src In directory common-lisp.net:/tmp/cvs-serv11233/src Log Message: Directory /project/unetwork/cvsroot/src added to the repository Date: Fri Mar 12 08:18:39 2004 Author: mvilleneuve New directory src added From mvilleneuve at common-lisp.net Fri Mar 12 13:19:29 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 08:19:29 -0500 Subject: [Unetwork-cvs] CVS update: Directory change: doc Message-ID: Update of /project/unetwork/cvsroot/doc In directory common-lisp.net:/tmp/cvs-serv31297/doc Log Message: Directory /project/unetwork/cvsroot/doc added to the repository Date: Fri Mar 12 08:19:29 2004 Author: mvilleneuve New directory doc added From mvilleneuve at common-lisp.net Fri Mar 12 13:21:55 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 08:21:55 -0500 Subject: [Unetwork-cvs] CVS update: src/address.lisp src/base-cmu.lisp src/base-sbcl.lisp src/document.lisp src/errors.lisp src/http.lisp src/nntp.lisp src/package.lisp src/pop3.lisp src/smtp.lisp src/unetwork.asd src/uri-streams.lisp src/url.lisp src/utilities.lisp Message-ID: Update of /project/unetwork/cvsroot/src In directory common-lisp.net:/tmp/cvs-serv18784/src Added Files: address.lisp base-cmu.lisp base-sbcl.lisp document.lisp errors.lisp http.lisp nntp.lisp package.lisp pop3.lisp smtp.lisp unetwork.asd uri-streams.lisp url.lisp utilities.lisp Log Message: Initial import Date: Fri Mar 12 08:21:52 2004 Author: mvilleneuve From mvilleneuve at common-lisp.net Fri Mar 12 13:24:31 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 08:24:31 -0500 Subject: [Unetwork-cvs] CVS update: /README Message-ID: Update of /project/unetwork/cvsroot In directory common-lisp.net:/tmp/cvs-serv15267 Added Files: README Log Message: Initial import Date: Fri Mar 12 08:24:31 2004 Author: mvilleneuve =================================================================== File: no file /README Status: Needs Checkout Working revision: No entry for /README Repository revision: 1.1 /project/unetwork/cvsroot//README,v From mvilleneuve at common-lisp.net Fri Mar 12 14:44:18 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 09:44:18 -0500 Subject: [Unetwork-cvs] CVS update: /README Message-ID: Update of /project/unetwork/cvsroot In directory common-lisp.net:/tmp/cvs-serv12513 Removed Files: README Log Message: Wrong import Date: Fri Mar 12 09:44:18 2004 Author: mvilleneuve =================================================================== File: no file /README Status: Up-to-date Working revision: No entry for /README Repository revision: 1.2 /project/unetwork/cvsroot/Attic//README,v From mvilleneuve at common-lisp.net Fri Mar 12 14:44:38 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 09:44:38 -0500 Subject: [Unetwork-cvs] CVS update: Directory change: unetwork Message-ID: Update of /project/unetwork/cvsroot/unetwork In directory common-lisp.net:/tmp/cvs-serv2625/unetwork Log Message: Directory /project/unetwork/cvsroot/unetwork added to the repository Date: Fri Mar 12 09:44:38 2004 Author: mvilleneuve New directory unetwork added From mvilleneuve at common-lisp.net Fri Mar 12 14:45:29 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 09:45:29 -0500 Subject: [Unetwork-cvs] CVS update: Directory change: unetwork/src Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv17218/unetwork/src Log Message: Directory /project/unetwork/cvsroot/unetwork/src added to the repository Date: Fri Mar 12 09:45:29 2004 Author: mvilleneuve New directory unetwork/src added From mvilleneuve at common-lisp.net Fri Mar 12 14:45:29 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 09:45:29 -0500 Subject: [Unetwork-cvs] CVS update: Directory change: unetwork/doc Message-ID: Update of /project/unetwork/cvsroot/unetwork/doc In directory common-lisp.net:/tmp/cvs-serv17218/unetwork/doc Log Message: Directory /project/unetwork/cvsroot/unetwork/doc added to the repository Date: Fri Mar 12 09:45:29 2004 Author: mvilleneuve New directory unetwork/doc added From mvilleneuve at common-lisp.net Fri Mar 12 14:46:38 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 09:46:38 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/README Message-ID: Update of /project/unetwork/cvsroot/unetwork In directory common-lisp.net:/tmp/cvs-serv22865/unetwork Added Files: README Log Message: Initial import Date: Fri Mar 12 09:46:38 2004 Author: mvilleneuve From mvilleneuve at common-lisp.net Fri Mar 12 14:46:39 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 09:46:39 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/address.lisp unetwork/src/base-cmu.lisp unetwork/src/base-sbcl.lisp unetwork/src/document.lisp unetwork/src/errors.lisp unetwork/src/http.lisp unetwork/src/nntp.lisp unetwork/src/package.lisp unetwork/src/pop3.lisp unetwork/src/smtp.lisp unetwork/src/unetwork.asd unetwork/src/uri-streams.lisp unetwork/src/url.lisp unetwork/src/utilities.lisp Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv22865/unetwork/src Added Files: address.lisp base-cmu.lisp base-sbcl.lisp document.lisp errors.lisp http.lisp nntp.lisp package.lisp pop3.lisp smtp.lisp unetwork.asd uri-streams.lisp url.lisp utilities.lisp Log Message: Initial import Date: Fri Mar 12 09:46:38 2004 Author: mvilleneuve From mvilleneuve at common-lisp.net Fri Mar 12 14:59:11 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 09:59:11 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/README Message-ID: Update of /project/unetwork/cvsroot/unetwork In directory common-lisp.net:/tmp/cvs-serv20842 Modified Files: README Log Message: Fix SMTP example Date: Fri Mar 12 09:59:10 2004 Author: mvilleneuve Index: unetwork/README diff -u unetwork/README:1.1 unetwork/README:1.2 --- unetwork/README:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/README Fri Mar 12 09:59:10 2004 @@ -51,13 +51,12 @@ - SMTP - (with-smtp-connection (socket "mh.cvf.fr") + (with-smtp-connection (socket "smtp.free.fr") (smtp-send-mail socket '((:to . "matthieu.villeneuve at free.fr") (:cc . "mvilleneuve at common-lisp.net")) "smtp test" - "Hello world!" - "smtp.free.fr")) + "Hello world!")) - POP3 From mvilleneuve at common-lisp.net Fri Mar 12 15:00:59 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 10:00:59 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/README Message-ID: Update of /project/unetwork/cvsroot/unetwork In directory common-lisp.net:/tmp/cvs-serv11658 Modified Files: README Log Message: Fix SMTP example Date: Fri Mar 12 10:00:58 2004 Author: mvilleneuve Index: unetwork/README diff -u unetwork/README:1.2 unetwork/README:1.3 --- unetwork/README:1.2 Fri Mar 12 09:59:10 2004 +++ unetwork/README Fri Mar 12 10:00:58 2004 @@ -53,8 +53,9 @@ (with-smtp-connection (socket "smtp.free.fr") (smtp-send-mail socket - '((:to . "matthieu.villeneuve at free.fr") - (:cc . "mvilleneuve at common-lisp.net")) + "matthieu.villeneuve at free.fr" + '((:to . "foo at common-lisp.net") + (:cc . "bar at common-lisp.net")) "smtp test" "Hello world!")) From mvilleneuve at common-lisp.net Fri Mar 12 17:07:33 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 12:07:33 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/address.lisp Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv28745 Removed Files: address.lisp Log Message: Removing: useless and CMUCL specific Date: Fri Mar 12 12:07:33 2004 Author: mvilleneuve From mvilleneuve at common-lisp.net Fri Mar 12 17:08:32 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 12:08:32 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/unetwork.asd Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv32009 Modified Files: unetwork.asd Log Message: Fixed SBCL specific system name Date: Fri Mar 12 12:08:32 2004 Author: mvilleneuve Index: unetwork/src/unetwork.asd diff -u unetwork/src/unetwork.asd:1.1 unetwork/src/unetwork.asd:1.2 --- unetwork/src/unetwork.asd:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/unetwork.asd Fri Mar 12 12:08:32 2004 @@ -23,7 +23,7 @@ :depends-on (:unetwork-base) :components ((:file "base-cmu"))) -(defsystem unetwork.sbcl +(defsystem unetwork-sbcl :depends-on (:unetwork-base) :components ((:file "base-sbcl"))) @@ -36,7 +36,6 @@ (:file "url") (:file "uri-streams") (:file "document" :depends-on ("utilities")) - (:file "address" :depends-on ("utilities")) (:file "http" :depends-on ("uri-streams")) (:file "pop3") (:file "smtp") From mvilleneuve at common-lisp.net Fri Mar 12 17:09:35 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 12:09:35 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/base-sbcl.lisp Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv22562 Modified Files: base-sbcl.lisp Log Message: Wrong address format Date: Fri Mar 12 12:09:34 2004 Author: mvilleneuve Index: unetwork/src/base-sbcl.lisp diff -u unetwork/src/base-sbcl.lisp:1.1 unetwork/src/base-sbcl.lisp:1.2 --- unetwork/src/base-sbcl.lisp:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/base-sbcl.lisp Fri Mar 12 12:09:34 2004 @@ -17,7 +17,7 @@ (let ((host (sb-bsd-sockets:get-host-by-name hostname))) (when (null host) (error 'unknown-host-error :host hostname)) - (first (sb-bsd-sockets:host-ent-address host)))) + (sb-bsd-sockets:host-ent-address host))) (defclass socket () ((sock :initarg :sock :reader socket-sock) @@ -45,13 +45,13 @@ (defun server-socket-open (port) "Open a server socket on localhost on specified port." - (error "Not implemented yet.") + (error "Not implemented yet.")) (defun server-socket-accept (server-socket &key timeout) "Accept a connection on a server socket. Return the resulting socket." - (error "Not implemented yet.") + (error "Not implemented yet.")) (defun server-socket-close (server-socket) "Close a server socket." - (error "Not implemented yet.") + (error "Not implemented yet.")) From mvilleneuve at common-lisp.net Fri Mar 12 17:11:04 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 12:11:04 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/package.lisp Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv32352 Modified Files: package.lisp Log Message: Removing: useless and CMUCL specific Date: Fri Mar 12 12:11:03 2004 Author: mvilleneuve Index: unetwork/src/package.lisp diff -u unetwork/src/package.lisp:1.1 unetwork/src/package.lisp:1.2 --- unetwork/src/package.lisp:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/package.lisp Fri Mar 12 12:11:03 2004 @@ -20,12 +20,6 @@ #:authenticate-error #:protocol-error - #:+localhost-ip-address+ - #:read-ip-address - #:ip-address-string - #:get-network-address - #:get-broadcast-address - #:uri #:uri-scheme #:uri-host From mvilleneuve at common-lisp.net Fri Mar 12 17:12:05 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 12 Mar 2004 12:12:05 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/http.lisp unetwork/src/nntp.lisp unetwork/src/pop3.lisp unetwork/src/smtp.lisp unetwork/src/url.lisp Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv8353 Modified Files: http.lisp nntp.lisp pop3.lisp smtp.lisp url.lisp Log Message: Fixed constant definitions Date: Fri Mar 12 12:12:05 2004 Author: mvilleneuve Index: unetwork/src/http.lisp diff -u unetwork/src/http.lisp:1.1 unetwork/src/http.lisp:1.2 --- unetwork/src/http.lisp:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/http.lisp Fri Mar 12 12:12:04 2004 @@ -12,8 +12,11 @@ (in-package :unetwork) -(defconstant +http-default-port+ 80) -(defconstant +http-default-path+ "/") +(unless (boundp '+http-default-port+) + (defconstant +http-default-port+ 80)) + +(unless (boundp '+http-default-path+) + (defconstant +http-default-path+ "/")) (defgeneric http-get (uri) (:documentation "Get a resource designated by an URI. Returns two Index: unetwork/src/nntp.lisp diff -u unetwork/src/nntp.lisp:1.1 unetwork/src/nntp.lisp:1.2 --- unetwork/src/nntp.lisp:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/nntp.lisp Fri Mar 12 12:12:04 2004 @@ -12,7 +12,8 @@ (in-package :unetwork) -(defconstant +nntp-default-port 119) +(unless (boundp '+nntp-default-port) + (defconstant +nntp-default-port 119)) (defun nntp-open-connection (server user password &optional (port +nntp-default-port)) Index: unetwork/src/pop3.lisp diff -u unetwork/src/pop3.lisp:1.1 unetwork/src/pop3.lisp:1.2 --- unetwork/src/pop3.lisp:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/pop3.lisp Fri Mar 12 12:12:04 2004 @@ -12,10 +12,14 @@ (in-package :unetwork) -(defconstant +pop3-default-port+ 110) +(unless (boundp '+pop3-default-port+) + (defconstant +pop3-default-port+ 110)) -(defconstant +pop3-status-ok+ "+OK") -(defconstant +pop3-status-error+ "-ERR") +(unless (boundp '+pop3-status-ok+) + (defconstant +pop3-status-ok+ "+OK")) + +(unless (boundp '+pop3-status-error+) + (defconstant +pop3-status-error+ "-ERR")) (defun pop3-open-connection (server &optional (port +pop3-default-port+)) "Open a connection to a POP3 server. Returns the connection socket." Index: unetwork/src/smtp.lisp diff -u unetwork/src/smtp.lisp:1.1 unetwork/src/smtp.lisp:1.2 --- unetwork/src/smtp.lisp:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/smtp.lisp Fri Mar 12 12:12:04 2004 @@ -12,7 +12,8 @@ (in-package :unetwork) -(defconstant +smtp-default-port+ 25) +(unless (boundp '+smtp-default-port+) + (defconstant +smtp-default-port+ 25)) (defun smtp-open-connection (server &optional (port +smtp-default-port+)) "Open a connection to a SMTP server. Returns the connection socket." Index: unetwork/src/url.lisp diff -u unetwork/src/url.lisp:1.1 unetwork/src/url.lisp:1.2 --- unetwork/src/url.lisp:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/url.lisp Fri Mar 12 12:12:04 2004 @@ -12,11 +12,13 @@ (in-package :unetwork) -(defconstant +url-decoded-chars+ - #(#\$ #\& #\+ #\, #\/ #\: #\; #\= #\? #\@)) +(unless (boundp '+url-decoded-chars+) + (defconstant +url-decoded-chars+ + #(#\$ #\& #\+ #\, #\/ #\: #\; #\= #\? #\@))) -(defconstant +url-encoded-chars+ - #("%24" "%26" "%2B" "%2C" "%2F" "%3A" "%3B" "%3D" "%3F" "%40")) +(unless (boundp '+url-encoded-chars+) + (defconstant +url-encoded-chars+ + #("%24" "%26" "%2B" "%2C" "%2F" "%3A" "%3B" "%3D" "%3F" "%40"))) (defun url-encode (string) "URL-encodes a string." From root at common-lisp.net Fri Mar 12 14:27:10 2004 From: root at common-lisp.net (root) Date: Fri, 12 Mar 2004 09:27:10 -0500 Subject: [Unetwork-cvs] CVS update: CVSROOT/config Message-ID: Update of /project/unetwork/cvsroot/CVSROOT In directory common-lisp.net:/tmp/CVSROOT Modified Files: config Log Message: fixing anon cvs Date: Fri Mar 12 09:27:10 2004 Author: root Index: CVSROOT/config diff -u CVSROOT/config:1.2 CVSROOT/config:1.3 --- CVSROOT/config:1.2 Thu Mar 4 08:18:54 2004 +++ CVSROOT/config Fri Mar 12 09:27:10 2004 @@ -0,0 +1,14 @@ +# Set this to "no" if pserver shouldn't check system users/passwords +#SystemAuth=no + +# Put CVS lock files in this directory rather than directly in the repository. +LockDir=/var/lock/unetwork + +# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top +# level of the new working directory when using the `cvs checkout' +# command. +#TopLevelAdmin=no + +# Set `LogHistory' to `all' or `TOFEWGCMAR' to log all transactions to the +# history file, or a subset as needed (ie `TMAR' logs all write operations) +#LogHistory=TOFEWGCMAR From mvilleneuve at common-lisp.net Thu Mar 18 12:30:14 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Thu, 18 Mar 2004 07:30:14 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/unetwork.asd Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv20704 Modified Files: unetwork.asd Log Message: Added missing :sb-bsd-sockets dependency Date: Thu Mar 18 07:30:14 2004 Author: mvilleneuve Index: unetwork/src/unetwork.asd diff -u unetwork/src/unetwork.asd:1.2 unetwork/src/unetwork.asd:1.3 --- unetwork/src/unetwork.asd:1.2 Fri Mar 12 12:08:32 2004 +++ unetwork/src/unetwork.asd Thu Mar 18 07:30:14 2004 @@ -24,7 +24,7 @@ :components ((:file "base-cmu"))) (defsystem unetwork-sbcl - :depends-on (:unetwork-base) + :depends-on (:sb-bsd-sockets :unetwork-base) :components ((:file "base-sbcl"))) (defsystem unetwork From mvilleneuve at common-lisp.net Tue Mar 23 13:02:22 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Tue, 23 Mar 2004 08:02:22 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/socket.lisp unetwork/src/base-cmu.lisp unetwork/src/base-sbcl.lisp unetwork/src/http.lisp unetwork/src/nntp.lisp unetwork/src/package.lisp unetwork/src/pop3.lisp unetwork/src/smtp.lisp unetwork/src/unetwork.asd unetwork/src/uri-streams.lisp Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv1760 Modified Files: base-cmu.lisp base-sbcl.lisp http.lisp nntp.lisp package.lisp pop3.lisp smtp.lisp unetwork.asd uri-streams.lisp Added Files: socket.lisp Log Message: Cleaned up socket and connection classes Date: Tue Mar 23 08:02:21 2004 Author: mvilleneuve Index: unetwork/src/base-cmu.lisp diff -u unetwork/src/base-cmu.lisp:1.1 unetwork/src/base-cmu.lisp:1.2 --- unetwork/src/base-cmu.lisp:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/base-cmu.lisp Tue Mar 23 08:02:21 2004 @@ -12,8 +12,6 @@ (in-package :unetwork) -;;; Name service - (defun resolve-host-ip (hostname) "Return the IP address of a host." (let ((host (ext:lookup-host-entry hostname))) @@ -21,13 +19,7 @@ (error 'unknown-host-error :host hostname)) (first (ext:host-entry-addr-list host)))) -;;; Sockets - -(defclass socket () - ((sock :initarg :sock :reader socket-sock) - (stream :initarg :stream :reader socket-stream))) - -(defun socket-open (host port &key (type :text)) +(defun open-socket (host port &key (type :text)) "Open a socket on specified host and port. Keyword argument TYPE can be either :TEXT or :BINARY (defaults to :TEXT)." (handler-case @@ -41,15 +33,13 @@ (make-instance 'socket :sock sock :stream stream)) (simple-error () (error 'connection-error :host host)))) -(defun socket-close (socket) +(defun close-socket (socket) "Close a socket." (ext:close-socket (socket-sock socket))) -;;; Server sockets - -(defun server-socket-open (port) +(defun open-server-socket (port) "Open a server socket on localhost on specified port." - (ext:create-inet-listener port )) + (ext:create-inet-listener port)) (defun server-socket-accept (server-socket &key timeout) "Accept a connection on a server socket. Return the @@ -61,6 +51,6 @@ :element-type '(unsigned-byte 8)))) (make-instance 'socket :sock sock :stream stream)))) -(defun server-socket-close (server-socket) +(defun close-server-socket (server-socket) "Close a server socket." (unix:unix-close server-socket)) Index: unetwork/src/base-sbcl.lisp diff -u unetwork/src/base-sbcl.lisp:1.2 unetwork/src/base-sbcl.lisp:1.3 --- unetwork/src/base-sbcl.lisp:1.2 Fri Mar 12 12:09:34 2004 +++ unetwork/src/base-sbcl.lisp Tue Mar 23 08:02:21 2004 @@ -19,11 +19,7 @@ (error 'unknown-host-error :host hostname)) (sb-bsd-sockets:host-ent-address host))) -(defclass socket () - ((sock :initarg :sock :reader socket-sock) - (stream :initarg :stream :reader socket-stream))) - -(defun socket-open (host port &key (type :text)) +(defun open-socket (host port &key (type :text)) "Open a socket on specified host and port. Keyword argument TYPE can be either :TEXT or :BINARY (defaults to :TEXT)." (handler-case @@ -39,11 +35,11 @@ (make-instance 'socket :sock sock :stream stream))) (simple-error () (error 'connection-error :host host)))) -(defun socket-close (socket) +(defun close-socket (socket) "Close a socket." (sb-bsd-sockets:socket-close (socket-sock socket))) -(defun server-socket-open (port) +(defun open-server-socket (port) "Open a server socket on localhost on specified port." (error "Not implemented yet.")) @@ -52,6 +48,6 @@ resulting socket." (error "Not implemented yet.")) -(defun server-socket-close (server-socket) +(defun close-server-socket (server-socket) "Close a server socket." (error "Not implemented yet.")) Index: unetwork/src/http.lisp diff -u unetwork/src/http.lisp:1.2 unetwork/src/http.lisp:1.3 --- unetwork/src/http.lisp:1.2 Fri Mar 12 12:12:04 2004 +++ unetwork/src/http.lisp Tue Mar 23 08:02:21 2004 @@ -35,7 +35,7 @@ three values: the response code as an integer, the resource properties (headers) as an assoc list, and the connection socket." (assert (eq (uri-scheme uri) :http)) - (let* ((socket (socket-open (uri-host uri) + (let* ((socket (open-socket (uri-host uri) (or (uri-port uri) +http-default-port+))) (stream (socket-stream socket))) (format stream "~A ~A~@[?~A~] HTTP/1.0~%" @@ -59,7 +59,7 @@ (make-instance 'document :text content :properties properties))) - (socket-close socket)))) + (close-socket socket)))) (defun http-read-response (socket) (let* ((stream (socket-stream socket)) @@ -83,8 +83,24 @@ do (vector-push-extend byte content) finally (return content)))) +(defclass http-connection (connection) + ()) + +(defmethod open-protocol-connection ((uri uri) (protocol (eql :http))) + (multiple-value-bind (response-code properties socket) + (http-open-connection uri "GET") + (make-instance 'http-connection + :socket socket + :status response-code + :properties properties))) + +(defmethod close-connection ((connection http-connection)) + (close-socket (connection-socket connection))) + +#| (register-uri-input-stream-handler :http (lambda (uri) (http-open-connection uri "GET")) (lambda (socket) (socket-close socket))) +|# \ No newline at end of file Index: unetwork/src/nntp.lisp diff -u unetwork/src/nntp.lisp:1.2 unetwork/src/nntp.lisp:1.3 --- unetwork/src/nntp.lisp:1.2 Fri Mar 12 12:12:04 2004 +++ unetwork/src/nntp.lisp Tue Mar 23 08:02:21 2004 @@ -12,13 +12,13 @@ (in-package :unetwork) -(unless (boundp '+nntp-default-port) - (defconstant +nntp-default-port 119)) +(unless (boundp '+nntp-default-port+) + (defconstant +nntp-default-port+ 119)) (defun nntp-open-connection (server user password &optional (port +nntp-default-port)) "Open a connection to a NNTP server. Returns the connection socket." - (let ((socket (socket-open server port :type :text))) + (let ((socket (open-socket server port :type :text))) (unless (null user) (nntp-handle-command socket "AUTHINFO USER" (list user) :expect '("281" "381"))) @@ -31,7 +31,7 @@ "Close a connection to a NNTP server." (let ((stream (socket-stream socket))) (format stream "CLOSE~%")) - (socket-close socket)) + (close-socket socket)) (defun nntp-get-groups (socket) "Get the list of all groups on the server. Returns a list of lists Index: unetwork/src/package.lisp diff -u unetwork/src/package.lisp:1.2 unetwork/src/package.lisp:1.3 --- unetwork/src/package.lisp:1.2 Fri Mar 12 12:11:03 2004 +++ unetwork/src/package.lisp Tue Mar 23 08:02:21 2004 @@ -20,6 +20,28 @@ #:authenticate-error #:protocol-error + #:socket + #:socket-sock + #:socket-stream + + #:connection + #:connection-socket + #:connection-status + #:connection-properties + #:open-connection + + #:document + #:document-properties + #:document-text + + #:resolve-host-ip + #:socket + #:open-socket + #:close-socket + #:open-server-socket + #:close-server-socket + #:server-socket-accept + #:uri #:uri-scheme #:uri-host @@ -36,24 +58,12 @@ #:with-uri-input-stream - #:resolve-host-ip - #:socket - #:socket-open - #:socket-close - #:server-socket-open - #:server-socket-close - #:server-socket-accept - - #:document - #:document-properties - #:document-text - #:+http-default-port+ #:http-ensure-url-port-path #:http-get #:http-head - #:+pop3-default-port + #:+pop3-default-port+ #:pop3-open-connection #:pop3-close-connection #:pop3-authenticate Index: unetwork/src/pop3.lisp diff -u unetwork/src/pop3.lisp:1.2 unetwork/src/pop3.lisp:1.3 --- unetwork/src/pop3.lisp:1.2 Fri Mar 12 12:12:04 2004 +++ unetwork/src/pop3.lisp Tue Mar 23 08:02:21 2004 @@ -23,7 +23,7 @@ (defun pop3-open-connection (server &optional (port +pop3-default-port+)) "Open a connection to a POP3 server. Returns the connection socket." - (let* ((socket (socket-open server port :type :text)) + (let* ((socket (open-socket server port :type :text)) (stream (socket-stream socket))) (loop as line = (trim-line (read-line stream nil nil)) until (or (null line) @@ -73,7 +73,7 @@ (pop3-authenticate ,socket ,user ,password) , at body (ignore-errors (pop3-close-connection ,socket))) - (socket-close ,socket)))) + (close-socket ,socket)))) (defun pop3-handle-command (socket command &rest params) (handle-simple-command "POP3" socket command params Index: unetwork/src/smtp.lisp diff -u unetwork/src/smtp.lisp:1.2 unetwork/src/smtp.lisp:1.3 --- unetwork/src/smtp.lisp:1.2 Fri Mar 12 12:12:04 2004 +++ unetwork/src/smtp.lisp Tue Mar 23 08:02:21 2004 @@ -17,7 +17,7 @@ (defun smtp-open-connection (server &optional (port +smtp-default-port+)) "Open a connection to a SMTP server. Returns the connection socket." - (let* ((socket (socket-open server port :type :text)) + (let* ((socket (open-socket server port :type :text)) (stream (socket-stream socket))) (read-line stream) socket)) @@ -27,7 +27,7 @@ (let ((stream (socket-stream socket))) (format stream "QUIT~%") (finish-output stream)) - (socket-close socket)) + (close-socket socket)) (defun smtp-send-mail (socket sender recipients subject data) "Send a mail from SENDER (an email address) to RECIPIENTS (a list Index: unetwork/src/unetwork.asd diff -u unetwork/src/unetwork.asd:1.3 unetwork/src/unetwork.asd:1.4 --- unetwork/src/unetwork.asd:1.3 Thu Mar 18 07:30:14 2004 +++ unetwork/src/unetwork.asd Tue Mar 23 08:02:21 2004 @@ -17,7 +17,10 @@ (defsystem unetwork-base :components ((:file "package") - (:file "errors"))) + (:file "errors") + (:file "utilities") + (:file "document" :depends-on ("utilities")) + (:file "socket"))) (defsystem unetwork-cmu :depends-on (:unetwork-base) @@ -32,10 +35,8 @@ :depends-on (:puri #+cmu :unetwork-cmu #+sbcl :unetwork-sbcl) - :components ((:file "utilities") - (:file "url") + :components ((:file "url") (:file "uri-streams") - (:file "document" :depends-on ("utilities")) (:file "http" :depends-on ("uri-streams")) (:file "pop3") (:file "smtp") Index: unetwork/src/uri-streams.lisp diff -u unetwork/src/uri-streams.lisp:1.1 unetwork/src/uri-streams.lisp:1.2 --- unetwork/src/uri-streams.lisp:1.1 Fri Mar 12 09:46:38 2004 +++ unetwork/src/uri-streams.lisp Tue Mar 23 08:02:21 2004 @@ -14,32 +14,19 @@ (defparameter *uri-input-stream-handlers* '()) -(defun register-uri-input-stream-handler (scheme opener closer) - "Registers input stream handler functions for a protocol (SCHEME). -OPENER must take an URI as argument and return two functions: -stream properties as an assoc list, and socket. -CLOSER must take a socket as argument and take necessary -actions in order to terminate the session." - (push (cons scheme (list opener closer)) *uri-input-stream-handlers*)) - -(defmacro with-uri-input-stream ((stream uri-string - &optional response-code properties) +(defmacro with-uri-input-stream ((stream uri-string &optional status properties) &body body) - "Opens an input stream to the resource at a given uri. Resource properties -are bound to the variable PROPERTIES, if provided. Evaluates the BODY -forms in an implicit PROGN, then closes the stream." - (with-gensyms (uri socket scheme functions) + "Opens an input stream to the resource at a given uri. Initial connection +status and resource properties are bound to the variables STATUS and +PROPERTIES, if provided. Evaluates the BODY forms in an implicit PROGN, +then closes the stream." + (with-gensyms (uri socket connection) `(let* ((,uri (parse-uri ,uri-string)) - (,scheme (uri-scheme ,uri)) - (,functions (cdr (assoc ,scheme *uri-input-stream-handlers*)))) - (assert (not (null ,functions))) - (let ((socket-opener (first ,functions)) - (socket-closer (second ,functions))) - (multiple-value-bind (,(or response-code (gensym)) - ,(or properties (gensym)) - ,socket) - (funcall socket-opener ,uri) - (unwind-protect - (let ((,stream (socket-stream ,socket))) - , at body) - (funcall socket-closer ,socket))))))) + (,connection (open-connection ,uri)) + (,(or status (gensym)) (connection-status ,connection)) + (,(or properties (gensym)) (connection-properties ,connection)) + (,socket (connection-socket ,connection))) + (unwind-protect + (let ((,stream (socket-stream ,socket))) + , at body) + (close-connection ,connection))))) From mvilleneuve at common-lisp.net Wed Mar 24 11:30:09 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Wed, 24 Mar 2004 06:30:09 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/package.lisp Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv27841 Modified Files: package.lisp Log Message: Removed undefined function Date: Wed Mar 24 06:30:05 2004 Author: mvilleneuve Index: unetwork/src/package.lisp diff -u unetwork/src/package.lisp:1.3 unetwork/src/package.lisp:1.4 --- unetwork/src/package.lisp:1.3 Tue Mar 23 08:02:21 2004 +++ unetwork/src/package.lisp Wed Mar 24 06:30:01 2004 @@ -61,7 +61,6 @@ #:+http-default-port+ #:http-ensure-url-port-path #:http-get - #:http-head #:+pop3-default-port+ #:pop3-open-connection From mvilleneuve at common-lisp.net Wed Mar 24 11:32:27 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Wed, 24 Mar 2004 06:32:27 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/http.lisp Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv13568 Modified Files: http.lisp Log Message: Fixed value order for HTTP-GET Date: Wed Mar 24 06:32:26 2004 Author: mvilleneuve Index: unetwork/src/http.lisp diff -u unetwork/src/http.lisp:1.3 unetwork/src/http.lisp:1.4 --- unetwork/src/http.lisp:1.3 Tue Mar 23 08:02:21 2004 +++ unetwork/src/http.lisp Wed Mar 24 06:32:25 2004 @@ -20,8 +20,8 @@ (defgeneric http-get (uri) (:documentation "Get a resource designated by an URI. Returns two -values: the request response code as an integer, and the resource as -an instance of the DOCUMENT class.")) +values: the resource as an instance of the DOCUMENT class, and +the request response code as an integer.")) (defmethod http-get ((uri string)) (http-get (parse-uri uri))) @@ -55,10 +55,10 @@ (http-open-connection uri method :request-headers request-headers) (unwind-protect (let ((content (http-read-content socket))) - (values response-code - (make-instance 'document + (values (make-instance 'document :text content - :properties properties))) + :properties properties) + response-code)) (close-socket socket)))) (defun http-read-response (socket) @@ -96,11 +96,3 @@ (defmethod close-connection ((connection http-connection)) (close-socket (connection-socket connection))) - -#| -(register-uri-input-stream-handler :http - (lambda (uri) - (http-open-connection uri "GET")) - (lambda (socket) - (socket-close socket))) -|# \ No newline at end of file From mvilleneuve at common-lisp.net Wed Mar 24 11:33:19 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Wed, 24 Mar 2004 06:33:19 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/README Message-ID: Update of /project/unetwork/cvsroot/unetwork In directory common-lisp.net:/tmp/cvs-serv15263 Modified Files: README Log Message: Reflect recent changes Date: Wed Mar 24 06:33:19 2004 Author: mvilleneuve Index: unetwork/README diff -u unetwork/README:1.3 unetwork/README:1.4 --- unetwork/README:1.3 Fri Mar 12 10:00:58 2004 +++ unetwork/README Wed Mar 24 06:33:19 2004 @@ -37,14 +37,14 @@ - HTTP - (multiple-value-bind (response-code document) + (multiple-value-bind (document response-code) (http-get "http://www.common-lisp.net") (print (cdr (assoc :content-type (document-properties document)))) (print (document-text document))) - HTTP with URL-streams - (with-url-input-stream (stream "http://www.common-lisp.net") + (with-uri-input-stream (stream "http://www.common-lisp.net") (loop as line = (read-line stream nil nil) until (null line) do (format t "Line: ~A~%" line))) From mvilleneuve at common-lisp.net Fri Mar 26 10:51:52 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Fri, 26 Mar 2004 05:51:52 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/http.lisp Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv19221/src Modified Files: http.lisp Log Message: Always pass the server name in the HTTP headers Date: Fri Mar 26 05:51:52 2004 Author: mvilleneuve Index: unetwork/src/http.lisp diff -u unetwork/src/http.lisp:1.4 unetwork/src/http.lisp:1.5 --- unetwork/src/http.lisp:1.4 Wed Mar 24 06:32:25 2004 +++ unetwork/src/http.lisp Fri Mar 26 05:51:52 2004 @@ -42,6 +42,7 @@ method (or (uri-path uri) +http-default-path+) (uri-query uri)) + (format stream "Host: ~A~%" (uri-host uri)) (loop for header in request-headers do (format stream "~A: ~A~%" (car header) (cdr header))) (format stream "~%") From mvilleneuve at common-lisp.net Mon Mar 29 14:17:35 2004 From: mvilleneuve at common-lisp.net (Matthieu Villeneuve) Date: Mon, 29 Mar 2004 09:17:35 -0500 Subject: [Unetwork-cvs] CVS update: unetwork/src/unetwork.asd Message-ID: Update of /project/unetwork/cvsroot/unetwork/src In directory common-lisp.net:/tmp/cvs-serv11520/src Modified Files: unetwork.asd Log Message: Fix dependency on puri Date: Mon Mar 29 09:17:35 2004 Author: mvilleneuve Index: unetwork/src/unetwork.asd diff -u unetwork/src/unetwork.asd:1.4 unetwork/src/unetwork.asd:1.5 --- unetwork/src/unetwork.asd:1.4 Tue Mar 23 08:02:21 2004 +++ unetwork/src/unetwork.asd Mon Mar 29 09:17:35 2004 @@ -16,6 +16,7 @@ (in-package #:unetwork-system) (defsystem unetwork-base + :depends-on (:puri) :components ((:file "package") (:file "errors") (:file "utilities") @@ -32,8 +33,7 @@ (defsystem unetwork :name "unetwork" - :depends-on (:puri - #+cmu :unetwork-cmu + :depends-on (#+cmu :unetwork-cmu #+sbcl :unetwork-sbcl) :components ((:file "url") (:file "uri-streams")