NTTコムのホットスポットやBBモバイルポイント等の公衆無線LANに自動でログインするWindowsMobile用ツール、AirLoginを修正中です。
今のものでは旧Yahoo!BBモバイルエリアではログインできないので、ここでもちゃんとログインできるように、そして汎用的に使えるように修正中です。
で、だいぶ出来てきたのですが、どうもredirect(httpの300番台応答)が続くとアプリが落ちてしまうという現象が発生。1週間くらい悩んでました。デバッグメッセージを挿入したモジュールを作成→近くのアクセスポイントにいって確認、というのを繰り返していましたが、なかなかわかりません。通信部分はlinux上で作っているので、linux入りのノートPCをアクセスポイントへ持っていって試してみたけど問題ない。
なかなか原因がわからない。どうやらPocketPC上でのみ発生するようだ。
なので、ちょっと手がかかりましたが、開発環境上にWebサーバを立てて、擬似的にhttpのやり取りができる環境をつくり、ActiveSync経由でipaqからそのhttpサーバにアクセスできるようにし、eMbedded Visual C++上でデバッグをしました。これならアクセスポイントに出向かなくてもデバッグできます。ノートPCとiPaqをアクセスポイントのあるところに持っていけば出来る話ですが、荷物も多くなるし、複数機器を人前で広げる気にはならなかったので。。。
そして調べてみると、Stack overflowで落ちていることがわかりました。httpの応答が300番台でリダイレクトしている場合、関数の中でネストして、リダイレクト先のURLにアクセスしているのですが、このネストが多くなるとスタック領域を多く使い今回の事象にいたっているようです。
PocketPC上のアプリはPCと違い貧弱なリソースの中で動かさなければならないので、ある程度メモリ管理も気を使う必要があるようです。スタックサイズを変更する方法が見当たらない(変更したけど有効にならないという掲示板への書き込みを見かけた)ので、ちょっとアプリのつくりを見直すことにしました。
一応、見直し後はちゃんとアプリが落ちることなく動くようになりました。もう少しテストを重ねてから修正版を公開する予定です。
今のものでは旧Yahoo!BBモバイルエリアではログインできないので、ここでもちゃんとログインできるように、そして汎用的に使えるように修正中です。
で、だいぶ出来てきたのですが、どうもredirect(httpの300番台応答)が続くとアプリが落ちてしまうという現象が発生。1週間くらい悩んでました。デバッグメッセージを挿入したモジュールを作成→近くのアクセスポイントにいって確認、というのを繰り返していましたが、なかなかわかりません。通信部分はlinux上で作っているので、linux入りのノートPCをアクセスポイントへ持っていって試してみたけど問題ない。
なかなか原因がわからない。どうやらPocketPC上でのみ発生するようだ。
なので、ちょっと手がかかりましたが、開発環境上にWebサーバを立てて、擬似的にhttpのやり取りができる環境をつくり、ActiveSync経由でipaqからそのhttpサーバにアクセスできるようにし、eMbedded Visual C++上でデバッグをしました。これならアクセスポイントに出向かなくてもデバッグできます。ノートPCとiPaqをアクセスポイントのあるところに持っていけば出来る話ですが、荷物も多くなるし、複数機器を人前で広げる気にはならなかったので。。。
そして調べてみると、Stack overflowで落ちていることがわかりました。httpの応答が300番台でリダイレクトしている場合、関数の中でネストして、リダイレクト先のURLにアクセスしているのですが、このネストが多くなるとスタック領域を多く使い今回の事象にいたっているようです。
PocketPC上のアプリはPCと違い貧弱なリソースの中で動かさなければならないので、ある程度メモリ管理も気を使う必要があるようです。スタックサイズを変更する方法が見当たらない(変更したけど有効にならないという掲示板への書き込みを見かけた)ので、ちょっとアプリのつくりを見直すことにしました。
一応、見直し後はちゃんとアプリが落ちることなく動くようになりました。もう少しテストを重ねてから修正版を公開する予定です。


