~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to client/get_password.cc

  • Committer: lbieber at stabletransit
  • Date: 2010-10-14 15:43:11 UTC
  • mfrom: (1848.1.4 build)
  • Revision ID: lbieber@drizzle-build-n02.wc1.dfw1.stabletransit.com-20101014154311-ojsrl9uz80yvizey
Merge Travis - changing struct to C++ classes
Merge Andrew - fix bug #571579: libdrizzle unexpected hang up when using in extremely slow networking environment
Merge Andrew - fix bug #643772: Large rows cannot be read if packet_size exceeds max buffer size
Merge Andrew - fix bug #660082: libdrizzle missing rev.147
Merge Andrew - fix bug 653234: drizzledump (and other clients?) should print Password: prompt on stderr
Merge Andrew - fix bug #653438: "Enter password" prompt should not print stars, or erase them on enter
Merge Andrew - fix bug 659824: Drizzle client UTF8 processing endless loop

Show diffs side-by-side

added added

removed removed

Lines of Context:
73
73
      {
74
74
        if (echo)
75
75
        {
76
 
          fputs("\b \b",stdout);
77
 
          fflush(stdout);
 
76
          fputs("\b \b",stderr);
 
77
          fflush(stderr);
78
78
        }
79
79
        pos--;
80
80
        continue;
84
84
      break;
85
85
    if (iscntrl(tmp) || pos == end)
86
86
      continue;
87
 
    if (echo)
88
 
    {
89
 
      fputc('*',stdout);
90
 
      fflush(stdout);
91
 
    }
92
87
    *(pos++) = tmp;
93
88
  }
94
89
  while (pos != to && isspace(pos[-1]) == ' ')
103
98
  TERMIO org,tmp;
104
99
  char buff[80];
105
100
 
106
 
  if (isatty(fileno(stdout)))
 
101
  if (isatty(fileno(stderr)))
107
102
  {
108
 
    fputs(opt_message ? opt_message : "Enter password: ",stdout);
109
 
    fflush(stdout);
 
103
    fputs(opt_message ? opt_message : "Enter password: ",stderr);
 
104
    fflush(stderr);
110
105
  }
111
106
#  if defined(HAVE_TERMIOS_H)
112
107
  tcgetattr(fileno(stdin), &org);
115
110
  tmp.c_cc[VMIN] = 1;
116
111
  tmp.c_cc[VTIME] = 0;
117
112
  tcsetattr(fileno(stdin), TCSADRAIN, &tmp);
118
 
  get_password(buff, sizeof(buff)-1, fileno(stdin), isatty(fileno(stdout)));
 
113
  get_password(buff, sizeof(buff)-1, fileno(stdin), isatty(fileno(stderr)));
119
114
  tcsetattr(fileno(stdin), TCSADRAIN, &org);
120
115
#  elif defined(HAVE_TERMIO_H)
121
116
  ioctl(fileno(stdin), (int) TCGETA, &org);
124
119
  tmp.c_cc[VMIN] = 1;
125
120
  tmp.c_cc[VTIME]= 0;
126
121
  ioctl(fileno(stdin),(int) TCSETA, &tmp);
127
 
  get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stdout)));
 
122
  get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stderr)));
128
123
  ioctl(fileno(stdin),(int) TCSETA, &org);
129
124
#  else
130
125
  gtty(fileno(stdin), &org);
132
127
  tmp.sg_flags &= ~ECHO;
133
128
  tmp.sg_flags |= RAW;
134
129
  stty(fileno(stdin), &tmp);
135
 
  get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stdout)));
 
130
  get_password(buff,sizeof(buff)-1,fileno(stdin),isatty(fileno(stderr)));
136
131
  stty(fileno(stdin), &org);
137
132
#  endif
138
 
  if (isatty(fileno(stdout)))
139
 
    fputc('\n',stdout);
 
133
  if (isatty(fileno(stderr)))
 
134
    fputc('\n',stderr);
140
135
 
141
136
  return strdup(buff);
142
137
}