| line | true | false | branch | 
 
| 134 | 0 | 0 | unless exists $opts{'protocol_connection'} and $opts{'protocol_connection'} | 
 
| 137 | 0 | 0 | if ($t{'pc'}->can('transport_default')) | 
 
| 143 | 0 | 0 | exists $opts{'has_state'} ? : | 
 
| 151 | 0 | 0 | unless exists $opts{'socktype'} | 
 
| 152 | 0 | 0 | unless $opts{'socktype'} =~ /^(ssl|tcp|udp)$/ | 
 
| 156 | 0 | 0 | if exists $opts{'client_newpassword'} and $opts{'client_newpassword'} | 
 
| 158 | 0 | 0 | if exists $opts{'protocol_data'} and $opts{'protocol_data'} | 
 
| 160 | 0 | 0 | if grep {not $t{'pc'}->can($_);} @need | 
 
| 162 | 0 | 0 | if (exists $opts{'find_remote_server'} and defined $opts{'find_remote_server'} and $t{'pc'}->can('find_remote_server')) | 
 
| 169 | 0 | 0 | unless exists $opts{$p} and $opts{$p} | 
 
| 173 | 0 | 0 | if $opts{'close_after'} and not Net::DRI::Util::isint($opts{'close_after'}) | 
 
| 176 | 0 | 0 | if ($t{'socktype'} eq 'ssl') | 
 
| 181 | 0 | 0 | if exists $opts{'local_host'} and $opts{'local_host'} | 
 
| 186 | 0 | 0 | if ($self->defer) { } | 
 
| 198 | 0 | 0 | if defined $v | 
 
| 213 | 0 | 0 | $t->{'socktype'} eq 'udp' ? : | 
 
| 217 | 0 | 0 | if exists $t->{'local_host'} | 
 
| 219 | 0 | 0 | if ($type eq 'ssl') { } | 
 
|  | 0 | 0 | elsif ($type eq 'tcp' or $type eq 'udp') { } | 
 
| 229 | 0 | 0 | $type eq 'ssl' ? : | 
 
|  | 0 | 0 | unless defined $sock | 
 
| 247 | 0 | 0 | if ($ctx->{'protocol'}->has_action('session', 'connect')) | 
 
| 254 | 0 | 0 | unless $rs[-1]->is_success | 
 
| 257 | 0 | 0 | unless $ctx->{'protocol'}->has_action('session', 'login') | 
 
| 261 | 0 | 0 | unless exists $t->{$p} and $t->{$p} | 
 
| 266 | 0 | 0 | unless $t->{'protocol_data'} | 
 
| 269 | 0 | 0 | unless $sock->connected and $sock->print($pc->write_message($self, $login)) | 
 
| 287 | 0 | 0 | unless $ctx->{'protocol'}->has_action('session', 'logout') | 
 
| 293 | 0 | 0 | unless $sock->connected and $sock->print($pc->write_message($self, $logout)) | 
 
| 300 | 0 | 0 | unless $rc1->is_success | 
 
| 319 | 0 | 0 | unless defined $autorecon | 
 
| 324 | 0 | 0 | unless $self->has_state | 
 
| 325 | 0 | 0 | unless $ctx->{'protocol'}->has_action('session', 'noop') | 
 
| 336 | 0 | 0 | unless $sock->connected and $sock->print($pc->write_message($self, $noop)) | 
 
| 343 | 0 | 0 | unless $rc1->is_success | 
 
| 349 | 0 | 0 | if (defined $ok and $ok == 1) { } | 
 
| 355 | 0 | 0 | if defined $err and Net::DRI::Util::is_class($err, 'Net::DRI::Protocol::ResultStatus') | 
 
| 356 | 0 | 0 | if ($autorecon) | 
 
| 360 | 0 | 0 | defined $rc1 ? : | 
 
| 364 | 0 | 0 | defined $rc1 ? : | 
 
| 371 | 0 | 0 | if (defined $self->sock and &Scalar::Util::openhandle(scalar $self->sock)) | 
 
| 392 | 0 | 0 | if ($self->current_state) | 
 
| 420 | 0 | 0 | $self->transport_data('socktype') eq 'udp' ? : | 
 
| 421 | 0 | 0 | unless $m ne 'print' || $sock->connected and $sock->$m($pc->write_message($self, $tosend)) | 
 
| 441 | 0 | 0 | if ($t->{'exchanges_done'} == $t->{'close_after'} and $self->has_state and $self->current_state) | 
 
| 452 | 0 | 0 | if ($step == 0) | 
 
| 460 | 0 | 0 | if ($step == 1 and $istimeout == 1 and $self->transport_data->{'socktype'} eq 'udp') |