diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2000-11-10 09:18:25 +0000 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2000-11-10 09:18:25 +0000 | 
| commit | a5b2eb7962524aad65f07c5755920379af5717e3 (patch) | |
| tree | 4a21cc61a7b3cfe1c1a96fc69f37e6daf488af60 | |
| parent | 78423c5899c3927fc038c0f8ceccce9245c5043d (diff) | |
new interface, updated Angus' license, dependent on HAVE_GETPASS_R
| -rw-r--r-- | lib/getpass.c | 27 | ||||
| -rw-r--r-- | lib/getpass.h | 4 | 
2 files changed, 22 insertions, 9 deletions
diff --git a/lib/getpass.c b/lib/getpass.c index 081128684..f5833cc32 100644 --- a/lib/getpass.c +++ b/lib/getpass.c @@ -4,8 +4,9 @@   * Redistribution and use are freely permitted provided that:   *   *   1) This header remain in tact. - *   2) The prototype for getpass is not changed from: - *      int getpass_r(const char *prompt, char *buffer, int buflen) + *   2) The prototypes for getpass and getpass_r are not changed from: + *         char *getpass(const char *prompt) + *         char *getpass_r(const char *prompt, char* buffer, int buflen)   *   3) This source code is not used outside of this(getpass.c) file.   *   4) Any changes to this(getpass.c) source code are made publicly available.   * @@ -34,11 +35,13 @@   *   Daniel Stenberg <daniel@haxx.se>   */ -#ifndef WIN32  #ifdef HAVE_CONFIG_H  #  include <config.h>  #endif +#ifndef HAVE_GETPASS_R + +#ifndef WIN32  #ifdef HAVE_TERMIOS_H  #  if !defined(HAVE_TCGETATTR) && !defined(HAVE_TCSETATTR)   #    undef HAVE_TERMIOS_H @@ -68,7 +71,7 @@  #  define perror(x) fprintf(stderr, "Error in: %s\n", x)  #endif -int getpass_r(const char *prompt, char *buffer, int buflen) +char *getpass_r(const char *prompt, char *buffer, int buflen)  {    FILE *infp;    FILE *outfp; @@ -176,12 +179,12 @@ int getpass_r(const char *prompt, char *buffer, int buflen)    signal(SIGTSTP, sigtstp);  #endif -  return 0; /* we always return success */ +  return buffer; /* we always return success */  }  #else /* WIN32 */  #include <stdio.h>  #include <conio.h> -int getpass_r(const char *prompt, char *buffer, int buflen) +char *getpass_r(const char *prompt, char *buffer, int buflen)  {    int i;    printf("%s", prompt); @@ -197,7 +200,17 @@ int getpass_r(const char *prompt, char *buffer, int buflen)    if (i==buflen)      buffer[buflen-1]=0; -  return 0; /* we always return success */ +  return buffer; /* we always return success */  }  #endif +#endif /* ifndef HAVE_GETPASS_R */ + +#if 0 +/* for consistensy, here's the old-style function: */ +char *getpass(const char *prompt) +{ +  static char buf[256]; +  return getpass_r(prompt, buf, sizeof(buf)); +} +#endif diff --git a/lib/getpass.h b/lib/getpass.h index 2f63e6db0..6245f2295 100644 --- a/lib/getpass.h +++ b/lib/getpass.h @@ -1,8 +1,8 @@  #ifndef __GETPASS_H  #define __GETPASS_H  /* - * Returning non-zero will abort the continued operation! + * Returning NULL will abort the continued operation!   */ -int getpass_r(char *prompt, char* buffer, int buflen ); +char* getpass_r(char *prompt, char* buffer, int buflen );  #endif  | 
