待辦事項 #18169

opy2onを新バージョンと誤認する

啟用日期: 2009-08-09 22:51 最後更新: 2009-08-13 10:00

回報者:
負責人:
類型:
狀態:
關閉
元件:
里程碑:
(無)
優先權:
6
嚴重程度:
5 - 中
處理結果:
檔案:

細節

http://pc12.2ch.net/test/read.cgi/tech/1231570128/431

O2/0.2 (opy2on/0.00.0001; Linux x86_64) 上記フォーマットのUAを新バージョンと勘違いするようです。 手元では未確認

Ticket History (3/4 Histories)

2009-08-09 22:51 Updated by: k-uehara
  • New Ticket "opy2onを新バージョンと誤認する" created
2009-08-11 18:25 Updated by: osa_p
  • 負責人 Update from (無) to osa_p
評語

O2NodeDB.cpp O2NodeDB::touch_preprocessor()にて ユーザーエージェントの指定桁数から後ろの数値を見ているため、 アプリ名の文字数が異なる場合に新バージョンと誤認する。

	// O2/0.2 (o2on/0.02.0027; Win32)
	if (node.ua.size() > 13) {
		wstring node_ver = node.ua.substr(13, 9);
		if (wcscmp(node_ver.c_str(), ver) > 0)
			NewVerDetectionFlag = true;
	}
13バイト目から見てるので 「O2/0.2 (opy2on/0.00.0001; Linux x86_64)」 の「n/0.00.00」を見てしまう。 「プロトコル名/プロトコルバージョン (アプリ名/アプリバージョン; 環境)」 として、区切り文字から抜き出して見るようにしないといけない。

2009-08-11 18:28 Updated by: osa_p
評語

あと、異なるアプリなら無視するように。

2009-08-13 10:00 Updated by: osa_p
  • 狀態 Update from 開啟 to 關閉
  • Ticket Close date is changed to 2009-08-13 10:00
評語

O2NodeDB::touch_preprocessor()は通信の度に呼ばれる。 ここでユーザーエージェントを切り分けると、無駄な処理が走るので、接続時にノード情報としてアプリ名とアプリバージョンを持つようにした。

Attachment File List

No attachments

編輯

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