r5917: First step in using the new cli_credentials structure. This patch
[bbaumbach/samba-autobuild/.git] / source / include / credentials.h
index 0e816158781738c697d3cce1716f800a9f937618..7b223dad5aa0256415b082d5fb3633aaa6096b12 100644 (file)
@@ -3,7 +3,7 @@
 
    Client credentials structure
 
-   Copyright (C) 2004 Jelmer Vernooij <jelmer@samba.org>
+   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
    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 *);