[gopher] Motsognir question

Mateusz Viste mateusz at viste.fr
Tue Dec 29 08:05:47 UTC 2015


On 29/12/2015 08:43, Kim Holviala wrote:
> Offtopic: -10C here and car was completely frozen this morning :D

+12C here. I think I will go for some sunbathing later today.

> I just checked the Gopherniucs code, and it first parses and fixes the selector and then does a chdir() to that selector directory before continuing. So chdir() is always done, even for requests that don't need it

Actually that's exactly what I decided to do as well. Makes the codeflow 
simpler, and the behaviour consistent in all possible situations - and 
there are quite plenty of them: direct directory lookup, standalone 
cgi/php application, local gophermap, global gophermap, gophermap with 
multiple dynamic subgophermaps, etc...

Mateusz



>> On 29 Dec 2015, at 09:30, Mateusz Viste <mateusz at viste.fr> wrote:
>>
>> Done:
>>
>> http://sourceforge.net/p/motsognir/code/HEAD/tree/trunk/
>>
>> ("Download snapshot")
>>
>> This latest version should solve both your troubles:
>> - it makes gophermaps resolve relative paths to dynamic subgophermap (ie. you can use now =./script.php entries in your gophermaps)
>> - when executing a CGI/PHP script, it makes sure to set the 'working directory' to either where the parent gophermap is (if called from within a gophermap), or where the script itself is.
>>
>> I hope you will find these changes useful.
>>
>> cheers,
>> Mateusz
>>
>>
>>
>> On 29/12/2015 06:26, Mateusz Viste wrote:
>>> Oh, sorry, I missed the fact that your problem was two-fold :)
>>> Indeed, my latest patch is simply setting the current working directory
>>> for executed scripts, but the gophermap still needs to find them by
>>> their absolute path.
>>>
>>> I will add this today, so gophermaps will be able to locate scripts
>>> using their relative path.
>>>
>>> BTW, in the special case that a script is called by a gophermap (as
>>> opposed to being called by the user agent directly), I believe it would
>>> make more sense to set the current working directory to where the
>>> gophermap is, not where the script is. What do you think?
>>>
>>> say, I have a gophermap in /mystuff, that calls the inline script
>>> /cgi-bin/output.cgi - in this case, I'd rather expect the current
>>> working directory of the script to be set to /mystuff, instead of
>>> /cgi-bin/. Do you agree on this?
>>>
>>> Mateusz
>>>
>>>
>>>
>>>
>>> On 28/12/2015 22:58, Martin Kukac wrote:
>>>> Hello Mateusz,
>>>>
>>>> thanks a lot, that solved one part of my original question. Indeed PHP
>>>> scripts now have working directory set to the same directory they are
>>>> saved in. How about the gophermap itself? When I use = to insert result
>>>> of executed script, I have to specify the complete path.
>>>>
>>>> It's not a big deal, it just would be more friendly if Motsognir was by
>>>> default searching in the same directory, where the gophermap is (when I
>>>> use =./somescript.php).
>>>>
>>>> Thanks.
>>>>
>>>> Martin
>>>>
>>>> On 12/28/2015 08:07 PM, Mateusz Viste wrote:
>>>>> Hello Martin,
>>>>>
>>>>> It's done. Now Motsognir will run CGI and PHP scripts from within the
>>>>> directory where the given script resides. You will find the most recent
>>>>> release on Motsognir's SVN, but you can just as well simply fetch the
>>>>> tarball from sourceforge's interface:
>>>>> http://sourceforge.net/p/motsognir/code/HEAD/tree/trunk/
>>>>>
>>>>> ("Download snapshot")
>>>>>
>>>>> I didn't release a new "official" version for that yet, since maybe some
>>>>> other minor things will go in it.
>>>>>
>>>>> Let me know if you have any troubles deploying this latest version.
>>>>>
>>>>> Mateusz
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On 28/12/2015 16:33, Martin Kukac wrote:
>>>>>> Thanks a lot! This will actually be the very first time I will update
>>>>>> already installed gopher server :-)
>>>>>>
>>>>>> At the moment I can't tell any more suggestions, but that may change as
>>>>>> I will progress in modyfying gophermaps.
>>>>>>
>>>>>> Martin
>>>>>>
>>>>>> On 12/28/2015 04:06 PM, Mateusz Viste wrote:
>>>>>>> Hi Martin,
>>>>>>>
>>>>>>> Nice to hear you use Motsognir!
>>>>>>>
>>>>>>> The current path (pwd) is changed to / when Motsognir daemonize
>>>>>>> itself,
>>>>>>> and it is never changed. It is not a bug - it's a (lack of) feature ;)
>>>>>>>
>>>>>>> Switching the "current directory" to the script's location just before
>>>>>>> executing it sounds like a harmless thing to do, and it would
>>>>>>> definitely
>>>>>>> make your life easier. I will write a patch for that today, and let
>>>>>>> you
>>>>>>> know when it's ready.
>>>>>>>
>>>>>>> By any means, let me know should you see any other other perfectible
>>>>>>> points in Motsognir, or need help with some particular items, I'll be
>>>>>>> happy to help.
>>>>>>>
>>>>>>> cheers,
>>>>>>> Mateusz
>>
>>
>>
>> _______________________________________________
>> Gopher-Project mailing list
>> Gopher-Project at lists.alioth.debian.org
>> http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/gopher-project
>>





More information about the Gopher-Project mailing list