projects
/
yaz-moved-to-github.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
For SRU sarchRetrieve responses option resultSetId is set for result set
[yaz-moved-to-github.git]
/
src
/
tcpip.c
diff --git
a/src/tcpip.c
b/src/tcpip.c
index
af2d813
..
8ffdfe8
100644
(file)
--- a/
src/tcpip.c
+++ b/
src/tcpip.c
@@
-1,8
+1,8
@@
/*
/*
- * Copyright (C) 1995-2006, Index Data ApS
+ * Copyright (C) 1995-2007, Index Data ApS
* See the file LICENSE for details.
*
* See the file LICENSE for details.
*
- * $Id: tcpip.c,v 1.28 2006-09-06 15:01:53 adam Exp $
+ * $Id: tcpip.c,v 1.34 2007-01-19 10:28:42 adam Exp $
*/
/**
* \file tcpip.c
*/
/**
* \file tcpip.c
@@
-26,10
+26,17
@@
#endif
#ifdef WIN32
#endif
#ifdef WIN32
+
+/* VS 2003 or later has getaddrinfo; older versions do not */
#include <winsock2.h>
#include <winsock2.h>
+#if _MSC_VER >= 1300
#include <ws2tcpip.h>
#define HAVE_GETADDRINFO 1
#else
#include <ws2tcpip.h>
#define HAVE_GETADDRINFO 1
#else
+#define HAVE_GETADDRINFO 0
+#endif
+
+#else
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
@@
-322,10
+329,15
@@
void *tcpip_straddr(COMSTACK h, const char *str)
sp->ai = tcpip_getaddrinfo(str, port);
if (sp->ai && h->state == CS_ST_UNBND)
{
sp->ai = tcpip_getaddrinfo(str, port);
if (sp->ai && h->state == CS_ST_UNBND)
{
- int s;
+ int s = -1;
struct addrinfo *ai = sp->ai;
struct addrinfo *ai = sp->ai;
- s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
- if (s < 0)
+ for (; ai; ai = ai->ai_next)
+ {
+ s = socket(ai->ai_family, ai->ai_socktype, ai->ai_protocol);
+ if (s != -1)
+ break;
+ }
+ if (s == -1)
return 0;
h->iofile = s;
return 0;
h->iofile = s;
@@
-354,7
+366,7
@@
void *tcpip_straddr(COMSTACK h, const char *str)
return 0;
h->iofile = s;
return 0;
h->iofile = s;
- if (!tcpip_set_blocking(h, h->blocking))
+ if (!tcpip_set_blocking(h, h->flags))
return 0;
}
return &sp->addr;
return 0;
}
return &sp->addr;
@@
-482,8
+494,8
@@
int tcpip_rcvconnect(COMSTACK h)
#if HAVE_OPENSSL_SSL_H
if (h->type == ssl_type && !sp->ctx)
{
#if HAVE_OPENSSL_SSL_H
if (h->type == ssl_type && !sp->ctx)
{
+ SSL_library_init();
SSL_load_error_strings();
SSL_load_error_strings();
- SSLeay_add_all_algorithms();
sp->ctx = sp->ctx_alloc = SSL_CTX_new (SSLv23_method());
if (!sp->ctx)
sp->ctx = sp->ctx_alloc = SSL_CTX_new (SSLv23_method());
if (!sp->ctx)
@@
-560,7
+572,7
@@
static int tcpip_bind(COMSTACK h, void *address, int mode)
#ifdef WIN32
BOOL one = 1;
#else
#ifdef WIN32
BOOL one = 1;
#else
- unsigned long one = 1;
+ int one = 1;
#endif
#if HAVE_GETADDRINFO
#endif
#if HAVE_GETADDRINFO
@@
-574,8
+586,8
@@
static int tcpip_bind(COMSTACK h, void *address, int mode)
#if HAVE_OPENSSL_SSL_H
if (h->type == ssl_type && !sp->ctx)
{
#if HAVE_OPENSSL_SSL_H
if (h->type == ssl_type && !sp->ctx)
{
+ SSL_library_init();
SSL_load_error_strings();
SSL_load_error_strings();
- SSLeay_add_all_algorithms();
sp->ctx = sp->ctx_alloc = SSL_CTX_new (SSLv23_method());
if (!sp->ctx)
sp->ctx = sp->ctx_alloc = SSL_CTX_new (SSLv23_method());
if (!sp->ctx)