Create a new helper function to set the sockaddr for a rpc context
Signed-off-by: Ronnie Sahlberg <ronniesahlberg@gmail.com>libnfs-4.0.0-vitalif
parent
6f8b2f85ca
commit
dccffb86ee
43
lib/socket.c
43
lib/socket.c
|
@ -552,24 +552,11 @@ static int rpc_connect_sockaddr_async(struct rpc_context *rpc, struct sockaddr_s
|
|||
return 0;
|
||||
}
|
||||
|
||||
int rpc_connect_async(struct rpc_context *rpc, const char *server, int port, rpc_cb cb, void *private_data)
|
||||
static int rpc_set_sockaddr(struct rpc_context *rpc, const char *server,
|
||||
int port)
|
||||
{
|
||||
struct addrinfo *ai = NULL;
|
||||
|
||||
assert(rpc->magic == RPC_CONTEXT_MAGIC);
|
||||
|
||||
if (rpc->fd != -1) {
|
||||
rpc_set_error(rpc, "Trying to connect while already connected");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (rpc->is_udp != 0) {
|
||||
rpc_set_error(rpc, "Trying to connect on UDP socket");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rpc->auto_reconnect = 0;
|
||||
|
||||
if (getaddrinfo(server, NULL, NULL, &ai) != 0) {
|
||||
rpc_set_error(rpc, "Invalid address:%s. "
|
||||
"Can not resolv into IPv4/v6 structure.", server);
|
||||
|
@ -594,12 +581,34 @@ int rpc_connect_async(struct rpc_context *rpc, const char *server, int port, rpc
|
|||
#endif
|
||||
break;
|
||||
}
|
||||
freeaddrinfo(ai);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int rpc_connect_async(struct rpc_context *rpc, const char *server, int port, rpc_cb cb, void *private_data)
|
||||
{
|
||||
assert(rpc->magic == RPC_CONTEXT_MAGIC);
|
||||
|
||||
if (rpc->fd != -1) {
|
||||
rpc_set_error(rpc, "Trying to connect while already connected");
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (rpc->is_udp != 0) {
|
||||
rpc_set_error(rpc, "Trying to connect on UDP socket");
|
||||
return -1;
|
||||
}
|
||||
|
||||
rpc->auto_reconnect = 0;
|
||||
|
||||
if (rpc_set_sockaddr(rpc, server, port) != 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
rpc->connect_cb = cb;
|
||||
rpc->connect_data = private_data;
|
||||
|
||||
freeaddrinfo(ai);
|
||||
|
||||
if (rpc_connect_sockaddr_async(rpc, &rpc->s) != 0) {
|
||||
return -1;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue