summaryrefslogtreecommitdiffstats
path: root/src/server/sockhelper.h
diff options
context:
space:
mode:
authorsr2013-07-08 18:46:26 +0200
committersr2013-07-08 18:46:26 +0200
commitdc81a51d59ccf31a5b47b989060a626e97a3d709 (patch)
treebf4219d12573c91efe53ae0941dc0a95cca3caa6 /src/server/sockhelper.h
parentNotes about locks (diff)
downloaddnbd3-dc81a51d59ccf31a5b47b989060a626e97a3d709.tar.gz
dnbd3-dc81a51d59ccf31a5b47b989060a626e97a3d709.tar.xz
dnbd3-dc81a51d59ccf31a5b47b989060a626e97a3d709.zip
Rewriting....
Diffstat (limited to 'src/server/sockhelper.h')
-rw-r--r--src/server/sockhelper.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/server/sockhelper.h b/src/server/sockhelper.h
index 2cbcda1..421b8b5 100644
--- a/src/server/sockhelper.h
+++ b/src/server/sockhelper.h
@@ -53,6 +53,18 @@ void sock_set_nonblock(int sock);
void sock_set_block(int sock);
/**
+ * Take IPv4 as string and a port and fill sockaddr_in struct.
+ * This should be refactored to work for IPv4 and IPv6 and use sockaddr_storage.
+ */
+inline void sock_set_addr4(char *ip, uint16_t port, struct sockaddr_in *addr)
+{
+ memset(addr, 0, sizeof(*addr));
+ addr->sin_family = AF_INET; // IPv4
+ addr->sin_addr.s_addr = inet_addr(ip);
+ addr->sin_port = htons(port); // set port number
+}
+
+/**
* Add given socket to array. Take an existing empty slot ( == -1) if available,
* append to end otherwise. Updates socket count variable passed by reference.
* The passed socket fd is only added if it is != -1 for convenience, so you can