Ignore:
Timestamp:
May 6, 2009, 8:21:23 AM (16 years ago)
Author:
george
Message:
  • Upraveno: Tabulka hosts rozdělena na NetworkDevice, NetworkInterface, NetworkInterfaceType a NetworkLink. Jeden počítač může mít více rozhraní. Nově se již nepočítá pouze s stromovou topologií, ale s celkovou sítí s okruhy. Sloupce Parent byl proto nahrazen tabulkou NetworkLink, ve které jsou uchovány informace o tom, co kam je připojeno. Každé rozhraní má definovaný typ dle NetworkInterfaceType.
  • Upraveno: Tabulka HostType přejmenována na NetworkDeviceType.
  • Smazáno: Původní složka komunikačního programu sunrisechat. Nově nahrazena složkou chat pro podporu IRC.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/system/generators/traffic_shaping_routerboard.php

    r204 r208  
    6262$Index = 0;
    6363$DbResult = $Database->query('SELECT Member.*, Subject.Name FROM Member LEFT JOIN Subject ON Subject.Id = Member.Subject');
    64 while($Member = $DbResult->fetch_array())
     64while($Member = $DbResult->fetch_assoc())
    6565{
    6666  $Member['Name'] = RouterOSIdent($Member['Name']);
     
    8888  }
    8989
    90   $DbResult2 = $Database->select('hosts', '*', '(block=0) AND (MAC != "") AND (user='.$Member['Id'].')');
    91   while($Host = $DbResult2->fetch_array())
     90  $DbResult2 = $Database->select('NetworkDevice', '*', 'Member = '.$Member['Id']);
     91  while($Device = $DbResult2->fetch_assoc())
    9292  {
    93     $Host['name'] = RouterOSIdent($Host['name']);
    94     echo($Host['name'].', ');
    95     $IPParts = explode('.', $Host['IP']);
    96     $Subnet = $IPParts[2];
    97     $Commands[] = ' /ip firewall mangle add chain=inet-out-'.$Subnet.' src-address='.$Host['IP'].' out-interface='.$InetInterface.' action=mark-packet new-packet-mark='.$PacketMark.' passthrough=no comment="'.$Host['name'].'"';
    98     $Commands[] = ' /queue tree add name='.$Host['name'].'-out limit-at='.$HostSpeedIn.' max-limit='.$UserMaxSpeedIn.' parent='.$Member['Name'].'-out packet-mark='.$PacketMark.' queue=wireless-default';
    99     $PacketMark++;
    100     $Commands[] = ' /ip firewall mangle add chain=inet-in-'.$Subnet.' dst-address='.$Host['IP'].' in-interface='.$InetInterface.' action=mark-packet new-packet-mark='.$PacketMark.' passthrough=no comment="'.$Host['name'].'"';
    101     $Commands[] = ' /queue tree add name='.$Host['name'].'-in limit-at='.$HostSpeedOut.' max-limit='.$UserMaxSpeedOut.' parent='.$Member['Name'].'-in packet-mark='.$PacketMark.' queue=wireless-default';
    102     $PacketMark++;
     93    $DbResult3 = $Database->select('NetworkInterface', '*', 'Device = '.$Device['Id']);
     94    while($Interface = $DbResult3->fetch_assoc())
     95    {
     96      $Name = $Device['Name'].'-'.$Interface['Name'];
     97      $Name = RouterOSIdent($Name);
     98      echo($Name.', ');
     99      $IPParts = explode('.', $Interface['LocalIP']);
     100      $Subnet = $IPParts[2];
     101      $Commands[] = ' /ip firewall mangle add chain=inet-out-'.$Subnet.' src-address='.$Interface['LocalIP'].' out-interface='.$InetInterface.' action=mark-packet new-packet-mark='.$PacketMark.' passthrough=no comment="'.$Name.'"';
     102      $Commands[] = ' /queue tree add name='.$Name.'-out limit-at='.$HostSpeedIn.' max-limit='.$UserMaxSpeedIn.' parent='.$Member['Name'].'-out packet-mark='.$PacketMark.' queue=wireless-default';
     103      $PacketMark++;
     104      $Commands[] = ' /ip firewall mangle add chain=inet-in-'.$Subnet.' dst-address='.$Interface['LocalIP'].' in-interface='.$InetInterface.' action=mark-packet new-packet-mark='.$PacketMark.' passthrough=no comment="'.$Name.'"';
     105      $Commands[] = ' /queue tree add name='.$Name.'-in limit-at='.$HostSpeedOut.' max-limit='.$UserMaxSpeedOut.' parent='.$Member['Name'].'-in packet-mark='.$PacketMark.' queue=wireless-default';
     106      $PacketMark++;
    103107
    104     // Posílej po menších částech
    105     if($Index > 50)
    106     {
    107       //print_r($Commands);
    108       $Commands = addslashes(implode(';', $Commands));
    109       $Command = '/usr/bin/ssh -l '.$Config['MainRouter']['UserName'].' -i id_dsa '.$Config['MainRouter']['HostName'].' "'.$Commands.'"';
    110       $Output = array();
    111       exec($Command, $Output);
    112       print_r($Output);
    113       $Commands = array();
    114       $Index = 0;
     108      // Posílej po menších částech
     109      if($Index > 50)
     110      {
     111        //print_r($Commands);
     112        $Commands = addslashes(implode(';', $Commands));
     113        $Command = '/usr/bin/ssh -l '.$Config['MainRouter']['UserName'].' -i id_dsa '.$Config['MainRouter']['HostName'].' "'.$Commands.'"';
     114        $Output = array();
     115        exec($Command, $Output);
     116        print_r($Output);
     117        $Commands = array();
     118        $Index = 0;
     119      }
     120      $Index++;
    115121    }
    116     $Index++;
    117122  }
    118123 
Note: See TracChangeset for help on using the changeset viewer.