Created attachment 16095 [details] Logs, conf, cups backend shell script, screen shots, and pcap of DOS client. I can not seem to print from a DOS client (MS Network Client 3.0). The output is stopped. I issue out the following at the command prompt: NET USE LPT1: \\<SAMBA-SERVER-NAME>\<PRINTER-SHARE-NAME> DIR > LPT1 The output gets chopped off. Doing the same on a Windows 7 Client works correctly. I am attaching a pcap I captured for the DOS client as well as log level 10 debug files. On a side note, regardless of what I put for log level, testparm reports 1.
Created attachment 16096 [details] possible patch Can you try the attached patch? I don't have DOS around, neither do I have a printer configured. So I can't test this right now
I tried patching but got the following: Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |From 05fafc1df28e7848a1e6869d0103ea96dc21f0e4 Mon Sep 17 00:00:00 2001 |From: Volker Lendecke <vlendec@samba.org> |Date: Tue, 14 Aug 2007 20:20:51 +0000 |Subject: [PATCH] r24436: Convert reply_lockread/writeunlock to the new API | (This used to be commit 1b6add251ca1db565a03407db30884132dd93e7d) | |--- | source3/smbd/process.c | 4 +- | source3/smbd/reply.c | 118 +++++++++++++++++++++++++++-------------- | 2 files changed, 80 insertions(+), 42 deletions(-) | |diff --git a/source3/smbd/process.c b/source3/smbd/process.c |index 837991f2ee5d..aaaf475d2e5d 100644 |--- a/source3/smbd/process.c |+++ b/source3/smbd/process.c -------------------------- patching file source3/smbd/process.c Using Plan A... Hunk #1 FAILED at 709. 1 out of 1 hunk FAILED -- saving rejects to file source3/smbd/process.c.rej Hmm... The next patch looks like a unified diff to me... The text leading up to this was: -------------------------- |diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c |index 1d0791a899f2..f41387fb68eb 100644 |--- a/source3/smbd/reply.c |+++ b/source3/smbd/reply.c -------------------------- patching file source3/smbd/reply.c Using Plan A... Hunk #1 FAILED at 2741. Hunk #2 FAILED at 2777. Hunk #3 FAILED at 2788. Hunk #4 FAILED at 2805. Hunk #5 FAILED at 3341. Hunk #6 FAILED at 3378. 6 out of 6 hunks FAILED -- saving rejects to file source3/smbd/reply.c.rej Hmm... Ignoring the trailing garbage. done
(In reply to Adan Calderon from comment #2) I updated Samba to 4.12.5. I also looked at what the patch it suppose to do. It seems like a lot of the code that it is trying to add has already been added. This includes the insertions of NULL in process.c and chucks of code to reply.c It is still not printing completely. I am also testing by trying to capture the raw output being redirected to LPT1 into a TEXT file for the time being. There is no need for a physical printer. The CUPS backend shell script is included in the previous attachments. I think the idea was to simply add the global parameters printing = cups printcap name = cups to the smb.conf Add the following shell script /usr/lib64/cups/backend/rawcapture #!/bin/sh # ------------------------------------------------------------------- # "/usr/lib64/cups/backend/rawcapture": # ------------------------------------------------------------------- # FILENAME= PRINTTIME=`date +%Y-%m-%d_%H.%M.%S` # no argument, prints available URIs if [ $# -eq 0 ]; then echo "No Arguments" exit 0 fi # case of wrong number of arguments if [ $# -ne 5 -a $# -ne 6 ]; then echo "Usage: rawcapture job-id user title copies options [file]" exit 1 fi # get output directory from device URI, and check write status SAVEDIR=${DEVICE_URI#rawcapture:} if [ ! -d "$SAVEDIR" -o ! -w "$SAVEDIR" ]; then echo "ERROR: directory $SAVEDIR not writable" exit 1 fi # generate output filename OUTPUTFILENAME= if [ "$3" = "" ]; then OUTPUTFILENAME="$SAVEDIR/unknown.cap" else if [ "$2" != "" ]; then OUTPUTFILENAME="$SAVEDIR/$2-$PRINTTIME.cap" else OUTPUTFILENAME="$SAVEDIR/$PRINTTIME.cap" fi fi # Copy File cp $6 $OUTPUTFILENAME # Make the file visible and writable by everyone. chmod 777 $OUTPUTFILENAME exit 0 Then when adding the printer via the CUPS web page I gave it a description of "RAW Capture" and a Connection of "rawcapture:/RAWcaps/" and the Driver: "raw" In the smb.conf I have the directory /RAWcaps shared [RAW_Captures] comment = RAW Captured Printouts path = /RAWcaps public = yes browseable = yes writable = yes printable = no guest ok = yes read only = no create mask = 0744 directory mask = 0755 On my Windows 7 Client machine I am able to do a: NET USE LPT1: \\<SAMBA-SERVER-NAME>\<PRINTER-SHARE-NAME> DIR > LPT1 and I get a text file with the contents of the directory. On a MS-DOS Client 3.0 machine, I do get a text file with some text but it is not complete. It also takes a long time.
Volker, is the comment #1 patch really the one you intended to attach here? It's upstream since 2007 ;-). Was there another patch that you had in mind?
Probably it's the wrong patch, you're right.