Sha256: 2fd2f337262393c611188d2c3f9e7ddc6606b1c90bf4155f527e48a1b3c59351

Contents?: true

Size: 1.51 KB

Versions: 56

Compression:

Stored size: 1.51 KB

Contents

/*
 * Copyright (C) the libgit2 contributors. All rights reserved.
 *
 * This file is part of libgit2, distributed under the GNU GPL v2 with
 * a Linking Exception. For full terms see the included COPYING file.
 */

#include "common.h"
#include "git2/cred_helpers.h"

int git_cred_userpass(
		git_cred **cred,
		const char *url,
		const char *user_from_url,
		unsigned int allowed_types,
		void *payload)
{
	git_cred_userpass_payload *userpass = (git_cred_userpass_payload*)payload;
	const char *effective_username = NULL;

	GIT_UNUSED(url);

	if (!userpass || !userpass->password) return -1;

	/* Username resolution: a username can be passed with the URL, the
	 * credentials payload, or both. Here's what we do.  Note that if we get
	 * this far, we know that any password the url may contain has already
	 * failed at least once, so we ignore it.
	 *
	 * |  Payload    |   URL    |   Used    |
	 * +-------------+----------+-----------+
	 * |    yes      |   no     |  payload  |
	 * |    yes      |   yes    |  payload  |
	 * |    no       |   yes    |  url      |
	 * |    no       |   no     |  FAIL     |
	 */
	if (userpass->username)
		effective_username = userpass->username;
	else if (user_from_url)
		effective_username = user_from_url;
	else
		return -1;

	if (GIT_CREDTYPE_USERNAME & allowed_types)
		return git_cred_username_new(cred, effective_username);

	if ((GIT_CREDTYPE_USERPASS_PLAINTEXT & allowed_types) == 0 ||
			git_cred_userpass_plaintext_new(cred, effective_username, userpass->password) < 0)
		return -1;

	return 0;
}

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
rugged-0.25.0b4 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.25.0b3 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.25.0b2 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.25.0b1 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b14 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b13 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b12 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b11 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b9 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b8 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b7 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b6 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b5 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b4 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b3 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b2 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.23.3 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.24.0b0 vendor/libgit2/src/transports/cred_helpers.c
rugged-0.23.2 vendor/libgit2/src/transports/cred_helpers.c