Ticket #14679

au W31Tで位置情報送信ができない

오픈 날짜: 2009-01-18 21:12 마지막 업데이트: 2009-09-27 21:09

Reporter:
(Anonymous)
소유자:
(None)
Type:
Status:
Closed
Component:
MileStone:
(None)
Priority:
3
Severity:
3
Resolution:
Later
File:
None

Details

位置情報送信をすると、「URLが正しくありません」と表示されます。 GPS、簡易ともに同じ現象です。 通常の発言は可能です。

機種:au W31T

Ticket History (3/19 Histories)

2009-01-18 21:12 Updated by: None
  • New Ticket "位置情報送信ができない" created
2009-01-19 01:13 Updated by: rs6000moe
댓글 올리기

バージョンは2.0b11です。b5では問題ありませんでした。

2009-07-22 22:06 Updated by: ishikawa
댓글 올리기

そのあたりのタイミングで ezweb がらみで位置情報まわりでの修正というと web_schema サポートくらいしかなさそう。

keitairc を https モードで動かしてると device:gpsone とか device:location の url パラメタが https://ふがほげ になるわけだけど、そもそも gpsone も location も https への redirect をサポートしてないんじゃないか?

だとすれば、https の時は位置情報送信は非サポートにするしかない?

2009-07-22 22:07 Updated by: ishikawa
2009-07-22 22:36 Updated by: ishikawa
댓글 올리기
  • web_schema を設定していて
  • そのプロトコルが端末側の想定しているもの以外だった場合

「URLが正しくありません」と言われるようだ。

で、手元に W31T があるわけではないので実機で確認したわけではないが、少なくとも 手元にある W53CA では web_schemaにhttpsを設定しても「URLが正しくありません」という エラーにはならなかった。

というあたりを考えると、

  • どの端末でhttpsでもいけるのか情報がないが、httpsでいける端末もあるので一律httpsの場合位置情報リンク出さないのは不便な場合があるだろう
  • web_schemaにありえなさげなもの(web_schema = moge とか)を設定しても、keitairc自体は動いてしまうがweb_scmemaパラメタの値を使ってる箇所で問題が出る

といった感じなので

  • httpsだとezwebだと位置情報通知できない端末があるよ というコメントをドキュメントのどこか(web_schemaの説明のあたりか?)に追加
  • 上記に関してコード側での特別な対応はしない
  • web_schema に関しては パラメタチェックして http/https以外がセットされてた場合は、ワーニングでも出して強制的にhttpにしちゃった方がいいのかもしれない。

という程度の対処じゃないかと思う。

2009-09-24 16:05 Updated by: morimoto
댓글 올리기

上の話 (2009-07-22 22:36のコメント) は、 「バグ報告者は、web_schemaをhttpsに設定してau W31Tでkeitaircを使っているのではないか」 という仮説に基づくものですよね。

しかし、au端末では、キャリアが認めて端末にクライアント証明書を内蔵させたSSL証明書以外は、そもそもアクセスできないはず。 つまり、いわゆるオレオレSSL証明書はau端末では使えない。

この報告者が、きちんと購入したSSL証明書に基づいてhttpsでkeitaircを使っている可能性は、ゼロではないが、かなり低そう(主観ですが…) なので、上記の仮説も可能性低いのではないかと思います。

2009-09-24 16:09 Updated by: morimoto
  • Severity Update from 5 - Medium to 3
  • Milestone Update from keitairc2.0リリース (closed) to (None)
  • Component Update from (None) to plugin
  • Priority Update from 5 - Medium to 3
  • Summary Updated
댓글 올리기

* 再現パターンなどの追加情報がないと対処難しいと判断します。 * 確実でない仮説に基づいて修正しても副作用を出してしまいそうです。 * なので優先度、重要度を下げ、マイルストーンから外しました。コンポーネントをpluginにしました。 * 概要も修正しました。

2009-09-24 16:20 Updated by: ishikawa
  • Component Update from plugin to (None)
  • Summary Updated
  • Priority Update from 3 to 5 - Medium
  • Severity Update from 3 to 5 - Medium
  • Milestone Update from (None) to keitairc2.0リリース (closed)
댓글 올리기

いや、えーとですね。

「URLが正しくありません」

というエラーは、パーサがURLをパースした段階で出力してくるエラーでそもそも通信なんかにいく前なので auのオレオレ証明書問題とは、また別の話なんすよ。

「知らないプロトコルが指定されてるので、わしゃアクセスしない」

で、一部端末では上記場面において「http://」のみが知ってるプロトコル(位置情報をhttpでしか投げられない)なので それ以外が指定されている場合は「URLが正しくありません」になるという話です。

かつ、実際にauの端末でやってみるとわかるんですが、web_schema が利用されている箇所 (html内出現するkeitairc内部へのリンクはプロトコル部分が省かれてるので、URLの一部として web_schema に指定している文字列がhtml中に出現する箇所)は実はここくらいしかなくて web_schemaを指定してても keitairc 本体へのアクセスは httpでできちゃう(という意味では、この機能は なんなのかという気もちょいする(わら)ので、web_scheme を https にセットしていて、他の機能は使えていて かつ、ここでだけこういうエラーがでると言うのは実際は「ものすごくありそうなこと」だったりします。

2009-09-24 16:23 Updated by: ishikawa
댓글 올리기

いずれにせよ、この報告「自体」はこれだけの情報だと憶測しかできないのには同意。

2009-09-24 16:25 Updated by: ishikawa
  • Severity Update from 5 - Medium to 3
  • Milestone Update from keitairc2.0リリース (closed) to (None)
  • Priority Update from 5 - Medium to 3
  • Resolution Update from None to Later
  • Component Update from (None) to plugin
댓글 올리기

うーん、二人で同時にいじってるとチケットのパラメタを戻しちゃったりする事故が発生するんだな...

2009-09-24 16:26 Updated by: ishikawa
  • Summary Updated
2009-09-24 21:18 Updated by: nyan_
댓글 올리기

ishikawa への返信

web_schemaを指定してても keitairc 本体へのアクセスは httpでできちゃう

これは必ずしも正しくはありません。

The Internet からは reverse proxy 経由でしかアクセス出来ない環境の場合、 web_schema を正しく設定していないとアクセスできなくなります。 web_schema, web_host, web_port, web_root はそのための設定になります。

2009-09-24 22:10 Updated by: ishikawa
댓글 올리기

nyan_ への返信

ishikawa への返信

web_schemaを指定してても keitairc 本体へのアクセスは httpでできちゃう

これは必ずしも正しくはありません。 The Internet からは reverse proxy 経由でしかアクセス出来ない環境の場合、 web_schema を正しく設定していないとアクセスできなくなります。 web_schema, web_host, web_port, web_root はそのための設定になります。

んー、そういう意図なのか...というか、とりあえず 本来のweb_schemaの挙動に 関しては、この au W31Tの問題と本質的に関係ないので、ここで続ける話ではない んで、ちょっと移動したい感じです。

いま #18772 を作ってしまったので、まず 本質的には #18772の大部分はオレの勘違いの ようですが、ただ少なくともweb_schemaがそーゆー意図からのものだというのはドキュメントの どこにも記述がなくて、今のままだとなんだかさっぱりわからないと思います。

2009-09-24 22:13 Updated by: ishikawa
댓글 올리기

web_schemaの本来的な意味がとれてなかったのでという話は#18872でした...

2009-09-24 23:20 Updated by: ishikawa
댓글 올리기

なんか脱線した上に、もともとのオレのコメントの記述の意味が伝わってない気もするので 念のため再度まとめておきます。

まず、「URLが正しくありません」というエラーですが これは au の位置情報通知URLである ところの device:gpsone もしくは device:locationに渡している url パラメタを端末が パースした結果不正だと思った(URLとして正しくないと判断した)場合に吐かれるエラーです (もちろん100%そうだとは言わないけども、別の端末で再現もしたし、もともとのレポートの 内容からもここ以外にはなさそうなのでほぼ間違いない)

で、このエラーが出るのは実際に位置情報通知云々の処理を始める前のできごとで通信も行われ る前で、端末側で文字列をパースした際に発生します。

つまり、このエラーが出るということはurlパラメータに渡っている文字列、つまり

<!-- tmpl_var web_schema -->://<!-- tmpl_var web_host -->:<!-- tmpl_var web_port --><!-- tmpl_var root --><!-- tmpl_var session_id -->/location_receiver/<!-- tmpl_var cid -->/&ver=1&datum=0&unit=0&acry=0&number=0
<!-- tmpl_var web_schema -->://<!-- tmpl_var web_host -->:<!-- tmpl_var web_port --><!-- tmpl_var root --><!-- tmpl_var session_id -->/location_receiver/<!-- tmpl_var cid -->/

のいずれもテンプレート展開されたあとの文字列がURLとして不正だと言われているということになります。

で、ここいらあたりからは推論が入って来ますが(わら

報告にあるようにb5で大丈夫でb11だとダメという話だと、上記の両方の共通部分のうちb5以降で変更が あった箇所が怪しいだろうということになるでしょう。

で、ここの文字列のうち b5 以降で変更されている箇所が一ヶ所だけあります。

b5 では web_schemaがなく べたに http:// が書かれていたようですが、現在は web_schema 変数を展開 するようになってます。

というあたりをふまえると web_schema になにかおかしな文字列が入り込んだりしてるのではないか、あるいは なにかおかしな値を設定しているのだろう という線を疑いたくなります。

さらに、この線でおしすすめると

  • なんらか正しく設定しているのに文字列としてへんなもんが入ってくる可能性は少なくともオレには見つけられなかった(それに関係する箇所でバグは見つけられなかった。というか、そもそも処理としてバグが入り込みようもない感じ)
  • 別チケットにもあるようにconfigのパラメータの値は現状ほぼノーチェックなので、web_schemaをそもそも設定ミスってしまっている可能性の方が高そうだ

というあたりにいきつきます。

で、もう一つもともとのコメントに書き忘れてたようですが、かつ情報のソースがどこだったのか もはやわからなくなってしまったんで、非常にあやふやな情報になってしまうわけですが、少なくとも au の位置情報サービスに対応した初期の端末の一部では位置情報のポスト先にhttpsが使えず、ここでの 報告のように「URLが正しくありません」というエラーを返すものが存在する(httpsが使えないのは通信できない とかそういうことじゃなくて、そもそも位置情報の処理ルーチンのパーサがhttpsというschemaを知らないので 不正だとして通信にいく前にエラー処理してくれちゃう)のは発見しており、そもそも一部の端末では web_schemaを (httpsに)正しく設定していても、実際には位置情報通知が使えないという状況が発生するようだということも わかってはいます。

と、ここまでぐちゃぐちゃ書いているわけですが 結論として どーなのかというと

  • おそらくkeitairc側のコードに問題があるわけではない
  • ぶっちゃけ、一部の端末依存の挙動だろうと推測されるが、情報がもう少しないと再現しようもないのでどーにもできない
  • 仮に再現したとしても一部端末でのみ発生する特殊事例でかつ、その挙動がundocumentedなのでkeitaircのコード側でどうこうできる問題でもない

という風に考えられるので、おこせるアクションとしては

  • さらに掘り下げるためには情報ください
  • ただ、これ以上調べてもkeitairc側で回避できる問題じゃなさそうなので、特にアクション起こす必要もなさげだろう
  • どうしてもなんかするということであれば、ドキュメントになにか記述する(といっても、正確な情報がないので書きようもないけど)くらいの回避しか思いつかない。

ということだと思います。

簡単にまとめると、「とりあえずどーしよよーもなさそうだ」です(わら

(なので、マイルストーンからはずしたのも優先度下げたのも正解だと思う)

2009-09-25 14:07 Updated by: rs6000moe
댓글 올리기

b12が出たので久しぶりに見たらコメントが。 端末側の不具合ということでしたら、了解です。 もし何か試せそうなことがあれば、情報はお出しします。とりあえずb12で試してみます。

2009-09-25 14:35 Updated by: morimoto
댓글 올리기

rs6000moe への返信

b12が出たので久しぶりに見たらコメントが。 端末側の不具合ということでしたら、了解です。 もし何か試せそうなことがあれば、情報はお出しします。とりあえずb12で試してみます。

ちなみに、現象が発生したとき、web_schema を https に設定などしてらっしゃいましたか?

2009-09-27 20:47 Updated by: None
댓글 올리기

morimoto への返信

ちなみに、現象が発生したとき、web_schema を https に設定などしてらっしゃいましたか?

いえ、デフォルト(http)のままです。

なお、b12にしたところ、refits、googleともに使用可能となりました。クローズ頂いて構いません。

2009-09-27 21:09 Updated by: morimoto
  • Status Update from Open to Closed
  • Ticket Close date is changed to 2009-09-27 21:09
댓글 올리기

ご報告ありがとうございます。 ではクローズとします。

Attachment File List

No attachments

Edit

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Login