summaryrefslogtreecommitdiffstats
path: root/storage/spider/hs_client/socket.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/spider/hs_client/socket.hpp')
-rw-r--r--storage/spider/hs_client/socket.hpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/storage/spider/hs_client/socket.hpp b/storage/spider/hs_client/socket.hpp
new file mode 100644
index 00000000..a3e6527a
--- /dev/null
+++ b/storage/spider/hs_client/socket.hpp
@@ -0,0 +1,62 @@
+
+// vim:sw=2:ai
+
+/*
+ * Copyright (C) 2010-2011 DeNA Co.,Ltd.. All rights reserved.
+ * Copyright (C) 2011 Kentoku SHIBA
+ * See COPYRIGHT.txt for details.
+ */
+
+#ifndef DENA_SOCKET_HPP
+#define DENA_SOCKET_HPP
+
+#include "mysql_version.h"
+#if MYSQL_VERSION_ID < 50500
+#include "mysql_priv.h"
+#include <mysql/plugin.h>
+#else
+#include "sql_priv.h"
+#include "probes_mysql.h"
+#endif
+
+#include "auto_addrinfo.hpp"
+#include "auto_file.hpp"
+#include "config.hpp"
+
+namespace dena {
+
+struct socket_args {
+ sockaddr_storage addr;
+ socklen_t addrlen;
+ int family;
+ int socktype;
+ int protocol;
+ int timeout;
+ int send_timeout;
+ int recv_timeout;
+ int listen_backlog;
+ bool reuseaddr;
+ bool nonblocking;
+ bool use_epoll;
+ int sndbuf;
+ int rcvbuf;
+ socket_args() : addr(), addrlen(0), family(AF_INET), socktype(SOCK_STREAM),
+ protocol(0), timeout(600), send_timeout(600), recv_timeout(600),
+ listen_backlog(256), reuseaddr(true), nonblocking(false), use_epoll(false),
+ sndbuf(0), rcvbuf(0) { }
+ void set(const config& conf);
+ void set_unix_domain(const char *path);
+ int resolve(const char *node, const char *service);
+};
+
+void ignore_sigpipe();
+int socket_set_timeout(auto_file& fd, const socket_args& args, String& err_r);
+int socket_bind(auto_file& fd, const socket_args& args, String& err_r);
+int socket_connect(auto_file& fd, const socket_args& args, String& err_r);
+int socket_accept(int listen_fd, auto_file& fd, const socket_args& args,
+ sockaddr_storage& addr_r, socklen_t& addrlen_r, String& err_r);
+
+};
+
+#endif
+