lynx-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: lynx-dev Can not access remote host


From: Klaus Weide
Subject: Re: lynx-dev Can not access remote host
Date: Wed, 23 Dec 1998 16:50:41 -0600 (CST)

On Wed, 23 Dec 1998, Olaf Jörk wrote:

> Subject: Re: lynx-dev Can not access remote host
> 
> Helo,
> Thanks for yout first hints. Here's the 2nd try with more
> information.
> 
> I've got a problem with the compiled Lynx Version 2.8rel.2 (1998).
> I used: gcc with -DHAVE_CONFIG_H  \
>           -DSVR4_BSDSELECT -O2 -DSVR4 \
>           -DXMOSAIC_HACK -DACCESS_AUTH ...
> 
> configure said:
> checking if you want to fork NSL requests... no
> 
> I compiled lynx twice, with -DSVR4_BSDSELECT and without. Same result.
> 
> It will not access pages on remote servers. The machine is running
> a svr4, exactly SINIX-L 5.41 D0005 MX300-Intel (386)
> The described problem with SunOS etc. was pointless. The DNS address
> resolution is ok. The WWW-Server (Apache) do not log the connection.
[ ... ]
> HTTP: Unable to connect to remote host for
> `http://www1.lag.justiz.sachsen.de/index.html'
> (errno = 150).
> 
> #####################################################################
> /usr/include/sys/errno.h tells:
> 
> # In addition, portions of such source code were derived from Berkeley
> # 4.3 BSD under license from the Regents of the University of...
> 
> /* BSD Networking Software */
>         /* argument errors */
> 
> #define EINPROGRESS     150    /* operation now in progress */
> 
> The error is written by a connect-call.
> That means, the socket isn't completely established, because it is
> in non-blocking mode. A subsequent select(3N) will do the rest, if
> it is used to write data.
> 
> #####################################################################


It is expected that the first connect() call in HTDoConnect may return
-1/EINPROGRESS.  But the second connect() call (in the while loop)
should not return -1/EINPROGRESS, since it should only be reached
after select() has told as that the socket is ready now.  Is that what
happens?  Can you somehow trace what the select() returns?

Unfortunately errno is not written to trace output immediately after
each system call; so it is not clear where the EINPROGRESS is
generated.  Inserting calls to HTInetStatus() in the right places
should help figure out what's going on.  Or better
   if (... < 0) {
        int saved_errno = errno;
        HTInetStatus("blahblah");
        errno = saved_errno;
   }
to make sure HTInetStatus() doesn't mess up errno.


    Klaus


reply via email to

[Prev in Thread] Current Thread [Next in Thread]