アーカイブ

‘opensource’ カテゴリーのアーカイブ

tiarra を IPv6 で動かした時に IPv4 なクライアントがつながらない問題

2012 年 6 月 4 日 コメントはありません

んー どこかで IO::Socket::IPv6 の挙動がかわったのかもしんないんだけど、少なくともDebian squeeze環境で確認した限り、tiarra を IPv6 enable な状態(IPv6動作に必要な perl モジュールを入れた上で tiarra-ip-version: v6 にした状態)で動かしていると IPv4 なクライアントは接続できない(connection established な状態のまま accept されずに timeout する)。

これは IrcIO::Client オブジェクトのコンストラクタ内で使用されてる $addr (= $socket->peerhost)に格納されるアドレスが いわゆる IPv4 mapped address になってて、そこで実行される Tiarra::Resolver->paranoid_check() 内で行われている IPアドレス → ホスト名 → IPアドレス というチェックにおいて 最初のIPアドレス(IPv4 mapped address な IPv6 アドレス)と最後のIPアドレス(純粋にIPv4なアドレス)が一致しないとみなされているため。

ちょっとどこで処置しておくのがいいのか困る感じではあるけど とりあえず paranoid_check() で IPv4 mapped address がきた時には prefix をとっぱらって IPv4 なアドレスとして処理するように以下のパッチでもすればいけるはず。

Index: main/Tiarra/Resolver.pm
===================================================================
--- main/Tiarra/Resolver.pm	(リビジョン 39140)
+++ main/Tiarra/Resolver.pm	(作業コピー)
@@ -230,6 +230,10 @@
     my ($class_or_this, $data, $closure, $my_use_threads) = @_;
     my $this = $class_or_this->_this;
 
+    if ($use_ipv6 && $data =~ /^::ffff:(.*)$/i) {
+	    ::printmsg("Pranoid check address is IPv4 mapped address, strip prefix ". $data);
+	    $data = $1;
+    }
     # stage 1
     $this->resolve(
 	'host', $data, sub {

で、えーと これは 誰に連絡しておくといいのだろう? ^^;;;

カテゴリー: opensource タグ:

WebSocket on iOS 4.2

2010 年 11 月 23 日 コメントはありません

昨日リリースされた iOS 4.2 で Safari がさりげなく WebSocket に対応していた。

前につくってお蔵入りした streaming 版 keitairc とか websocket 使って実装しなおしますかねぇ

カテゴリー: misc, opensource タグ: , , , ,

keitairc 2.0

2010 年 5 月 21 日 コメントはありません

そーいえば 書いてなかった。

keitairc 2.0 出しました。
rc1からの差分はドキュメントの更新のみです。

で、出したあとコードの管理をgitに移しました。

興味のある方はこのあたりを参照。

ダウンロードはここから

カテゴリー: iPhone, opensource タグ: , , , , ,

keitairc 2.0rc1

2010 年 4 月 26 日 コメントはありません

keitairc の 2.0 Release Candidate 1 を出しました。

ここ参照

基本的にはbuildまわりをいじったのと、あとは主にiPhone向けUIのバグ修正のみです。

あと、このバージョンからiPhone以外のWebKitなブラウザを積んだ、いわゆるスマートフォン、要するに例えばGoogle Nexsus One だとか HTC Tatoo だとかでうごきます(この2つは動作報告アリ。あと動作確認できてないけど、HTC Desireとか たぶん Docomo の Xperiaでも動くんじゃねぇかと思うす。ただし、Xperiaみたいに古いAndoridを載せてる端末だと位置情報送信が動きません)

特に大きな問題がなければ、あとはドキュメントの更新をして2.0にする予定。

カテゴリー: opensource タグ: , , , , ,

keitairc Android 対応

2010 年 1 月 26 日 コメント 2 件

たくお先生の提案でkeitaircをいろいろ修正。

Android対応とかいうかWebkit使ったブラウザが載った各種モバイル端末でiPhone UIを出すようにした。

例えば、Google Nexus One では動いとるようです。

あと、しばらーーく動かなくなってた(というか、レイアウトの崩れで投稿ボタンが表示されずに押せなくなってるのでどーにもならなかった) iPhone UI の位置情報投稿機能も直した。

ついでなので、google map の URL を投げるボタンも追加。

ascii.jp の summary.htmlをすっ飛ばす Google Chrome Extension

2010 年 1 月 16 日 コメントはありません

ascii.jpのRSS読んでると、リンク先が記事そのものじゃなくてsummary.htmlという名前の中間ページ的なものに飛んでくので、非常にうざい。

ということで、飛ばすようにした(わら

正確にいうと、(ascii.jpさんの意図は汲んであげて(わら)一瞬表示してredirectがかかるようなGoogle Chromeエクステンションを書いた(つっても、3分もありゃ書ける簡単なもんだけども)

Google Readerしかつかってないので、そっちでリンク先をなぶることも考えたけど、RSSリーダに依存しちゃうしascii.jpさんもかわいそうだし(わら あと実装もこっちの方が楽(というか、まぁ手抜き)なので、こーゆー方法で。

ちなみに、これ入れると ascii.jpのsummary.htmlページは見れなくなります(RSSとか関係なく ascii.jp/*/summary.html にアクセスすると勝手にredirectかかっちゃうので)

ちゃんと置こうかと思ったけど、やっつけ感が高すぎるのでhanzubon.jpのtmpへ雑に置いてあります。

Force Skip ascii.jp summary.html page Google Chrome Extension

たんきよ忘年会2009

2009 年 12 月 20 日 コメントはありません

昨日は、たんきよで毎年恒例の忘年会でした。

久しぶりの参加のひともちらほら、新しく参加の人も何人か。
うかいさんのおくさんに初めて会いましたが、なかなか面白い人でした。

その後、nnnの知ってる店に だいすけ、まくつ、nnn、ならき、オレという感じで移動して二次会?で終電前に解散。

これが終わると、なんだかようやく年末が近づいてきた気がします。

keitairc-2.0b12

2009 年 9 月 25 日 コメントはありません

keitairc 2.0b12をリリースしました。

なんもなければ、このまま2.0になる予定。

2.0出すのにどんだけかかってんだとかいうツッコミはしないように(わら

b11からiPhone/iPod touch UIを大幅に修正してそれなりに使えるようになってる
ので、iPhoneユーザで古いもの使ってるような人は新しいのにしたほうがいいです。

今回はなんとなくdebianパッケージも置きました。

ダウンロードはこのあたりから。

irc.debian.or.jpとかirc.linux.or.jpとか系 UTF-8へ移行します @ 2009/9/1

2009 年 8 月 17 日 コメントはありません

irc.debian.or.jpとかirc.linux.or.jpとか系のircサーバ使ってる人への連絡

日本時間 2009/9/1 12:00 (正午)に日本語の文字コードをutf-8へ切り替えます。

カテゴリー: misc, opensource タグ: ,

rsync の –delay-updatesを拡張(したい)

2009 年 4 月 19 日 コメントはありません

Debian mirrorの更新って、ミラー中もアクセスしても整合性がとれてるように、
ざっくりいうと次みたいな流れになっている。

  1. pool/以下を–deleteなしでrsync
  2. 全体を–after-deleteありrsync

(正確には dists/以下の特定パターンのファイルがあとで更新されること、
ファイルの削除が最後に消されることが条件だけど、まぁ細かいことは
考えなくてもいい、ここでは)

で、なにが言いたいかいうと、結局都合2回rsyncがかかるのと、1回目と2回目に
同じディレクトリのトラバーサルが走るので、まぁなんつーか若干効率が悪い
わけです。

でだ、一方 rsync には –deley-updates というオプションがあります。

これは取り合えずファイルを別の位置にどばーっととってきておいて、
実際のファイルの更新は最後にまとめてやりますよ というオプション。

一般的にリモートからローカルの転送には時間がかかるけど、ローカルでの
renameは比較的短時間で済むので、ツリー全体の不整合な時間を
ある程度減らせますよ というためのものですね(もちろん、atmicには
なりません)。

でね、この –deley-updatesオプションの動作を拡張するなり、
別のオプション(例えば –deley-update-patternとかいうオプション
を新設がいいんじゃね? という気がしている)して、「指定したパターンに
合致したファイル/ディレクトリのみ、delay-update する」とかできると、
Debian mirror 的には rsync 一発でいけるようになるので、ちょっと
うれしいんじゃねぇか? とか思いました。

誰かやる人?(わら
(自分でやれといわれそうだな(わら)

カテゴリー: Debian, Linux, opensource タグ: , , , ,