えと、取り急ぎ。

どうやらはてなのログインがSSLを使うようになったせいで、はてダラはてダロが使えなくなっているようですね。Cookieの生存期間も短くなっていたりするんですかね?結城浩さん(id:hyuki)もはてダラのぺーじで案内を出してます。

当然のことながら対応を考えようとは思うんですが、これがかなりクセモノ…。

予想、というかほぼ決定だと思いますが、追加のライブラリと、Windows環境にはバイナリパッケージ、Unix環境にはディストリのパッケージもしくはソースビルドで1つインストールしてもらうことになると思います。本当はあまり導入を面倒にしたくはないんですが、他の方法はないと思うので…。

はてダロの方はもともとはてダラが発祥ですから、あちらの対応後に対処しようと思います。それまでに私の方でなんとかWinのバイナリパッケージを用意しますか…。

まぁ、それよりも問題なのは自分のhatena-diary-modeなんだけど。こっちはもう、あきまへん。xyzzyじゃ無理だ…。

これじゃないかなと思っていたが

先日から各所で議論になっていたはてな住所登録問題。id:hatenadiary:20041125にあるように、撤回された模様。そのパブリックコメントの中で案の定通信の脆弱さを指摘されて、今回のようなSSL通信の導入となったようです。

セキュリティは高まるからいいけどねぇ…なんというか、ツライ。

う〜ん

とりあえずバイナリを、と思って OpenSSL-0.9.7e と Crypt::SSLeay-0.51 をコンパイル・インストールしてみたが、make test は通りはするものの LWP モジュールを使った簡単なリクエストのテストをしてみても 500番エラー(negotiation failed)になってしまう…。OpenSSL のバージョンがいけないのかと 0.9.6m にしてみたが、現象は変わらず。

インストールには問題ないと思うんですけどねぇ。なにがいけないんだろ?
テストしてみたのはこんなコードなんですが。

use LWP::UserAgent;

my $ua = new LWP::UserAgent;
my $req = new HTTP::Request('GET', 'https://www.nodeworks.com');
my $res = $ua->request($req);
print $res->code."\n";

ここまでやった

空き時間に色々やってたんだけど、どうやら Crypt::SSLeay から SSLeay32.dll(OpenSSL)の SSL_connect() を呼ぶと -1 が帰ってくるのが原因らしい。

OpenSSLのコンパイルを見直してみよう。まずは NASM でやってるところを MASM で、それから noasm でやりなおし。

勘違いでした

テストページへのアクセスをhttpでやってました(泣)DLLの入れ替えだけで動いてるなんて変だったんだよな、前のはスタティックリンクだったのにさ。

で、結果の方ですが…やっぱダメです。お手上げか?いや、まだまだ!