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 <o.ham...@gmx.net>:

> 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
> > <tjol...@gmail.com <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
> >     <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
> >     <a...@software-lab.de <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
> >         <mailto:picolisp@software-lab.de>?subject=Unsubscribe
> >
>
> --
> UNSUBSCRIBE: mailto:picolisp@software-lab.de?subjectUnsubscribe
>

Reply via email to