Slash after /about

Dilyan Palauzov Dilyan.Palauzov at aegee.org
Wed Jan 30 18:53:45 CET 2019


Hello René,

in case of cgit /repo/about/ and /repo/about are the same, except the latter causes a redirect to the former.

I propose removing the redirect and handling them as equal.

Regards
  Дилян

On January 29, 2019 7:58:26 PM GMT+01:00, "René Neumann" <lists at necoro.eu> wrote:
>Hi,
>
>without saying anything about the particular change, I find  the 
>behavior of thttpd in this regard to be slighly irritating: I know more
>
>than one software, where 'bar/foo' and 'bar/foo/' might represent two 
>different things (mostly the former being 'service bar with argument 
>foo' and the latter being 'service bar/foo with an empty argument').
>
>- René
>
>On 29.01.19 10:21, Дилян Палаузов wrote:
>> Hello,
>> 
>> For CGI I use thttpd and it tends to remove terminating slashes in
>the requests.
>> 
>> cgit wants to have slash after about/ .
>> 
>> So they do not work together, endless loop happens.  Proposed fix:
>> 
>> diff --git a/cmd.c b/cmd.c
>> --- a/cmd.c
>> +++ b/cmd.c
>> @@ -40,16 +40,7 @@ static void atom_fn(void)
>>   static void about_fn(void)
>>   {
>>          if (ctx.repo) {
>> -               size_t path_info_len = ctx.env.path_info ?
>strlen(ctx.env.path_info) : 0;
>> -               if (!ctx.qry.path &&
>> -                   ctx.qry.url[strlen(ctx.qry.url) - 1] != '/' &&
>> -                   (!path_info_len ||
>ctx.env.path_info[path_info_len - 1] != '/')) {
>> -                       char *currenturl = cgit_currenturl();
>> -                       char *redirect = fmtalloc("%s/", currenturl);
>> -                       cgit_redirect(redirect, true);
>> -                       free(currenturl);
>> -                       free(redirect);
>> -               } else if (ctx.repo->readme.nr)
>> +               if (ctx.repo->readme.nr)
>>                          cgit_print_repo_readme(ctx.qry.path);
>>                  else if (ctx.repo->homepage)
>>                          cgit_redirect(ctx.repo->homepage, false);
>> 
>> 
>> 
>> Apart of this the alphabetical sort order of the options in cgitrc.5
>is violated by case-sensitive-sort, it shall not be
>> between cache-size and cache-scanrc-ttl .
>> 
>> Regards
>>    Дилян
>> 
>> _______________________________________________
>> CGit mailing list
>> CGit at lists.zx2c4.com
>> https://lists.zx2c4.com/mailman/listinfo/cgit
>> 
>_______________________________________________
>CGit mailing list
>CGit at lists.zx2c4.com
>https://lists.zx2c4.com/mailman/listinfo/cgit


More information about the CGit mailing list