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:5000/?help>
http://localhost:asuspn/?h <http://localhost:5000/?help>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 <[email protected]>:
> 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
> > <[email protected] <mailto:[email protected]>>:
> >
> > 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
> > <https://abdus.dev/posts/fixing-wsl2-localhost-access-issue/>
> >
> > 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
> > <[email protected] <mailto:[email protected]>>:
> >
> > 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:[email protected]
> > <mailto:[email protected]>?subject=Unsubscribe
> >
>
> --
> UNSUBSCRIBE: mailto:[email protected]?subjectUnsubscribe
>