mirror of
https://github.com/QRouland/UTPass.git
synced 2026-01-10 03:26:57 +00:00
Some improvements
This commit is contained in:
@@ -24,26 +24,32 @@ int GitJob::credentialsCB(git_cred **out, const char *url, const char *username_
|
||||
unsigned int allowed_types, void *payload)
|
||||
{
|
||||
UNUSED(url);
|
||||
cred_type *cred = (cred_type *)payload;
|
||||
PayloadCB *p = (PayloadCB *)payload;
|
||||
|
||||
if (!username_from_url) {
|
||||
qWarning() << "[GitJob] credentials_cb : no username provided ";
|
||||
if (!username_from_url) { // we required here that the username must be provided directly in url (maybe improve later on)
|
||||
qWarning() << "[GitJob] credentials_cb : no username provided";
|
||||
return (int) GIT_EUSER;
|
||||
}
|
||||
|
||||
if (p->called) {
|
||||
qWarning() << "[GitJob] credentials_cb : cb already called, probably invalid creds";
|
||||
return (int) GIT_EUSER;
|
||||
}
|
||||
p->called = true;
|
||||
|
||||
auto v = overload {
|
||||
[](const HTTP & x)
|
||||
{
|
||||
UNUSED(x);
|
||||
qDebug() << "[GitJob] credentialsCB : None ";
|
||||
qWarning() << "[GitJob] credentialsCB : callback should never be call for None ";
|
||||
qDebug() << "[GitJob] credentialsCB : HTTP ";
|
||||
qWarning() << "[GitJob] credentialsCB : callback should never be call for HTTP";
|
||||
return (int) GIT_EUSER;
|
||||
},
|
||||
[allowed_types, &out, &username_from_url](const HTTPUserPass & x)
|
||||
{
|
||||
qDebug() << "[GitJob] credentialsCB : HTTPUserPass ";
|
||||
if (!(allowed_types & GIT_CREDTYPE_USERPASS_PLAINTEXT)) {
|
||||
qWarning() << "[GitJob] credentials_cb : allowed_types is invalid for HTTPUserPass ";
|
||||
qWarning() << "[GitJob] credentials_cb : allowed_types is invalid for HTTPUserPass creds";
|
||||
return (int) GIT_EUSER;
|
||||
}
|
||||
return git_cred_userpass_plaintext_new(out, username_from_url, x.pass.toLocal8Bit().constData());
|
||||
@@ -52,13 +58,17 @@ int GitJob::credentialsCB(git_cred **out, const char *url, const char *username_
|
||||
{
|
||||
qDebug() << "[GitJob] credentialsCB : SSHKey ";
|
||||
if (!(allowed_types & GIT_CREDTYPE_SSH_KEY)) {
|
||||
qWarning() << "[GitJob] credentials_cb : allowed_types is invalid for HTTPUserPass ";
|
||||
qWarning() << "[GitJob] credentials_cb : allowed_types is invalid for SSHKey creds";
|
||||
return (int) GIT_EUSER;
|
||||
}
|
||||
qDebug() << "[GitJob] username_from_url :" << username_from_url;
|
||||
qDebug() << "[GitJob] pub_key :" << x.pub_key.toLocal8Bit().constData();
|
||||
qDebug() << "[GitJob] priv_key :" << x.priv_key.toLocal8Bit().constData();
|
||||
qDebug() << "[GitJob] passphrase :" << x.passphrase.toLocal8Bit().constData();
|
||||
return git_cred_ssh_key_new(out, username_from_url, x.pub_key.toLocal8Bit().constData(),
|
||||
x.priv_key.toLocal8Bit().constData(), x.passphrase.toLocal8Bit().constData());
|
||||
}
|
||||
};
|
||||
auto error = std::visit(v, *cred);
|
||||
return error;
|
||||
auto ret = std::visit(v, p->creds);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user