r7172: This is the proper fix for setting file times from libsmbclient. We now
[kai/samba.git] / source3 / include / libsmb_internal.h
1 #ifndef _LIBSMB_INTERNAL_H_
2 #define _LIBSMB_INTERNAL_H_
3
4 #define SMBC_MAX_NAME  1023
5 #define SMBC_FILE_MODE (S_IFREG | 0444)
6 #define SMBC_DIR_MODE  (S_IFDIR | 0555)
7
8
9 #include "include/libsmbclient.h"
10
11
12 struct _SMBCSRV {
13         struct cli_state cli;
14         dev_t dev;
15         BOOL no_pathinfo;
16         BOOL no_pathinfo2;
17         BOOL no_nt_session;
18
19         SMBCSRV *next, *prev;
20         
21 };
22
23 /* 
24  * Keep directory entries in a list 
25  */
26 struct smbc_dir_list {
27         struct smbc_dir_list *next;
28         struct smbc_dirent *dirent;
29 };
30
31
32 /*
33  * Structure for open file management
34  */ 
35 struct _SMBCFILE {
36         int cli_fd; 
37         char *fname;
38         SMB_OFF_T offset;
39         struct _SMBCSRV *srv;
40         BOOL file;
41         struct smbc_dir_list *dir_list, *dir_end, *dir_next;
42         int dir_type, dir_error;
43
44         SMBCFILE *next, *prev;
45 };
46
47
48 struct smbc_internal_data {
49
50         /** INTERNAL: is this handle initialized ? 
51          */
52         int     _initialized;
53
54         /** INTERNAL: dirent pointer location
55          *
56          * Leave room for any urlencoded filename and the comment field.
57          *
58          * We really should use sizeof(struct smbc_dirent) plus (NAME_MAX * 3)
59          * plus whatever the max length of a comment is, plus a couple of null
60          * terminators (one after the filename, one after the comment).
61          *
62          * According to <linux/limits.h>, NAME_MAX is 255.  Is it longer
63          * anyplace else?
64          */
65         char    _dirent[1024];
66
67         /** INTERNAL: server connection list
68          */
69         SMBCSRV * _servers;
70         
71         /** INTERNAL: open file/dir list
72          */
73         SMBCFILE * _files;
74 };      
75
76
77 #endif