Branch Coverage

blib/lib/POE/Component/Server/IRC.pm
Criterion Covered Total %
branch 1959 3674 53.3


line true false branch
35 0 181 $debug ? :
42 180 1 $config ? :
54 0 524 if ($self->_connection_exists($conn_id))
69 523 1 unless ($needs_auth)
86 0 3 if ($self->_connection_exists($conn_id))
117 0 0 unless $self->_connection_exists($conn_id)
120 0 0 if ($conn->{'type'} eq 'u')
125 0 0 if ($conn->{'pinged'})
146 0 1 unless $self->_connection_exists($conn_id)
157 0 487 unless $self->_connection_exists($conn_id)
159 227 260 if ($self->_connection_is_peer($conn_id)) { }
217 43 elsif ($self->_connection_is_client($conn_id)) { }
188 0 0 unless $self->{'debug'}
197 0 0 unless $self->{'debug'}
206 9237 4159 unless $event =~ /^IRCD_cmd_/
210 0 4159 unless $self->_connection_exists($conn_id)
211 21 4138 if $self->_connection_terminated($conn_id)
214 1433 2705 if (not $self->_connection_registered($conn_id)) { }
1904 801 elsif ($self->_connection_is_peer($conn_id)) { }
801 0 elsif ($self->_connection_is_client($conn_id)) { }
231 0 245 unless $self->_connection_exists($conn_id)
238 528 22541 unless defined $self->{'state'}{'conns'}{$conn_id}
245 0 4673 unless defined $self->{'state'}{'conns'}{$conn_id}
246 21 4652 if defined $self->{'state'}{'conns'}{$conn_id}{'terminated'}
252 0 1064 unless $self->_connection_exists($conn_id)
253 563 501 unless $self->{'state'}{'conns'}{$conn_id}{'nick'}
254 246 255 unless $self->{'state'}{'conns'}{$conn_id}{'user'}
255 10 245 if $self->{'state'}{'conns'}{$conn_id}{'capneg'}
259 0 245 unless $auth
261 5 240 unless ($self->_state_auth_client_conn($conn_id))
277 1 239 if ($self->{'auth'})
278 1 0 if ($self->{'state'}{'conns'}{$conn_id}{'need_ident'} and not $self->{'state'}{'conns'}{$conn_id}{'auth'}{'ident'})
298 5 234 if (my $reason = $self->_state_user_matches_xline($conn_id))
315 5 229 if (my $reason = $self->_state_user_matches_kline($conn_id))
320 2 227 if (my $reason = $self->_state_user_matches_rkline($conn_id))
326 0 226 unless ($self->{'state'}{'conns'}{$conn_id}{'auth'}{'ident'} or $self->{'state'}{'conns'}{$conn_id}{'user'} =~ /$user_re/)
348 0 227 if ($self->{'config'}{'MAXCLIENTS'} < $clients + 1)
350 0 0 unless ($crec->{'exceed_limit'})
366 8 219 if (my $sslinfo = $self->connection_secured($conn_id))
447 8 219 if ($umode)
473 0 4279 unless $self->_connection_exists($conn_id)
481 0 6606 unless $self->_connection_exists($conn_id)
482 1538 5068 unless $self->{'state'}{'conns'}{$conn_id}{'registered'}
483 3088 1980 if $self->{'state'}{'conns'}{$conn_id}{'type'} eq 'p'
491 0 1096 unless $self->_connection_exists($conn_id)
492 43 1053 unless $self->{'state'}{'conns'}{$conn_id}{'registered'}
493 1047 6 if $self->{'state'}{'conns'}{$conn_id}{'type'} eq 'c'
506 0 1433 if ($cmd eq 'ERROR')
508 0 0 if (defined $peer)
517 7 1426 if ($cmd eq 'QUIT')
522 141 1285 if ($cmd eq 'CAP')
528 0 1285 if ($cmd =~ /^(PASS|NICK|SERVER)$/ and not $pcount)
534 264 1021 if ($cmd eq 'PASS' and $pcount)
537 262 2 if ($params->[1] and $params->[1] =~ /TS$/)
543 261 1 if ($params->[2] and $params->[3]) { }
548 1 260 if (not $sid =~ /$sid_re/ or $ts ne '6') { }
1 259 elsif ($self->state_sid_exists($sid)) { }
568 2 259 if ($errstr)
582 259 762 if ($cmd eq 'CAPAB' and $pcount)
587 0 762 if ($cmd eq 'SERVER' and $pcount < 2)
591 259 503 if ($cmd eq 'SERVER')
597 0 259 if ($conn->{'desc'} and $conn->{'desc'} =~ /^\(H\) /)
602 0 259 unless ($conn->{'ts_server'})
608 2 257 if (not $result or $result <= 0)
610 0 2 if (not defined $result or $result == 0) { }
1 1 elsif ($result == -1) { }
1 0 elsif ($result == -2) { }
639 0 257 if ($self->state_peer_exists($conn->{'name'}))
651 2 255 if ($conn->{'zip'} and grep {$_ eq 'ZIP';} @{$$conn{'capab'};}) { }
666 252 251 if ($cmd eq 'NICK' and $pcount)
668 0 252 if (length $params->[0] > $nicklen)
672 0 252 unless (is_valid_nick_name($params->[0]))
681 1 251 if ($self->state_nick_exists($params->[0]))
690 5 246 if (my $reason = $self->_state_is_resv($params->[0], $wheel_id))
710 0 251 if ($cmd eq 'USER' and $pcount < 4)
714 251 0 if ($cmd eq 'USER')
721 0 0 if $self->{'state'}{'conns'}{$wheel_id}{'cntr'}
726 0 1433 if $invalid
742 1 1903 if ($cmd eq 'SQUIT' and not $prefix)
752 0 1903 if ($cmd =~ /\d{3}/ and not $params->[0] =~ /^$sid/)
759 11 1892 if ($cmd =~ /\d{3}/ and $params->[0] =~ /^$sid/)
769 4 1888 if ($cmd eq 'QUIT')
778 7 1881 if ($cmd =~ /^(PRIVMSG|NOTICE)$/)
783 0 0 ref $_ eq 'ARRAY' ? :
792 6 1875 if ($cmd =~ /^(VERSION|TIME|LINKS|ADMIN|INFO|MOTD|STATS)$/i)
794 1 5 if $cmd eq 'LINKS'
799 0 34 ref $_ eq 'ARRAY' ? :
803 255 1620 if ($cmd =~ /^(PING|PONG)$/i and $self->can($method))
808 257 1363 if ($cmd =~ /^SVINFO$/i and $self->can($method))
819 4 1359 if ($cmd =~ /^E?TRACE$/i)
827 0 1359 if ($cmd eq 'MODE')
831 12 1347 if ($cmd =~ /^(UN)?([DKX]LINE|RESV)$/i)
837 4 1343 if ($cmd =~ /^WHO(IS|WAS)$/i)
843 1343 0 if ($self->can($method))
850 0 1904 if $invalid
869 200 601 if ($cmd eq 'QUIT')
872 7 193 if ($qmsg and my $msgtime = $self->{'config'}{'anti_spam_exit_message_time'})
874 7 0 if time - $self->{'state'}{'conns'}{$wheel_id}{'conn_time'} < $msgtime
877 167 33 $qmsg ? :
883 0 601 if ($cmd =~ /^(USERHOST|MODE)$/ and not $pcount)
887 1 600 if ($cmd =~ /^(USERHOST)$/)
889 1 0 $pcount <= 5 ? :
899 30 570 if ($cmd =~ /^(PRIVMSG|NOTICE)$/)
904 7 2 ref $_ eq 'ARRAY' ? :
908 231 339 if ($cmd eq 'MODE' and $self->state_nick_exists($params->[0]))
909 0 231 if (uc_irc($nick) ne uc_irc($params->[0]))
915 1 230 ref $_ eq 'ARRAY' ? :
919 0 339 if ($cmd eq 'CAP')
924 6 333 if ($cmd =~ /^(ADMIN|INFO|VERSION|TIME|MOTD)$/)
928 0 30 ref $_ eq 'ARRAY' ? :
932 6 327 if ($cmd =~ /^E?TRACE$/i)
936 1 17 ref $_ eq 'ARRAY' ? :
940 323 4 if ($self->can($method))
944 34 308 ref $_ eq 'ARRAY' ? :
948 3 1 if (defined $self->{'config'}{'pseudo'}{$cmd})
951 1 2 unless ($params->[0])
957 1 1 unless ($targ and $serv)
962 1 0 if ($pseudo->{'prepend'}) { }
963 0 1 $pseudo->{'prepend'} =~ / $/ ? :
972 0 0 ref $_ eq 'ARRAY' ? :
980 4 797 if $invalid or $pseudo
994 2 3 unless ($self->state_user_is_operator($nick))
997 1 0 if ($lastuse and $pacewait and $lastuse + $pacewait > time)
1004 2 2 unless ($self->{'_help'})
1010 1 3 unless (scalar @lines)
1038 5 0 if wantarray
1051 0 4 unless ($count)
1058 4 2 if ($item =~ /^\+/)
1060 0 4 if (keys %$watches >= $self->{'config'}{'max_watch'})
1064 0 4 unless $item and is_valid_nick_name($item)
1069 0 4 if (my $tuid = $self->state_user_uid($item)) { }
1096 0 2 if ($item =~ /^\-/)
1098 0 0 unless $item
1102 0 0 if (my $tuid = $self->state_user_uid($item)) { }
1128 0 0 unless keys %{$$self{'state'}{'watches'}{$item}{'uids'};}
1131 0 2 if ($item =~ /^C/i)
1135 0 0 unless keys %{$$self{'state'}{'watches'}{$watched}{'uids'};}
1140 2 0 if ($item =~ /^S/i)
1141 0 2 if $list & 1
1147 0 2 if (defined $self->{'state'}{'watches'}{uc_irc($nick)})
1162 0 4 if (length(join ' ', $buf, $watched) + $len + 1 > 510)
1174 2 0 if ($buf)
1191 0 0 if ($item =~ /^L/i)
1192 0 0 if $list & 2
1196 0 0 if (my $tuid = $self->state_user_uid($watched)) { }
0 0 elsif ($item eq 'L') { }
1235 4 0 if wantarray
1249 0 141 unless ($subcmd)
1254 0 141 unless ($subcmd =~ /^(LS|LIST|REQ|ACK|NAK|CLEAR|END)$/)
1258 0 141 if ($subcmd eq 'END' and $registered)
1261 43 98 if ($subcmd eq 'END' and not $registered)
1263 43 0 if $capneg
1266 98 0 if not $registered and $subcmd =~ /^(LS|REQ)$/
1267 32 66 if ($subcmd eq 'LS')
1277 0 66 if ($subcmd eq 'LIST')
1287 66 0 if ($subcmd eq 'REQ')
1292 23 50 unless ($self->{'state'}{'caps'}{$cap})
1301 0 50 if ($neg) { }
1330 0 31 unless ($count)
1334 0 31 if ($count < 2 or not $args->[1])
1349 0 31 if ($targ_type =~ /(server|host)mask/ and not $self->state_user_is_operator($nick))
1355 0 31 if ($targ_type =~ /(server|host)mask/ and not $targs->{$target}[0] =~ /\./)
1361 0 31 if ($targ_type =~ /(server|host)mask/ and $targs->{$target}[1] =~ /\x2E[^.]*[\x2A\x3F]+[^.]*$/)
1367 0 31 if ($targ_type eq 'channel_ext' and not $self->state_chan_exists($targs->{$target}[1]))
1373 0 31 if ($targ_type eq 'channel' and not $self->state_chan_exists($target))
1379 0 31 if ($targ_type eq 'nick' and not $self->state_nick_exists($target))
1385 0 31 if ($targ_type eq 'nick_ext' and not $self->state_peer_exists($targs->{$target}[1]))
1392 0 31 if ($targets > $max_targets)
1398 0 31 if ($targ_type eq 'servermask')
1404 0 0 if (matches_mask($targs->{$target}[0], $peer))
1405 0 0 if ($ucserver eq $peer) { }
1423 0 0 if ($us)
1430 0 0 if ($luser->{'route_id'} eq 'spoofed') { }
1447 0 0 if $spoofed
1458 0 31 if ($targ_type eq 'hostmask')
1463 0 0 unless (matches_mask($targs->{$target}[0], $luser->{'auth'}{'hostname'}))
1468 0 0 if ($luser->{'route_id'} eq 'spoofed') { }
0 0 elsif ($luser->{'type'} eq 'r') { }
1497 0 0 if $spoofed
1507 0 31 if ($targ_type eq 'nick_ext')
1511 0 0 if ($targs->{$target}[2] and not $self->state_user_is_operator($nick))
1517 0 0 if ($targs->{$target}[1] ne $self->server_name)
1529 0 0 if (uc $targs->{$target}[0] eq 'OPERS')
1530 0 0 unless ($self->state_user_is_operator($nick))
1551 0 0 if (@local == 1) { }
1553 0 0 if ($ref->[0] eq 'spoofed') { }
1579 17 14 if ($targ_type eq 'channel')
1582 0 31 if ($targ_type eq 'channel_ext')
1586 0 17 if ($channel and $status_msg and not $self->state_user_chan_mode($nick, $channel))
1591 17 14 if ($channel)
1593 0 17 if (not $res) { }
7 10 elsif (ref $res eq 'ARRAY') { }
1600 1 9 if ($res != 2 and $self->state_flood_attack_channel($nick, $channel, $type))
1604 0 9 $status_msg ? :
1611 0 27 if $self->_state_user_is_deaf($member)
1617 17 1 if ($self->_connection_is_client($route_id))
1620 18 0 if ($route_id ne 'spoofed') { }
1624 0 0 $type eq 'PRIVMSG' ? :
1637 14 0 if ($self->state_nick_exists($target))
1641 1 13 if $self->state_flood_attack_client($nick, $target, $type)
1643 0 13 if (my $away = $self->_state_user_away_msg($target))
1654 1 12 if ($targ_umode and $targ_umode =~ /[Gg]/)
1658 1 0 if ($targ_umode =~ /G/ and not $self->state_users_share_chan($target, $nick) && $targ_rec->{'accepts'}{uc_irc($nick)} or $targ_umode =~ /g/ and not $targ_rec->{'accepts'}{uc_irc($nick)})
1674 1 0 if (not $targ_rec->{'last_caller'} or time - $targ_rec->{'last_caller'} >= 60)
1690 0 0 $local ? :
0 0 $local ? :
0 1 if $targ_rec->{'route_id'} ne 'spoofed'
1714 2 10 if ($route_id eq 'spoofed') { }
1724 5 5 if ($self->_connection_is_client($route_id))
1735 31 0 if wantarray
1748 0 0 if (not $count && $args->[0] or $args->[0] eq '*')
1752 0 0 unless ($self->state_nick_exists($accept))
1758 0 0 if @list
1776 0 0 unless $self->state_nick_exists($_)
1780 0 0 if (my($foo) = $target =~ /^\-(.+)$/)
1782 0 0 unless ($dfoo)
1790 0 0 unless (keys %{$self->{'state'}{'accepts'}{uc_irc($foo)};})
1796 0 0 unless ($self->state_nick_exists($target))
1801 0 0 if ($record->{'accepts'}{uc_irc($target)})
1814 0 0 if ($record->{'umode'} and $record->{'umode'} =~ /G/ and $self->_state_users_share_chan($nick, $target))
1832 0 0 if @list
1848 0 0 if wantarray
1862 0 226 unless $qmsg
1873 223 3 unless $record->{'killed'}
1887 1 225 if (defined $self->{'state'}{'watches'}{$nick})
1891 0 1 unless defined $self->{'state'}{'uids'}{$wuid}
1914 4 0 unless keys %{$$self{'state'}{'watches'}{$watched}{'uids'};}
1922 25 56 unless $user =~ /^$sid/
1926 39 53 unless (keys %{$$self{'state'}{'chans'}{$uchan}{'users'};})
1932 26 200 if $record->{'umode'} =~ /o/
1933 221 5 if $record->{'umode'} =~ /i/
1934 220 6 unless $record->{'nick_collision'}
1948 0 226 if wantarray
1962 1 2 unless ($count)
1967 1 1 if ($count >= 2 and not $self->state_peer_exists($args->[1]))
1971 1 0 if ($count >= 2 and uc $args->[1] ne uc $server)
1989 3 0 if wantarray
2002 0 0 unless ($count)
2006 0 0 if ($count >= 2 and not $self->state_peer_exists($args->[1]))
2010 0 0 if ($count >= 2 and uc $args->[1] ne uc $server)
2025 0 0 if wantarray
2034 0 0 if wantarray
2043 0 0 if wantarray
2057 0 25 if $self->state_user_is_operator($nick)
2058 0 25 if (not $count or $count < 2)
2065 3 22 if (not $result or $result <= 0)
2067 1 2 if (not defined $result) { }
0 2 elsif ($result == -1) { }
1 1 elsif ($result == -2) { }
1 0 elsif ($result == -3) { }
2106 0 22 if (my $whois = $self->{'config'}{'ops'}{$opuser}{'whois'})
2172 25 0 if wantarray
2183 0 1 unless ($self->state_user_is_operator($nick))
2190 1 0 if wantarray
2201 0 1 unless ($self->state_user_is_operator($nick))
2208 5 1 if $self->{'state'}{'conns'}{$conn_id}{'type'} ne 'u'
2237 1 0 if wantarray
2252 0 0 if ($val and $val >= 0) { }
2277 0 0 if ($val and $val >= 0) { }
2302 0 0 if ($val and $val >= 0) { }
2327 1 1 if ($val and $val >= 0) { }
2328 0 1 if ($val > 7000)
2342 1 0 if ($val < 32)
2380 0 0 if (defined $val and $val >= 0) { }
2382 0 0 if ($val == 0) { }
2415 0 0 if ($val and $val >= 0) { }
2440 1 1 if ($val and $val >= 0) { }
2465 0 0 if ($val and $val >= 0) { }
2491 0 5 unless ($self->state_user_is_operator($nick))
2495 4 1 if ($count > 0)
2496 4 0 if (defined $vars{uc $args->[0]})
2521 2 6 if (scalar @names == 4)
2533 0 1 if (@names)
2544 5 0 if wantarray
2555 0 1 unless ($self->state_user_is_operator($nick))
2566 1 0 if wantarray
2579 0 0 unless ($self->state_user_is_operator($nick))
2583 0 0 unless ($count)
2592 0 0 if wantarray
2605 0 0 unless ($self->state_user_is_operator($nick))
2609 0 0 unless ($count)
2638 0 0 if wantarray
2652 0 0 unless ($self->state_user_is_operator($nick))
2656 0 0 unless ($count)
2680 0 0 if wantarray
2693 0 0 unless ($self->state_user_is_operator($nick))
2697 0 0 unless ($count)
2701 0 0 if ($count >= 3 and not $self->state_peer_exists($args->[2]))
2705 0 0 if ($count >= 3 and uc $server ne uc $args->[2])
2717 0 0 if (not $self->{'config'}{'peers'}{uc $args->[0]} or $self->{'config'}{'peers'}{uc $args->[0]}{'type'} ne 'r')
2728 0 0 if (my $peer_name = $self->_state_peer_name($args->[0]))
2750 0 0 if wantarray
2763 0 0 unless ($self->state_user_is_operator($nick))
2767 0 0 unless ($count)
2771 0 0 if (not $self->state_peer_exists($args->[0]) or uc $server eq uc $args->[0])
2784 0 0 unless (grep {$_ eq $peer;} keys %{$self->{'state'}{'peers'}{uc $server}{'peers'};})
2810 0 0 if wantarray
2823 0 2 unless ($self->state_user_is_operator($nick))
2827 0 2 if (not $count or $count < 1)
2832 1 1 if ($args->[0] =~ /^\d+$/)
2834 0 1 if $duration > 14400
2837 0 2 unless ($mask)
2842 0 2 unless ($user and $host)
2849 2 0 unless ($reason)
2862 0 2 unless $self->_state_add_drkx_line('rkline', $full, time, $server, $duration * 60, $user, $host, $reason)
2866 1 1 $duration ? :
2883 0 2 if wantarray
2896 0 1 unless ($self->state_user_is_operator($nick))
2900 0 1 if (not $count or $count < 1)
2905 0 1 unless ($user and $host)
2911 0 1 unless ($result)
2931 0 1 if wantarray
2945 0 4 unless ($self->state_user_is_operator($nick))
2949 0 4 if (not $count or $count < 1)
2954 2 2 if ($args->[0] =~ /^\d+$/)
2956 0 2 if $duration > 14400
2959 0 4 unless ($mask)
2964 0 4 if (not $mask =~ /\@/) { }
2965 0 0 if (my $rogue = $self->_state_user_full($mask)) { }
2980 0 4 if ($args->[0] and uc $args->[0] eq 'ON' and scalar @$args < 2)
2986 1 3 if ($args->[0] and uc $args->[0] eq 'ON') { }
2993 4 0 if (matches_mask($target, $peer))
2994 1 3 if ($ucserver eq $peer) { }
3022 4 0 if ($us)
3023 3 1 unless $target
3024 3 1 unless ($reason)
3028 0 4 unless $self->_state_add_drkx_line('kline', $full, time, $server, $duration * 60, $user, $host, $reason)
3040 2 2 $duration ? :
3057 0 4 if wantarray
3071 0 2 unless ($self->state_user_is_operator($nick))
3075 0 2 if (not $count or $count < 1)
3080 0 2 if (not $args->[0] =~ /\@/) { }
3081 0 0 if (my $rogue = $self->state_user_full($args->[0])) { }
3096 0 1 if ($count > 1 and uc $args->[2] eq 'ON' and $count < 3)
3100 0 2 if ($count > 1 and $args->[2] and uc $args->[2] eq 'ON') { }
3104 0 0 if (matches_mask($target, $peer))
3105 0 0 if ($ucserver eq $peer) { }
3128 0 2 unless $us
3134 0 2 unless ($result)
3152 0 2 if wantarray
3166 0 6 unless ($self->state_user_is_operator($nick))
3170 0 6 if (not $count or $count < 2)
3175 2 4 if ($args->[0] =~ /^\d+$/)
3177 0 2 if $duration > 14400
3180 0 6 unless ($mask)
3184 0 6 if ($args->[0] and uc $args->[0] eq 'ON' and scalar @$args < 2)
3191 1 5 if ($args->[0] and uc $args->[0] eq 'ON') { }
3197 4 0 if (matches_mask($peermask, $peer))
3198 1 3 if ($ucserver eq $peer) { }
3224 0 6 unless $us
3226 0 6 if ($self->_state_have_resv($mask))
3235 5 1 unless ($reason)
3241 0 6 unless $self->_state_add_drkx_line('resv', $full, time, $server, $duration * 60, $mask, $reason)
3251 2 4 $duration ? :
3266 0 6 if wantarray
3280 0 4 unless ($self->state_user_is_operator($nick))
3284 0 4 unless ($count)
3289 0 1 if ($args->[0] and uc $args->[0] eq 'ON' and scalar @$args < 2)
3295 1 3 if ($args->[0] and uc $args->[0] eq 'ON') { }
3300 4 0 if (matches_mask($peermask, $peer))
3301 1 3 if ($ucserver eq $peer) { }
3326 0 4 unless $us
3330 0 4 unless ($result)
3351 0 4 if wantarray
3365 0 3 unless ($self->state_user_is_operator($nick))
3369 0 3 if (not $count or $count < 2)
3374 2 1 if ($args->[0] =~ /^\d+$/)
3376 0 2 if $duration > 14400
3379 0 3 unless ($mask)
3383 0 3 if ($args->[0] and uc $args->[0] eq 'ON' and scalar @$args < 2)
3390 1 2 if ($args->[0] and uc $args->[0] eq 'ON') { }
3396 4 0 if (matches_mask($peermask, $peer))
3397 1 3 if ($ucserver eq $peer) { }
3423 0 3 unless $us
3425 2 1 unless ($reason)
3431 0 3 unless $self->_state_add_drkx_line('xline', $full, time, $server, $duration * 60, $mask, $reason)
3441 2 1 $duration ? :
3457 0 3 if wantarray
3471 0 2 unless ($self->state_user_is_operator($nick))
3475 0 2 unless ($count)
3480 0 1 if ($args->[0] and uc $args->[0] eq 'ON' and scalar @$args < 2)
3486 1 1 if ($args->[0] and uc $args->[0] eq 'ON') { }
3491 4 0 if (matches_mask($peermask, $peer))
3492 1 3 if ($ucserver eq $peer) { }
3517 0 2 unless $us
3521 0 2 unless ($result)
3542 0 2 if wantarray
3556 0 3 unless ($self->state_user_is_operator($nick))
3560 0 3 if (not $count or $count < 2)
3565 2 1 if ($args->[0] =~ /^\d+$/)
3567 0 2 if $duration > 14400
3570 0 3 unless ($mask)
3575 0 3 if (not $mask =~ /[:.]/ and $self->state_nick_exists($mask)) { }
0 3 elsif (not $mask =~ /[:.]/ || $self->state_nick_exists($mask)) { }
3577 0 0 unless ($uid =~ /^$sid/)
3581 0 0 if ($self->{'state'}{'uids'}{$uid}{'umode'} =~ /o/ or $self->{'state'}{'uids'}{$uid}{'route_id'} eq 'spoofed')
3593 3 0 unless ($netmask)
3595 0 3 unless ($netmask)
3600 0 3 if ($args->[0] and uc $args->[0] eq 'ON' and scalar @$args < 2)
3607 1 2 if ($args->[0] and uc $args->[0] eq 'ON') { }
3613 4 0 if (matches_mask($peermask, $peer))
3614 1 3 if ($ucserver eq $peer) { }
3640 0 3 unless $us
3642 2 1 unless ($reason)
3648 0 3 unless $self->_state_add_drkx_line('dline', $full, time, $server, $duration * 60, $netmask, $reason)
3662 2 1 $duration ? :
3678 0 3 if wantarray
3692 0 2 unless ($self->state_user_is_operator($nick))
3696 0 2 unless ($count)
3701 0 1 if ($args->[0] and uc $args->[0] eq 'ON' and scalar @$args < 2)
3707 1 1 if ($args->[0] and uc $args->[0] eq 'ON') { }
3712 4 0 if (matches_mask($peermask, $peer))
3713 1 3 if ($ucserver eq $peer) { }
3738 0 2 unless $us
3742 0 2 unless ($result)
3769 0 2 if wantarray
3777 0 0 $self->{'config'}{'hidden_servers'} ? :
3783 0 0 unless ($self->state_user_is_operator($nick))
3787 0 0 unless ($count)
3791 0 0 if ($self->state_peer_exists($args->[0]))
3795 0 0 unless ($self->state_nick_exists($args->[0]))
3803 0 0 if ($self->_state_is_local_user($target)) { }
3825 0 0 if ($route_id eq 'spoofed') { }
3855 0 0 if wantarray
3872 0 4 if ($count > 1)
3874 0 0 unless ($targ)
3885 0 0 unless ($targ =~ /^$sid/)
3901 4 0 if ($args->[0])
3903 0 4 unless ($targ)
3914 2 2 unless ($targ =~ /^$sid/)
3917 2 0 if (length $targ == 3) { }
3949 1 1 $cmd eq 'ETRACE' ? :
3952 4 0 if wantarray
3965 0 3 if ($self->state_nick_exists($targ))
3968 0 3 if (not $result and $self->state_peer_exists($targ))
3971 3 0 if (not $result and $targ =~ /[\x2A\x3F]/)
3973 1 8 if (matches_mask($targ, $peer, 'ascii'))
3974 0 1 if $ume eq $peer
3977 0 0 if $connid and $connid eq $peerrec->{'route_id'} and $peerrec->{'type'} eq 'r'
3982 2 1 unless ($result)
3984 2 8 if (matches_mask($targ, $user))
3986 0 2 if $rec->{'uid'} =~ /^$sid/
3988 0 0 if $connid and $connid eq $rec->{'route_id'} and $self->{'state'}{'sids'}{$rec->{'sid'}}{'type'} eq 'r'
3995 3 0 if $result
4011 2 4 unless ($self->state_user_is_operator($nick))
4012 1 1 if ($cmd eq 'ETRACE')
4025 0 4 if ($count > 1)
4027 0 0 unless ($targ)
4031 0 0 unless ($targ =~ /^$sid/)
4048 2 2 if ($args->[0])
4050 0 2 unless ($targ)
4054 2 0 unless ($targ =~ /^$sid/)
4057 0 2 if (length $targ == 3) { }
4089 1 1 $cmd eq 'ETRACE' ? :
4093 6 0 if wantarray
4120 1 1 if (not $args->[0]) { }
0 1 elsif (uc $args->[0] eq uc $server) { }
1 0 elsif ($args->[0] eq $sid) { }
4130 1 1 if ($name and $name =~ /^[0-9]/)
4133 0 2 if $name
4138 6 6 if $conns->{$conn_id}{'type'} ne 'c'
4139 2 4 if defined $self->{'state'}{'localops'}{$conn_id}
4144 0 4 if not $doall or $name and $name ne uc_irc($conns->{$conn_id}{'nick'})
4162 0 2 if not $doall or $name and $name ne uc_irc($conns->{$conn_id}{'nick'})
4188 0 2 if wantarray
4215 1 1 if (not $args->[0]) { }
0 1 elsif (uc $args->[0] eq uc $server) { }
1 0 elsif ($args->[0] eq $sid) { }
4225 1 1 if ($name and $name =~ /^[0-9]/)
4228 0 2 if $name
4233 2 10 if defined $self->{'state'}{'localops'}{$conn_id}
4238 0 4 if not $doall or $name and $name ne uc_irc($conns->{$conn_id}{'nick'})
4257 0 2 if not $doall or $name and $name ne uc_irc($conns->{$conn_id}{'nick'})
4277 0 4 if not $doall or $name and $name ne uc_irc($conns->{$conn_id}{'name'})
4301 0 2 unless $doall
4318 2 0 if ($doall)
4319 2 0 defined $connects{'c'} ? :
4320 2 0 defined $self->{'state'}{'localops'} ? :
4321 2 0 defined $connects{'p'} ? :
4324 2 0 if ($servers)
4335 2 0 if ($opers)
4346 2 0 if ($users)
4368 0 2 if wantarray
4394 0 23 unless ($new)
4399 0 23 if length $new > $nicklen
4400 2 21 if ($nick eq $new)
4403 0 21 unless (is_valid_nick_name($new))
4409 1 20 if (my $reason = $self->_state_is_resv($new, $record->{'route_id'}))
4431 0 20 if ($self->state_nick_exists($new) and $unick ne $unew)
4441 2 2 if ($chanrec->{'mode'} =~ /N/)
4442 2 0 unless ($record->{'chans'} =~ /[oh]/)
4448 0 4 unless $user =~ /^$sid/
4453 2 18 if ($nonickchange)
4459 0 18 if ($lastattempt and $lastattempt + $self->{'config'}{'max_nick_time'} < time)
4463 1 17 if ($self->{'config'}{'anti_nick_flood'} and not $record->{'umode'} =~ /o/ and $record->{'_nick_count'} and $record->{'_nick_count'} >= $self->{'config'}{'max_nick_changes'})
4472 0 17 if ($unick eq $unew) { }
4485 1 16 if (defined $self->{'state'}{'watches'}{$unick})
4487 0 1 unless defined $self->{'state'}{'uids'}{$wuid}
4508 1 16 if (defined $self->{'state'}{'watches'}{$unew})
4510 0 1 unless defined $self->{'state'}{'uids'}{$wuid}
4533 1 16 if ($record->{'umode'} =~ /r/)
4590 23 0 if wantarray
4603 2 3 unless ($msg)
4639 5 0 if wantarray
4652 0 6 if ($target and not $self->state_peer_exists($target))
4656 0 6 if ($target and uc $server ne uc $target)
4668 3 3 if ($cmd =~ /^(ADMIN|INFO|MOTD)$/i)
4682 6 0 if wantarray
4696 0 5 if ($cmd ne 'STATS' and not $args->[0] =~ /^$sid/)
4707 0 5 if ($cmd eq 'STATS' and not $args->[1] =~ /^$sid/)
4718 3 2 if ($cmd =~ /^(ADMIN|INFO|MOTD)$/i)
4731 5 0 if wantarray
4749 2061 458 defined $self->{'config'}{'isupport'}{$_} ? :
4766 1374 229 defined $self->{'config'}{'isupport'}{$_} ? :
4774 0 229 if wantarray
4800 0 2 if wantarray
4823 0 2 if wantarray
4860 0 2 if wantarray
4870 0 0 if wantarray
4892 0 3 if wantarray
4903 6 223 $hidden ? :
4904 6 223 $hidden ? :
4926 229 0 if wantarray
4939 0 2 if ($count and $count > 1)
4941 0 0 unless ($target)
4947 0 0 if ($targsid ne $sid)
4967 2 0 if wantarray
4980 0 0 if (not $count or $count < 2)
4984 0 0 unless ($target)
4989 0 0 if ($targsid ne $sid)
5003 0 0 if wantarray
5015 6 223 $hidden ? :
5017 6 223 $hidden ? :
5018 6 223 $hidden ? :
5043 165 64 if $self->{'state'}{'stats'}{'ops_online'}
5045 61 168 if $chans
5059 223 6 unless $hidden
5068 0 229 if wantarray
5081 2 227 if ($motd and ref $motd eq 'ARRAY') { }
5107 0 229 if wantarray
5121 0 22 unless ($char)
5126 21 1 unless ($self->state_user_is_operator($nick))
5129 1 17 if ($lastuse and $pacewait and $lastuse + $pacewait > time)
5135 2 19 if ($char =~ /^[Ll]$/ and not $target)
5139 1 18 if ($target)
5141 0 1 unless ($targ)
5145 1 0 unless ($targ =~ /^$sid/)
5166 22 0 if wantarray
5173 0 4 unless defined $bytes
5174 2 2 if abs $bytes <= 1000
5175 2 0 if abs $bytes < 1024000
5176 0 0 if abs $bytes < 1048576000
5177 0 0 if abs $bytes < 1073741824000
5178 0 0 if abs $bytes < 1099511627776000
5209 17 1 if ($char =~ /$perms{'admin'}/ and not $is_admin or $char =~ /$perms{'oper'}/ and not $is_oper)
5221 0 1 if ($char =~ /^[aA]$/)
5235 0 1 if ($char =~ /^[cC]$/)
5239 0 0 if $cblk->{'auto'}
5240 0 0 if $cblk->{'ssl'}
5241 0 0 unless length $feat
5258 0 1 if ($char eq 's')
5276 0 1 if ($char eq 'S')
5291 0 1 if ($char =~ /^[Dd]$/)
5294 0 0 if $tdline and not $dline->{'duration'}
5295 0 0 if not $tdline and $dline->{'duration'}
5307 0 1 if ($char eq 'e')
5320 0 1 if ($char =~ /^[Xx]$/)
5323 0 0 if $txline and not $xline->{'duration'}
5324 0 0 if not $txline and $xline->{'duration'}
5336 0 1 if ($char =~ /^[Kk]$/)
5339 0 0 if $tkline and not $kline->{'duration'}
5340 0 0 if not $tkline and $kline->{'duration'}
5353 0 1 if ($char eq 'v')
5360 0 0 if $peer->{'auto'}
5361 0 0 if $peer->{'type'} ne 'r'
5386 0 1 if ($char eq 'P')
5398 0 0 $is_admin ? :
0 0 $lrec->{'usessl'} ? :
5405 0 1 if ($char eq 'u')
5439 0 1 if ($char =~ /^[mM]$/)
5454 0 1 if ($char eq 'p')
5459 0 0 if $record->{'umode'} =~ /H/ and not $is_oper
5481 0 1 if ($char =~ /^[Oo]$/)
5485 0 0 if ($orec->{'ipmask'})
5486 0 0 if (ref $orec->{'ipmask'} eq 'ARRAY') { }
5506 0 1 if ($char =~ /^[Qq]$/)
5509 0 0 if ($mask =~ /^\#/) { }
5525 0 0 $resv->{'duration'} ? :
5530 0 1 if ($char =~ /^[Ll]$/)
5532 0 0 if (uc $targ eq uc $server) { }
0 0 elsif ($targ eq $sid) { }
5539 0 0 if (not $doall and $name =~ /^[0-9]/)
5548 0 0 $doall ? :
5567 0 0 $char eq 'L' ? :
0 0 time > $connrec->{'seen'} ? :
5575 0 0 unless $doall or matches_mask($name, $conns->{$conn_id}{'nick'})
5594 0 0 $char eq 'L' ? :
0 0 time > $connrec->{'seen'} ? :
5602 0 0 unless $doall or matches_mask($name, $conns->{$conn_id}{'name'})
5622 0 0 $char eq 'L' ? :
0 0 time > $connrec->{'seen'} ? :
5629 1 0 if ($char eq '?')
5649 0 2 time > $srec->{'seen'} ? :
5682 1 0 $uptime == 0 ? :
5695 1 0 $uptime == 0 ? :
5710 0 18 if wantarray
5723 0 3 if $cnt >= 5
5726 0 3 unless $uid
5729 1 2 if ($nick eq $name)
5733 1 0 if ($urec->{'umode'} =~ /o/ and !($urec->{'umode'} =~ /H/) || $self->state_user_is_operator($nick))
5738 0 3 defined $urec->{'away'} ? :
5743 1 0 $str ? :
5749 1 0 if wantarray
5762 0 0 unless ($count)
5771 0 0 $string =~ /\s+/ ? :
5778 0 0 if wantarray
5786 1 129 unless $mask
5789 7 122 if ($start) { }
5804 6 116 unless ($chan)
5818 0 116 unless defined $self->{'state'}{'chans'}{$chan}
5819 30 86 if ($mask->{'all'})
5823 0 86 if ($mask->{'hide'})
5825 0 0 if keys %$match
5828 30 56 if ($mask->{'show'})
5830 8 22 if (keys %$match) { }
5838 28 36 if ($mask->{'users_max'} or $mask->{'users_min'})
5840 0 28 if ($mask->{'users_max'})
5841 0 0 if ($usercnt > $mask->{'users_max'}) { }
5848 28 0 if ($mask->{'users_min'})
5849 6 22 if ($usercnt < $mask->{'users_min'}) { }
5857 0 64 if ($mask->{'create_max'} or $mask->{'create_min'})
5859 0 0 if ($mask->{'create_max'})
5860 0 0 if ($chants > $mask->{'create_max'}) { }
5867 0 0 if ($mask->{'create_min'})
5868 0 0 if ($chants < $mask->{'create_min'}) { }
5876 28 36 if ($mask->{'topic_max'} or $mask->{'topic_min'} or $mask->{'topic_msk'})
5878 24 4 if (not $chantopic) { }
5882 0 4 if ($mask->{'topic_max'})
5883 0 0 if ($mask->{'topic_max'} > $chantopic->[2]) { }
5890 0 4 if ($mask->{'topic_min'})
5891 0 0 if ($mask->{'topic_min'} < $chantopic->[2]) { }
5898 4 0 if ($mask->{'topic_msk'})
5899 2 2 if (matches_mask($mask->{'topic_msk'}, $chantopic->[0], 'ascii')) { }
5910 2 44 if ($show and $hidden and not defined $client->{'chans'}{$chan})
5913 44 72 if ($show)
5916 10 34 if (defined $chanrec->{'topic'})
5950 3 5 if (not $count) { }
5951 1 2 if ($rec->{'safelist'})
5964 1 4 if ($opt =~ /^T/i)
5965 0 0 unless ($opt =~ /^T:/i or $opt =~ /^T[<>]\d+$/i)
5970 0 1 if ($act eq '<') { }
0 1 elsif ($act eq '>') { }
5981 0 4 if ($opt =~ /^C/i)
5982 0 0 unless ($opt =~ /^C[<>]\d+$/i)
5987 0 0 if ($act eq '<') { }
5995 1 3 if ($opt =~ /^\
5996 0 1 unless ($opt =~ /^\<\d+$/)
6004 0 3 if ($opt =~ /^\>/)
6005 0 0 unless ($opt =~ /^\>\d+$/)
6014 0 2 unless ($opt =~ /[\x2A\x3F]/ or $opt =~ /^[#&]/)
6018 0 3 if ($hide) { }
6026 0 7 if ($errors)
6034 8 0 if wantarray
6049 0 110 unless ($count)
6054 0 110 if ($count and not $last =~ /^[#&]/ and not $self->state_peer_exists($last))
6059 0 110 if ($count and !($last =~ /^[#&]/) & uc $last ne uc $server)
6070 0 110 if ($count and not $last =~ /^[#&]/ and @$args == 0)
6074 0 110 if ($count and not $last =~ /^[#&]/ and @$args == 1)
6077 110 0 if ($count and $last =~ /^[#&]/)
6079 110 0 if $_ and $self->state_chan_exists($_)
6084 110 0 if ($chan) { }
6096 14 96 if $self->{'state'}{'uids'}{$uid}{'caps'}{'multi-prefix'}
6098 6 104 $self->{'state'}{'uids'}{$uid}{'caps'}{'userhost-in-names'} ? :
6103 0 110 if $record->{'mode'} =~ /s/
6104 0 110 if $record->{'mode'} =~ /p/
6109 0 193 if (length(join ' ', $buffer, $name) + $length > 510)
6118 83 110 if ($buffer) { }
6138 110 0 if wantarray
6150 0 0 unless ($first or $second)
6154 5 1 if (not $second and $first)
6158 6 0 if ($first and $second)
6161 1 5 if (uc_irc($first) eq uc_irc($second) and $self->state_nick_exists($second))
6167 0 6 unless $second
6168 6 0 if $second
6169 1 5 if $second and uc $first ne uc $server
6170 0 6 if ($target and not $self->state_peer_exists($target))
6174 1 5 if ($target)
6177 0 6 if (not $self->state_nick_exists($query)) { }
6183 1 5 if ($target)
6185 1 0 if ($who =~ /^$tsid/)
6208 6 0 if wantarray
6222 1 1 unless ($targ =~ /^$sid/)
6240 2 0 if wantarray
6271 0 6 if $noshow
6272 0 6 if ($self->{'state'}{'chans'}{$chan}{'mode'} =~ /[ps]/ and not defined $self->{'state'}{'chans'}{$chan}{'users'}{$uid})
6277 6 0 if $record->{'chans'}{$chan} =~ /o/
6278 0 6 if $record->{'chans'}{$chan} =~ /h/
6279 0 6 if $record->{'chans'}{$chan} =~ /v/
6282 6 0 if (@chans)
6288 0 6 if (length(join ' ', $buffer, $chan) + $length > 510)
6297 0 6 if ($buffer) { }
6319 2 4 $hidden ? :
2 4 $hidden ? :
6331 0 6 if $record->{'umode'} =~ /r/
6342 4 2 if $record->{'account'} ne '*'
6352 0 2 if $record->{'type'} eq 'c' and $record->{'away'}
6353 6 0 if (not $record->{'umode'} =~ /H/ or $querier->{'umode'} =~ /o/)
6355 1 5 if ($record->{'svstags'}{'313'}) { }
6359 0 5 if $self->_state_sid_serv($record->{'sid'})
6360 3 2 if $record->{'umode'} =~ /a/ and not $operstring
6361 0 5 if $record->{'umode'} =~ /o/ and not $operstring
6366 4 2 if $operstring
6369 2 0 if ($record->{'type'} eq 'c' and $uid eq $query || $querier->{'umode'} =~ /o/)
6381 1 1 if ($record->{'type'} eq 'c' and $self->server_config('whoisactually') || $self->{'state'}{'uids'}{$uid}{'umode'} =~ /o/)
6396 2 4 if ($record->{'type'} eq 'c')
6407 0 0 if not $record->{'umode'} =~ /q/ or $querier->{'umode'} =~ /o/ or $uid eq $query
6415 4 2 if ($record->{'umode'} =~ /y/ and $uid ne $query)
6431 0 4 $local ? :
0 4 $local ? :
6433 0 6 if wantarray
6447 0 3 unless ($args->[0])
6451 3 0 unless ($self->state_user_is_operator($nick))
6454 0 0 if ($lastuse and $pacewait and $lastuse + $pacewait > time)
6461 0 3 if ($args->[2])
6463 0 0 unless ($targ)
6467 0 0 unless ($targ =~ /^$sid/)
6487 3 0 if wantarray
6502 1 1 unless ($targ =~ /^$sid/)
6520 2 0 if wantarray
6536 1 0 if (not $uid =~ /^$sid/ and !$max || $max < 0 || $max > 20)
6539 1 3 unless ($self->{'state'}{'whowas'}{uc_irc($query)})
6566 20 6 if $is_oper
6578 26 0 if $was->{'account'} ne '*'
6587 3 23 $self->{'config'}{'hidden_servers'} && !$is_oper ? :
6591 1 25 if $max and $cnt >= $max
6601 0 4 if wantarray
6614 0 6 unless ($who)
6618 6 0 if ($self->state_chan_exists($who) and $self->state_is_chan_member($nick, $who))
6635 0 15 $memrec->{'away'} ? :
6636 0 15 if $memrec->{'umode'} =~ /o/
6639 6 9 if ($stat)
6640 2 4 if (not $multiprefix) { }
6641 2 0 if $stat =~ /o/
6642 0 2 if $stat =~ /h/
6658 0 6 if ($self->state_nick_exists($who))
6670 0 0 $nickrec->{'away'} ? :
6671 0 0 if $nickrec->{'umode'} =~ /o/
6684 6 0 if wantarray
6700 0 54 unless ($self->state_chan_exists($chan))
6708 0 13 unless ($count or $self->state_is_chan_member($nick, $chan))
6723 13 41 unless ($count)
6759 0 60 unless ($mode =~ /[CceIbkMNRSTLOlimnpstohuv]/)
6760 0 0 unless $unknown
6770 45 15 if ($mode =~ /^(\+[ohvklbIe]|-[ohvbIe])/)
6773 2 58 if ($mode =~ /[-+]b/ and not defined $arg)
6790 1 57 if ($mode =~ /[OL]/ and not $nick_is_oper)
6791 1 0 unless $notoper
6795 0 0 unless ($nick_is_op or $nick_is_hop or $mode =~ /[OL]/)
6796 0 0 unless $notop
6800 0 57 if ($mode =~ /[-+]I/ and not defined $arg)
6817 0 57 if ($mode =~ /[-+]e/ and not defined $arg)
6834 0 0 if (not $nick_is_op and $nick_is_hop and $mode =~ /[op]/)
6835 0 0 unless $notop
6839 0 0 if (not $nick_is_op and $nick_is_hop and $record->{'mode'} =~ /p/ and $mode =~ /h/)
6841 0 0 unless $notop
6845 0 57 if ($mode =~ /^[-+][ohv]/ || $mode =~ /^\+[lk]/ and not defined $arg)
6849 0 57 if ($mode =~ /^[-+][ohv]/ and not $self->state_nick_exists($arg))
6850 0 0 if ++$mode_count > $maxmodes
6854 0 57 if ($mode =~ /^[-+][ohv]/ and not $self->state_is_chan_member($arg, $chan))
6856 0 0 if ++$mode_count > $maxmodes
6860 42 15 if (my($flag, $char) = $mode =~ /^([-+])([ohv])/)
6861 0 42 if ++$mode_count > $maxmodes
6863 30 12 if ($flag eq '+' and not $record->{'users'}{$self->state_user_uid($arg)} =~ /$char/)
6877 0 42 if ($flag eq '-' and $record->{'users'}{uc_irc($arg)} =~ /$char/)
6891 0 0 if ($mode eq '+l' and $arg =~ /^\d+$/ and $arg > 0)
6892 0 0 if ++$mode_count > $maxmodes
6895 0 0 unless ($record->{'mode'} =~ /l/)
6902 0 15 if ($mode eq '-l' and $record->{'mode'} =~ /l/)
6908 0 15 if ($mode eq '+k' and $arg)
6909 0 0 if ++$mode_count > $maxmodes
6912 0 0 unless ($record->{'mode'} =~ /k/)
6919 0 15 if ($mode eq '-k' and $record->{'mode'} =~ /k/)
6927 0 15 $record->{'mode'} =~ /L/ ? :
6928 1 14 if (my($flag) = $mode =~ /([-+])b/)
6929 0 1 if ++$mode_count > $maxmodes
6932 1 0 if ($flag eq '+' and not $record->{'bans'}{$umask})
6933 0 1 if (keys %{$$record{'bans'};} >= $maxbans)
6942 0 0 if ($flag eq '-' and $record->{'bans'}{$umask})
6950 0 14 if (my($flag) = $mode =~ /([-+])I/)
6951 0 0 if ++$mode_count > $maxmodes
6955 0 0 if ($flag eq '+' and not $record->{'invex'}{$umask})
6956 0 0 if (keys %{$$record{'invex'};} >= $maxbans)
6965 0 0 if ($flag eq '-' and $record->{'invex'}{$umask})
6973 0 14 if (my($flag) = $mode =~ /([-+])e/)
6974 0 0 if ++$mode_count > $maxmodes
6978 0 0 if ($flag eq '+' and not $record->{'excepts'}{$umask})
6979 0 0 if (keys %{$$record{'excepts'};} >= $maxbans)
6988 0 0 if ($flag eq '-' and $record->{'excepts'}{$umask})
6997 11 3 if ($flag eq '+' and not $record->{'mode'} =~ /$char/)
7003 3 0 if ($flag eq '-' and $record->{'mode'} =~ /$char/)
7010 32 9 if ($reply)
7013 30 1 defined $subs{$_} ? :
7033 2 30 $mode_u_set ? :
7039 2 30 if ($mode_u_set)
7044 1 1 if $bmode =~ /^(\+[ohvklbIe]|-[ohvbIe])/
7046 1 1 if $bmode =~ /^[+-][beI]$/
7048 0 1 if $arg
7050 1 1 if ($breply)
7071 54 0 if wantarray
7089 0 117 unless ($count)
7095 0 117 if $args->[1]
7101 0 117 if ($channel eq '0' and my(@chans) = $self->state_user_chans($nick))
7106 0 0 ref $_ eq 'ARRAY' ? :
7110 0 117 if (not is_valid_chan_name($channel) or length $channel > $channel_length)
7120 0 117 if ($self->state_user_chans($nick) >= $self->server_config('MAXCHANNELS') and not $nick_is_oper)
7131 1 116 if (my $reason = $self->_state_is_resv($channel, $route_id))
7132 1 0 unless ($nick_is_oper)
7152 56 60 unless ($self->state_chan_exists($channel))
7170 56 0 unless $channel =~ /^&/
7197 0 112 ref $_ eq 'ARRAY' ? :
7201 0 60 if ($self->state_is_chan_member($nick, $channel))
7206 0 2 if ($nick_is_oper and $self->{'config'}{'OPHACKS'})
7210 0 60 if ($chanrec->{'mode'} =~ /O/ and not $nick_is_oper)
7216 1 59 if ($chanrec->{'mode'} =~ /S/ and not $umode =~ /S/)
7221 2 57 if ($chanrec->{'mode'} =~ /R/ and not $umode =~ /r/)
7226 0 57 if (not $bypass and $chanrec->{'mode'} =~ /l/ and keys %{$$chanrec{'users'};} >= $chanrec->{'climit'})
7232 0 57 if $chanrec->{'mode'} =~ /k/
7234 0 0 if (not $bypass and $chanrec->{'mode'} =~ /k/ and !$chankey || $chankey ne $chanrec->{'ckey'})
7240 3 54 if (not $bypass and $chanrec->{'mode'} =~ /i/ and not $self->_state_user_invited($nick, $channel))
7246 0 54 if (not $bypass and $self->_state_user_banned($nick, $channel))
7251 52 2 unless $nick_is_oper
7252 52 2 unless $nick_is_oper
7264 54 0 unless $channel =~ /^&/
7291 0 108 ref $_ eq 'ARRAY' ? :
7295 0 54 ref $_ eq 'ARRAY' ? :
7297 1 53 if ($self->{'state'}{'uids'}{$uid}{'away'})
7303 116 1 if wantarray
7317 0 8 unless ($chan)
7321 0 8 unless ($self->state_chan_exists($chan))
7325 0 8 unless ($self->state_is_chan_member($nick, $chan))
7337 0 8 if ($pmsg and my $msgtime = $self->{'config'}{'anti_spam_exit_message_time'})
7338 0 0 if time - $urec->{'conn_time'} < $msgtime
7341 0 8 if ($pmsg and not $self->state_can_send_to_channel($nick, $chan, $pmsg, 'PART'))
7345 6 2 if $pmsg
7347 7 1 unless $urec->{'umode'} =~ /o/
7369 5 3 unless (keys %{$$self{'state'}{'chans'}{$chan}{'users'};})
7374 8 0 if wantarray
7387 0 7 if (not $count or $count < 2)
7393 0 7 unless ($self->state_chan_exists($chan))
7398 0 6 unless ($self->state_is_chan_op($nick, $chan) or $self->state_is_chan_hop($nick, $chan))
7402 0 7 unless ($self->state_nick_exists($who))
7407 3 4 unless ($self->state_is_chan_member($who, $chan))
7411 3 0 if ($self->state_is_chan_hop($nick, $chan) and not $self->state_is_chan_op($nick, $chan) and $self->state_is_chan_op($who, $chan))
7441 0 1 unless (keys %{$$self{'state'}{'chans'}{$chan}{'users'};})
7446 7 0 if wantarray
7459 0 3 if (not $count or $count < 2)
7465 0 3 unless ($self->state_chan_exists($chan))
7470 0 2 unless ($self->state_is_chan_op($nick, $chan) or $self->state_is_chan_hop($nick, $chan))
7474 0 3 unless ($self->state_nick_exists($who))
7479 1 2 unless ($self->state_is_chan_member($who, $chan))
7483 1 0 if ($self->state_is_chan_hop($nick, $chan) and not $self->state_is_chan_op($nick, $chan) and $self->state_is_chan_op($who, $chan))
7492 1 0 if $args->[2]
7513 0 1 unless (keys %{$$self{'state'}{'chans'}{$chan}{'users'};})
7518 3 0 if wantarray
7532 0 0 if (not $count or $count < 2)
7537 0 0 unless ($self->state_nick_exists($who))
7542 0 0 unless ($self->state_chan_exists($chan))
7547 0 0 unless ($self->state_is_chan_member($nick, $chan))
7551 0 0 if ($self->state_is_chan_member($who, $chan))
7555 0 0 if ($self->state_chan_mode_set($chan, 'i') and not $self->state_is_chan_op($nick, $chan) && $self->state_is_chan_hop($nick, $chan))
7565 0 0 if ($self->state_chan_mode_set($chan, 'i'))
7567 0 0 if ($self->_state_is_local_uid($wuid))
7583 0 0 if ($route_id eq 'spoofed') { }
0 0 elsif ($local) { }
7610 0 0 if ($invite_only)
7628 0 0 if (defined $away)
7637 0 0 if wantarray
7650 2 229 if (not $count) { }
7667 229 0 unless $record->{'umode'} =~ /o/
7669 1 228 if $cnt
7678 0 228 if $mode eq '+o'
7680 228 0 if ($action eq '+' and not $record->{'umode'} =~ /$char/)
7682 227 1 if ($char eq 'i')
7686 0 228 if ($char eq 'w')
7689 0 228 if ($char eq 'l')
7693 0 228 if ($action eq '-' and $record->{'umode'} =~ /$char/)
7695 0 0 if $char eq 'i'
7697 0 0 if ($char eq 'o')
7703 0 0 if ($char eq 'w')
7706 0 0 if ($char eq 'l')
7714 228 1 if ($set)
7720 1 227 unless $peer_ignore
7729 1 227 unless $peer_ignore
7738 231 0 if wantarray
7751 0 60 unless ($count)
7755 0 60 unless ($self->state_chan_exists($args->[0]))
7759 0 60 if ($self->state_chan_mode_set($args->[0], 's') and not $self->state_is_chan_member($nick, $args->[0]))
7765 0 60 if ($count == 1 and my $topic = $self->state_chan_topic($args->[0]))
7779 57 3 if ($count == 1)
7787 0 3 unless ($self->state_is_chan_member($nick, $args->[0]))
7791 0 3 if ($self->state_chan_mode_set($args->[0], 't') and not $self->state_is_chan_op($nick, $args->[0]))
7798 0 3 if (length $args->[0] > $topic_length)
7801 1 2 if ($args->[1] eq '') { }
7830 60 0 if wantarray
7842 2 0 unless ($self->state_user_is_operator($nick))
7845 0 0 if ($lastuse and $pacewait and $lastuse + $pacewait > time)
7872 2 0 if wantarray
7887 1 6 if ($count > 1 and not $self->state_peer_exists($args->[0]))
7893 1 3 if ($lastuse and $pacewait and $lastuse + $pacewait > time)
7898 1 4 if ($count > 1)
7901 1 4 if ($target and uc $server ne uc $target)
7929 7 0 if wantarray
7945 4 1 if matches_mask($mask, $server)
7961 0 5 if wantarray
7975 0 7 unless ($count)
7980 0 7 unless ($self->state_chan_exists($channel))
7984 0 7 if ($self->state_is_chan_member($nick, $channel))
7989 1 0 unless ($chanrec->{'mode'} =~ /i/ or $chanrec->{'ckey'} or $chanrec->{'mode'} =~ /l/ and keys %{$$chanrec{'users'};} >= $chanrec->{'climit'})
7994 0 6 if ($chanrec->{'mode'} =~ /p/ or $self->_state_user_banned($nick, $channel))
8002 3 3 unless ($rec->{'last_knock'})
8005 0 6 if ($rec->{'last_knock'} and $rec->{'last_knock'} + $self->{'config'}{'knock_client_time'} < time)
8008 1 5 if ($rec->{'knock_count'} and $rec->{'knock_count'} > $self->{'config'}{'knock_client_count'})
8012 1 4 if ($chanrec->{'last_knock'} and $chanrec->{'last_knock'} + $self->{'config'}{'knock_delay_channel'} > time)
8049 7 0 if wantarray
8061 0 0 unless ($prefix =~ /$uid_re/)
8064 0 0 unless ($args->[0])
8068 0 0 unless $uid
8081 0 0 if wantarray
8095 0 1 unless ($count)
8099 0 1 unless ($self->state_chan_exists($channel))
8124 1 1 if $_ ne $peer_id
8129 0 1 if wantarray
8140 0 228 unless $self->state_sid_exists($args->[0])
8143 0 228 if ($peer_id ne $self->_state_sid_route($args->[0]))
8153 228 0 if ($peer_id eq $self->_state_sid_route($args->[0]))
8167 227 1 if ($sid eq $self->{'state'}{'sids'}{$qsid}{'psid'}) { }
8195 124663 5 unless $user =~ /^$sid/
8198 57 1932 unless (keys %{$$self{'state'}{'chans'}{$uchan}{'users'};})
8212 0 518 if (defined $self->{'state'}{'watches'}{$nick})
8216 0 0 unless defined $self->{'state'}{'uids'}{$wuid}
8235 215 303 if ($record->{'umode'} =~ /o/)
8238 518 0 if ($record->{'umode'} =~ /i/)
8257 0 228 if wantarray
8272 0 2 if (not $count or $count < 3)
8276 0 2 unless $reason
8282 8 0 if (matches_mask($peermask, $sids->{$psid}{'name'}))
8283 2 6 if ($sid eq $psid) { }
8307 0 2 unless $us
8309 0 2 unless ($reason)
8313 0 2 if ($self->_state_have_resv($mask))
8324 0 2 unless $self->_state_add_drkx_line('resv', $full, time, $server, $duration, $mask, $reason)
8336 2 0 $duration ? :
8350 2 0 if wantarray
8366 0 1 if (not $count or $count < 2)
8375 4 0 if (matches_mask($peermask, $sids->{$psid}{'name'}))
8376 1 3 if ($sid eq $psid) { }
8399 0 1 unless $us
8405 0 1 unless ($result)
8426 1 0 if wantarray
8441 0 2 if (not $count or $count < 3)
8445 0 2 unless $reason
8451 8 0 if (matches_mask($peermask, $sids->{$psid}{'name'}))
8452 2 6 if ($sid eq $psid) { }
8476 0 2 unless $us
8478 0 2 unless ($reason)
8484 0 2 unless $self->_state_add_drkx_line('xline', $full, time, $server, $duration, $mask, $reason)
8496 2 0 $duration ? :
8512 2 0 if wantarray
8528 0 1 if (not $count or $count < 2)
8537 4 0 if (matches_mask($peermask, $sids->{$psid}{'name'}))
8538 1 3 if ($sid eq $psid) { }
8561 0 1 unless $us
8567 0 1 unless ($result)
8588 1 0 if wantarray
8603 0 2 if (not $count or $count < 3)
8607 0 2 unless $reason
8613 8 0 if (matches_mask($peermask, $sids->{$psid}{'name'}))
8614 2 6 if ($sid eq $psid) { }
8638 0 2 unless $us
8642 0 2 unless $netmask
8648 0 2 unless $self->_state_add_drkx_line('dline', $full, time, $server, $duration, $netmask, $reason)
8662 2 0 $duration ? :
8678 2 0 if wantarray
8694 0 1 if (not $count or $count < 2)
8703 4 0 if (matches_mask($peermask, $sids->{$psid}{'name'}))
8704 1 3 if ($sid eq $psid) { }
8727 0 1 unless $us
8733 0 1 unless ($result)
8756 1 0 if wantarray
8770 0 2 unless ($count)
8779 8 0 if (matches_mask($target, $peer))
8780 2 6 if ($ucserver eq $peer) { }
8799 0 2 unless $us
8810 0 2 if wantarray
8824 0 2 if (not $count or $count < 5)
8834 8 0 if (matches_mask($target, $peer))
8835 2 6 if ($ucserver eq $peer) { }
8854 0 2 unless $us
8856 0 2 unless $self->_state_add_drkx_line('kline', $full, time, @$args)
8863 2 0 $minutes ? :
8880 2 0 if wantarray
8895 0 1 if (not $count or $count < 3)
8905 4 0 if (matches_mask($target, $peer))
8906 1 3 if ($ucserver eq $peer) { }
8925 0 1 unless $us
8933 0 1 unless ($result)
8949 1 0 if wantarray
8972 0 0 unless $full
8985 0 0 if wantarray
9009 0 0 unless $full
9020 0 0 if wantarray
9029 256 129 if ($self->{'state'}{'conns'}{$peer_id}{'sid'} eq $peer)
9041 0 385 if wantarray
9055 0 5 if ($self->state_sid_exists($args->[0]))
9058 5 0 unless ($self->state_uid_exists($args->[0]))
9064 0 0 if ($self->_state_is_local_uid($target)) { }
9089 0 0 if ($route_id eq 'spoofed') { }
9121 0 5 if wantarray
9132 1 256 unless ($args->[0] eq '6' and $args->[1] eq '6')
9137 0 256 if wantarray
9152 0 252 unless ($count)
9155 2 250 if ($count >= 2 and $sid ne $args->[1])
9156 2 0 if ($self->state_sid_exists($args->[1]))
9167 0 0 if ($self->state_uid_exists($args->[1]))
9169 0 0 if ($args->[1] =~ /^$sid/) { }
9202 0 252 if wantarray
9217 0 3 unless ($count)
9220 3 0 if ($count >= 2 and uc $sid ne $args->[1])
9221 0 3 if ($self->state_sid_exists($args->[1]))
9232 3 0 if ($self->state_uid_exists($args->[1]))
9234 1 2 if ($args->[1] =~ /^$sid/) { }
9260 0 3 if wantarray
9279 0 131 if (not $count or $count < 2)
9282 0 131 unless ($args->[0] =~ /$host_re/)
9292 0 131 unless ($args->[2] =~ /$sid_re/)
9302 1 130 if ($self->state_sid_exists($args->[2]))
9313 1 129 if ($self->state_peer_exists($args->[0]))
9336 1 128 if ($record->{'desc'} and $record->{'desc'} =~ /^\(H\) /)
9343 43 86 if $self->{'state'}{'services'}{$uname}
9358 1 128 $record->{'hidden'} ? :
9384 0 131 if wantarray
9397 2 2 unless $record
9409 4 0 unless not $conn_id
9411 2 0 unless $record->{'killed'}
9435 1 1 if (defined $self->{'state'}{'watches'}{$nick})
9439 0 1 unless defined $self->{'state'}{'uids'}{$wuid}
9463 0 0 unless $user =~ /^$sid/
9466 0 0 unless (keys %{$$self{'state'}{'chans'}{$uchan}{'users'};})
9472 0 2 if $record->{'umode'} =~ /o/
9473 2 0 if $record->{'umode'} =~ /i/
9486 0 2 if wantarray
9504 0 554 if (not $count or $count < 9)
9511 12 542 if ($self->state_nick_exists($args->[0]))
9517 5 7 if ($args->[2] < $exist->{'ts'})
9519 4 1 if ($incoming ne $userhost) { }
9539 1 10 if ($args->[2] == $exist->{'ts'})
9554 6 4 if ($args->[2] > $exist->{'ts'})
9556 1 5 if ($incoming eq $userhost) { }
9606 3 544 if ($rhost) { }
9617 239 308 if $record->{'umode'} =~ /o/
9618 547 0 if $record->{'umode'} =~ /i/
9623 1 546 if (defined $self->{'state'}{'watches'}{$unick})
9625 0 1 unless defined $self->{'state'}{'uids'}{$wuid}
9669 0 554 if wantarray
9685 0 2 if (not $count or $count < 2)
9688 0 2 unless ($self->state_uid_exists($prefix))
9692 0 2 if ($self->state_nick_exists($args->[0]) and $prefix ne $self->state_user_uid($args->[0]))
9698 0 0 if ($newts < $exist->{'ts'})
9700 0 0 if ($incoming ne $userhost) { }
9720 0 0 if ($args->[2] == $exist->{'ts'})
9735 0 0 if ($newts > $exist->{'ts'})
9737 0 0 if ($incoming eq $userhost) { }
9767 0 2 if ($unick eq $unew) { }
9777 1 1 if (defined $self->{'state'}{'watches'}{$unick})
9779 0 1 unless defined $self->{'state'}{'uids'}{$wuid}
9800 1 1 if (defined $self->{'state'}{'watches'}{$unew})
9802 0 1 unless defined $self->{'state'}{'uids'}{$wuid}
9828 0 2 if ($record->{'umode'} =~ /r/)
9846 0 0 unless $user =~ /^$mysid/
9880 0 2 if wantarray
9894 0 1 unless ($chan)
9897 0 1 unless ($self->state_chan_exists($chan))
9900 0 1 unless ($self->state_uid_chan_member($uid, $chan))
9921 0 1 unless (keys %{$$self{'state'}{'chans'}{$uchan}{'users'};})
9926 0 1 if wantarray
9939 0 1 if (not $count or $count < 2)
9944 0 1 unless ($self->state_chan_exists($chan))
9947 0 1 unless ($self->state_uid_exists($wuid))
9950 0 1 unless ($self->state_uid_chan_member($wuid, $chan))
9973 0 1 unless (keys %{$$self{'state'}{'chans'}{$uchan}{'users'};})
9978 0 1 if wantarray
10009 0 125 if ($cmd eq 'SJOIN' and !$count || $count < 4)
10012 0 1 if ($cmd eq 'JOIN' and !$count || $count < 3)
10018 1 125 if ($cmd eq 'JOIN') { }
10024 50 76 unless ($self->state_chan_exists($chan))
10032 1 107 if $mode =~ /[lk]/
10033 1 107 if $mode eq 'l'
10034 0 108 if $mode eq 'k'
10040 19 714 if $uid =~ s/\@//g
10041 0 733 if $uid =~ s/\%//g
10042 0 733 if $uid =~ s/\+//g
10051 19 714 if $umode
10097 4 72 if ($ts < $chanrec->{'ts'}) { }
67 5 elsif ($ts == $chanrec->{'ts'}) { }
10104 4 3 if $self->_state_is_local_uid($user)
10106 3 4 unless $chanrec->{'users'}{$user}
10115 4 0 if (keys %$common and @deop)
10130 0 4 if (length(join ' ', $mode_line, $buffer[1], $arg) + $length > 510)
10148 0 4 if ($buffer[1]) { }
10170 4 0 if ($cmd eq 'SJOIN')
10174 3 9 unless $chanrec->{$type}
10188 0 4 if (@local_users and @types)
10196 0 0 if (length(join ' ', $mode_line, $buffer[1], $arg) + $length > 510)
10214 0 0 if ($buffer[1]) { }
10237 1 3 if ($chanrec->{'topic'})
10266 0 0 unless $self->state_uid_exists($invite)
10267 0 0 unless $self->_state_is_local_uid($invite)
10278 0 8 if $mode =~ /[lk]/
10279 0 8 if ($mode eq 'l' and !($chanrec->{'mode'} =~ /l/) || $arg ne $chanrec->{'climit'}) { }
0 8 elsif ($mode eq 'k' and !($chanrec->{'mode'} =~ /k/) || $arg ne $chanrec->{'ckey'}) { }
0 8 elsif (not $chanrec->{'mode'} =~ /$mode/) { }
10283 0 0 unless ($chanrec->{'mode'} =~ /$mode/)
10294 0 0 unless ($chanrec->{'mode'} =~ /$mode/)
10309 0 4 if $origmode
10310 0 4 if $origmode
10311 0 4 if ($origmode and $origmode =~ /k/)
10315 0 4 if ($origmode and $origmode =~ /l/)
10325 0 4 if $reply
10347 1 138 if $mode =~ /[lk]/
10348 0 139 if ($mode eq 'l' and !($chanrec->{'mode'} =~ /l/) || $arg > $chanrec->{'climit'}) { }
0 139 elsif ($mode eq 'k' and !($chanrec->{'mode'} =~ /k/) || ($arg cmp $chanrec->{'ckey'}) > 0) { }
0 139 elsif (not $chanrec->{'mode'} =~ /$mode/) { }
10352 0 0 unless ($chanrec->{'mode'} =~ /$mode/)
10363 0 0 unless ($chanrec->{'mode'} =~ /$mode/)
10383 0 67 if $reply
10416 19 1254 if $uid =~ s/\@//g
10417 0 1273 if $uid =~ s/\%//g
10418 0 1273 if $uid =~ s/\+//g
10419 15 1258 unless defined $self->{'state'}{'uids'}{$uid}
10424 20 1238 if (@local_nextjoin)
10432 0 1258 if (@local_extjoin)
10449 19 1239 if ($umode)
10453 2 1256 if ($self->{'state'}{'uids'}{$uid}{'away'})
10457 19 57 if ($modes)
10470 0 19 if (length(join ' ', @buffer, $arg) + $length > 510)
10487 0 19 if ($buffer[1]) { }
10508 2 74 if (@aways)
10514 0 126 if wantarray
10531 0 0 unless ($self->state_chan_exists($chan))
10535 0 0 if ($ts > $record->{'ts'})
10541 0 0 if $self->state_uid_exists($uid)
10549 0 0 if $mode =~ /^(\+[ohvklbIe]|-[ohvbIe])/
10551 0 0 if (my($flag, $char) = $mode =~ /^(\+|-)([ohv])/)
10552 0 0 if ($flag eq '+' and not $record->{'users'}{uc_irc($arg)} =~ /$char/)
10563 0 0 if ($flag eq '-' and $record->{'users'}{uc_irc($arg)} =~ /$char/)
10575 0 0 if ($mode eq '+l' and $arg =~ /^\d+$/ and $arg > 0)
10577 0 0 unless $record->{'mode'} =~ /l/
10583 0 0 if ($mode eq '-l' and $record->{'mode'} =~ /l/)
10589 0 0 if ($mode eq '+k' and $arg)
10591 0 0 unless $record->{'mode'} =~ /k/
10597 0 0 if ($mode eq '-k' and $record->{'mode'} =~ /k/)
10604 0 0 if (my($flag) = $mode =~ /(\+|-)b/)
10607 0 0 if ($flag eq '+' and not $record->{'bans'}{$umask})
10613 0 0 if ($flag eq '-' and $record->{'bans'}{$umask})
10621 0 0 if (my($flag) = $mode =~ /(\+|-)I/)
10624 0 0 if ($flag eq '+' and not $record->{'invex'}{$umask})
10630 0 0 if ($flag eq '-' and $record->{'invex'}{$umask})
10638 0 0 if (my($flag) = $mode =~ /(\+|-)e/)
10641 0 0 if ($flag eq '+' and not $record->{'excepts'}{$umask})
10647 0 0 if ($flag eq '-' and $record->{'excepts'}{$umask})
10656 0 0 if ($flag eq '+' and not $record->{'mode'} =~ /$char/)
10662 0 0 if ($flag eq '-' and $record->{'mode'} =~ /$char/)
10670 0 0 if ($reply)
10686 0 0 defined $subs{$_} ? :
10705 0 0 $mode_u_set ? :
10712 0 0 if ($mode_u_set)
10717 0 0 if $bmode =~ /^(\+[ohvklbIe]|-[ohvbIe])/
10719 0 0 if $bmode =~ /^[+-][beI]$/
10723 0 0 if ($breply)
10744 0 0 if wantarray
10759 0 72 if (not $count or $count < 4)
10763 0 72 unless ($self->state_chan_exists($chan))
10768 6 66 if ($ts > $chanrec->{'ts'})
10784 0 72 unless not $mode_u_set
10791 327 309 if $$chanrec{$map{$trype}}{$umask}
10798 33 33 unless (@local_users and @marsk_list)
10810 8 301 if (length(join ' ', $mode_line, $buffer[1], $arg) + $length > 510)
10828 268 33 if ($buffer[1]) { }
10849 0 72 if wantarray
10864 0 10 unless ($self->state_chan_exists($args->[1]))
10871 0 10 if ($chants < $chanrec->{'ts'}) { }
10 0 elsif ($chants == $chanrec->{'ts'}) { }
10875 6 4 if (not $chanrec->{'topic'}) { }
0 4 elsif ($topicts > $chanrec->{'topic'}[2]) { }
10882 4 6 unless ($accept)
10896 0 6 unless ($differing)
10911 0 10 if wantarray
10927 0 0 if ($action eq '+' and not $record->{'umode'} =~ /$char/)
10929 0 0 if $char eq 'i'
10930 0 0 if ($char eq 'o')
10934 0 0 if ($action eq '-' and $record->{'umode'} =~ /$char/)
10936 0 0 if $char eq 'i'
10937 0 0 if ($char eq 'o')
10956 0 0 if wantarray
10971 0 7 unless ($count)
10975 0 7 if ($count < 2 or not $args->[1])
10986 0 7 if ($targ_type =~ /(server|host)mask/ and not $self->state_user_is_operator($nick))
10991 0 7 if ($targ_type =~ /(server|host)mask/ and not $targs->{$target}[0] =~ /\./)
10996 0 7 if ($targ_type =~ /(server|host)mask/ and $targs->{$target}[0] =~ /\x2E[^.]*[\x2A\x3F]+[^.]*$/)
11001 0 7 if ($targ_type eq 'channel_ext' and not $self->state_chan_exists($targs->{$target}[1]))
11006 0 7 if ($targ_type eq 'channel' and not $self->state_chan_exists($target))
11011 0 7 if ($targ_type eq 'nick' and not $self->state_nick_exists($target))
11016 0 7 if ($targ_type eq 'uid' and not $self->state_uid_exists($target))
11021 4 3 if ($targ_type eq 'uid')
11024 0 7 if ($targ_type eq 'nick_ext' and not $self->state_peer_exists($targs->{$target}[1]))
11030 0 7 if ($targets > $max_targets)
11035 1 6 if ($targ_type eq 'servermask')
11040 1 3 if (matches_mask($targs->{$target}[0], $peer))
11041 1 0 if ($ucserver eq $peer) { }
11058 1 0 if ($us)
11063 0 3 if ($luser->{'route_id'} eq 'spoofed') { }
11078 0 1 if $spoofed
11088 1 5 if ($targ_type eq 'hostmask')
11094 3 3 unless matches_mask($targs->{$target}[0], $luser->{'auth'}{'hostname'})
11095 0 3 if ($luser->{'route_id'} eq 'spoofed') { }
0 3 elsif ($luser->{'type'} eq 'r') { }
11122 0 1 if $spoofed
11130 0 5 if ($targ_type eq 'nick_ext')
11133 0 0 if ($targs->{$target}[2] and not $self->state_user_is_operator($nick))
11138 0 0 if ($targs->{$target}[1] ne $self->server_name)
11149 0 0 if (uc $targs->{$target}[0] eq 'OPERS')
11150 0 0 unless ($self->state_user_is_operator($nick))
11170 0 0 if (@local == 1) { }
11172 0 0 if ($ref->[0] eq 'spoofed') { }
11198 1 4 if ($targ_type eq 'channel')
11201 0 5 if ($targ_type eq 'channel_ext')
11205 0 1 if ($channel and $status_msg and not $self->state_user_chan_mode($nick, $channel))
11210 0 1 if ($channel and $self->state_chan_mode_set($channel, 'n') and not $self->state_is_chan_member($nick, $channel))
11215 0 1 if ($channel and $self->state_chan_mode_set($channel, 'm') and not $self->state_user_chan_mode($nick, $channel))
11220 0 0 if ($channel and $self->state_chan_mode_set($channel, 'T') and $type eq 'NOTICE' and not $self->state_user_chan_mode($nick, $channel))
11225 0 1 if ($channel and $self->state_chan_mode_set($channel, 'M') and not $self->state_user_umode($nick) =~ /r/)
11230 0 1 if ($channel and $self->_state_user_banned($nick, $channel) and not $self->state_user_chan_mode($nick, $channel))
11235 0 0 if ($channel and $self->state_chan_mode_set($channel, 'c') and has_color($args->[1]) || has_formatting($args->[1]))
11240 0 0 if ($channel and $self->state_chan_mode_set($channel, 'C') and $args->[1] =~ /^\001/ and not $args->[1] =~ /^\001ACTION/)
11245 1 4 if ($channel)
11247 0 1 $status_msg ? :
11255 0 4 if $self->_state_user_is_deaf($member)
11261 3 0 if ($self->_connection_is_client($route_id))
11264 3 0 if ($route_id ne 'spoofed') { }
11268 0 0 $type eq 'PRIVMSG' ? :
11282 4 0 if ($self->state_nick_exists($target))
11284 0 4 if (my $away = $self->_state_user_away_msg($target))
11293 0 4 if ($targ_umode and $targ_umode =~ /[Gg]/)
11295 0 0 if ($targ_umode =~ /G/ and not $self->state_users_share_chan($target, $nick) && $targ_rec->{'accepts'}{uc_irc($nick)} or $targ_umode =~ /g/ and not $targ_rec->{'accepts'}{uc_irc($nick)})
11309 0 0 if (not $targ_rec->{'last_caller'} or time - $targ_rec->{'last_caller'} >= 60)
11324 0 0 if $targ_rec->{'route_id'} ne 'spoofed'
11345 0 4 if ($route_id eq 'spoofed') { }
11355 4 0 if ($self->_connection_is_client($route_id))
11365 7 0 if wantarray
11379 0 0 unless ($count)
11382 0 0 unless ($self->state_chan_exists($args->[0]))
11387 0 0 if ($args->[1]) { }
11412 0 0 if wantarray
11427 0 1 if (not $count or $count < 3)
11434 1 0 if ($self->_state_is_local_uid($who))
11444 0 1 if ($route_id eq 'spoofed') { }
11455 1 0 if ($chanrec->{'mode'} and $chanrec->{'mode'} =~ /i/)
11493 0 1 if wantarray
11507 0 10 unless ($msg)
11532 0 10 if wantarray
11547 0 1 if (not $count or $count < 2)
11551 0 1 if ($sid ne $target)
11573 1 0 if wantarray
11587 0 6 if (not $self->_state_sid_serv($prefix) and $prefix ne $sid)
11590 0 6 if (not $count or $count < 2)
11595 0 6 unless $uid
11596 6 0 if ($uid =~ /^$sid/)
11601 0 0 ref $_ eq 'ARRAY' ? :
11605 0 0 if ($route_id eq $peer_id)
11622 0 6 if wantarray
11636 0 1 if (not $self->_state_sid_serv($prefix) and $prefix ne $sid)
11639 0 1 if (not $count or $count < 2)
11644 0 1 unless $uid
11645 1 0 if ($uid =~ /^$sid/)
11650 0 0 ref $_ eq 'ARRAY' ? :
11654 0 0 if ($route_id eq $peer_id)
11671 0 1 if wantarray
11686 0 2 if (not $self->_state_sid_serv($prefix) and $prefix ne $sid)
11689 0 2 if (not $count or $count < 3)
11694 0 2 unless $uid
11695 0 2 unless $args->[0] =~ /^\d+$/
11696 0 2 if $args->[0] != $self->{'state'}{'uids'}{$uid}{'ts'}
11697 2 0 if ($args->[1] =~ /$host_re/)
11712 0 2 if wantarray
11727 0 31 if (not $self->_state_sid_serv($prefix) and $prefix ne $sid)
11730 0 31 if (not $count or $count < 3)
11735 0 31 unless $uid
11736 0 31 unless $args->[0] =~ /^\d+$/
11737 0 31 if $args->[0] != $self->{'state'}{'uids'}{$uid}{'ts'}
11740 31 0 if $local
11741 31 0 $count >= 4 ? :
11746 0 59 if $mode eq '+o'
11748 0 59 if $char =~ /[SW]/
11749 3 56 if ($action eq '+' and $char eq 'x')
11750 3 0 if ($extra_arg and $extra_arg =~ /$host_re/)
11755 28 28 if ($action eq '+' and $char eq 'd')
11756 28 0 if ($extra_arg)
11775 28 0 if ($action eq '+' and not $rec->{'umode'} =~ /$char/)
11777 0 28 if ($char eq 'i')
11780 0 28 if ($char eq 'w' and $local)
11783 0 28 if ($char eq 'l' and $local)
11787 0 28 if ($action eq '-' and $rec->{'umode'} =~ /$char/)
11789 0 0 if $char eq 'i'
11791 0 0 if ($char eq 'o')
11794 0 0 if ($local)
11799 0 0 if ($char eq 'w' and $local)
11802 0 0 if ($char eq 'l' and $local)
11818 0 31 unless $local
11820 28 3 if ($set)
11838 0 31 if wantarray
11852 0 3 if (not $self->_state_sid_serv($prefix) and $prefix ne $sid)
11855 0 3 unless ($count)
11858 0 3 $count == 4 ? :
11859 0 3 unless is_valid_nick_name($newnick)
11861 0 3 unless $uid
11864 0 3 if ($count == 4) { }
11866 0 0 if $ts and $ts != $rec->{'ts'}
11871 3 0 if ($count == 3) { }
11877 0 3 unless ($uid =~ /^$sid/)
11878 0 0 if ($rec->{'route_id'} eq $peer_id)
11903 2 1 if ($self->state_nick_exists($newnick))
11904 1 1 if (defined $self->{'state'}{'users'}{$unew})
11906 0 1 if ($rec eq $exist)
11918 1 0 if (defined $self->{'state'}{'pending'}{$unew})
11929 0 3 unless $user =~ /^$sid/
11934 0 2 if ($unick eq $unew) { }
11942 0 2 if (defined $self->{'state'}{'watches'}{$unick})
11944 0 0 unless defined $self->{'state'}{'uids'}{$wuid}
11965 0 2 if (defined $self->{'state'}{'watches'}{$unew})
11967 0 0 unless defined $self->{'state'}{'uids'}{$wuid}
11995 1 1 if ($rec->{'umode'} =~ /r/)
12052 0 3 if wantarray
12066 0 1 if (not $self->_state_sid_serv($prefix) and $prefix ne $sid)
12069 0 1 if (not $count or $count < 2)
12074 0 1 unless $uid
12075 0 1 unless $args->[0] =~ /^\d+$/
12076 0 1 if $args->[0] != $self->{'state'}{'uids'}{$uid}{'ts'}
12077 1 0 if ($uid =~ /^$sid/)
12080 1 0 if ($count == 3) { }
12093 0 0 if ($route_id eq $peer_id)
12110 0 1 if wantarray
12130 0 3 if (not $self->_state_sid_serv($prefix) and $prefix ne $sid)
12133 0 3 if (not $count or $count < 2)
12138 0 3 unless $uid
12139 0 3 unless $args->[0] =~ /^\d+$/
12140 0 3 if $args->[0] != $self->{'state'}{'uids'}{$uid}{'ts'}
12142 0 3 if ($args->[1] eq '-')
12158 0 3 if $count < 5 or not $args->[3]
12180 0 3 if wantarray
12205 184 0 if (my $sid = $self->{'config'}{'SID'})
12261 10862 0 if ($idx != 3) { }
12262 293 10569 if ($cols[$idx] eq 'Z') { }
292 10277 elsif ($cols[$idx] eq '9') { }
12274 0 0 if ($cols[$idx] eq 'Z') { }
12299 810 5 if $global > $self->{'state'}{'stats'}{'maxglobal'}
12301 268 547 if $local > $self->{'state'}{'stats'}{'maxlocal'}
12311 497 30 if $conns > $self->{'state'}{'stats'}{'maxconns'}
12326 2003 1904 unless $remote
12327 1904 2003 if $remote
12340 0 0 if (matches_mask($host, $user->{'auth'}{'hostname'}) and matches_mask($luser, $user->{'auth'}{'ident'}))
12353 0 26 unless @args
12354 0 26 unless $type =~ /^((RK|[DKX])LINE|RESV)$/i
12359 0 104 unless defined $ref->{$field}
12362 18 8 if ($type =~ /^([xd]lines|resvs)$/) { }
12364 0 18 unless $ref->{'mask'}
12369 0 8 unless $ref->{'user'} and $ref->{'host'}
12371 17 9 if ($ref->{'duration'})
12380 8 18 if ($type eq 'resvs') { }
12393 0 15 unless @args
12394 0 15 unless $type =~ /^((RK|[DKX])LINE|RESV)$/i
12397 11 4 if ($type =~ /^([xd]lines|resvs)$/) { }
12399 0 11 unless $mask
12404 0 4 unless $user and $host
12407 5 10 if ($type eq 'resvs') { }
12412 6 4 if ($mask and $_->{'mask'} eq $mask)
12416 4 0 if ($user and ($_->{'user'} eq $user and $_->{'host'} eq $host))
12423 0 15 unless $result
12424 8 7 if (my $alarm = delete $result->{'alarm'})
12445 2 7 if ($type eq 'resvs') { }
12450 7 0 if ($drkxline eq $ref)
12457 0 9 unless $res
12460 2 7 if $type eq 'dlines'
12472 1 388 if ($conn_id and not $self->_connection_exists($conn_id))
12475 1 387 if ($conn_id and $self->{'state'}{'conns'}{$conn_id}{'resv_exempt'})
12479 7 3 if (matches_mask($mask, $thing))
12489 0 8 if $self->{'state'}{'resvs'}{uc_irc($mask)}
12498 0 18 unless $self->state_uid_exists($uid)
12503 15 3 if ($chan eq '*') { }
12511 2 6 unless $user =~ /^$sid/
12512 5 1 unless $self->{'state'}{'uids'}{$user}{'caps'}{'away-notify'}
12520 16 2 if $msg
12534 5 0 if $urec->{'route_id'} eq 'spoofed'
12535 0 0 if $urec->{'umode'} =~ /o/
12536 0 0 if ($urec->{'ircname'} and matches_mask($mask, $urec->{'ircname'}))
12563 5 0 if $urec->{'route_id'} eq 'spoofed'
12564 0 0 if $urec->{'umode'} =~ /o/
12565 0 0 if (Net::CIDR::cidrlookup($urec->{'socket'}[0], $netmask))
12593 2 0 if $urec->{'route_id'} eq 'spoofed'
12594 0 0 if $urec->{'umode'} and $urec->{'umode'} =~ /o/
12595 0 0 if ($urec->{'socket'}[0] =~ /$host/ || $urec->{'auth'}{'hostname'} =~ /$host/ and $urec->{'auth'}{'ident'} =~ /$luser/)
12623 6 0 if (my $netmask = Net::CIDR::cidrvalidate($host)) { }
12625 6 0 if $user->{'route_id'} eq 'spoofed'
12626 0 0 if $user->{'umode'} and $user->{'umode'} =~ /o/
12627 0 0 if (Net::CIDR::cidrlookup($user->{'socket'}[0], $netmask) and matches_mask($luser, $user->{'auth'}{'ident'}))
12646 0 0 if $user->{'route_id'} eq 'spoofed'
12647 0 0 if $user->{'umode'} and $user->{'umode'} =~ /o/
12649 0 0 if (matches_mask($host, $user->{'socket'}[0]) || matches_mask($host, $user->{'auth'}{'hostname'}) and matches_mask($luser, $user->{'auth'}{'ident'}))
12679 1 228 if $record->{'kline_exempt'}
12682 2 0 if ($host =~ /$kline->{'host'}/ || $ip =~ /$kline->{'host'}/ and $user =~ /$kline->{'user'}/)
12698 1 233 if $record->{'kline_exempt'}
12701 5 0 if (my $netmask = Net::CIDR::cidrvalidate($kline->{'host'})) { }
0 0 elsif (matches_mask($kline->{'host'}, $host) || matches_mask($kline->{'host'}, $ip) and matches_mask($kline->{'user'}, $user)) { }
12702 5 0 if (Net::CIDR::cidrlookup($ip, $netmask) and matches_mask($kline->{'user'}, $user))
12724 5 0 if (matches_mask($xline->{'mask'}, $ircname))
12736 235 10 unless ($self->{'config'}{'auth'} and @{$self->{'config'}{'auth'};})
12746 9 1 if (matches_mask($auth->{'mask'}, $uh) or matches_mask($auth->{'mask'}, $ui))
12748 4 5 if ($auth->{'password'} and not $record->{'pass'} && chkpasswd($record->{'pass'}, $auth->{'password'}))
12752 1 4 if ($auth->{'spoof'})
12765 5 20 if $auth->{$feat}
12767 1 4 if (not $record->{'auth'}{'ident'} and $auth->{'no_tilde'})
12781 0 259 unless ($conn_id and $self->_connection_exists($conn_id))
12785 0 259 unless $name and $pass
12787 0 259 unless $$peers{uc $name}
12789 1 258 unless chkpasswd($pass, $peer->{'pass'})
12793 4 0 if ($peer->{'certfp'} and $conn->{'secured'})
12795 1 3 if not $certfp or $certfp ne $peer->{'certfp'}
12798 254 3 if (not $peer->{'ipmask'} and $conn->{'socket'}[0] =~ /^(127\.|::1)/)
12801 0 3 unless $peer->{'ipmask'}
12804 0 3 if (ref $peer->{'ipmask'} eq 'ARRAY')
12806 0 0 if (eval { do { $block->isa('Net::Netmask') } })
12807 0 0 if $block->match($client_ip)
12810 0 0 if Net::CIDR::cidrlookup($client_ip, $block)
12816 3 0 if matches_mask('*!*@' . $peer->{'ipmask'}, "*!*\@$client_ip")
12834 0 227 unless $self->_connection_exists($conn_id)
12840 904 4 unless $crec->{$feat}
12841 1 3 if $feat eq 'can_flood'
12860 0 257 unless $self->_connection_exists($conn_id)
12861 0 257 unless $self->{'config'}{'peers'}{uc $name}
12862 0 257 if $self->_connection_terminated($conn_id)
12871 257 0 $sid ? :
12881 253 4 $peer->{'zip'} ? :
12889 2 255 if $self->{'config'}{'hidden'}
12919 0 257 unless $self->_connection_exists($conn_id)
12920 0 257 if $self->_connection_terminated($conn_id)
12932 251 6 if $excepts
12933 251 6 if $invex
12945 0 334 if $record->{'route_id'} eq $conn_id
12958 6 328 if $rhost
12968 8 326 if ($record->{'away'})
12993 0 61 if $chan =~ /^\&/
13011 11 1012 if (length(join ' ', $buf, '1', $uid) + $length + 1 > 510)
13026 61 0 if ($buf)
13043 12 156 if (length(join ' ', '1', $buffer[1], $thing) + $length + 1 > 510)
13061 147 9 if ($buffer[1]) { }
13078 9 174 if $buffer[1]
13085 8 53 if ($tburst and $chanrec->{'topic'})
13104 257 0 if ($burst)
13129 464 0 unless ($self->state_peer_exists($peer) and $self->state_peer_exists($targ))
13136 257 207 if $server eq $targ
13139 1 206 if $rec->{'hidden'}
13149 464 0 if wantarray
13162 0 6 unless ($nhost =~ /$host_re/)
13166 0 6 if ($nhost eq $rec->{'auth'}{'hostname'})
13170 6 0 $local ? :
13196 6 0 if ($local)
13216 0 3 unless $modes
13247 3 0 if ($modeline)
13259 0 3 if ($rec->{'away'})
13273 0 6 if wantarray
13284 0 14 unless $self->state_sid_exists($psid)
13293 12 2 if $plen
13294 10 4 if not $ctn and $plen
13299 0 14 if ($plen and $plen > 60)
13326 14 0 if wantarray
13336 0 20 unless $self->state_sid_exists($psid)
13356 13 2 if matches_mask($mask, $rec->{'name'})
13359 20 0 if wantarray
13366 0 0 unless $self->state_peer_exists($peer)
13374 1 344 unless $self->state_sid_exists($sid)
13393 117 227 if $mysid ne $rec->{'psid'}
13398 344 0 if wantarray
13405 0 257 unless $self->_connection_exists($conn_id)
13410 0 257 unless $psid
13412 254 3 unless ($record->{'cntr'})
13426 3 254 if $self->{'state'}{'services'}{$ucname}
13433 6 251 if (my $sslinfo = $self->connection_secured($conn_id)) { }
13466 0 257 $record->{'hidden'} ? :
13491 0 227 unless $self->_connection_exists($conn_id)
13505 226 1 unless ($record->{'auth'}{'ident'})
13509 226 1 if ($record->{'auth'}{'hostname'} eq 'localhost' or not $record->{'auth'}{'hostname'} and $record->{'socket'}[0] =~ /^(127\.|::1)/)
13514 0 227 unless ($record->{'auth'}{'hostname'})
13523 0 227 if $record->{'ipaddress'} =~ /^:/
13528 227 0 if $record->{'uid'}
13530 227 0 if $record->{'uid'}
13540 8 219 if ($record->{'secured'})
13543 5 3 if (my $certfp = $self->connection_certfp($conn_id))
13576 0 332 if ($self->_state_peer_capab($peer_id, 'RHOST')) { }
13596 8 324 if ($record->{'certfp'})
13623 1 226 if (defined $self->{'state'}{'watches'}{$unick})
13625 0 1 unless defined $self->{'state'}{'uids'}{$wuid}
13658 925 1 unless (defined $self->{'state'}{'users'}{$nick} or defined $self->{'state'}{'pending'}{$nick})
13668 6626 11 if defined $self->{'state'}{'uids'}{$uid}
13681 106 1775 unless defined $self->{'state'}{'chans'}{uc_irc($chan)}
13694 856 49 unless defined $self->{'state'}{'peers'}{uc $peer}
13701 398 2073 unless defined $self->{'state'}{'sids'}{$sid}
13711 0 52 unless $joincount and $jointime
13712 0 52 unless $self->state_nick_exists($nick)
13713 0 52 unless $self->state_chan_exists($chan)
13718 0 52 if ($crec->{'_num_joined'} <= 0) { }
0 52 elsif ($crec->{'_num_joined'} >= $joincount) { }
13723 0 0 unless ($crec->{'_jfnotice'})
13744 0 52 unless $self->state_nick_exists($nick)
13747 0 52 if ($spamnum and $urec->{'_jl_cnt'} and $urec->{'_jl_cnt'} >= $spamnum) { }
13748 0 0 if ($urec->{'_owcd'} and $urec->{'_owcd'} > 0) { }
13754 0 0 if ($urec->{'_owcd'} == 0)
13762 0 0 $chan ? :
13772 52 0 if ($delta > $self->{'config'}{'JOIN_LEAVE_COUNT_EXPIRE'}) { }
13774 52 0 if ($dec_cnt > ($urec->{'_jl_cnt'} || 0)) { }
13783 0 0 if time - $urec->{'_last_join'} < $self->{'config'}{'MIN_JOIN_LEAVE_TIME'}
13785 52 0 if ($chan) { }
13799 0 8 unless $self->{'config'}{'floodcount'} and $self->{'config'}{'floodtime'}
13800 0 8 unless $self->state_nick_exists($nick)
13801 0 8 unless $self->state_chan_exists($chan)
13803 0 8 if $urec->{'route_id'} eq 'spoofed'
13804 0 8 if $urec->{'can_flood'} or $urec->{'umode'} =~ /o/
13807 0 8 if ($first and $first + $self->{'config'}{'floodtime'} < time)
13808 0 0 if ($crec->{'_recv_msgs'}) { }
13817 1 7 if ($recv and $recv >= $self->{'config'}{'floodcount'})
13818 1 0 unless ($crec->{'_flood_notice'})
13828 1 0 if ($type ne 'NOTICE')
13843 3 4 unless $first
13853 0 14 unless $self->{'config'}{'floodcount'} and $self->{'config'}{'floodtime'}
13854 0 14 unless $self->state_nick_exists($nick)
13855 0 14 unless $self->state_nick_exists($targ)
13857 0 14 if $urec->{'route_id'} eq 'spoofed'
13858 2 12 if $urec->{'can_flood'} or $urec->{'umode'} =~ /o/
13861 0 12 if ($first and $first + $self->{'config'}{'floodtime'} < time)
13862 0 0 if ($trec->{'_recv_msgs'}) { }
13871 1 11 if ($recv and $recv >= $self->{'config'}{'floodcount'})
13872 1 0 unless ($trec->{'_flood_notice'})
13882 1 0 if ($type ne 'NOTICE')
13897 5 6 unless $first
13908 0 23 unless $self->state_nick_exists($nick)
13909 0 23 unless $self->state_chan_exists($chan)
13915 2 1 if ($crec->{'mode'} =~ /c/ and has_color($msg) || has_formatting($msg))
13918 1 7 if ($crec->{'mode'} =~ /C/ and $msg =~ /^\001/ and not $msg =~ /^\001ACTION/)
13921 0 20 if ($crec->{'mode'} =~ /n/ and not $member)
13924 2 18 if ($crec->{'mode'} =~ /M/ and not $urec->{'umode'} =~ /r/)
13927 8 10 if ($member and $crec->{'users'}{$uid})
13930 0 10 if ($crec->{'mode'} =~ /m/)
13933 2 8 if ($crec->{'mode'} =~ /T/ and $type eq 'NOTICE')
13936 0 8 if ($self->_state_user_banned($nick, $chan))
13945 1 1 unless $self->state_peer_exists($peer)
13952 4 3 if ($peer =~ /^\d/) { }
13953 0 4 unless $self->state_sid_exists($peer)
13957 0 3 unless $self->state_peer_exists($peer)
13965 0 944 unless $self->state_sid_exists($sid)
13972 0 52 unless $self->state_sid_exists($sid)
13973 9 43 unless $self->{'state'}{'sids'}{$sid}{'serv'}
13980 0 4 unless $self->state_peer_exists($peer)
13989 0 923 unless $self->_connection_is_peer($conn_id)
14008 2545 598 if ($nick =~ /^\d/) { }
14009 0 2545 unless $self->state_uid_exists($nick)
14013 0 598 unless $self->state_nick_exists($nick)
14016 1 3142 if ($oper and defined $record->{'opuser'})
14025 110 72 if ($nick =~ /^\d/) { }
14026 2 108 unless $self->state_uid_exists($nick)
14030 1 71 unless $self->state_nick_exists($nick)
14038 46 540 if ($nick =~ /^\d/) { }
14039 4 42 unless $self->state_uid_exists($nick)
14043 4 536 unless $self->state_nick_exists($nick)
14051 0 22 unless $self->state_nick_exists($nick) and $self->_state_is_local_user($nick)
14060 0 0 unless $self->state_nick_exists($nick)
14061 0 0 if defined $self->{'state'}{'users'}{uc_irc($nick)}{'away'}
14068 0 17 unless $self->state_nick_exists($nick)
14075 0 77 unless $self->state_nick_exists($nick)
14082 0 267 unless $self->state_nick_exists($nick)
14083 207 60 unless $self->{'state'}{'users'}{uc_irc($nick)}{'umode'} =~ /o/
14090 0 31 unless $self->state_nick_exists($nick)
14091 31 0 unless $self->{'state'}{'users'}{uc_irc($nick)}{'umode'} =~ /D/
14098 0 117 unless $self->state_nick_exists($nick)
14107 0 448 unless $self->state_nick_exists($nick)
14115 0 621 unless $self->state_uid_exists($uid)
14123 0 1 unless $self->state_nick_exists($nick)
14131 0 0 unless $self->state_uid_exists($uid)
14138 0 37 unless $self->state_peer_exists($peer)
14146 0 463 unless $self->state_sid_exists($sid)
14154 0 2129 if !keys(%{$$self{'state'}{'peers'};}) > 1
14164 0 10 unless $self->state_chan_exists($chan)
14169 10 0 unless $status_msg
14178 0 0 if $record->{'users'}{$_}
14186 0 96 unless $self->state_chan_exists($chan)
14191 6 165 $flag && $flag eq 'FULL' ? :
14194 96 75 if $m =~ /o/
14195 11 160 if $m =~ /h/ and not $p
14196 0 171 if $m =~ /v/ and not $p
14205 0 75 unless $self->state_chan_exists($chan)
14210 1023 22 $flag && $flag eq 'UIDS' ? :
14211 6 1039 $flag && $flag eq 'FULL' ? :
14214 50 995 if $m =~ /o/
14215 4 1041 if $m =~ /h/
14216 4 1041 if $m =~ /v/
14224 0 1 unless $self->state_chan_exists($chan)
14231 0 57 unless $self->state_chan_exists($chan)
14233 57 0 unless $record->{'topic'}
14241 0 28 if ($nick =~ /^\d/) { }
14242 0 0 unless $self->state_uid_exists($nick)
14243 0 0 if defined $record->{'uids'}{$nick}
14246 0 28 unless $self->state_nick_exists($nick)
14247 28 0 if defined $record->{'users'}{uc_irc($nick)}
14255 0 3274 unless $self->state_uid_exists($uid)
14256 29 3245 if $self->server_sid eq substr($uid, 0, 3)
14263 0 211 unless $self->state_chan_exists($chan)
14271 0 69 unless $self->state_chan_exists($chan)
14274 0 69 if length $mode > 1
14276 4 65 if $record->{'mode'} =~ /$mode/
14284 0 4 unless $self->state_nick_exists($nick)
14285 0 4 unless $self->state_chan_exists($chan)
14287 1 3 if $nickrec->{'invites'}{uc_irc($chan)}
14289 0 3 if $self->_state_user_matches_list($nick, $chan, 'invex')
14297 69 0 unless $self->_state_user_matches_list($nick, $chan, 'bans')
14298 0 0 unless $self->_state_user_matches_list($nick, $chan, 'excepts')
14307 0 72 unless $self->state_nick_exists($nick)
14308 0 72 unless $self->state_chan_exists($chan)
14313 0 3 if matches_mask($mask, $full)
14322 0 383 unless $self->state_nick_exists($nick)
14323 0 383 unless $self->state_chan_exists($chan)
14325 311 72 if defined $record->{'chans'}{uc_irc($chan)}
14333 0 2 unless $self->state_uid_exists($uid)
14334 0 2 unless $self->state_chan_exists($chan)
14336 2 0 if defined $record->{'chans'}{uc_irc($chan)}
14343 0 0 unless $self->state_is_chan_member($nick, $chan)
14351 0 64 unless $self->state_is_chan_member($nick, $chan)
14353 50 14 if $record->{'chans'}{uc_irc($chan)} =~ /o/
14354 0 14 if $self->{'config'}{'OPHACKS'} and $record->{'umode'} =~ /o/
14362 0 55 unless $self->state_is_chan_member($nick, $chan)
14364 21 34 if $record->{'chans'}{uc_irc($chan)} =~ /h/
14372 0 0 unless $self->state_is_chan_member($nick, $chan)
14374 0 0 if $record->{'chans'}{uc_irc($chan)} =~ /v/
14382 0 25 unless $self->state_nick_exists($nick)
14383 0 25 unless $user and $pass
14386 1 24 unless $ops->{$user}
14387 0 24 unless chkpasswd($pass, $ops->{$user}{'password'})
14389 6 18 if ($ops->{$user}{'ssl_required'})
14390 1 5 unless $self->{'state'}{'users'}{uc_irc($nick)}{'umode'} =~ /S/
14393 4 19 if ($ops->{$user}{'certfp'})
14395 1 3 if (not $certfp or uc $certfp ne uc $ops->{$user}{'certfp'})
14401 0 22 unless $client_ip
14402 22 0 if (not $ops->{$user}{'ipmask'} and ($client_ip and $client_ip =~ /^(127\.|::1)/))
14405 0 0 unless $ops->{$user}{'ipmask'}
14407 0 0 if (ref $ops->{$user}{'ipmask'} eq 'ARRAY')
14409 0 0 if (eval { do { $block->isa('Net::Netmask') } })
14410 0 0 if $block->match($client_ip)
14413 0 0 if Net::CIDR::cidrlookup($client_ip, $block)
14416 0 0 if matches_mask($ops->{$user}{'ipmask'}, $client_ip)
14424 0 0 unless $self->state_nick_exists($nick1) and $self->state_nick_exists($nick2)
14429 0 0 if $rec2->{'chans'}{$chan}
14440 18 20 if ($target =~ /^[#&]/)
14444 0 20 if ($target =~ /^([\@%+]+)([#&].+)$/)
14448 1 19 if ($target =~ /^\$([^#].+)$/)
14452 1 18 if ($target =~ /^\$#(.+)$/)
14456 0 18 if ($target =~ /@/)
14459 0 0 if $nick =~ /%/
14463 4 14 if ($target =~ /$uid_re/)
14493 218 3616 unless $self->{'state'}{'conns'}{$wheel_id}{'nick'}
14500 0 801 unless $self->{'state'}{'conns'}{$wheel_id}{'uid'}
14518 182 2 ref $_[0] eq 'HASH' ? :
14528 184 0 defined $VERSION ? :
14579 0 2392 if (defined $new and $new > $self->{'config'}{$opt})
14586 0 368 if (defined $new and $new < $self->{'config'}{$opt})
14592 344 127 unless $opt =~ /^(knock_|pace_|max_watch|max_bans_|oper_umode|max_nick|anti_|flood|hidden)/i
14594 127 0 if defined $opts->{$opt}
14601 344 0 if defined $opts->{$opt}
14606 2 182 if (not $sid && $sid =~ /$sid_re/) { }
14621 0 184 unless ($self->{'config'}{'SERVERNAME'} =~ /\./)
14625 0 0 if (not defined $self->{'config'}{'ADMIN'} or ref $self->{'config'}{'ADMIN'} ne 'ARRAY' or @{$self->{'config'}{'ADMIN'};} != 3)
14634 0 0 if (not defined $self->{'config'}{'INFO'} or ref $self->{'config'}{'INFO'} ne 'ARRAY' or !@{$self->{'config'}{'INFO'};} == 1)
14759 2099 56 if $flags
14772 2099 56 if ($flags) { }
14801 34 2457 if ($self->_connection_is_peer($wheel_id))
14806 0 2491 unless $self->_connection_exists($wheel_id)
14809 2428 63 if (ref $err eq 'HASH')
14813 63 0 if (defined $self->{'Error_Codes'}{$err})
14819 41 22 if ($self->{'Error_Codes'}{$err}[0] > 0)
14824 6 57 if ($self->{'Error_Codes'}{$err}[1] =~ /%/) { }
14841 0 202 unless $self->state_chan_exists($channel)
14843 0 202 unless $output
14846 6 196 $output->{'command'} =~ /^(PRIVMSG|NOTICE)$/ ? :
14849 13 189 $status ? :
14851 339 437 unless $uid =~ /^$sid/
14853 127 310 if ($conn_id and $conn_id eq $route_id)
14856 21 289 if ($status)
14859 15 27 if $chanrec->{'users'}{$uid} =~ /$stat/
14861 9 12 if $negative and $matched or not $negative || $matched
14863 89 212 if ($poscap)
14864 0 89 ref $poscap eq 'ARRAY' ? :
14865 76 13 unless $self->{'state'}{'uids'}{$uid}{'caps'}{$cap}
14868 91 134 if ($negcap)
14869 6 85 ref $negcap eq 'ARRAY' ? :
14870 15 79 if $self->{'state'}{'uids'}{$uid}{'caps'}{$cap}
14873 0 210 if ($is_msg and $self->{'state'}{'uids'}{$uid}{'umode'} =~ /D/)
14887 196 6 if not $is_msg or $spoofs
14895 0 227 unless defined $duration and $duration =~ /^\d+$/
14911 0 227 $days == 1 ? :
14920 30 0 if (ref $_[0] eq 'HASH') { }
14928 0 30 unless (defined $ref->{'username'} and defined $ref->{'password'})
14933 0 30 if ($ref->{'ssl_required'} || $ref->{'certfp'} and not $self->{'got_ssl'})
14939 0 30 if ($ref->{'ipmask'} and $ref->{'ipmask'} eq 'ARRAY')
14942 0 0 if (eval { do { $mask->isa('Net::Netmask') } })
14947 0 0 if $valid
14952 28 2 if ($ref->{'umode'})
14966 0 0 unless defined $self->{'config'}{'ops'}{$user}
14988 0 6 if (ref $_[0] eq 'HASH') { }
14996 0 6 unless ($parms->{'mask'})
15010 0 0 if ($_->{'mask'} eq $mask)
15022 0 290 if (ref $_[0] eq 'HASH') { }
15030 0 290 unless (defined $parms->{'name'} and defined $parms->{'pass'} and defined $parms->{'rpass'})
15036 287 3 if not $parms->{'type'} or lc $parms->{'type'} ne 'r'
15038 0 290 if $parms->{'type'} eq 'r' and not $parms->{'rport'}
15041 580 0 unless $parms->{$_}
15044 3 287 if $parms->{'raddress'}
15045 4 286 unless $parms->{'zip'}
15046 289 1 unless $parms->{'ssl'}
15048 0 290 if ($parms->{'ipmask'} and $parms->{'ipmask'} eq 'ARRAY')
15051 0 0 if (eval { do { $mask->isa('Net::Netmask') } })
15056 0 0 if $valid
15063 0 290 if $parms->{'service'}
15069 3 0 if $parms->{'type'} eq 'r' and $parms->{'auto'}
15077 0 0 unless defined $self->{'config'}{'peers'}{uc $name}
15079 0 0 if $rec->{'service'}
15086 2 0 if (ref $_[0] eq 'HASH') { }
15094 0 2 unless (defined $parms->{'cmd'} and defined $parms->{'name'} and defined $parms->{'target'})
15102 0 2 unless ($nick and $user and $host)
15114 0 2 if (defined $self->{'config'}{'cmds'}{$cmd} or defined $self->{'config'}{'pseudo'}{$cmd})
15134 0 240 unless $self->_connection_exists($conn_id)
15138 205 35 if ($self->{'state'}{'conns'}{$conn_id}{'type'} eq 'c')
15166 19 0 if ($id == $conn_id)
15184 0 4 if (not $count or $count < 2)
15187 0 4 if ($args->[0] =~ /^\d/ and not $self->state_uid_exists($args->[0])) { }
0 4 elsif (not $args->[0] =~ /^\d/ || $self->state_nick_exists($args->[0])) { }
15193 0 4 unless ($args->[1] =~ /^[#&]/)
15199 0 4 if wantarray
15212 0 6 unless ($count)
15215 0 6 if ($args->[0] =~ /^\d/ and not $self->state_uid_exists($args->[0])) { }
0 6 elsif (not $args->[0] =~ /^\d/ || $self->state_nick_exists($args->[0])) { }
15225 1 5 $args->[2] && $self->_connection_exists($args->[2]) ? :
15229 6 0 if ($self->_state_is_local_user($target)) { }
15248 2 7 unless not $conn_id
15251 3 3 if ($route_id eq 'spoofed') { }
15275 0 0 unless not $conn_id
15286 0 6 if wantarray
15300 0 10 unless ($self->state_chan_exists($chan))
15311 0 13 unless $mode =~ /^[+-][CceIbkMNRSTLOlimnpstohuv]$/
15313 3 10 if ($mode =~ /^(\+[ohvklbIe]|-[ohvbIe])/)
15316 2 11 if (my($flag, $char) = $mode =~ /^([-+])([ohv])/)
15318 2 0 if ($flag eq '+' and not $record->{'users'}{$self->state_user_uid($arg)} =~ /$char/)
15332 0 2 if ($flag eq '-' and $record->{'users'}{uc_irc($arg)} =~ /$char/)
15346 0 0 if ($mode eq '+l' and $arg =~ /^\d+$/ and $arg > 0)
15349 0 0 unless ($record->{'mode'} =~ /l/)
15356 0 11 if ($mode eq '-l' and $record->{'mode'} =~ /l/)
15362 0 11 if ($mode eq '+k' and $arg)
15365 0 0 unless ($record->{'mode'} =~ /k/)
15372 0 11 if ($mode eq '-k' and $record->{'mode'} =~ /k/)
15380 1 10 if (my($flag) = $mode =~ /(\+|-)b/)
15383 1 0 if ($flag eq '+' and not $record->{'bans'}{$umask})
15389 0 0 if ($flag eq '-' and $record->{'bans'}{$umask})
15397 0 10 if (my($flag) = $mode =~ /(\+|-)I/)
15400 0 0 if ($flag eq '+' and not $record->{'invex'}{$umask})
15406 0 0 if ($flag eq '-' and $record->{'invex'}{$umask})
15414 0 10 if (my($flag) = $mode =~ /(\+|-)e/)
15417 0 0 if ($flag eq '+' and not $record->{'excepts'}{$umask})
15423 0 0 if ($flag eq '-' and $record->{'excepts'}{$umask})
15432 7 3 if ($flag eq '+' and not $record->{'mode'} =~ /$char/)
15438 3 0 if ($flag eq '-' and $record->{'mode'} =~ /$char/)
15445 10 0 if ($reply)
15448 2 1 defined $subs{$_} ? :
15467 2 8 $mode_u_set ? :
15473 2 8 if ($mode_u_set)
15478 1 1 if $bmode =~ /^(\+[ohvklbIe]|-[ohvbIe])/
15480 1 1 if $bmode =~ /^[+-][beI]$/
15482 0 1 if $arg
15484 1 1 if ($breply)
15505 0 10 if wantarray
15518 0 2 if (not $count or $count < 2)
15523 0 2 unless ($self->state_chan_exists($chan))
15527 0 2 unless ($self->state_nick_exists($who))
15531 0 2 unless ($self->state_is_chan_member($who, $chan))
15555 0 2 unless (keys %{$$self{'state'}{'chans'}{$chan}{'users'};})
15560 0 2 if wantarray
15572 0 1 if (not $count or $count < 2)
15577 0 1 unless ($self->state_chan_exists($chan))
15581 0 1 unless ($self->state_nick_exists($who))
15586 0 1 unless ($self->state_is_chan_member($who, $chan))
15591 1 0 if $args->[2]
15611 1 0 unless (keys %{$$self{'state'}{'chans'}{$chan}{'users'};})
15616 0 1 if wantarray
15628 0 0 if ($count)
15648 0 0 if wantarray
15658 0 0 if ($count)
15662 0 0 if wantarray
15669 41 0 if (ref $_[10] eq 'HASH') { }
15677 0 41 unless $ref->{'nick'}
15678 0 41 if $self->state_nick_exists($ref->{'nick'})
15682 35 6 unless $record->{'ts'}
15687 0 41 unless $record->{'umode'}
15688 31 10 unless (defined $record->{'ircname'})
15691 8 33 if $record->{'umode'} =~ /i/
15692 34 7 if $record->{'umode'} =~ /o/
15698 41 0 unless $record->{'account'}
15701 41 0 if $record->{'uid'}
15703 41 0 if $record->{'uid'}
15739 0 41 if (my $whois = $record->{'whois'})
15748 0 0 if ($self->_state_peer_capab($peer_id, 'RHOST')) { }
15779 0 0 if $record->{'whois'}
15785 34 7 if ($record->{'umode'} =~ /o/)
15795 0 9 if ($nick =~ /^\d/) { }
15796 0 0 unless $self->state_uid_exists($nick)
15797 0 0 if $self->_state_uid_route($nick) ne 'spoofed'
15800 0 9 unless $self->state_nick_exists($nick)
15801 0 9 if $self->_state_user_route($nick) ne 'spoofed'
15815 0 31 unless $self->state_nick_exists($nick)
15816 0 31 if $self->_state_user_route($nick) ne 'spoofed'
15823 0 31 if ($state =~ /^(privmsg|notice)$/) { }
1 30 elsif ($state eq 'sjoin') { }
15830 0 1 unless $chan and $self->state_chan_exists($chan)
15831 0 1 if $self->state_is_chan_member($nick, $chan)
15845 30 0 if $self->can($command)