Ticket #673: network_timeout.patch

File network_timeout.patch, 1.3 KB (added by nbk@…, 20 years ago)

Add network timeout

  • stream/udp.c

     
    6666    return -1;
    6767  }
    6868
     69#if (defined SO_RCVTIMEO && defined SO_SNDTIMEO)
     70  tv.tv_sec = 10;
     71  tv.tv_usec = 0;
     72  err = setsockopt (socket_server_fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
     73  if (err < 0) {
     74          perror ("setsockopt");
     75  }
     76  err = setsockopt (socket_server_fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
     77  if (err < 0) {
     78          perror ("setsockopt");
     79  }
     80#endif
     81
    6982  if (isalpha (url->hostname[0]))
    7083  {
    7184#ifndef HAVE_WINSOCK2
  • stream/tcp.c

     
    8686                return TCP_ERROR_FATAL;
    8787        }
    8888
     89#if (defined SO_RCVTIMEO && defined SO_SNDTIMEO)
     90        tv.tv_sec = 10;
     91        tv.tv_usec = 0;
     92        ret = setsockopt(socket_server_fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
     93        if (ret < 0) {
     94                perror("setsockopt");
     95        }
     96        ret = setsockopt(socket_server_fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
     97        if (ret < 0) {
     98                perror("setsockopt");
     99        }
     100#endif
     101
    89102        switch (af) {
    90103                case AF_INET:  our_s_addr = (void *) &server_address.four.sin_addr; break;
    91104#ifdef HAVE_AF_INET6