### Checks for library functions
-AC_CHECK_FUNCS(getaddrinfo)
+AC_CHECK_FUNCS(getaddrinfo getpass)
MY_FUNC_MAKECONTEXT
### Checks for library functions.
-AC_CHECK_FUNCS(getaddrinfo)
+AC_CHECK_FUNCS(getaddrinfo getpass)
### Site configuration
#include "misc.h"
#include "proto.h"
+#ifndef HAVE_GETPASS
+#define getpass ersatz_getpass
+static char *
+ersatz_getpass(char *prompt)
+{
+ static char buf[128];
+ char *p;
+ size_t len;
+
+ printf("Note: your input is echoed to the screen\n");
+ printf("Your name? ");
+ fflush(stdout);
+ p = fgets(buf, sizeof(buf), stdin);
+ if (!p)
+ return NULL;
+ len = strlen(p);
+ if (p[len - 1] == '\n')
+ p[len - 1] = 0;
+ return p;
+}
+#endif
+
int
login(int s, char *uname, char *cname, char *cpass,
int kill_proc, int utf8)
return result;
}
-/*
- * WIN32 equivalent for getpass
- */
-char *
-getpass(char *prompt)
-{
- static char tmp[128];
- int len;
- char *cpass;
- DWORD mode;
- HANDLE input_handle = GetStdHandle(STD_INPUT_HANDLE);
-
- if (GetConsoleMode(input_handle, &mode))
- SetConsoleMode(input_handle, mode & ~ENABLE_ECHO_INPUT);
- else
- printf("Note: This is echoed to the screen\n");
- printf("%s", prompt);
- fflush(stdout);
- cpass = fgets(tmp, sizeof(tmp), stdin);
- if (GetConsoleMode(input_handle, &mode))
- SetConsoleMode(input_handle, mode | ENABLE_ECHO_INPUT);
- if (cpass == NULL)
- return NULL;
- len = strlen(cpass);
- if (tmp[len - 1] == '\n')
- tmp[len - 1] = 0;
- return cpass;
-}
-
/*
* POSIX compatible open() replacement
*/
extern int w32_openhandle(const char *fname, int oflag);
extern struct passwd *w32_getpw(void);
-extern char *getpass(char *prompt);
extern void sysdep_init(void);
#define recv(sock, buffer, buf_size, flags) \