44 #include "int_sizes.h"
50 #include <sys/types.h>
53 #define LINK_ADDRESS_MAX 48
56 #define LINK_PORT_ANY 0
59 #define LINK_FOREVER ((time_t)INT_MAX)
67 struct link *
link_connect(
const char *addr,
int port, time_t stoptime);
107 struct link *
link_accept(
struct link *master, time_t stoptime);
118 int link_read(
struct link *link,
char *data,
size_t length, time_t stoptime);
129 int link_read_avail(
struct link *link,
char *data,
size_t length, time_t stoptime);
138 int link_write(
struct link *link,
const char *data,
size_t length, time_t stoptime);
148 int link_putlstring(
struct link *link,
const char *str,
size_t len, time_t stoptime);
157 #define link_putstring(l,s,t) (link_putlstring(l,s,strlen(s),t))
166 #define link_putliteral(l,s,t) (link_putlstring(l,s "",((sizeof(s))-1),t))
176 int link_putfstring(
struct link *link,
const char *fmt, time_t stoptime, ...);
186 int link_putvfstring(
struct link *link,
const char *fmt, time_t stoptime, va_list va);
195 int link_usleep(
struct link *link,
int usec,
int reading,
int writing);
204 int link_sleep(
struct link *link, time_t stoptime,
int reading,
int writing);
230 void link_window_get(
struct link *link,
int *send_window,
int *recv_window);
243 int link_readline(
struct link *link,
char *line,
size_t length, time_t stoptime);
249 int link_fd(
struct link *link);
251 int link_keepalive(
struct link *link,
int onoff);
253 int link_nonblocking(
struct link *link,
int onoff);
278 INT64_T link_stream_to_buffer(
struct link *link,
char **buffer, time_t stoptime);
280 INT64_T link_stream_to_fd(
struct link *link,
int fd, INT64_T length, time_t stoptime);
281 INT64_T link_stream_to_file(
struct link *link, FILE * file, INT64_T length, time_t stoptime);
283 INT64_T link_stream_from_fd(
struct link *link,
int fd, INT64_T length, time_t stoptime);
284 INT64_T link_stream_from_file(
struct link *link, FILE * file, INT64_T length, time_t stoptime);
286 INT64_T link_soak(
struct link *link, INT64_T length, time_t stoptime);