mirror of
https://github.com/reactos/reactos.git
synced 2025-05-25 12:14:32 +00:00
[NFSD] [TELNET] Remove the hardcoded directory paths C:\ReactOS
CORE-14747
This commit is contained in:
parent
86b915ef84
commit
b8e98c4e66
4 changed files with 64 additions and 7 deletions
|
@ -74,8 +74,10 @@ struct idmap_lookup {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __REACTOS__
|
||||||
/* configuration */
|
/* configuration */
|
||||||
static const char CONFIG_FILENAME[] = "C:\\ReactOS\\System32\\drivers\\etc\\ms-nfs41-idmap.conf";
|
static const char CONFIG_FILENAME[] = "C:\\ReactOS\\System32\\drivers\\etc\\ms-nfs41-idmap.conf";
|
||||||
|
#endif
|
||||||
|
|
||||||
struct idmap_config {
|
struct idmap_config {
|
||||||
/* ldap server information */
|
/* ldap server information */
|
||||||
|
@ -361,6 +363,9 @@ static int config_init(
|
||||||
struct idmap_config *config)
|
struct idmap_config *config)
|
||||||
{
|
{
|
||||||
int status;
|
int status;
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
char config_path[MAX_PATH];
|
||||||
|
#endif
|
||||||
|
|
||||||
/* load default values */
|
/* load default values */
|
||||||
status = config_defaults(config);
|
status = config_defaults(config);
|
||||||
|
@ -369,10 +374,29 @@ static int config_init(
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
if (GetSystemDirectoryA(config_path, ARRAYSIZE(config_path)))
|
||||||
|
{
|
||||||
|
StringCchCatA(config_path, ARRAYSIZE(config_path), "\\drivers\\etc\\ms-nfs41-idmap.conf");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StringCchCopyA(config_path, ARRAYSIZE(config_path), "C:\\ReactOS\\system32\\drivers\\etc\\ms-nfs41-idmap.conf");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/* load configuration from file */
|
/* load configuration from file */
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
status = config_load(config, config_path);
|
||||||
|
#else
|
||||||
status = config_load(config, CONFIG_FILENAME);
|
status = config_load(config, CONFIG_FILENAME);
|
||||||
|
#endif
|
||||||
if (status) {
|
if (status) {
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
eprintf("config_load('%s') failed with %d\n", config_path, status);
|
||||||
|
#else
|
||||||
eprintf("config_load('%s') failed with %d\n", CONFIG_FILENAME, status);
|
eprintf("config_load('%s') failed with %d\n", CONFIG_FILENAME, status);
|
||||||
|
#endif
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
|
|
|
@ -23,6 +23,9 @@
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
#include <tchar.h>
|
#include <tchar.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
#include <strsafe.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <devioctl.h>
|
#include <devioctl.h>
|
||||||
#include <lmcons.h> /* UNLEN for GetUserName() */
|
#include <lmcons.h> /* UNLEN for GetUserName() */
|
||||||
|
@ -38,7 +41,9 @@
|
||||||
#define MAX_NUM_THREADS 128
|
#define MAX_NUM_THREADS 128
|
||||||
DWORD NFS41D_VERSION = 0;
|
DWORD NFS41D_VERSION = 0;
|
||||||
|
|
||||||
|
#ifndef __REACTOS__
|
||||||
static const char FILE_NETCONFIG[] = "C:\\ReactOS\\System32\\drivers\\etc\\netconfig";
|
static const char FILE_NETCONFIG[] = "C:\\ReactOS\\System32\\drivers\\etc\\netconfig";
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Globals */
|
/* Globals */
|
||||||
char localdomain_name[NFS41_HOSTNAME_LEN];
|
char localdomain_name[NFS41_HOSTNAME_LEN];
|
||||||
|
@ -163,10 +168,29 @@ typedef struct _nfsd_args {
|
||||||
static bool_t check_for_files()
|
static bool_t check_for_files()
|
||||||
{
|
{
|
||||||
FILE *fd;
|
FILE *fd;
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
char config_path[MAX_PATH];
|
||||||
|
|
||||||
|
if (GetSystemDirectoryA(config_path, ARRAYSIZE(config_path)))
|
||||||
|
{
|
||||||
|
StringCchCatA(config_path, ARRAYSIZE(config_path), "\\drivers\\etc\\netconfig");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StringCchCopyA(config_path, ARRAYSIZE(config_path), "C:\\ReactOS\\system32\\drivers\\etc\\netconfig");
|
||||||
|
}
|
||||||
|
|
||||||
|
fd = fopen(config_path, "r");
|
||||||
|
#else
|
||||||
|
|
||||||
fd = fopen(FILE_NETCONFIG, "r");
|
fd = fopen(FILE_NETCONFIG, "r");
|
||||||
|
#endif
|
||||||
if (fd == NULL) {
|
if (fd == NULL) {
|
||||||
|
#ifdef __REACTOS__
|
||||||
|
fprintf(stderr,"nfsd() failed to open file '%s'\n", config_path);
|
||||||
|
#else
|
||||||
fprintf(stderr,"nfsd() failed to open file '%s'\n", FILE_NETCONFIG);
|
fprintf(stderr,"nfsd() failed to open file '%s'\n", FILE_NETCONFIG);
|
||||||
|
#endif
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
fclose(fd);
|
fclose(fd);
|
||||||
|
|
|
@ -367,12 +367,20 @@ static void RunShell(client_t *client)
|
||||||
STARTUPINFO si;
|
STARTUPINFO si;
|
||||||
PROCESS_INFORMATION piProcInfo;
|
PROCESS_INFORMATION piProcInfo;
|
||||||
SECURITY_ATTRIBUTES saAttr;
|
SECURITY_ATTRIBUTES saAttr;
|
||||||
|
char cmd_path[MAX_PATH];
|
||||||
|
|
||||||
|
if (!GetEnvironmentVariableA("COMSPEC", cmd_path, ARRAYSIZE(cmd_path)))
|
||||||
|
{
|
||||||
|
if (GetSystemDirectoryA(cmd_path, ARRAYSIZE(cmd_path)))
|
||||||
|
{
|
||||||
|
StringCchCatA(cmd_path, ARRAYSIZE(cmd_path), "\\cmd.exe");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
StringCchCopyA(cmd_path, ARRAYSIZE(cmd_path), "C:\\ReactOS\\system32\\cmd.exe");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const char *name = "c:\\reactos\\system32\\cmd.exe";
|
|
||||||
const char *cmd = NULL;
|
|
||||||
//const char *name = "d:\\cygwin\\bin\\bash.exe";
|
|
||||||
//const char *cmd = "d:\\cygwin\\bin\\bash.exe --login -i";
|
|
||||||
|
|
||||||
saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
|
saAttr.nLength = sizeof(SECURITY_ATTRIBUTES);
|
||||||
saAttr.bInheritHandle = TRUE;
|
saAttr.bInheritHandle = TRUE;
|
||||||
saAttr.lpSecurityDescriptor = NULL;
|
saAttr.lpSecurityDescriptor = NULL;
|
||||||
|
@ -406,8 +414,8 @@ static void RunShell(client_t *client)
|
||||||
//si.dwFlags |= STARTF_USESHOWWINDOW;
|
//si.dwFlags |= STARTF_USESHOWWINDOW;
|
||||||
//si.wShowWindow = SW_SHOW;
|
//si.wShowWindow = SW_SHOW;
|
||||||
|
|
||||||
if (!CreateProcess((LPSTR) name, // executable module
|
if (!CreateProcess(cmd_path, // executable module
|
||||||
(LPSTR) cmd, // command line
|
NULL, // command line
|
||||||
NULL, // process security attributes
|
NULL, // process security attributes
|
||||||
NULL, // primary thread security attributes
|
NULL, // primary thread security attributes
|
||||||
TRUE, // handles are inherited
|
TRUE, // handles are inherited
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <wincon.h>
|
#include <wincon.h>
|
||||||
#define _INC_WINDOWS
|
#define _INC_WINDOWS
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
|
#include <strsafe.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** macro definitions
|
** macro definitions
|
||||||
|
|
Loading…
Reference in a new issue