Changes between Version 1 and Version 2 of waue/2009/0804


Ignore:
Timestamp:
Aug 4, 2009, 4:52:45 PM (15 years ago)
Author:
waue
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • waue/2009/0804

    v1 v2  
    22{{{
    33#!php
    4 <?
     4?>
     5
    56function Many2One($timesize)
    6 
    77{
    8 
    98        global $object,$obj_ctr,$DB;
    10 
    119       
    12 
    1310        $mo_base_ctr=0;
    14 
    1511  $mo_ptr = 0;  //mo pointer
    16 
    1712  $i = 0; //tmp
    18 
    1913 
    20 
    2114  //----------------database check----------------
    22 
    2315        $str="SELECT start_time,end_time,reference,ip_proto,
    24 
    2516                                event_name,ip_dst,ip_src,sid,dport,sport,sig_class_id,
    26 
    2717                                signature,sig_priority FROM accident_ticket
    28 
    2918                                WHERE end_time >= \"".$object[0]->start_time."\" ORDER BY start_time ASC";
    30 
    3119        $DB->query($str);
    32 
    3320        $fixed_num = mysql_num_rows($DB->result);
    3421
    35 
    36 
    3722        if($fixed_num == null )
    38 
    3923        {
    40 
    4124                $fixed_num = 0;
    42 
    4325          $obj_ptr=1;
    44 
    4526          $mo_ctr=1;
    46 
    4727        }
    48 
    4928        else
    50 
    5129        {
    52 
    5330                $obj_ptr=$fixed_num;
    54 
    5531          $mo_ctr=$fixed_num;
    56 
    5732        }
    58 
    5933        $mo[0] = new scenario(null,null,null,null,null,null,null,null,null,null,null,null,null);
    60 
    6134        if($fixed_num > 0)
    62 
    6335        {
    64 
    6536                while(list($start_time,$end_time,$reference,$ip_proto,$event_name,$ip_dst,
    66 
    6737                                                                $ip_src,$sid,$dport,$sport,$sig_class_id,$signature,$sig_priority)
    68 
    6938                                                                = mysql_fetch_row($DB->result) )
    70 
    7139                {
    72 
    7340                        $mo[$mo_base_ctr]->start_time = $start_time;
    74 
    7541                        $mo[$mo_base_ctr]->end_time = $end_time;
    76 
    7742                        $mo[$mo_base_ctr]->reference = $reference;
    78 
    7943                        $mo[$mo_base_ctr]->ip_proto = $ip_proto;
    80 
    8144                        $mo[$mo_base_ctr]->event_name = $event_name;
    82 
    8345                        $mo[$mo_base_ctr]->ip_dst[0] = $ip_dst;
    84 
    8546                        $mo[$mo_base_ctr]->ip_src = split(",",$ip_src);
    86 
    8747                        $mo[$mo_base_ctr]->sid = split(",",$sid);
    88 
    8948                        $mo[$mo_base_ctr]->dport[0] = $dport;
    90 
    9149                        $mo[$mo_base_ctr]->sport = $sport;
    92 
    9350                        $mo[$mo_base_ctr]->sig_class_id = $sig_class_id;
    94 
    9551                        $mo[$mo_base_ctr]->signature = split(",",$signature);
    96 
    9752                        $mo[$mo_base_ctr]->sig_priority = $sig_priority;
    98 
    9953                        $mo[$mo_base_ctr]->cmp_time=nor_time($end_time);
    100 
    10154                        $mo_base_ctr++;
    102 
    10355                }
    104 
    10556                $object=array_merge($mo,$object);
    106 
    10757                $str="DELETE FROM accident_ticket WHERE end_time >= \"".$object[0]->start_time."\"";
    108 
    10958                $DB->query($str);
    110 
    11159                $DB->reset_auto("accident_ticket");
    112 
    11360        }
    114 
    11561        //if($DB->result) $DB->free_result();
    116 
    11762        //----------------database check----------------
    118 
    11963  //echo "timesize:".$timesize."<br>";           
    120 
    12164  while( $obj_ptr < $obj_ctr )
    122 
    12365  {
    12466
    125 
    126 
    12767        $object[$obj_ptr]->cmp_time=chk_time($object[$obj_ptr]->start_time,$timesize);
    128 
    12968        //----remove timeout class----
    130 
    13169        for($i=$mo_ptr; $i<$mo_ctr ;$i++)
    132 
    13370        {
    13471
    135 
    136 
    13772                if( strcmp($object[$obj_ptr]->cmp_time,$object[$mo_ptr]->cmp_time) > 0 ) $mo_ptr++;
    138 
    13973                else
    140 
    14174                {
    142 
    14375                        $i=$mo_ctr;
    14476
     77                }
     78        }
     79        //----remove timeout class----
     80        //====many2one check===
     81        for($i=$mo_ptr; $i<$mo_ctr ;$i++)
     82        {
     83                if($object[$obj_ptr]->ip_dst[0] == $object[$i]->ip_dst[0])
     84                {
     85 //                     if($object[$obj_ptr]->dport[0] == $object[$i]->dport[0])
     86 //               {
     87                          if($object[$obj_ptr]->signature[0] == $object[$i]->signature[0])
     88                          {
     89                                  //-------------------------merge----------------------------
     90                                  $object[$i]->reference=($object[$i]->reference).", ".($object[$obj_ptr]->reference);
     91                if( $object[$i]->ip_proto!=$object[$obj_ptr]->ip_proto ) $object[$i]->ip_proto="multiproto";
     92                $object[$i]->ip_src=arr_merge($object[$obj_ptr]->ip_src,$object[$i]->ip_src);
     93                $object[$i]->sid=arr_merge($object[$obj_ptr]->sid,$object[$i]->sid);
     94                if( $object[$i]->sport!=$object[$obj_ptr]->sport ) $object[$i]->sport="multiport";
     95                if( $object[$i]->sig_class_id != $object[$obj_ptr]->sig_class_id ) $object[$i]->sig_class_id=0;
     96                if( $object[$i]->sig_priority > $object[$obj_ptr]->sig_priority ) $object[$i]->sig_priority=$object[$obj_ptr]->sig_priority;
     97                                  if((time_smaller($object[$obj_ptr]->start_time,$object[$i]->start_time))==1)
     98                                          {
     99                                                  $object[$i]->start_time = $object[$obj_ptr]->start_time;
     100                                          }
     101                                          if((time_smaller($object[$i]->end_time,$object[$obj_ptr]->end_time))==1)
     102                                          {
     103                                                  $object[$i]->end_time = $object[$obj_ptr]->end_time;
     104                                          }
     105                                          $object[$i]->cmp_time=nor_time($object[$i]->end_time);
     106                                          $i=$mo_ctr;
     107                                  //-------------------------merge----------------------------
     108                                }
     109 //                     }
     110                }
     111        }
     112        if($i!=$mo_ctr+1)
     113        {
    145114
    146 
    147                 }
     115                $object[$mo_ctr]->start_time=$object[$obj_ptr]->start_time;
     116                $object[$mo_ctr]->end_time=$object[$obj_ptr]->end_time;
     117                $object[$mo_ctr]->reference=$object[$obj_ptr]->reference;
     118                $object[$mo_ctr]->ip_proto=$object[$obj_ptr]->ip_proto;
     119                $object[$mo_ctr]->event_name=$object[$obj_ptr]->event_name;
     120                $object[$mo_ctr]->ip_dst=arr_cover($object[$obj_ptr]->ip_dst,$object[$mo_ctr]->ip_dst);
     121                $object[$mo_ctr]->ip_src=arr_cover($object[$obj_ptr]->ip_src,$object[$mo_ctr]->ip_src);
     122                $object[$mo_ctr]->sid=arr_cover($object[$obj_ptr]->sid,$object[$mo_ctr]->sid);
     123                $object[$mo_ctr]->dport=arr_cover($object[$obj_ptr]->dport,$object[$mo_ctr]->dport);
     124                $object[$mo_ctr]->sport=$object[$obj_ptr]->sport;
     125                $object[$mo_ctr]->sig_class_id=$object[$obj_ptr]->sig_class_id;
     126                $object[$mo_ctr]->signature=arr_cover($object[$obj_ptr]->signature,$object[$mo_ctr]->signature);
     127                $object[$mo_ctr]->sig_priority=$object[$obj_ptr]->sig_priority;
     128                $object[$mo_ctr]->cmp_time=nor_time($object[$mo_ctr]->end_time);
     129                $mo_ctr++;
    148130
    149131        }
     132        //====many2one check===
     133        $obj_ptr++;
     134  }
     135  $obj_ctr=$mo_ctr;
     136};
    150137
    151         //----remove timeout class----
    152 
    153         //====many2one check===
    154 
    155         for($i=$mo_ptr; $i<$mo_ctr ;$i++)
    156 
    157         {
    158 
    159                 if($object[$obj_ptr]->ip_dst[0] == $object[$i]->ip_dst[0])
    160 
    161                 {
    162 
    163  //                     if($object[$obj_ptr]->dport[0] == $object[$i]->dport[0])
    164 
    165  //               {
    166 
    167                           if($object[$obj_ptr]->signature[0] == $object[$i]->signature[0])
    168 
    169                           {
    170 
    171                                   //-------------------------merge----------------------------
    172 
    173                                   $object[$i]->reference=($object[$i]->reference).", ".($object[$obj_ptr]->reference);
    174 
    175                 if( $object[$i]->ip_proto!=$object[$obj_ptr]->ip_proto ) $object[$i]->ip_proto="multiproto";
    176 
    177                 $object[$i]->ip_src=arr_merge($object[$obj_ptr]->ip_src,$object[$i]->ip_src);
    178 
    179                 $object[$i]->sid=arr_merge($object[$obj_ptr]->sid,$object[$i]->sid);
    180 
    181                 if( $object[$i]->sport!=$object[$obj_ptr]->sport ) $object[$i]->sport="multiport";
    182 
    183                 if( $object[$i]->sig_class_id != $object[$obj_ptr]->sig_class_id ) $object[$i]->sig_class_id=0;
    184 
    185                 if( $object[$i]->sig_priority > $object[$obj_ptr]->sig_priority ) $object[$i]->sig_priority=$object[$obj_ptr]->sig_priority;
    186 
    187                                   if((time_smaller($object[$obj_ptr]->start_time,$object[$i]->start_time))==1)
    188 
    189                                           {
    190 
    191                                                   $object[$i]->start_time = $object[$obj_ptr]->start_time;
    192 
    193                                           }
    194 
    195                                           if((time_smaller($object[$i]->end_time,$object[$obj_ptr]->end_time))==1)
    196 
    197                                           {
    198 
    199                                                   $object[$i]->end_time = $object[$obj_ptr]->end_time;
    200 
    201                                           }
    202 
    203                                           $object[$i]->cmp_time=nor_time($object[$i]->end_time);
    204 
    205                                           $i=$mo_ctr;
    206 
    207                                   //-------------------------merge----------------------------
    208 
    209                                 }
    210 
    211  //                     }
    212 
    213                 }
    214 
    215         }
    216 
    217         if($i!=$mo_ctr+1)
    218 
    219         {
    220 
    221 
    222 
    223                 $object[$mo_ctr]->start_time=$object[$obj_ptr]->start_time;
    224 
    225                 $object[$mo_ctr]->end_time=$object[$obj_ptr]->end_time;
    226 
    227                 $object[$mo_ctr]->reference=$object[$obj_ptr]->reference;
    228 
    229                 $object[$mo_ctr]->ip_proto=$object[$obj_ptr]->ip_proto;
    230 
    231                 $object[$mo_ctr]->event_name=$object[$obj_ptr]->event_name;
    232 
    233                 $object[$mo_ctr]->ip_dst=arr_cover($object[$obj_ptr]->ip_dst,$object[$mo_ctr]->ip_dst);
    234 
    235                 $object[$mo_ctr]->ip_src=arr_cover($object[$obj_ptr]->ip_src,$object[$mo_ctr]->ip_src);
    236 
    237                 $object[$mo_ctr]->sid=arr_cover($object[$obj_ptr]->sid,$object[$mo_ctr]->sid);
    238 
    239                 $object[$mo_ctr]->dport=arr_cover($object[$obj_ptr]->dport,$object[$mo_ctr]->dport);
    240 
    241                 $object[$mo_ctr]->sport=$object[$obj_ptr]->sport;
    242 
    243                 $object[$mo_ctr]->sig_class_id=$object[$obj_ptr]->sig_class_id;
    244 
    245                 $object[$mo_ctr]->signature=arr_cover($object[$obj_ptr]->signature,$object[$mo_ctr]->signature);
    246 
    247                 $object[$mo_ctr]->sig_priority=$object[$obj_ptr]->sig_priority;
    248 
    249                 $object[$mo_ctr]->cmp_time=nor_time($object[$mo_ctr]->end_time);
    250 
    251                 $mo_ctr++;
    252 
    253 
    254 
    255         }
    256 
    257         //====many2one check===
    258 
    259         $obj_ptr++;
    260 
    261   }
    262 
    263   $obj_ctr=$mo_ctr;
    264 
    265 };
    266138
    267139?>