mirror of
				https://github.com/samba-team/samba.git
				synced 2025-10-31 12:23:52 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			118 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|    Unix SMB/CIFS implementation.
 | |
|    SMB parameters and setup
 | |
|    Copyright (C) Andrew Tridgell 1992-1998
 | |
|    Copyright (C) Luke Kenneth Casson Leighton 1996-1998
 | |
|    Copyright (C) Jeremy Allison 1998
 | |
|    Copyright (C) James Myers 2003 <myersjj@samba.org>
 | |
| 
 | |
|    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
 | |
|    the Free Software Foundation; either version 2 of the License, or
 | |
|    (at your option) any later version.
 | |
| 
 | |
|    This program is distributed in the hope that it will be useful,
 | |
|    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|    GNU General Public License for more details.
 | |
| 
 | |
|    You should have received a copy of the GNU General Public License
 | |
|    along with this program; if not, write to the Free Software
 | |
|    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 | |
| */
 | |
| 
 | |
| #ifndef _CLIENT_H
 | |
| #define _CLIENT_H
 | |
| 
 | |
| /* the client asks for a smaller buffer to save ram and also to get more
 | |
|    overlap on the wire. This size gives us a nice read/write size, which
 | |
|    will be a multiple of the page size on almost any system */
 | |
| #define CLI_BUFFER_SIZE (0xFFFF)
 | |
| #define SMBCLI_DFS_MAX_REFERRAL_LEVEL 3
 | |
| 
 | |
| #define SAFETY_MARGIN 1024
 | |
| #define LARGE_WRITEX_HDR_SIZE 65
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * These definitions depend on smb.h
 | |
|  */
 | |
| 
 | |
| typedef struct file_info
 | |
| {
 | |
| 	uint64_t size;
 | |
| 	uint16_t mode;
 | |
| 	uid_t uid;
 | |
| 	gid_t gid;
 | |
| 	/* these times are normally kept in GMT */
 | |
| 	time_t mtime;
 | |
| 	time_t atime;
 | |
| 	time_t ctime;
 | |
| 	const char *name;
 | |
| 	char short_name[13*3]; /* the *3 is to cope with multi-byte */
 | |
| } file_info;
 | |
| 
 | |
| struct print_job_info
 | |
| {
 | |
| 	uint16_t id;
 | |
| 	uint16_t priority;
 | |
| 	size_t size;
 | |
| 	fstring user;
 | |
| 	fstring name;
 | |
| 	time_t t;
 | |
| };
 | |
| 
 | |
| typedef struct referral_info
 | |
| {
 | |
| 	int server_type;
 | |
| 	int referral_flags;
 | |
| 	int proximity;
 | |
| 	int ttl;
 | |
| 	int pathOffset;
 | |
| 	int altPathOffset;
 | |
| 	int nodeOffset;
 | |
| 	char *path;
 | |
| 	char *altPath;
 | |
| 	char *node;
 | |
| 	char *host;
 | |
| 	char *share;
 | |
| } referral_info;
 | |
| 
 | |
| typedef struct dfs_info
 | |
| {
 | |
| 	int path_consumed;
 | |
| 	int referral_flags;
 | |
| 	int selected_referral;
 | |
| 	int number_referrals;
 | |
| 	referral_info referrals[10];
 | |
| } dfs_info;
 | |
| 
 | |
| /* Internal client error codes for smbcli_request_context.internal_error_code */
 | |
| #define SMBCLI_ERR_INVALID_TRANS_RESPONSE		100
 | |
| 
 | |
| #define DFS_MAX_CLUSTER_SIZE 8
 | |
| /* client_context: used by cliraw callers to maintain Dfs
 | |
|  * state across multiple Dfs servers
 | |
|  */
 | |
| struct cli_client
 | |
| {
 | |
| 	const char* sockops;
 | |
| 	char* username;
 | |
| 	char* password;
 | |
| 	char* workgroup;
 | |
| 	TALLOC_CTX *mem_ctx;
 | |
| 	int number_members;
 | |
| 	BOOL use_dfs;				/* True if client should support Dfs */
 | |
| 	int connection_flags;		/* see CLI_FULL_CONN.. below */
 | |
| 	uint16_t max_xmit_frag;
 | |
| 	uint16_t max_recv_frag;
 | |
| 	struct smbcli_state *cli[DFS_MAX_CLUSTER_SIZE];
 | |
| };
 | |
| 
 | |
| #define SMBCLI_FULL_CONNECTION_DONT_SPNEGO 0x0001
 | |
| #define SMBCLI_FULL_CONNECTION_USE_KERBEROS 0x0002
 | |
| #define SMBCLI_FULL_CONNECTION_ANNONYMOUS_FALLBACK 0x0004
 | |
| #define SMBCLI_FULL_CONNECTION_USE_DFS 0x0008
 | |
| 
 | |
| #endif /* _CLIENT_H */
 |