commit c2fd6ea11c5faadfd8e567b46bd4cceebfc5ea03
parent 028e82efab7ca13a3f67278016b6338e12736805
Author: Tomas Hlavaty <tom@logand.com>
Date:   Sun, 18 Aug 2013 01:03:44 +0200
curl-client and wget-client low level stuff moved to cl-rw
Diffstat:
| M | ipp.lisp |  |  | 99 | ++++++++++++++++++------------------------------------------------------------- | 
1 file changed, 22 insertions(+), 77 deletions(-)
diff --git a/ipp.lisp b/ipp.lisp
@@ -24,6 +24,7 @@
   (:use :cl)
   (:export :cancel-job
            :create-job
+           :curl-client
            :disable-printer
            :enable-printer
            :get-job-attributes
@@ -39,7 +40,8 @@
            :release-job
            :restart-job
            :resume-printer
-           :validate-job))
+           :validate-job
+           :wget-client))
 
 (in-package :ipp)
 
@@ -773,101 +775,44 @@
   (with-open-file (s response-file)
     (rw:till (printer-search-reader (rw:char-reader s)))))
 
-(defpackage :ipp.wget
-  (:use :cl)
-  (:export :ipp-client))
-
-(in-package :ipp.wget)
-
-(defun run-command (cmd args &optional error-plist)
-  (let ((code
-         #+ccl(ccl::external-process-%exit-code (ccl:run-program cmd args))
-         #-ccl(error "TODO port IPP.WGET::RUN-COMMAND")))
-    (unless (zerop code)
-      (let ((reason (or (cdr (assoc code error-plist)) "")))
-        (error (format nil "~a error ~d: ~a ~s" cmd code reason args))))))
-
-(defun wget (url &key request-file response-file content-type)
-  (run-command
-   "wget"
-   `("-q"
-     ,@ (when request-file
-          `("--post-file" ,request-file))
-     ,@ (when response-file
-          `("-O" ,response-file))
-     ,@ (when content-type
-          `("--header" ,(format nil "Content-Type:~a" content-type)))
-     ,url)
-   '((1 . "Generic panic code")
-     (2 . "Parse panic")
-     (3 . "File I/O panic")
-     (4 . "Network failure")
-     (5 . "SSL verification failure")
-     (6 . "Username/password authentication failure")
-     (7 . "Protocol panics")
-     (8 . "Server issued an panic response"))))
-
-;;(wget "http://localhost:631/printers/" :response-file "/tmp/a.html")
-
-(defun ipp-client (content-type printer-uri request-file response-file)
-  (wget printer-uri
-        :request-file request-file
-        :response-file response-file
-        :content-type content-type))
+(defun wget-client (content-type printer-uri request-file response-file)
+  (rw.net:wget printer-uri
+               :request-file request-file
+               :response-file response-file
+               :content-type content-type))
 
 ;;(ipp:list-printers 'ipp-client "http://localhost:631/printers/" "printers.html")
 
-(defpackage :ipp.curl
-  (:use :cl)
-  (:export :ipp-client))
-
-(in-package :ipp.curl)
-
-(defun curl (url &key request-file response-file content-type)
-  (ipp.wget::run-command
-   "curl"
-   `("-s"
-     ,@ (when request-file
-          `("--data-binary" ,(format nil "@~a" request-file)))
-     ,@ (when response-file
-          `("-o" ,response-file))
-     ,@ (when content-type
-          `("-H" ,(format nil "Content-Type:~a" content-type)))
-     ,url)))
-
-;;(curl "http://localhost:631/printers/" :response-file "printers.html")
-;;(curl "http://localhost:631/jobs/82" :response-file "job-status.html")
-
-(defun ipp-client (content-type printer-uri request-file response-file)
-  (curl printer-uri
-        :request-file request-file
-        :response-file response-file
-        :content-type content-type))
-
-(defpackage :ipp.wget.test
+(defun curl-client (content-type printer-uri request-file response-file)
+  (rw.net:curl printer-uri
+               :request-file request-file
+               :response-file response-file
+               :content-type content-type))
+
+(defpackage :ipp.test
   (:use :cl))
 
-(in-package :ipp.wget.test)
+(in-package :ipp.test)
 
 #+nil
-(ipp::cups-get-default 'ipp.wget:ipp-client
+(ipp::cups-get-default 'ipp:wget-client
                        "http://localhost:631/printers/Virtual_PDF_Printer"
                        "request2.dat"
                        "response2.dat"
                        314)
 
 #+nil
-(ipp::cups-get-printers 'ipp.wget:ipp-client
+(ipp::cups-get-printers 'ipp:wget-client
                         "http://localhost:631/printers/Virtual_PDF_Printer"
                         "request2.dat"
                         "response2.dat"
                         314)
 
-;;(ipp:list-printers 'ipp.wget:ipp-client "http://localhost:631/printers/" "printers.html")
+;;(ipp:list-printers 'ipp:wget-client "http://localhost:631/printers/" "printers.html")
 
 #+nil
 (let ((p (ipp:make-printer
-          'ipp.wget:ipp-client
+          'ipp:wget-client
           "http://localhost:631/printers/Virtual_PDF_Printer"
           "request2.dat"
           "response2.dat"
@@ -896,7 +841,7 @@
 
 #+nil
 (let ((x (ipp:make-job
-          'ipp.wget:ipp-client
+          'ipp:wget-client
           "http://localhost:631/printers/Virtual_PDF_Printer"
           "request2.dat"
           "response2.dat"
@@ -911,7 +856,7 @@
 
 #+nil ;; TODO
 (let* ((p (ipp:make-printer
-           'ipp.wget:ipp-client
+           'ipp:wget-client
            "http://localhost:631/printers/Virtual_PDF_Printer"
            "request2.dat"
            "response2.dat"