Commit 509f505c authored by Titouan Soulard's avatar Titouan Soulard

libcapulet: use IPv6 for initial parameters exchange

parent 401ce4bf
...@@ -107,7 +107,7 @@ int main(int argc, char *argv[]) { ...@@ -107,7 +107,7 @@ int main(int argc, char *argv[]) {
// Set up remote address // Set up remote address
if(is_client) { if(is_client) {
memset(&server_hints, 0, sizeof(struct addrinfo)); memset(&server_hints, 0, sizeof(struct addrinfo));
server_hints.ai_family = AF_INET; server_hints.ai_family = AF_INET6;
server_hints.ai_socktype = SOCK_DGRAM; server_hints.ai_socktype = SOCK_DGRAM;
if(getaddrinfo(remote_host, "7362", &server_hints, &server_infos) != 0) { if(getaddrinfo(remote_host, "7362", &server_hints, &server_infos) != 0) {
......
...@@ -25,7 +25,7 @@ struct CapuletNetUdpContext *capulet_net_udp_initialize() { ...@@ -25,7 +25,7 @@ struct CapuletNetUdpContext *capulet_net_udp_initialize() {
int capulet_net_udp_serve_qp(struct CapuletNetUdpContext *ctx) { int capulet_net_udp_serve_qp(struct CapuletNetUdpContext *ctx) {
struct addrinfo server_hints; struct addrinfo server_hints;
struct addrinfo *server_infos; struct addrinfo *server_infos;
struct sockaddr client_addr; struct sockaddr_storage client_addr;
int result; int result;
int server_socket; int server_socket;
...@@ -37,7 +37,7 @@ int capulet_net_udp_serve_qp(struct CapuletNetUdpContext *ctx) { ...@@ -37,7 +37,7 @@ int capulet_net_udp_serve_qp(struct CapuletNetUdpContext *ctx) {
// Set up bind address // Set up bind address
memset(&server_hints, 0, sizeof(struct addrinfo)); memset(&server_hints, 0, sizeof(struct addrinfo));
server_hints.ai_family = AF_INET; server_hints.ai_family = AF_INET6;
server_hints.ai_socktype = SOCK_DGRAM; server_hints.ai_socktype = SOCK_DGRAM;
server_hints.ai_flags = AI_PASSIVE; server_hints.ai_flags = AI_PASSIVE;
...@@ -64,15 +64,15 @@ int capulet_net_udp_serve_qp(struct CapuletNetUdpContext *ctx) { ...@@ -64,15 +64,15 @@ int capulet_net_udp_serve_qp(struct CapuletNetUdpContext *ctx) {
// Address info can be freed as soon as the socket in bound // Address info can be freed as soon as the socket in bound
freeaddrinfo(server_infos); freeaddrinfo(server_infos);
recvfrom(server_socket, receive_buffer, buffer_size, 0, &client_addr, &client_addr_size); recvfrom(server_socket, receive_buffer, buffer_size, 0, (struct sockaddr *) &client_addr, &client_addr_size);
memcpy((void *) ctx->remote, (void *) receive_buffer, buffer_size); memcpy((void *) ctx->remote, (void *) receive_buffer, buffer_size);
sendto(server_socket, (void *) ctx->local, buffer_size, MSG_CONFIRM, &client_addr, client_addr_size); sendto(server_socket, (void *) ctx->local, buffer_size, MSG_CONFIRM, (struct sockaddr *) &client_addr, client_addr_size);
return server_socket; return server_socket;
} }
bool capulet_net_udp_serve_mr(struct CommonHashtableTable *hashtable, int server_socket) { bool capulet_net_udp_serve_mr(struct CommonHashtableTable *hashtable, int server_socket) {
struct sockaddr client_addr; struct sockaddr_storage client_addr;
socklen_t client_addr_size = sizeof(struct sockaddr_storage); socklen_t client_addr_size = sizeof(struct sockaddr_storage);
struct CapuletNetUdpMrQueryPacket mr_query_pkt; struct CapuletNetUdpMrQueryPacket mr_query_pkt;
...@@ -89,7 +89,7 @@ bool capulet_net_udp_serve_mr(struct CommonHashtableTable *hashtable, int server ...@@ -89,7 +89,7 @@ bool capulet_net_udp_serve_mr(struct CommonHashtableTable *hashtable, int server
usleep(10); usleep(10);
buffer_size = sizeof(struct CapuletNetUdpMrQueryPacket); buffer_size = sizeof(struct CapuletNetUdpMrQueryPacket);
recv_size = recvfrom(server_socket, receive_buffer, buffer_size, 0, &client_addr, &client_addr_size); recv_size = recvfrom(server_socket, receive_buffer, buffer_size, 0, (struct sockaddr *) &client_addr, &client_addr_size);
memcpy((void *) &mr_query_pkt, (void *) receive_buffer, buffer_size); memcpy((void *) &mr_query_pkt, (void *) receive_buffer, buffer_size);
buffer_size = sizeof(struct CapuletNetUdpMrInfoPacket); buffer_size = sizeof(struct CapuletNetUdpMrInfoPacket);
...@@ -106,7 +106,7 @@ bool capulet_net_udp_serve_mr(struct CommonHashtableTable *hashtable, int server ...@@ -106,7 +106,7 @@ bool capulet_net_udp_serve_mr(struct CommonHashtableTable *hashtable, int server
mr_info_pkt.size = mr->length; mr_info_pkt.size = mr->length;
mr_info_pkt.key = mr->rkey; mr_info_pkt.key = mr->rkey;
sendto(server_socket, (void *) &mr_info_pkt, buffer_size, MSG_CONFIRM, &client_addr, client_addr_size); sendto(server_socket, (void *) &mr_info_pkt, buffer_size, MSG_CONFIRM, (struct sockaddr *) &client_addr, client_addr_size);
} }
} }
......
...@@ -17,7 +17,7 @@ int trx_rdma_start(TRXState *s, const TRXDriverParams2 *p) { ...@@ -17,7 +17,7 @@ int trx_rdma_start(TRXState *s, const TRXDriverParams2 *p) {
// If acting as a client, the remote address should therefore be set up. // If acting as a client, the remote address should therefore be set up.
if(sdr_context->server_addr) { if(sdr_context->server_addr) {
memset(&server_hints, 0, sizeof(struct addrinfo)); memset(&server_hints, 0, sizeof(struct addrinfo));
server_hints.ai_family = AF_INET; server_hints.ai_family = AF_INET6;
server_hints.ai_socktype = SOCK_DGRAM; server_hints.ai_socktype = SOCK_DGRAM;
if(getaddrinfo(sdr_context->server_addr, "7362", &server_hints, &server_infos) != 0) return -1; if(getaddrinfo(sdr_context->server_addr, "7362", &server_hints, &server_infos) != 0) return -1;
} }
......
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