169 |
my $subscriber=shift; |
my $subscriber=shift; |
170 |
my $startId=shift; |
my $startId=shift; |
171 |
my $persist=shift; |
my $persist=shift; |
172 |
|
my $mode=shift || ''; |
173 |
|
my $userAgent=shift || ''; |
174 |
|
|
175 |
# Note: negative $startId means go back that many messages |
# Note: negative $startId means go back that many messages |
176 |
|
|
177 |
push(@{$self->{'subscribers'}},$subscriber) if($persist); |
push(@{$self->{'subscribers'}},$subscriber) if($persist); |
178 |
|
|
179 |
|
&::syslog('info','', |
180 |
|
'joinchannel', |
181 |
|
$subscriber->{'subscriberID'}, |
182 |
|
$self->{'name'}, |
183 |
|
$mode, |
184 |
|
$startId, |
185 |
|
$userAgent |
186 |
|
); |
187 |
|
|
188 |
my $startIndex=$self->indexForMessageID($startId); |
my $startIndex=$self->indexForMessageID($startId); |
189 |
return unless(defined($startIndex)); |
return unless(defined($startIndex)); |
190 |
|
|
202 |
sub removeSubscriber { |
sub removeSubscriber { |
203 |
my $self=shift; |
my $self=shift; |
204 |
my $subscriber=shift; |
my $subscriber=shift; |
205 |
|
my $reason=shift ||'unknown'; |
206 |
|
|
207 |
my $idx=undef; |
my $idx=undef; |
208 |
for(my $i=0;$i<scalar(@{$self->{'subscribers'}});$i++) |
for(my $i=0;$i<scalar(@{$self->{'subscribers'}});$i++) |
217 |
if(defined($idx)) |
if(defined($idx)) |
218 |
{ |
{ |
219 |
splice(@{$self->{'subscribers'}},$idx,1); |
splice(@{$self->{'subscribers'}},$idx,1); |
220 |
|
|
221 |
|
&::syslog('info','', |
222 |
|
'leavechannel', |
223 |
|
$subscriber->{'subscriberID'}, |
224 |
|
$self->{'name'}, |
225 |
|
$subscriber->{'ConnectionStart'}, |
226 |
|
$subscriber->{'MessageCount'}, |
227 |
|
$subscriber->{'bytesWritten'}, |
228 |
|
$reason |
229 |
|
); |
230 |
} |
} |
231 |
|
|
232 |
$self->checkExpiration(); |
$self->checkExpiration(); |