summaryrefslogtreecommitdiff
path: root/librabbitmq/amqp_socket.h
diff options
context:
space:
mode:
authorzaq178miami <pinepain@gmail.com>2013-06-23 19:36:10 +0300
committerAlan Antonuk <alan.antonuk@gmail.com>2013-07-06 22:28:45 -0700
commit6ad770dc62f76fa0625d277b521a120b549d9fc2 (patch)
tree964847f5a839c7ccbfba6c09bc9b5ca3102c89d4 /librabbitmq/amqp_socket.h
parentb6a1dfec14e70fc6afe8ce9710231e552ba6bfb5 (diff)
downloadrabbitmq-c-6ad770dc62f76fa0625d277b521a120b549d9fc2.tar.gz
Add nonblocking connect support
Diffstat (limited to 'librabbitmq/amqp_socket.h')
-rw-r--r--librabbitmq/amqp_socket.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/librabbitmq/amqp_socket.h b/librabbitmq/amqp_socket.h
index fed3947..b0a1805 100644
--- a/librabbitmq/amqp_socket.h
+++ b/librabbitmq/amqp_socket.h
@@ -46,7 +46,7 @@ amqp_os_socket_close(int sockfd);
typedef ssize_t (*amqp_socket_writev_fn)(void *, struct iovec *, int);
typedef ssize_t (*amqp_socket_send_fn)(void *, const void *, size_t);
typedef ssize_t (*amqp_socket_recv_fn)(void *, void *, size_t, int);
-typedef int (*amqp_socket_open_fn)(void *, const char *, int);
+typedef int (*amqp_socket_open_fn)(void *, const char *, int, struct timeval *);
typedef int (*amqp_socket_close_fn)(void *);
typedef int (*amqp_socket_get_sockfd_fn)(void *);
typedef void (*amqp_socket_delete_fn)(void *);
@@ -164,6 +164,24 @@ amqp_socket_close(amqp_socket_t *self);
void
amqp_socket_delete(amqp_socket_t *self);
+/**
+ * Open a socket connection.
+ *
+ * This function opens a socket connection returned from amqp_tcp_socket_new()
+ * or amqp_ssl_socket_new(). This function should be called after setting
+ * socket options and prior to assigning the socket to an AMQP connection with
+ * amqp_set_socket().
+ *
+ * \param [in] host Connect to this host.
+ * \param [in] port Connect on this remote port.
+ * \param [in] timeout Max allowed time to spent on opening. If NULL - run in blocking mode
+ *
+ * \return File descriptor upon success, non-zero negative error code otherwise.
+ */
+int
+amqp_open_socket_noblock(char const *hostname, int portnumber, struct timeval *timeout);
+
+
AMQP_END_DECLS
#endif /* AMQP_SOCKET_H */