TCP listening support

This commit is contained in:
Vladimir 'phcoder' Serbinenko 2011-07-10 23:37:28 +02:00
parent f4e6e2909b
commit c410299b05
2 changed files with 308 additions and 147 deletions

View file

@ -24,6 +24,9 @@
struct grub_net_tcp_socket;
typedef struct grub_net_tcp_socket *grub_net_tcp_socket_t;
struct grub_net_tcp_listen;
typedef struct grub_net_tcp_listen *grub_net_tcp_listen_t;
grub_net_tcp_socket_t
grub_net_tcp_open (char *server,
grub_uint16_t out_port,
@ -34,6 +37,17 @@ grub_net_tcp_open (char *server,
void *data),
void *hook_data);
grub_net_tcp_listen_t
grub_net_tcp_listen (grub_uint16_t port,
const struct grub_net_network_level_interface *inf,
grub_err_t (*listen_hook) (grub_net_tcp_listen_t listen,
grub_net_tcp_socket_t sock,
void *data),
void *hook_data);
void
grub_net_tcp_stop_listen (grub_net_tcp_listen_t listen);
grub_err_t
grub_net_send_tcp_packet (const grub_net_tcp_socket_t socket,
struct grub_net_buff *nb,
@ -42,4 +56,13 @@ grub_net_send_tcp_packet (const grub_net_tcp_socket_t socket,
void
grub_net_tcp_close (grub_net_tcp_socket_t sock);
grub_err_t
grub_net_tcp_accept (grub_net_tcp_socket_t sock,
grub_err_t (*recv_hook) (grub_net_tcp_socket_t sock,
struct grub_net_buff *nb,
void *data),
void (*error_hook) (grub_net_tcp_socket_t sock,
void *data),
void *hook_data);
#endif