otherwise return username
*/
-char *auth_server(int fd, int module, char *addr, char *leader)
+char *auth_server(int f_in, int f_out, int module, char *addr, char *leader)
{
char *users = lp_auth_users(module);
char challenge[16];
base64_encode(challenge, 16, b64_challenge);
- io_printf(fd,"%s%s\n", leader, b64_challenge);
+ io_printf(f_out, "%s%s\n", leader, b64_challenge);
- if (!read_line(fd, line, sizeof(line)-1)) {
+ if (!read_line(f_in, line, sizeof(line)-1)) {
return NULL;
}
if (!users) return NULL;
for (tok=strtok(users," ,\t"); tok; tok = strtok(NULL," ,\t")) {
- if (fnmatch(tok, user, 0) == 0) break;
+ if (wildmatch(tok, user)) break;
}
free(users);
if (!(pass=getpassf(password_file)) && !(pass=getenv("RSYNC_PASSWORD"))) {
/* XXX: cyeoh says that getpass is deprecated, because
- it may return a truncated password on some systems,
- and it is not in the LSB. */
+ * it may return a truncated password on some systems,
+ * and it is not in the LSB.
+ *
+ * Andrew Klein says that getpassphrase() is present
+ * on Solaris and reads up to 256 characters.
+ *
+ * OpenBSD has a readpassphrase() that might be more suitable.
+ */
pass = getpass("Password: ");
}