![]() |
kinetic-c
v0.12.0
Seagate Kinetic Protocol Client Library for C
|
#include "listener_io.h"
#include "listener_helper.h"
#include <unistd.h>
#include <assert.h>
#include <inttypes.h>
#include "listener_task.h"
#include "syscall.h"
#include "util.h"
Go to the source code of this file.
Macros | |
#define | DUMP_READ 0 |
Functions | |
static ssize_t | socket_read_plain (struct bus *b, listener *l, int pfd_i, connection_info *ci) |
static ssize_t | socket_read_ssl (struct bus *b, listener *l, int pfd_i, connection_info *ci) |
static bool | sink_socket_read (struct bus *b, listener *l, connection_info *ci, ssize_t size) |
static void | print_SSL_error (struct bus *b, connection_info *ci, int lvl, const char *prefix) |
static void | set_error_for_socket (listener *l, int id, int fd, rx_error_t err) |
static void | process_unpacked_message (listener *l, connection_info *ci, bus_unpack_cb_res_t result) |
static void | move_errored_active_sockets_to_end (listener *l) |
void | ListenerIO_AttemptRecv (listener *l, int available) |
#define DUMP_READ 0 |
Definition at line 223 of file listener_io.c.
|
static |
Definition at line 117 of file listener_io.c.
References BUS_LOG_SNPRINTF, connection_info::fd, LOG_LISTENER, listener::read_buf, RX_ERROR_READ_FAILURE, set_error_for_socket(), sink_socket_read(), syscall_read(), connection_info::to_read_size, bus::udata, and Util_IsResumableIOError().
|
static |
Definition at line 164 of file listener_io.c.
References BUS_ASSERT, BUS_LOG_SNPRINTF, connection_info::fd, LOG_LISTENER, print_SSL_error(), listener::read_buf, RX_ERROR_POLLHUP, RX_ERROR_READ_FAILURE, set_error_for_socket(), sink_socket_read(), connection_info::ssl, syscall_SSL_get_error(), syscall_SSL_read(), connection_info::to_read_size, bus::udata, and Util_IsResumableIOError().
|
static |
Definition at line 225 of file listener_io.c.
References BUS_ASSERT, BUS_LOG, BUS_LOG_SNPRINTF, bus_sink_cb_res_t::full_msg_buffer, ListenerTask_GrowReadBuf(), LOG_LISTENER, LOG_MEMORY, bus_sink_cb_res_t::next_read, bus_unpack_cb_res_t::ok, process_unpacked_message(), listener::read_buf, listener::read_buf_size, bus::sink_cb, bus_unpack_cb_res_t::success, connection_info::to_read_size, bus_unpack_cb_res_t::u, bus::udata, connection_info::udata, and bus::unpack_cb.
|
static |
Definition at line 151 of file listener_io.c.
References BUS_LOG_SNPRINTF, connection_info::fd, LOG_LISTENER, and bus::udata.
|
static |
Definition at line 266 of file listener_io.c.
References listener::bus, BUS_ASSERT, BUS_LOG_SNPRINTF, connection_info::error, listener::error_occured, rx_info_t::expect, boxed_msg::fd, listener::fd_info, rx_info_t::hold, LOG_LISTENER, RIS_EXPECT, RIS_HOLD, RIS_INACTIVE, listener::rx_info, listener::rx_info_max_used, rx_info_t::state, rx_info_t::u, and bus::udata.
|
static |
Definition at line 335 of file listener_io.c.
References listener::bus, BUS_ASSERT, BUS_LOG_SNPRINTF, BUS_NO_SEQ_ID, bus_unpack_cb_res_t::error, bus::error_cb, rx_info_t::expect, connection_info::fd, rx_info_t::hold, rx_info_t::id, ListenerHelper_FindInfoBySequenceID(), ListenerTask_AttemptDelivery(), LOG_LISTENER, bus_unpack_cb_res_t::ok, RIS_EXPECT, RIS_HOLD, RIS_INACTIVE, RX_ERROR_READY_FOR_DELIVERY, rx_info_t::state, bus_unpack_cb_res_t::success, rx_info_t::u, bus_unpack_cb_res_t::u, bus::udata, connection_info::udata, and bus::unexpected_msg_cb.
|
static |
Definition at line 307 of file listener_io.c.
References connection_info::error, listener::fd_info, listener::fds, listener::inactive_fds, INCOMING_MSG_PIPE, and listener::tracked_fds.
void ListenerIO_AttemptRecv | ( | listener * | l, |
int | available | ||
) |
Definition at line 45 of file listener_io.c.
References listener::bus, BUS_ASSERT, BUS_LOG, BUS_LOG_SNPRINTF, BUS_SOCKET_PLAIN, BUS_SOCKET_SSL, listener::error_occured, connection_info::fd, listener::fd_info, listener::fds, INCOMING_MSG_PIPE, LOG_LISTENER, move_errored_active_sockets_to_end(), listener::read_buf_size, RX_ERROR_POLLERR, RX_ERROR_POLLHUP, set_error_for_socket(), socket_read_plain(), socket_read_ssl(), connection_info::to_read_size, listener::tracked_fds, connection_info::type, and bus::udata.