]> gitweb.ps.run Git - ps-cgit/commit
scan_path(): Improve handling of inaccessible directories
authorJohan Herland <johan@herland.net>
Mon, 15 Nov 2010 19:40:43 +0000 (20:40 +0100)
committerLars Hjemli <larsh@prediktor.no>
Tue, 16 Nov 2010 08:03:43 +0000 (09:03 +0100)
commit682adbc0cad2baa1a6119013b166f52de3ee3352
treebef3cd4f21672a40399816dcbcab2fedf20b5f5f
parent17596459fe9a43428a261e66f65b227d15bf7ee5
scan_path(): Improve handling of inaccessible directories

When scanning a tree containing inaccessible directories (e.g. '.ssh'
directories in users' homedirs, or repos with explicitly restricted access),
scan_path() currently causes three lines of "Permissions denied" errors to be
printed to the CGI error log per inaccessible directory:

  Error checking path /home/foo/.ssh: Permission denied (13)
  Error checking path /home/foo/.ssh/.git: Permission denied (13)
  Error opening directory /home/foo/.ssh: Permission denied (13)

This is a side-effect of calling is_git_dir(path) and
is_git_dir(fmt("%s/.git", path) _before_ we try to opendir(path).

By placing the opendir(path) before the two is_git_dir() calls, we reduce the
noise to a single line per inaccessible directory:

  Error opening directory /home/foo/.ssh: Permission denied (13)

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Lars Hjemli <larsh@prediktor.no>
scan-tree.c