version 1.6.30.6, 2007/01/01 18:46:06 |
version 1.6.30.7, 2007/01/02 06:14:47 |
| |
// | // |
//============================================================================== | //============================================================================== |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#include "cimservera.h" | #include "cimservera.h" |
#include <cstdio> | #include <cstdio> |
#include <syslog.h> | #include <syslog.h> |
| |
static void Exit(int status) | static void Exit(int status) |
{ | { |
syslog(LOG_INFO, "exit(%d)", status); | syslog(LOG_INFO, "exit(%d)", status); |
exit(status); | exit(status); |
} | } |
| |
//============================================================================== | |
// | |
// Recv() | |
// | |
// Receives *size* bytes from the given socket. | |
// | |
//============================================================================== | |
| |
static ssize_t Recv(int sock, void* buffer, size_t size) | |
{ | |
size_t r = size; | |
char* p = (char*)buffer; | |
| |
if (size == 0) | |
return -1; | |
| |
while (r) | |
{ | |
ssize_t n; | |
| |
CIMSERVERA_RESTART(read(sock, p, r), n); | |
| |
if (n == -1) | |
return -1; | |
else if (n == 0) | |
return size - r; | |
| |
r -= n; | |
p += n; | |
} | |
| |
return size - r; | |
} | |
| |
int main(int argc, char* argv[]) | int main(int argc, char* argv[]) |
{ | { |
// Open syslog: | // Open syslog: |
| |
openlog("cimservera", LOG_PID, LOG_AUTH); | openlog("cimservera", LOG_PID, LOG_AUTH); |
syslog(LOG_INFO, "started"); | syslog(LOG_INFO, "started"); |
| |
// ATTN: Insert fingerprint logic to detect running of this program as | // ATTN: Insert fingerprint logic to detect running of this program as |
// non-child of executor. | // non-child of executor. |
| |
// Check argumnents. | // Check argumnents. |
| |
if (argc != 2) | if (argc != 2) |
{ | { |
fprintf(stderr, "Usage: %s <socket-number>\n", argv[0]); | fprintf(stderr, "Usage: %s <socket-number>\n", argv[0]); |