summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/lib/util_sock.c12
-rw-r--r--source3/libsmb/clientgen.c16
2 files changed, 23 insertions, 5 deletions
diff --git a/source3/lib/util_sock.c b/source3/lib/util_sock.c
index 4a67fa00aa..e9859dfa17 100644
--- a/source3/lib/util_sock.c
+++ b/source3/lib/util_sock.c
@@ -526,6 +526,7 @@ BOOL receive_smb(int fd,char *buffer, unsigned int timeout)
BOOL client_receive_smb(int fd,char *buffer, unsigned int timeout)
{
BOOL ret;
+ uint8 msg_type;
for(;;)
{
@@ -539,9 +540,18 @@ BOOL client_receive_smb(int fd,char *buffer, unsigned int timeout)
}
/* Ignore session keepalive packets. */
- if(CVAL(buffer,0) != 0x85)
+ msg_type = CVAL(buffer,0);
+ if (msg_type != 0x85)
break;
}
+ if (msg_type == 0)
+ {
+ show_msg(buffer);
+ }
+ else
+ {
+ dump_data(10, buffer, smb_len(buffer) + 4);
+ }
show_msg(buffer);
return ret;
}
diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c
index ecab198c94..efed3555ba 100644
--- a/source3/libsmb/clientgen.c
+++ b/source3/libsmb/clientgen.c
@@ -60,13 +60,21 @@ static BOOL cli_send_smb(struct cli_state *cli, BOOL show)
ssize_t ret;
BOOL reestablished=False;
+ len = smb_len(cli->outbuf) + 4;
+
if (show)
{
- show_msg(cli->outbuf);
+ uint8 msg_type = CVAL(cli->outbuf, 0);
+ if (msg_type == 0)
+ {
+ show_msg(cli->outbuf);
+ }
+ else
+ {
+ dump_data(10, cli->outbuf, len);
+ }
}
- len = smb_len(cli->outbuf) + 4;
-
while (nwritten < len) {
ret = write_socket(cli->fd,cli->outbuf+nwritten,len - nwritten);
if (ret <= 0 && errno == EPIPE && !reestablished)
@@ -2465,7 +2473,7 @@ BOOL cli_session_request(struct cli_state *cli,
retry:
#endif /* WITH_SSL */
- cli_send_smb(cli, False);
+ cli_send_smb(cli, True);
DEBUG(5,("Sent session request\n"));
if (!cli_receive_smb(cli))