if (CA_ADAPTER_IP == tempInfo[index].adapter)
{
printf("Port: %d\n", tempInfo[index].port);
- }
- printf("Secured: %s\n\n", (tempInfo[index].flags & CA_SECURE) ? "true" : "false");
+ printf("Secured: %s flag : %x\n\n", (tempInfo[index].flags & CA_SECURE) ? "true" :
+ "false", tempInfo[index].flags);
- if (tempInfo[index].flags & CA_SECURE)
- {
- g_local_secure_port = tempInfo[index].port;
- printf("Secured: in global %d\n\n", g_local_secure_port);
+ if (tempInfo[index].flags & CA_SECURE)
+ {
+ g_local_secure_port = tempInfo[index].port;
+ printf("Secured: in global %d\n\n", g_local_secure_port);
+ }
}
}
g_unicastSocket = serverFD;
CAIPSetUnicastSocket(g_unicastSocket);
CAIPSetUnicastPort(g_unicastPort);
+ caglobals.ip.u4.port = *port;
+
OIC_LOG_V(DEBUG, TAG, "g_unicastPort: %u", g_unicastPort);
OIC_LOG_V(DEBUG, TAG, "g_unicastSocket: %d", g_unicastSocket);
OIC_LOG(DEBUG, TAG, "OUT");
g_multicastSocket = serverFD;
g_isMulticastServerStarted = true;
+
OIC_LOG_V(DEBUG, TAG, "gMulticastPort: %d", multicastPort);
OIC_LOG_V(DEBUG, TAG, "g_multicastSocket: %d", g_multicastSocket);
OIC_LOG(DEBUG, TAG, "OUT");
CAResult_t ret = CAIPStartUnicastServer("0.0.0.0", &unicastPort, false);
if (CA_STATUS_OK != ret)
{
- OIC_LOG_V(DEBUG, TAG, "Start unicast serv failed[%d]", ret);
+ OIC_LOG_V(ERROR, TAG, "Start unicast server failed[%d]", ret);
+ return ret;
}
ret = CAIPStartMulticastServer("0.0.0.0", "224.0.1.187", 5683);
if (CA_STATUS_OK != ret)
OIC_LOG(DEBUG, TAG, "IN");
close(g_unicastSocket);
g_unicastSocket = 0;
+ caglobals.ip.u4.port = 0;
OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
{
CAInterface_t *ifitem = (CAInterface_t *)u_arraylist_get(iflist, i);
- OICStrcpy(eps[j].addr, CA_INTERFACE_NAME_SIZE, ifitem->name);
+ unsigned char *addr= (unsigned char *) &(ifitem->ipv4addr);
+ snprintf(eps[j].addr, MAX_ADDR_STR_SIZE_CA, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
+
eps[j].flags = CA_IPV4;
eps[j].adapter = CA_ADAPTER_IP;
eps[j].interface = 0;
- eps[j].port = 0;
+ eps[j].port = caglobals.ip.u4.port;
j++;
}
Udp.begin((uint16_t ) *port);
gServerRunning = true;
g_unicastPort = *port;
+ caglobals.ip.u4.port = *port;
OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
CAResult_t ret = CAIPStartUnicastServer("0.0.0.0", &unicastPort, false);
if (CA_STATUS_OK != ret)
{
- OIC_LOG_V(DEBUG, TAG, "Start unicast serv failed[%d]", ret);
+ OIC_LOG_V(ERROR, TAG, "Start unicast server failed[%d]", ret);
+ return ret;
}
ret = CAIPStartMulticastServer("0.0.0.0", "224.0.1.187", 5683);
if (CA_STATUS_OK != ret)
Udp.stop();
gServerRunning = false;
+ caglobals.ip.u4.port = 0;
OIC_LOG(DEBUG, TAG, "OUT");
return CA_STATUS_OK;
}
{
CAInterface_t *ifitem = (CAInterface_t *)u_arraylist_get(iflist, i);
- OICStrcpy(eps[j].addr, CA_INTERFACE_NAME_SIZE, ifitem->name);
+ unsigned char *addr= (unsigned char *) &(ifitem->ipv4addr);
+ snprintf(eps[j].addr, MAX_ADDR_STR_SIZE_CA, "%d.%d.%d.%d", addr[0], addr[1], addr[2], addr[3]);
+
eps[j].flags = CA_IPV4;
eps[j].adapter = CA_ADAPTER_IP;
eps[j].interface = 0;
- eps[j].port = 0;
+ eps[j].port = caglobals.ip.u4.port;
j++;
}
OIC_LOG_V(DEBUG, TAG,
"socket summary: u6=%d, u6s=%d, u4=%d, u4s=%d, m6=%d, m6s=%d, m4=%d, m4s=%d",
- caglobals.ip.u6.fd, caglobals.ip.u6s.fd,
- caglobals.ip.u4.fd, caglobals.ip.u4s.fd,
- caglobals.ip.m6.fd, caglobals.ip.m6s.fd,
- caglobals.ip.m4.fd, caglobals.ip.m4s.fd);
+ caglobals.ip.u6.fd, caglobals.ip.u6s.fd, caglobals.ip.u4.fd, caglobals.ip.u4s.fd,
+ caglobals.ip.m6.fd, caglobals.ip.m6s.fd, caglobals.ip.m4.fd, caglobals.ip.m4s.fd);
+ OIC_LOG_V(DEBUG, TAG,
+ "port summary: u6 port=%d, u6s port=%d, u4 port=%d, u4s port=%d, m6 port=%d,"
+ "m6s port=%d, m4 port=%d, m4s port=%d",
+ caglobals.ip.u6.port, caglobals.ip.u6s.port, caglobals.ip.u4.port,
+ caglobals.ip.u4s.port, caglobals.ip.m6.port, caglobals.ip.m6s.port,
+ caglobals.ip.m4.port, caglobals.ip.m4s.port);
// create pipe for fast shutdown
CAInitializePipe();
CHECKFD(caglobals.ip.shutdownFds[0]);
}
uint32_t len = u_arraylist_length(iflist);
+ uint32_t length = len;
+
+#ifdef __WITH_DTLS__
+ //If DTLS is supported, each interface can support secure port as well
+ length = len * 2;
+#endif
- CAEndpoint_t *eps = (CAEndpoint_t *)OICCalloc(len, sizeof (CAEndpoint_t));
+ CAEndpoint_t *eps = (CAEndpoint_t *)OICCalloc(length, sizeof (CAEndpoint_t));
if (!eps)
{
OIC_LOG(ERROR, TAG, "Malloc Failed");
continue;
}
- OICStrcpy(eps[j].addr, CA_INTERFACE_NAME_SIZE, ifitem->name);
- eps[j].flags = ifitem->family == AF_INET6 ? CA_IPV6 : CA_IPV4;
eps[j].adapter = CA_ADAPTER_IP;
eps[j].interface = 0;
- eps[j].port = 0;
+
+ if (ifitem->family == AF_INET6)
+ {
+ eps[j].flags = CA_IPV6;
+ eps[j].port = caglobals.ip.u6.port;
+ }
+ else
+ {
+ eps[j].flags = CA_IPV4;
+ eps[j].port = caglobals.ip.u4.port;
+
+ unsigned char *addr= (unsigned char *) &(ifitem->ipv4addr);
+ snprintf(eps[j].addr, MAX_ADDR_STR_SIZE_CA, "%d.%d.%d.%d",
+ addr[0], addr[1], addr[2], addr[3]);
+ }
+
+#ifdef __WITH_DTLS__
+ j++;
+
+ eps[j].adapter = CA_ADAPTER_IP;
+ eps[j].interface = 0;
+
+ if (ifitem->family == AF_INET6)
+ {
+ eps[j].flags = CA_IPV6 | CA_SECURE;
+ eps[j].port = caglobals.ip.u6s.port;
+ }
+ else
+ {
+ eps[j].flags = CA_IPV4 | CA_SECURE;
+ eps[j].port = caglobals.ip.u4s.port;
+
+ unsigned char *addr= (unsigned char *) &(ifitem->ipv4addr);
+ snprintf(eps[j].addr, MAX_ADDR_STR_SIZE_CA, "%d.%d.%d.%d",
+ addr[0], addr[1], addr[2], addr[3]);
+ }
+#endif
j++;
}