fixed udp "addtess already used" thing + introduced nic device string (used later)
[my-code/ivac.git] / src / network.h
index 31ca335..079cea3 100644 (file)
@@ -17,6 +17,7 @@
 
 /* defines */
 #define MAX_CONNECTIONS 32
+#define MAX_NIC_DEVICE 32
 
 #define IP_DIGITS 16
 #define C_IN_USE (1<<0)
 
 #define N_SUCCESS 1
 #define N_ERROR -1
+#define N_E_IN_USE -2
+#define N_E_NO_INFO -3
+#define N_E_CLOSE -4
+#define N_E_CONNECT -5
+#define N_E_NC -6
+#define N_E_ACCEPT -7
+#define N_E_MAXC -8
+
+#define N_UDP_WRONG_SENDER -9
 
 #define MAX_LISTEN_QUEUE 32
 
@@ -42,13 +52,17 @@ typedef struct s_connection {
 } t_connection;
 
 typedef struct s_net {
-  int l_fd; /* listen file descriptor */
-  in_port_t l_port;
+  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 */
+  in_port_t l_port; /* tcp port */
+  int l_udp_port; /* udp listen port */
   unsigned short cap;
   /* limited connections by now -- replaced by list management later */
   int c_count;
   t_connection connection[MAX_CONNECTIONS];
   unsigned int sendmask; /* 32 bits for maximum of 32 connections */
+  char nic[MAX_NIC_DEVICE];
 } t_net;
 
 /* function prototypes */
@@ -56,8 +70,18 @@ int network_init(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);
+int network_connect(t_net *net,int channel);
+int network_close(t_net *net,int channel);
+int network_close_all(t_net *net);
+int network_set_connection_info(t_net *net,int channel,char *ip,int port);
+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_receive(int fd,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);
+int network_udp_shutdown(t_net *net);
 
 #endif