Commit 97f26ff5 authored by unknown's avatar unknown
Browse files

new variant of passwd() by S. Vojtovich


server-tools/instance-manager/Makefile.am:
  link get_password() to the IM
server-tools/instance-manager/options.cc:
  make passwd() function to read password in mysqladmin way
parent e2d78b85
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ liboptions_a_CPPFLAGS= $(CPPFLAGS) \
	-DPROTOCOL_VERSION=@PROTOCOL_VERSION@

liboptions_a_SOURCES= options.h options.cc priv.h priv.cc
liboptions_a_LIBADD= $(top_builddir)/libmysql/get_password.$(OBJEXT)

# MySQL sometimes uses symlinks to reuse code 
# All symlinked files are grouped in libnet.a
+11 −7
Original line number Diff line number Diff line
@@ -151,7 +151,10 @@ static void usage()

static void passwd()
{
  char user[1024], pw[1024], *p;
  char user[1024], *p;
  const char *pw1, *pw2;
  char pw1msg[]= "Enter password: ";
  char pw2msg[]= "Re-type password: ";
  char crypted_pw[SCRAMBLED_PASSWORD_CHAR_LENGTH + 1];

  fprintf(stderr, "Creating record for new user.\n");
@@ -163,15 +166,16 @@ static void passwd()
  }
  if ((p= strchr(user, '\n'))) *p= 0;

  fprintf(stderr, "Enter password: ");
  if (! fgets(pw, sizeof(pw), stdin))
  pw1= get_tty_password(pw1msg);
  pw2= get_tty_password(pw2msg);

  if (strcmp(pw1, pw2))
  {
    fprintf(stderr, "Unable to read password.\n");
    fprintf(stderr, "Sorry, passwords do not match.\n");
    return;
  }
  if ((p= strchr(pw, '\n'))) *p= 0;

  make_scrambled_password(crypted_pw, pw);
  make_scrambled_password(crypted_pw, pw1);
  printf("%s:%s\n", user, crypted_pw);
}