Re: [PATCH 4/4] git-daemon support for user-relative paths.
- From
Andreas Ericsson <ae@op5.se>
- Date
- Nov 2, 2005, 08:17 UTC
- Message-ID
- <4368760E.6030208@op5.se>
- In-Reply-To
- <7vvezb6h4c.fsf@assigned-by-dhcp.cox.net>
Junio C Hamano wrote:
Show 19 quoted lines
> Andreas Ericsson <ae@op5.se> writes: > > >>+ [--timeout=n] [--init-timeout=n] [--strict-paths] [directory...] > > > Why not just --strict? > > >>@@ -10,16 +10,18 @@ >> #include "pkt-line.h" >> #include "cache.h" >> >>-static int log_syslog; >>+static int log_syslog = 0; > > > I'd drop this. >
No can do. It has to be set either here or down in main. It's nice to have the default in the declaration.
Show 35 quoted lines
>
>> /* If this is set, git-daemon-export-ok is not required */
>> static int export_all_trees = 0;
>>
>>@@ -81,69 +83,49 @@ static void loginfo(const char *err, ...
>> va_end(params);
>> }
>>
>>-static int path_ok(const char *dir)
>>+static const char *path_ok(const char *dir)
>> {
>>+ const char *path = is_git_repo(dir, strict_paths);
>>+ /* No such directory or not a git archive */
>>+ if(!path) {
>>+ logerror("'%s': unable to chdir or not a git archive", dir);
>>+ return NULL;
>> }
>>
>> if ( ok_paths && *ok_paths ) {
>>+ char **pp = NULL;
>>+ int dirlen = strlen(path);
>>
>> for ( pp = ok_paths ; *pp ; pp++ ) {
>> int len = strlen(*pp);
>>+ if ( len <= dirlen && !strncmp(*pp, path, len) ) {
>>+ if( path[len] == '\0' || (!strict_paths && path[len] == '/') )
>>+ return path;
>> }
>> }
>
>
> Sorry, but I am a bit confused. Does this mean that you need to
> list all directories under --strict-paths, instead of saying
> "/pub/scm and everything under it is OK"?
> Only if --strict-paths is set, otherwise it works as usual. It's documented in the man-page, but perhaps it's a bit too paranoid.
> I like the general direction this set is taking, but let's let > it simmer for a while. >
Ok. I'll take that to mean "hold off on the --server-root and --userdir patch for a while" then.
-- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231