static Persistent<String> name_symbol;
static Persistent<String> version_symbol;
-static inline const char *errno_string(int errorno) {
-#define ERRNO_CASE(e) case e: return #e;
- switch (errorno) {
-#ifdef EACCES
- ERRNO_CASE(EACCES);
-#endif
-
-#ifdef EADDRINUSE
- ERRNO_CASE(EADDRINUSE);
-#endif
-
-#ifdef EADDRNOTAVAIL
- ERRNO_CASE(EADDRNOTAVAIL);
-#endif
-
-#ifdef EAFNOSUPPORT
- ERRNO_CASE(EAFNOSUPPORT);
-#endif
-
-#ifdef EAGAIN
- ERRNO_CASE(EAGAIN);
-#else
-# ifdef EWOULDBLOCK
- ERRNO_CASE(EWOULDBLOCK);
-# endif
-#endif
-
-#ifdef EALREADY
- ERRNO_CASE(EALREADY);
-#endif
-
-#ifdef EBADF
- ERRNO_CASE(EBADF);
-#endif
-
-#ifdef EBADMSG
- ERRNO_CASE(EBADMSG);
-#endif
-
-#ifdef EBUSY
- ERRNO_CASE(EBUSY);
-#endif
-
-#ifdef ECANCELED
- ERRNO_CASE(ECANCELED);
-#endif
-
-#ifdef ECHILD
- ERRNO_CASE(ECHILD);
-#endif
-
-#ifdef ECONNABORTED
- ERRNO_CASE(ECONNABORTED);
-#endif
-
-#ifdef ECONNREFUSED
- ERRNO_CASE(ECONNREFUSED);
-#endif
-
-#ifdef ECONNRESET
- ERRNO_CASE(ECONNRESET);
-#endif
-
-#ifdef EDEADLK
- ERRNO_CASE(EDEADLK);
-#endif
-
-#ifdef EDESTADDRREQ
- ERRNO_CASE(EDESTADDRREQ);
-#endif
-
-#ifdef EDOM
- ERRNO_CASE(EDOM);
-#endif
-
-#ifdef EDQUOT
- ERRNO_CASE(EDQUOT);
-#endif
-
-#ifdef EEXIST
- ERRNO_CASE(EEXIST);
-#endif
-
-#ifdef EFAULT
- ERRNO_CASE(EFAULT);
-#endif
-
-#ifdef EFBIG
- ERRNO_CASE(EFBIG);
-#endif
-
-#ifdef EHOSTUNREACH
- ERRNO_CASE(EHOSTUNREACH);
-#endif
-
-#ifdef EIDRM
- ERRNO_CASE(EIDRM);
-#endif
-
-#ifdef EILSEQ
- ERRNO_CASE(EILSEQ);
-#endif
-
-#ifdef EINPROGRESS
- ERRNO_CASE(EINPROGRESS);
-#endif
-
-#ifdef EINTR
- ERRNO_CASE(EINTR);
-#endif
-
-#ifdef EINVAL
- ERRNO_CASE(EINVAL);
-#endif
-
-#ifdef EIO
- ERRNO_CASE(EIO);
-#endif
-
-#ifdef EISCONN
- ERRNO_CASE(EISCONN);
-#endif
-
-#ifdef EISDIR
- ERRNO_CASE(EISDIR);
-#endif
-
-#ifdef ELOOP
- ERRNO_CASE(ELOOP);
-#endif
-
-#ifdef EMFILE
- ERRNO_CASE(EMFILE);
-#endif
-
-#ifdef EMLINK
- ERRNO_CASE(EMLINK);
-#endif
-
-#ifdef EMSGSIZE
- ERRNO_CASE(EMSGSIZE);
-#endif
-
-#ifdef EMULTIHOP
- ERRNO_CASE(EMULTIHOP);
-#endif
-
-#ifdef ENAMETOOLONG
- ERRNO_CASE(ENAMETOOLONG);
-#endif
-
-#ifdef ENETDOWN
- ERRNO_CASE(ENETDOWN);
-#endif
-
-#ifdef ENETRESET
- ERRNO_CASE(ENETRESET);
-#endif
-
-#ifdef ENETUNREACH
- ERRNO_CASE(ENETUNREACH);
-#endif
-
-#ifdef ENFILE
- ERRNO_CASE(ENFILE);
-#endif
-
-#ifdef ENOBUFS
- ERRNO_CASE(ENOBUFS);
-#endif
-
-#ifdef ENODATA
- ERRNO_CASE(ENODATA);
-#endif
-
-#ifdef ENODEV
- ERRNO_CASE(ENODEV);
-#endif
-
-#ifdef ENOENT
- ERRNO_CASE(ENOENT);
-#endif
-
-#ifdef ENOEXEC
- ERRNO_CASE(ENOEXEC);
-#endif
-
-#ifdef ENOLCK
- ERRNO_CASE(ENOLCK);
-#endif
-
-#ifdef ENOLINK
- ERRNO_CASE(ENOLINK);
-#endif
-
-#ifdef ENOMEM
- ERRNO_CASE(ENOMEM);
-#endif
-
-#ifdef ENOMSG
- ERRNO_CASE(ENOMSG);
-#endif
-
-#ifdef ENOPROTOOPT
- ERRNO_CASE(ENOPROTOOPT);
-#endif
-
-#ifdef ENOSPC
- ERRNO_CASE(ENOSPC);
-#endif
-
-#ifdef ENOSR
- ERRNO_CASE(ENOSR);
-#endif
-
-#ifdef ENOSTR
- ERRNO_CASE(ENOSTR);
-#endif
-
-#ifdef ENOSYS
- ERRNO_CASE(ENOSYS);
-#endif
-
-#ifdef ENOTCONN
- ERRNO_CASE(ENOTCONN);
-#endif
-
-#ifdef ENOTDIR
- ERRNO_CASE(ENOTDIR);
-#endif
-
-#ifdef ENOTEMPTY
- ERRNO_CASE(ENOTEMPTY);
-#endif
-
-#ifdef ENOTSOCK
- ERRNO_CASE(ENOTSOCK);
-#endif
-
-#ifdef ENOTSUP
- ERRNO_CASE(ENOTSUP);
-#else
-# ifdef EOPNOTSUPP
- ERRNO_CASE(EOPNOTSUPP);
-# endif
-#endif
-
-#ifdef ENOTTY
- ERRNO_CASE(ENOTTY);
-#endif
-
-#ifdef ENXIO
- ERRNO_CASE(ENXIO);
-#endif
-
-
-#ifdef EOVERFLOW
- ERRNO_CASE(EOVERFLOW);
-#endif
-
-#ifdef EPERM
- ERRNO_CASE(EPERM);
-#endif
-
-#ifdef EPIPE
- ERRNO_CASE(EPIPE);
-#endif
-
-#ifdef EPROTO
- ERRNO_CASE(EPROTO);
-#endif
-
-#ifdef EPROTONOSUPPORT
- ERRNO_CASE(EPROTONOSUPPORT);
-#endif
-
-#ifdef EPROTOTYPE
- ERRNO_CASE(EPROTOTYPE);
-#endif
-
-#ifdef ERANGE
- ERRNO_CASE(ERANGE);
-#endif
-
-#ifdef EROFS
- ERRNO_CASE(EROFS);
-#endif
-
-#ifdef ESPIPE
- ERRNO_CASE(ESPIPE);
-#endif
-
-#ifdef ESRCH
- ERRNO_CASE(ESRCH);
-#endif
-
-#ifdef ESTALE
- ERRNO_CASE(ESTALE);
-#endif
-
-#ifdef ETIME
- ERRNO_CASE(ETIME);
-#endif
-
-#ifdef ETIMEDOUT
- ERRNO_CASE(ETIMEDOUT);
-#endif
-
-#ifdef ETXTBSY
- ERRNO_CASE(ETXTBSY);
-#endif
-
-#ifdef EXDEV
- ERRNO_CASE(EXDEV);
-#endif
-
- default: return "";
- }
-}
-
-
-
static int verify_callback(int ok, X509_STORE_CTX *ctx) {
return(1); // Ignore errors by now. VerifyPeer will catch them by using SSL_get_verify_result.