ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/ihost/ihost.c
(Generate patch)

Comparing projects/cms/source/ihost/ihost.c (file contents):
Revision 1.18 by pajs, Tue May 21 14:07:32 2002 UTC vs.
Revision 1.20 by pajs, Tue May 21 14:36:23 2002 UTC

# Line 36 | Line 36
36   #define versionNo 0.8
37   #define RECONFIGURE_RETURN_CODE 2
38   #define UDP_MAX_PACKET_SIZE 8192
39 + #define PID_FILE "/var/tmp/.ihost.pid"
40  
41   #define logmessage(level, ...) do { cur_level = level; errf(__VA_ARGS__); } while (0)
42  
# Line 372 | Line 373 | char *stat_grab(ihost_state_t *ihost_state, int counte
373          char *stats[NUM_STATS];
374          char *xml_data=NULL;
375          char *xml_data_p;
376 +        int xml_size=0;
377          int x=0;
378  
379          logmessage(LOG_DEBUG,"get_cpu_stats");  
# Line 392 | Line 394 | char *stat_grab(ihost_state_t *ihost_state, int counte
394          stats[7]=get_swap_stats();
395          logmessage(LOG_DEBUG,"get_user_stats");
396          stats[8]=get_user_stats();
397 +        
398  
399 <        for(;x<NUM_STATS;x++){
399 >        for(x=0;x<NUM_STATS;x++){
400                  if(stats[x]==NULL){
401                          logmessage(LOG_ERR,"Function returned NULL");
402                          return NULL;
403                  }
404 <                if(xml_data==NULL){
402 <                        if((xml_data=strf("%s", stats[x])) == NULL){
403 <                                logmessage(LOG_ERR, "str failed (%m)");
404 <                                return NULL;
405 <                        }
406 <                }else{
407 <                        xml_data_p=xml_data;
408 <                        if((xml_data=strf("%s%s", xml_data, stats[x])) == NULL){
409 <                                logmessage(LOG_ERR, "str failed (%m)");
410 <                                return NULL;
411 <                        }
412 <                        free(xml_data_p);
413 <                }
414 <                free(stats[x]);
404 >                xml_size+=strlen(stats[x]);
405          }
406 +
407 +        xml_data=malloc(xml_size);
408 +        xml_data=strcpy(xml_data, stats[0]);
409 +        
410 +        for(x=1;x<NUM_STATS;x++){
411 +                strcat(xml_data, stats[x]);
412 +        }
413 +
414          xml_data_p=xml_data;
415          xml_data=strf("<packet seq_no=\"%d\" machine_name=\"%s\" date=\"%ld\" type=\"data\" ip=\"%s\" key=\"%s\">%s</packet>", counter, ihost_state->my_fqdn, time(NULL), ihost_state->my_ip, ihost_state->key, xml_data);
416          free(xml_data_p);
# Line 485 | Line 483 | int main(int argc, char **argv){
483          extern int syslog_logging;
484          extern int log_level;
485          extern int cur_level;
486 +        FILE *f;
487  
488          log_level=1;
489          cur_level=1;
# Line 585 | Line 584 | int main(int argc, char **argv){
584                          /* Print out everything its doing */
585                          log_level=LOG_DEBUG;
586                          break;
587 +        }
588 +
589 +        logmessage(LOG_DEBUG,"Writing PID FILE");
590 +        pid=getpid();
591 +        if((f=fopen(PID_FILE,"w")) == NULL){
592 +                logmessage(LOG_WARNING, "Failed to write PID file");
593 +        }else{
594 +                if((fprintf(f,"%d",(int)pid)) != sizeof(pid)){
595 +                        logmessage(LOG_WARNING, "Failed to write PID file");
596 +                }
597 +                if((fclose(f))!=0){
598 +                        logmessage(LOG_ERR, "failed to close PID file");
599 +                        exit(1);
600 +                }
601          }
602  
603          if(ihost_configure(&ihost_state)!=0){

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines