From 8e51ffbf2cd114f17a4c370d45862c3873a8aebe Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Tue, 11 Feb 2014 00:19:29 -0800 Subject: [PATCH] Add function for connecting to an already-open TCP port --- src/util/socket.h | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/util/socket.h b/src/util/socket.h index 433e9bd8d..cc8d6a31f 100644 --- a/src/util/socket.h +++ b/src/util/socket.h @@ -52,6 +52,27 @@ static inline Socket SocketOpenTCP(int port, uint32_t bindAddress) { return sock; } +static inline Socket SocketConnectTCP(int port, uint32_t destinationAddress) { + Socket sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); + if (sock < 0) { + return sock; + } + + struct sockaddr_in bindInfo = { + .sin_family = AF_INET, + .sin_port = htons(port), + .sin_addr = { + .s_addr = htonl(destinationAddress) + } + }; + int err = connect(sock, (const struct sockaddr*) &bindInfo, sizeof(struct sockaddr_in)); + if (err) { + close(sock); + return -1; + } + return sock; +} + static inline Socket SocketListen(Socket socket, int queueLength) { return listen(socket, queueLength); }