nofire.pl
329 $speed_in=$p->{speed_in}; # скорость к клиенту, указанная в пакете
330 $speed_out=$p->{speed_out};
331 $dop_param=$p->{dop_param}; # дополнительные параметры учетки клиента
332 $plan_flags=$p->{plan_flags}; # флаги пакета тарификации
333
334 ($num1,$num2)=&Get_Ipfw_Num($num); # номера правил ipfw `от клиента` и `на клиента`
335 $Need_Del_Rule{$ip}=0; # признак, что для $ip персонального правила не создано,
336 # 0 останется если все будет оформлено через таблицы
337
338 &Add_Tbl_Rule(0,$ip);
339
340 my $s_in=$dop_param->{_speed_in}; # входящая скорость в учетке клиента, кб/сек
341 my $s_out=$dop_param->{_speed_out}; # исходящая скорость в учетке клиента, кб/сек
342 my $a_ports=$dop_param->{_open_ports}; # не блокировать запрещенные порты?
343
344 # Если скорости не указаны, то берутся значения по умолчанию (из конфига сателлита)
345
346 if( $speed_in )
347 { # Cкорость указана в пакете. Это самая приоритетная скорость, даже если в учетной
348 # записи в доп параметре указана другая. Получим уникальный номер pipe по основной записи:
349 # $main_num - трафик всех алиасов должен попадать в один pipe!
350 $pipe_in=&Get_Pipe_Num($main_num);
351 &Add_Rule("pipe $pipe_in config bw ${speed_in}Kbit/s");
352 if( $speed_out )
353 { # указана скорость от клиента, для нее отдельный pipe
354 $pipe_out=$pipe_in+1;
355 &Add_Rule("pipe $pipe_out config bw ${speed_out}Kbit/s");
356 }
357 else
358 { # входящий и исходящий трафик в одной трубе
359 $speed_out=$speed_in;
360 $pipe_out=$pipe_in;
361 }
362 }
363 else
364 { # Если какая-либо скорость не указана - берем стандартную. Нулевая скорость в пайпах = allow
365 $pipe_in=&Get_Pipe_Num($num);
366 $pipe_out=$pipe_in+1;
367 $speed_in=$s_in>0? $s_in*8 : $default_in;
368 $speed_out=$s_out>0? $s_out*8 : $default_out;
369 &Add_Rule("pipe $pipe_in config bw ${speed_in}Kbit/s");
370 &Add_Rule("pipe $pipe_out config bw ${speed_out}Kbit/s");
371 }
т.е. скорость в допданных дейтвует только тогда, когда в тарифе указан 0