diff options
author | Sergei Golubchik <serg@mariadb.org> | 2016-09-03 14:04:17 +0200 |
---|---|---|
committer | Sergei Golubchik <serg@mariadb.org> | 2016-09-12 17:51:50 +0200 |
commit | ece01ef3dc89d20198efbaec40e7114fdb515338 (patch) | |
tree | 7f3c1f1ee812b8bf8fa98fee94103dae4d7afa0d /sql-common | |
parent | 12067633fb44205777e2e9f401bbcb3242bafd66 (diff) | |
download | mariadb-git-ece01ef3dc89d20198efbaec40e7114fdb515338.tar.gz |
After-review changes
* remove redundant code
* fix tests
* move declarations and defines where they belong
Diffstat (limited to 'sql-common')
-rw-r--r-- | sql-common/get_password.c | 227 | ||||
-rw-r--r-- | sql-common/my_time.c | 4 |
2 files changed, 0 insertions, 231 deletions
diff --git a/sql-common/get_password.c b/sql-common/get_password.c deleted file mode 100644 index a113306ed57..00000000000 --- a/sql-common/get_password.c +++ /dev/null @@ -1,227 +0,0 @@ -/* Copyright (c) 2000, 2011, 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. - - There are special exceptions to the terms and conditions of the GPL as it - is applied to this software. - - 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, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ - -/* -** Ask for a password from tty -** This is an own file to avoid conflicts with curses -*/ -#include <my_global.h> -#include <my_sys.h> -#include "mysql.h" -#include <m_string.h> -#include <m_ctype.h> - -#ifdef HAVE_GETPASS -#ifdef HAVE_PWD_H -#include <pwd.h> -#endif /* HAVE_PWD_H */ -#else /* ! HAVE_GETPASS */ -#if !defined(__WIN__) -#include <sys/ioctl.h> -#ifdef HAVE_TERMIOS_H /* For tty-password */ -#include <termios.h> -#define TERMIO struct termios -#else -#ifdef HAVE_TERMIO_H /* For tty-password */ -#include <termio.h> -#define TERMIO struct termio -#else -#include <sgtty.h> -#define TERMIO struct sgttyb -#endif -#endif -#ifdef alpha_linux_port -#include <asm/ioctls.h> -#include <asm/termiobits.h> -#endif -#else -#include <conio.h> -#endif /* __WIN__ */ -#endif /* HAVE_GETPASS */ - -#ifdef HAVE_GETPASSPHRASE /* For Solaris */ -#define getpass(A) getpassphrase(A) -#endif - -#if defined(__WIN__) -/* were just going to fake it here and get input from the keyboard */ -void get_tty_password_buff(const char *opt_message, char *to, size_t length) -{ - HANDLE consoleinput; - DWORD oldstate; - char *pos=to,*end=to+length-1; - int i=0; - - consoleinput= CreateFile("CONIN$", GENERIC_WRITE | GENERIC_READ, FILE_SHARE_READ , - NULL, OPEN_EXISTING, 0, NULL); - if (consoleinput == NULL || consoleinput == INVALID_HANDLE_VALUE) - { - /* This is a GUI application or service without console input, bail out. */ - *to= 0; - return; - } - _cputs(opt_message ? opt_message : "Enter password: "); - - /* - Switch to raw mode (no line input, no echo input). - Allow Ctrl-C handler with ENABLE_PROCESSED_INPUT. - */ - GetConsoleMode(consoleinput, &oldstate); - SetConsoleMode(consoleinput, ENABLE_PROCESSED_INPUT); - for (;;) - { - char tmp; - DWORD chars_read; - if (!ReadConsole(consoleinput, &tmp, 1, &chars_read, NULL)) - break; - if (chars_read == 0) - break; - if (tmp == '\b' || tmp == 127) - { - if (pos != to) - { - _cputs("\b \b"); - pos--; - continue; - } - } - if (tmp == '\n' || tmp == '\r') - break; - if (iscntrl(tmp) || pos == end) - continue; - _cputs("*"); - *(pos++) = tmp; - } - /* Reset console mode after password input. */ - SetConsoleMode(consoleinput, oldstate); - CloseHandle(consoleinput); - *pos=0; - _cputs("\n"); -} - -#else - -#ifndef HAVE_GETPASS -/* - Can't use fgets, because readline will get confused - length is max number of chars in to, not counting \0 - to will not include the eol characters. -*/ - -static void get_password(char *to,uint length,int fd, my_bool echo) -{ - char *pos=to,*end=to+length; - - for (;;) - { - char tmp; - if (my_read(fd,&tmp,1,MYF(0)) != 1) - break; - if (tmp == '\b' || (int) tmp == 127) - { - if (pos != to) - { - if (echo) - { - fputs("\b \b",stdout); - fflush(stdout); - } - pos--; - continue; - } - } - if (tmp == '\n' || tmp == '\r' || tmp == 3) - break; - if (iscntrl(tmp) || pos == end) - continue; - if (echo) - { - fputc('*',stdout); - fflush(stdout); - } - *(pos++) = tmp; - } - *pos=0; - return; -} -#endif /* ! HAVE_GETPASS */ - - -void get_tty_password_buff(const char *opt_message, char *buff, size_t buflen) -{ -#ifdef HAVE_GETPASS - char *passbuff; -#else /* ! HAVE_GETPASS */ - TERMIO org,tmp; -#endif /* HAVE_GETPASS */ - -#ifdef HAVE_GETPASS - passbuff = getpass(opt_message ? opt_message : "Enter password: "); - - /* copy the password to buff and clear original (static) buffer */ - strncpy(buff, passbuff, buflen - 1); -#ifdef _PASSWORD_LEN - memset(passbuff, 0, _PASSWORD_LEN); -#endif -#else - if (isatty(fileno(stdout))) - { - fputs(opt_message ? opt_message : "Enter password: ",stdout); - fflush(stdout); - } -#if defined(HAVE_TERMIOS_H) - tcgetattr(fileno(stdin), &org); - tmp = org; - tmp.c_lflag &= ~(ECHO | ISIG | ICANON); - tmp.c_cc[VMIN] = 1; - tmp.c_cc[VTIME] = 0; - tcsetattr(fileno(stdin), TCSADRAIN, &tmp); - get_password(buff, buflen, fileno(stdin), isatty(fileno(stdout))); - tcsetattr(fileno(stdin), TCSADRAIN, &org); -#elif defined(HAVE_TERMIO_H) - ioctl(fileno(stdin), (int) TCGETA, &org); - tmp=org; - tmp.c_lflag &= ~(ECHO | ISIG | ICANON); - tmp.c_cc[VMIN] = 1; - tmp.c_cc[VTIME]= 0; - ioctl(fileno(stdin),(int) TCSETA, &tmp); - get_password(buff,buflen-1,fileno(stdin),isatty(fileno(stdout))); - ioctl(fileno(stdin),(int) TCSETA, &org); -#else - gtty(fileno(stdin), &org); - tmp=org; - tmp.sg_flags &= ~ECHO; - tmp.sg_flags |= RAW; - stty(fileno(stdin), &tmp); - get_password(buff,buflen-1,fileno(stdin),isatty(fileno(stdout))); - stty(fileno(stdin), &org); -#endif - if (isatty(fileno(stdout))) - fputc('\n',stdout); -#endif /* HAVE_GETPASS */ -} -#endif /*__WIN__*/ - -#ifndef MYSQL_DYNAMIC_PLUGIN -char *get_tty_password(const char *opt_message) -{ - char buff[80]; - get_tty_password_buff(opt_message, buff, sizeof(buff)); - return my_strdup(buff, MYF(MY_FAE)); -} -#endif diff --git a/sql-common/my_time.c b/sql-common/my_time.c index 5fcb07e45c0..450a0fca775 100644 --- a/sql-common/my_time.c +++ b/sql-common/my_time.c @@ -777,10 +777,6 @@ long calc_daynr(uint year,uint month,uint day) DBUG_RETURN(delsum+(int) y/4-temp); } /* calc_daynr */ -/* Can't include mysqld_error.h, it needs mysys to build, thus hardcode 2 error values here. */ -#define ER_WARN_DATA_OUT_OF_RANGE 1264 -#define ER_WARN_INVALID_TIMESTAMP 1299 - /* Convert time in MYSQL_TIME representation in system time zone to its my_time_t form (number of seconds in UTC since begginning of Unix Epoch). |