r5929: Use cli_credentials for the SMB functions as well.
[samba.git] / source4 / include / credentials.h
1 /* 
2    samba -- Unix SMB/CIFS implementation.
3
4    Client credentials structure
5
6    Copyright (C) Jelmer Vernooij 2004-2005
7
8    This program is free software; you can redistribute it and/or modify
9    it under the terms of the GNU General Public License as published by
10    the Free Software Foundation; either version 2 of the License, or
11    (at your option) any later version.
12    
13    This program is distributed in the hope that it will be useful,
14    but WITHOUT ANY WARRANTY; without even the implied warranty of
15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16    GNU General Public License for more details.
17    
18    You should have received a copy of the GNU General Public License
19    along with this program; if not, write to the Free Software
20    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23 /* In order of priority */
24 enum credentials_obtained { 
25         CRED_GUESSED    = 0, /* Current value should be used, which was guessed */
26         CRED_CALLBACK,           /* Callback should be used to obtain value */
27         CRED_SPECIFIED           /* Was explicitly specified on the command-line */
28 };
29
30 struct cli_credentials {
31         /* Preferred methods, NULL means default */
32         const char **preferred_methods;
33
34         enum credentials_obtained workstation_obtained;
35         enum credentials_obtained username_obtained;
36         enum credentials_obtained password_obtained;
37         enum credentials_obtained domain_obtained;
38         enum credentials_obtained realm_obtained;
39
40         const char *workstation;
41         const char *username;
42         const char *password;
43         const char *domain;
44         const char *realm;
45
46         const char *(*workstation_cb) (struct cli_credentials *);
47         const char *(*password_cb) (struct cli_credentials *);
48         const char *(*username_cb) (struct cli_credentials *);
49         const char *(*domain_cb) (struct cli_credentials *);
50         const char *(*realm_cb) (struct cli_credentials *);
51
52         void *priv_data;
53 };