You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lokinet/include/llarp/link.h

69 lines
1.8 KiB
C

7 years ago
#ifndef LLARP_LINK_H_
#define LLARP_LINK_H_
7 years ago
#include <llarp/crypto.h>
7 years ago
#include <llarp/msg_handler.h>
7 years ago
#include <llarp/mem.h>
#include <llarp/obmd.h>
7 years ago
7 years ago
#include <stdint.h>
#include <stdbool.h>
7 years ago
#ifdef __cplusplus
extern "C" {
#endif
7 years ago
struct llarp_link;
7 years ago
struct llarp_link *llarp_link_alloc(struct llarp_msg_muxer * muxer);
7 years ago
void llarp_link_free(struct llarp_link **link);
7 years ago
7 years ago
bool llarp_link_configure_addr(struct llarp_link *link, const char *ifname, int af, uint16_t port);
7 years ago
7 years ago
/** get link listener for events */
struct llarp_udp_listener *llarp_link_udp_listener(struct llarp_link *link);
7 years ago
7 years ago
void llarp_link_start(struct llarp_link * link);
struct llarp_link_queue * llarp_link_frame_queue(struct llarp_link*link);
7 years ago
void llarp_link_stop(struct llarp_link *link);
7 years ago
7 years ago
struct llarp_link_session;
7 years ago
struct llarp_link_session_listener {
void *user;
/** set by llarp_try_establish_session */
struct llarp_link *link;
/** set by llarp_try_establish_session */
struct llarp_rc *rc;
void (*result)(struct llarp_link_session_listener *,
struct llarp_link_session *);
};
7 years ago
/** information for establishing an outbound session */
struct llarp_link_establish_job {
struct llarp_rc *rc;
uint64_t timeout;
};
7 years ago
void llarp_link_try_establish_session(struct llarp_link *link,
struct llarp_link_establish_job *job,
struct llarp_link_session_listener *l);
7 years ago
struct llarp_link_session_iter {
void *user;
struct llarp_link *link;
bool (*visit)(struct llarp_link_session_iter *, struct llarp_link_session *);
};
7 years ago
void llarp_link_iter_sessions(struct llarp_link *l,
struct llarp_link_session_iter *i);
7 years ago
struct llarp_rc *llarp_link_session_rc(struct llarp_link_session *s);
7 years ago
#ifdef __cplusplus
}
#endif
#endif