Changeset 209 for branches


Ignore:
Timestamp:
10/03/2009 02:40:08 PM (3 years ago)
Author:
Acinonyx
Message:

[awmn] Reuse deleted IP ranges

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/awmn/includes/pages/mynodes/mynodes_range.php

    r208 r209  
    44 * 
    55 * Copyright (C) 2005 Nikolaos Nikalexis <winner@cube.gr> 
     6 * Copyright (C) 2009 Vasilis Tsiligiannis <b_tsiligiannis@silverton.gr> 
    67 *  
    78 * This program is free software; you can redistribute it and/or modify 
     
    2829        } 
    2930         
    30         function calculate_next_range() { 
     31        function new_range() { 
    3132                global $db; 
    3233                $range = 256; 
     
    4243                                        INNER JOIN areas", 
    4344                                        "areas.ip_start <= ip_ranges.ip_start AND areas.ip_end >= ip_ranges.ip_end AND areas.id = '".$area_id."'", "" , "ip_end ASC"); 
    44                  
    45                 if (count($data) == 0) { 
    46                         $ret['ip_start'] = $area_ip_start; 
    47                         $ret['ip_end'] = $area_ip_start+$range-1; 
    48                 } elseif ($data[count($data)-1]['ip_end']+$range <= $area_ip_end) { 
    49                         $ret['ip_start'] = $data[count($data)-1]['ip_end']+1; 
    50                         $ret['ip_end'] = $data[count($data)-1]['ip_end']+$range; 
    51                 } else { 
    52                         for ($start = $area_ip_start; $start <= $area_ip_end; $start=$start+$range) { 
    53                                 $end = $start+$range-1; 
    54                                 $flag = TRUE; 
    55                                 for($i=count($data)-1;$i>=0;$i--) { 
    56                                         if (($start >= $data[$i]['ip_start'] && $start <= $data[$i]['ip_end']) 
    57                                                 || ($end >= $data[$i]['ip_start'] && $end <= $data[$i]['ip_end'])) { 
    58                                                 $flag = FALSE; 
    59                                                 break; 
    60                                         } 
    61                                 } 
    62                                 if ($flag) { 
    63                                         $ret['ip_start'] = $start; 
    64                                         $ret['ip_end'] = $end; 
     45 
     46                for ($start = $area_ip_start; $start < $area_ip_end; $start=$start+$range) { 
     47                        $end = $start+$range-1; 
     48                        $flag = TRUE; 
     49                        foreach ($data as $t_range) { 
     50                                if (($start >= $t_range['ip_start'] && $start <= $t_range['ip_end']) 
     51                                        || ($end >= $t_range['ip_start'] && $end <= $t_range['ip_end'])) { 
     52                                        $flag = FALSE; 
    6553                                        break; 
    6654                                } 
     55                        } 
     56                        if ($flag) { 
     57                                $ret['ip_start'] = $start; 
     58                                $ret['ip_end'] = $end; 
     59                                break; 
    6760                        } 
    6861                } 
     
    9588                } 
    9689                $form_getrange = $this->form_getrange(); 
    97                 $nextr = $this->calculate_next_range(); 
     90                $nextr = $this->new_range(); 
    9891                $status = "waiting"; 
    9992                $ret = TRUE; 
Note: See TracChangeset for help on using the changeset viewer.