From 02075be0bbc2095073f8898350fded64a7c97c79 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Mon, 21 Mar 2005 02:08:38 +0000 Subject: r5917: First step in using the new cli_credentials structure. This patch puts support for it into popt_common, adds a few utility functions (in lib/credentials.c) and the callback functions for the command-line (lib/cmdline/credentials.c). Comments are welcome :-) (This used to be commit 1d49b57c50fe8c2683ea23e9df41ce8ad774db98) --- source4/include/credentials.h | 19 +++++++++++++++++-- source4/include/includes.h | 1 + 2 files changed, 18 insertions(+), 2 deletions(-) (limited to 'source4/include') diff --git a/source4/include/credentials.h b/source4/include/credentials.h index 0e81615878..7b223dad5a 100644 --- a/source4/include/credentials.h +++ b/source4/include/credentials.h @@ -3,7 +3,7 @@ Client credentials structure - Copyright (C) 2004 Jelmer Vernooij + Copyright (C) Jelmer Vernooij 2004-2005 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,17 +20,32 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ +/* In order of priority */ +enum credentials_obtained { + CRED_GUESSED = 0, /* Current value should be used, which was guessed */ + CRED_CALLBACK, /* Callback should be used to obtain value */ + CRED_SPECIFIED /* Was explicitly specified on the command-line */ +}; + struct cli_credentials { /* Preferred methods, NULL means default */ const char **preferred_methods; + enum credentials_obtained workstation_obtained; + enum credentials_obtained username_obtained; + enum credentials_obtained password_obtained; + enum credentials_obtained domain_obtained; + enum credentials_obtained realm_obtained; + + const char *workstation; const char *username; const char *password; const char *domain; const char *realm; - const char *(*username_cb) (struct cli_credentials *); + const char *(*workstation_cb) (struct cli_credentials *); const char *(*password_cb) (struct cli_credentials *); + const char *(*username_cb) (struct cli_credentials *); const char *(*domain_cb) (struct cli_credentials *); const char *(*realm_cb) (struct cli_credentials *); diff --git a/source4/include/includes.h b/source4/include/includes.h index 9a802aebd0..ce78e14d7d 100644 --- a/source4/include/includes.h +++ b/source4/include/includes.h @@ -123,6 +123,7 @@ extern int errno; #include "smb.h" #include "byteorder.h" #include "module.h" +#include "credentials.h" #include "librpc/ndr/libndr.h" #include "librpc/gen_ndr/ndr_misc.h" #include "librpc/gen_ndr/ndr_dcerpc.h" -- cgit