Browse Source

Dummy implementation of the socket creator

Only empty functions, so it compiles at last.

git-svn-id: svn://bind10.isc.org/svn/bind10/branches/vorner-sockcreator@3121 e5f2f494-b856-4b98-b285-d166d9295462
Michal Vaner 14 years ago
parent
commit
7dab055fe9

+ 3 - 1
src/bin/sockcreator/Makefile.am

@@ -1,5 +1,7 @@
 SUBDIRS = tests
 
+CLEANFILES = *.gcno *.gcda
+
 pkglibexec_PROGRAMS = b10-sockcreator
 
-b10_sockcreator_SOURCES = sockcreator.h
+b10_sockcreator_SOURCES = sockcreator.cc sockcreator.h main.cc

+ 11 - 0
src/bin/sockcreator/main.cc

@@ -0,0 +1,11 @@
+#include "sockcreator.h"
+
+using namespace isc::socket_creator;
+
+int main() {
+    /*
+     * TODO Maybe use some OS-specific caps interface and drop everything
+     * but ability to bind ports? It would be nice.
+     */
+    return run(0, 1); // Read commands from stdin, output to stdout
+}

+ 39 - 0
src/bin/sockcreator/sockcreator.cc

@@ -0,0 +1,39 @@
+// Copyright (C) 2010  CZ NIC
+//
+// Permission to use, copy, modify, and/or distribute this software for any
+// purpose with or without fee is hereby granted, provided that the above
+// copyright notice and this permission notice appear in all copies.
+//
+// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+// PERFORMANCE OF THIS SOFTWARE.
+
+#include "sockcreator.h"
+
+namespace isc {
+namespace socket_creator {
+
+int
+get_sock(const int type, struct sockaddr *bind_addr, const socklen_t addr_len)
+{
+    // TODO Implement
+}
+
+int
+send_fd(const int destination, const int payload) {
+    // TODO Steal
+}
+
+int
+run(const int input_fd, const int output_fd, const get_sock_t get_sock,
+    const send_fd_t send_fd)
+{
+    // TODO Implement
+}
+
+} // End of the namespaces
+}

+ 4 - 4
src/bin/sockcreator/sockcreator.h

@@ -41,17 +41,17 @@ namespace socket_creator {
  *     errno is set (or better, left intact from socket() or bind()).
  * \param type The type of socket to create (SOCK_STREAM, SOCK_DGRAM, etc).
  * \param bind_addr The address to bind.
- * \param addrlen The actual length of bind_addr.
+ * \param addr_len The actual length of bind_addr.
  */
 int
-get_sock(const int type, struct sockaddr *bind_addr, const socklen_t addrlen);
+get_sock(const int type, struct sockaddr *bind_addr, const socklen_t addr_len);
 
 /**
  * Type of the get_sock function, to pass it as parameter.
  */
 typedef
 int
-(*get_sock_t)(const int, struct sockaddr, const socklen_t);
+(*get_sock_t)(const int, struct sockaddr *, const socklen_t);
 
 /**
  * Sends a payload socket file descriptor to destination file descriptor.
@@ -96,7 +96,7 @@ run(const int input_fd, const int output_fd,
     const get_sock_t get_sock_fun = get_sock,
     const send_fd_t send_fd_fun = send_fd);
 
-}
+} // End of the namespaces
 }
 
 #endif // __SOCKCREATOR_H