List:Commits« Previous MessageNext Message »
From:Nirbhay Choubey Date:June 8 2012 8:05pm
Subject:bzr push into mysql-trunk branch (nirbhay.choubey:3979 to 3980) WL#5603
View as plain text  
 3980 Nirbhay Choubey	2012-06-09
      WL#5603 : Revise how we handle passwords on
                the command line
      
      Addressing additional review comments.

    added:
      mysys_ssl/my_default_priv.h
    renamed:
      mysys_ssl/default.c => mysys_ssl/my_default.cc
      mysys_ssl/my_default.h => include/my_default.h
      mysys_ssl/my_getopt.c => mysys_ssl/my_getopt.cc
    modified:
      client/mysql_config_editor.cc
      extra/CMakeLists.txt
      extra/my_print_defaults.c
      libmysql/CMakeLists.txt
      libmysqld/CMakeLists.txt
      libmysqld/examples/CMakeLists.txt
      mysql-test/r/mysql_config_editor.result
      mysql-test/t/mysql_config_editor.test
      mysys/mysys_priv.h
      mysys_ssl/CMakeLists.txt
      sql/CMakeLists.txt
      storage/myisam/CMakeLists.txt
      tests/CMakeLists.txt
      mysys_ssl/my_default.cc
      include/my_default.h
 3979 Bjorn Munch	2012-06-08 [merge]
      null upmerge

=== modified file 'client/mysql_config_editor.cc'
--- a/client/mysql_config_editor.cc	2012-05-31 15:33:21 +0000
+++ b/client/mysql_config_editor.cc	2012-06-08 20:03:42 +0000
@@ -31,14 +31,15 @@
 #include "my_aes.h"
 #include "client_priv.h"
 #include "my_default.h"
+#include "my_default_priv.h"
 
 #define MYSQL_CONFIG_EDITOR_VERSION "1.0"
 #define MY_LINE_MAX 4096
 /*
   Header length for the login file.
-  4-byte (unused) + MY_LOGIN_KEY_LEN
+  4-byte (unused) + LOGIN_KEY_LEN
  */
-#define MY_LOGIN_HEADER_LEN (4 + MY_LOGIN_KEY_LEN)
+#define MY_LOGIN_HEADER_LEN (4 + LOGIN_KEY_LEN)
 
 static int g_fd;
 
@@ -50,9 +51,10 @@ static size_t file_size;
 static char *opt_user= NULL, *opt_password= NULL, *opt_host=NULL,
             *opt_login_path= NULL;
 
-static char my_key[MY_LOGIN_KEY_LEN];
+static char my_login_file[FN_REFLEN];
+static char my_key[LOGIN_KEY_LEN];
 
-static my_bool opt_verbose, opt_all, tty_password= 0;
+static my_bool opt_verbose, opt_all, tty_password= 0, opt_warn;
 
 int execute_commands(int argc, char **argv);
 static void print_login_path(DYNAMIC_STRING *file_buf, const char *path_name);
@@ -125,6 +127,9 @@ static struct my_option my_long_options[
    &opt_verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
   {"version", 'V', "Output version information and exit.", 0, 0, 0, GET_NO_ARG,
    NO_ARG, 0, 0, 0, 0, 0, 0},
+  {"warn", 'w', "Warn and ask for confirmation if set command attempts to "
+   "overwrite an existing login path (enabled by default).",
+   &opt_warn, &opt_warn, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
   { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
 };
 
@@ -135,7 +140,7 @@ get_one_option(int optid, const struct m
 {
   switch(optid) {
   case '#':
-    DBUG_PUSH(argument ? argument : "d:t:o,/tmp/mysqladmin.trace");
+    DBUG_PUSH(argument ? argument : "d:t:o,/tmp/mysql_config_editor.trace");
     break;
   case 'p':
     tty_password= 1;
@@ -234,7 +239,22 @@ int execute_commands(int argc, char **ar
 
         dynstr_append(&path_buf, "\n");
 
-        /* Check and remove opt_login_path if it already exists. */
+        /* Warn if login path already exists */
+        if (opt_warn && ((locate_login_path (&file_buf, opt_login_path))
+                         != NULL))
+        {
+          int choice;
+          printf ("WARNING : \'%s\' path already exists and will be "
+                  "overwritten. \n Continue? (Press y|Y for Yes, any "
+                  "other key for No) : ",
+                  opt_login_path);
+          choice= getchar();
+
+          if (choice != (int) 'y' && choice != (int) 'Y')
+            break;                              /* skip */
+        }
+
+        /* Remove the login path. */
         remove_login_path(&file_buf, opt_login_path);
 
         /* Append the new login path to the file buffer. */
@@ -329,7 +349,7 @@ static my_bool check_and_create_login_fi
   const ushort create_mode_all= (S_IRWXU | S_IRWXG | S_IRWXO);
 
   /* Get the login file name. */
-  if (! set_login_file_name())
+  if (! my_default_get_login_file(my_login_file, sizeof(my_login_file)))
   {
     verbose_msg("Error! Failed to set login file name.\n");
     goto error;
@@ -808,7 +828,7 @@ static int encrypt_buffer(const char *pl
 
   aes_len= my_aes_get_size(plain_len);
 
-  if (my_aes_encrypt(plain, plain_len, cipher, my_key, MY_LOGIN_KEY_LEN) == aes_len)
+  if (my_aes_encrypt(plain, plain_len, cipher, my_key, LOGIN_KEY_LEN) == aes_len)
   {
     DBUG_RETURN(aes_len);
   }
@@ -837,7 +857,7 @@ static int decrypt_buffer(const char *ci
   int aes_length;
 
   if ((aes_length= my_aes_decrypt(cipher, cipher_len, (char *) plain,
-                                  my_key, MY_LOGIN_KEY_LEN)) > 0)
+                                  my_key, LOGIN_KEY_LEN)) > 0)
   {
     DBUG_RETURN(aes_length);
   }
@@ -873,8 +893,8 @@ int add_header(void)
   }
 
   /* Write the login key. */
-  if ((my_write(g_fd, (const uchar *)my_key, MY_LOGIN_KEY_LEN, MYF(MY_WME)))
-      != MY_LOGIN_KEY_LEN)
+  if ((my_write(g_fd, (const uchar *)my_key, LOGIN_KEY_LEN, MYF(MY_WME)))
+      != LOGIN_KEY_LEN)
   {
     verbose_msg("Error! couldn't write to the file.\n");
     goto error;
@@ -899,7 +919,7 @@ void generate_login_key()
 
   verbose_msg("Generating a new key.\n");
   /* Get a sequence of random non-printable ASCII */
-  for (uint i= 0; i < MY_LOGIN_KEY_LEN; i++)
+  for (uint i= 0; i < LOGIN_KEY_LEN; i++)
     my_key[i]= (char)((int)(my_rnd_ssl(&rnd) * 100000) % 32);
 
   DBUG_VOID_RETURN;
@@ -921,8 +941,8 @@ int read_login_key(void)
   if (my_seek(g_fd, 4, SEEK_SET, MYF(MY_WME)) != 4)
     DBUG_RETURN(-1);                            /* Error while seeking. */
 
-  if (my_read(g_fd, (uchar *)my_key, MY_LOGIN_KEY_LEN, MYF(MY_WME))
-      != MY_LOGIN_KEY_LEN)
+  if (my_read(g_fd, (uchar *)my_key, LOGIN_KEY_LEN, MYF(MY_WME))
+      != LOGIN_KEY_LEN)
   {
     verbose_msg("Failed to read login key.\n");
     DBUG_RETURN(-1);

=== modified file 'extra/CMakeLists.txt'
--- a/extra/CMakeLists.txt	2012-05-31 15:33:21 +0000
+++ b/extra/CMakeLists.txt	2012-06-08 20:03:42 +0000
@@ -15,7 +15,6 @@
 
 INCLUDE_DIRECTORIES(
 ${CMAKE_SOURCE_DIR}/include 
-${CMAKE_SOURCE_DIR}/mysys_ssl
 ${ZLIB_INCLUDE_DIR}
 # Following is for perror, in case NDB is compiled in.
 ${CMAKE_SOURCE_DIR}/storage/ndb/include

=== modified file 'extra/my_print_defaults.c'
--- a/extra/my_print_defaults.c	2012-05-31 15:33:21 +0000
+++ b/extra/my_print_defaults.c	2012-06-08 20:03:42 +0000
@@ -31,6 +31,7 @@
 
 
 const char *config_file="my";			/* Default config file */
+static char *my_login_path;
 uint verbose= 0, opt_defaults_file_used= 0;
 const char *default_dbug_option="d:t:o,/tmp/my_print_defaults.trace";
 

=== renamed file 'mysys_ssl/my_default.h' => 'include/my_default.h'
--- a/mysys_ssl/my_default.h	2012-05-31 15:33:21 +0000
+++ b/include/my_default.h	2012-06-08 20:03:42 +0000
@@ -16,45 +16,36 @@
 #ifndef MY_DEFAULT_INCLUDED
 #define MY_DEFAULT_INCLUDED
 
-/*
-  Number of byte used to store the length of
-  cipher that follows.
-*/
-#define MAX_CIPHER_STORE_LEN 4U
-#define MY_LOGIN_KEY_LEN 20U
-
-#ifdef __cplusplus
-extern "C" {
-#endif
+
+#include "my_global.h"
+
+C_MODE_START
+
 extern const char *my_defaults_extra_file;
 extern const char *my_defaults_group_suffix;
 extern const char *my_defaults_file;
-extern const char* my_login_file;
-extern const char* my_login_path;
 extern my_bool my_getopt_use_args_separator;
 
 /* Define the type of function to be passed to process_default_option_files */
 typedef int (*Process_option_func)(void *ctx, const char *group_name,
                                    const char *option);
 
-extern my_bool my_getopt_is_args_separator(const char* arg);
-extern int get_defaults_options(int argc, char **argv,
-                                char **defaults, char **extra_defaults,
-                                char **group_suffix, char **login_path);
-extern int my_load_defaults(const char *conf_file, const char **groups,
-                            int *argc, char ***argv, const char ***);
-extern int load_defaults(const char *conf_file, const char **groups,
-                         int *argc, char ***argv);
-extern int my_search_option_files(const char *conf_file, int *argc,
-                                  char ***argv, uint *args_used,
-                                  Process_option_func func, void *func_ctx,
-                                  const char **default_directories);
-extern void free_defaults(char **argv);
-extern void my_print_default_files(const char *conf_file);
-extern void print_defaults(const char *conf_file, const char **groups);
-extern int set_login_file_name();
-#ifdef __cplusplus
-}
-#endif
+my_bool my_getopt_is_args_separator(const char* arg);
+int get_defaults_options(int argc, char **argv,
+                         char **defaults, char **extra_defaults,
+                         char **group_suffix, char **login_path);
+int my_load_defaults(const char *conf_file, const char **groups,
+                     int *argc, char ***argv, const char ***);
+int load_defaults(const char *conf_file, const char **groups,
+                  int *argc, char ***argv);
+int my_search_option_files(const char *conf_file, int *argc,
+                           char ***argv, uint *args_used,
+                           Process_option_func func, void *func_ctx,
+                           const char **default_directories);
+void free_defaults(char **argv);
+void my_print_default_files(const char *conf_file);
+void print_defaults(const char *conf_file, const char **groups);
+
+C_MODE_END
 
 #endif  // MY_DEFAULT_INCLUDED

=== modified file 'libmysql/CMakeLists.txt'
--- a/libmysql/CMakeLists.txt	2012-06-04 15:35:18 +0000
+++ b/libmysql/CMakeLists.txt	2012-06-08 20:03:42 +0000
@@ -19,7 +19,6 @@ INCLUDE_DIRECTORIES(
   ${CMAKE_SOURCE_DIR}/regex
   ${CMAKE_SOURCE_DIR}/sql
   ${CMAKE_SOURCE_DIR}/strings
-  ${CMAKE_SOURCE_DIR}/mysys_ssl
   ${SSL_INCLUDE_DIRS}
   ${SSL_INTERNAL_INCLUDE_DIRS}
   ${ZLIB_INCLUDE_DIR})

=== modified file 'libmysqld/CMakeLists.txt'
--- a/libmysqld/CMakeLists.txt	2012-05-31 15:33:21 +0000
+++ b/libmysqld/CMakeLists.txt	2012-06-08 20:03:42 +0000
@@ -23,7 +23,6 @@ INCLUDE_DIRECTORIES(
   ${CMAKE_SOURCE_DIR}/sql
   ${CMAKE_BINARY_DIR}/sql 
   ${CMAKE_SOURCE_DIR}/regex
-  ${CMAKE_SOURCE_DIR}/mysys_ssl
   ${ZLIB_INCLUDE_DIR}
   ${SSL_INCLUDE_DIRS}
   ${SSL_INTERNAL_INCLUDE_DIRS}

=== modified file 'libmysqld/examples/CMakeLists.txt'
--- a/libmysqld/examples/CMakeLists.txt	2012-05-31 15:33:21 +0000
+++ b/libmysqld/examples/CMakeLists.txt	2012-06-08 20:03:42 +0000
@@ -16,7 +16,6 @@
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include
                     ${CMAKE_SOURCE_DIR}/libmysqld/include
                     ${CMAKE_SOURCE_DIR}/regex 
-                    ${CMAKE_SOURCE_DIR}/mysys_ssl
                     ${READLINE_INCLUDE_DIR}                 
                     )
 

=== modified file 'mysql-test/r/mysql_config_editor.result'
--- a/mysql-test/r/mysql_config_editor.result	2012-05-31 15:33:21 +0000
+++ b/mysql-test/r/mysql_config_editor.result	2012-06-08 20:03:42 +0000
@@ -100,6 +100,9 @@ MySQL Configuration Tool.
   -u, --user=name     User name to be entered into the login file.
   -v, --verbose       Write more information.
   -V, --version       Output version information and exit.
+  -w, --warn          Warn and ask for confirmation if set command attempts to
+                      overwrite an existing login path (enabled by default).
+                      (Defaults to on; use --skip-warn to disable.)
 
 Variables (--variable-name=value)
 and boolean options {FALSE|TRUE}  Value (after reading options)
@@ -109,6 +112,7 @@ host                              (No de
 login-path                        client
 user                              (No default value)
 verbose                           FALSE
+warn                              TRUE
 
 Where command can be any one of the following :
        set    [options]          Sets username/password/hostname for a

=== modified file 'mysql-test/t/mysql_config_editor.test'
--- a/mysql-test/t/mysql_config_editor.test	2012-05-31 15:33:21 +0000
+++ b/mysql-test/t/mysql_config_editor.test	2012-06-08 20:03:42 +0000
@@ -45,8 +45,8 @@
 --echo 
 --echo #
 --echo # Overwrite existing paths, test-login-path2 & default
---exec $MYSQL_CONFIG_EDITOR set --user=test_user4 --login-path=test-login-path2
---exec $MYSQL_CONFIG_EDITOR set --user=test_user5
+--exec $MYSQL_CONFIG_EDITOR set --user=test_user4 --login-path=test-login-path2 --skip-warn
+--exec $MYSQL_CONFIG_EDITOR set --user=test_user5 --skip-warn
 --echo #
 --echo # all the paths again
 --exec $MYSQL_CONFIG_EDITOR print --all 2>&1

=== modified file 'mysys/mysys_priv.h'
--- a/mysys/mysys_priv.h	2011-09-07 10:08:09 +0000
+++ b/mysys/mysys_priv.h	2012-06-08 20:03:42 +0000
@@ -66,7 +66,7 @@ extern mysql_mutex_t THR_LOCK_charset;
 #ifdef HUGETLB_USE_PROC_MEMINFO
 extern PSI_file_key key_file_proc_meminfo;
 #endif /* HUGETLB_USE_PROC_MEMINFO */
-extern PSI_file_key key_file_charset, key_file_cnf;
+extern PSI_file_key key_file_charset;
 #endif /* HAVE_PSI_INTERFACE */
 
 /*

=== modified file 'mysys_ssl/CMakeLists.txt'
--- a/mysys_ssl/CMakeLists.txt	2012-06-05 12:03:10 +0000
+++ b/mysys_ssl/CMakeLists.txt	2012-06-08 20:03:42 +0000
@@ -29,7 +29,7 @@ IF(HAVE_VISIBILITY_HIDDEN)
     PROPERTIES COMPILE_FLAGS "-fvisibility=hidden")
 ENDIF()
 
-SET(MYSYS_SSL_SOURCES default.c my_getopt.c my_aes.cc)
+SET(MYSYS_SSL_SOURCES my_default.cc my_getopt.cc my_aes.cc)
 
 ADD_CONVENIENCE_LIBRARY(mysys_ssl ${MYSYS_SSL_SOURCES})
 TARGET_LINK_LIBRARIES(mysys_ssl dbug strings ${SSL_LIBRARIES})

=== renamed file 'mysys_ssl/default.c' => 'mysys_ssl/my_default.cc'
--- a/mysys_ssl/default.c	2012-05-31 15:33:21 +0000
+++ b/mysys_ssl/my_default.cc	2012-06-08 20:03:42 +0000
@@ -38,6 +38,7 @@
 
 #include "../mysys/mysys_priv.h"
 #include "my_default.h"
+#include "my_default_priv.h"
 #include "m_string.h"
 #include "m_ctype.h"
 #include <my_dir.h>
@@ -46,6 +47,12 @@
 #include <winbase.h>
 #endif
 
+C_MODE_START
+#ifdef HAVE_PSI_INTERFACE
+extern PSI_file_key key_file_cnf;
+#endif
+C_MODE_END
+
 /**
    arguments separator
 
@@ -93,14 +100,14 @@ my_bool my_getopt_is_args_separator(cons
 const char *my_defaults_file=0;
 const char *my_defaults_group_suffix=0;
 const char *my_defaults_extra_file=0;
-const char *my_login_path= 0;
-const char *my_login_file= 0;
+
+static const char *my_login_path= 0;
 
 static char my_defaults_file_buffer[FN_REFLEN];
 static char my_defaults_extra_file_buffer[FN_REFLEN];
 
-static char my_login_file_buffer[FN_REFLEN];
-const char my_key[MY_LOGIN_KEY_LEN];
+static char my_login_file[FN_REFLEN];
+static char my_key[LOGIN_KEY_LEN];
 
 static my_bool defaults_already_read= FALSE;
 
@@ -312,7 +319,8 @@ int my_search_option_files(const char *c
         extra_groups[i]= group->type_names[i];  /** copy group */
 
         len= strlen(extra_groups[i]);
-        if (!(ptr= alloc_root(ctx->alloc, (uint) (len+instance_len+1))))
+        if (!(ptr= (char *) alloc_root(ctx->alloc,
+                                       (uint) (len + instance_len + 1))))
           DBUG_RETURN(2);
 
         extra_groups[i+group->count]= ptr;
@@ -355,7 +363,8 @@ int my_search_option_files(const char *c
       instance_len= strlen(my_defaults_group_suffix);
       len= strlen(extra_groups[i]);
 
-      if (!(ptr= alloc_root(ctx->alloc, (uint) (len + instance_len + 1))))
+      if (!(ptr= (char *) alloc_root(ctx->alloc,
+                                     (uint) (len + instance_len + 1))))
         DBUG_RETURN(2);
 
       extra_groups[i + 1]= ptr;
@@ -456,7 +465,7 @@ static int handle_default_option(void *i
 
   if (find_type((char *)group_name, ctx->group, FIND_TYPE_NO_PREFIX))
   {
-    if (!(tmp= alloc_root(ctx->alloc, strlen(option) + 1)))
+    if (!(tmp= (char *) alloc_root(ctx->alloc, strlen(option) + 1)))
       return 1;
     if (insert_dynamic(ctx->args, &tmp))
       return 1;
@@ -652,8 +661,8 @@ int my_load_defaults(const char *conf_fi
   ctx.group= &group;
 
   if ((error= my_search_option_files(conf_file, argc, argv,
-                                    &args_used, handle_default_option,
-                                    (void *) &ctx, dirs)))
+                                     &args_used, handle_default_option,
+                                     (void *) &ctx, dirs)))
   {
     free_root(&alloc,MYF(0));
     DBUG_RETURN(error);
@@ -661,7 +670,7 @@ int my_load_defaults(const char *conf_fi
 
   /* Read options from login group. */
   is_login_file= TRUE;
-  if (set_login_file_name() &&
+  if (my_default_get_login_file(my_login_file, sizeof(my_login_file)) &&
       (error= my_search_option_files(my_login_file,argc, argv, &args_used,
                                      handle_default_option, (void *) &ctx,
                                      dirs)))
@@ -1156,8 +1165,8 @@ static my_bool mysql_file_getline(char *
     {
       /* Move past unused bytes. */
       mysql_file_fseek(file, 4, SEEK_SET, MYF(MY_WME));
-      if (mysql_file_fread(file, (uchar *) my_key, MY_LOGIN_KEY_LEN,
-                           MYF(MY_WME)) != MY_LOGIN_KEY_LEN)
+      if (mysql_file_fread(file, (uchar *) my_key, LOGIN_KEY_LEN,
+                           MYF(MY_WME)) != LOGIN_KEY_LEN)
         return 0;
     }
 
@@ -1173,7 +1182,7 @@ static my_bool mysql_file_getline(char *
 
     mysql_file_fread(file, cipher, cipher_len, MYF(MY_WME));
     if ((length= my_aes_decrypt((const char *) cipher, cipher_len, str,
-                                my_key, MY_LOGIN_KEY_LEN)) < 0)
+                                my_key, LOGIN_KEY_LEN)) < 0)
     {
       /* Attempt to decrypt failed. */
       return 0;
@@ -1417,30 +1426,39 @@ static const char **init_default_directo
 }
 
 /**
-  Generate and store the login file name in my_login_file.
+  Place the login file name in the specified buffer.
+
+  @param file_name     [out]  Buffer to hold login file name
+  @param file_name_size [in]  Length of the buffer
 
   @return 1 - Success
           0 - Failure
 */
 
-int set_login_file_name()
+int my_default_get_login_file(char *file_name, size_t file_name_size)
 {
-    /* Read options from login group. */
-    if (getenv("MYSQL_TEST_LOGIN_FILE"))
-      sprintf(my_login_file_buffer, "%s", getenv("MYSQL_TEST_LOGIN_FILE"));
+  size_t rc;
+
+  if (getenv("MYSQL_TEST_LOGIN_FILE"))
+    rc= my_snprintf(file_name, file_name_size, "%s",
+                    getenv("MYSQL_TEST_LOGIN_FILE"));
 #ifdef _WIN32
-    else if (getenv("APPDATA"))
-      sprintf(my_login_file_buffer, "%s\\MySQL\\.mylogin.cnf", getenv("APPDATA"));
+  else if (getenv("APPDATA"))
+    rc= my_snprintf(file_name, file_name_size, "%s\\MySQL\\.mylogin.cnf",
+                    getenv("APPDATA"));
 #else
-    else if (getenv("HOME"))
-      sprintf(my_login_file_buffer, "%s/.mylogin.cnf", getenv("HOME"));
+  else if (getenv("HOME"))
+    rc= my_snprintf(file_name, file_name_size, "%s/.mylogin.cnf",
+                    getenv("HOME"));
 #endif
-    else
-    {
-      my_login_file= NULL;
-      return 0;
-    }
-    my_login_file= my_login_file_buffer;
-    return 1;
-}
+  else
+  {
+    memset(file_name, 0, sizeof(file_name));
+    return 0;
+  }
+  /* Anything <= 0 will be treated as error. */
+  if (rc <= 0)
+    return 0;
 
+  return 1;
+}

=== added file 'mysys_ssl/my_default_priv.h'
--- a/mysys_ssl/my_default_priv.h	1970-01-01 00:00:00 +0000
+++ b/mysys_ssl/my_default_priv.h	2012-06-08 20:03:42 +0000
@@ -0,0 +1,43 @@
+/* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
+
+  This program is free software; you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation; version 2 of the License.
+
+  This program is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with this program; if not, write to the Free Software Foundation,
+  51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */
+
+#ifndef MY_DEFAULT_PRIV_INCLUDED
+#define MY_DEFAULT_PRIV_INCLUDED
+
+#include "my_global.h"                          /* C_MODE_START, C_MODE_END */
+
+/*
+  Number of byte used to store the length of
+  cipher that follows.
+*/
+#define MAX_CIPHER_STORE_LEN 4U
+#define LOGIN_KEY_LEN 20U
+
+C_MODE_START
+
+/**
+  Place the login file name in the specified buffer.
+
+  @param file_name     [out]  Buffer to hold login file name
+  @param file_name_size [in]  Length of the buffer
+
+  @return 1 - Success
+          0 - Failure
+*/
+int my_default_get_login_file(char *file_name, size_t file_name_size);
+
+C_MODE_END
+
+#endif /* MY_DEFAULT_PRIV_INCLUDED */

=== renamed file 'mysys_ssl/my_getopt.c' => 'mysys_ssl/my_getopt.cc'
=== modified file 'sql/CMakeLists.txt'
--- a/sql/CMakeLists.txt	2012-06-04 15:35:18 +0000
+++ b/sql/CMakeLists.txt	2012-06-08 20:03:42 +0000
@@ -17,7 +17,6 @@ INCLUDE_DIRECTORIES(
   ${CMAKE_SOURCE_DIR}/include 
   ${CMAKE_SOURCE_DIR}/sql 
   ${CMAKE_SOURCE_DIR}/regex 
-  ${CMAKE_SOURCE_DIR}/mysys_ssl
   ${ZLIB_INCLUDE_DIR}
   ${SSL_INCLUDE_DIRS}
   ${CMAKE_BINARY_DIR}/sql

=== modified file 'storage/myisam/CMakeLists.txt'
--- a/storage/myisam/CMakeLists.txt	2012-05-31 15:33:21 +0000
+++ b/storage/myisam/CMakeLists.txt	2012-06-08 20:03:42 +0000
@@ -13,7 +13,6 @@
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 
-INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/mysys_ssl)
 
 SET(MYISAM_SOURCES  ft_boolean_search.c ft_nlq_search.c ft_parser.c ft_static.c
                                 ha_myisam.cc

=== modified file 'tests/CMakeLists.txt'
--- a/tests/CMakeLists.txt	2012-05-31 15:33:21 +0000
+++ b/tests/CMakeLists.txt	2012-06-08 20:03:42 +0000
@@ -15,9 +15,7 @@
 
 ADD_DEFINITIONS("-DMYSQL_CLIENT")
 
-INCLUDE_DIRECTORIES(
-  ${CMAKE_SOURCE_DIR}/include
-  ${CMAKE_SOURCE_DIR}/mysys_ssl)
+INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
 
 ADD_EXECUTABLE(mysql_client_test mysql_client_test.c)
 TARGET_LINK_LIBRARIES(mysql_client_test mysqlclient)

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (nirbhay.choubey:3979 to 3980) WL#5603Nirbhay Choubey9 Jun