Message: 3
Date: Fri, 10 Jan 2014 15:27:10 +0100
From: Michal Trojnara <[email protected]>
To: [email protected]
Subject: Re: [stunnel-users] connect error 0 running on ARM platform
Message-ID: <[email protected]>
Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"

On 01/09/2014 06:02 PM, FX35 wrote:
  Running stunnel 4.56 or 5.00 on an ARM platform (ARM926EJ) with Linux
2.6.36.4, I encounter the following error : the call to connect()
return -1, but errno is set to 0 !

  If stunnel is configured to use fork mode instead of pthread mode,
the problem disapear.

  So it seems there is a problem, cross-compiling the program, with
errno or __errno_location() in the program generated with pthread.

  I add the definition of _REENTRANT, without success ...

(See $H1 at http://pauillac.inria.fr/~xleroy/linuxthreads/faq.html)

  Is somebody meet the same error ?

The errno definition in the Android framework (as an example of
Linux/ARM platform) is:

     /* internal function returning the address of the thread-specific
     errno */
     extern volatile int*   __errno(void);

     /* a macro expanding to the errno l-value */
     #define  errno   (*__errno())


It seems okay.

How do you reproduce this problem?  What are the stunnel debug logs when
it happens?

Mike

 Hello Mike,

It seems that the errno variable is not correcly set/updated in C library, using pthread mode.

 Sample:

   errno = -1;
   ret = connect(...);
   if( ret == -1 )
   {
      printf("errno=%d\n",errno);
   }

   will displays value -1 for errno, not EINPROGRESS or EWOULDBLOCK !

 errno is not updated ...

 So errno doen't reflect the real value.

 Map file of stunnel programm shows _errno_localion(), as you wrote.

 Perhaps is there a bug in uClib ?

 Here is the result of ldd command:

 # ldd stunnel
        libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x400f3000)
        libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x4013d000)
        libz.so.1 => /usr/lib/libz.so.1 (0x4027c000)
        libdl.so.0 => /lib/libdl.so.0 (0x4029b000)
        libutil.so.0 => /lib/libutil.so.0 (0x4009e000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x400a7000)
        libc.so.0 => /lib/libc.so.0 (0x402a6000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x400c6000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x4008f000)

 Thanks for help.

 Regards,

           FWX.
_______________________________________________
stunnel-users mailing list
[email protected]
https://www.stunnel.org/cgi-bin/mailman/listinfo/stunnel-users

Reply via email to