added timeout functionality
[my-code/api.git] / network / network.h
index 079cea3..7ef6301 100644 (file)
@@ -4,6 +4,7 @@
 #define NETWORK_H
 
 /* includes */
+#define _GNU_SOURCE
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
@@ -52,6 +53,7 @@ typedef struct s_connection {
 } t_connection;
 
 typedef struct s_net {
+  int outfd;
   int l_fd; /* fd for tcp conn */
   int l_udp_fd; /* fd for udp data receive */
   int s_udp_fd; /* fd for udp data send */
@@ -66,7 +68,9 @@ typedef struct s_net {
 } t_net;
 
 /* function prototypes */
-int network_init(t_net *net);
+int network_init(t_net *net,int outfd);
+int network_set_timeout(t_net *net,int chan,int read,int write);
+int network_listen(t_net *net);
 int network_shutdown(t_net *net);
 int network_set_listen_port(t_net *net,in_port_t port);
 int network_manage_connection(t_net *net);
@@ -78,7 +82,9 @@ int network_select(t_net *net,int channel);
 int network_deselect(t_net *net,int channel);
 int network_manage_incoming(t_net *net);
 int network_send(int fd,unsigned char *data,int datasize);
+int network_send_chan(t_net *net,int chan,unsigned char *data,int datasize);
 int network_receive(int fd,unsigned char *data,int datasize);
+int network_receive_chan(t_net *net,int chan,unsigned char *data,int datasize);
 int network_udp_listen_init(t_net *net);
 int network_udp_receive(t_net *net,int channel, unsigned char *data,int count);
 int network_udp_send(t_net *net,int channel, unsigned char *data,int size);