Files
adsb-tools/adsbus/flow.c
2016-02-29 22:17:37 -08:00

26 lines
549 B
C

#include <unistd.h>
#include "buf.h"
#include "socket.h"
#include "flow.h"
void flow_socket_connected(int fd, struct flow *flow) {
socket_connected(fd);
if (flow->socket_connected) {
flow->socket_connected(fd);
}
}
bool flow_hello(int fd, struct flow *flow, void *passthrough) {
if (!flow->get_hello) {
return true;
}
struct buf buf = BUF_INIT, *buf_ptr = &buf;
flow->get_hello(&buf_ptr, passthrough);
if (!buf_ptr->length) {
return true;
}
return (write(fd, buf_at(buf_ptr, 0), buf_ptr->length) == (ssize_t) buf_ptr->length);
}