数あるTwitterクライアントの中から,twittering-modeを愛用しています。
twittering-modeを起動すると,
HTTPS(SSL) is not available because your 'cURL' cannot use HTTPS. Use HTTP instead?"
と表示がでていましたので,HTTPSでは接続出来なかったんだなぁと,あまり気にしてこなかったのですが,いつまでも放っておくのもどうかなと思い調べてみました。
twittering-mode.elを見ると,twittering-start-http-session関数内の以下が関係していそうです。
((not (with-temp-buffer (call-process curl-program nil (current-buffer) nil "--version") (goto-char (point-min)) (search-forward-regexp "^Protocols: .*https" nil t))) (if (yes-or-no-p "HTTPS(SSL) is not available because your 'cURL' cann ot use HTTPS. Use HTTP instead?") (progn (setq twittering-use-ssl nil) (twittering-update-mode-line)) (message "Request canceled") (return)))))
curl-programは,非Windows環境では,curlであり,--versionオプションをつけて実行しています。その結果,httpsにパターンマッチするかどうかでHTTPかHTTPSで起動するかが決まっているようです。以下のように実行してみました。
$ curl --version
curl 7.19.6 (i386-apple-darwin10.0.0) libcurl/7.19.6 zlib/1.2.3
Protocols: tftp ftp telnet dict http file
Features: Largefile libz
なるほど,Protocols行に,httpsが見当たりません。これが,HTTPSモードでtwittering-modeが起動できない原因のようです。
curlをバージョンアップすると,
$ curl --version
curl 7.19.7 (i386-apple-darwin10.2.0) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3
Protocols: tftp ftp telnet dict http file https ftps
Features: IPv6 Largefile NTLM SSL libz
今度は,httpsが出てきました。これで,twittering-modeを起動すると,晴れてHTTPSモードで起動することができました。こんな簡単な理由なら,もっと早く調べておけばよかったと思います。
twittering-mode.elをざっと斜め読みしてみましたが,ここはこんなことをしているんだろうなというのが分かると,とても楽しいですね。