summaryrefslogtreecommitdiff
path: root/source/smbd/ipc.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1998-11-19 22:37:33 +0000
committerJeremy Allison <jra@samba.org>1998-11-19 22:37:33 +0000
commit1ef6d3bd63722afe9c376793a6ea72046d1a0602 (patch)
tree87019a755024f1de1c76115d7423848381133009 /source/smbd/ipc.c
parent36928da28ca84fa64cd7b0dd66cab879e307911c (diff)
downloadsamba-1ef6d3bd63722afe9c376793a6ea72046d1a0602.tar.gz
Sync up with 2.0 code.
Added HPUX autoconf changes. Added "gross hack" printer code. Jeremy.
Diffstat (limited to 'source/smbd/ipc.c')
-rw-r--r--source/smbd/ipc.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/source/smbd/ipc.c b/source/smbd/ipc.c
index d5ff7ddf28e..41892504adc 100644
--- a/source/smbd/ipc.c
+++ b/source/smbd/ipc.c
@@ -842,6 +842,26 @@ static BOOL api_DosPrintQGetInfo(connection_struct *conn,
if (init_package(&desc,1,count)) {
desc.subcount = count;
fill_printq_info(conn,snum,uLevel,&desc,count,queue,&status);
+ } else if(uLevel == 0) {
+ /*
+ * This is a *disgusting* hack.
+ * This is *so* bad that even I'm embarrassed (and I
+ * have no shame). Here's the deal :
+ * Until we get the correct SPOOLSS code into smbd
+ * then when we're running with NT SMB support then
+ * NT makes this call with a level of zero, and then
+ * immediately follows it with an open request to
+ * the \\SRVSVC pipe. If we allow that open to
+ * succeed then NT barfs when it cannot open the
+ * \\SPOOLSS pipe immediately after and continually
+ * whines saying "Printer name is invalid" forever
+ * after. If we cause *JUST THIS NEXT OPEN* of \\SRVSVC
+ * to fail, then NT downgrades to using the downlevel code
+ * and everything works as well as before. I hate
+ * myself for adding this code.... JRA.
+ */
+
+ fail_next_srvsvc_open();
}
*rdata_len = desc.usedlen;