Re: Internal WIKI Links do not work on WSL2 Debian

2022-01-19 Thread Alexander Burger
Hi Thorsten,

> today I figured out what seems to be the problem here:
> Somehow the URLs are built with the computername instead of the port:
> http://0.0.0.0:asuspn/?home
> 
> Replacing asuspn with 5000 all of these work, even from (say) Edge in
> Win10, when pil wiki server was started on WSL2:

This is really strange. Who is building this URL? Is it the PicoLisp server when
packing " ! *WikiPort
> -> 5000
> 
> Cheers
> Thorsten
> 
> PS
> I start the wiki the normal way
> $ pil wiki/main.l -main -go +
> *Socket
> 1877 = 40895 20654634285828729~
> : *Socket
> -> NIL
> : 1877 * 2022-01-19 00:00:37 admin
> 1883 = 57451 41629218673747370~

☺/ A!ex

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Internal WIKI Links do not work on WSL2 Debian

2022-01-19 Thread O.Hamann
Hi Thorsten, thanks for your solution!

Just to be curious:
Did you try 127.0.0.1:5000 instead of localhost:5000  ?
Same pn-replacing effect?

Regards,  Olaf


On 19.01.22 00:20, Thorsten Jolitz wrote:
> Hi List,
> today I figured out what seems to be the problem here: 
> Somehow the URLs are built with the computername instead of the port: 
> http://0.0.0.0:asuspn/?home
>
> Replacing asuspn with 5000 all of these work, even from (say) Edge in
> Win10, when pil wiki server was started on WSL2: 
>
> http://localhost:5000/?home
> http://localhost:5000/?help
> http://localhost:5000/?*Menu=+0&*Tab=+1&*ID=&*ID=$login
>
> with the last one, I can actually login, get a session id, and can
> navigate in the wiki and in my account. 
> Strange, the port looks ok in the server call, and on Archlinux the URLs
> are ok too, but on WSL2 the servername instead of port is used to build
> the URL.  
>
> $ pil wiki/main.l -main -go +
> (server (or (format (sys "PORT")) *WikiPort) "!wiki")
> ! *WikiPort
> -> 5000
>
> Cheers 
> Thorsten
>
> PS
> I start the wiki the normal way
> $ pil wiki/main.l -main -go +
> *Socket
> 1877 = 40895 20654634285828729~
> : *Socket
> -> NIL
> : 1877 * 2022-01-19 00:00:37 admin
> 1883 = 57451 41629218673747370~
> :
>
>
>
> Am Di., 28. Dez. 2021 um 23:42 Uhr schrieb Thorsten Jolitz
> mailto:tjol...@gmail.com>>:
>
> Hi Alex,
> yes, *ID is NIL when I debug it (see PS1). 
> I'm not sure how to debug (app), but all global vars except *PID
> seem to be NIL ...
>
> I think it's a WSL2 localhost problem, not a bug in PicoLisp. 
> Not too long ago I tried accessing the pil wiki server running on
> WSL2 from the Win10 Browser (say Edge), and that did not work at all 
> Now it seems they have fixed that ,what is very nice, but still not
> the same like pure Linux apparently. 
>
> Checking localhost everything seems normal (see PS 2) , but e.g this
> article describes a lot of problems:
> Fixing WSL2 localhost access issue - abdus.dev
>  
>
> Cheers
> Thorsten
>
> PS 1
> $  pil wiki/main.l -main -go +
> (and (== 'login *ID) (app))
> ! *ID
> -> NIL
> ! (setq *ID 123456789)   # naive try
> -> 123456789
>
> # naiv try did not work
> Can't load -2.html?*Menu=+0&*Tab=+1&*ID=+123456789&*ID=$login
>
> PS 2
> $ ping -a localhost
> PING localhost (127.0.0.1) 56(84) bytes of data.  
>
> # type c (peek current url) in W3M : wiki start page
> http://localhost:8080/
>
> # $ sudo cat /etc/hosts
> 127.0.0.1       localhost
> 127.0.1.1       xyz.localdomain      xyz
>
> Am Di., 28. Dez 2021 um 20:44 Uhr schrieb Alexander Burger
> mailto:a...@software-lab.de>>:
>
> Hi Thorsten, Olaf,
>
> > it's a session problem.
> > Port 8080 does not help, but I cross checked on Archlinux,
> when I first
> > click on the Login link, a session prefix is added to the
> internal links,
> > and after login, that session prefix is everywhere in the html
> source.
> > But on WSL2 that does not work somehow
>
> This is indeed strange. This logic should not depend on the system.
>
> I think the session is started after clicking on "Log in" in
>
>    (dm (html> . +Doc) ()
>       (and (== 'login *ID) (app))
>
> So somehow this check fails? The *ID value is passed on the URL,
> perhaps it is
> destroyed somehow? The browser?
>
> ☺/ A!ex
>
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de
> ?subject=Unsubscribe
>

--
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


PilCon tomorrow

2022-01-19 Thread Alexander Burger
Hi,

tomorrow at 16:00 UTC is PilCon again. Let's meet on

   https://meeting.itship.ch/PilCon

Besides discusing questions, and perhaps continuing with little programming
talks like last time, we could have a look at the new Discrete-Event Simulation
functions in @lib/simul.l (released in Pil21 yesterday). I prepared simple demos
(a modified version of the dining philosophers, and funny maze crawlers).

☺/ A!ex


-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Internal WIKI Links do not work on WSL2 Debian

2022-01-19 Thread Thorsten Jolitz
Hi Alex, Hi Olaf,
I would not say I found a "solution", just trying to figure out the cause.

I looks actually as designed:
in function baseHRef in http.l is this line

(or Port (if *SesId *Port *Port1))

and *Port1 is the Computername.


So apparently the landing page is build with these URLs with name instead
of port, and only once a session id is acquired, a numeric port is used.

These links are dead on the landing page, but when I enter the URLs  in the
browser, they work, e.g. http://localhost:5000/?help.

Once I enter this in the browser:
http://localhost:5000/?*Menu=+0&*Tab=+1&*ID=&*ID=$login , and login, all
the links work again on the page, since a *'SesId exists and they are build
with the port number (e.g. http://localhost:49651/62212780669042004~?Help)


I wonder how these links

http://localhost:asuspn/?help 

http://localhost:asuspn/?h ome

are supposed to work before a session id is acquired, but somehow they do
work on normal Linux.

Since (session P H) is called with the Port P (5000), why not use it for
URL construction (instead of *Port1)?


Cheers

Thorsten


PS

(out 2 (prinl *Pid " = " *Port " " *SesId))

1549 = 49651 62212780669042004~

(or "Port" (if *SesId *Port *Port1))

(or "Port" (if *SesId *Port *Port1))

(or "Port" (if *SesId *Port *Port1))

(or "Port" (if *SesId *Port *Port1))

(or *SesId (bye))

: 1549 * 2022-01-19 17:07:16 admin

Am Mi., 19. Jan. 2022 um 14:43 Uhr schrieb O.Hamann :

> Hi Thorsten, thanks for your solution!
>
> Just to be curious:
> Did you try 127.0.0.1:5000 instead of localhost:5000  ?
> Same pn-replacing effect?
>
> Regards,  Olaf
>
>
> On 19.01.22 00:20, Thorsten Jolitz wrote:
> > Hi List,
> > today I figured out what seems to be the problem here:
> > Somehow the URLs are built with the computername instead of the port:
> > http://0.0.0.0:asuspn/?home
> >
> > Replacing asuspn with 5000 all of these work, even from (say) Edge in
> > Win10, when pil wiki server was started on WSL2:
> >
> > http://localhost:5000/?home
> > http://localhost:5000/?help
> > http://localhost:5000/?*Menu=+0&*Tab=+1&*ID=&*ID=$login
> >
> > with the last one, I can actually login, get a session id, and can
> > navigate in the wiki and in my account.
> > Strange, the port looks ok in the server call, and on Archlinux the URLs
> > are ok too, but on WSL2 the servername instead of port is used to build
> > the URL.
> >
> > $ pil wiki/main.l -main -go +
> > (server (or (format (sys "PORT")) *WikiPort) "!wiki")
> > ! *WikiPort
> > -> 5000
> >
> > Cheers
> > Thorsten
> >
> > PS
> > I start the wiki the normal way
> > $ pil wiki/main.l -main -go +
> > *Socket
> > 1877 = 40895 20654634285828729~
> > : *Socket
> > -> NIL
> > : 1877 * 2022-01-19 00:00:37 admin
> > 1883 = 57451 41629218673747370~
> > :
> >
> >
> >
> > Am Di., 28. Dez. 2021 um 23:42 Uhr schrieb Thorsten Jolitz
> > mailto:tjol...@gmail.com>>:
> >
> > Hi Alex,
> > yes, *ID is NIL when I debug it (see PS1).
> > I'm not sure how to debug (app), but all global vars except *PID
> > seem to be NIL ...
> >
> > I think it's a WSL2 localhost problem, not a bug in PicoLisp.
> > Not too long ago I tried accessing the pil wiki server running on
> > WSL2 from the Win10 Browser (say Edge), and that did not work at all
> > Now it seems they have fixed that ,what is very nice, but still not
> > the same like pure Linux apparently.
> >
> > Checking localhost everything seems normal (see PS 2) , but e.g this
> > article describes a lot of problems:
> > Fixing WSL2 localhost access issue - abdus.dev
> > 
> >
> > Cheers
> > Thorsten
> >
> > PS 1
> > $  pil wiki/main.l -main -go +
> > (and (== 'login *ID) (app))
> > ! *ID
> > -> NIL
> > ! (setq *ID 123456789)   # naive try
> > -> 123456789
> >
> > # naiv try did not work
> > Can't load -2.html?*Menu=+0&*Tab=+1&*ID=+123456789&*ID=$login
> >
> > PS 2
> > $ ping -a localhost
> > PING localhost (127.0.0.1) 56(84) bytes of data.
> >
> > # type c (peek current url) in W3M : wiki start page
> > http://localhost:8080/
> >
> > # $ sudo cat /etc/hosts
> > 127.0.0.1   localhost
> > 127.0.1.1   xyz.localdomain  xyz
> >
> > Am Di., 28. Dez 2021 um 20:44 Uhr schrieb Alexander Burger
> > mailto:a...@software-lab.de>>:
> >
> > Hi Thorsten, Olaf,
> >
> > > it's a session problem.
> > > Port 8080 does not help, but I cross checked on Archlinux,
> > when I first
> > > click on the Login link, a session prefix is added to the
> > internal links,
> > > and after login, that session prefix is everywhere in the html
> > source.
> > > But on WSL2 that does not work somehow
> >
> > This is indeed strange. This logic should not depend on the
> system.
> >
> > I think th

Re: Internal WIKI Links do not work on WSL2 Debian

2022-01-19 Thread Alexander Burger
Hi Thorsten,

> I looks actually as designed:
> in function baseHRef in http.l is this line
> 
> (or Port (if *SesId *Port *Port1))
> 
> and *Port1 is the Computername.

Correct, though not the Computername.

IFF the PicoLisp server is started behind a httqGate, the "port" is the
application name. For example, on picolisp.com, the httpGate config file has a
line

   wiki 5000 app /home/app log/wiki pil21/pil wiki/main.l @lib/app.l -main 
patch.l -go -wait +

so that httpGate translates "wiki" in requests to 5000.

The question is how this happens in your setup:

*Port1 is assigned in the 'server' function from the "NAME" environment
variable. So I suspect $NAME is set in your env to the machine's name, and not
overridden by httpGate. That would explain it!

You could unset NAME in your shell before starting PicoLisp, or (even better)
use httpGate.

☺/ A!ex

-- 
UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe


Re: Internal WIKI Links do not work on WSL2 Debian

2022-01-19 Thread Thorsten Jolitz
Hi Alex,
yes, $NAME was the computername ("asuspn"), and by setting name to
   $ echo $NAME
   5000
everything works, I even get the wiki page with CSS then like in the real
wiki.
So, problem identified and solved, thanks!
Cheers
Thorsten


Am Mi., 19. Jan. 2022 um 17:56 Uhr schrieb Alexander Burger <
a...@software-lab.de>:

> Hi Thorsten,
>
> > I looks actually as designed:
> > in function baseHRef in http.l is this line
> >
> > (or Port (if *SesId *Port *Port1))
> >
> > and *Port1 is the Computername.
>
> Correct, though not the Computername.
>
> IFF the PicoLisp server is started behind a httqGate, the "port" is the
> application name. For example, on picolisp.com, the httpGate config file
> has a
> line
>
>wiki 5000 app /home/app log/wiki pil21/pil wiki/main.l @lib/app.l -main
> patch.l -go -wait +
>
> so that httpGate translates "wiki" in requests to 5000.
>
> The question is how this happens in your setup:
>
> *Port1 is assigned in the 'server' function from the "NAME" environment
> variable. So I suspect $NAME is set in your env to the machine's name, and
> not
> overridden by httpGate. That would explain it!
>
> You could unset NAME in your shell before starting PicoLisp, or (even
> better)
> use httpGate.
>
> ☺/ A!ex
>
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
>


Re: Internal WIKI Links do not work on WSL2 Debian

2022-01-19 Thread Thorsten Jolitz
Hi Olaf,
*"Did you try 127.0.0.1:5000  instead of
localhost:5000  ?"*
just as a documentation, my experience is that:

1) WSL2 / w3m : all of these work
http://localhost:5000
http://127.0.0.1:5000
http://0.0.0.0:5000

2) WIN10 / edge : only this works
http://localhost:5000

Cheers
Thorsten


Am Mi., 19. Jan. 2022 um 14:43 Uhr schrieb O.Hamann :

> Hi Thorsten, thanks for your solution!
>
> Just to be curious:
> Did you try 127.0.0.1:5000 instead of localhost:5000  ?
> Same pn-replacing effect?
>
> Regards,  Olaf
>
>
> On 19.01.22 00:20, Thorsten Jolitz wrote:
> > Hi List,
> > today I figured out what seems to be the problem here:
> > Somehow the URLs are built with the computername instead of the port:
> > http://0.0.0.0:asuspn/?home
> >
> > Replacing asuspn with 5000 all of these work, even from (say) Edge in
> > Win10, when pil wiki server was started on WSL2:
> >
> > http://localhost:5000/?home
> > http://localhost:5000/?help
> > http://localhost:5000/?*Menu=+0&*Tab=+1&*ID=&*ID=$login
> >
> > with the last one, I can actually login, get a session id, and can
> > navigate in the wiki and in my account.
> > Strange, the port looks ok in the server call, and on Archlinux the URLs
> > are ok too, but on WSL2 the servername instead of port is used to build
> > the URL.
> >
> > $ pil wiki/main.l -main -go +
> > (server (or (format (sys "PORT")) *WikiPort) "!wiki")
> > ! *WikiPort
> > -> 5000
> >
> > Cheers
> > Thorsten
> >
> > PS
> > I start the wiki the normal way
> > $ pil wiki/main.l -main -go +
> > *Socket
> > 1877 = 40895 20654634285828729~
> > : *Socket
> > -> NIL
> > : 1877 * 2022-01-19 00:00:37 admin
> > 1883 = 57451 41629218673747370~
> > :
> >
> >
> >
> > Am Di., 28. Dez. 2021 um 23:42 Uhr schrieb Thorsten Jolitz
> > mailto:tjol...@gmail.com>>:
> >
> > Hi Alex,
> > yes, *ID is NIL when I debug it (see PS1).
> > I'm not sure how to debug (app), but all global vars except *PID
> > seem to be NIL ...
> >
> > I think it's a WSL2 localhost problem, not a bug in PicoLisp.
> > Not too long ago I tried accessing the pil wiki server running on
> > WSL2 from the Win10 Browser (say Edge), and that did not work at all
> > Now it seems they have fixed that ,what is very nice, but still not
> > the same like pure Linux apparently.
> >
> > Checking localhost everything seems normal (see PS 2) , but e.g this
> > article describes a lot of problems:
> > Fixing WSL2 localhost access issue - abdus.dev
> > 
> >
> > Cheers
> > Thorsten
> >
> > PS 1
> > $  pil wiki/main.l -main -go +
> > (and (== 'login *ID) (app))
> > ! *ID
> > -> NIL
> > ! (setq *ID 123456789)   # naive try
> > -> 123456789
> >
> > # naiv try did not work
> > Can't load -2.html?*Menu=+0&*Tab=+1&*ID=+123456789&*ID=$login
> >
> > PS 2
> > $ ping -a localhost
> > PING localhost (127.0.0.1) 56(84) bytes of data.
> >
> > # type c (peek current url) in W3M : wiki start page
> > http://localhost:8080/
> >
> > # $ sudo cat /etc/hosts
> > 127.0.0.1   localhost
> > 127.0.1.1   xyz.localdomain  xyz
> >
> > Am Di., 28. Dez 2021 um 20:44 Uhr schrieb Alexander Burger
> > mailto:a...@software-lab.de>>:
> >
> > Hi Thorsten, Olaf,
> >
> > > it's a session problem.
> > > Port 8080 does not help, but I cross checked on Archlinux,
> > when I first
> > > click on the Login link, a session prefix is added to the
> > internal links,
> > > and after login, that session prefix is everywhere in the html
> > source.
> > > But on WSL2 that does not work somehow
> >
> > This is indeed strange. This logic should not depend on the
> system.
> >
> > I think the session is started after clicking on "Log in" in
> >
> >(dm (html> . +Doc) ()
> >   (and (== 'login *ID) (app))
> >
> > So somehow this check fails? The *ID value is passed on the URL,
> > perhaps it is
> > destroyed somehow? The browser?
> >
> > ☺/ A!ex
> >
> > --
> > UNSUBSCRIBE: mailto:picolisp@software-lab.de
> > ?subject=Unsubscribe
> >
>
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subjectUnsubscribe
>