20 #include <citrusleaf/cf_clock.h>
24 #include <openssl/ssl.h>
29 #include <arpa/inet.h>
30 #include <netinet/in.h>
31 #include <sys/socket.h>
33 #define as_socket_data_t void
34 #define as_socket_size_t size_t
35 #define as_close(fd) (close(fd))
37 #if defined(__APPLE__)
38 #define SOL_TCP IPPROTO_TCP
39 #define MSG_NOSIGNAL 0
42 #define AS_IP_ADDRESS_SIZE 64
52 typedef struct as_tls_context_s {
58 struct as_conn_pool_lock_s;
64 typedef struct as_socket_s {
168 #if defined(__linux__) || defined(__APPLE__)
174 static inline uint64_t
175 as_socket_deadline(uint32_t timeout_ms)
177 return (timeout_ms && timeout_ms <= INT32_MAX)? cf_getms() + timeout_ms : 0;
186 as_socket_write_deadline(
187 as_error* err,
as_socket* sock,
struct as_node_s* node, uint8_t *buf,
size_t buf_len,
188 uint32_t max_idle, uint64_t deadline
197 as_socket_read_deadline(
198 as_error* err,
as_socket* sock,
struct as_node_s* node, uint8_t *buf,
size_t buf_len,
199 uint32_t max_idle, uint64_t deadline