BugTrack/2292
の編集
Top
/
BugTrack
/
2292
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
* do_searchで閲覧認証ではじかれた際の無駄な処理をなくす [#ha2e0fcf] - ページ: [[BugTrack]] - 投稿者: [[ぃぉぃぉ]] - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2007-11-29 (木) 01:24:16 - バージョン: 1.4.7 - リリース予定バージョン: 1.5.2 ** メッセージ [#c0887aa0] 検索機能lib/func.phpのdo_searchで、無駄な処理発見。 -L. 239あたりから。一行追加するだけで対策できる。 // Search auth for page contents if ($search_auth && ! check_readable($page, false, false)) { unset($pages[$page]); --$count; } + else // Search for page contents foreach ($keys as $key) { $b_match = preg_match($key, get_source($page, TRUE, TRUE)); if ($b_type xor $b_match) break; // OR } if ($b_match) continue; 認証チェックでunreadableだったときに、unsetで検索にヒットしなかった扱いをしているが、それに関係なくページの中身を確認している。elseを追加することで無駄な処理を省ける。閲覧認証をかけたページが多い場合には、検索速度が大幅に向上することが期待できる。 -------- - これも[[PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限/未対応プラグイン対策]]実装時に発見。 -- [[ぃぉぃぉ]] &new{2007-11-29 (木) 01:25:20}; 修正パッチ // Search auth for page contents if ($search_auth && ! check_readable($page, false, false)) { unset($pages[$page]); --$count; + continue; } - メモです。do_searchはlinks_update (lib/links.php) からも使われていて、単純に更新者のreadable or notで分岐すると壊れてしまうことがわかりました。が、これはlinks_update側を直すべきですね [[BugTrack/2080]] -- [[umorigu]] &new{2017-09-10 (日) 01:42:09}; -- ....と、書きましたが、readable or notによって処理が変わっているので、元々ここの処理は壊れていました。[[BugTrack/2432]]として登録しました -- [[umorigu]] &new{2017-09-12 (火) 23:57:52}; - links_update()は専用のページ名検索メソッド(links_do_search_page)を使うようにしました。do_searchでは閲覧権限のないファイルの中身は見ないようにしました -- [[umorigu]] &new{2017-09-12 (火) 02:15:13}; - 修正の訂正です。links_update()の修正は[[BugTrack/2432]]で行い、こちらのBugTrackでは提案の、不要な処理の削除のみ行いました commit:d17082884c -- [[umorigu]] &new{2017-09-13 (水) 00:12:36}; #comment
タイムスタンプを変更しない
* do_searchで閲覧認証ではじかれた際の無駄な処理をなくす [#ha2e0fcf] - ページ: [[BugTrack]] - 投稿者: [[ぃぉぃぉ]] - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2007-11-29 (木) 01:24:16 - バージョン: 1.4.7 - リリース予定バージョン: 1.5.2 ** メッセージ [#c0887aa0] 検索機能lib/func.phpのdo_searchで、無駄な処理発見。 -L. 239あたりから。一行追加するだけで対策できる。 // Search auth for page contents if ($search_auth && ! check_readable($page, false, false)) { unset($pages[$page]); --$count; } + else // Search for page contents foreach ($keys as $key) { $b_match = preg_match($key, get_source($page, TRUE, TRUE)); if ($b_type xor $b_match) break; // OR } if ($b_match) continue; 認証チェックでunreadableだったときに、unsetで検索にヒットしなかった扱いをしているが、それに関係なくページの中身を確認している。elseを追加することで無駄な処理を省ける。閲覧認証をかけたページが多い場合には、検索速度が大幅に向上することが期待できる。 -------- - これも[[PukiWiki/1.4/ちょっと便利に/任意のページごとの閲覧・編集制限/未対応プラグイン対策]]実装時に発見。 -- [[ぃぉぃぉ]] &new{2007-11-29 (木) 01:25:20}; 修正パッチ // Search auth for page contents if ($search_auth && ! check_readable($page, false, false)) { unset($pages[$page]); --$count; + continue; } - メモです。do_searchはlinks_update (lib/links.php) からも使われていて、単純に更新者のreadable or notで分岐すると壊れてしまうことがわかりました。が、これはlinks_update側を直すべきですね [[BugTrack/2080]] -- [[umorigu]] &new{2017-09-10 (日) 01:42:09}; -- ....と、書きましたが、readable or notによって処理が変わっているので、元々ここの処理は壊れていました。[[BugTrack/2432]]として登録しました -- [[umorigu]] &new{2017-09-12 (火) 23:57:52}; - links_update()は専用のページ名検索メソッド(links_do_search_page)を使うようにしました。do_searchでは閲覧権限のないファイルの中身は見ないようにしました -- [[umorigu]] &new{2017-09-12 (火) 02:15:13}; - 修正の訂正です。links_update()の修正は[[BugTrack/2432]]で行い、こちらのBugTrackでは提案の、不要な処理の削除のみ行いました commit:d17082884c -- [[umorigu]] &new{2017-09-13 (水) 00:12:36}; #comment
テキスト整形のルールを表示する