List:Commits« Previous MessageNext Message »
From:knielsen Date:March 7 2008 7:52am
Subject:bk commit into 6.0 tree (knielsen:1.2553)
View as plain text  
Below is the list of changes that have just been committed into a local
6.0 repository of knielsen.  When knielsen does a push these changes
will be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html

ChangeSet@stripped, 2008-03-07 08:52:21+01:00, knielsen@ymer.(none) +5 -0
  After-merge fixes.

  mysql-test/r/rpl_locktrans_innodb.result@stripped, 2008-03-07 08:52:16+01:00, knielsen@ymer.(none) +1 -0
    After-merge fix.

  mysql-test/r/rpl_locktrans_myisam.result@stripped, 2008-03-07 08:52:16+01:00, knielsen@ymer.(none) +1 -0
    After-merge fix.

  sql-common/client.c@stripped, 2008-03-07 08:52:17+01:00, knielsen@ymer.(none) +19 -36
    After-merge fix.

  sql/ha_ndbcluster.cc@stripped, 2008-03-07 08:52:17+01:00, knielsen@ymer.(none) +8 -0
    After-merge fix.

  sql/rpl_mi.cc@stripped, 2008-03-07 08:52:17+01:00, knielsen@ymer.(none) +4 -1
    After-merge fix.

diff -Nrup a/mysql-test/r/rpl_locktrans_innodb.result b/mysql-test/r/rpl_locktrans_innodb.result
--- a/mysql-test/r/rpl_locktrans_innodb.result	2008-02-07 13:21:53 +01:00
+++ b/mysql-test/r/rpl_locktrans_innodb.result	2008-03-07 08:52:16 +01:00
@@ -968,3 +968,4 @@ Last_IO_Errno	0
 Last_IO_Error	
 Last_SQL_Errno	0
 Last_SQL_Error	
+Master_Bind	0.0.0.0
diff -Nrup a/mysql-test/r/rpl_locktrans_myisam.result b/mysql-test/r/rpl_locktrans_myisam.result
--- a/mysql-test/r/rpl_locktrans_myisam.result	2008-02-07 13:21:59 +01:00
+++ b/mysql-test/r/rpl_locktrans_myisam.result	2008-03-07 08:52:16 +01:00
@@ -440,3 +440,4 @@ Last_IO_Errno	0
 Last_IO_Error	
 Last_SQL_Errno	0
 Last_SQL_Error	
+Master_Bind	0.0.0.0
diff -Nrup a/sql/ha_ndbcluster.cc b/sql/ha_ndbcluster.cc
--- a/sql/ha_ndbcluster.cc	2008-02-26 17:37:39 +01:00
+++ b/sql/ha_ndbcluster.cc	2008-03-07 08:52:17 +01:00
@@ -10484,6 +10484,14 @@ int ha_ndbcluster::multi_range_start_ret
   bool any_real_read= FALSE;
 
   /*
+    Need to put this check here (rather than in multi_range_read_init()),
+    as it seems the m_read_before_write_removal_possible flag is not
+    set until _after_ multi_range_read_init() has been called.
+  */
+  if (m_read_before_write_removal_possible && likely(starting_range == 0))
+    check_read_before_write_removal();
+
+  /*
     ToDo: I think there is a bug here in that we may well exceed maximum
     keyinfo size for huge number of ranges.
     We need to check for this, and break into multiple execute()'s in this
diff -Nrup a/sql/rpl_mi.cc b/sql/rpl_mi.cc
--- a/sql/rpl_mi.cc	2008-02-20 15:07:00 +01:00
+++ b/sql/rpl_mi.cc	2008-03-07 08:52:17 +01:00
@@ -36,9 +36,12 @@ Master_info::Master_info()
    slave_running(0),  ssl_verify_server_cert(0), slave_run_id(0),
    heartbeat_period(0), received_heartbeats(0)
 {
-  host[0] = 0; user[0] = 0; password[0] = 0; bind_addr[0] = 0;
+  host[0] = 0; user[0] = 0; password[0] = 0;
   ssl_ca[0]= 0; ssl_capath[0]= 0; ssl_cert[0]= 0;
   ssl_cipher[0]= 0; ssl_key[0]= 0;
+
+  DBUG_ASSERT(sizeof(bind_addr) >= 8);
+  strcpy(bind_addr, "0.0.0.0");
 
   master_server_id= (uint32)ULONG_MAX;
   master_epoch= 0;
diff -Nrup a/sql-common/client.c b/sql-common/client.c
--- a/sql-common/client.c	2008-02-20 22:17:30 +01:00
+++ b/sql-common/client.c	2008-03-07 08:52:17 +01:00
@@ -2041,45 +2041,28 @@ CLI_MYSQL_REAL_CONNECT(MYSQL *mysql,cons
            - check error codes
            - don't use socket for localhost if this option is given
          */
-        struct sockaddr_in IPaddr;
-        in_addr_t bind_addr;
-        bind_addr = inet_addr(mysql->options.bind_name);
-        if (bind_addr == INADDR_NONE)
+        struct addrinfo *cli_lst;
+        gai_errno= getaddrinfo(mysql->options.bind_name, NULL,
+                               &hints, &cli_lst);
+        if (gai_errno != 0)
         {
-          int tmp_errno;
-          struct hostent tmp_hostent,*hp;
-          char buff2[GETHOSTBYNAME_BUFF_SIZE];
-          hp = my_gethostbyname_r(mysql->options.bind_name, &tmp_hostent,
-                                  buff2, sizeof(buff2), &tmp_errno);
-          if (!hp)
-          {
-            my_gethostbyname_r_free();
-            set_mysql_extended_error(mysql, CR_UNKNOWN_HOST, unknown_sqlstate,
-                                     ER(CR_UNKNOWN_HOST),
-                                     mysql->options.bind_name, tmp_errno);
-            closesocket(sock);
-            freeaddrinfo(res_lst);
-            goto error;
-          }
-          bzero(&bind_addr,sizeof(bind_addr));
-          memcpy(&bind_addr, hp->h_addr,
-                 min(sizeof(IPaddr.sin_addr), (size_t) hp->h_length));
-          my_gethostbyname_r_free();
+          set_mysql_extended_error(mysql, CR_UNKNOWN_HOST, unknown_sqlstate,
+                                   ER(CR_UNKNOWN_HOST),
+                                   mysql->options.bind_name, gai_errno);
+          closesocket(sock);
+          freeaddrinfo(res_lst);
+          goto error;
         }
-        if (bind_addr != INADDR_NONE) {
-          bzero((char*) &IPaddr, sizeof(IPaddr));
-          IPaddr.sin_family = AF_INET;
-          IPaddr.sin_addr.s_addr = bind_addr;
-          IPaddr.sin_port = 0;
-          if (bind(sock, (struct sockaddr *) &IPaddr, sizeof(IPaddr))) {
-            set_mysql_extended_error(mysql, CR_IPSOCK_ERROR, unknown_sqlstate,
-                                     ER(CR_IPSOCK_ERROR),
-                                     mysql->options.bind_name, errno);
-            closesocket(sock);
-            freeaddrinfo(res_lst);
-            goto error;
-          }
+
+        if (bind(sock, cli_lst->ai_addr, cli_lst->ai_addrlen)) {
+          set_mysql_extended_error(mysql, CR_IPSOCK_ERROR, unknown_sqlstate,
+                                   ER(CR_IPSOCK_ERROR), errno);
+          freeaddrinfo(cli_lst);
+          closesocket(sock);
+          freeaddrinfo(res_lst);
+          goto error;
         }
+        freeaddrinfo(cli_lst);
       }
 
       net->vio= vio_new(sock, VIO_TYPE_TCPIP, VIO_BUFFERED_READ);
Thread
bk commit into 6.0 tree (knielsen:1.2553)knielsen7 Mar