Commit ad943e4c authored by Ian Craggs's avatar Ian Craggs

Merge branch 'fixes' into develop

Conflicts:
	src/Socket.c
parents 1f91546b 89d2c5fc
language: c
compiler:
- gcc
- clang
os:
- linux
- osx
script:
- make
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
<property name="libname.async" value="mqttv3a" /> <property name="libname.async" value="mqttv3a" />
<property name="libname.async.ssl" value="mqttv3as" /> <property name="libname.async.ssl" value="mqttv3as" />
<property name="ssl" value="yes" /> <property name="ssl" value="yes" />
<property name="windows.openssl.folder" value="c:\openssl\bin" />
<property name="test.hostname" value="iot.eclipse.org"/> <property name="test.hostname" value="iot.eclipse.org"/>
<property name="test.port" value="18883"/> <property name="test.port" value="18883"/>
<if> <if>
...@@ -127,7 +128,7 @@ ...@@ -127,7 +128,7 @@
<arg value="${aTest}.exe" /> <arg value="${aTest}.exe" />
<arg value="--hostname" /> <arg value="--hostname" />
<arg value="${test.hostname}" /> <arg value="${test.hostname}" />
<env key="PATH" path="${output.folder}" /> <env key="PATH" path="${output.folder};${windows.openssl.folder}" />
</exec> </exec>
</then> </then>
<else> <else>
......
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2009, 2014 IBM Corp. * Copyright (c) 2009, 2016 IBM Corp.
* *
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
* Contributors: * Contributors:
* Ian Craggs - initial API and implementation and/or initial documentation * Ian Craggs - initial API and implementation and/or initial documentation
* Ian Craggs - async client updates * Ian Craggs - async client updates
* Ian Craggs - fix for bug 484496
*******************************************************************************/ *******************************************************************************/
/** /**
...@@ -73,8 +74,8 @@ int pstopen(void **handle, const char* clientID, const char* serverURI, void* co ...@@ -73,8 +74,8 @@ int pstopen(void **handle, const char* clientID, const char* serverURI, void* co
/* Note that serverURI=address:port, but ":" not allowed in Windows directories */ /* Note that serverURI=address:port, but ":" not allowed in Windows directories */
perserverURI = malloc(strlen(serverURI) + 1); perserverURI = malloc(strlen(serverURI) + 1);
strcpy(perserverURI, serverURI); strcpy(perserverURI, serverURI);
ptraux = strstr(perserverURI, ":"); while ((ptraux = strstr(perserverURI, ":")) != NULL)
*ptraux = '-' ; *ptraux = '-' ;
/* consider '/' + '-' + '\0' */ /* consider '/' + '-' + '\0' */
clientDir = malloc(strlen(dataDir) + strlen(clientID) + strlen(perserverURI) + 3); clientDir = malloc(strlen(dataDir) + strlen(clientID) + strlen(perserverURI) + 3);
......
/******************************************************************************* /*******************************************************************************
* Copyright (c) 2009, 2014 IBM Corp. * Copyright (c) 2009, 2016 IBM Corp.
* *
* All rights reserved. This program and the accompanying materials * All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0 * are made available under the terms of the Eclipse Public License v1.0
...@@ -13,6 +13,7 @@ ...@@ -13,6 +13,7 @@
* Contributors: * Contributors:
* Ian Craggs - initial implementation and documentation * Ian Craggs - initial implementation and documentation
* Ian Craggs - async client updates * Ian Craggs - async client updates
* Ian Craggs - fix for bug 484496
*******************************************************************************/ *******************************************************************************/
/** /**
...@@ -601,6 +602,7 @@ int Socket_new(char* addr, int port, int* sock) ...@@ -601,6 +602,7 @@ int Socket_new(char* addr, int port, int* sock)
FUNC_ENTRY; FUNC_ENTRY;
*sock = -1; *sock = -1;
memset(&address6, '\0', sizeof(address6));
if (addr[0] == '[') if (addr[0] == '[')
++addr; ++addr;
...@@ -609,13 +611,10 @@ int Socket_new(char* addr, int port, int* sock) ...@@ -609,13 +611,10 @@ int Socket_new(char* addr, int port, int* sock)
{ {
struct addrinfo* res = result; struct addrinfo* res = result;
/* prefer ip4 addresses */
while (res) while (res)
{ { /* prefer ip4 addresses */
if (res->ai_family == AF_INET) if (res->ai_family == AF_INET || res->ai_next == NULL)
{
break; break;
}
res = res->ai_next; res = res->ai_next;
} }
...@@ -627,7 +626,7 @@ int Socket_new(char* addr, int port, int* sock) ...@@ -627,7 +626,7 @@ int Socket_new(char* addr, int port, int* sock)
{ {
address6.sin6_port = htons(port); address6.sin6_port = htons(port);
address6.sin6_family = family = AF_INET6; address6.sin6_family = family = AF_INET6;
address6.sin6_addr = ((struct sockaddr_in6*)(res->ai_addr))->sin6_addr; memcpy(&address6.sin6_addr, &((struct sockaddr_in6*)(res->ai_addr))->sin6_addr, sizeof(address6.sin6_addr));
} }
else else
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment