Ticket #18169

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

Eröffnet am: 2009-08-09 22:51 Letztes Update: 2009-08-13 10:00

Auswertung:
Verantwortlicher:
Typ:
Status:
Geschlossen
Komponente:
Meilenstein:
(Keine)
Priorität:
6
Schweregrad:
5 - Mittel
Lösung:
Keine
Datei:
Keine

Details

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

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

Ticket-Verlauf (3/4 Historien)

2009-08-09 22:51 Aktualisiert von: k-uehara
  • New Ticket "opy2onを新バージョンと誤認する" created
2009-08-11 18:25 Aktualisiert von: osa_p
  • Verantwortlicher Update from (Keine) to osa_p
Kommentar

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 Aktualisiert von: osa_p
Kommentar

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

2009-08-13 10:00 Aktualisiert von: osa_p
  • Status Update from Offen to Geschlossen
  • Ticket Close date is changed to 2009-08-13 10:00
Kommentar

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

Dateianhangliste

Keine Anhänge

Bearbeiten

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