1 #include <sys/socket.h>
4 #include "libradsec-base.h"
8 const struct sockaddr *addr,
13 s = socket(AF_INET, type, 0); /* FIXME: do AF_INET6 too */
15 if (connect(s, addr, addrlen)) {
23 rs_connect(const struct rs_config *conf,
24 const struct sockaddr *addr,
27 switch (conf->conn_type)
29 case RS_CONN_TYPE_UDP:
30 return do_connect(SOCK_DGRAM, addr, addrlen);
31 case RS_CONN_TYPE_TCP:
32 return do_connect(SOCK_STREAM, addr, addrlen);
34 case RS_CONN_TYPE_TLS:
36 case RS_CONN_TYPE_DTLS:
45 rs_disconnect( const struct rs_config *conf, int fd)
47 switch (conf->conn_type)
49 case RS_CONN_TYPE_UDP:
51 case RS_CONN_TYPE_TCP:
52 shutdown(fd, SHUT_RDWR);
54 case RS_CONN_TYPE_TLS:
56 case RS_CONN_TYPE_DTLS:
65 rs_packet_new(const struct rs_config *ctx,
66 const uint8_t buf[RS_HEADER_LEN],
70 (ctx->alloc_scheme.malloc ? ctx->alloc_scheme.malloc : malloc)(20);
75 *count = 256 * buf[2] + buf[3];
81 rs_packet_parse(const struct rs_config *ctx,
82 struct rs_packet *packet,
87 rs_packet_free(ctx, packet);
91 memcpy(packet->auth, buf, 16);
92 /* TODO: copy attributes starting at buf[16]. */
97 rs_packet_free(const struct rs_config *ctx,
98 struct rs_packet *packet)
100 (ctx->alloc_scheme.free ? ctx->alloc_scheme.free : free)(packet);
104 rs_packet_serialize(const struct rs_packet *packet,
111 /* Local Variables: */
112 /* c-file-style: "stroustrup" */