oops, I forgot to include the header file
[ira/wip.git] / source3 / include / client.h
index 0da4b40c18a713fa3b1e8fef1cdd37eacd2ccbed..9dd41313f284002d5b2d8ad5ba4f605c5e5c112b 100644 (file)
@@ -27,7 +27,8 @@
 /* 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 (0x4400)
+#define CLI_BUFFER_SIZE (0xFFFF)
+
 
 /*
  * These definitions depend on smb.h
 
 typedef struct file_info
 {
-  SMB_OFF_T size;
-  int mode;
-  uid_t uid;
-  gid_t gid;
-  /* these times are normally kept in GMT */
-  time_t mtime;
-  time_t atime;
-  time_t ctime;
-  pstring name;
+       SMB_OFF_T size;
+       uint16 mode;
+       uid_t uid;
+       gid_t gid;
+       /* these times are normally kept in GMT */
+       time_t mtime;
+       time_t atime;
+       time_t ctime;
+       pstring name;
+       char short_name[13*3]; /* the *3 is to cope with multi-byte */
 } file_info;
 
 struct print_job_info
@@ -56,22 +58,8 @@ struct print_job_info
        time_t t;
 };
 
-struct pwd_info
-{
-    BOOL null_pwd;
-    BOOL cleartext;
-    BOOL crypted;
-
-    fstring password;
-
-    uchar smb_lm_pwd[16];
-    uchar smb_nt_pwd[16];
-
-    uchar smb_lm_owf[24];
-    uchar smb_nt_owf[24];
-};
-
 struct cli_state {
+       int port;
        int fd;
        uint16 cnum;
        uint16 pid;
@@ -80,13 +68,22 @@ struct cli_state {
        int protocol;
        int sec_mode;
        int rap_error;
-       int privilages;
+       int privileges;
 
        fstring eff_name;
        fstring desthost;
        fstring user_name;
        fstring domain;
 
+       /*
+        * The following strings are the
+        * ones returned by the server if
+        * the protocol > NT1.
+        */
+       fstring server_type;
+       fstring server_os;
+       fstring server_domain;
+
        fstring share;
        fstring dev;
        struct nmb_name called;
@@ -95,13 +92,13 @@ struct cli_state {
        struct in_addr dest_ip;
 
        struct pwd_info pwd;
-       unsigned char cryptkey[8];
+       DATA_BLOB secblob; /* cryptkey or negTokenInit */
        uint32 sesskey;
        int serverzone;
        uint32 servertime;
        int readbraw_supported;
        int writebraw_supported;
-       int timeout;
+       int timeout; /* in milliseconds. */
        int max_xmit;
        int max_mux;
        char *outbuf;
@@ -111,20 +108,36 @@ struct cli_state {
        int win95;
        uint32 capabilities;
 
+       TALLOC_CTX *mem_ctx;
+
        /*
         * Only used in NT domain calls.
         */
 
-       uint32 nt_error;                   /* NT RPC error code. */
        uint16 nt_pipe_fnum;               /* Pipe handle. */
        unsigned char sess_key[16];        /* Current session key. */
        unsigned char ntlmssp_hash[258];   /* ntlmssp data. */
        uint32 ntlmssp_cli_flgs;           /* ntlmssp client flags */
        uint32 ntlmssp_srv_flgs;           /* ntlmssp server flags */
+       uint32 ntlmssp_seq_num;            /* ntlmssp sequence number */
        DOM_CRED clnt_cred;                /* Client credential. */
        fstring mach_acct;                 /* MYNAME$. */
        fstring srv_name_slash;            /* \\remote server. */
        fstring clnt_name_slash;           /* \\local client. */
+       uint16 max_xmit_frag;
+       uint16 max_recv_frag;
+       vuser_key key;
+       uint32 ntlmssp_flags;
+       BOOL use_kerberos;
+       BOOL use_spnego;
+
+       BOOL use_oplocks; /* should we use oplocks? */
+       BOOL use_level_II_oplocks; /* should we use level II oplocks? */
+
+       /* a oplock break request handler */
+       BOOL (*oplock_handler)(struct cli_state *cli, int fnum, unsigned char level);
+
+       BOOL force_dos_errors;
 };
 
 #endif /* _CLIENT_H */