Large commit which restructures the local password storage API.
[Samba.git] / source / include / client.h
blob748c7375e1123cc06f9a02cefb5e9f8831aa7db5
1 /*
2 Unix SMB/Netbios implementation.
3 Version 1.9.
4 SMB parameters and setup
5 Copyright (C) Andrew Tridgell 1992-1998
6 Copyright (C) Luke Kenneth Casson Leighton 1996-1998
7 Copyright (C) Jeremy Allison 1998
9 This program is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2 of the License, or
12 (at your option) any later version.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program; if not, write to the Free Software
21 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 #ifndef _CLIENT_H
25 #define _CLIENT_H
27 /* the client asks for a smaller buffer to save ram and also to get more
28 overlap on the wire. This size gives us a nice read/write size, which
29 will be a multiple of the page size on almost any system */
30 #define CLI_BUFFER_SIZE (0xFFFF)
33 * These definitions depend on smb.h
36 typedef struct file_info
38 SMB_OFF_T size;
39 uint16 mode;
40 uid_t uid;
41 gid_t gid;
42 /* these times are normally kept in GMT */
43 time_t mtime;
44 time_t atime;
45 time_t ctime;
46 pstring name;
47 char short_name[13];
48 } file_info;
50 struct print_job_info
52 uint16 id;
53 uint16 priority;
54 size_t size;
55 fstring user;
56 fstring name;
57 time_t t;
60 struct cli_state {
61 int port;
62 int fd;
63 uint16 cnum;
64 uint16 pid;
65 uint16 mid;
66 uint16 vuid;
67 int protocol;
68 int sec_mode;
69 int rap_error;
70 int privileges;
72 fstring eff_name;
73 fstring desthost;
74 fstring user_name;
75 fstring domain;
78 * The following strings are the
79 * ones returned by the server if
80 * the protocol > NT1.
82 fstring server_type;
83 fstring server_os;
84 fstring server_domain;
86 fstring share;
87 fstring dev;
88 struct nmb_name called;
89 struct nmb_name calling;
90 fstring full_dest_host_name;
91 struct in_addr dest_ip;
93 struct pwd_info pwd;
94 unsigned char cryptkey[8];
95 uint32 sesskey;
96 int serverzone;
97 uint32 servertime;
98 int readbraw_supported;
99 int writebraw_supported;
100 int timeout; /* in milliseconds. */
101 int max_xmit;
102 int max_mux;
103 char *outbuf;
104 char *inbuf;
105 int bufsize;
106 int initialised;
107 int win95;
108 uint32 capabilities;
110 TALLOC_CTX *mem_ctx;
113 * Only used in NT domain calls.
116 uint32 nt_error; /* NT RPC error code. */
117 uint16 nt_pipe_fnum; /* Pipe handle. */
118 unsigned char sess_key[16]; /* Current session key. */
119 unsigned char ntlmssp_hash[258]; /* ntlmssp data. */
120 uint32 ntlmssp_cli_flgs; /* ntlmssp client flags */
121 uint32 ntlmssp_srv_flgs; /* ntlmssp server flags */
122 uint32 ntlmssp_seq_num; /* ntlmssp sequence number */
123 DOM_CRED clnt_cred; /* Client credential. */
124 fstring mach_acct; /* MYNAME$. */
125 fstring srv_name_slash; /* \\remote server. */
126 fstring clnt_name_slash; /* \\local client. */
127 uint16 max_xmit_frag;
128 uint16 max_recv_frag;
129 vuser_key key;
130 uint32 ntlmssp_flags;
132 BOOL use_oplocks; /* should we use oplocks? */
135 #endif /* _CLIENT_H */