]> hackdaworld.org Git - my-code/api.git/commitdiff
added timeout functionality
authorhackbard <hackbard>
Fri, 5 Nov 2004 12:15:37 +0000 (12:15 +0000)
committerhackbard <hackbard>
Fri, 5 Nov 2004 12:15:37 +0000 (12:15 +0000)
network/network.c
network/network.h

index 1cdd38cf2d73c8c38126e7e4ad6d69445eb1784e..c8022e59351b47ce8cb21c8c3b2e20102090345a 100644 (file)
@@ -18,6 +18,23 @@ int network_init(t_net *net,int outfd) {
   return N_SUCCESS;
 }
 
+int network_set_timeout_chan(t_net *net,int chan,int read,int write) {
+
+  struct timeval to;
+  socklen_t len;
+
+  len=sizeof(struct timeval);
+
+  to.tv_usec=0;
+
+  to.tv_sec=read;
+  setsockopt(net->connection[chan].fd,SOL_SOCKET,SO_RCVTIMEO,&to,len);
+  to.tv_sec=write;
+  setsockopt(net->connection[chan].fd,SOL_SOCKET,SO_SNDTIMEO,&to,len);
+
+  return N_SUCCESS;
+}
+
 int network_listen(t_net *net) {
   
   struct sockaddr_in addr;
index 4f5e87ebd0b8be7e1960f2fac3645dfbbc9e3603..7ef63019aef5cd6d91a34aeca476d0de19922e71 100644 (file)
@@ -69,6 +69,7 @@ typedef struct s_net {
 
 /* function prototypes */
 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);