| line | true | false | branch | 
 
| 146 | 0 | 0 | if $self->pw_is_digest | 
 
| 153 | 2 | 19 | if ($mech eq 'PLAIN') | 
 
| 156 | 9 | 10 | $mech eq 'MONGODB-X509' || $mech eq 'GSSAPI' ? : | 
 
| 213 | 9 | 103 | unless (&$validator()) | 
 
| 220 | 7 | 324 | if ($mech eq 'GSSAPI') | 
 
| 232 | 0 | 0 | if ($mech eq 'DEFAULT') | 
 
| 271 | 0 | 0 | unless ($username or $link->supports_x509_user_from_cert) | 
 
| 272 | 0 | 0 | unless $username = $link->client_certificate_subject | 
 
| 277 | 0 | 0 | $username ? : | 
 
| 300 | 0 | 0 | unless eval {
	do {
	require Authen::SASL;
1
}
} | 
 
| 316 | 0 | 0 | unless (eval {
	do {
	$sasl = 'Authen::SASL'->new('mechanism', 'GSSAPI', 'callback', {'user', $self->username, 'authname', $self->username});
$client = $sasl->client_new($self->mechanism_properties->{'SERVICE_NAME'}, $link->host);
1
}
}) | 
 
| 333 | 0 | 0 | if $done | 
 
| 340 | 0 | 0 | unless (eval {
	do {
	my $step = $client->client_start;
$self->_assert_gssapi($client, 'Could not start GSSAPI. Did you run kinit?  Error was: ');
my($sasl_resp, $conv_id, $done) = $self->_sasl_start($link, $bson_codec, $step, 'GSSAPI');
foreach my $i (1 .. 10) {
	last if $done;
$step = $client->client_step($sasl_resp);
$self->_assert_gssapi($client, 'GSSAPI step error: ');
($sasl_resp, $conv_id, $done) = $self->_sasl_continue($link, $bson_codec, $step, $conv_id);
};
1
}
}) | 
 
| 342 | 0 | 0 | $error->$MongoDB::_Credential::_isa('MongoDB::Error') ? : | 
 
| 368 | 0 | 0 | if (my $supported = $server->is_master->{'saslSupportedMechs'}) | 
 
| 369 | 0 | 0 | if (grep {$_ eq 'SCRAM-SHA-256';} @$supported) | 
 
| 375 | 0 | 0 | if ($link->supports_scram_sha1) | 
 
| 391 | 0 | 0 | if ($type =~ /^Authen::SASL::(?:XS|Cyrus)$/) { } | 
 
| 393 | 0 | 0 | if ($code != 0 and $code != 1) | 
 
| 400 | 0 | 0 | if (my $error = $client->error) | 
 
| 412 | 0 | 0 | unless defined $payload | 
 
| 413 | 0 | 0 | if $self->mechanism eq 'GSSAPI' | 
 
| 420 | 0 | 0 | unless defined $payload and length $payload | 
 
| 421 | 0 | 0 | if ref $payload | 
 
| 475 | 0 | 0 | unless $done | 
 
| 477 | 0 | 0 | unless (eval {
	do {
	$msg = $client->first_msg;
($sasl_resp, $conv_id, $done) = $self->_sasl_start($link, $bson_codec, $msg, $mech);
$msg = $client->final_msg($sasl_resp);
($sasl_resp, $conv_id, $done) = $self->_sasl_continue($link, $bson_codec, $msg, $conv_id);
$client->validate($sasl_resp);
$self->_sasl_continue($link, $bson_codec, '', $conv_id) unless $done;
1
}
}) | 
 
| 479 | 0 | 0 | $error->$MongoDB::_Credential::_isa('MongoDB::Error') ? : |