summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/smbd/reply.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 715bace152..1a1c84efed 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -272,9 +272,22 @@ int reply_tcon_and_X(connection_struct *conn, char *inbuf,char *outbuf,int lengt
} else {
/* NT sets the fstype of IPC$ to the null string */
const char *fsname = IS_IPC(conn) ? "" : lp_fstype(SNUM(conn));
+ const char *devicetype;
set_message(outbuf,3,0,True);
-
+
+ if ( IS_IPC(conn) )
+ devicetype = "IPC";
+ else if ( IS_PRINT(conn) )
+ devicetype = "LPT:";
+ else
+ devicetype = "A:";
+
+ p = smb_buf(outbuf);
+ p += srvstr_push(outbuf, p, IS_IPC(conn) ? "IPC" : devicetype, -1,
+ STR_TERMINATE|STR_ASCII);
+ p += srvstr_push(outbuf, p, fsname, -1,
+ STR_TERMINATE);
p = smb_buf(outbuf);
p += srvstr_push(outbuf, p, IS_IPC(conn) ? "IPC" : devicename, -1,
STR_TERMINATE|STR_ASCII);