version 1.7, 2007/06/13 21:21:53
|
version 1.8, 2007/06/15 17:40:07
|
|
|
virtual int authenticateLocal( | virtual int authenticateLocal( |
const char* challengeFilePath, | const char* challengeFilePath, |
const char* response) = 0; | const char* response) = 0; |
|
|
|
virtual int updateLogLevel( |
|
const char* logLevel) = 0; |
}; | }; |
| |
//////////////////////////////////////////////////////////////////////////////// | //////////////////////////////////////////////////////////////////////////////// |
|
|
return -1; | return -1; |
} | } |
| |
|
virtual int updateLogLevel( |
|
const char* logLevel) |
|
{ |
|
// If Privilege Separation is not enabled, we don't need to update |
|
// the log level in the Executor. |
|
return 0; |
|
} |
|
|
private: | private: |
| |
Mutex _mutex; | Mutex _mutex; |
|
|
// _send request header: | // _send request header: |
| |
ExecutorRequestHeader header; | ExecutorRequestHeader header; |
header.code = EXECUTOR_REAP_PROVIDER_AGENT; |
header.code = EXECUTOR_REAP_PROVIDER_AGENT_MESSAGE; |
| |
if (_send(_sock, &header, sizeof(header)) != sizeof(header)) | if (_send(_sock, &header, sizeof(header)) != sizeof(header)) |
return -1; | return -1; |
|
|
return response_.status; | return response_.status; |
} | } |
| |
|
virtual int updateLogLevel( |
|
const char* logLevel) |
|
{ |
|
AutoMutex autoMutex(_mutex); |
|
|
|
// _send request header: |
|
|
|
ExecutorRequestHeader header; |
|
header.code = EXECUTOR_UPDATE_LOG_LEVEL_MESSAGE; |
|
|
|
if (_send(_sock, &header, sizeof(header)) != sizeof(header)) |
|
return -1; |
|
|
|
// _send request body: |
|
|
|
ExecutorUpdateLogLevelRequest request; |
|
memset(&request, 0, sizeof(request)); |
|
Strlcpy(request.logLevel, logLevel, EXECUTOR_BUFFER_SIZE); |
|
|
|
if (_send(_sock, &request, sizeof(request)) != sizeof(request)) |
|
return -1; |
|
|
|
// Receive the response |
|
|
|
ExecutorUpdateLogLevelResponse response; |
|
|
|
if (_recv(_sock, &response, sizeof(response)) != sizeof(response)) |
|
return -1; |
|
|
|
return response.status; |
|
} |
|
|
private: | private: |
| |
static ssize_t _recv(int sock, void* buffer, size_t size) | static ssize_t _recv(int sock, void* buffer, size_t size) |
|
|
return _executorImpl->authenticateLocal(challengeFilePath, response); | return _executorImpl->authenticateLocal(challengeFilePath, response); |
} | } |
| |
|
int Executor::updateLogLevel( |
|
const char* logLevel) |
|
{ |
|
once(&_executorImplOnce, _initExecutorImpl); |
|
return _executorImpl->updateLogLevel(logLevel); |
|
} |
|
|
PEGASUS_NAMESPACE_END | PEGASUS_NAMESPACE_END |