Changeset 19 for trunk/src/renetcol.c

Show
Ignore:
Timestamp:
09/25/06 18:21:02 (16 years ago)
Author:
andreu
Message:

last changes for Crihan -> 0.0.5

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/renetcol.c

    r18 r19  
    3333unsigned long *ipNbPtr = &ipNb; 
    3434unsigned long *mplsNbPtr = &mplsNb; 
     35unsigned short currentIPOutputFile = 0; 
     36unsigned short currentMPLSOutputFile = 0; 
     37char outputName[256]; 
     38char cof_str[20]; 
    3539FILE *fIP; 
    3640FILE *fMPLS; 
    37 /* end */  
     41/* end */ 
    3842 
    3943char *rulesFileName; 
     
    332336  int regRouter = 0; 
    333337  /* CRI */ 
     338  time_t now = time((time_t *)NULL); 
    334339  int iIP, iMPLS; 
    335   /* end CRI */ 
    336    
     340  time_t lastIPOutput, lastMPLSOutput; 
     341  time_t receptionTime; 
     342  /* end */ 
     343 
     344  now = time((time_t *)NULL); 
     345  lastMPLSOutput = now; 
     346  lastIPOutput = now; 
    337347  do { 
    338348    if (sigusr1Up == 1){ 
     
    401411 
    402412    /* CRI */ 
    403     if ( ipNb > (MAX_IP_FLOW - 50)) { 
    404       if ((fIP = fopen(OUTPUT_IP, "w")) == NULL) { 
     413    now = time((time_t *)NULL); 
     414    receptionTime = now; 
     415    if ( (ipNb > (MAX_IP_FLOW - 50)) ||  
     416         ( (now-lastIPOutput) > IP_TIME_THRESHOLD) ) { 
     417      outputName[0] = '\0'; 
     418      sprintf(cof_str, "%d", currentIPOutputFile); 
     419      strcat(outputName, OUTPUT_IP); 
     420      strcat(outputName, cof_str); 
     421      strcat(outputName, EXTENSION); 
     422      if (fopen(outputName, "x") == NULL) { 
     423        currentIPOutputFile = (currentIPOutputFile + 1)%MAX_IP_OUTPUT_FILES; 
     424        outputName[0] = '\0'; 
     425        sprintf(cof_str, "%d", currentIPOutputFile); 
     426        strcat(outputName, OUTPUT_IP); 
     427        strcat(outputName, cof_str); 
     428        strcat(outputName, EXTENSION); 
     429      }  
     430      if ((fIP = fopen(outputName, "w")) == NULL) { 
    405431        syslog(LOG_ERR,"Error in OUTPUT_IP opening : %s", strerror(errno)); 
    406432      } else { 
    407433        for ( iIP = 0; iIP < ipNb; iIP++){ 
    408           printf("ipv4\n"); 
    409434          if ( tabIP[iIP].ipProt == 0 ) { 
    410             printf(".\n"); 
    411             fprintf(fIP, "%lu;%lu;%hu;%hu;%lu.%lu.%lu.%lu;%lu.%lu.%lu.%lu;%d;%hu;%hu;%d;%d;%lu.%lu.%lu.%lu;%lu\n", 
     435            fprintf(fIP, "%lu;%lu;%hu;%hu;%lu.%lu.%lu.%lu;%lu.%lu.%lu.%lu;%d;%hu;%hu;%d;%d;%lu.%lu.%lu.%lu;%lu;%d\n", 
    412436                    tabIP[iIP].bytes, tabIP[iIP].pkts, 
    413437                    tabIP[iIP].inSnmp,  tabIP[iIP].outSnmp, 
     
    420444                    tabIP[iIP].maskS, tabIP[iIP].routerAd>>24, 
    421445                    tabIP[iIP].routerAd<<8>>24, tabIP[iIP].routerAd<<16>>24, 
    422                     tabIP[iIP].routerAd<<24>>24, tabIP[iIP].liveTime 
     446                    tabIP[iIP].routerAd<<24>>24, tabIP[iIP].liveTime, 
     447                    receptionTime 
    423448                    ); 
    424449          } 
     
    427452      } 
    428453      ipNb = 0; 
    429     } 
    430     if ( mplsNb > (MAX_MPLS_FLOW - 50)) { 
    431       if ((fMPLS = fopen(OUTPUT_MPLS, "w")) == NULL) { 
     454      lastIPOutput = now; 
     455    } 
     456    now = time((time_t *)NULL); 
     457    if ( mplsNb > (MAX_MPLS_FLOW - 50) ||  
     458         ( (now-lastMPLSOutput) > MPLS_TIME_THRESHOLD) ) { 
     459      outputName[0] = '\0'; 
     460      sprintf(cof_str, "%d", currentMPLSOutputFile); 
     461      strcat(outputName, OUTPUT_MPLS); 
     462      strcat(outputName, cof_str); 
     463      strcat(outputName, EXTENSION); 
     464      if (fopen(outputName, "x") == NULL) { 
     465        currentMPLSOutputFile = (currentMPLSOutputFile + 1)%MAX_MPLS_OUTPUT_FILES; 
     466        outputName[0] = '\0'; 
     467        sprintf(cof_str, "%d", currentMPLSOutputFile); 
     468        strcat(outputName, OUTPUT_MPLS); 
     469        strcat(outputName, cof_str); 
     470        strcat(outputName, EXTENSION); 
     471      } 
     472      if ((fMPLS = fopen(outputName, "w")) == NULL) { 
    432473        syslog(LOG_ERR,"Error in OUTPUT_MPLS opening : %s", strerror(errno)); 
    433474      } else { 
    434475        for ( iMPLS = 0; iMPLS < mplsNb; iMPLS++){ 
    435           if ( tabMPLS[iMPLS].ipProt == 4 ) { 
    436             fprintf(fMPLS, "%lu.%lu.%lu.%lu;%hu;%lu.%lu.%lu.%lu;%lu.%lu.%lu.%lu\n", 
     476          if ( tabMPLS[iMPLS].ipProt == 0 ) { 
     477            fprintf(fMPLS, "%lu.%lu.%lu.%lu;%hu;%lu.%lu.%lu.%lu;%lu.%lu.%lu.%lu;%hu;%hu;%d\n", 
    437478                    tabMPLS[iMPLS].routerAd>>24,tabMPLS[iMPLS].routerAd<<8>>24, 
    438479                    tabMPLS[iMPLS].routerAd<<16>>24, 
    439480                    tabMPLS[iMPLS].routerAd<<24>>24, 
    440                     tabMPLS[iMPLS].mplsLabel1,tabMPLS[iMPLS].v4AdS>>24, 
     481                    tabMPLS[iMPLS].mplsLabel1, 
     482                    tabMPLS[iMPLS].v4AdS>>24, 
    441483                    tabMPLS[iMPLS].v4AdS<<8>>24,tabMPLS[iMPLS].v4AdS<<16>>24, 
    442484                    tabMPLS[iMPLS].v4AdS<<24>>24,tabMPLS[iMPLS].v4AdD>>24, 
    443485                    tabMPLS[iMPLS].v4AdD<<8>>24,tabMPLS[iMPLS].v4AdD<<16>>24, 
    444                     tabMPLS[iMPLS].v4AdD<<24>>24  
     486                    tabMPLS[iMPLS].v4AdD<<24>>24, 
     487                    tabMPLS[iMPLS].inSnmp,tabMPLS[iMPLS].outSnmp, 
     488                    receptionTime 
    445489                    ); 
    446490          } 
     
    449493      } 
    450494      mplsNb = 0; 
     495      lastMPLSOutput = now; 
    451496    } 
    452497    /* end CRI */