英語版Palmのためのdelegate文字コード変換proxy

英語版Tungsten
T5をJaPonで日本語化してみたのだが、付属のWebブラウザがShiftJISしか認識しやがらないので、delegateを使って文字コード変換サーバーを立ち上げてみる。
重要なのは、ダイジェスト認証によって第三者の不正利用を防ぐこと。
1.delegateのインストール
delegateは汚いプログラムらしく、FreeBSDのportsはdistfilesももっていないので、本家のhttp://www.delegate.org/からportsのバージョンにあったものを持…

英語版Tungsten T5をJaPonで日本語化してみたのだが、付属のWebブラウザがShiftJISしか認識しやがらないので、delegateを使って文字コード変換サーバーを立ち上げてみる。

重要なのは、ダイジェスト認証によって第三者の不正利用を防ぐこと。

1.delegateのインストール

delegateは汚いプログラムらしく、FreeBSDのportsはdistfilesももっていないので、本家のhttp://www.delegate.org/からportsのバージョンにあったものを持ってくる。FreeBSDのportsはbz2を要求してたので、gunzip後にbzip2してbz2なアーカイブに変換した。

portinstall -M FORCE_BUILD=YES delegate

で一発オッケー。

2.delegate立ち上げshスクリプトの変更

/usr/local/etc/rc.d/delegate.shを用意する。
—-
#!/bin/sh

umask 027
if [ -x /usr/local/sbin/delegated ]; then

echo -n ‘ delegated’

/usr/local/sbin/delegated -P8800 -Txt
ADMIN=postmaster@bam-system.ddo.jp
CHARCODE=SJIS
CACHEDIR=/var/spool/delegate-nobody/cache
EXPIRE=1d
AUTH=proxy:pauth AUTHORIZER=-dgauth CRYPT=pass:proxyuser
RELIABLE=”-a/*”
SERVER=http
PROXY=localhost:8880
> /dev/null 2>&1

/usr/local/sbin/delegated -P8880 -Txt
ADMIN=postmaster@bam-system.ddo.jp
CHARCODE=JIS
CACHE=no
RELIABLE=”localhost”
SERVER=http
> /dev/null 2>&1

fi
—-
/var/spool/delegate-nobody/cacheをnobody:nobodyで掘っておかないと怒られるので注意。

CRYPTエントリーのproxyuserはdigest化のためのキーワードなので自由に選ぶ。

3.ユーザーの登録

登録は
delegated -Fauth -a username:password -dgauth CRYPT=pass:proxyuser
削除は
delegated -Fauth -d username -dgauth CRYPT=pass:proxyuser

4.実行

再起動すればdelegatedが起動する。ファイヤーウォールで8800を通すのを忘れないこと。

「英語版Palmのためのdelegate文字コード変換proxy」への4件のフィードバック

  1. これでJISとEUCについては変換出来たのだが、UTF8についてはどうも変換出来ない。
    一度CHARCODE=UTF8に変更して起動すると変換テーブルをとってくるのでそれはちゃんとやってるんだがなあ。
    どうも二段串にしないとダメという話もあるが、要調査。

  2. どうやら、変換はうまく行ってなかったらしい。で、修正した内容にエントリー変更。
    ミソはクライアントからの要求を受け付ける認証サーバーと、実際にコードを変換するサーバーの二重起動しておくこと。コード変換のバグなのか、二段串にしないと一部の文字コードは最後まで変換されないくさい。

  3. 普通のブラウザならこのプロクシーでうまいこと全てShift-JISに変換できるのに、PalmのBlazerが一部のページでうまく閲覧できないのは何でかな〜と思っていたら、どうやらBlazer+JaPonの環境だとMETAタグで文字コードが指定されてるとご判別するらしい。↓動向要チェック。
    http://ryun.info/~hanzawa/diary/?date=20051031
    うむむ、META除去のフィルタを書かねばならんのかな?

  4. フィルター公開して〜とおねだりして、しばらくやりとりした後に物欲帳さんとこの2005-11-15のエントリーで解消。
    http://ryun.info/~hanzawa/diary/?date=20051115
    HEAD中に文字エンコードを明記したMETAタグを導入すると同時に、余計な文字コードが書いてあるタグを除去するフィルターを入れることで、Proxyを通しても起きる文字化けが解消。
    8800ポートの起動時設定に
    FTOCL=/usr/local/etc/delegate/filter.cfi
    を書き足し、filter.cfiを用意する。
    #!cfi
    Content-Type: text/
    Output/Content-Type: text/html; charset=Shift_JIS
    Filter: /usr/local/etc/delegate/metaadd.pl
    物欲帳さんとこでいただいたスクリプトはmetaadd.plという名前に変更した。
    あとは、同一ページ上に違うサーバーのコンテンツを呼び出す場合に何度もProxyのパスワードを要求される問題だけだな。
    いまんとこ、digest認証のrealmをdgauth.realmの様に明記すれば治るんじゃないかと思ってるけど、テスト未了。

コメントは受け付けていません。