- /* event handling */
- int (*set_event_context)(struct tsocket_context *sock,
- struct tevent_context *ev);
- int (*set_read_handler)(struct tsocket_context *sock,
- tsocket_event_handler_t handler,
- void *private_data);
- int (*set_write_handler)(struct tsocket_context *sock,
- tsocket_event_handler_t handler,
- void *private_data);
-
- /* client ops */
- int (*connect_to)(struct tsocket_context *sock,
- const struct tsocket_address *remote_addr);
-
- /* server ops */
- int (*listen_on)(struct tsocket_context *sock,
- int queue_size);
- int (*accept_new)(struct tsocket_context *sock,
- TALLOC_CTX *mem_ctx,
- struct tsocket_context **new_sock,
- const char *location);
-
- /* general ops */
- ssize_t (*pending_data)(struct tsocket_context *sock);
-
- int (*readv_data)(struct tsocket_context *sock,
- const struct iovec *vector, size_t count);
- int (*writev_data)(struct tsocket_context *sock,
- const struct iovec *vector, size_t count);
-
- ssize_t (*recvfrom_data)(struct tsocket_context *sock,
- uint8_t *data, size_t len,
- TALLOC_CTX *addr_ctx,
- struct tsocket_address **remote_addr);
- ssize_t (*sendto_data)(struct tsocket_context *sock,
- const uint8_t *data, size_t len,
- const struct tsocket_address *remote_addr);
-
- /* info */
- int (*get_status)(const struct tsocket_context *sock);
- int (*get_local_address)(const struct tsocket_context *sock,
- TALLOC_CTX *mem_ctx,
- struct tsocket_address **local_addr,
- const char *location);
- int (*get_remote_address)(const struct tsocket_context *sock,
- TALLOC_CTX *mem_ctx,
- struct tsocket_address **remote_addr,
- const char *location);
-
- /* options */
- int (*get_option)(const struct tsocket_context *sock,
- const char *option,
- TALLOC_CTX *mem_ctx,
- char **value);
- int (*set_option)(const struct tsocket_context *sock,
- const char *option,
- bool force,
- const char *value);
-
- /* close/disconnect */
- void (*disconnect)(struct tsocket_context *sock);