edicl / drakma

HTTP client written in Common Lisp
http://edicl.github.io/drakma/
248 stars 58 forks source link

Use cl+ssl library instead of "comm" module on lispworks 7.0 or before. #117

Closed g000001 closed 3 years ago

g000001 commented 3 years ago

LispWorks' "comm" module works fine on its version 7.1 (or later?). So, We should use third party "cl+ssl" library instead of "comm" module on lispworks 7.0 or before.

Thank you.

stassats commented 3 years ago

What happened to pre 7.0 versions?

g000001 commented 3 years ago

LispWorks 7.0 and before's "comm" module uses fixed version of ssl(v1.0 ~ 1.0.2 etc) and It can't be update newer ssl(and older version LispWorks is unsupported now...) The other implementations uses CL+SSL fine, and It works on LispWorks fine, too(including version 7.1)

stassats commented 3 years ago

Do you need to use older versions of lispworks? I can imagine a scenario in which some people might find this change surprising.

g000001 commented 3 years ago

Do you need to use older versions of lispworks?

Yes, I'm still using version LispWorks 7.0 + DRAKMA (+ CL+SSL patched) daily. To GET/POST'ing HTTPS sites.

IMHO LispWorks 7.0(2015) is very close to LispWorks 7.1(2017).

some people might find this change surprising.

LispWorks 7.1 users: Nothing to happens(compiled source code nothing changed. thanks of #+lispwork7.1.)

LispWorks 7.0 or before users: Now DRAKMA can speak HTTPS, and It depends on CL+SSL like other CL implementaions.

Additionally, I confirmed much older LispWorks works fine with DRAKMA/CL+SSL

;;; LispWorks personal edition 6.1/linux(2013)
CL-USER 5 > (drakma:http-request "https://example.com/")
"<!doctype html>
snip...
"
200
((:AGE . "465818") (:CACHE-CONTROL . "max-age=604800") (:CONTENT-TYPE . "text/html; charset=UTF-8") (:DATE . "Wed, 15 Sep 2021 16:43:44 GMT") (:ETAG . "\"3147526947+ident\"") (:EXPIRES . "Wed, 22 Sep 2021 16:43:44 GMT") (:LAST-MODIFIED . "Thu, 17 Oct 2019 07:18:26 GMT") (:SERVER . "ECS (oxr/8374)") (:VARY . "Accept-Encoding") (:X-CACHE . "HIT") (:CONTENT-LENGTH . "1256") (:CONNECTION . "close"))
#<PURI:URI https://example.com/>
#<FLEXI-STREAMS:FLEXI-IO-STREAM 200AD307>
T
"OK" 
CL-USER 6 > (lisp-implementation-version)
"6.1.1"
g000001 commented 3 years ago

Thank you :smiley_cat: