Changeset 14

Show
Ignore:
Timestamp:
02/15/06 16:48:50 (17 years ago)
Author:
andreu
Message:

IPv6 prefix ok

Location:
trunk
Files:
1 added
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/dataFlowSet.c

    r11 r14  
    4444  unsigned short secondOffset = 0; 
    4545  unsigned short secondOldOffset = 0; 
     46  int moreIsNecessary = 1; 
    4647  int field_size = 0; 
    4748  int cpt = 0; 
     
    144145                buffer4[1]= *(buf+(*offV9)); (*offV9)++; 
    145146                buffer4[0]= *(buf+(*offV9)); (*offV9)++; 
    146                 if (ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i])  
    147                     == (*((unsigned long*)&buffer4))>>(12-(((RuleDefPtr)(*(rulesCache+pos)))->value->mask)%32)<<(32-(((RuleDefPtr)(*(rulesCache+pos)))->value->mask)%32) 
    148                     ) 
    149                   { 
    150                     if (0==i){ 
    151                       ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 
     147                /* here check a new var : moreIsNecessary */ 
     148                if (1==moreIsNecessary){ 
     149                  switch(i){ 
     150                  case 0: 
     151/*                  fprintf(stderr, "i:%d case0, N:%lu V:%lu TC:%lu, %hu\n", */ 
     152/*                          i, */ 
     153/*                          ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i]), */ 
     154/*                          (*((unsigned long*)&buffer4)), */ 
     155/*                          (*((unsigned long*)&buffer4))>>(32-((RuleDefPtr)(*(rulesCache+pos)))->value->mask)<<(32-((RuleDefPtr)(*(rulesCache+pos)))->value->mask), */ 
     156/*                          ((RuleDefPtr)(*(rulesCache+pos)))->value->mask */ 
     157/*                          ); */ 
     158                    if (((RuleDefPtr)(*(rulesCache+pos)))->value->mask <= 32){ 
     159                      if (ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i])  
     160                          ==  
     161                          (*((unsigned long*)&buffer4))>>(32-((RuleDefPtr)(*(rulesCache+pos)))->value->mask)<<(32-((RuleDefPtr)(*(rulesCache+pos)))->value->mask) 
     162                          ) 
     163                        { 
     164                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 
     165                          moreIsNecessary = 0; 
     166                        } else { 
     167                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 0; 
     168                          moreIsNecessary = 0; 
     169                        } 
    152170                    } else { 
    153                       ((RuleDefPtr)(*(rulesCache+pos)))->check =  
    154                         ((RuleDefPtr)(*(rulesCache+pos)))->check && 1; 
     171                      if (ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i])  
     172                          ==  
     173                          (*((unsigned long*)&buffer4)) 
     174                          ) 
     175                        { 
     176                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 1; 
     177                        } else { 
     178                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 0; 
     179                          moreIsNecessary = 0; 
     180                        } 
    155181                    } 
    156                   } else { 
    157                     ((RuleDefPtr)(*(rulesCache+pos)))->check = 0; 
    158                   } 
     182                    break; 
     183                  case 1: 
     184/*                  fprintf(stderr, "i:%d case1, N:%lu V:%lu TC:%lu\n", */ 
     185/*                          i, */ 
     186/*                          ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i]), */ 
     187/*                          (*((unsigned long*)&buffer4)), */ 
     188/*                          (*((unsigned long*)&buffer4))>>(64-((RuleDefPtr)(*(rulesCache+pos)))->value->mask)<<(64-((RuleDefPtr)(*(rulesCache+pos)))->value->mask)); */ 
     189                    if (((RuleDefPtr)(*(rulesCache+pos)))->value->mask <= 64){ 
     190                      if (ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i])  
     191                          ==  
     192                          (*((unsigned long*)&buffer4))>>(64-((RuleDefPtr)(*(rulesCache+pos)))->value->mask)<<(64-((RuleDefPtr)(*(rulesCache+pos)))->value->mask) 
     193                          ) 
     194                        { 
     195                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 
     196                            ((RuleDefPtr)(*(rulesCache+pos)))->check && 1; 
     197                          moreIsNecessary = 0; 
     198                        } else { 
     199                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 0; 
     200                          moreIsNecessary = 0; 
     201                        } 
     202                    } else { 
     203                      if (ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i])  
     204                          ==  
     205                          (*((unsigned long*)&buffer4)) 
     206                          ) 
     207                        { 
     208                          ((RuleDefPtr)(*(rulesCache+pos)))->check =  
     209                            ((RuleDefPtr)(*(rulesCache+pos)))->check && 1; 
     210                        } else { 
     211                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 0; 
     212                          moreIsNecessary = 0; 
     213                        } 
     214                    } 
     215                    break; 
     216                  case 2: 
     217                    if (((RuleDefPtr)(*(rulesCache+pos)))->value->mask <= 96){ 
     218                      if (ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i])  
     219                          ==  
     220                          (*((unsigned long*)&buffer4))>>(96-((RuleDefPtr)(*(rulesCache+pos)))->value->mask)<<(96-((RuleDefPtr)(*(rulesCache+pos)))->value->mask) 
     221                          ) 
     222                        { 
     223                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 
     224                            ((RuleDefPtr)(*(rulesCache+pos)))->check && 1; 
     225                          moreIsNecessary = 0; 
     226                        } else { 
     227                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 0; 
     228                          moreIsNecessary = 0; 
     229                        } 
     230                    } else { 
     231                      if (ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i])  
     232                          ==  
     233                          (*((unsigned long*)&buffer4)) 
     234                          ) 
     235                        { 
     236                          ((RuleDefPtr)(*(rulesCache+pos)))->check =  
     237                            ((RuleDefPtr)(*(rulesCache+pos)))->check && 1; 
     238                        } else { 
     239                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 0; 
     240                          moreIsNecessary = 0; 
     241                        } 
     242                    } 
     243                    break; 
     244                  case 3: 
     245                    if (((RuleDefPtr)(*(rulesCache+pos)))->value->mask <= 128){ 
     246                      if (ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i])  
     247                          ==  
     248                          (*((unsigned long*)&buffer4))>>(128-((RuleDefPtr)(*(rulesCache+pos)))->value->mask)<<(128-((RuleDefPtr)(*(rulesCache+pos)))->value->mask) 
     249                          ) 
     250                        { 
     251                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 
     252                            ((RuleDefPtr)(*(rulesCache+pos)))->check && 1; 
     253                        } else { 
     254                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 0; 
     255                          moreIsNecessary = 0; 
     256                        } 
     257                    } else { 
     258                      if (ntohl(((RuleDefPtr)(*(rulesCache+pos)))->value->stor.tabAdd6[i])  
     259                          ==  
     260                          (*((unsigned long*)&buffer4)) 
     261                          ) 
     262                        { 
     263                          ((RuleDefPtr)(*(rulesCache+pos)))->check =  
     264                            ((RuleDefPtr)(*(rulesCache+pos)))->check && 1; 
     265                        } else { 
     266                          ((RuleDefPtr)(*(rulesCache+pos)))->check = 0; 
     267                          moreIsNecessary = 0; 
     268                        } 
     269                    } 
     270                    break; 
     271                  default: 
     272                    break; 
     273                  } /* end of switch(i) */ 
     274                } /* end of if moreIsNecessary */ 
    159275              } 
     276/*            fprintf(stderr,"GOOD %d\n", */ 
     277/*                    ((RuleDefPtr)(*(rulesCache+pos)))->check); */ 
     278              moreIsNecessary = 1; 
    160279              break; 
    161280            default: 
  • trunk/src/renetcolSender.c

    r12 r14  
    5555  char field[4]; 
    5656  char port[6]; 
    57   char value[40]; 
     57  char value[44]; 
    5858  char operator[2]; 
    5959  char lines[256][256];