sfree(dir);
}
+int vet_filename(char *name)
+{
+ if (strchr(name, '/') || strchr(name, '\\') || strchr(name, ':'))
+ return FALSE;
+
+ if (!name[strspn(name, ".")]) /* entirely composed of dots */
+ return FALSE;
+
+ return TRUE;
+}
+
int create_directory(char *name)
{
return CreateDirectory(name, NULL) != 0;
/*
* Be told what socket we're supposed to be using.
*/
-static SOCKET sftp_ssh_socket;
+static SOCKET sftp_ssh_socket = INVALID_SOCKET;
static HANDLE netevent = NULL;
char *do_select(SOCKET skt, int startup)
{
return 0;
}
-char *ssh_sftp_get_cmdline(char *prompt)
+char *ssh_sftp_get_cmdline(char *prompt, int no_fds_ok)
{
int ret;
struct command_read_ctx actx, *ctx = &actx;
fputs(prompt, stdout);
fflush(stdout);
- if (sftp_ssh_socket == INVALID_SOCKET || p_WSAEventSelect == NULL) {
+ if ((sftp_ssh_socket == INVALID_SOCKET && no_fds_ok) ||
+ p_WSAEventSelect == NULL) {
return fgetline(stdin); /* very simple */
}