Changeset 2333


Ignore:
Timestamp:
Aug 5, 2011, 3:23:31 PM (13 years ago)
Author:
gah
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/packages/vizservers/nanoscale/server.c

    r2246 r2333  
    7676
    7777
     78#include <syslog.h>
     79#include <stdarg.h>
     80
     81#define ERROR(...)      LogMessage(LOG_ERR, __FILE__, __LINE__, __VA_ARGS__)
     82#ifdef WANT_TRACE
     83#define TRACE(...)      LogMessage(LOG_DEBUG, __FILE__, __LINE__, __VA_ARGS__)
     84#else
     85#define TRACE(...)
     86#endif
     87#define WARN(...)       LogMessage(LOG_WARNING, __FILE__, __LINE__, __VA_ARGS__)
     88#define INFO(...)       LogMessage(LOG_INFO, __FILE__, __LINE__, __VA_ARGS__)
     89
     90void
     91LogMessage(int priority, const char *path, int lineNum, const char* fmt, ...)
     92{
     93#define MSG_LEN (2047)
     94    char message[MSG_LEN+1];
     95    const char *s;
     96    int length;
     97    va_list lst;
     98
     99    va_start(lst, fmt);
     100    s = strrchr(path, '/');
     101    if (s == NULL) {
     102        s = path;
     103    } else {
     104        s++;
     105    }
     106    length = snprintf(message, MSG_LEN, "line %d of \"%s\": ", lineNum, s);
     107    length += vsnprintf(message + length, MSG_LEN - length, fmt, lst);
     108    message[MSG_LEN] = '\0';
     109    syslog(priority, message, length);
     110}
     111
    78112static void
    79113close_child(int pipe_fd)
     
    125159help(const char *argv0)
    126160{
    127     fprintf(stderr,
    128             "Syntax: %s [-d] -b <broadcast port> -l <listen port> -s <subnet> -c 'command'\n",
     161    INFO("Syntax: %s [-d] -b <broadcast port> -l <listen port> -s <subnet> -c 'command'\n",
    129162            argv0);
    130163    exit(1);
     
    183216            maxCards = strtoul(optarg, 0, 0);
    184217            if ((maxCards < 1) || (maxCards > 10)) {
    185                 fprintf(stderr, "bad number of max videocards specified\n");
     218                ERROR("bad number of max videocards specified\n");
    186219                return 1;
    187220            }
     
    197230
    198231            if (listen_port[nservices] == -1) {
    199                 fprintf(stderr,"Must specify -l port before each -c command.\n");
     232                ERROR("Must specify -l port before each -c command.\n");
    200233                return 1;
    201234            }
     
    210243            send_addr.sin_addr.s_addr = htonl(inet_network(optarg));
    211244            if (send_addr.sin_addr.s_addr == -1) {
    212                 fprintf(stderr,"Invalid subnet broadcast address");
     245                ERROR("Invalid subnet broadcast address");
    213246                return 1;
    214247            }
    215248            break;
    216249        default:
    217             fprintf(stderr,"Don't know what option '%c'.\n", c);
     250            ERROR("Don't know what option '%c'.\n", c);
    218251            return 1;
    219252        }
     
    224257        int i;
    225258        for (i = 0; i < argc; i++) {
    226             fprintf(stderr, "argv[%d]=(%s)\n", i, argv[i]);
     259            INFO("argv[%d]=(%s)\n", i, argv[i]);
    227260        }
    228261        help(argv[0]);
     
    395428            }
    396429            if (status != 8) {
    397                 fprintf(stderr,"Bogus message from %s\n",
    398                         inet_ntoa(peer_addr.sin_addr));
     430                ERROR("Bogus message from %s\n", inet_ntoa(peer_addr.sin_addr));
    399431                continue;
    400432            }
     
    453485                status = read(i, &msg, 4);
    454486                if (status != 4) {
    455                     fprintf(stderr,"Bad status on read (%d).", status);
     487                    ERROR("Bad status on read (%d).", status);
    456488                    FD_CLR(i, &saved_rfds);
    457489                    clear_service_fd(i);
     
    465497                memory_in_use += newmemory;
    466498                load += 2*INITIAL_LOAD;
    467                 printf("Accepted new job with memory %d\n", newmemory);
     499                INFO("Accepted new job with memory %d\n", newmemory);
    468500                //printf("My load is now %f\n", load);
    469501             
     
    471503                msg = 0;
    472504                if (write(i, &msg, 4) != 4) {
    473                     fprintf(stderr, "short write for hostname\n");
     505                    ERROR("short write for hostname\n");
    474506                }
    475507             
     
    521553                                    displayVar[11] = dispNum + '0';
    522554                                }
    523                                 execvp(command_argv[n][0], command_argv[n]);
     555                                if (execvp(command_argv[n][0], command_argv[n]) < 1) {
     556                                    extern int errno;
     557
     558                                    ERROR("can't execute \"%s\": %s\n",
     559                                          command_argv[n][0], strerror(errno));
     560                                }
    524561                            }
    525562                            _exit(errno);
Note: See TracChangeset for help on using the changeset viewer.