HEX
Server: Apache
System: Linux sg241.singhost.net 2.6.32-896.16.1.lve1.4.51.el6.x86_64 #1 SMP Wed Jan 17 13:19:23 EST 2018 x86_64
User: honghock (909)
PHP: 8.0.30
Disabled: passthru,system,shell_exec,show_source,exec,popen,proc_open
Upload Files
File: //usr/local/share/perl5/Net/OSCAR/Callbacks/1/rate_change.pm
package Net::OSCAR::Callbacks;
BEGIN {
  $Net::OSCAR::Callbacks::VERSION = '1.928';
}
use strict;
use warnings;
use vars qw($connection $snac $conntype $family $subtype $data $reqid $reqdata $session $protobit %data);
sub {

my($rate, $worrisome);

if($session->{rate_manage_mode} != OSCAR_RATE_MANAGE_NONE) {
	delete $data{message_type};

	my $cinfo = $connection->{rate_limits}->{$data{class_id}};
	$cinfo->{$_} = $data{$_} foreach keys(%data);
}


if($data{current} <= $data{disconnect}) {
	$rate = RATE_DISCONNECT;
	$worrisome = 1;
} elsif($data{limit} && $data{current} <= $data{limit}) {
	$rate = RATE_LIMIT;
	$worrisome = 1;
} elsif($data{alert} && $data{current} <= $data{alert}) {
	$rate = RATE_ALERT;
	if($data{current} - $data{limit} < 500) {
		$worrisome = 1;
	} else {
		$worrisome = 0;
	}
} else { # We're clear
	$rate = RATE_CLEAR;
	$worrisome = 0;
}

$session->callback_rate_alert($rate, $data{clear}, $data{window}, $worrisome, 0);

};