summaryrefslogtreecommitdiff
path: root/src/lib/dlt_client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/dlt_client.c')
-rw-r--r--src/lib/dlt_client.c39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/lib/dlt_client.c b/src/lib/dlt_client.c
index c032fd4..af380e4 100644
--- a/src/lib/dlt_client.c
+++ b/src/lib/dlt_client.c
@@ -428,27 +428,32 @@ DltReturnValue dlt_client_connect(DltClient *client, int verbose)
return DLT_RETURN_ERROR;
}
- mreq.imr_multiaddr.s_addr = inet_addr(client->servIP);
- if (mreq.imr_multiaddr.s_addr == (in_addr_t)-1)
- {
- dlt_vlog(LOG_ERR,
- "%s: ERROR: server address not not valid %s\n",
- __func__,
- client->servIP);
+ char delimiter[] = ",";
+ char* servIP = strtok(client->servIP, delimiter);
- return DLT_RETURN_ERROR;
- }
+ while(servIP != NULL) {
+ mreq.imr_multiaddr.s_addr = inet_addr(servIP);
+ if (mreq.imr_multiaddr.s_addr == (in_addr_t)-1)
+ {
+ dlt_vlog(LOG_ERR,
+ "%s: ERROR: server address not not valid %s\n",
+ __func__,
+ servIP);
- if (setsockopt(client->sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&mreq, sizeof(mreq)) < 0)
- {
- dlt_vlog(LOG_ERR,
- "%s: ERROR: setsockopt add membership failed: %s\n",
- __func__,
- strerror(errno));
+ return DLT_RETURN_ERROR;
+ }
- return DLT_RETURN_ERROR;
- }
+ if (setsockopt(client->sock, IPPROTO_IP, IP_ADD_MEMBERSHIP, (char *)&mreq, sizeof(mreq)) < 0)
+ {
+ dlt_vlog(LOG_ERR,
+ "%s: ERROR: setsockopt add membership failed: %s\n",
+ __func__,
+ strerror(errno));
+ return DLT_RETURN_ERROR;
+ }
+ servIP = strtok(NULL, delimiter);
+ }
receiver_type = DLT_RECEIVE_UDP_SOCKET;
break;