tls_openssl.c: enable extra POSIX functionality to get PTHREAD_MUTEX_RECURSIVE

On some systems pthread_mutexattr_settype() and PTHREAD_MUTEX_RECURSIVE are
not available by default.
Either _XOPEN_SOURCE or _POSIX_C_SOURCE needs to be set to to the right level
before including any system include file in order to have them exposed.

Fixes the following compile error:

==
tls_openssl.c: In function 'dyn_create_function':
tls_openssl.c:91:2: warning: implicit declaration of function 'pthread_mutexattr_settype' [-Wimplicit-function-declaration]
  MUTEX_INIT(value->mutex);
  ^
tls_openssl.c:42:40: error: 'PTHREAD_MUTEX_RECURSIVE' undeclared (first use in this function)
  pthread_mutexattr_settype(&mutexAttr, PTHREAD_MUTEX_RECURSIVE);\
                                        ^
tls_openssl.c:91:2: note: in expansion of macro 'MUTEX_INIT'
  MUTEX_INIT(value->mutex);
  ^
tls_openssl.c:42:40: note: each undeclared identifier is reported only once for each function it appears in
  pthread_mutexattr_settype(&mutexAttr, PTHREAD_MUTEX_RECURSIVE);\
                                        ^
tls_openssl.c:91:2: note: in expansion of macro 'MUTEX_INIT'
  MUTEX_INIT(value->mutex);
  ^
tls_openssl.c: In function 'InitializeTLS':
tls_openssl.c:42:40: error: 'PTHREAD_MUTEX_RECURSIVE' undeclared (first use in this function)
  pthread_mutexattr_settype(&mutexAttr, PTHREAD_MUTEX_RECURSIVE);\
                                        ^
tls_openssl.c:156:5: note: in expansion of macro 'MUTEX_INIT'
     MUTEX_INIT(mutex_buf[i]);
     ^
tls_openssl.c: In function 'ssl_verify':
tls_openssl.c:177:7: warning: variable 'err' set but not used [-Wunused-but-set-variable]
   int err, i;
       ^
tls_openssl.c:176:14: warning: variable 'client' set but not used [-Wunused-but-set-variable]
   rfbClient *client;
              ^
make[3]: *** [tls_openssl.lo] Error 1
==

Signed-off-by: Floris Bos <bos@je-eigen-domein.nl>
pull/1/head
Floris Bos 9 years ago
parent aaee22aaa2
commit ac63d74364

@ -18,6 +18,10 @@
* USA.
*/
#ifndef _MSC_VER
#define _XOPEN_SOURCE 500
#endif
#include <rfb/rfbclient.h>
#include <errno.h>

Loading…
Cancel
Save