ホーム > IP Messenger > IP Messenger for MacOS X 0.9.1b2

IP Messenger for MacOS X 0.9.1b2

2009 年 09 月 14 日 コメントをどうぞ コメント

新しいベータ版をリリースしました。前回のベータ版から約 2 年ぶりだったりしますが。

http://ishwt.net/software/ipmsg/
ipmsg-icon

Intel Mac で実行すると自分自身が二人表示されてしまう問題と、ちょっとリソースの修正をしたものです。

エンディアン問題。

二人表示されてしまう理由は、ユーザの同一判定で利用している IP アドレスの変換ミスでした。

Mac には PowerPC (G4 とか G5 とか)の古い機種と Intel CPU (基本 IA-64 アーキテクチャ、一部旧機種では IA-32/x86)の最近の機種とが混在していて、両者のアプリケーションプログラムレベルから見た最も基本的な違いはエンディアンの違いです。エンディアンとは、2バイト以上の数値をどのようにレジスタやメモリに配置するかという方式の違いで、上位バイトから格納するか下位バイトから格納するかで Big Endian と Littel Endian があります。どちらが優れているというわけではなく一長一短あるのですが、PowerPC は Big Endian で、Intel CPU は Little Endian なのです。それにより、ネットワークバイトオーダー(= Big Endian)とホストバイトオーダーが一致するか異なるかという問題があったりなかったり…(いや、正しくプログラミングしてあればなんら問題ないです。だから不具合)。分からないけど興味のあるという方は、ネットで検索などしてください。

で、手っ取り早くいうと同一ユーザであるか判断する条件の一つである IPアドレスを 32 bit 幅の数値に格納する時に、(ネットワークバイトオーダーとエンディアンが一致する)PowerPC では気がつかないような不備がありました。Intel CPU だと自分自身で管理している IP アドレスと、自分がブロードキャスト送信して自分自身で受信した IP アドレスとが一致しなくなってしまい、別ユーザとして解釈されてしまう、というものでした。

結構恥ずかしいタイプの不具合かもです。

リソース修正。

Finder のカラム表示でのプレビューや、インスペクタでの一般情報表示に「バージョン」という項目がありますが、これがいままで “for MacOS X” とどうでもいい文字列になっていました。これを “0.9.1b2” と正しく表示されるようにした、と。ただそれだけッス。リソースファイル内の定義を書き換えただけです。


カテゴリー: IP Messenger タグ:
  1. mo
    2009 年 09 月 14 日 18:07 | #1

    初めまして。
    去年本家掲示板でIntel対応版を見つけてから期待してました!
    これからも使わせて頂きます。ありがとうございます♪

  2. 2009 年 09 月 14 日 18:29 | #2

    @mo
    コメントありがとうございます。
    今度は放置しないように定期的に改善していきたいと思います。

  1. トラックバックはまだありません。