SMBRUN - how it works - was Re: Printing - Samba-VMS V2.0.6

John E. Malmberg wb8tyw at qsl.net
Thu Jun 20 03:03:36 GMT 2002


COLLOT Jean-Yves  <Jean-Yves.COLLOT at cofiroute.france> wrote:

 > This message is in MIME format. Since your mail reader does not
 > understand this format, some or all of this message may not be
 > legible.

Your mail client generated this message because it knew that it was 
sending in an incompatable format for the internet.

Please set your mailer software to plain text for mailing lists, 
newsgroups, and anyone that you do not explicitly know wants to receive 
HTML formatted e-mail.

Thanks
 >
 > ------_=_NextPart_001_01C212BB.ABAF6C60 Content-Type: text/plain
 >
 > I think that I have some answer, at last for Samba 2.0.3 (I haven't
 > got 2.0.6, but I think it works the same way).

Based on your description, it definitely does not.

 > The problem is that the "print" command is executed throught the
 > SMBRUN routine, which is supposed to spawn the
 > SAMBA_ROOT:[BIN]SMBRUN.COM procedure.
 >
 > For some reason, the default for the executed SMBRUN command is
 > /samba_root/bin/smbrun.com, which obviously can't work with DCL
 >
 > So, just try to add in your smb.conf file, in the [global] area, the
 > following line :
 >
 > smbrun = @SAMBA_ROOT:[BIN]SMBRUN.COM
 >
 > I hope it will work...

I am not sure that will work in any version of SAMBA for OpenVMS, unless 
that section of code has been heavily patched.

SAMBA 2.0.6 tests to see if the SMBRUN program exists before running it.

In order to make that code work for OpenVMS, a logical name must exist 
to map to an executable to pass the test.

That means that any special characters in the "smbrun =" line will cause 
  it to fail this test.

Then it tries to execute it as a command.  At this point a DCL symbol 
for a foreign command must exist in order for the command to work.

To prevent confusion from modules with different functions, I renamed 
the helper procedure to VMS_SMBRUN.COM and changed the symbol name for 
SAMBA 2.0.6.

When the VMS_SMBRUN procedure is spawned, it is spawned in the SYSTEM 
security context.  It must then convert commands and parameters from 
UNIX format to OpenVMS format, and if needed adjust the security context.

It also must do translation of the print job numbers.  SAMBA and SMB 
protocols only allocate either a byte or word for the print job number.
[I would have to look it up in the source to be sure]
The job number in OpenVMS is in a LONGWORD, and can contain any legal 
integer value.

So the routines that look up print jobs, must translate the OpenVMS job 
numbers to SMB job numbers.

To prevent problems with missidentifying print jobs, the print jobs are 
given special names on each print command.

-John
wb8tyw at qsl.network
Personal Opinion Only

 >
 > ------_=_NextPart_001_01C212BB.ABAF6C60 Content-Type: text/html
 > Content-Transfer-Encoding: quoted-printable

[HTML portion deleted]





More information about the samba-vms mailing list