diff options
author | Pablo Neira Ayuso <pablo@gnumonks.org> | 2011-10-05 12:28:21 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@gnumonks.org> | 2011-10-05 13:43:10 +0200 |
commit | ddb9bf65f497ac0c4879b5114e887383f47e5686 (patch) | |
tree | 5676ec1fbf2d2929f9e0821b0412ec0b20a366f1 /include/osmocom | |
parent | 8bf16493f68fd53c6e14f1612caf7425c73b2f4d (diff) |
add generic datagram socket infrastructure and examples
This patch adds new datagram socket infrastructure and it reworks
the previous examples (now it's LAPD over datagram).
Diffstat (limited to 'include/osmocom')
-rw-r--r-- | include/osmocom/netif/Makefile.am | 3 | ||||
-rw-r--r-- | include/osmocom/netif/datagram.h | 47 |
2 files changed, 49 insertions, 1 deletions
diff --git a/include/osmocom/netif/Makefile.am b/include/osmocom/netif/Makefile.am index 8b68362..afab204 100644 --- a/include/osmocom/netif/Makefile.am +++ b/include/osmocom/netif/Makefile.am @@ -1,3 +1,4 @@ -osmonetif_HEADERS = stream.h +osmonetif_HEADERS = datagram.h \ + stream.h osmonetifdir = $(includedir)/osmocom/netif diff --git a/include/osmocom/netif/datagram.h b/include/osmocom/netif/datagram.h new file mode 100644 index 0000000..abda79b --- /dev/null +++ b/include/osmocom/netif/datagram.h @@ -0,0 +1,47 @@ +#ifndef _OSMO_DGRAM_H_ +#define _OSMO_DGRAM_H_ + +struct datagram_client_conn; + +struct datagram_client_conn *datagram_client_conn_create(void *ctx); +void datagram_client_conn_destroy(struct datagram_client_conn *conn); + +void datagram_client_conn_set_addr(struct datagram_client_conn *conn, const char *addr); +void datagram_client_conn_set_port(struct datagram_client_conn *conn, uint16_t port); +void datagram_client_conn_set_data(struct datagram_client_conn *conn, void *data); + +int datagram_client_conn_open(struct datagram_client_conn *conn); +void datagram_client_conn_close(struct datagram_client_conn *conn); + +void datagram_client_conn_send(struct datagram_client_conn *conn, struct msgb *msg); + +struct datagram_server_conn; + +struct datagram_server_conn *datagram_server_conn_create(void *ctx); + +void datagram_server_conn_set_addr(struct datagram_server_conn *conn, const char *addr); +void datagram_server_conn_set_port(struct datagram_server_conn *conn, uint16_t port); +void datagram_server_conn_set_read_cb(struct datagram_server_conn *conn, int (*read_cb)(struct datagram_server_conn *conn, struct msgb *msg)); +void datagram_server_conn_destroy(struct datagram_server_conn *conn); + +int datagram_server_conn_open(struct datagram_server_conn *conn); +void datagram_server_conn_close(struct datagram_server_conn *conn); + +struct datagram_conn; + +struct datagram_conn *datagram_conn_create(void *ctx); +void datagram_conn_destroy(struct datagram_conn *conn); + +int datagram_conn_open(struct datagram_conn *conn); +void datagram_conn_close(struct datagram_conn *conn); + +void datagram_conn_set_local_addr(struct datagram_conn *conn, const char *addr); +void datagram_conn_set_remote_addr(struct datagram_conn *conn, const char *addr); +void datagram_conn_set_local_port(struct datagram_conn *conn, uint16_t port); +void datagram_conn_set_remote_port(struct datagram_conn *conn, uint16_t port); +void datagram_conn_set_read_cb(struct datagram_conn *conn, int (*read_cb)(struct datagram_server_conn *conn, struct msgb *msg)); +void datagram_conn_set_data(struct datagram_client_conn *conn, void *data); + +void datagram_conn_send(struct datagram_conn *conn, struct msgb *msg); + +#endif |