45 lines
1.4 KiB
C
45 lines
1.4 KiB
C
#ifndef OSMO_CC_SOCKET_H
|
|
#define OSMO_CC_SOCKET_H
|
|
|
|
#define OSMO_CC_DEFAULT_PORT 4200
|
|
#define OSMO_CC_DEFAULT_PORT_MAX 4219
|
|
|
|
#define OSMO_CC_SOCKET_TX_KEEPALIVE 10.0
|
|
#define OSMO_CC_SOCKET_RX_KEEPALIVE 20.0
|
|
|
|
struct osmo_cc_socket;
|
|
|
|
typedef struct osmo_cc_conn {
|
|
struct osmo_cc_conn *next;
|
|
struct osmo_cc_socket *os;
|
|
int socket;
|
|
uint32_t callref;
|
|
int read_setup;
|
|
int read_version;
|
|
char read_version_string[sizeof(OSMO_CC_VERSION)]; /* must include 0-termination */
|
|
int read_version_pos;
|
|
int write_version;
|
|
osmo_cc_msg_t read_hdr;
|
|
osmo_cc_msg_t *read_msg;
|
|
int read_pos;
|
|
osmo_cc_msg_list_t *write_list;
|
|
struct timer tx_keepalive_timer;
|
|
struct timer rx_keepalive_timer;
|
|
} osmo_cc_conn_t;
|
|
|
|
typedef struct osmo_cc_socket {
|
|
int socket;
|
|
osmo_cc_conn_t *conn_list;
|
|
osmo_cc_msg_list_t *write_list;
|
|
void (*recv_msg_cb)(void *priv, uint32_t callref, osmo_cc_msg_t *msg);
|
|
void *priv;
|
|
uint8_t location;
|
|
} osmo_cc_socket_t;
|
|
|
|
int osmo_cc_open_socket(osmo_cc_socket_t *os, const char *host, uint16_t port, void *priv, void (*recv_msg_cb)(void *priv, uint32_t callref, osmo_cc_msg_t *msg), uint8_t location);
|
|
void osmo_cc_close_socket(osmo_cc_socket_t *os);
|
|
int osmo_cc_sock_send_msg(osmo_cc_socket_t *os, uint32_t callref, osmo_cc_msg_t *msg, const char *host, uint16_t port);
|
|
int osmo_cc_handle_socket(osmo_cc_socket_t *os);
|
|
|
|
#endif /* OSMO_CC_SOCKET_H */
|