version 1.6.30.5, 2007/01/01 18:34:35 |
version 1.6.30.6, 2007/01/01 18:46:06 |
| |
// | // |
//============================================================================== | //============================================================================== |
// | // |
//%///////////////////////////////////////////////////////////////////////////// | //%///////////////////////////////////////////////////////////////////////////// |
| |
#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]); |