Hi,
Just remember that the patch had been verified in user mailing list.
I don't have any comment.
Thanks
Minh
On 28/5/20 12:55 pm, Thuan Tran wrote:
Hi David,
Please help ACK the review as you have verified the patch.
Thank you.
P/S: you can give comment if any.
Best Regards,
ThuanTr
-----Original Message-----
From: Thuan Tran <thuan.t...@dektech.com.au>
Sent: Tuesday, May 26, 2020 1:31 PM
To: Minh Hon Chau <minh.c...@dektech.com.au>; Gary Lee <gary....@dektech.com.au>
Cc: opensaf-devel@lists.sourceforge.net; Thuan Tran <thuan.t...@dektech.com.au>
Subject: [PATCH 1/1] dtm: bind configured node ip for socket to setup new
connection [#3192]
---
src/dtm/dtmnd/dtm_node_sockets.cc | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/src/dtm/dtmnd/dtm_node_sockets.cc
b/src/dtm/dtmnd/dtm_node_sockets.cc
index 41e16206b..7cb461810 100644
--- a/src/dtm/dtmnd/dtm_node_sockets.cc
+++ b/src/dtm/dtmnd/dtm_node_sockets.cc
@@ -241,6 +241,10 @@ int comm_socket_setup_new(DTM_INTERNODE_CB *dtms_cb,
struct addrinfo addr_criteria, *p; /* Criteria for address match */
char foreign_address_eth[INET6_ADDRSTRLEN + IFNAMSIZ];
int flag;
+ struct in_addr addr_ipv4;
+ struct sockaddr_in sockaddr;
+ struct in6_addr addr_ipv6;
+ struct sockaddr_in6 sockaddr6;
TRACE_ENTER();
/* Construct the serv address structure */
@@ -330,6 +334,30 @@ int comm_socket_setup_new(DTM_INTERNODE_CB *dtms_cb,
goto done;
}
+ if (dtms_cb->i_addr_family == AF_INET) {
+ if (inet_pton(AF_INET, dtms_cb->ip_addr.c_str(), &addr_ipv4) == 1) {
+ sockaddr.sin_family = AF_INET;
+ sockaddr.sin_port = 0;
+ sockaddr.sin_addr = addr_ipv4;
+ if (osaf_bind(sock_desc, (struct sockaddr *)&sockaddr,
+ sizeof(sockaddr)) != 0)
+ LOG_WA("DTM:osaf_bind() ipv4 failed with errno %d", errno);
+ } else {
+ LOG_WA("DTM:inet_pton(%s) ipv4 failed", dtms_cb->ip_addr.c_str());
+ }
+ } else {
+ if (inet_pton(AF_INET6, dtms_cb->ip_addr.c_str(), &addr_ipv6) == 1) {
+ sockaddr6.sin6_family = AF_INET6;
+ sockaddr6.sin6_port = 0;
+ sockaddr6.sin6_addr = addr_ipv6;
+ if (osaf_bind(sock_desc, (struct sockaddr *)&sockaddr6,
+ sizeof(sockaddr6)) != 0)
+ LOG_WA("DTM:osaf_bind() ipv6 failed with errno %d", errno);
+ } else {
+ LOG_WA("DTM:inet_pton(%s) ipv6 failed", dtms_cb->ip_addr.c_str());
+ }
+ }
+
/* Try to connect to the given port */
if (connect(sock_desc, addr_list->ai_addr, addr_list->ai_addrlen) < 0) {
err = errno;
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel