Archive:2010

2月

nginxの新しいバージョン(0.7.65)がリリースされていたので,バージョンアップしてみました。

しばらく前に見つかっていたSSLの脆弱製の実験をやろうと、久しぶりに SSL を有効にしたバイナリを作ろうとしたのですが,オプションの設定の仕方を忘れていて苦労しました。また、忘れても大丈夫なようにメモ。

OpenSolaris 2009.06 に含まれるOpenSSLは 0.9.8a と古いので、現時点での最新バージョンであるopenssl-0.9.8lをダウンロードしてきて使いました。今回はSNI(Server Name Indication)を有効にしたいのでenable-tlsextオプションを渡しています。

./config --prefix=/usr/local no-shared enable-tlsext
make
pfexec make install

これだけでもビルドは出来るのですが,OpenSolaris 2009.06 のデフォルトの GCC 3.2.3 ではなく新しい /usr/bin/gcc-4.3.2 を使いたいので,少し手を入れています。

export CC=/usr/bin/gcc-4.3.2
export CFLAGS='-DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -march=native -O3 -Wall -DL_ENDIAN -DMD32_REG_T=int -DOPENSSL_BN_ASM_MONT -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM' 
./Configure --prefix=/usr/local no-shared enable-tlsext solaris64-x86_64-gcc
make
pfexec make install

Read More

2月

3ヶ月ほど前に、10年以上使い続けたCVSからMercurialにソース管理を移行しました。(Subversion は手になじまなかった。)

移行して不便に感じるのはViewVCが使えなくなった事くらいで、普段はあまり違いは感じていませんが、1つだけ直感的にやり方が分からなくて困る事があります。

ワーキングディレクトリで作業中に誤って必要なファイルを削除してしまった場合、例えば

$ ls -l
total 8
-rw-r--r--  1 user  staff  1345 Jan 16 22:33 Makefile
drwxr-xr-x  5 user  staff   170 Jan 16 22:45 help/
drwxr-xr-x  5 user  staff   170 Jan 16 22:33 tutorial/
$ rm Makefile

としてしまった場合、必要なファイルが存在しない事は hg status コマンドで調べる事ができます。

$ hg status
! Makefile

CVS(やSubversion)では、誤って削除したファイルはcvs update(svn up)で元に戻すことができますが、Mercurial ではそうはいきません。

Read More

1月

WireSharkを使ってダンプを解析するためのキャプチャファイルをtcpdumpで保存するためのオプションを毎回忘れてしまうのでメモ。

tcpdump -n -i en0 -s 0 -w dumpfile.cap [filter]

tcpdump -w filenameだけでも、キャプチャファイルは作れるが、デフォルトではキャプチャ用のバッファ(snaplen)が 68バイトと小さく(TCP のヘッダー分のサイズらしい)、あふれたデータを取りこぼしてしまいます。tcpdump で見ている分には必要の無いデータですが、WireShark で「Follow TCP Stream」を見ようとした時に壊れていたりします。

そこでオプション ‘-s’ を指定して snaplen のサイズを大きく設定しています。(0は無制限、と言っても65535バイトくらいしか見た事ない)

(Open)Solarisの場合は悩む事無く、以下のように普通にファイルに保存するだけで大丈夫です。

snoop -r -d bge0 -o dumpfile.cap [filter]
1月

昨年の後半は、勤めていた会社の経営が傾いたのをきっかけに、退職して新しい会社の立ち上げに参加したり、自分自身も引越しをしたりと、なかなかブログを更新する時間が取れませんでした。新年になり、ようやく全てが落ち着いてきました。

仕事のほうも、しばらくは自宅で開発作業を行うので、今までよりはブログに時間をかけられるんじゃないかなぁ。

自宅に仕事の環境を整えるために、年末年始は4台のPC(PCサーバ2台を含む)のセットアップを行っていました。4台といっても中身は Xen, Solaris Zone, VirtualBox で仮想化してるので時間はかかりました。

OpenSolaris でファイルサーバを作ったので、MacBook の開発環境のバックアップも定期的にそちらに残そうとcrontab -eで編集して保存したところ、意外なエラーが帰ってきました。

crontab: temp file must be edited in place

これまでも Mac で crontab の編集は行っていましたが、エラーになったのは初めてです。

Read More