s3:libsmb: move cli->server{zone,time} to cli->conn.smb1.server.{time_zone,system_time}
authorStefan Metzmacher <metze@samba.org>
Tue, 13 Sep 2011 19:45:25 +0000 (21:45 +0200)
committerStefan Metzmacher <metze@samba.org>
Thu, 15 Sep 2011 12:00:26 +0000 (14:00 +0200)
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Thu Sep 15 14:00:29 CEST 2011 on sn-devel-104

source3/include/client.h
source3/libsmb/cliconnect.c
source3/libsmb/clientgen.c

index cdf8069dfb911caed8364a41f16b55bb122cd284..37c1dcda447e9fd03abbeab3dad3eb9ed8d419a1 100644 (file)
@@ -62,8 +62,6 @@ struct cli_state {
        char *share;
        char *dev;
 
-       int serverzone;
-       uint32 servertime;
        int timeout; /* in milliseconds. */
        int initialised;
        int win95;
@@ -140,6 +138,8 @@ struct cli_state {
                                DATA_BLOB gss_blob;
                                uint8_t challenge[8];
                                const char *workgroup;
+                               int time_zone;
+                               time_t system_time;
                        } server;
 
                        uint32_t capabilities;
index a02e7dd7d3c3be1a9763807fd74ab8c1808a307f..fd3c1d40aff94a60624c14eafdbff3612bf8d936 100644 (file)
@@ -2627,6 +2627,8 @@ static void cli_negprot_done(struct tevent_req *subreq)
        DATA_BLOB server_gss_blob = data_blob_null;
        uint8_t server_challenge[8];
        char *server_workgroup = NULL;
+       int server_time_zone = 0;
+       time_t server_system_time = 0;
        enum protocol_types protocol;
 
        ZERO_STRUCT(server_challenge);
@@ -2682,11 +2684,11 @@ static void cli_negprot_done(struct tevent_req *subreq)
                server_max_mux = SVAL(vwv + 1, 1);
                server_max_xmit = IVAL(vwv + 3, 1);
                server_session_key = IVAL(vwv + 7, 1);
-               cli->serverzone = SVALS(vwv + 15, 1);
-               cli->serverzone *= 60;
+               server_time_zone = SVALS(vwv + 15, 1);
+               server_time_zone *= 60;
                /* this time arrives in real GMT */
                ts = interpret_long_date(((char *)(vwv+11))+1);
-               cli->servertime = ts.tv_sec;
+               server_system_time = ts.tv_sec;
                server_capabilities = IVAL(vwv + 9, 1);
 
                key_len = CVAL(vwv + 16, 1);
@@ -2789,11 +2791,11 @@ static void cli_negprot_done(struct tevent_req *subreq)
                server_max_xmit = SVAL(vwv + 2, 0);
                server_max_mux = SVAL(vwv + 3, 0);
                server_session_key = IVAL(vwv + 6, 0);
-               cli->serverzone = SVALS(vwv + 10, 0);
-               cli->serverzone *= 60;
+               server_time_zone = SVALS(vwv + 10, 0);
+               server_time_zone *= 60;
                /* this time is converted to GMT by make_unix_date */
-               cli->servertime = make_unix_date(
-                       (char *)(vwv + 8), cli->serverzone);
+               server_system_time = make_unix_date(
+                       (char *)(vwv + 8), server_time_zone);
                server_readbraw = ((SVAL(vwv + 5, 0) & 0x1) != 0);
                server_writebraw = ((SVAL(vwv + 5, 0) & 0x2) != 0);
 
@@ -2807,7 +2809,8 @@ static void cli_negprot_done(struct tevent_req *subreq)
                }
        } else {
                /* the old core protocol */
-               cli->serverzone = get_time_zone(time(NULL));
+               server_time_zone = get_time_zone(time(NULL));
+               server_system_time = 0;
                server_max_xmit = 1024;
                server_max_mux = 1;
                server_security_mode = 0;
@@ -2869,6 +2872,9 @@ static void cli_negprot_done(struct tevent_req *subreq)
        memcpy(cli->conn.smb1.server.challenge, server_challenge, 8);
        cli->conn.smb1.server.workgroup = talloc_move(cli, &server_workgroup);
 
+       cli->conn.smb1.server.time_zone = server_time_zone;
+       cli->conn.smb1.server.system_time = server_system_time;
+
        tevent_req_done(req);
 }
 
index 05cbb9c80cad76179cf1e1c7a8b3906b4ea1faa2..1fae2642ba8db512142d7fae37d6c58e5bee29ad 100644 (file)
@@ -582,12 +582,12 @@ uint16_t cli_state_security_mode(struct cli_state *cli)
 
 int cli_state_server_time_zone(struct cli_state *cli)
 {
-       return cli->serverzone;
+       return cli->conn.smb1.server.time_zone;
 }
 
 time_t cli_state_server_time(struct cli_state *cli)
 {
-       return cli->servertime;
+       return cli->conn.smb1.server.system_time;
 }
 
 struct cli_echo_state {