version 1.2, 2007/05/25 18:35:07
|
version 1.3, 2007/05/30 20:41:27
|
|
|
**============================================================================== | **============================================================================== |
*/ | */ |
| |
int GetServerUser(int* uid, int* gid) |
int GetServerUser(const char** userName, int* uid, int* gid) |
{ | { |
const char* username = PEGASUS_CIMSERVERMAIN_USER; |
*userName = PEGASUS_CIMSERVERMAIN_USER; |
| |
if (GetUserInfo(username, uid, gid) != 0) |
if (GetUserInfo(*userName, uid, gid) != 0) |
{ | { |
Fatal(FL, | Fatal(FL, |
"The %s user \"%s\" does not exist.", | "The %s user \"%s\" does not exist.", |
CIMSERVERMAIN, username); |
CIMSERVERMAIN, *userName); |
} | } |
| |
return 0; | return 0; |
|
|
| |
/* Determine user for running CIMSERVERMAIN. */ | /* Determine user for running CIMSERVERMAIN. */ |
| |
GetServerUser(&globals.childUid, &globals.childGid); |
GetServerUser(&globals.childUserName, &globals.childUid, &globals.childGid); |
| |
/* Fork child process. */ | /* Fork child process. */ |
| |
|
|
{ | { |
/* Child. */ | /* Child. */ |
close(pair[1]); | close(pair[1]); |
Child(argc, argv, cimservermainPath, globals.childUid, |
Child( |
globals.childGid, pair[0]); |
argc, |
|
argv, |
|
cimservermainPath, |
|
globals.childUserName, |
|
globals.childUid, |
|
globals.childGid, |
|
pair[0]); |
} | } |
else if (childPid > 0) | else if (childPid > 0) |
{ | { |