~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/drizzled.cc

  • Committer: Brian Aker
  • Date: 2008-08-10 06:21:31 UTC
  • mfrom: (287.2.3 ipv6-fixes)
  • Revision ID: brian@tangent.org-20080810062131-tyzi9lskss7gbi13
Merge + closesocket() fix

Show diffs side-by-side

added added

removed removed

Lines of Context:
563
563
      if (fds[x].fd != -1)
564
564
      {
565
565
        (void) shutdown(fds[x].fd, SHUT_RDWR);
566
 
        (void) closesocket(fds[x].fd);
 
566
        (void) close(fds[x].fd);
567
567
        fds[x].fd= -1;
568
568
      }
569
569
    }
657
657
      if (fds[x].fd != -1)
658
658
      {
659
659
        (void) shutdown(fds[x].fd, SHUT_RDWR);
660
 
        (void) closesocket(fds[x].fd);
 
660
        (void) close(fds[x].fd);
661
661
        fds[x].fd= -1;
662
662
      }
663
663
    }
1110
1110
  memset(&hints, 0, sizeof (hints));
1111
1111
  hints.ai_flags= AI_PASSIVE;
1112
1112
  hints.ai_socktype= SOCK_STREAM;
1113
 
  hints.ai_family= AF_INET;
1114
 
  hints.ai_protocol= IPPROTO_TCP;
1115
1113
 
1116
1114
  snprintf(port_buf, NI_MAXSERV, "%d", mysqld_port);
1117
1115
  error= getaddrinfo(my_bind_addr_str, port_buf, &hints, &ai);
1142
1140
      struct linger ling = {0, 0};
1143
1141
      int flags =1;
1144
1142
 
 
1143
#ifdef IPV6_V6ONLY
 
1144
      if (next->ai_family == AF_INET6) 
 
1145
      {
 
1146
        error= setsockopt(ip_sock, IPPROTO_IPV6, IPV6_V6ONLY, (char *) &flags, sizeof(flags));
 
1147
        if (error != 0)
 
1148
        {
 
1149
          perror("setsockopt");
 
1150
          assert(error == 0);
 
1151
        }
 
1152
      }
 
1153
#endif   
1145
1154
      error= setsockopt(ip_sock, SOL_SOCKET, SO_REUSEADDR, (char*)&flags, sizeof(flags));
1146
1155
      if (error != 0)
1147
1156
      {
1187
1196
      this_wait= retry * retry / 3 + 1;
1188
1197
      sleep(this_wait);
1189
1198
    }
1190
 
    freeaddrinfo(ai);
1191
1199
    if (ret < 0)
1192
1200
    {
1193
1201
      sql_perror("Can't start server: Bind on TCP/IP port");
1203
1211
    }
1204
1212
  }
1205
1213
 
 
1214
  freeaddrinfo(ai);
1206
1215
  return;
1207
1216
}
1208
1217
 
2879
2888
      {
2880
2889
        sql_perror("Error on new connection socket");
2881
2890
        (void) shutdown(new_sock, SHUT_RDWR);
2882
 
        (void) closesocket(new_sock);
 
2891
        (void) close(new_sock);
2883
2892
        continue;
2884
2893
      }
2885
2894
      dummyLen = sizeof(dummy);
2888
2897
      {
2889
2898
        sql_perror("Error on new connection socket");
2890
2899
        (void) shutdown(new_sock, SHUT_RDWR);
2891
 
        (void) closesocket(new_sock);
 
2900
        (void) close(new_sock);
2892
2901
         continue;
2893
2902
      }
2894
2903
    }
2900
2909
    if (!(thd= new THD))
2901
2910
    {
2902
2911
      (void) shutdown(new_sock, SHUT_RDWR);
2903
 
      VOID(closesocket(new_sock));
 
2912
      VOID(close(new_sock));
2904
2913
      continue;
2905
2914
    }
2906
2915
    if (!(vio_tmp=vio_new(new_sock, VIO_TYPE_TCPIP, sock == 0)) ||
2916
2925
      else
2917
2926
      {
2918
2927
        (void) shutdown(new_sock, SHUT_RDWR);
2919
 
        (void) closesocket(new_sock);
 
2928
        (void) close(new_sock);
2920
2929
      }
2921
2930
      delete thd;
2922
2931
      continue;