summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2002-06-18 04:48:23 +0000
committerGerald Carter <jerry@samba.org>2002-06-18 04:48:23 +0000
commit254f1774a39d313e0baa774c9c2018e775dbb8d1 (patch)
tree953c2501b8717b0b3acca2bd9b9384a8497887b5
parent1e6e5b299c235b513095a76a4cd9fffc41e8fc9c (diff)
downloadsamba-254f1774a39d313e0baa774c9c2018e775dbb8d1.tar.gz
samba-254f1774a39d313e0baa774c9c2018e775dbb8d1.tar.xz
samba-254f1774a39d313e0baa774c9c2018e775dbb8d1.zip
more syncs with SAMBA_2_2
-rw-r--r--WHATSNEW.txt29
-rw-r--r--docs/docbook/manpages/nmbd.8.sgml15
-rw-r--r--docs/docbook/manpages/smb.conf.5.sgml27
-rw-r--r--docs/docbook/manpages/smbd.8.sgml12
-rw-r--r--docs/docbook/manpages/swat.8.sgml58
-rw-r--r--docs/htmldocs/nmbd.8.html21
-rw-r--r--docs/htmldocs/smb.conf.5.html57
-rw-r--r--docs/htmldocs/smbd.8.html17
-rw-r--r--docs/htmldocs/swat.8.html101
-rw-r--r--docs/manpages/nmbd.811
-rw-r--r--docs/manpages/smb.conf.521
-rw-r--r--docs/manpages/smbd.812
-rw-r--r--docs/manpages/swat.846
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-groupadd.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-groupdel.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-groupmod.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-groupshow.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-migrate-accounts.pl2
-rw-r--r--examples/LDAP/smbldap-tools/smbldap-migrate-groups.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-passwd.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-populate.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-useradd.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-userdel.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-usermod.pl2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap-usershow.pl2
-rw-r--r--examples/LDAP/smbldap-tools/smbldap_conf.pm2
-rwxr-xr-xexamples/LDAP/smbldap-tools/smbldap_tools.pm2
-rw-r--r--packaging/Debian/README33
-rw-r--r--packaging/Debian/debian/README.build-upstream40
-rw-r--r--packaging/Debian/debian/README.debian5
-rw-r--r--packaging/Debian/debian/changelog51
-rw-r--r--packaging/Debian/debian/config.cache10
-rw-r--r--packaging/Debian/debian/libpam-smbpass.docs1
-rw-r--r--packaging/Debian/debian/libpam-smbpass.examples5
-rw-r--r--packaging/Debian/debian/libsmbclient.postinst1
-rw-r--r--packaging/Debian/debian/patches/Makefile.in.patch7
-rw-r--r--packaging/Debian/debian/patches/configure.patch7
-rw-r--r--packaging/Debian/debian/patches/fhs.patch2289
-rw-r--r--packaging/Debian/debian/patches/loadparm.patch11
-rw-r--r--packaging/Debian/debian/patches/smbmount-mtab-flags.patch15
-rw-r--r--packaging/Debian/debian/patches/smbmount-nomtab.patch12
-rw-r--r--packaging/Debian/debian/patches/smbtar-exclude.patch12
-rwxr-xr-xpackaging/Debian/debian/rules4
-rw-r--r--packaging/Debian/debian/samba-common.postinst1
-rw-r--r--packaging/Debian/debian/samba-common.postrm1
-rw-r--r--packaging/Debian/debian/samba.config1
-rw-r--r--packaging/Debian/debian/samba.init60
-rw-r--r--packaging/Debian/debian/samba.postinst17
-rw-r--r--packaging/Debian/debian/samba.postrm1
-rw-r--r--packaging/Debian/debian/samba.preinst1
-rw-r--r--packaging/Debian/debian/samba.prerm11
-rw-r--r--packaging/Debian/debian/smb.conf1
-rw-r--r--packaging/Debian/debian/swat.postinst1
-rw-r--r--packaging/Debian/debian/swat.postrm1
-rw-r--r--packaging/Debian/debian/winbind.init1
-rw-r--r--source/include/proto.h1
-rw-r--r--source/param/loadparm.c4
-rw-r--r--source/passdb/pdb_ldap.c41
-rw-r--r--source/smbd/trans2.c53
59 files changed, 745 insertions, 2409 deletions
diff --git a/WHATSNEW.txt b/WHATSNEW.txt
index e17244a56cf..dbf4e0f8bb0 100644
--- a/WHATSNEW.txt
+++ b/WHATSNEW.txt
@@ -6,6 +6,17 @@ production Samba servers should be running for all current bug-fixes.
There have been several fixes and internal enhancements which include:
+* Improved support for
+
+ =========================================
+
+Older releases notes for 2.2.x distributions follow
+
+-----------------------------------------------------------------------------
+The release notes for 2.2.4 follow :
+
+There have been several fixes and internal enhancements which include:
+
* More/better SPOOLSS printing functionality for Windows
NT/2k/XP clients.
* Several fixes relating to serving PC database files such
@@ -132,24 +143,6 @@ See the cvs log for SAMBA_2_2 for more details
59) removed many compiler warnings
-
-Known Bugs
-----------
-
-* Under certain conditions when serving the MS Access 2000
- executable file and an Access database from a Samba share,
- it is possible to experience data corruption. This bug does not
- occur when the database is served from a Samba file share
- but the Access *.exe is stored on the client's local file system.
- The exact reason for this bug is unknown at this time.
-
- =========================================
-
-
-
-
-Older release notes for Samba 2.2.x follow.
-
-----------------------------------------------------------------------------
The release notes for 2.2.3a follow :
diff --git a/docs/docbook/manpages/nmbd.8.sgml b/docs/docbook/manpages/nmbd.8.sgml
index d5c89064e74..c9ddc89bcbb 100644
--- a/docs/docbook/manpages/nmbd.8.sgml
+++ b/docs/docbook/manpages/nmbd.8.sgml
@@ -314,6 +314,21 @@
at a normally low log level.</para>
</refsect1>
+<refsect1>
+ <title>TROUBLESHOOTING</title>
+
+ <para>
+ One of the common causes of difficulty when installing Samba and SWAT
+ is the existsnece of some type of firewall or port filtering software
+ on the Samba server. Make sure that the appropriate ports
+ outlined in this man page are available on the server and are not currently
+ being blocked by some type of security software such as iptables or
+ "port sentry". For more troubleshooting information, refer to the additional
+ documentation included in the Samba distribution.
+ </para>
+</refsect1>
+
+
<refsect1>
<title>VERSION</title>
diff --git a/docs/docbook/manpages/smb.conf.5.sgml b/docs/docbook/manpages/smb.conf.5.sgml
index 696bdf3b343..1f54aea30c4 100644
--- a/docs/docbook/manpages/smb.conf.5.sgml
+++ b/docs/docbook/manpages/smb.conf.5.sgml
@@ -809,6 +809,7 @@
<listitem><para><link linkend="ALLOWHOSTS"><parameter>allow hosts</parameter></link></para></listitem>
<listitem><para><link linkend="AVAILABLE"><parameter>available</parameter></link></para></listitem>
<listitem><para><link linkend="BLOCKINGLOCKS"><parameter>blocking locks</parameter></link></para></listitem>
+ <listitem><para><link linkend="BLOCKSIZE"><parameter>block size</parameter></link></para></listitem>
<listitem><para><link linkend="BROWSABLE"><parameter>browsable</parameter></link></para></listitem>
<listitem><para><link linkend="BROWSEABLE"><parameter>browseable</parameter></link></para></listitem>
<listitem><para><link linkend="CASESENSITIVE"><parameter>case sensitive</parameter></link></para></listitem>
@@ -1290,6 +1291,32 @@
<varlistentry>
+ <term><anchor id="BLOCKSIZE">block size (S)</term>
+ <listitem><para>This parameter controls the behavior of <ulink
+ url="smbd.8.html">smbd(8)</ulink> when reporting disk free sizes.
+ By default, this reports a disk block size of 1024 bytes.</para>
+
+ <para>Changing this parameter may have some effect on the
+ efficiency of client writes, this is not yet confirmed. This
+ parameter was added to allow advanced administrators to change
+ it (usually to a higher value) and test the effect it has on
+ client write performance without re-compiling the code. As this
+ is an experimental option it may be removed in a future release.
+ </para>
+
+ <para>Changing this option does not change the disk free reporting
+ size, just the block size unit reported to the client.</para>
+
+ <para>Default: <command>block size = 1024</command></para>
+ <para>Example: <command>block size = 65536</command></para>
+
+ </listitem>
+ </varlistentry>
+
+
+
+
+ <varlistentry>
<term><anchor id="BLOCKINGLOCKS">blocking locks (S)</term>
<listitem><para>This parameter controls the behavior of <ulink
url="smbd.8.html">smbd(8)</ulink> when given a request by a client
diff --git a/docs/docbook/manpages/smbd.8.sgml b/docs/docbook/manpages/smbd.8.sgml
index f52da46ed1f..2afc86a6c83 100644
--- a/docs/docbook/manpages/smbd.8.sgml
+++ b/docs/docbook/manpages/smbd.8.sgml
@@ -338,7 +338,17 @@
</refsect1>
<refsect1>
- <title>DIAGNOSTICS</title>
+ <title>TROUBLESHOOTING</title>
+
+ <para>
+ One of the common causes of difficulty when installing Samba and SWAT
+ is the existsnece of some type of firewall or port filtering software
+ on the Samba server. Make sure that the appropriate ports
+ outlined in this man page are available on the server and are not currently
+ being blocked by some type of security software such as iptables or
+ "port sentry". For more troubleshooting information, refer to the additional
+ documentation included in the Samba distribution.
+ </para>
<para>Most diagnostics issued by the server are logged
in a specified log file. The log file name is specified
diff --git a/docs/docbook/manpages/swat.8.sgml b/docs/docbook/manpages/swat.8.sgml
index dc6989d5663..b67f53777dd 100644
--- a/docs/docbook/manpages/swat.8.sgml
+++ b/docs/docbook/manpages/swat.8.sgml
@@ -120,6 +120,41 @@
</refsect2>
+ <refsect2>
+ <title>Xinetd Installation</title>
+
+ <para>Newer Linux systems ship with a more secure implementation
+ of the inetd meta-daemon. The <command>xinetd</command> daemon
+ can read configuration inf9ormation from a single file (i.e.
+ <filename>/etc/xinetd.conf</filename>) or from a collection
+ of service control files in the <filename>xinetd.d/</filename> directory.
+ These directions assume the latter configuration.
+ </para>
+
+ <para>
+ The following file should be created as <filename>/etc/xientd.d/swat</filename>.
+ It is then be neccessary cause the meta-daemon to reload its configuration files.
+ Refer to the xinetd man page for details on how to accomplish this.
+ </para>
+
+<para><programlisting>
+## /etc/xinetd.d/swat
+service swat
+{
+ port = 901
+ socket_type = stream
+ wait = no
+ only_from = localhost
+ user = root
+ server = /usr/local/samba/bin/swat
+ log_on_failure += USERID
+ disable = No
+}
+</programlisting></para>
+
+ </refsect2>
+
+
<refsect2>
<title>Launching</title>
@@ -131,6 +166,21 @@
connection open to password sniffing as passwords will be sent
in the clear over the wire. </para>
</refsect2>
+
+</refsect1>
+
+<refsect1>
+ <title>TROUBLESHOOTING</title>
+
+ <para>
+ One of the common causes of difficulty when installing Samba and SWAT
+ is the existsnece of some type of firewall or port filtering software
+ on the Samba server. Make sure that the appropriate ports
+ outlined in this man page are available on the server and are not currently
+ being blocked by some type of security software such as iptables or
+ "port sentry". For more troubleshooting information, refer to the additional
+ documentation included in the Samba distribution.
+ </para>
</refsect1>
<refsect1>
@@ -144,6 +194,12 @@
</varlistentry>
<varlistentry>
+ <term><filename>/etc/xinetd.d/swat</filename></term>
+ <listitem><para>This file must contain suitable startup
+ information for the <command>xinetd</command> meta-daemon.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><filename>/etc/services</filename></term>
<listitem><para>This file must contain a mapping of service name
(e.g., swat) to service port (e.g., 901) and protocol type
@@ -185,7 +241,7 @@
<title>SEE ALSO</title>
<para><command>inetd(5)</command>,
<ulink url="smbd.8.html"><command>smbd(8)</command></ulink>,
- <ulink url="smb.conf.5.html">smb.conf(5)</ulink>
+ <ulink url="smb.conf.5.html">smb.conf(5)</ulink>, <command>xinetd(8)</command>
</para>
</refsect1>
diff --git a/docs/htmldocs/nmbd.8.html b/docs/htmldocs/nmbd.8.html
index 76fd5de6ba2..828ebb13a42 100644
--- a/docs/htmldocs/nmbd.8.html
+++ b/docs/htmldocs/nmbd.8.html
@@ -601,6 +601,23 @@ CLASS="REFSECT1"
NAME="AEN194"
></A
><H2
+>TROUBLESHOOTING</H2
+><P
+> One of the common causes of difficulty when installing Samba and SWAT
+ is the existsnece of some type of firewall or port filtering software
+ on the Samba server. Make sure that the appropriate ports
+ outlined in this man page are available on the server and are not currently
+ being blocked by some type of security software such as iptables or
+ "port sentry". For more troubleshooting information, refer to the additional
+ documentation included in the Samba distribution.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN197"
+></A
+><H2
>VERSION</H2
><P
>This man page is correct for version 2.2 of
@@ -609,7 +626,7 @@ NAME="AEN194"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN197"
+NAME="AEN200"
></A
><H2
>SEE ALSO</H2
@@ -674,7 +691,7 @@ TARGET="_top"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN214"
+NAME="AEN217"
></A
><H2
>AUTHOR</H2
diff --git a/docs/htmldocs/smb.conf.5.html b/docs/htmldocs/smb.conf.5.html
index 2d7358330f4..83fd2a410a1 100644
--- a/docs/htmldocs/smb.conf.5.html
+++ b/docs/htmldocs/smb.conf.5.html
@@ -3129,6 +3129,18 @@ CLASS="PARAMETER"
><LI
><P
><A
+HREF="#BLOCKSIZE"
+><TT
+CLASS="PARAMETER"
+><I
+>block size</I
+></TT
+></A
+></P
+></LI
+><LI
+><P
+><A
HREF="#BROWSABLE"
><TT
CLASS="PARAMETER"
@@ -4559,7 +4571,7 @@ CLASS="PARAMETER"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1488"
+NAME="AEN1492"
></A
><H2
>EXPLANATION OF EACH PARAMETER</H2
@@ -5423,6 +5435,41 @@ CLASS="COMMAND"
></DD
><DT
><A
+NAME="BLOCKSIZE"
+></A
+>block size (S)</DT
+><DD
+><P
+>This parameter controls the behavior of <A
+HREF="smbd.8.html"
+TARGET="_top"
+>smbd(8)</A
+> when reporting disk free sizes.
+ By default, this reports a disk block size of 1024 bytes.</P
+><P
+>Changing this parameter may have some effect on the
+ efficiency of client writes, this is not yet confirmed. This
+ parameter was added to allow advanced administrators to change
+ it (usually to a higher value) and test the effect it has on
+ client write performance without re-compiling the code. As this
+ is an experimental option it may be removed in a future release.
+ </P
+><P
+>Changing this option does not change the disk free reporting
+ size, just the block size unit reported to the client.</P
+><P
+>Default: <B
+CLASS="COMMAND"
+>block size = 1024</B
+></P
+><P
+>Example: <B
+CLASS="COMMAND"
+>block size = 65536</B
+></P
+></DD
+><DT
+><A
NAME="BLOCKINGLOCKS"
></A
>blocking locks (S)</DT
@@ -19590,7 +19637,7 @@ CLASS="COMMAND"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN6192"
+NAME="AEN6208"
></A
><H2
>WARNINGS</H2
@@ -19620,7 +19667,7 @@ TARGET="_top"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN6198"
+NAME="AEN6214"
></A
><H2
>VERSION</H2
@@ -19631,7 +19678,7 @@ NAME="AEN6198"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN6201"
+NAME="AEN6217"
></A
><H2
>SEE ALSO</H2
@@ -19710,7 +19757,7 @@ CLASS="COMMAND"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN6221"
+NAME="AEN6237"
></A
><H2
>AUTHOR</H2
diff --git a/docs/htmldocs/smbd.8.html b/docs/htmldocs/smbd.8.html
index 368b3d7925e..e1ea92b986a 100644
--- a/docs/htmldocs/smbd.8.html
+++ b/docs/htmldocs/smbd.8.html
@@ -575,7 +575,16 @@ CLASS="REFSECT1"
NAME="AEN180"
></A
><H2
->DIAGNOSTICS</H2
+>TROUBLESHOOTING</H2
+><P
+> One of the common causes of difficulty when installing Samba and SWAT
+ is the existsnece of some type of firewall or port filtering software
+ on the Samba server. Make sure that the appropriate ports
+ outlined in this man page are available on the server and are not currently
+ being blocked by some type of security software such as iptables or
+ "port sentry". For more troubleshooting information, refer to the additional
+ documentation included in the Samba distribution.
+ </P
><P
>Most diagnostics issued by the server are logged
in a specified log file. The log file name is specified
@@ -595,7 +604,7 @@ NAME="AEN180"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN185"
+NAME="AEN186"
></A
><H2
>SIGNALS</H2
@@ -660,7 +669,7 @@ CLASS="COMMAND"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN202"
+NAME="AEN203"
></A
><H2
>SEE ALSO</H2
@@ -726,7 +735,7 @@ TARGET="_top"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN219"
+NAME="AEN220"
></A
><H2
>AUTHOR</H2
diff --git a/docs/htmldocs/swat.8.html b/docs/htmldocs/swat.8.html
index 386fe5bc7af..374a1423463 100644
--- a/docs/htmldocs/swat.8.html
+++ b/docs/htmldocs/swat.8.html
@@ -252,6 +252,64 @@ CLASS="REFSECT2"
NAME="AEN78"
></A
><H3
+>Xinetd Installation</H3
+><P
+>Newer Linux systems ship with a more secure implementation
+ of the inetd meta-daemon. The <B
+CLASS="COMMAND"
+>xinetd</B
+> daemon
+ can read configuration inf9ormation from a single file (i.e.
+ <TT
+CLASS="FILENAME"
+>/etc/xinetd.conf</TT
+>) or from a collection
+ of service control files in the <TT
+CLASS="FILENAME"
+>xinetd.d/</TT
+> directory.
+ These directions assume the latter configuration.
+ </P
+><P
+> The following file should be created as <TT
+CLASS="FILENAME"
+>/etc/xientd.d/swat</TT
+>.
+ It is then be neccessary cause the meta-daemon to reload its configuration files.
+ Refer to the xinetd man page for details on how to accomplish this.
+ </P
+><P
+><TABLE
+BORDER="0"
+BGCOLOR="#E0E0E0"
+WIDTH="100%"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>## /etc/xinetd.d/swat
+service swat
+{
+ port = 901
+ socket_type = stream
+ wait = no
+ only_from = localhost
+ user = root
+ server = /usr/local/samba/bin/swat
+ log_on_failure += USERID
+ disable = No
+}</PRE
+></TD
+></TR
+></TABLE
+></P
+></DIV
+><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN88"
+></A
+><H3
>Launching</H3
><P
>To launch SWAT just run your favorite web browser and
@@ -266,7 +324,24 @@ NAME="AEN78"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN82"
+NAME="AEN92"
+></A
+><H2
+>TROUBLESHOOTING</H2
+><P
+> One of the common causes of difficulty when installing Samba and SWAT
+ is the existsnece of some type of firewall or port filtering software
+ on the Samba server. Make sure that the appropriate ports
+ outlined in this man page are available on the server and are not currently
+ being blocked by some type of security software such as iptables or
+ "port sentry". For more troubleshooting information, refer to the additional
+ documentation included in the Samba distribution.
+ </P
+></DIV
+><DIV
+CLASS="REFSECT1"
+><A
+NAME="AEN95"
></A
><H2
>FILES</H2
@@ -288,6 +363,19 @@ CLASS="FILENAME"
><DT
><TT
CLASS="FILENAME"
+>/etc/xinetd.d/swat</TT
+></DT
+><DD
+><P
+>This file must contain suitable startup
+ information for the <B
+CLASS="COMMAND"
+>xinetd</B
+> meta-daemon.</P
+></DD
+><DT
+><TT
+CLASS="FILENAME"
>/etc/services</TT
></DT
><DD
@@ -324,7 +412,7 @@ CLASS="FILENAME"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN103"
+NAME="AEN122"
></A
><H2
>WARNINGS</H2
@@ -356,7 +444,7 @@ CLASS="FILENAME"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN111"
+NAME="AEN130"
></A
><H2
>VERSION</H2
@@ -367,7 +455,7 @@ NAME="AEN111"
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN114"
+NAME="AEN133"
></A
><H2
>SEE ALSO</H2
@@ -388,13 +476,16 @@ CLASS="COMMAND"
HREF="smb.conf.5.html"
TARGET="_top"
>smb.conf(5)</A
+>, <B
+CLASS="COMMAND"
+>xinetd(8)</B
>
</P
></DIV
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN121"
+NAME="AEN141"
></A
><H2
>AUTHOR</H2
diff --git a/docs/manpages/nmbd.8 b/docs/manpages/nmbd.8
index 546f0d5066c..b9992e47f8a 100644
--- a/docs/manpages/nmbd.8
+++ b/docs/manpages/nmbd.8
@@ -3,7 +3,7 @@
.\" <http://shell.ipoline.com/~elmert/hacks/docbook2X/>
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng <steve@ggi-project.org>.
-.TH "NMBD" "8" "02 May 2002" "" ""
+.TH "NMBD" "8" "17 June 2002" "" ""
.SH NAME
nmbd \- NetBIOS name server to provide NetBIOS over IP naming services to clients
.SH SYNOPSIS
@@ -222,6 +222,15 @@ The debug log level of nmbd may be raised or lowered using
(SIGUSR[1|2] signals are no longer used in Samba 2.2). This is
to allow transient problems to be diagnosed, whilst still running
at a normally low log level.
+.SH "TROUBLESHOOTING"
+.PP
+One of the common causes of difficulty when installing Samba and SWAT
+is the existsnece of some type of firewall or port filtering software
+on the Samba server. Make sure that the appropriate ports
+outlined in this man page are available on the server and are not currently
+being blocked by some type of security software such as iptables or
+"port sentry". For more troubleshooting information, refer to the additional
+documentation included in the Samba distribution.
.SH "VERSION"
.PP
This man page is correct for version 2.2 of
diff --git a/docs/manpages/smb.conf.5 b/docs/manpages/smb.conf.5
index 7aff5f60814..647d16aec30 100644
--- a/docs/manpages/smb.conf.5
+++ b/docs/manpages/smb.conf.5
@@ -1081,6 +1081,9 @@ each parameter for details. Note that some are synonyms.
\fIblocking locks\fR
.TP 0.2i
\(bu
+\fIblock size\fR
+.TP 0.2i
+\(bu
\fIbrowsable\fR
.TP 0.2i
\(bu
@@ -1723,6 +1726,24 @@ and \fBnmbd\fR.
Default: \fBbind interfaces only = no\fR
.TP
+\fBblock size (S)\fR
+This parameter controls the behavior of smbd(8)when reporting disk free sizes.
+By default, this reports a disk block size of 1024 bytes.
+
+Changing this parameter may have some effect on the
+efficiency of client writes, this is not yet confirmed. This
+parameter was added to allow advanced administrators to change
+it (usually to a higher value) and test the effect it has on
+client write performance without re-compiling the code. As this
+is an experimental option it may be removed in a future release.
+
+Changing this option does not change the disk free reporting
+size, just the block size unit reported to the client.
+
+Default: \fBblock size = 1024\fR
+
+Example: \fBblock size = 65536\fR
+.TP
\fBblocking locks (S)\fR
This parameter controls the behavior of smbd(8)when given a request by a client
to obtain a byte range lock on a region of an open file, and the
diff --git a/docs/manpages/smbd.8 b/docs/manpages/smbd.8
index 2b057641171..37bb85bccfe 100644
--- a/docs/manpages/smbd.8
+++ b/docs/manpages/smbd.8
@@ -3,7 +3,7 @@
.\" <http://shell.ipoline.com/~elmert/hacks/docbook2X/>
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng <steve@ggi-project.org>.
-.TH "SMBD" "8" "02 May 2002" "" ""
+.TH "SMBD" "8" "17 June 2002" "" ""
.SH NAME
smbd \- server to provide SMB/CIFS services to clients
.SH SYNOPSIS
@@ -241,7 +241,15 @@ added for session support.
.PP
This man page is correct for version 2.2 of
the Samba suite.
-.SH "DIAGNOSTICS"
+.SH "TROUBLESHOOTING"
+.PP
+One of the common causes of difficulty when installing Samba and SWAT
+is the existsnece of some type of firewall or port filtering software
+on the Samba server. Make sure that the appropriate ports
+outlined in this man page are available on the server and are not currently
+being blocked by some type of security software such as iptables or
+"port sentry". For more troubleshooting information, refer to the additional
+documentation included in the Samba distribution.
.PP
Most diagnostics issued by the server are logged
in a specified log file. The log file name is specified
diff --git a/docs/manpages/swat.8 b/docs/manpages/swat.8
index 1df01c050de..27a15d6861b 100644
--- a/docs/manpages/swat.8
+++ b/docs/manpages/swat.8
@@ -3,7 +3,7 @@
.\" <http://shell.ipoline.com/~elmert/hacks/docbook2X/>
.\" Please send any bug reports, improvements, comments, patches,
.\" etc. to Steve Cheng <steve@ggi-project.org>.
-.TH "SWAT" "8" "02 May 2002" "" ""
+.TH "SWAT" "8" "17 June 2002" "" ""
.SH NAME
swat \- Samba Web Administration Tool
.SH SYNOPSIS
@@ -84,6 +84,35 @@ One you have edited \fI/etc/services\fR
and \fI/etc/inetd.conf\fR you need to send a
HUP signal to inetd. To do this use \fBkill -1 PID
\fRwhere PID is the process ID of the inetd daemon.
+.SS "XINETD INSTALLATION"
+.PP
+Newer Linux systems ship with a more secure implementation
+of the inetd meta-daemon. The \fBxinetd\fR daemon
+can read configuration inf9ormation from a single file (i.e.
+\fI/etc/xinetd.conf\fR) or from a collection
+of service control files in the \fIxinetd.d/\fR directory.
+These directions assume the latter configuration.
+.PP
+The following file should be created as \fI/etc/xientd.d/swat\fR.
+It is then be neccessary cause the meta-daemon to reload its configuration files.
+Refer to the xinetd man page for details on how to accomplish this.
+.PP
+.sp
+.nf
+## /etc/xinetd.d/swat
+service swat
+{
+ port = 901
+ socket_type = stream
+ wait = no
+ only_from = localhost
+ user = root
+ server = /usr/local/samba/bin/swat
+ log_on_failure += USERID
+ disable = No
+}
+.sp
+.fi
.SS "LAUNCHING"
.PP
To launch SWAT just run your favorite web browser and
@@ -93,12 +122,25 @@ Note that you can attach to SWAT from any IP connected
machine but connecting from a remote machine leaves your
connection open to password sniffing as passwords will be sent
in the clear over the wire.
+.SH "TROUBLESHOOTING"
+.PP
+One of the common causes of difficulty when installing Samba and SWAT
+is the existsnece of some type of firewall or port filtering software
+on the Samba server. Make sure that the appropriate ports
+outlined in this man page are available on the server and are not currently
+being blocked by some type of security software such as iptables or
+"port sentry". For more troubleshooting information, refer to the additional
+documentation included in the Samba distribution.
.SH "FILES"
.TP
\fB\fI/etc/inetd.conf\fB\fR
This file must contain suitable startup
information for the meta-daemon.
.TP
+\fB\fI/etc/xinetd.d/swat\fB\fR
+This file must contain suitable startup
+information for the \fBxinetd\fR meta-daemon.
+.TP
\fB\fI/etc/services\fB\fR
This file must contain a mapping of service name
(e.g., swat) to service port (e.g., 901) and protocol type
@@ -124,7 +166,7 @@ the Samba suite.
.PP
\fBinetd(5)\fR,
\fBsmbd(8)\fR,
-smb.conf(5)
+smb.conf(5), \fBxinetd(8)\fR
.SH "AUTHOR"
.PP
The original Samba software and related utilities
diff --git a/examples/LDAP/smbldap-tools/smbldap-groupadd.pl b/examples/LDAP/smbldap-tools/smbldap-groupadd.pl
index 6ced1eed2d0..ee804b34d3b 100755
--- a/examples/LDAP/smbldap-tools/smbldap-groupadd.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-groupadd.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-groupadd.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-groupdel.pl b/examples/LDAP/smbldap-tools/smbldap-groupdel.pl
index c5b64c3d4ef..3d072585b21 100755
--- a/examples/LDAP/smbldap-tools/smbldap-groupdel.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-groupdel.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-groupdel.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-groupmod.pl b/examples/LDAP/smbldap-tools/smbldap-groupmod.pl
index a35e7ea898d..f9b42f95b4c 100755
--- a/examples/LDAP/smbldap-tools/smbldap-groupmod.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-groupmod.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-groupmod.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-groupshow.pl b/examples/LDAP/smbldap-tools/smbldap-groupshow.pl
index 2426b85fa83..bc5b4d98fbd 100755
--- a/examples/LDAP/smbldap-tools/smbldap-groupshow.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-groupshow.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-groupshow.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-migrate-accounts.pl b/examples/LDAP/smbldap-tools/smbldap-migrate-accounts.pl
index dd66954c41b..b1780dec619 100755
--- a/examples/LDAP/smbldap-tools/smbldap-migrate-accounts.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-migrate-accounts.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-migrate-accounts.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-migrate-groups.pl b/examples/LDAP/smbldap-tools/smbldap-migrate-groups.pl
index 8be0c1b72be..0d3dd07d505 100644
--- a/examples/LDAP/smbldap-tools/smbldap-migrate-groups.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-migrate-groups.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-migrate-groups.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-passwd.pl b/examples/LDAP/smbldap-tools/smbldap-passwd.pl
index 325c7718328..ef7687a49e1 100755
--- a/examples/LDAP/smbldap-tools/smbldap-passwd.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-passwd.pl
@@ -1,8 +1,6 @@
#!/usr/bin/perl
# LDAP to unix password sync script for samba
-# $Id: smbldap-passwd.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-populate.pl b/examples/LDAP/smbldap-tools/smbldap-populate.pl
index 11bc599d865..5be9ca4262a 100755
--- a/examples/LDAP/smbldap-tools/smbldap-populate.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-populate.pl
@@ -2,8 +2,6 @@
# Populate a LDAP base for Samba-LDAP usage
#
-# $Id: smbldap-populate.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-useradd.pl b/examples/LDAP/smbldap-tools/smbldap-useradd.pl
index 9d2ca90bd29..508487af937 100755
--- a/examples/LDAP/smbldap-tools/smbldap-useradd.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-useradd.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-useradd.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-userdel.pl b/examples/LDAP/smbldap-tools/smbldap-userdel.pl
index e2ad403b6d5..54309fa5dbf 100755
--- a/examples/LDAP/smbldap-tools/smbldap-userdel.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-userdel.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-userdel.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-usermod.pl b/examples/LDAP/smbldap-tools/smbldap-usermod.pl
index dd5fcab74fd..016d7b54228 100755
--- a/examples/LDAP/smbldap-tools/smbldap-usermod.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-usermod.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-usermod.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap-usershow.pl b/examples/LDAP/smbldap-tools/smbldap-usershow.pl
index 41391a91969..b05f0876203 100755
--- a/examples/LDAP/smbldap-tools/smbldap-usershow.pl
+++ b/examples/LDAP/smbldap-tools/smbldap-usershow.pl
@@ -1,7 +1,5 @@
#!/usr/bin/perl
-# $Id: smbldap-usershow.pl,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/examples/LDAP/smbldap-tools/smbldap_conf.pm b/examples/LDAP/smbldap-tools/smbldap_conf.pm
index 158f2c1460e..9a5a116b98c 100644
--- a/examples/LDAP/smbldap-tools/smbldap_conf.pm
+++ b/examples/LDAP/smbldap-tools/smbldap_conf.pm
@@ -2,8 +2,6 @@
use strict;
package smbldap_conf;
-# $Id: smbldap_conf.pm,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# smbldap-tools.conf : Q & D configuration file for smbldap-tools
# This code was developped by IDEALX (http://IDEALX.org/) and
diff --git a/examples/LDAP/smbldap-tools/smbldap_tools.pm b/examples/LDAP/smbldap-tools/smbldap_tools.pm
index 1f0d4d1c43b..0a451210f31 100755
--- a/examples/LDAP/smbldap-tools/smbldap_tools.pm
+++ b/examples/LDAP/smbldap-tools/smbldap_tools.pm
@@ -3,8 +3,6 @@ use strict;
package smbldap_tools;
use smbldap_conf;
-# $Id: smbldap_tools.pm,v 1.1.4.1 2002/06/17 18:35:08 jerry Exp $
-#
# This code was developped by IDEALX (http://IDEALX.org/) and
# contributors (their names can be found in the CONTRIBUTORS file).
#
diff --git a/packaging/Debian/README b/packaging/Debian/README
index 574dbd22973..6a262fb0b1f 100644
--- a/packaging/Debian/README
+++ b/packaging/Debian/README
@@ -1,6 +1,16 @@
Building Samba Packages for Debian GNU/Linux
--------------------------------------------
+Building Debian packages is not as hard as some people might think. The
+following instructions will allow you to build your own Samba Debian
+packages. These instructions, and the files in packaging/Debian/, are
+current as of Samba 2.2.5, and should allow you to build Debian packages
+for Debian Potato (2.2), Debian Woody (3.0), and Debian unstable as of
+the date Samba 2.2.5 was released.
+
+Instructions
+------------
+
If you want to build Samba packages for Debian and you just want to use
upstream sources, i.e. you don't want to wait for us to put official
packages out, or you want packages for a Debian version for which we
@@ -8,16 +18,23 @@ don't provide deb's, or you don't want to use official packages, or
you want to add --this-cool-switch to configure, or whatever, follow
these instructions:
-0) Make sure you have the following packages installed:
+0) Make sure you have the following packages installed (in addition
+to the normal Debian development packages -- dpkg-dev, libc6-dev,
+devscripts, etc.):
+
debhelper
libpam0g-dev
libreadline4-dev
libcupsys2-dev
- + the minimum Debian development stuff (dpkg-dev, libc6-dev, etc.)
- Note: the libcupsys2-dev is not available in Debian Potato. That's
- fine; the configure script won't detect CUPS support and the
- resulting binaries won't support CUPS.
-1) cd samba[-<version>]
+ autoconf
+
+ Notes about the packages required to build Samba Debian packages:
+
+ * The libcupsys2-dev is not available in Debian Potato (Debian 2.2).
+ That's fine; the configure script won't detect CUPS support and the
+ resulting binaries won't support CUPS.
+
+1) cd samba[-<version>]. For example, "cd samba-2.2.5".
2) cp -a packaging/Debian/debian/ debian
It's important that you copy instead of symlink because the build
tools in Potato have a problem that prevents the build to work with
@@ -34,12 +51,12 @@ these instructions:
If you have problems you might try building as root.
5) That's it. Your new packages should be in ../. Install with dpkg.
-Please e-mail samba@packages.debian.org with comments, question or
+Please e-mail samba@packages.debian.org with comments, questions or
suggestions. Please talk to us and not to the Samba Team. They have
better things to do and know nothing about the Debian packaging system.
Eloy A. Paris <peloy@debian.org>
Steve Langasek <vorlon@debian.org>
-$Id: README,v 1.1.4.3 2002/05/02 20:20:28 jerry Exp $
+$Id: README,v 1.1.4.6 2002/06/18 04:48:18 jerry Exp $
diff --git a/packaging/Debian/debian/README.build-upstream b/packaging/Debian/debian/README.build-upstream
index efd7f01ade1..f555f52af5b 100644
--- a/packaging/Debian/debian/README.build-upstream
+++ b/packaging/Debian/debian/README.build-upstream
@@ -1,6 +1,16 @@
Building Samba Packages for Debian GNU/Linux
--------------------------------------------
+Building Debian packages is not as hard as some people might think. The
+following instructions will allow you to build your own Samba Debian
+packages. These instructions, and the files in packaging/Debian/, are
+current as of Samba 2.2.5, and should allow you to build Debian packages
+for Debian Potato (2.2), Debian Woody (3.0), and Debian unstable as of
+the date Samba 2.2.5 was released.
+
+Instructions
+------------
+
If you want to build Samba packages for Debian and you just want to use
upstream sources, i.e. you don't want to wait for us to put official
packages out, or you want packages for a Debian version for which we
@@ -8,36 +18,44 @@ don't provide deb's, or you don't want to use official packages, or
you want to add --this-cool-switch to configure, or whatever, follow
these instructions:
-0) Make sure you have the following packages installed:
+0) Make sure you have the following packages installed (in addition
+to the normal Debian development packages -- dpkg-dev, libc6-dev,
+devscripts, etc.):
+
debhelper
libpam0g-dev
libreadline4-dev
libcupsys2-dev
- + the minimum Debian development stuff (dpkg-dev, libc6-dev, etc.)
- Note: the libcupsys2-dev is not available in Debian Potato. That's
- fine; the configure script won't detect CUPS support and the
- resulting binaries won't support CUPS.
-1) cd samba[-<version>]
+ autoconf
+
+ Notes about the packages required to build Samba Debian packages:
+
+ * The libcupsys2-dev is not available in Debian Potato (Debian 2.2).
+ That's fine; the configure script won't detect CUPS support and the
+ resulting binaries won't support CUPS.
+
+1) cd samba[-<version>]. For example, "cd samba-2.2.5".
2) cp -a packaging/Debian/debian/ debian
It's important that you copy instead of symlink because the build
tools in Potato have a problem that prevents the build to work with
a symlink.
-3) dch -i
+3) dch -i (this is completely optional - only do it if you understand
+ Debian version numbers! Don't complain later if you can't upgrade
+ to official versions of the Samba packages for Debian.)
- Edit the changelog and make sure the version is right. For example,
- for Samba 2.2.3, the version number should be 2.2.3-0.1 (use
- a number less than 1 like 0.1, 0.2, etc. so there is no conflict
+ for Samba 2.2.4, the version number should something like 2.2.4-0.1
+ (use a number less than 1 like 0.1, 0.2, etc. so there is no conflict
with future upgrades to the official Debian packages.)
4) Run 'debian/rules binary'.
- It is better that you prefix the above command with 'fakeroot'.
If you have problems you might try building as root.
5) That's it. Your new packages should be in ../. Install with dpkg.
-Please e-mail samba@packages.debian.org with comments, question or
+Please e-mail samba@packages.debian.org with comments, questions or
suggestions. Please talk to us and not to the Samba Team. They have
better things to do and know nothing about the Debian packaging system.
Eloy A. Paris <peloy@debian.org>
Steve Langasek <vorlon@debian.org>
-$Id: README.build-upstream,v 1.1.4.1 2002/05/02 20:20:28 jerry Exp $
diff --git a/packaging/Debian/debian/README.debian b/packaging/Debian/debian/README.debian
index 6abd8956308..4eae2ded6b0 100644
--- a/packaging/Debian/debian/README.debian
+++ b/packaging/Debian/debian/README.debian
@@ -91,12 +91,12 @@ Samba 2.2 has experimental LDAP code. However, the official Debian
packages have not been compiled with LDAP support for a good reason: if
LDAP support is compiled in then the other authentication methods (PAM,
smbpasswd, etc.) cannot be used, only LDAP will work. So, until LDAP
-cannot coexist peacefully with the other methods we will not provided
+can coexist peacefully with the other methods we will not provide
LDAP-enabled packages. The workaround is, of course, to build your own
packages. We can help with this if you don't know how to build packages.
We follow Samba development, so please do not file bug reports asking
-for LDAP, we will add support for it when it doesn't break other
+for LDAP; we will add support for it when it doesn't break other
things.
@@ -137,4 +137,3 @@ doesn't mean that it doesn't work for others. So again: think _twice_.
Eloy A. Paris <peloy@debian.org>
Steve Langasek <vorlon@debian.org>
-$Id: README.debian,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
diff --git a/packaging/Debian/debian/changelog b/packaging/Debian/debian/changelog
index 445f521f08c..9548b5933c7 100644
--- a/packaging/Debian/debian/changelog
+++ b/packaging/Debian/debian/changelog
@@ -1,10 +1,55 @@
-samba (2.2.4-0.1debian) unstable; urgency=low
+samba (2.2.5-0.1debian) unstable; urgency=low
* This is a locally-built version of Samba for Debian. Do not pester
the Samba Team with questions about Debian packaging. Contact the
Debian Samba maintainers <samba@packages.debian.org> instead.
- -- Debian User <somebody@somewhere.com> Thu, 2 May 2002 01:36:33 -0400
+ -- Debian User <somebody@somewhere.com> Mon, 17 Jun 2002 23:22:36 -0400
+
+samba (2.2.4+2.2.5-1) unstable; urgency=low
+
+ * New upstream release.
+ * Remove patches/parse_spoolss.patch, now included upstream.
+ * Fixed thinko WRT POSIX ACL support, which we "half-enabled" in
+ 2.2.4-1. We don't use POSIX ACL support ourselves, so we'd
+ appreciate reports from those using this feature so we can
+ be sure this works.
+ * Fix the filename-matching algorithm used for smbtar's 'exclude'
+ functionality. (closes: #131571)
+ * Look for secrets.tdb in /var/lib/samba, and handle in the postinst.
+ This is not really a config file, because users don't edit it.
+ (closes: #147429)
+ * Doxygen fix for libsmbclient.h, thanks to Tommi Komulainen
+ <Tommi.Komulainen@iki.fi> for the patch. (closes: #144847)
+
+ -- Eloy A. Paris <peloy@debian.org> Tue, 28 May 2002 11:33:51 -0400
+
+samba (2.2.4-1) unstable; urgency=low
+
+ * New upstream release (closes: #144713)
+ * Building with POSIX ACL support (closes: #137819)
+ * Include samples, exclude INSTALL from libpam-smbpass (closes: #145055)
+ * Compile with --with-automount, for NIS homedir support (closes: #123396)
+ * Add a proper 'flags' field to the mount entry we write to /etc/mtab;
+ fixes a display bug with mount (closes: #140397)
+ * Added logic to /etc/init.d/samba so a help message is printed out
+ when Samba is running from inetd _and_ we are not booting, i.e. the
+ user called the init script manually. Thanks to Francesco
+ Potorti <pot@gnu.org> for the suggestion on how to implement this.
+ (Closes: #139807, #140204)
+ * samba.postinst: added logic so we don't call /etc/init.d/samba if
+ we are running from inetd (this prevents the stupid help message
+ to be printed during package upgrades if we are running from inetd.)
+ * samba.prerm: idem.
+ * /etc/init.d/samba: delete stale PID files after nmbd and smbd are
+ stopped. This prevents start-stop-daemon from printing an ugly
+ error message when called from '/etc/init.d/samba stop'. I prefer
+ this than running start-stop-daemon with --oknodo because
+ start-stop-daemon might print other important error messages that with
+ --oknodo it would otherwise not print. (Closes: #102187, #109301)
+ * Patch from jerry@samba.org to fix parsing of spoolss structures.
+
+ -- Eloy A. Paris <peloy@debian.org> Thu, 23 May 2002 23:16:52 -0400
samba (2.2.3a-7) unstable; urgency=medium
@@ -53,7 +98,7 @@ samba (2.2.3a-6) unstable; urgency=low
* Bring our shipped smb.conf closer in line with the upstream
defaults: don't twiddle the send/recv buffer sizes, since the Linux
kernel already provides a much better default setting
- (closes: #80966, #80934, #137415, #133477)
+ (closes: #80966, #80934, #137415, #133477)
* Added libnss_wins.so to the winbind package (closes: #137201)
* Updates to README.debian.
diff --git a/packaging/Debian/debian/config.cache b/packaging/Debian/debian/config.cache
index c0a70a5b19b..8872a27b761 100644
--- a/packaging/Debian/debian/config.cache
+++ b/packaging/Debian/debian/config.cache
@@ -46,12 +46,6 @@ samba_cv_have_setresgid=${samba_cv_have_setresgid=yes}
samba_cv_USE_SETRESUID=${samba_cv_USE_SETRESUID=yes}
-# POSIX ACL support not present in Linux 2.2; not allowed in the
-# Debian packages, even if present on the build machine.
-
-ac_cv_header_sys_acl_h=${ac_cv_header_sys_acl_h=no}
-
-
# Various basic libc/compiler stuff that it's blindingly obvious that
# Linux supports (now watch me get bitten for saying that)
@@ -130,8 +124,6 @@ samba_cv_HAVE_FCNTL_LOCK=${samba_cv_HAVE_FCNTL_LOCK=yes}
# to support transparent userland VFS. We might as well preempt
# any checks for shadowed symbols that are only useful for smbwrapper.
-ac_cv_func___acl=${ac_cv_func___acl=no}
-ac_cv_func__acl=${ac_cv_func__acl=no}
ac_cv_func___chdir=${ac_cv_func___chdir=no}
ac_cv_func__chdir=${ac_cv_func__chdir=no}
ac_cv_func___close=${ac_cv_func___close=no}
@@ -142,8 +134,6 @@ ac_cv_func___dup=${ac_cv_func___dup=no}
ac_cv_func__dup=${ac_cv_func__dup=no}
ac_cv_func___dup2=${ac_cv_func___dup2=no}
ac_cv_func__dup2=${ac_cv_func__dup2=no}
-ac_cv_func___facl=${ac_cv_func___facl=no}
-ac_cv_func__facl=${ac_cv_func__facl=no}
ac_cv_func___fchdir=${ac_cv_func___fchdir=no}
ac_cv_func__fchdir=${ac_cv_func__fchdir=no}
ac_cv_func___fcntl=${ac_cv_func___fcntl=no}
diff --git a/packaging/Debian/debian/libpam-smbpass.docs b/packaging/Debian/debian/libpam-smbpass.docs
index d84796d551b..7d4519542f5 100644
--- a/packaging/Debian/debian/libpam-smbpass.docs
+++ b/packaging/Debian/debian/libpam-smbpass.docs
@@ -1,4 +1,3 @@
source/pam_smbpass/CHANGELOG
source/pam_smbpass/README
-source/pam_smbpass/INSTALL
source/pam_smbpass/TODO
diff --git a/packaging/Debian/debian/libpam-smbpass.examples b/packaging/Debian/debian/libpam-smbpass.examples
new file mode 100644
index 00000000000..48d841b2c15
--- /dev/null
+++ b/packaging/Debian/debian/libpam-smbpass.examples
@@ -0,0 +1,5 @@
+source/pam_smbpass/samples/README
+source/pam_smbpass/samples/kdc-pdc
+source/pam_smbpass/samples/password-mature
+source/pam_smbpass/samples/password-migration
+source/pam_smbpass/samples/password-sync
diff --git a/packaging/Debian/debian/libsmbclient.postinst b/packaging/Debian/debian/libsmbclient.postinst
index 124e37a3c49..bd85266cdf9 100644
--- a/packaging/Debian/debian/libsmbclient.postinst
+++ b/packaging/Debian/debian/libsmbclient.postinst
@@ -2,7 +2,6 @@
#
# postinst script for libsmbclient
#
-# $Id: libsmbclient.postinst,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
if [ "$1" = "configure" ]; then
diff --git a/packaging/Debian/debian/patches/Makefile.in.patch b/packaging/Debian/debian/patches/Makefile.in.patch
index d4e062c766e..bdc23066a28 100644
--- a/packaging/Debian/debian/patches/Makefile.in.patch
+++ b/packaging/Debian/debian/patches/Makefile.in.patch
@@ -1,6 +1,7 @@
---- samba/source/Makefile.in.orig Thu May 2 14:03:45 2002
-+++ samba/source/Makefile.in Thu May 2 14:03:45 2002
-@@ -709,9 +709,10 @@
+diff -uNr samba-2.2.5pre1.orig/source/Makefile.in samba-2.2.5pre1/source/Makefile.in
+--- samba-2.2.5pre1.orig/source/Makefile.in Tue Jun 4 15:54:14 2002
++++ samba-2.2.5pre1/source/Makefile.in Wed Jun 12 15:25:42 2002
+@@ -714,9 +714,10 @@
@$(SHELL) $(srcdir)/script/installswat.sh $(SWATDIR) $(srcdir)
installclientlib:
diff --git a/packaging/Debian/debian/patches/configure.patch b/packaging/Debian/debian/patches/configure.patch
index 00d21360237..17b488c2923 100644
--- a/packaging/Debian/debian/patches/configure.patch
+++ b/packaging/Debian/debian/patches/configure.patch
@@ -1,6 +1,7 @@
---- samba-2.2.4/source/configure.in.orig Thu May 2 00:10:02 2002
-+++ samba-2.2.4/source/configure.in Thu May 2 00:10:17 2002
-@@ -380,6 +380,28 @@
+diff -uNr samba-2.2.5pre1.orig/source/configure.in samba-2.2.5pre1/source/configure.in
+--- samba-2.2.5pre1.orig/source/configure.in Sat Jun 8 07:55:55 2002
++++ samba-2.2.5pre1/source/configure.in Wed Jun 12 15:27:28 2002
+@@ -384,6 +384,28 @@
#endif
}
], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
diff --git a/packaging/Debian/debian/patches/fhs.patch b/packaging/Debian/debian/patches/fhs.patch
index f335474a7fc..bb28990a210 100644
--- a/packaging/Debian/debian/patches/fhs.patch
+++ b/packaging/Debian/debian/patches/fhs.patch
@@ -1,6 +1,6 @@
-diff -uNr --exclude=debian samba/source/Makefile.in samba-2.2.4/source/Makefile.in
---- samba/source/Makefile.in Wed May 1 23:13:15 2002
-+++ samba-2.2.4/source/Makefile.in Thu May 2 01:00:13 2002
+diff -uNr samba-2.2.5pre1.orig/source/Makefile.in samba-2.2.5pre1/source/Makefile.in
+--- samba-2.2.5pre1.orig/source/Makefile.in Wed Jun 12 15:26:50 2002
++++ samba-2.2.5pre1/source/Makefile.in Wed Jun 12 15:30:29 2002
@@ -83,7 +83,7 @@
FLAGS1 = $(CFLAGS) @FLAGS1@ -Iinclude -I$(srcdir)/include -I$(srcdir)/ubiqx -I$(srcdir)/smbwrapper $(CPPFLAGS) -DLOGFILEBASE=\"$(LOGFILEBASE)\"
FLAGS2 = -DCONFIGFILE=\"$(CONFIGFILE)\" -DLMHOSTSFILE=\"$(LMHOSTSFILE)\"
@@ -10,20 +10,20 @@ diff -uNr --exclude=debian samba/source/Makefile.in samba-2.2.4/source/Makefile.
FLAGS5 = $(FLAGS1) $(FLAGS2) $(FLAGS3) $(FLAGS4) -DHAVE_INCLUDES_H
FLAGS = $(ISA) $(FLAGS5) $(PASSWD_FLAGS)
FLAGS32 = $(ISA32) $(FLAGS5) $(PASSWD_FLAGS)
-diff -uNr --exclude=debian samba/source/acconfig.h samba-2.2.4/source/acconfig.h
---- samba/source/acconfig.h Wed May 1 23:13:15 2002
-+++ samba-2.2.4/source/acconfig.h Thu May 2 01:00:33 2002
-@@ -176,6 +176,7 @@
+diff -uNr samba-2.2.5pre1.orig/source/acconfig.h samba-2.2.5pre1/source/acconfig.h
+--- samba-2.2.5pre1.orig/source/acconfig.h Fri May 17 11:22:12 2002
++++ samba-2.2.5pre1/source/acconfig.h Wed Jun 12 15:30:29 2002
+@@ -177,6 +177,7 @@
#undef HAVE_DEVICE_MAJOR_FN
#undef HAVE_DEVICE_MINOR_FN
#undef HAVE_MAKEDEV_FN
+#undef FHS_COMPATIBLE
#undef HAVE_GETGROUPS_TOO_MANY_EGIDS
- /*
- * Add these definitions to allow VFS modules to
-diff -uNr --exclude=debian samba/source/configure.in samba-2.2.4/source/configure.in
---- samba/source/configure.in Wed May 1 23:13:57 2002
-+++ samba-2.2.4/source/configure.in Thu May 2 01:01:58 2002
+ #undef HAVE_PASSWD_PW_COMMENT
+ #undef HAVE_PASSWD_PW_AGE
+diff -uNr samba-2.2.5pre1.orig/source/configure.in samba-2.2.5pre1/source/configure.in
+--- samba-2.2.5pre1.orig/source/configure.in Wed Jun 12 15:28:30 2002
++++ samba-2.2.5pre1/source/configure.in Wed Jun 12 15:30:29 2002
@@ -12,11 +12,12 @@
[ --with-fhs Use FHS-compliant paths (default=no)],
codepagedir="\$(DATADIR)/samba/codepages"
@@ -39,20 +39,20 @@ diff -uNr --exclude=debian samba/source/configure.in samba-2.2.4/source/configur
codepagedir="\$(LIBDIR)/codepages"
configdir="\$(LIBDIR)"
logfilebase="\$(VARDIR)"
-diff -uNr --exclude=debian samba/source/include/config.h.in samba-2.2.4/source/include/config.h.in
---- samba/source/include/config.h.in Wed May 1 23:14:00 2002
-+++ samba-2.2.4/source/include/config.h.in Thu May 2 01:02:36 2002
-@@ -242,6 +242,7 @@
+diff -uNr samba-2.2.5pre1.orig/source/include/config.h.in samba-2.2.5pre1/source/include/config.h.in
+--- samba-2.2.5pre1.orig/source/include/config.h.in Sat Jun 8 07:55:55 2002
++++ samba-2.2.5pre1/source/include/config.h.in Wed Jun 12 15:30:29 2002
+@@ -243,6 +243,7 @@
#undef HAVE_DEVICE_MAJOR_FN
#undef HAVE_DEVICE_MINOR_FN
#undef HAVE_MAKEDEV_FN
+#undef FHS_COMPATIBLE
#undef HAVE_GETGROUPS_TOO_MANY_EGIDS
- /*
- * Add these definitions to allow VFS modules to
-diff -uNr --exclude=debian samba/source/include/local.h samba-2.2.4/source/include/local.h
---- samba/source/include/local.h Sat Feb 2 16:02:43 2002
-+++ samba-2.2.4/source/include/local.h Thu May 2 01:03:45 2002
+ #undef HAVE_PASSWD_PW_COMMENT
+ #undef HAVE_PASSWD_PW_AGE
+diff -uNr samba-2.2.5pre1.orig/source/include/local.h samba-2.2.5pre1/source/include/local.h
+--- samba-2.2.5pre1.orig/source/include/local.h Tue Jan 15 10:02:37 2002
++++ samba-2.2.5pre1/source/include/local.h Wed Jun 12 15:30:29 2002
@@ -189,4 +189,20 @@
/* Allocation roundup. */
#define SMB_ROUNDUP_ALLOCATION_SIZE 0x100000
@@ -74,10 +74,10 @@ diff -uNr --exclude=debian samba/source/include/local.h samba-2.2.4/source/inclu
+#endif
+
#endif
-diff -uNr --exclude=debian samba/source/lib/util.c samba-2.2.4/source/lib/util.c
---- samba/source/lib/util.c Wed May 1 23:14:23 2002
-+++ samba-2.2.4/source/lib/util.c Thu May 2 01:08:20 2002
-@@ -1856,6 +1856,46 @@
+diff -uNr samba-2.2.5pre1.orig/source/lib/util.c samba-2.2.5pre1/source/lib/util.c
+--- samba-2.2.5pre1.orig/source/lib/util.c Mon Jun 3 21:11:11 2002
++++ samba-2.2.5pre1/source/lib/util.c Wed Jun 12 15:30:29 2002
+@@ -1860,6 +1860,46 @@
return fname;
}
@@ -124,9 +124,9 @@ diff -uNr --exclude=debian samba/source/lib/util.c samba-2.2.4/source/lib/util.c
/*******************************************************************
Given a filename - get its directory name
NB: Returned in static storage. Caveats:
-diff -uNr --exclude=debian samba/source/nmbd/nmbd_serverlistdb.c samba-2.2.4/source/nmbd/nmbd_serverlistdb.c
---- samba/source/nmbd/nmbd_serverlistdb.c Sat Feb 2 16:02:55 2002
-+++ samba-2.2.4/source/nmbd/nmbd_serverlistdb.c Thu May 2 01:09:23 2002
+diff -uNr samba-2.2.5pre1.orig/source/nmbd/nmbd_serverlistdb.c samba-2.2.5pre1/source/nmbd/nmbd_serverlistdb.c
+--- samba-2.2.5pre1.orig/source/nmbd/nmbd_serverlistdb.c Mon Jan 21 10:35:19 2002
++++ samba-2.2.5pre1/source/nmbd/nmbd_serverlistdb.c Wed Jun 12 15:30:29 2002
@@ -348,7 +348,7 @@
updatecount++;
@@ -136,9 +136,9 @@ diff -uNr --exclude=debian samba/source/nmbd/nmbd_serverlistdb.c samba-2.2.4/sou
trim_string(fname,NULL,"/");
pstrcat(fname,"/");
pstrcat(fname,SERVER_LIST);
-diff -uNr --exclude=debian samba/source/nmbd/nmbd_winsserver.c samba-2.2.4/source/nmbd/nmbd_winsserver.c
---- samba/source/nmbd/nmbd_winsserver.c Wed May 1 23:14:38 2002
-+++ samba-2.2.4/source/nmbd/nmbd_winsserver.c Thu May 2 01:10:42 2002
+diff -uNr samba-2.2.5pre1.orig/source/nmbd/nmbd_winsserver.c samba-2.2.5pre1/source/nmbd/nmbd_winsserver.c
+--- samba-2.2.5pre1.orig/source/nmbd/nmbd_winsserver.c Fri Mar 1 08:32:13 2002
++++ samba-2.2.5pre1/source/nmbd/nmbd_winsserver.c Wed Jun 12 15:30:29 2002
@@ -178,7 +178,7 @@
add_samba_names_to_subnet(wins_server_subnet);
@@ -148,9 +148,9 @@ diff -uNr --exclude=debian samba/source/nmbd/nmbd_winsserver.c samba-2.2.4/sourc
{
DEBUG(2,("initialise_wins: Can't open wins database file %s. Error was %s\n",
WINS_LIST, strerror(errno) ));
-diff -uNr --exclude=debian samba/source/nsswitch/winbindd_cache.c samba-2.2.4/source/nsswitch/winbindd_cache.c
---- samba/source/nsswitch/winbindd_cache.c Wed May 1 23:14:43 2002
-+++ samba-2.2.4/source/nsswitch/winbindd_cache.c Thu May 2 01:11:45 2002
+diff -uNr samba-2.2.5pre1.orig/source/nsswitch/winbindd_cache.c samba-2.2.5pre1/source/nsswitch/winbindd_cache.c
+--- samba-2.2.5pre1.orig/source/nsswitch/winbindd_cache.c Wed Jun 5 07:02:34 2002
++++ samba-2.2.5pre1/source/nsswitch/winbindd_cache.c Wed Jun 12 15:30:29 2002
@@ -50,7 +50,7 @@
}
if (opt_nocache) return;
@@ -160,9 +160,9 @@ diff -uNr --exclude=debian samba/source/nsswitch/winbindd_cache.c samba-2.2.4/so
TDB_DEFAULT, O_RDWR | O_CREAT | O_TRUNC, 0600);
if (!wcache->tdb) {
-diff -uNr --exclude=debian samba/source/nsswitch/winbindd_idmap.c samba-2.2.4/source/nsswitch/winbindd_idmap.c
---- samba/source/nsswitch/winbindd_idmap.c Wed May 1 23:14:44 2002
-+++ samba-2.2.4/source/nsswitch/winbindd_idmap.c Thu May 2 01:12:51 2002
+diff -uNr samba-2.2.5pre1.orig/source/nsswitch/winbindd_idmap.c samba-2.2.5pre1/source/nsswitch/winbindd_idmap.c
+--- samba-2.2.5pre1.orig/source/nsswitch/winbindd_idmap.c Wed May 1 11:56:29 2002
++++ samba-2.2.5pre1/source/nsswitch/winbindd_idmap.c Wed Jun 12 15:30:29 2002
@@ -427,14 +427,14 @@
{
/* Open tdb cache */
@@ -180,9 +180,9 @@ diff -uNr --exclude=debian samba/source/nsswitch/winbindd_idmap.c samba-2.2.4/so
DEBUG(0, ("winbindd_idmap_init: Unable to open idmap database\n"));
return False;
}
-diff -uNr --exclude=debian samba/source/param/loadparm.c samba-2.2.4/source/param/loadparm.c
---- samba/source/param/loadparm.c Wed May 1 23:14:47 2002
-+++ samba-2.2.4/source/param/loadparm.c Thu May 2 01:20:33 2002
+diff -uNr samba-2.2.5pre1.orig/source/param/loadparm.c samba-2.2.5pre1/source/param/loadparm.c
+--- samba-2.2.5pre1.orig/source/param/loadparm.c Thu May 30 23:13:00 2002
++++ samba-2.2.5pre1/source/param/loadparm.c Wed Jun 12 15:30:29 2002
@@ -107,6 +107,9 @@
char *szAddPrinterCommand;
char *szDeletePrinterCommand;
@@ -193,7 +193,7 @@ diff -uNr --exclude=debian samba/source/param/loadparm.c samba-2.2.4/source/para
char *szLockDir;
char *szPidDir;
char *szRootdir;
-@@ -1023,8 +1026,13 @@
+@@ -1025,8 +1028,13 @@
{"config file", P_STRING, P_GLOBAL, &Globals.szConfigFile, NULL, NULL, FLAG_HIDE},
{"preload", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_DOS_STRING},
{"auto services", P_STRING, P_GLOBAL, &Globals.szAutoServices, NULL, NULL, FLAG_DOS_STRING},
@@ -207,9 +207,9 @@ diff -uNr --exclude=debian samba/source/param/loadparm.c samba-2.2.4/source/para
{"pid directory", P_STRING, P_GLOBAL, &Globals.szPidDir, NULL, NULL, 0},
#ifdef WITH_UTMP
{"utmp directory", P_STRING, P_GLOBAL, &Globals.szUtmpDir, NULL, NULL, 0},
-diff -uNr --exclude=debian samba/source/printing/nt_printing.c samba-2.2.4/source/printing/nt_printing.c
---- samba/source/printing/nt_printing.c Wed May 1 23:14:51 2002
-+++ samba-2.2.4/source/printing/nt_printing.c Thu May 2 01:14:04 2002
+diff -uNr samba-2.2.5pre1.orig/source/printing/nt_printing.c samba-2.2.5pre1/source/printing/nt_printing.c
+--- samba-2.2.5pre1.orig/source/printing/nt_printing.c Thu Jun 6 08:15:02 2002
++++ samba-2.2.5pre1/source/printing/nt_printing.c Wed Jun 12 15:30:29 2002
@@ -263,24 +263,24 @@
if (tdb_drivers && tdb_printers && tdb_forms && local_pid == sys_getpid())
return True;
@@ -241,9 +241,9 @@ diff -uNr --exclude=debian samba/source/printing/nt_printing.c samba-2.2.4/sourc
return False;
}
-diff -uNr --exclude=debian samba/source/printing/printing.c samba-2.2.4/source/printing/printing.c
---- samba/source/printing/printing.c Wed May 1 23:14:52 2002
-+++ samba-2.2.4/source/printing/printing.c Thu May 2 01:15:27 2002
+diff -uNr samba-2.2.5pre1.orig/source/printing/printing.c samba-2.2.5pre1/source/printing/printing.c
+--- samba-2.2.5pre1.orig/source/printing/printing.c Fri Apr 19 14:05:01 2002
++++ samba-2.2.5pre1/source/printing/printing.c Wed Jun 12 15:30:30 2002
@@ -55,10 +55,10 @@
if (tdb && local_pid == sys_getpid())
@@ -257,9 +257,9 @@ diff -uNr --exclude=debian samba/source/printing/printing.c samba-2.2.4/source/p
return False;
}
local_pid = sys_getpid();
-diff -uNr --exclude=debian samba/source/rpc_server/srv_srvsvc_nt.c samba-2.2.4/source/rpc_server/srv_srvsvc_nt.c
---- samba/source/rpc_server/srv_srvsvc_nt.c Wed May 1 23:15:06 2002
-+++ samba-2.2.4/source/rpc_server/srv_srvsvc_nt.c Thu May 2 01:16:15 2002
+diff -uNr samba-2.2.5pre1.orig/source/rpc_server/srv_srvsvc_nt.c samba-2.2.5pre1/source/rpc_server/srv_srvsvc_nt.c
+--- samba-2.2.5pre1.orig/source/rpc_server/srv_srvsvc_nt.c Thu Jun 6 08:15:03 2002
++++ samba-2.2.5pre1/source/rpc_server/srv_srvsvc_nt.c Wed Jun 12 15:30:30 2002
@@ -127,10 +127,10 @@
if (share_tdb && local_pid == sys_getpid())
@@ -273,9 +273,9 @@ diff -uNr --exclude=debian samba/source/rpc_server/srv_srvsvc_nt.c samba-2.2.4/s
return False;
}
-diff -uNr --exclude=debian samba/source/smbd/lanman.c samba-2.2.4/source/smbd/lanman.c
---- samba/source/smbd/lanman.c Wed May 1 23:15:08 2002
-+++ samba-2.2.4/source/smbd/lanman.c Thu May 2 01:16:55 2002
+diff -uNr samba-2.2.5pre1.orig/source/smbd/lanman.c samba-2.2.5pre1/source/smbd/lanman.c
+--- samba-2.2.5pre1.orig/source/smbd/lanman.c Mon Mar 18 17:55:49 2002
++++ samba-2.2.5pre1/source/smbd/lanman.c Wed Jun 12 15:30:30 2002
@@ -1109,9 +1109,9 @@
BOOL local_list_only;
int i;
@@ -288,2179 +288,16 @@ diff -uNr --exclude=debian samba/source/smbd/lanman.c samba-2.2.4/source/smbd/la
return(0);
}
-diff -uNr --exclude=debian samba/source/include/proto.h samba-2.2.4/source/include/proto.h
---- samba/source/include/proto.h Wed May 1 23:14:14 2002
-+++ samba-2.2.4/source/include/proto.h Thu May 2 01:28:16 2002
-@@ -181,134 +181,650 @@
- void CatchChild(void);
- void CatchChildLeaveStatus(void);
-
--/* The following definitions come from libsmb/cliconnect.c */
-+/* The following definitions come from lib/smbrun.c */
-
--BOOL cli_session_setup(struct cli_state *cli,
-- char *user,
-- char *pass, int passlen,
-- char *ntpass, int ntpasslen,
-- char *workgroup);
--BOOL cli_ulogoff(struct cli_state *cli);
--BOOL cli_send_tconX(struct cli_state *cli,
-- const char *share, const char *dev, const char *pass, int passlen);
--BOOL cli_tdis(struct cli_state *cli);
--void cli_negprot_send(struct cli_state *cli);
--BOOL cli_negprot(struct cli_state *cli);
--BOOL cli_session_request(struct cli_state *cli,
-- struct nmb_name *calling, struct nmb_name *called);
--BOOL cli_connect(struct cli_state *cli, const char *host, struct in_addr *ip);
--BOOL cli_establish_connection(struct cli_state *cli,
-- char *dest_host, struct in_addr *dest_ip,
-- struct nmb_name *calling, struct nmb_name *called,
-- char *service, char *service_type,
-- BOOL do_shutdown, BOOL do_tcon);
--NTSTATUS cli_full_connection(struct cli_state **output_cli,
-- const char *my_name, const char *dest_host,
-- struct in_addr *dest_ip, int port,
-- char *service, char *service_type,
-- char *user, char *domain,
-- char *password, int pass_len) ;
--BOOL attempt_netbios_session_request(struct cli_state *cli, char *srchost, char *desthost,
-- struct in_addr *pdest_ip);
-+int smbrun(char *cmd, int *outfd);
-
--/* The following definitions come from libsmb/cli_dfs.c */
-+/* The following definitions come from lib/snprintf.c */
-
--struct cli_state *cli_dfs_initialise(struct cli_state *cli, char *system_name,
-- struct ntuser_creds *creds);
--NTSTATUS cli_dfs_exist(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-- BOOL *dfs_exists);
--NTSTATUS cli_dfs_add(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-- char *entrypath, char *servername, char *sharename,
-- char *comment, uint32 flags);
--NTSTATUS cli_dfs_remove(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-- char *entrypath, char *servername, char *sharename);
--NTSTATUS cli_dfs_get_info(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-- char *entrypath, char *servername, char *sharename,
-- uint32 info_level, DFS_INFO_CTR *ctr);
--NTSTATUS cli_dfs_enum(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-- uint32 info_level, DFS_INFO_CTR *ctr);
-
--/* The following definitions come from libsmb/clidgram.c */
-+/* The following definitions come from lib/substitute.c */
-+
-+void standard_sub_basic(char *str);
-+void standard_sub_advanced(int snum, char *user, char *connectpath, gid_t gid, char *str);
-+void standard_sub_conn(connection_struct *conn, char *str);
-+void standard_sub_home(int snum, char *user, char *str);
-+void standard_sub_snum(int snum, char *str);
-+void standard_sub_vuser(char *str, user_struct *vuser);
-+void standard_sub_vsnum(char *str, user_struct *vuser, int snum);
-+
-+/* The following definitions come from lib/sysacls.c */
-+
-+int sys_acl_get_entry( SMB_ACL_T the_acl, int entry_id, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_get_tag_type( SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *tag_type_p);
-+int sys_acl_get_permset( SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
-+void *sys_acl_get_qualifier( SMB_ACL_ENTRY_T entry_d);
-+SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type);
-+SMB_ACL_T sys_acl_get_fd(int fd);
-+int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset);
-+int sys_acl_add_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
-+int sys_acl_get_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
-+char *sys_acl_to_text( SMB_ACL_T the_acl, ssize_t *plen);
-+SMB_ACL_T sys_acl_init( int count);
-+int sys_acl_create_entry( SMB_ACL_T *pacl, SMB_ACL_ENTRY_T *pentry);
-+int sys_acl_set_tag_type( SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tagtype);
-+int sys_acl_set_qualifier( SMB_ACL_ENTRY_T entry, void *qual);
-+int sys_acl_set_permset( SMB_ACL_ENTRY_T entry, SMB_ACL_PERMSET_T permset);
-+int sys_acl_valid( SMB_ACL_T theacl );
-+int sys_acl_set_file( const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl);
-+int sys_acl_set_fd( int fd, SMB_ACL_T theacl);
-+int sys_acl_delete_def_file(const char *name);
-+int sys_acl_free_text(char *text);
-+int sys_acl_free_acl(SMB_ACL_T the_acl) ;
-+int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
-+int sys_acl_get_entry( SMB_ACL_T the_acl, int entry_id, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_get_tag_type( SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *tag_type_p);
-+int sys_acl_get_permset( SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
-+void *sys_acl_get_qualifier( SMB_ACL_ENTRY_T entry_d);
-+SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type);
-+SMB_ACL_T sys_acl_get_fd(int fd);
-+int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset);
-+int sys_acl_add_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
-+int sys_acl_get_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
-+char *sys_acl_to_text( SMB_ACL_T the_acl, ssize_t *plen);
-+SMB_ACL_T sys_acl_init( int count);
-+int sys_acl_create_entry( SMB_ACL_T *pacl, SMB_ACL_ENTRY_T *pentry);
-+int sys_acl_set_tag_type( SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tagtype);
-+int sys_acl_set_qualifier( SMB_ACL_ENTRY_T entry, void *qual);
-+int sys_acl_set_permset( SMB_ACL_ENTRY_T entry, SMB_ACL_PERMSET_T permset);
-+int sys_acl_valid( SMB_ACL_T theacl );
-+int sys_acl_set_file( const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl);
-+int sys_acl_set_fd( int fd, SMB_ACL_T theacl);
-+int sys_acl_delete_def_file(const char *name);
-+int sys_acl_free_text(char *text);
-+int sys_acl_free_acl(SMB_ACL_T the_acl) ;
-+int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
-+int sys_acl_get_entry(SMB_ACL_T acl_d, int entry_id, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_get_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *type_p);
-+int sys_acl_get_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
-+void *sys_acl_get_qualifier(SMB_ACL_ENTRY_T entry_d);
-+SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL_TYPE_T type);
-+SMB_ACL_T sys_acl_get_fd(int fd);
-+int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset_d);
-+int sys_acl_add_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
-+int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
-+char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p);
-+SMB_ACL_T sys_acl_init(int count);
-+int sys_acl_create_entry(SMB_ACL_T *acl_p, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_set_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T tag_type);
-+int sys_acl_set_qualifier(SMB_ACL_ENTRY_T entry_d, void *qual_p);
-+int sys_acl_set_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T permset_d);
-+int sys_acl_valid(SMB_ACL_T acl_d);
-+int sys_acl_set_file(const char *name, SMB_ACL_TYPE_T type, SMB_ACL_T acl_d);
-+int sys_acl_set_fd(int fd, SMB_ACL_T acl_d);
-+int sys_acl_delete_def_file(const char *path);
-+int sys_acl_free_text(char *text);
-+int sys_acl_free_acl(SMB_ACL_T acl_d) ;
-+int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
-+int sys_acl_get_entry(SMB_ACL_T acl_d, int entry_id, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_get_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *type_p);
-+int sys_acl_get_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
-+void *sys_acl_get_qualifier(SMB_ACL_ENTRY_T entry_d);
-+SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL_TYPE_T type);
-+SMB_ACL_T sys_acl_get_fd(int fd);
-+int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset_d);
-+int sys_acl_add_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
-+int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
-+char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p);
-+SMB_ACL_T sys_acl_init(int count);
-+int sys_acl_create_entry(SMB_ACL_T *acl_p, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_set_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T tag_type);
-+int sys_acl_set_qualifier(SMB_ACL_ENTRY_T entry_d, void *qual_p);
-+int sys_acl_set_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T permset_d);
-+int sys_acl_valid(SMB_ACL_T acl_d);
-+int sys_acl_set_file(const char *name, SMB_ACL_TYPE_T type, SMB_ACL_T acl_d);
-+int sys_acl_set_fd(int fd, SMB_ACL_T acl_d);
-+int sys_acl_delete_def_file(const char *path);
-+int sys_acl_free_text(char *text);
-+int sys_acl_free_acl(SMB_ACL_T acl_d) ;
-+int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
-+int sys_acl_get_entry(SMB_ACL_T acl_d, int entry_id, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_get_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *type_p);
-+int sys_acl_get_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
-+void *sys_acl_get_qualifier(SMB_ACL_ENTRY_T entry_d);
-+SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL_TYPE_T type);
-+SMB_ACL_T sys_acl_get_fd(int fd);
-+int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset_d);
-+int sys_acl_add_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
-+int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
-+char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p);
-+SMB_ACL_T sys_acl_init(int count);
-+int sys_acl_create_entry(SMB_ACL_T *acl_p, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_set_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T tag_type);
-+int sys_acl_set_qualifier(SMB_ACL_ENTRY_T entry_d, void *qual_p);
-+int sys_acl_set_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T permset_d);
-+int sys_acl_valid(SMB_ACL_T acl_d);
-+int sys_acl_set_file(const char *name, SMB_ACL_TYPE_T type, SMB_ACL_T acl_d);
-+int sys_acl_set_fd(int fd, SMB_ACL_T acl_d);
-+int sys_acl_delete_def_file(const char *name);
-+int sys_acl_free_text(char *text);
-+int sys_acl_free_acl(SMB_ACL_T acl_d) ;
-+int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
-+int sys_acl_get_entry( SMB_ACL_T theacl, int entry_id, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_get_tag_type( SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *tag_type_p);
-+int sys_acl_get_permset( SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
-+void *sys_acl_get_qualifier( SMB_ACL_ENTRY_T entry_d);
-+SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type);
-+SMB_ACL_T sys_acl_get_fd(int fd);
-+int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset);
-+int sys_acl_add_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
-+char *sys_acl_to_text( SMB_ACL_T theacl, ssize_t *plen);
-+SMB_ACL_T sys_acl_init( int count);
-+int sys_acl_create_entry( SMB_ACL_T *pacl, SMB_ACL_ENTRY_T *pentry);
-+int sys_acl_set_tag_type( SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tagtype);
-+int sys_acl_set_qualifier( SMB_ACL_ENTRY_T entry, void *qual);
-+int sys_acl_set_permset( SMB_ACL_ENTRY_T entry, SMB_ACL_PERMSET_T permset);
-+int sys_acl_valid( SMB_ACL_T theacl );
-+int sys_acl_set_file( const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl);
-+int sys_acl_set_fd( int fd, SMB_ACL_T theacl);
-+int sys_acl_delete_def_file(const char *name);
-+int sys_acl_get_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
-+int sys_acl_free_text(char *text);
-+int sys_acl_free_acl(SMB_ACL_T posix_acl);
-+int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
-+int sys_acl_get_entry( SMB_ACL_T the_acl, int entry_id, SMB_ACL_ENTRY_T *entry_p);
-+int sys_acl_get_tag_type( SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *tag_type_p);
-+int sys_acl_get_permset( SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
-+void *sys_acl_get_qualifier( SMB_ACL_ENTRY_T entry_d);
-+SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type);
-+SMB_ACL_T sys_acl_get_fd(int fd);
-+int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset);
-+int sys_acl_add_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
-+int sys_acl_get_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
-+char *sys_acl_to_text( SMB_ACL_T the_acl, ssize_t *plen);
-+int sys_acl_free_text(char *text);
-+SMB_ACL_T sys_acl_init( int count);
-+int sys_acl_create_entry( SMB_ACL_T *pacl, SMB_ACL_ENTRY_T *pentry);
-+int sys_acl_set_tag_type( SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tagtype);
-+int sys_acl_set_qualifier( SMB_ACL_ENTRY_T entry, void *qual);
-+int sys_acl_set_permset( SMB_ACL_ENTRY_T entry, SMB_ACL_PERMSET_T permset);
-+int sys_acl_valid( SMB_ACL_T theacl );
-+int sys_acl_set_file( const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl);
-+int sys_acl_set_fd( int fd, SMB_ACL_T theacl);
-+int sys_acl_delete_def_file(const char *name);
-+int sys_acl_free_acl(SMB_ACL_T the_acl) ;
-+int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
-+
-+/* The following definitions come from lib/system.c */
-+
-+int sys_usleep(long usecs);
-+ssize_t sys_read(int fd, void *buf, size_t count);
-+ssize_t sys_write(int fd, const void *buf, size_t count);
-+ssize_t sys_send(int s, const void *msg, size_t len, int flags);
-+ssize_t sys_sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
-+ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen);
-+int sys_fcntl_ptr(int fd, int cmd, void *arg);
-+int sys_fcntl_long(int fd, int cmd, long arg);
-+int sys_stat(const char *fname,SMB_STRUCT_STAT *sbuf);
-+int sys_fstat(int fd,SMB_STRUCT_STAT *sbuf);
-+int sys_lstat(const char *fname,SMB_STRUCT_STAT *sbuf);
-+int sys_ftruncate(int fd, SMB_OFF_T offset);
-+SMB_OFF_T sys_lseek(int fd, SMB_OFF_T offset, int whence);
-+int sys_fseek(FILE *fp, SMB_OFF_T offset, int whence);
-+SMB_OFF_T sys_ftell(FILE *fp);
-+int sys_creat(const char *path, mode_t mode);
-+int sys_open(const char *path, int oflag, mode_t mode);
-+FILE *sys_fopen(const char *path, const char *type);
-+SMB_STRUCT_DIRENT *sys_readdir(DIR *dirp);
-+int sys_mknod(const char *path, mode_t mode, SMB_DEV_T dev);
-+char *sys_realpath(const char *path, char *resolved_path);
-+int sys_waitpid(pid_t pid,int *status,int options);
-+char *sys_getwd(char *s);
-+int sys_symlink(const char *oldpath, const char *newpath);
-+int sys_readlink(const char *path, char *buf, size_t bufsiz);
-+int sys_link(const char *oldpath, const char *newpath);
-+int sys_chown(const char *fname,uid_t uid,gid_t gid);
-+int sys_chroot(const char *dname);
-+struct hostent *sys_gethostbyname(const char *name);
-+void oplock_set_capability(BOOL this_process, BOOL inherit);
-+long sys_random(void);
-+void sys_srandom(unsigned int seed);
-+int groups_max(void);
-+int sys_getgroups(int setlen, gid_t *gidset);
-+int sys_setgroups(int setlen, gid_t *gidset);
-+void sys_setpwent(void);
-+struct passwd *sys_getpwent(void);
-+void sys_endpwent(void);
-+struct passwd *sys_getpwnam(const char *name);
-+struct passwd *sys_getpwuid(uid_t uid);
-+int wsys_stat(const smb_ucs2_t *wfname,SMB_STRUCT_STAT *sbuf);
-+int wsys_lstat(const smb_ucs2_t *wfname,SMB_STRUCT_STAT *sbuf);
-+int wsys_creat(const smb_ucs2_t *wfname, mode_t mode);
-+int wsys_open(const smb_ucs2_t *wfname, int oflag, mode_t mode);
-+FILE *wsys_fopen(const smb_ucs2_t *wfname, const char *type);
-+DIR *wsys_opendir(const smb_ucs2_t *wfname);
-+smb_ucs2_t *wsys_getwd(smb_ucs2_t *s);
-+int wsys_chown(const smb_ucs2_t *wfname, uid_t uid, gid_t gid);
-+int wsys_chroot(const smb_ucs2_t *wfname);
-+pid_t sys_fork(void);
-+pid_t sys_getpid(void);
-+int sys_popen(const char *command);
-+int sys_pclose(int fd);
-+void *sys_dlopen(const char *name, int flags);
-+void *sys_dlsym(void *handle, char *symbol);
-+int sys_dlclose (void *handle);
-+const char *sys_dlerror(void);
-+void sys_adminlog(int priority, const char *format_str, ...);
-+
-+/* The following definitions come from lib/talloc.c */
-+
-+TALLOC_CTX *talloc_init(void);
-+void *talloc(TALLOC_CTX *t, size_t size);
-+void *talloc_realloc(TALLOC_CTX *t, void *ptr, size_t size);
-+void talloc_destroy_pool(TALLOC_CTX *t);
-+void talloc_destroy(TALLOC_CTX *t);
-+size_t talloc_pool_size(TALLOC_CTX *t);
-+const char * talloc_pool_name(TALLOC_CTX const *t);
-+void *talloc_zero(TALLOC_CTX *t, size_t size);
-+void *talloc_memdup(TALLOC_CTX *t, const void *p, size_t size);
-+char *talloc_strdup(TALLOC_CTX *t, const char *p);
-+char *talloc_describe_all(TALLOC_CTX *rt);
-+void talloc_get_allocation(TALLOC_CTX *t,
-+ size_t *total_bytes,
-+ int *n_chunks);
-+
-+/* The following definitions come from lib/time.c */
-+
-+time_t get_time_t_min(void);
-+time_t get_time_t_max(void);
-+void GetTimeOfDay(struct timeval *tval);
-+void TimeInit(void);
-+void get_process_uptime(struct timeval *ret_time);
-+int TimeDiff(time_t t);
-+struct tm *LocalTime(time_t *t);
-+time_t nt_time_to_unix(NTTIME *nt);
-+time_t nt_time_to_unix_abs(NTTIME *nt);
-+time_t interpret_long_date(char *p);
-+void unix_to_nt_time(NTTIME *nt, time_t t);
-+void unix_to_nt_time_abs(NTTIME *nt, time_t t);
-+void put_long_date(char *p,time_t t);
-+BOOL null_mtime(time_t mtime);
-+void put_dos_date(char *buf,int offset,time_t unixdate);
-+void put_dos_date2(char *buf,int offset,time_t unixdate);
-+void put_dos_date3(char *buf,int offset,time_t unixdate);
-+time_t make_unix_date(void *date_ptr);
-+time_t make_unix_date2(void *date_ptr);
-+time_t make_unix_date3(void *date_ptr);
-+char *http_timestring(time_t t);
-+char *timestring(BOOL hires);
-+time_t get_create_time(SMB_STRUCT_STAT *st,BOOL fake_dirs);
-+void init_nt_time(NTTIME *nt);
-+
-+/* The following definitions come from lib/ufc.c */
-+
-+char *ufc_crypt(const char *key,const char *salt);
-+
-+/* The following definitions come from lib/username.c */
-+
-+BOOL name_is_local(const char *name);
-+char *get_user_home_dir(char *user);
-+char *get_user_service_home_dir(char *user);
-+BOOL map_username(char *user);
-+struct passwd *Get_Pwnam(char *user,BOOL allow_change);
-+BOOL user_in_group_list(char *user,char *gname);
-+BOOL user_in_list(char *user,char *list);
-+struct passwd *smb_getpwnam(char *user, BOOL allow_change);
-+
-+/* The following definitions come from lib/util.c */
-+
-+char *tmpdir(void);
-+BOOL in_group(gid_t group, gid_t current_gid, int ngroups, gid_t *groups);
-+char *Atoic(char *p, int *n, char *c);
-+char *get_numlist(char *p, uint32 **num, int *count);
-+BOOL file_exist(char *fname,SMB_STRUCT_STAT *sbuf);
-+time_t file_modtime(char *fname);
-+BOOL directory_exist(char *dname,SMB_STRUCT_STAT *st);
-+SMB_OFF_T get_file_size(char *file_name);
-+char *attrib_string(uint16 mode);
-+void show_msg(char *buf);
-+void smb_setlen(char *buf,int len);
-+int set_message(char *buf,int num_words,int num_bytes,BOOL zero);
-+int set_message_bcc(char *buf,int num_bytes);
-+int set_message_end(void *outbuf,void *end_ptr);
-+void dos_clean_name(char *s);
-+void unix_clean_name(char *s);
-+void make_dir_struct(char *buf,char *mask,char *fname,SMB_OFF_T size,int mode,time_t date);
-+void close_low_fds(void);
-+int set_blocking(int fd, BOOL set);
-+ssize_t transfer_file_internal(int infd, int outfd, size_t n, ssize_t (*read_fn)(int, void *, size_t),
-+ ssize_t (*write_fn)(int, const void *, size_t));
-+SMB_OFF_T transfer_file(int infd,int outfd,SMB_OFF_T n);
-+void msleep(unsigned int t);
-+void become_daemon(void);
-+BOOL yesno(char *p);
-+void *Realloc(void *p,size_t size);
-+void safe_free(void *p);
-+BOOL get_myname(char *my_name);
-+int interpret_protocol(char *str,int def);
-+BOOL is_ipaddress(const char *str);
-+uint32 interpret_addr(const char *str);
-+struct in_addr *interpret_addr2(const char *str);
-+BOOL is_zero_ip(struct in_addr ip);
-+void zero_ip(struct in_addr *ip);
-+char *automount_lookup(char *user_name);
-+char *automount_lookup(char *user_name);
-+BOOL same_net(struct in_addr ip1,struct in_addr ip2,struct in_addr mask);
-+BOOL process_exists(pid_t pid);
-+char *uidtoname(uid_t uid);
-+char *gidtoname(gid_t gid);
-+uid_t nametouid(char *name);
-+gid_t nametogid(char *name);
-+void smb_panic(char *why);
-+char *readdirname(DIR *p);
-+BOOL is_in_path(char *name, name_compare_entry *namelist);
-+void set_namearray(name_compare_entry **ppname_array, char *namelist);
-+void free_namearray(name_compare_entry *name_array);
-+BOOL fcntl_lock(int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type);
-+BOOL is_myname(char *s);
-+const char* get_my_primary_ip (void);
-+BOOL is_myname_or_ipaddr(char *s);
-+void set_remote_arch(enum remote_arch_types type);
-+enum remote_arch_types get_remote_arch(void);
-+void out_ascii(FILE *f, unsigned char *buf,int len);
-+void out_data(FILE *f,char *buf1,int len, int per_line);
-+void print_asc(int level, unsigned char *buf,int len);
-+void dump_data(int level,char *buf1,int len);
-+char *tab_depth(int depth);
-+int str_checksum(const char *s);
-+void zero_free(void *p, size_t size);
-+int set_maxfiles(int requested_max);
-+BOOL reg_split_key(char *full_keyname, uint32 *reg_type, char *key_name);
-+int smb_mkstemp(char *template);
-+void *smb_xmalloc(size_t size);
-+void *smb_xmemdup(const void *p, size_t size);
-+char *smb_xstrdup(const char *s);
-+int smb_xvasprintf(char **ptr, const char *format, va_list ap);
-+void *memdup(void *p, size_t size);
-+char *myhostname(void);
-+char *lock_path(char *name);
-+char *pid_path(char *name);
-+char *state_path(char *name);
-+char *cache_path(char *name);
-+char *parent_dirname(const char *path);
-+BOOL ms_has_wild(char *s);
-+BOOL mask_match(char *string, char *pattern, BOOL is_case_sensitive);
-+BOOL unix_wild_match(char *pattern, char *string);
-+DATA_BLOB data_blob(const void *p, size_t length);
-+DATA_BLOB data_blob_talloc(TALLOC_CTX *mem_ctx, const void *p, size_t length);
-+void data_blob_free(DATA_BLOB *d);
-+void data_blob_clear(DATA_BLOB *d);
-+int _Insure_trap_error(int a1, int a2, int a3, int a4, int a5, int a6);
-+
-+/* The following definitions come from lib/util_file.c */
-+
-+BOOL do_file_lock(int fd, int waitsecs, int type);
-+BOOL file_lock(int fd, int type, int secs, int *plock_depth);
-+BOOL file_unlock(int fd, int *plock_depth);
-+void *startfilepwent(char *pfile, char *s_readbuf, int bufsize,
-+ int *file_lock_depth, BOOL update);
-+void endfilepwent(void *vp, int *file_lock_depth);
-+SMB_BIG_UINT getfilepwpos(void *vp);
-+BOOL setfilepwpos(void *vp, SMB_BIG_UINT tok);
-+int getfileline(void *vp, char *linebuf, int linebuf_size);
-+char *fgets_slash(char *s2,int maxlen,FILE *f);
-+char *file_pload(char *syscmd, size_t *size);
-+char *fd_load(int fd, size_t *size);
-+char *file_load(char *fname, size_t *size);
-+char **file_lines_load(char *fname, int *numlines, BOOL convert);
-+char **fd_lines_load(int fd, int *numlines, BOOL convert);
-+char **file_lines_pload(char *syscmd, int *numlines, BOOL convert);
-+void file_lines_free(char **lines);
-+void file_lines_slashcont(char **lines);
-+
-+/* The following definitions come from lib/util_getent.c */
-+
-+struct sys_grent * getgrent_list(void);
-+void grent_free (struct sys_grent *glist);
-+struct sys_pwent * getpwent_list(void);
-+void pwent_free (struct sys_pwent *plist);
-+struct sys_userlist *get_users_in_group(const char *gname);
-+void free_userlist(struct sys_userlist *list_head);
-+
-+/* The following definitions come from lib/util_seaccess.c */
-+
-+void se_map_generic(uint32 *access_mask, struct generic_mapping *mapping);
-+void se_map_standard(uint32 *access_mask, struct standard_mapping *mapping);
-+BOOL se_access_check(SEC_DESC *sd, NT_USER_TOKEN *token,
-+ uint32 acc_desired, uint32 *acc_granted,
-+ NTSTATUS *status);
-+SEC_DESC_BUF *se_create_child_secdesc(TALLOC_CTX *ctx, SEC_DESC *parent_ctr,
-+ BOOL child_container);
-+
-+/* The following definitions come from lib/util_sec.c */
-+
-+void sec_init(void);
-+uid_t sec_initial_uid(void);
-+gid_t sec_initial_gid(void);
-+BOOL non_root_mode(void);
-+void gain_root_privilege(void);
-+void gain_root_group_privilege(void);
-+void set_effective_uid(uid_t uid);
-+void set_effective_gid(gid_t gid);
-+void save_re_uid(void);
-+void restore_re_uid(void);
-+int set_re_uid(void);
-+void become_user_permanently(uid_t uid, gid_t gid);
-+BOOL is_setuid_root(void) ;
-+
-+/* The following definitions come from lib/util_sid.c */
-+
-+void generate_wellknown_sids(void);
-+BOOL map_domain_sid_to_name(DOM_SID *sid, char *nt_domain);
-+BOOL lookup_known_rid(DOM_SID *sid, uint32 rid, char *name, enum SID_NAME_USE *psid_name_use);
-+BOOL map_domain_name_to_sid(DOM_SID *sid, char *nt_domain);
-+void split_domain_name(const char *fullname, char *domain, char *name);
-+char *sid_to_string(fstring sidstr_out, DOM_SID *sid);
-+const char *sid_string_static(DOM_SID *sid);
-+BOOL string_to_sid(DOM_SID *sidout, const char *sidstr);
-+BOOL sid_append_rid(DOM_SID *sid, uint32 rid);
-+BOOL sid_split_rid(DOM_SID *sid, uint32 *rid);
-+BOOL sid_peek_rid(DOM_SID *sid, uint32 *rid);
-+void sid_copy(DOM_SID *dst, const DOM_SID *src);
-+DOM_SID *sid_dup(DOM_SID *src);
-+BOOL sid_linearize(char *outbuf, size_t len, DOM_SID *sid);
-+BOOL sid_parse(char *inbuf, size_t len, DOM_SID *sid);
-+int sid_compare_auth(const DOM_SID *sid1, const DOM_SID *sid2);
-+int sid_compare(const DOM_SID *sid1, const DOM_SID *sid2);
-+int sid_compare_domain(const DOM_SID *sid1, const DOM_SID *sid2);
-+BOOL sid_equal(const DOM_SID *sid1, const DOM_SID *sid2);
-+BOOL sid_check_is_domain(const DOM_SID *sid);
-+BOOL sid_check_is_builtin(const DOM_SID *sid);
-+BOOL sid_check_is_in_our_domain(const DOM_SID *sid);
-+BOOL sid_check_is_in_builtin(const DOM_SID *sid);
-+size_t sid_size(DOM_SID *sid);
-+BOOL non_mappable_sid(DOM_SID *sid);
-+char *sid_binstring(DOM_SID *sid);
-+
-+/* The following definitions come from lib/util_sock.c */
-
--int cli_send_mailslot(int dgram_sock, BOOL unique, char *mailslot,
-- char *buf, int len,
-- const char *srcname, int src_type,
-- const char *dstname, int dest_type,
-- struct in_addr dest_ip, struct in_addr src_ip,
-- int dest_port, int src_port);
--int cli_get_response(int dgram_sock, BOOL unique, char *mailslot, char *buf, int bufsiz);
--int cli_get_backup_list(const char *myname, const char *send_to_name);
--int cli_get_backup_server(char *my_name, char *target, char *servername, int namesize);
-+BOOL is_a_socket(int fd);
-+void set_socket_options(int fd, char *options);
-+ssize_t read_udp_socket(int fd,char *buf,size_t len);
-+ssize_t read_with_timeout(int fd,char *buf,size_t mincnt,size_t maxcnt,unsigned int time_out);
-+BOOL send_keepalive(int client);
-+ssize_t read_data(int fd,char *buffer,size_t N);
-+ssize_t write_data(int fd,char *buffer,size_t N);
-+ssize_t write_socket_data(int fd,char *buffer,size_t N);
-+ssize_t write_socket(int fd,char *buf,size_t len);
-+ssize_t read_smb_length(int fd,char *inbuf,unsigned int timeout);
-+BOOL receive_smb(int fd,char *buffer, unsigned int timeout);
-+BOOL client_receive_smb(int fd,char *buffer, unsigned int timeout);
-+BOOL send_smb(int fd,char *buffer);
-+BOOL send_one_packet(char *buf,int len,struct in_addr ip,int port,int type);
-+int open_socket_in( int type, int port, int dlevel, uint32 socket_addr, BOOL rebind );
-+int open_socket_out(int type, struct in_addr *addr, int port ,int timeout);
-+void client_setfd(int fd);
-+char *client_name(void);
-+char *client_addr(void);
-+char *get_socket_name(int fd);
-+char *get_socket_addr(int fd);
-+int create_pipe_sock(const char *socket_dir,
-+ const char *socket_name,
-+ mode_t dir_perms);
-+int sock_exec(const char *prog);
-
--/* The following definitions come from libsmb/clientgen.c */
-+/* The following definitions come from lib/util_str.c */
-
--int cli_set_port(struct cli_state *cli, int port);
--BOOL cli_receive_smb(struct cli_state *cli);
--BOOL cli_send_smb(struct cli_state *cli);
--void cli_setup_packet(struct cli_state *cli);
--void cli_setup_bcc(struct cli_state *cli, void *p);
--void cli_init_creds(struct cli_state *cli, const struct ntuser_creds *usr);
--struct cli_state *cli_initialise(struct cli_state *cli);
--void cli_shutdown(struct cli_state *cli);
--void cli_sockopt(struct cli_state *cli, char *options);
--uint16 cli_setpid(struct cli_state *cli, uint16 pid);
-+void set_first_token(char *ptr);
-+BOOL next_token(char **ptr,char *buff,char *sep, size_t bufsize);
-+char **toktocliplist(int *ctok, char *sep);
-+int StrCaseCmp(const char *s, const char *t);
-+int StrnCaseCmp(const char *s, const char *t, size_t n);
-+BOOL strequal(const char *s1, const char *s2);
-+BOOL strnequal(const char *s1,const char *s2,size_t n);
-+BOOL strcsequal(const char *s1,const char *s2);
-+int strwicmp(char *psz1, char *psz2);
-+void strlower(char *s);
-+void strupper(char *s);
-+void strnorm(char *s);
-+BOOL strisnormal(char *s);
-+void string_replace(char *s,char oldc,char newc);
-+char *skip_string(char *buf,size_t n);
-+size_t str_charnum(const char *s);
-+BOOL trim_string(char *s,const char *front,const char *back);
-+BOOL strhasupper(const char *s);
-+BOOL strhaslower(const char *s);
-+size_t count_chars(const char *s,char c);
-+BOOL str_is_all(const char *s,char c);
-+char *safe_strcpy(char *dest,const char *src, size_t maxlength);
-+char *safe_strcat(char *dest, const char *src, size_t maxlength);
-+char *alpha_strcpy(char *dest, const char *src, const char *other_safe_chars, size_t maxlength);
-+char *StrnCpy(char *dest,const char *src,size_t n);
-+char *strncpyn(char *dest, const char *src,size_t n, char c);
-+size_t strhex_to_str(char *p, size_t len, const char *strhex);
-+BOOL in_list(char *s,char *list,BOOL casesensitive);
-+void string_free(char **s);
-+BOOL string_set(char **dest,const char *src);
-+void string_sub(char *s,const char *pattern,const char *insert, size_t len);
-+void fstring_sub(char *s,const char *pattern,const char *insert);
-+void pstring_sub(char *s,const char *pattern,const char *insert);
-+void all_string_sub(char *s,const char *pattern,const char *insert, size_t len);
-+void split_at_last_component(char *path, char *front, char sep, char *back);
-+char *octal_string(int i);
-+char *string_truncate(char *s, int length);
-+char *binary_string(char *buf, int len);
-
--/* The following definitions come from libsmb/clierror.c */
-+/* The following definitions come from lib/util_unistr.c */
-
--char *cli_errstr(struct cli_state *cli);
--NTSTATUS cli_nt_error(struct cli_state *cli);
--void cli_dos_error(struct cli_state *cli, uint8 *eclass, uint32 *ecode);
--int cli_errno_from_dos(uint8 eclass, uint32 num);
--int cli_errno_from_nt(NTSTATUS status);
--int cli_errno(struct cli_state *cli);
--BOOL cli_is_error(struct cli_state *cli);
--BOOL cli_is_nt_error(struct cli_state *cli);
--BOOL cli_is_dos_error(struct cli_state *cli);
-+size_t unix_PutUniCode(char *dst,const char *src, ssize_t len, BOOL null_terminate);
-+size_t dos_PutUniCode(char *dst,const char *src, ssize_t len, BOOL null_terminate);
-+void unistr_to_dos(char *dest, const char *src, size_t len);
-+char *skip_unibuf(char *src, size_t len);
-+char *dos_unistrn2(uint16 *src, int len);
-+char *dos_unistr2(uint16 *src);
-+char *dos_unistr2_to_str(UNISTR2 *str);
-+void ascii_to_unistr(uint16 *dest, const char *src, int maxlen);
-+void unistr_to_ascii(char *dest, const uint16 *src, int len);
-+void unistr2_to_ascii(char *dest, const UNISTR2 *str, size_t maxlen);
-+char *unistr2_tdup(TALLOC_CTX *ctx, const UNISTR2 *str);
-+uint32 buffer2_to_uint32(BUFFER2 *str);
-+char *dos_buffer2_to_str(BUFFER2 *str);
-+char *dos_buffer2_to_multistr(BUFFER2 *str);
-+size_t dos_struni2(char *dst, const char *src, size_t max_len);
-+char *dos_unistr(char *buf);
-+int unistrlen(uint16 *s);
-+int unistrcpy(uint16 *dst, uint16 *src);
-+void default_unicode_map(smb_ucs2_t **pp_cp_to_ucs2, uint16 **pp_ucs2_to_cp);
-+BOOL load_unicode_map(const char *codepage, smb_ucs2_t **pp_cp_to_ucs2, uint16 **pp_ucs2_to_cp);
-+BOOL load_dos_unicode_map(int codepage);
-+BOOL load_unix_unicode_map(const char *unix_char_set, BOOL override);
-+smb_ucs2_t *multibyte_to_unicode(smb_ucs2_t *dst, const char *src,
-+ size_t dst_len, smb_ucs2_t *cp_to_ucs2);
-+char *unicode_to_unix(char *dst, const smb_ucs2_t *src, size_t dst_len);
-+smb_ucs2_t *unix_to_unicode(smb_ucs2_t *dst, const char *src, size_t dst_len);
-+size_t unicode_to_unix_char(char *dst, const smb_ucs2_t src);
-+char *unicode_to_dos(char *dst, const smb_ucs2_t *src, size_t dst_len);
-+size_t unicode_to_dos_char(char *dst, const smb_ucs2_t src);
-+smb_ucs2_t *dos_to_unicode(smb_ucs2_t *dst, const char *src, size_t dst_len);
-+size_t strlen_w(const smb_ucs2_t *src);
-+smb_ucs2_t *safe_strcpy_w(smb_ucs2_t *dest,const smb_ucs2_t *src, size_t maxlength);
-+smb_ucs2_t *safe_strcat_w(smb_ucs2_t *dest, const smb_ucs2_t *src, size_t maxlength);
-+int strcmp_w(const smb_ucs2_t *s1, const smb_ucs2_t *s2);
-+int strncmp_w(const smb_ucs2_t *s1, const smb_ucs2_t *s2, size_t len);
-+smb_ucs2_t *strstr_w(const smb_ucs2_t *s1, const smb_ucs2_t *s2);
-+smb_ucs2_t *strchr_w(const smb_ucs2_t *s, smb_ucs2_t c);
-+smb_ucs2_t *strrchr_w(const smb_ucs2_t *s, smb_ucs2_t c);
-+smb_ucs2_t *strtok_w(smb_ucs2_t *s1, const smb_ucs2_t *s2);
-+smb_ucs2_t *strdup_w(const smb_ucs2_t *s);
-+int isupper_w( smb_ucs2_t val);
-+int islower_w( smb_ucs2_t val);
-+int isdigit_w( smb_ucs2_t val);
-+int isxdigit_w( smb_ucs2_t val);
-+int isspace_w( smb_ucs2_t val);
-+smb_ucs2_t toupper_w( smb_ucs2_t val );
-+smb_ucs2_t tolower_w( smb_ucs2_t val );
-+void set_first_token_w(smb_ucs2_t *ptr);
-+BOOL next_token_w(smb_ucs2_t **ptr, smb_ucs2_t *buff, smb_ucs2_t *sep, size_t bufsize);
-+smb_ucs2_t **toktocliplist_w(int *ctok, smb_ucs2_t *sep);
-+int StrCaseCmp_w(const smb_ucs2_t *s, const smb_ucs2_t *t);
-+int StrnCaseCmp_w(const smb_ucs2_t *s, const smb_ucs2_t *t, size_t n);
-+BOOL strequal_w(const smb_ucs2_t *s1, const smb_ucs2_t *s2);
-+BOOL strnequal_w(const smb_ucs2_t *s1,const smb_ucs2_t *s2,size_t n);
-+BOOL strcsequal_w(const smb_ucs2_t *s1,const smb_ucs2_t *s2);
-+void strlower_w(smb_ucs2_t *s);
-+void strupper_w(smb_ucs2_t *s);
-+void strnorm_w(smb_ucs2_t *s);
-+BOOL strisnormal_w(smb_ucs2_t *s);
-+void string_replace_w(smb_ucs2_t *s, smb_ucs2_t oldc, smb_ucs2_t newc);
-+smb_ucs2_t *skip_string_w(smb_ucs2_t *buf,size_t n);
-+size_t str_charnum_w(const smb_ucs2_t *s);
-+BOOL trim_string_w(smb_ucs2_t *s,const smb_ucs2_t *front,const smb_ucs2_t *back);
-+BOOL strhasupper_w(const smb_ucs2_t *s);
-+BOOL strhaslower_w(const smb_ucs2_t *s);
-+size_t count_chars_w(const smb_ucs2_t *s,smb_ucs2_t c);
-+BOOL str_is_all_w(const smb_ucs2_t *s,smb_ucs2_t c);
-+smb_ucs2_t *alpha_strcpy_w(smb_ucs2_t *dest, const smb_ucs2_t *src, const smb_ucs2_t *other_safe_chars, size_t maxlength);
-+smb_ucs2_t *StrnCpy_w(smb_ucs2_t *dest,const smb_ucs2_t *src,size_t n);
-+smb_ucs2_t *strncpyn_w(smb_ucs2_t *dest, const smb_ucs2_t *src,size_t n, smb_ucs2_t c);
-+size_t strhex_to_str_w(char *p, size_t len, const smb_ucs2_t *strhex);
-+BOOL in_list_w(smb_ucs2_t *s,smb_ucs2_t *list,BOOL casesensitive);
-+BOOL string_init_w(smb_ucs2_t **dest,const smb_ucs2_t *src);
-+void string_free_w(smb_ucs2_t **s);
-+BOOL string_set_w(smb_ucs2_t **dest,const smb_ucs2_t *src);
-+void string_sub_w(smb_ucs2_t *s,const smb_ucs2_t *pattern,const smb_ucs2_t *insert, size_t len);
-+void fstring_sub_w(smb_ucs2_t *s,const smb_ucs2_t *pattern,const smb_ucs2_t *insert);
-+void pstring_sub_w(smb_ucs2_t *s,const smb_ucs2_t *pattern,smb_ucs2_t *insert);
-+void all_string_sub_w(smb_ucs2_t *s,const smb_ucs2_t *pattern,const smb_ucs2_t *insert, size_t len);
-+void split_at_last_component_w(smb_ucs2_t *path, smb_ucs2_t *front, smb_ucs2_t sep, smb_ucs2_t *back);
-+smb_ucs2_t *octal_string_w(int i);
-+smb_ucs2_t *string_truncate_w(smb_ucs2_t *s, size_t length);
-+smb_ucs2_t doscp2ucs2(int w);
-+int ucs2doscp(smb_ucs2_t w);
-+int rpcstr_pull(char* dest, void *src, int dest_len, int src_len, int flags);
-
--/* The following definitions come from libsmb/clifile.c */
-+/* The following definitions come from lib/wins_srv.c */
-
--uint32 unix_perms_to_wire(mode_t perms);
--BOOL cli_unix_symlink(struct cli_state *cli, const char *fname_src, const char *fname_dst);
--BOOL cli_unix_hardlink(struct cli_state *cli, const char *fname_src, const char *fname_dst);
--BOOL cli_unix_chmod(struct cli_state *cli, const char *fname, mode_t mode);
--BOOL cli_unix_chown(struct cli_state *cli, const char *fname, uid_t uid, gid_t gid);
--BOOL cli_rename(struct cli_state *cli, const char *fname_src, const char *fname_dst);
--BOOL cli_unlink(struct cli_state *cli, const char *fname);
--BOOL cli_mkdir(struct cli_state *cli, const char *dname);
--BOOL cli_rmdir(struct cli_state *cli, const char *dname);
--int cli_nt_delete_on_close(struct cli_state *cli, int fnum, BOOL flag);
--int cli_nt_create_full(struct cli_state *cli, const char *fname, uint32 DesiredAccess,
-- uint32 FileAttributes, uint32 ShareAccess,
-- uint32 CreateDisposition, uint32 CreateOptions);
--int cli_nt_create(struct cli_state *cli, const char *fname, uint32 DesiredAccess);
--int cli_open(struct cli_state *cli, const char *fname, int flags, int share_mode);
--BOOL cli_close(struct cli_state *cli, int fnum);
--NTSTATUS cli_locktype(struct cli_state *cli, int fnum,
-- uint32 offset, uint32 len, int timeout, unsigned char locktype);
--BOOL cli_lock(struct cli_state *cli, int fnum,
-- uint32 offset, uint32 len, int timeout, enum brl_type lock_type);
--BOOL cli_unlock(struct cli_state *cli, int fnum, uint32 offset, uint32 len);
--BOOL cli_lock64(struct cli_state *cli, int fnum,
-- SMB_BIG_UINT offset, SMB_BIG_UINT len, int timeout, enum brl_type lock_type);
--BOOL cli_unlock64(struct cli_state *cli, int fnum, SMB_BIG_UINT offset, SMB_BIG_UINT len);
--BOOL cli_getattrE(struct cli_state *cli, int fd,
-- uint16 *attr, size_t *size,
-- time_t *c_time, time_t *a_time, time_t *m_time);
--BOOL cli_getatr(struct cli_state *cli, const char *fname,
-- uint16 *attr, size_t *size, time_t *t);
--BOOL cli_setatr(struct cli_state *cli, const char *fname, uint16 attr, time_t t);
--BOOL cli_chkpath(struct cli_state *cli, const char *path);
--BOOL cli_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail);
--int cli_ctemp(struct cli_state *cli, const char *path, char **tmp_path);
-+BOOL wins_srv_load_list( char *src );
-+struct in_addr wins_srv_ip( void );
-+void wins_srv_died( struct in_addr boothill_ip );
-+unsigned long wins_srv_count( void );
-
--/* The following definitions come from libsmb/clilist.c */
-+/* The following definitions come from libsmb/cli_dfs.c */
-
--int cli_list_new(struct cli_state *cli,const char *Mask,uint16 attribute,
-- void (*fn)(file_info *, const char *, void *), void *state);
--int cli_list_old(struct cli_state *cli,const char *Mask,uint16 attribute,
-- void (*fn)(file_info *, const char *, void *), void *state);
--int cli_list(struct cli_state *cli,const char *Mask,uint16 attribute,
-- void (*fn)(file_info *, const char *, void *), void *state);
-+struct cli_state *cli_dfs_initialise(struct cli_state *cli, char *system_name,
-+ struct ntuser_creds *creds);
-+NTSTATUS cli_dfs_exist(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-+ BOOL *dfs_exists);
-+NTSTATUS cli_dfs_add(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-+ char *entrypath, char *servername, char *sharename,
-+ char *comment, uint32 flags);
-+NTSTATUS cli_dfs_remove(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-+ char *entrypath, char *servername, char *sharename);
-+NTSTATUS cli_dfs_get_info(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-+ char *entrypath, char *servername, char *sharename,
-+ uint32 info_level, DFS_INFO_CTR *ctr);
-+NTSTATUS cli_dfs_enum(struct cli_state *cli, TALLOC_CTX *mem_ctx,
-+ uint32 info_level, DFS_INFO_CTR *ctr);
-
- /* The following definitions come from libsmb/cli_lsarpc.c */
-
-@@ -355,13 +871,6 @@
- SEC_DESC_BUF **psdb);
- BOOL fetch_domain_sid( char *domain, char *remote_machine, DOM_SID *psid);
-
--/* The following definitions come from libsmb/climessage.c */
--
--BOOL cli_message_start(struct cli_state *cli, char *host, char *username,
-- int *grp);
--BOOL cli_message_text(struct cli_state *cli, char *msg, int len, int grp);
--BOOL cli_message_end(struct cli_state *cli, int grp);
--
- /* The following definitions come from libsmb/cli_netlogon.c */
-
- struct cli_state *cli_netlogon_initialise(struct cli_state *cli,
-@@ -395,12 +904,6 @@
- DATA_BLOB lm_response, DATA_BLOB nt_response,
- NET_USER_INFO_3 *info3);
-
--/* The following definitions come from libsmb/clioplock.c */
--
--BOOL cli_oplock_ack(struct cli_state *cli, int fnum, unsigned char level);
--void cli_oplock_handler(struct cli_state *cli,
-- BOOL (*handler)(struct cli_state *, int, unsigned char));
--
- /* The following definitions come from libsmb/cli_pipe_util.c */
-
- struct cli_state *cli_pipe_initialise(struct cli_state *cli, char *system_name,
-@@ -408,56 +911,6 @@
- struct ntuser_creds *creds);
- void cli_pipe_shutdown(struct cli_state *cli);
-
--/* The following definitions come from libsmb/cliprint.c */
--
--int cli_print_queue(struct cli_state *cli,
-- void (*fn)(struct print_job_info *));
--int cli_printjob_del(struct cli_state *cli, int job);
--
--/* The following definitions come from libsmb/clirap.c */
--
--BOOL cli_api_pipe(struct cli_state *cli, char *pipe_name,
-- uint16 *setup, uint32 setup_count, uint32 max_setup_count,
-- char *params, uint32 param_count, uint32 max_param_count,
-- char *data, uint32 data_count, uint32 max_data_count,
-- char **rparam, uint32 *rparam_count,
-- char **rdata, uint32 *rdata_count);
--BOOL cli_api(struct cli_state *cli,
-- char *param, int prcnt, int mprcnt,
-- char *data, int drcnt, int mdrcnt,
-- char **rparam, int *rprcnt,
-- char **rdata, int *rdrcnt);
--BOOL cli_NetWkstaUserLogon(struct cli_state *cli,char *user, char *workstation);
--int cli_RNetShareEnum(struct cli_state *cli, void (*fn)(const char *, uint32, const char *, void *), void *state);
--BOOL cli_NetServerEnum(struct cli_state *cli, char *workgroup, uint32 stype,
-- void (*fn)(const char *, uint32, const char *, void *),
-- void *state);
--BOOL cli_oem_change_password(struct cli_state *cli, const char *user, const char *new_password,
-- const char *old_password);
--BOOL cli_qpathinfo(struct cli_state *cli, const char *fname,
-- time_t *c_time, time_t *a_time, time_t *m_time,
-- size_t *size, uint16 *mode);
--BOOL cli_qpathinfo2(struct cli_state *cli, const char *fname,
-- time_t *c_time, time_t *a_time, time_t *m_time,
-- time_t *w_time, size_t *size, uint16 *mode,
-- SMB_INO_T *ino);
--BOOL cli_qfileinfo(struct cli_state *cli, int fnum,
-- uint16 *mode, size_t *size,
-- time_t *c_time, time_t *a_time, time_t *m_time,
-- time_t *w_time, SMB_INO_T *ino);
--BOOL cli_qfileinfo_test(struct cli_state *cli, int fnum, int level, char *outdata);
--NTSTATUS cli_qpathinfo_alt_name(struct cli_state *cli, const char *fname, fstring alt_name);
--
--/* The following definitions come from libsmb/clireadwrite.c */
--
--ssize_t cli_read(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t size);
--ssize_t cli_readraw(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t size);
--ssize_t cli_write(struct cli_state *cli,
-- int fnum, uint16 write_mode,
-- char *buf, off_t offset, size_t size);
--ssize_t cli_smbwrite(struct cli_state *cli,
-- int fnum, char *buf, off_t offset, size_t size1);
--
- /* The following definitions come from libsmb/cli_reg.c */
-
- struct cli_state *cli_winreg_initialise(struct cli_state *cli,
-@@ -546,12 +999,6 @@
- POLICY_HND *user_pol, uint16 switch_value,
- TALLOC_CTX *ctx, SEC_DESC_BUF **sec_desc_buf);
-
--/* The following definitions come from libsmb/clisecdesc.c */
--
--SEC_DESC *cli_query_secdesc(struct cli_state *cli, int fnum,
-- TALLOC_CTX *mem_ctx);
--BOOL cli_set_secdesc(struct cli_state *cli, int fnum, SEC_DESC *sd);
--
- /* The following definitions come from libsmb/cli_spoolss.c */
-
- struct cli_state *cli_spoolss_initialise(struct cli_state *cli,
-@@ -632,805 +1079,360 @@
- TALLOC_CTX *mem_ctx,
- uint32 switch_value, SRV_INFO_CTR *ctr);
-
--/* The following definitions come from libsmb/clistr.c */
--
--int clistr_push(struct cli_state *cli, void *dest, const char *src, int dest_len, int flags);
--int clistr_pull(struct cli_state *cli, char *dest, const void *src, int dest_len, int src_len, int flags);
--int clistr_align_out(struct cli_state *cli, const void *p, int flags);
--int clistr_align_in(struct cli_state *cli, const void *p, int flags);
--
--/* The following definitions come from libsmb/clitrans.c */
--
--BOOL cli_send_trans(struct cli_state *cli, int trans,
-- const char *pipe_name,
-- int fid, int flags,
-- uint16 *setup, int lsetup, int msetup,
-- char *param, int lparam, int mparam,
-- char *data, int ldata, int mdata);
--BOOL cli_receive_trans(struct cli_state *cli,int trans,
-- char **param, int *param_len,
-- char **data, int *data_len);
--BOOL cli_send_nt_trans(struct cli_state *cli,
-- int function,
-- int flags,
-- uint16 *setup, int lsetup, int msetup,
-- char *param, int lparam, int mparam,
-- char *data, int ldata, int mdata);
--BOOL cli_receive_nt_trans(struct cli_state *cli,
-- char **param, int *param_len,
-- char **data, int *data_len);
--
--/* The following definitions come from libsmb/credentials.c */
--
--char *credstr(const uchar *cred);
--void cred_session_key(const DOM_CHAL *clnt_chal, const DOM_CHAL *srv_chal, const uchar *pass,
-- uchar session_key[8]);
--void cred_create(uchar session_key[8], DOM_CHAL *stor_cred, UTIME timestamp,
-- DOM_CHAL *cred);
--int cred_assert(DOM_CHAL *cred, uchar session_key[8], DOM_CHAL *stored_cred,
-- UTIME timestamp);
--BOOL clnt_deal_with_creds(uchar sess_key[8],
-- DOM_CRED *sto_clnt_cred, DOM_CRED *rcv_srv_cred);
--BOOL deal_with_creds(uchar sess_key[8],
-- DOM_CRED *sto_clnt_cred,
-- DOM_CRED *rcv_clnt_cred, DOM_CRED *rtn_srv_cred);
--
--/* The following definitions come from libsmb/doserr.c */
--
--char *dos_errstr(WERROR werror);
--
--/* The following definitions come from libsmb/errormap.c */
--
--NTSTATUS dos_to_ntstatus(int eclass, int ecode);
--void ntstatus_to_dos(NTSTATUS ntstatus, uint8 *eclass, uint32 *ecode);
--NTSTATUS werror_to_ntstatus(WERROR error);
--WERROR ntstatus_to_werror(NTSTATUS error);
--
--/* The following definitions come from libsmb/namequery.c */
--
--struct node_status *node_status_query(int fd,struct nmb_name *name,
-- struct in_addr to_ip, int *num_names);
--BOOL name_status_find(const char *q_name, int q_type, int type, struct in_addr to_ip, char *name);
--BOOL name_register(int fd, const char *name, int name_type,
-- struct in_addr name_ip, int opcode,
-- BOOL bcast,
-- struct in_addr to_ip, int *count);
--struct in_addr *name_query(int fd,const char *name,int name_type,
-- BOOL bcast,BOOL recurse,
-- struct in_addr to_ip, int *count);
--FILE *startlmhosts(char *fname);
--BOOL getlmhostsent( FILE *fp, pstring name, int *name_type, struct in_addr *ipaddr);
--void endlmhosts(FILE *fp);
--BOOL name_register_wins(const char *name, int name_type);
--BOOL name_resolve_bcast(const char *name, int name_type,
-- struct in_addr **return_ip_list, int *return_count);
--BOOL resolve_name(const char *name, struct in_addr *return_ip, int name_type);
--BOOL resolve_srv_name(const char* srv_name, fstring dest_host,
-- struct in_addr *ip);
--BOOL find_master_ip(char *group, struct in_addr *master_ip);
--BOOL lookup_dc_name(const char *srcname, const char *domain,
-- struct in_addr *dc_ip, char *ret_name);
--BOOL get_dc_list(BOOL pdc_only, const char *group, struct in_addr **ip_list, int *count);
--BOOL get_lmb_list(struct in_addr **ip_list, int *count);
--
--/* The following definitions come from libsmb/nmblib.c */
--
--void debug_nmb_packet(struct packet_struct *p);
--char *nmb_namestr(struct nmb_name *n);
--struct packet_struct *copy_packet(struct packet_struct *packet);
--void free_packet(struct packet_struct *packet);
--struct packet_struct *parse_packet(char *buf,int length,
-- enum packet_type packet_type);
--struct packet_struct *read_packet(int fd,enum packet_type packet_type);
--void make_nmb_name( struct nmb_name *n, const char *name, int type);
--BOOL nmb_name_equal(struct nmb_name *n1, struct nmb_name *n2);
--int build_packet(char *buf, struct packet_struct *p);
--BOOL send_packet(struct packet_struct *p);
--struct packet_struct *receive_packet(int fd,enum packet_type type,int t);
--struct packet_struct *receive_nmb_packet(int fd, int t, int trn_id);
--struct packet_struct *receive_dgram_packet(int fd, int t, char *mailslot_name);
--BOOL match_mailslot_name(struct packet_struct *p, char *mailslot_name);
--void sort_query_replies(char *data, int n, struct in_addr ip);
--char *dns_to_netbios_name(char *dns_name);
--int name_mangle( char *In, char *Out, char name_type );
--int name_extract(char *buf,int ofs,char *name);
--int name_len(char *s1);
--
--/* The following definitions come from libsmb/nterr.c */
--
--char *get_nt_error_msg(NTSTATUS nt_code);
--char *nt_errstr(NTSTATUS nt_code);
--char *get_nt_error_c_code(NTSTATUS nt_code);
--
--/* The following definitions come from libsmb/passchange.c */
--
--BOOL remote_password_change(const char *remote_machine, const char *user_name,
-- const char *old_passwd, const char *new_passwd,
-- char *err_str, size_t err_str_len);
--
--/* The following definitions come from libsmb/pwd_cache.c */
--
--void pwd_init(struct pwd_info *pwd);
--BOOL pwd_is_nullpwd(const struct pwd_info *pwd);
--BOOL pwd_compare(struct pwd_info *pwd1, struct pwd_info *pwd2);
--void pwd_read(struct pwd_info *pwd, char *passwd_report, BOOL do_encrypt);
--void pwd_set_nullpwd(struct pwd_info *pwd);
--void pwd_set_cleartext(struct pwd_info *pwd, char *clr);
--void pwd_get_cleartext(struct pwd_info *pwd, char *clr);
--void pwd_set_lm_nt_16(struct pwd_info *pwd, uchar lm_pwd[16], uchar nt_pwd[16]);
--void pwd_get_lm_nt_16(struct pwd_info *pwd, uchar lm_pwd[16], uchar nt_pwd[16]);
--void pwd_make_lm_nt_16(struct pwd_info *pwd, char *clr);
--void pwd_make_lm_nt_owf(struct pwd_info *pwd, uchar cryptkey[8]);
--void pwd_get_lm_nt_owf(struct pwd_info *pwd, uchar lm_owf[24], uchar nt_owf[24]);
--
--/* The following definitions come from lib/smbrun.c */
--
--int smbrun(char *cmd, int *outfd);
--
--/* The following definitions come from libsmb/smbdes.c */
--
--void E_P16(const unsigned char *p14,unsigned char *p16);
--void E_P24(const unsigned char *p21, const unsigned char *c8, unsigned char *p24);
--void D_P16(const unsigned char *p14, const unsigned char *in, unsigned char *out);
--void E_old_pw_hash( unsigned char *p14, const unsigned char *in, unsigned char *out);
--void cred_hash1(unsigned char *out, const unsigned char *in, const unsigned char *key);
--void cred_hash2(unsigned char *out, const unsigned char *in, const unsigned char *key);
--void cred_hash3(unsigned char *out, unsigned char *in, const unsigned char *key, int forw);
--void SamOEMhash( unsigned char *data, const unsigned char *key, int val);
--void sam_pwd_hash(unsigned int rid, const uchar *in, uchar *out, int forw);
--
--/* The following definitions come from libsmb/smbencrypt.c */
-+/* The following definitions come from libsmb/cliconnect.c */
-
--void SMBencrypt(const uchar *passwd, uchar *c8, uchar *p24);
--void E_md4hash(const uchar *passwd, uchar *p16);
--void nt_lm_owf_gen(char *pwd, uchar nt_p16[16], uchar p16[16]);
--void SMBOWFencrypt(uchar passwd[16], uchar *c8, uchar p24[24]);
--void NTLMSSPOWFencrypt(uchar passwd[8], uchar *ntlmchalresp, uchar p24[24]);
--void SMBNTencrypt(const uchar *passwd, uchar *c8, uchar *p24);
--BOOL make_oem_passwd_hash(char data[516], const char *passwd, uchar old_pw_hash[16], BOOL unicode);
--BOOL encode_pw_buffer(char buffer[516], const char *new_pass,
-- int new_pw_len, BOOL nt_pass_set);
--BOOL decode_pw_buffer(char in_buffer[516], char *new_pwrd,
-- int new_pwrd_size, uint32 *new_pw_len,
-- uchar nt_p16[16], uchar p16[16]);
--void nt_owf_genW(const UNISTR2 *pwd, uchar nt_p16[16]);
-+BOOL cli_session_setup(struct cli_state *cli,
-+ char *user,
-+ char *pass, int passlen,
-+ char *ntpass, int ntpasslen,
-+ char *workgroup);
-+BOOL cli_ulogoff(struct cli_state *cli);
-+BOOL cli_send_tconX(struct cli_state *cli,
-+ const char *share, const char *dev, const char *pass, int passlen);
-+BOOL cli_tdis(struct cli_state *cli);
-+void cli_negprot_send(struct cli_state *cli);
-+BOOL cli_negprot(struct cli_state *cli);
-+BOOL cli_session_request(struct cli_state *cli,
-+ struct nmb_name *calling, struct nmb_name *called);
-+BOOL cli_connect(struct cli_state *cli, const char *host, struct in_addr *ip);
-+BOOL cli_establish_connection(struct cli_state *cli,
-+ char *dest_host, struct in_addr *dest_ip,
-+ struct nmb_name *calling, struct nmb_name *called,
-+ char *service, char *service_type,
-+ BOOL do_shutdown, BOOL do_tcon);
-+NTSTATUS cli_full_connection(struct cli_state **output_cli,
-+ const char *my_name, const char *dest_host,
-+ struct in_addr *dest_ip, int port,
-+ char *service, char *service_type,
-+ char *user, char *domain,
-+ char *password, int pass_len) ;
-+BOOL attempt_netbios_session_request(struct cli_state *cli, char *srchost, char *desthost,
-+ struct in_addr *pdest_ip);
-
--/* The following definitions come from libsmb/smberr.c */
-+/* The following definitions come from libsmb/clidgram.c */
-
--char *smb_dos_err_name(uint8 class, uint16 num);
--char *get_dos_error_msg(WERROR result);
--char *smb_dos_err_class(uint8 class);
--char *smb_dos_errstr(char *inbuf);
--WERROR map_werror_from_unix(int error);
-+int cli_send_mailslot(int dgram_sock, BOOL unique, char *mailslot,
-+ char *buf, int len,
-+ const char *srcname, int src_type,
-+ const char *dstname, int dest_type,
-+ struct in_addr dest_ip, struct in_addr src_ip,
-+ int dest_port, int src_port);
-+int cli_get_response(int dgram_sock, BOOL unique, char *mailslot, char *buf, int bufsiz);
-+int cli_get_backup_list(const char *myname, const char *send_to_name);
-+int cli_get_backup_server(char *my_name, char *target, char *servername, int namesize);
-
--/* The following definitions come from libsmb/unexpected.c */
-+/* The following definitions come from libsmb/clientgen.c */
-
--void unexpected_packet(struct packet_struct *p);
--void clear_unexpected(time_t t);
--struct packet_struct *receive_unexpected(enum packet_type packet_type, int id,
-- char *mailslot_name);
-+int cli_set_port(struct cli_state *cli, int port);
-+BOOL cli_receive_smb(struct cli_state *cli);
-+BOOL cli_send_smb(struct cli_state *cli);
-+void cli_setup_packet(struct cli_state *cli);
-+void cli_setup_bcc(struct cli_state *cli, void *p);
-+void cli_init_creds(struct cli_state *cli, const struct ntuser_creds *usr);
-+struct cli_state *cli_initialise(struct cli_state *cli);
-+void cli_shutdown(struct cli_state *cli);
-+void cli_sockopt(struct cli_state *cli, char *options);
-+uint16 cli_setpid(struct cli_state *cli, uint16 pid);
-
--/* The following definitions come from lib/snprintf.c */
-+/* The following definitions come from libsmb/clierror.c */
-
-+char *cli_errstr(struct cli_state *cli);
-+NTSTATUS cli_nt_error(struct cli_state *cli);
-+void cli_dos_error(struct cli_state *cli, uint8 *eclass, uint32 *ecode);
-+int cli_errno_from_dos(uint8 eclass, uint32 num);
-+int cli_errno_from_nt(NTSTATUS status);
-+int cli_errno(struct cli_state *cli);
-+BOOL cli_is_error(struct cli_state *cli);
-+BOOL cli_is_nt_error(struct cli_state *cli);
-+BOOL cli_is_dos_error(struct cli_state *cli);
-
--/* The following definitions come from lib/substitute.c */
-+/* The following definitions come from libsmb/clifile.c */
-
--void standard_sub_basic(char *str);
--void standard_sub_advanced(int snum, char *user, char *connectpath, gid_t gid, char *str);
--void standard_sub_conn(connection_struct *conn, char *str);
--void standard_sub_home(int snum, char *user, char *str);
--void standard_sub_snum(int snum, char *str);
--void standard_sub_vuser(char *str, user_struct *vuser);
--void standard_sub_vsnum(char *str, user_struct *vuser, int snum);
-+uint32 unix_perms_to_wire(mode_t perms);
-+BOOL cli_unix_symlink(struct cli_state *cli, const char *fname_src, const char *fname_dst);
-+BOOL cli_unix_hardlink(struct cli_state *cli, const char *fname_src, const char *fname_dst);
-+BOOL cli_unix_chmod(struct cli_state *cli, const char *fname, mode_t mode);
-+BOOL cli_unix_chown(struct cli_state *cli, const char *fname, uid_t uid, gid_t gid);
-+BOOL cli_rename(struct cli_state *cli, const char *fname_src, const char *fname_dst);
-+BOOL cli_unlink(struct cli_state *cli, const char *fname);
-+BOOL cli_mkdir(struct cli_state *cli, const char *dname);
-+BOOL cli_rmdir(struct cli_state *cli, const char *dname);
-+int cli_nt_delete_on_close(struct cli_state *cli, int fnum, BOOL flag);
-+int cli_nt_create_full(struct cli_state *cli, const char *fname, uint32 DesiredAccess,
-+ uint32 FileAttributes, uint32 ShareAccess,
-+ uint32 CreateDisposition, uint32 CreateOptions);
-+int cli_nt_create(struct cli_state *cli, const char *fname, uint32 DesiredAccess);
-+int cli_open(struct cli_state *cli, const char *fname, int flags, int share_mode);
-+BOOL cli_close(struct cli_state *cli, int fnum);
-+NTSTATUS cli_locktype(struct cli_state *cli, int fnum,
-+ uint32 offset, uint32 len, int timeout, unsigned char locktype);
-+BOOL cli_lock(struct cli_state *cli, int fnum,
-+ uint32 offset, uint32 len, int timeout, enum brl_type lock_type);
-+BOOL cli_unlock(struct cli_state *cli, int fnum, uint32 offset, uint32 len);
-+BOOL cli_lock64(struct cli_state *cli, int fnum,
-+ SMB_BIG_UINT offset, SMB_BIG_UINT len, int timeout, enum brl_type lock_type);
-+BOOL cli_unlock64(struct cli_state *cli, int fnum, SMB_BIG_UINT offset, SMB_BIG_UINT len);
-+BOOL cli_getattrE(struct cli_state *cli, int fd,
-+ uint16 *attr, size_t *size,
-+ time_t *c_time, time_t *a_time, time_t *m_time);
-+BOOL cli_getatr(struct cli_state *cli, const char *fname,
-+ uint16 *attr, size_t *size, time_t *t);
-+BOOL cli_setatr(struct cli_state *cli, const char *fname, uint16 attr, time_t t);
-+BOOL cli_chkpath(struct cli_state *cli, const char *path);
-+BOOL cli_dskattr(struct cli_state *cli, int *bsize, int *total, int *avail);
-+int cli_ctemp(struct cli_state *cli, const char *path, char **tmp_path);
-
--/* The following definitions come from lib/sysacls.c */
-+/* The following definitions come from libsmb/clilist.c */
-
--int sys_acl_get_entry( SMB_ACL_T the_acl, int entry_id, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_get_tag_type( SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *tag_type_p);
--int sys_acl_get_permset( SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
--void *sys_acl_get_qualifier( SMB_ACL_ENTRY_T entry_d);
--SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type);
--SMB_ACL_T sys_acl_get_fd(int fd);
--int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset);
--int sys_acl_add_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
--int sys_acl_get_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
--char *sys_acl_to_text( SMB_ACL_T the_acl, ssize_t *plen);
--SMB_ACL_T sys_acl_init( int count);
--int sys_acl_create_entry( SMB_ACL_T *pacl, SMB_ACL_ENTRY_T *pentry);
--int sys_acl_set_tag_type( SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tagtype);
--int sys_acl_set_qualifier( SMB_ACL_ENTRY_T entry, void *qual);
--int sys_acl_set_permset( SMB_ACL_ENTRY_T entry, SMB_ACL_PERMSET_T permset);
--int sys_acl_valid( SMB_ACL_T theacl );
--int sys_acl_set_file( const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl);
--int sys_acl_set_fd( int fd, SMB_ACL_T theacl);
--int sys_acl_delete_def_file(const char *name);
--int sys_acl_free_text(char *text);
--int sys_acl_free_acl(SMB_ACL_T the_acl) ;
--int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
--int sys_acl_get_entry( SMB_ACL_T the_acl, int entry_id, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_get_tag_type( SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *tag_type_p);
--int sys_acl_get_permset( SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
--void *sys_acl_get_qualifier( SMB_ACL_ENTRY_T entry_d);
--SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type);
--SMB_ACL_T sys_acl_get_fd(int fd);
--int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset);
--int sys_acl_add_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
--int sys_acl_get_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
--char *sys_acl_to_text( SMB_ACL_T the_acl, ssize_t *plen);
--SMB_ACL_T sys_acl_init( int count);
--int sys_acl_create_entry( SMB_ACL_T *pacl, SMB_ACL_ENTRY_T *pentry);
--int sys_acl_set_tag_type( SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tagtype);
--int sys_acl_set_qualifier( SMB_ACL_ENTRY_T entry, void *qual);
--int sys_acl_set_permset( SMB_ACL_ENTRY_T entry, SMB_ACL_PERMSET_T permset);
--int sys_acl_valid( SMB_ACL_T theacl );
--int sys_acl_set_file( const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl);
--int sys_acl_set_fd( int fd, SMB_ACL_T theacl);
--int sys_acl_delete_def_file(const char *name);
--int sys_acl_free_text(char *text);
--int sys_acl_free_acl(SMB_ACL_T the_acl) ;
--int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
--int sys_acl_get_entry(SMB_ACL_T acl_d, int entry_id, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_get_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *type_p);
--int sys_acl_get_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
--void *sys_acl_get_qualifier(SMB_ACL_ENTRY_T entry_d);
--SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL_TYPE_T type);
--SMB_ACL_T sys_acl_get_fd(int fd);
--int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset_d);
--int sys_acl_add_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
--int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
--char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p);
--SMB_ACL_T sys_acl_init(int count);
--int sys_acl_create_entry(SMB_ACL_T *acl_p, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_set_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T tag_type);
--int sys_acl_set_qualifier(SMB_ACL_ENTRY_T entry_d, void *qual_p);
--int sys_acl_set_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T permset_d);
--int sys_acl_valid(SMB_ACL_T acl_d);
--int sys_acl_set_file(const char *name, SMB_ACL_TYPE_T type, SMB_ACL_T acl_d);
--int sys_acl_set_fd(int fd, SMB_ACL_T acl_d);
--int sys_acl_delete_def_file(const char *path);
--int sys_acl_free_text(char *text);
--int sys_acl_free_acl(SMB_ACL_T acl_d) ;
--int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
--int sys_acl_get_entry(SMB_ACL_T acl_d, int entry_id, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_get_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *type_p);
--int sys_acl_get_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
--void *sys_acl_get_qualifier(SMB_ACL_ENTRY_T entry_d);
--SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL_TYPE_T type);
--SMB_ACL_T sys_acl_get_fd(int fd);
--int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset_d);
--int sys_acl_add_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
--int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
--char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p);
--SMB_ACL_T sys_acl_init(int count);
--int sys_acl_create_entry(SMB_ACL_T *acl_p, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_set_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T tag_type);
--int sys_acl_set_qualifier(SMB_ACL_ENTRY_T entry_d, void *qual_p);
--int sys_acl_set_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T permset_d);
--int sys_acl_valid(SMB_ACL_T acl_d);
--int sys_acl_set_file(const char *name, SMB_ACL_TYPE_T type, SMB_ACL_T acl_d);
--int sys_acl_set_fd(int fd, SMB_ACL_T acl_d);
--int sys_acl_delete_def_file(const char *path);
--int sys_acl_free_text(char *text);
--int sys_acl_free_acl(SMB_ACL_T acl_d) ;
--int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
--int sys_acl_get_entry(SMB_ACL_T acl_d, int entry_id, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_get_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *type_p);
--int sys_acl_get_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
--void *sys_acl_get_qualifier(SMB_ACL_ENTRY_T entry_d);
--SMB_ACL_T sys_acl_get_file(const char *path_p, SMB_ACL_TYPE_T type);
--SMB_ACL_T sys_acl_get_fd(int fd);
--int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset_d);
--int sys_acl_add_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
--int sys_acl_get_perm(SMB_ACL_PERMSET_T permset_d, SMB_ACL_PERM_T perm);
--char *sys_acl_to_text(SMB_ACL_T acl_d, ssize_t *len_p);
--SMB_ACL_T sys_acl_init(int count);
--int sys_acl_create_entry(SMB_ACL_T *acl_p, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_set_tag_type(SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T tag_type);
--int sys_acl_set_qualifier(SMB_ACL_ENTRY_T entry_d, void *qual_p);
--int sys_acl_set_permset(SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T permset_d);
--int sys_acl_valid(SMB_ACL_T acl_d);
--int sys_acl_set_file(const char *name, SMB_ACL_TYPE_T type, SMB_ACL_T acl_d);
--int sys_acl_set_fd(int fd, SMB_ACL_T acl_d);
--int sys_acl_delete_def_file(const char *name);
--int sys_acl_free_text(char *text);
--int sys_acl_free_acl(SMB_ACL_T acl_d) ;
--int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
--int sys_acl_get_entry( SMB_ACL_T theacl, int entry_id, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_get_tag_type( SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *tag_type_p);
--int sys_acl_get_permset( SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
--void *sys_acl_get_qualifier( SMB_ACL_ENTRY_T entry_d);
--SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type);
--SMB_ACL_T sys_acl_get_fd(int fd);
--int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset);
--int sys_acl_add_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
--char *sys_acl_to_text( SMB_ACL_T theacl, ssize_t *plen);
--SMB_ACL_T sys_acl_init( int count);
--int sys_acl_create_entry( SMB_ACL_T *pacl, SMB_ACL_ENTRY_T *pentry);
--int sys_acl_set_tag_type( SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tagtype);
--int sys_acl_set_qualifier( SMB_ACL_ENTRY_T entry, void *qual);
--int sys_acl_set_permset( SMB_ACL_ENTRY_T entry, SMB_ACL_PERMSET_T permset);
--int sys_acl_valid( SMB_ACL_T theacl );
--int sys_acl_set_file( const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl);
--int sys_acl_set_fd( int fd, SMB_ACL_T theacl);
--int sys_acl_delete_def_file(const char *name);
--int sys_acl_get_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
--int sys_acl_free_text(char *text);
--int sys_acl_free_acl(SMB_ACL_T posix_acl);
--int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
--int sys_acl_get_entry( SMB_ACL_T the_acl, int entry_id, SMB_ACL_ENTRY_T *entry_p);
--int sys_acl_get_tag_type( SMB_ACL_ENTRY_T entry_d, SMB_ACL_TAG_T *tag_type_p);
--int sys_acl_get_permset( SMB_ACL_ENTRY_T entry_d, SMB_ACL_PERMSET_T *permset_p);
--void *sys_acl_get_qualifier( SMB_ACL_ENTRY_T entry_d);
--SMB_ACL_T sys_acl_get_file( const char *path_p, SMB_ACL_TYPE_T type);
--SMB_ACL_T sys_acl_get_fd(int fd);
--int sys_acl_clear_perms(SMB_ACL_PERMSET_T permset);
--int sys_acl_add_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
--int sys_acl_get_perm( SMB_ACL_PERMSET_T permset, SMB_ACL_PERM_T perm);
--char *sys_acl_to_text( SMB_ACL_T the_acl, ssize_t *plen);
--int sys_acl_free_text(char *text);
--SMB_ACL_T sys_acl_init( int count);
--int sys_acl_create_entry( SMB_ACL_T *pacl, SMB_ACL_ENTRY_T *pentry);
--int sys_acl_set_tag_type( SMB_ACL_ENTRY_T entry, SMB_ACL_TAG_T tagtype);
--int sys_acl_set_qualifier( SMB_ACL_ENTRY_T entry, void *qual);
--int sys_acl_set_permset( SMB_ACL_ENTRY_T entry, SMB_ACL_PERMSET_T permset);
--int sys_acl_valid( SMB_ACL_T theacl );
--int sys_acl_set_file( const char *name, SMB_ACL_TYPE_T acltype, SMB_ACL_T theacl);
--int sys_acl_set_fd( int fd, SMB_ACL_T theacl);
--int sys_acl_delete_def_file(const char *name);
--int sys_acl_free_acl(SMB_ACL_T the_acl) ;
--int sys_acl_free_qualifier(void *qual, SMB_ACL_TAG_T tagtype);
-+int cli_list_new(struct cli_state *cli,const char *Mask,uint16 attribute,
-+ void (*fn)(file_info *, const char *, void *), void *state);
-+int cli_list_old(struct cli_state *cli,const char *Mask,uint16 attribute,
-+ void (*fn)(file_info *, const char *, void *), void *state);
-+int cli_list(struct cli_state *cli,const char *Mask,uint16 attribute,
-+ void (*fn)(file_info *, const char *, void *), void *state);
-
--/* The following definitions come from lib/system.c */
-+/* The following definitions come from libsmb/climessage.c */
-
--int sys_usleep(long usecs);
--ssize_t sys_read(int fd, void *buf, size_t count);
--ssize_t sys_write(int fd, const void *buf, size_t count);
--ssize_t sys_send(int s, const void *msg, size_t len, int flags);
--ssize_t sys_sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen);
--ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen);
--int sys_fcntl_ptr(int fd, int cmd, void *arg);
--int sys_fcntl_long(int fd, int cmd, long arg);
--int sys_stat(const char *fname,SMB_STRUCT_STAT *sbuf);
--int sys_fstat(int fd,SMB_STRUCT_STAT *sbuf);
--int sys_lstat(const char *fname,SMB_STRUCT_STAT *sbuf);
--int sys_ftruncate(int fd, SMB_OFF_T offset);
--SMB_OFF_T sys_lseek(int fd, SMB_OFF_T offset, int whence);
--int sys_fseek(FILE *fp, SMB_OFF_T offset, int whence);
--SMB_OFF_T sys_ftell(FILE *fp);
--int sys_creat(const char *path, mode_t mode);
--int sys_open(const char *path, int oflag, mode_t mode);
--FILE *sys_fopen(const char *path, const char *type);
--SMB_STRUCT_DIRENT *sys_readdir(DIR *dirp);
--int sys_mknod(const char *path, mode_t mode, SMB_DEV_T dev);
--char *sys_realpath(const char *path, char *resolved_path);
--int sys_waitpid(pid_t pid,int *status,int options);
--char *sys_getwd(char *s);
--int sys_symlink(const char *oldpath, const char *newpath);
--int sys_readlink(const char *path, char *buf, size_t bufsiz);
--int sys_link(const char *oldpath, const char *newpath);
--int sys_chown(const char *fname,uid_t uid,gid_t gid);
--int sys_chroot(const char *dname);
--struct hostent *sys_gethostbyname(const char *name);
--void oplock_set_capability(BOOL this_process, BOOL inherit);
--long sys_random(void);
--void sys_srandom(unsigned int seed);
--int groups_max(void);
--int sys_getgroups(int setlen, gid_t *gidset);
--int sys_setgroups(int setlen, gid_t *gidset);
--void sys_setpwent(void);
--struct passwd *sys_getpwent(void);
--void sys_endpwent(void);
--struct passwd *sys_getpwnam(const char *name);
--struct passwd *sys_getpwuid(uid_t uid);
--int wsys_stat(const smb_ucs2_t *wfname,SMB_STRUCT_STAT *sbuf);
--int wsys_lstat(const smb_ucs2_t *wfname,SMB_STRUCT_STAT *sbuf);
--int wsys_creat(const smb_ucs2_t *wfname, mode_t mode);
--int wsys_open(const smb_ucs2_t *wfname, int oflag, mode_t mode);
--FILE *wsys_fopen(const smb_ucs2_t *wfname, const char *type);
--DIR *wsys_opendir(const smb_ucs2_t *wfname);
--smb_ucs2_t *wsys_getwd(smb_ucs2_t *s);
--int wsys_chown(const smb_ucs2_t *wfname, uid_t uid, gid_t gid);
--int wsys_chroot(const smb_ucs2_t *wfname);
--pid_t sys_fork(void);
--pid_t sys_getpid(void);
--int sys_popen(const char *command);
--int sys_pclose(int fd);
--void *sys_dlopen(const char *name, int flags);
--void *sys_dlsym(void *handle, char *symbol);
--int sys_dlclose (void *handle);
--const char *sys_dlerror(void);
--void sys_adminlog(int priority, const char *format_str, ...);
-+BOOL cli_message_start(struct cli_state *cli, char *host, char *username,
-+ int *grp);
-+BOOL cli_message_text(struct cli_state *cli, char *msg, int len, int grp);
-+BOOL cli_message_end(struct cli_state *cli, int grp);
-
--/* The following definitions come from lib/talloc.c */
-+/* The following definitions come from libsmb/clioplock.c */
-
--TALLOC_CTX *talloc_init(void);
--void *talloc(TALLOC_CTX *t, size_t size);
--void *talloc_realloc(TALLOC_CTX *t, void *ptr, size_t size);
--void talloc_destroy_pool(TALLOC_CTX *t);
--void talloc_destroy(TALLOC_CTX *t);
--size_t talloc_pool_size(TALLOC_CTX *t);
--const char * talloc_pool_name(TALLOC_CTX const *t);
--void *talloc_zero(TALLOC_CTX *t, size_t size);
--void *talloc_memdup(TALLOC_CTX *t, const void *p, size_t size);
--char *talloc_strdup(TALLOC_CTX *t, const char *p);
--char *talloc_describe_all(TALLOC_CTX *rt);
--void talloc_get_allocation(TALLOC_CTX *t,
-- size_t *total_bytes,
-- int *n_chunks);
-+BOOL cli_oplock_ack(struct cli_state *cli, int fnum, unsigned char level);
-+void cli_oplock_handler(struct cli_state *cli,
-+ BOOL (*handler)(struct cli_state *, int, unsigned char));
-
--/* The following definitions come from lib/time.c */
-+/* The following definitions come from libsmb/cliprint.c */
-
--time_t get_time_t_min(void);
--time_t get_time_t_max(void);
--void GetTimeOfDay(struct timeval *tval);
--void TimeInit(void);
--void get_process_uptime(struct timeval *ret_time);
--int TimeDiff(time_t t);
--struct tm *LocalTime(time_t *t);
--time_t nt_time_to_unix(NTTIME *nt);
--time_t nt_time_to_unix_abs(NTTIME *nt);
--time_t interpret_long_date(char *p);
--void unix_to_nt_time(NTTIME *nt, time_t t);
--void unix_to_nt_time_abs(NTTIME *nt, time_t t);
--void put_long_date(char *p,time_t t);
--BOOL null_mtime(time_t mtime);
--void put_dos_date(char *buf,int offset,time_t unixdate);
--void put_dos_date2(char *buf,int offset,time_t unixdate);
--void put_dos_date3(char *buf,int offset,time_t unixdate);
--time_t make_unix_date(void *date_ptr);
--time_t make_unix_date2(void *date_ptr);
--time_t make_unix_date3(void *date_ptr);
--char *http_timestring(time_t t);
--char *timestring(BOOL hires);
--time_t get_create_time(SMB_STRUCT_STAT *st,BOOL fake_dirs);
--void init_nt_time(NTTIME *nt);
-+int cli_print_queue(struct cli_state *cli,
-+ void (*fn)(struct print_job_info *));
-+int cli_printjob_del(struct cli_state *cli, int job);
-
--/* The following definitions come from lib/ufc.c */
-+/* The following definitions come from libsmb/clirap.c */
-
--char *ufc_crypt(const char *key,const char *salt);
-+BOOL cli_api_pipe(struct cli_state *cli, char *pipe_name,
-+ uint16 *setup, uint32 setup_count, uint32 max_setup_count,
-+ char *params, uint32 param_count, uint32 max_param_count,
-+ char *data, uint32 data_count, uint32 max_data_count,
-+ char **rparam, uint32 *rparam_count,
-+ char **rdata, uint32 *rdata_count);
-+BOOL cli_api(struct cli_state *cli,
-+ char *param, int prcnt, int mprcnt,
-+ char *data, int drcnt, int mdrcnt,
-+ char **rparam, int *rprcnt,
-+ char **rdata, int *rdrcnt);
-+BOOL cli_NetWkstaUserLogon(struct cli_state *cli,char *user, char *workstation);
-+int cli_RNetShareEnum(struct cli_state *cli, void (*fn)(const char *, uint32, const char *, void *), void *state);
-+BOOL cli_NetServerEnum(struct cli_state *cli, char *workgroup, uint32 stype,
-+ void (*fn)(const char *, uint32, const char *, void *),
-+ void *state);
-+BOOL cli_oem_change_password(struct cli_state *cli, const char *user, const char *new_password,
-+ const char *old_password);
-+BOOL cli_qpathinfo(struct cli_state *cli, const char *fname,
-+ time_t *c_time, time_t *a_time, time_t *m_time,
-+ size_t *size, uint16 *mode);
-+BOOL cli_qpathinfo2(struct cli_state *cli, const char *fname,
-+ time_t *c_time, time_t *a_time, time_t *m_time,
-+ time_t *w_time, size_t *size, uint16 *mode,
-+ SMB_INO_T *ino);
-+BOOL cli_qfileinfo(struct cli_state *cli, int fnum,
-+ uint16 *mode, size_t *size,
-+ time_t *c_time, time_t *a_time, time_t *m_time,
-+ time_t *w_time, SMB_INO_T *ino);
-+BOOL cli_qfileinfo_test(struct cli_state *cli, int fnum, int level, char *outdata);
-+NTSTATUS cli_qpathinfo_alt_name(struct cli_state *cli, const char *fname, fstring alt_name);
-
--/* The following definitions come from lib/username.c */
-+/* The following definitions come from libsmb/clireadwrite.c */
-
--BOOL name_is_local(const char *name);
--char *get_user_home_dir(char *user);
--char *get_user_service_home_dir(char *user);
--BOOL map_username(char *user);
--struct passwd *Get_Pwnam(char *user,BOOL allow_change);
--BOOL user_in_group_list(char *user,char *gname);
--BOOL user_in_list(char *user,char *list);
--struct passwd *smb_getpwnam(char *user, BOOL allow_change);
-+ssize_t cli_read(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t size);
-+ssize_t cli_readraw(struct cli_state *cli, int fnum, char *buf, off_t offset, size_t size);
-+ssize_t cli_write(struct cli_state *cli,
-+ int fnum, uint16 write_mode,
-+ char *buf, off_t offset, size_t size);
-+ssize_t cli_smbwrite(struct cli_state *cli,
-+ int fnum, char *buf, off_t offset, size_t size1);
-
--/* The following definitions come from lib/util.c */
-+/* The following definitions come from libsmb/clisecdesc.c */
-
--char *tmpdir(void);
--BOOL in_group(gid_t group, gid_t current_gid, int ngroups, gid_t *groups);
--char *Atoic(char *p, int *n, char *c);
--char *get_numlist(char *p, uint32 **num, int *count);
--BOOL file_exist(char *fname,SMB_STRUCT_STAT *sbuf);
--time_t file_modtime(char *fname);
--BOOL directory_exist(char *dname,SMB_STRUCT_STAT *st);
--SMB_OFF_T get_file_size(char *file_name);
--char *attrib_string(uint16 mode);
--void show_msg(char *buf);
--void smb_setlen(char *buf,int len);
--int set_message(char *buf,int num_words,int num_bytes,BOOL zero);
--int set_message_bcc(char *buf,int num_bytes);
--int set_message_end(void *outbuf,void *end_ptr);
--void dos_clean_name(char *s);
--void unix_clean_name(char *s);
--void make_dir_struct(char *buf,char *mask,char *fname,SMB_OFF_T size,int mode,time_t date);
--void close_low_fds(void);
--int set_blocking(int fd, BOOL set);
--ssize_t transfer_file_internal(int infd, int outfd, size_t n, ssize_t (*read_fn)(int, void *, size_t),
-- ssize_t (*write_fn)(int, const void *, size_t));
--SMB_OFF_T transfer_file(int infd,int outfd,SMB_OFF_T n);
--void msleep(unsigned int t);
--void become_daemon(void);
--BOOL yesno(char *p);
--void *Realloc(void *p,size_t size);
--void safe_free(void *p);
--BOOL get_myname(char *my_name);
--int interpret_protocol(char *str,int def);
--BOOL is_ipaddress(const char *str);
--uint32 interpret_addr(const char *str);
--struct in_addr *interpret_addr2(const char *str);
--BOOL is_zero_ip(struct in_addr ip);
--void zero_ip(struct in_addr *ip);
--char *automount_lookup(char *user_name);
--char *automount_lookup(char *user_name);
--BOOL same_net(struct in_addr ip1,struct in_addr ip2,struct in_addr mask);
--BOOL process_exists(pid_t pid);
--char *uidtoname(uid_t uid);
--char *gidtoname(gid_t gid);
--uid_t nametouid(char *name);
--gid_t nametogid(char *name);
--void smb_panic(char *why);
--char *readdirname(DIR *p);
--BOOL is_in_path(char *name, name_compare_entry *namelist);
--void set_namearray(name_compare_entry **ppname_array, char *namelist);
--void free_namearray(name_compare_entry *name_array);
--BOOL fcntl_lock(int fd, int op, SMB_OFF_T offset, SMB_OFF_T count, int type);
--BOOL is_myname(char *s);
--const char* get_my_primary_ip (void);
--BOOL is_myname_or_ipaddr(char *s);
--void set_remote_arch(enum remote_arch_types type);
--enum remote_arch_types get_remote_arch(void);
--void out_ascii(FILE *f, unsigned char *buf,int len);
--void out_data(FILE *f,char *buf1,int len, int per_line);
--void print_asc(int level, unsigned char *buf,int len);
--void dump_data(int level,char *buf1,int len);
--char *tab_depth(int depth);
--int str_checksum(const char *s);
--void zero_free(void *p, size_t size);
--int set_maxfiles(int requested_max);
--BOOL reg_split_key(char *full_keyname, uint32 *reg_type, char *key_name);
--int smb_mkstemp(char *template);
--void *smb_xmalloc(size_t size);
--void *smb_xmemdup(const void *p, size_t size);
--char *smb_xstrdup(const char *s);
--int smb_xvasprintf(char **ptr, const char *format, va_list ap);
--void *memdup(void *p, size_t size);
--char *myhostname(void);
--char *lock_path(char *name);
--char *pid_path(char *name);
--char *parent_dirname(const char *path);
--BOOL ms_has_wild(char *s);
--BOOL mask_match(char *string, char *pattern, BOOL is_case_sensitive);
--BOOL unix_wild_match(char *pattern, char *string);
--DATA_BLOB data_blob(const void *p, size_t length);
--DATA_BLOB data_blob_talloc(TALLOC_CTX *mem_ctx, const void *p, size_t length);
--void data_blob_free(DATA_BLOB *d);
--void data_blob_clear(DATA_BLOB *d);
--int _Insure_trap_error(int a1, int a2, int a3, int a4, int a5, int a6);
-+SEC_DESC *cli_query_secdesc(struct cli_state *cli, int fnum,
-+ TALLOC_CTX *mem_ctx);
-+BOOL cli_set_secdesc(struct cli_state *cli, int fnum, SEC_DESC *sd);
-+
-+/* The following definitions come from libsmb/clistr.c */
-+
-+int clistr_push(struct cli_state *cli, void *dest, const char *src, int dest_len, int flags);
-+int clistr_pull(struct cli_state *cli, char *dest, const void *src, int dest_len, int src_len, int flags);
-+int clistr_align_out(struct cli_state *cli, const void *p, int flags);
-+int clistr_align_in(struct cli_state *cli, const void *p, int flags);
-
--/* The following definitions come from lib/util_file.c */
-+/* The following definitions come from libsmb/clitrans.c */
-
--BOOL do_file_lock(int fd, int waitsecs, int type);
--BOOL file_lock(int fd, int type, int secs, int *plock_depth);
--BOOL file_unlock(int fd, int *plock_depth);
--void *startfilepwent(char *pfile, char *s_readbuf, int bufsize,
-- int *file_lock_depth, BOOL update);
--void endfilepwent(void *vp, int *file_lock_depth);
--SMB_BIG_UINT getfilepwpos(void *vp);
--BOOL setfilepwpos(void *vp, SMB_BIG_UINT tok);
--int getfileline(void *vp, char *linebuf, int linebuf_size);
--char *fgets_slash(char *s2,int maxlen,FILE *f);
--char *file_pload(char *syscmd, size_t *size);
--char *fd_load(int fd, size_t *size);
--char *file_load(char *fname, size_t *size);
--char **file_lines_load(char *fname, int *numlines, BOOL convert);
--char **fd_lines_load(int fd, int *numlines, BOOL convert);
--char **file_lines_pload(char *syscmd, int *numlines, BOOL convert);
--void file_lines_free(char **lines);
--void file_lines_slashcont(char **lines);
-+BOOL cli_send_trans(struct cli_state *cli, int trans,
-+ const char *pipe_name,
-+ int fid, int flags,
-+ uint16 *setup, int lsetup, int msetup,
-+ char *param, int lparam, int mparam,
-+ char *data, int ldata, int mdata);
-+BOOL cli_receive_trans(struct cli_state *cli,int trans,
-+ char **param, int *param_len,
-+ char **data, int *data_len);
-+BOOL cli_send_nt_trans(struct cli_state *cli,
-+ int function,
-+ int flags,
-+ uint16 *setup, int lsetup, int msetup,
-+ char *param, int lparam, int mparam,
-+ char *data, int ldata, int mdata);
-+BOOL cli_receive_nt_trans(struct cli_state *cli,
-+ char **param, int *param_len,
-+ char **data, int *data_len);
-
--/* The following definitions come from lib/util_getent.c */
-+/* The following definitions come from libsmb/credentials.c */
-
--struct sys_grent * getgrent_list(void);
--void grent_free (struct sys_grent *glist);
--struct sys_pwent * getpwent_list(void);
--void pwent_free (struct sys_pwent *plist);
--struct sys_userlist *get_users_in_group(const char *gname);
--void free_userlist(struct sys_userlist *list_head);
-+char *credstr(const uchar *cred);
-+void cred_session_key(const DOM_CHAL *clnt_chal, const DOM_CHAL *srv_chal, const uchar *pass,
-+ uchar session_key[8]);
-+void cred_create(uchar session_key[8], DOM_CHAL *stor_cred, UTIME timestamp,
-+ DOM_CHAL *cred);
-+int cred_assert(DOM_CHAL *cred, uchar session_key[8], DOM_CHAL *stored_cred,
-+ UTIME timestamp);
-+BOOL clnt_deal_with_creds(uchar sess_key[8],
-+ DOM_CRED *sto_clnt_cred, DOM_CRED *rcv_srv_cred);
-+BOOL deal_with_creds(uchar sess_key[8],
-+ DOM_CRED *sto_clnt_cred,
-+ DOM_CRED *rcv_clnt_cred, DOM_CRED *rtn_srv_cred);
-
--/* The following definitions come from lib/util_seaccess.c */
-+/* The following definitions come from libsmb/doserr.c */
-
--void se_map_generic(uint32 *access_mask, struct generic_mapping *mapping);
--void se_map_standard(uint32 *access_mask, struct standard_mapping *mapping);
--BOOL se_access_check(SEC_DESC *sd, NT_USER_TOKEN *token,
-- uint32 acc_desired, uint32 *acc_granted,
-- NTSTATUS *status);
--SEC_DESC_BUF *se_create_child_secdesc(TALLOC_CTX *ctx, SEC_DESC *parent_ctr,
-- BOOL child_container);
-+char *dos_errstr(WERROR werror);
-
--/* The following definitions come from lib/util_sec.c */
-+/* The following definitions come from libsmb/errormap.c */
-
--void sec_init(void);
--uid_t sec_initial_uid(void);
--gid_t sec_initial_gid(void);
--BOOL non_root_mode(void);
--void gain_root_privilege(void);
--void gain_root_group_privilege(void);
--void set_effective_uid(uid_t uid);
--void set_effective_gid(gid_t gid);
--void save_re_uid(void);
--void restore_re_uid(void);
--int set_re_uid(void);
--void become_user_permanently(uid_t uid, gid_t gid);
--BOOL is_setuid_root(void) ;
-+NTSTATUS dos_to_ntstatus(int eclass, int ecode);
-+void ntstatus_to_dos(NTSTATUS ntstatus, uint8 *eclass, uint32 *ecode);
-+NTSTATUS werror_to_ntstatus(WERROR error);
-+WERROR ntstatus_to_werror(NTSTATUS error);
-
--/* The following definitions come from lib/util_sid.c */
-+/* The following definitions come from libsmb/namequery.c */
-
--void generate_wellknown_sids(void);
--BOOL map_domain_sid_to_name(DOM_SID *sid, char *nt_domain);
--BOOL lookup_known_rid(DOM_SID *sid, uint32 rid, char *name, enum SID_NAME_USE *psid_name_use);
--BOOL map_domain_name_to_sid(DOM_SID *sid, char *nt_domain);
--void split_domain_name(const char *fullname, char *domain, char *name);
--char *sid_to_string(fstring sidstr_out, DOM_SID *sid);
--const char *sid_string_static(DOM_SID *sid);
--BOOL string_to_sid(DOM_SID *sidout, const char *sidstr);
--BOOL sid_append_rid(DOM_SID *sid, uint32 rid);
--BOOL sid_split_rid(DOM_SID *sid, uint32 *rid);
--BOOL sid_peek_rid(DOM_SID *sid, uint32 *rid);
--void sid_copy(DOM_SID *dst, const DOM_SID *src);
--DOM_SID *sid_dup(DOM_SID *src);
--BOOL sid_linearize(char *outbuf, size_t len, DOM_SID *sid);
--BOOL sid_parse(char *inbuf, size_t len, DOM_SID *sid);
--int sid_compare_auth(const DOM_SID *sid1, const DOM_SID *sid2);
--int sid_compare(const DOM_SID *sid1, const DOM_SID *sid2);
--int sid_compare_domain(const DOM_SID *sid1, const DOM_SID *sid2);
--BOOL sid_equal(const DOM_SID *sid1, const DOM_SID *sid2);
--BOOL sid_check_is_domain(const DOM_SID *sid);
--BOOL sid_check_is_builtin(const DOM_SID *sid);
--BOOL sid_check_is_in_our_domain(const DOM_SID *sid);
--BOOL sid_check_is_in_builtin(const DOM_SID *sid);
--size_t sid_size(DOM_SID *sid);
--BOOL non_mappable_sid(DOM_SID *sid);
--char *sid_binstring(DOM_SID *sid);
-+struct node_status *node_status_query(int fd,struct nmb_name *name,
-+ struct in_addr to_ip, int *num_names);
-+BOOL name_status_find(const char *q_name, int q_type, int type, struct in_addr to_ip, char *name);
-+BOOL name_register(int fd, const char *name, int name_type,
-+ struct in_addr name_ip, int opcode,
-+ BOOL bcast,
-+ struct in_addr to_ip, int *count);
-+struct in_addr *name_query(int fd,const char *name,int name_type,
-+ BOOL bcast,BOOL recurse,
-+ struct in_addr to_ip, int *count);
-+FILE *startlmhosts(char *fname);
-+BOOL getlmhostsent( FILE *fp, pstring name, int *name_type, struct in_addr *ipaddr);
-+void endlmhosts(FILE *fp);
-+BOOL name_register_wins(const char *name, int name_type);
-+BOOL name_resolve_bcast(const char *name, int name_type,
-+ struct in_addr **return_ip_list, int *return_count);
-+BOOL resolve_name(const char *name, struct in_addr *return_ip, int name_type);
-+BOOL resolve_srv_name(const char* srv_name, fstring dest_host,
-+ struct in_addr *ip);
-+BOOL find_master_ip(char *group, struct in_addr *master_ip);
-+BOOL lookup_dc_name(const char *srcname, const char *domain,
-+ struct in_addr *dc_ip, char *ret_name);
-+BOOL get_dc_list(BOOL pdc_only, const char *group, struct in_addr **ip_list, int *count);
-+BOOL get_lmb_list(struct in_addr **ip_list, int *count);
-
--/* The following definitions come from lib/util_sock.c */
-+/* The following definitions come from libsmb/nmblib.c */
-
--BOOL is_a_socket(int fd);
--void set_socket_options(int fd, char *options);
--ssize_t read_udp_socket(int fd,char *buf,size_t len);
--ssize_t read_with_timeout(int fd,char *buf,size_t mincnt,size_t maxcnt,unsigned int time_out);
--BOOL send_keepalive(int client);
--ssize_t read_data(int fd,char *buffer,size_t N);
--ssize_t write_data(int fd,char *buffer,size_t N);
--ssize_t write_socket_data(int fd,char *buffer,size_t N);
--ssize_t write_socket(int fd,char *buf,size_t len);
--ssize_t read_smb_length(int fd,char *inbuf,unsigned int timeout);
--BOOL receive_smb(int fd,char *buffer, unsigned int timeout);
--BOOL client_receive_smb(int fd,char *buffer, unsigned int timeout);
--BOOL send_smb(int fd,char *buffer);
--BOOL send_one_packet(char *buf,int len,struct in_addr ip,int port,int type);
--int open_socket_in( int type, int port, int dlevel, uint32 socket_addr, BOOL rebind );
--int open_socket_out(int type, struct in_addr *addr, int port ,int timeout);
--void client_setfd(int fd);
--char *client_name(void);
--char *client_addr(void);
--char *get_socket_name(int fd);
--char *get_socket_addr(int fd);
--int create_pipe_sock(const char *socket_dir,
-- const char *socket_name,
-- mode_t dir_perms);
--int sock_exec(const char *prog);
-+void debug_nmb_packet(struct packet_struct *p);
-+char *nmb_namestr(struct nmb_name *n);
-+struct packet_struct *copy_packet(struct packet_struct *packet);
-+void free_packet(struct packet_struct *packet);
-+struct packet_struct *parse_packet(char *buf,int length,
-+ enum packet_type packet_type);
-+struct packet_struct *read_packet(int fd,enum packet_type packet_type);
-+void make_nmb_name( struct nmb_name *n, const char *name, int type);
-+BOOL nmb_name_equal(struct nmb_name *n1, struct nmb_name *n2);
-+int build_packet(char *buf, struct packet_struct *p);
-+BOOL send_packet(struct packet_struct *p);
-+struct packet_struct *receive_packet(int fd,enum packet_type type,int t);
-+struct packet_struct *receive_nmb_packet(int fd, int t, int trn_id);
-+struct packet_struct *receive_dgram_packet(int fd, int t, char *mailslot_name);
-+BOOL match_mailslot_name(struct packet_struct *p, char *mailslot_name);
-+void sort_query_replies(char *data, int n, struct in_addr ip);
-+char *dns_to_netbios_name(char *dns_name);
-+int name_mangle( char *In, char *Out, char name_type );
-+int name_extract(char *buf,int ofs,char *name);
-+int name_len(char *s1);
-
--/* The following definitions come from lib/util_str.c */
-+/* The following definitions come from libsmb/nterr.c */
-
--void set_first_token(char *ptr);
--BOOL next_token(char **ptr,char *buff,char *sep, size_t bufsize);
--char **toktocliplist(int *ctok, char *sep);
--int StrCaseCmp(const char *s, const char *t);
--int StrnCaseCmp(const char *s, const char *t, size_t n);
--BOOL strequal(const char *s1, const char *s2);
--BOOL strnequal(const char *s1,const char *s2,size_t n);
--BOOL strcsequal(const char *s1,const char *s2);
--int strwicmp(char *psz1, char *psz2);
--void strlower(char *s);
--void strupper(char *s);
--void strnorm(char *s);
--BOOL strisnormal(char *s);
--void string_replace(char *s,char oldc,char newc);
--char *skip_string(char *buf,size_t n);
--size_t str_charnum(const char *s);
--BOOL trim_string(char *s,const char *front,const char *back);
--BOOL strhasupper(const char *s);
--BOOL strhaslower(const char *s);
--size_t count_chars(const char *s,char c);
--BOOL str_is_all(const char *s,char c);
--char *safe_strcpy(char *dest,const char *src, size_t maxlength);
--char *safe_strcat(char *dest, const char *src, size_t maxlength);
--char *alpha_strcpy(char *dest, const char *src, const char *other_safe_chars, size_t maxlength);
--char *StrnCpy(char *dest,const char *src,size_t n);
--char *strncpyn(char *dest, const char *src,size_t n, char c);
--size_t strhex_to_str(char *p, size_t len, const char *strhex);
--BOOL in_list(char *s,char *list,BOOL casesensitive);
--void string_free(char **s);
--BOOL string_set(char **dest,const char *src);
--void string_sub(char *s,const char *pattern,const char *insert, size_t len);
--void fstring_sub(char *s,const char *pattern,const char *insert);
--void pstring_sub(char *s,const char *pattern,const char *insert);
--void all_string_sub(char *s,const char *pattern,const char *insert, size_t len);
--void split_at_last_component(char *path, char *front, char sep, char *back);
--char *octal_string(int i);
--char *string_truncate(char *s, int length);
--char *binary_string(char *buf, int len);
-+char *get_nt_error_msg(NTSTATUS nt_code);
-+char *nt_errstr(NTSTATUS nt_code);
-+char *get_nt_error_c_code(NTSTATUS nt_code);
-+
-+/* The following definitions come from libsmb/passchange.c */
-+
-+BOOL remote_password_change(const char *remote_machine, const char *user_name,
-+ const char *old_passwd, const char *new_passwd,
-+ char *err_str, size_t err_str_len);
-+
-+/* The following definitions come from libsmb/pwd_cache.c */
-+
-+void pwd_init(struct pwd_info *pwd);
-+BOOL pwd_is_nullpwd(const struct pwd_info *pwd);
-+BOOL pwd_compare(struct pwd_info *pwd1, struct pwd_info *pwd2);
-+void pwd_read(struct pwd_info *pwd, char *passwd_report, BOOL do_encrypt);
-+void pwd_set_nullpwd(struct pwd_info *pwd);
-+void pwd_set_cleartext(struct pwd_info *pwd, char *clr);
-+void pwd_get_cleartext(struct pwd_info *pwd, char *clr);
-+void pwd_set_lm_nt_16(struct pwd_info *pwd, uchar lm_pwd[16], uchar nt_pwd[16]);
-+void pwd_get_lm_nt_16(struct pwd_info *pwd, uchar lm_pwd[16], uchar nt_pwd[16]);
-+void pwd_make_lm_nt_16(struct pwd_info *pwd, char *clr);
-+void pwd_make_lm_nt_owf(struct pwd_info *pwd, uchar cryptkey[8]);
-+void pwd_get_lm_nt_owf(struct pwd_info *pwd, uchar lm_owf[24], uchar nt_owf[24]);
-+
-+/* The following definitions come from libsmb/smbdes.c */
-+
-+void E_P16(const unsigned char *p14,unsigned char *p16);
-+void E_P24(const unsigned char *p21, const unsigned char *c8, unsigned char *p24);
-+void D_P16(const unsigned char *p14, const unsigned char *in, unsigned char *out);
-+void E_old_pw_hash( unsigned char *p14, const unsigned char *in, unsigned char *out);
-+void cred_hash1(unsigned char *out, const unsigned char *in, const unsigned char *key);
-+void cred_hash2(unsigned char *out, const unsigned char *in, const unsigned char *key);
-+void cred_hash3(unsigned char *out, unsigned char *in, const unsigned char *key, int forw);
-+void SamOEMhash( unsigned char *data, const unsigned char *key, int val);
-+void sam_pwd_hash(unsigned int rid, const uchar *in, uchar *out, int forw);
-
--/* The following definitions come from lib/util_unistr.c */
-+/* The following definitions come from libsmb/smbencrypt.c */
-
--size_t unix_PutUniCode(char *dst,const char *src, ssize_t len, BOOL null_terminate);
--size_t dos_PutUniCode(char *dst,const char *src, ssize_t len, BOOL null_terminate);
--void unistr_to_dos(char *dest, const char *src, size_t len);
--char *skip_unibuf(char *src, size_t len);
--char *dos_unistrn2(uint16 *src, int len);
--char *dos_unistr2(uint16 *src);
--char *dos_unistr2_to_str(UNISTR2 *str);
--void ascii_to_unistr(uint16 *dest, const char *src, int maxlen);
--void unistr_to_ascii(char *dest, const uint16 *src, int len);
--void unistr2_to_ascii(char *dest, const UNISTR2 *str, size_t maxlen);
--char *unistr2_tdup(TALLOC_CTX *ctx, const UNISTR2 *str);
--uint32 buffer2_to_uint32(BUFFER2 *str);
--char *dos_buffer2_to_str(BUFFER2 *str);
--char *dos_buffer2_to_multistr(BUFFER2 *str);
--size_t dos_struni2(char *dst, const char *src, size_t max_len);
--char *dos_unistr(char *buf);
--int unistrlen(uint16 *s);
--int unistrcpy(uint16 *dst, uint16 *src);
--void default_unicode_map(smb_ucs2_t **pp_cp_to_ucs2, uint16 **pp_ucs2_to_cp);
--BOOL load_unicode_map(const char *codepage, smb_ucs2_t **pp_cp_to_ucs2, uint16 **pp_ucs2_to_cp);
--BOOL load_dos_unicode_map(int codepage);
--BOOL load_unix_unicode_map(const char *unix_char_set, BOOL override);
--smb_ucs2_t *multibyte_to_unicode(smb_ucs2_t *dst, const char *src,
-- size_t dst_len, smb_ucs2_t *cp_to_ucs2);
--char *unicode_to_unix(char *dst, const smb_ucs2_t *src, size_t dst_len);
--smb_ucs2_t *unix_to_unicode(smb_ucs2_t *dst, const char *src, size_t dst_len);
--size_t unicode_to_unix_char(char *dst, const smb_ucs2_t src);
--char *unicode_to_dos(char *dst, const smb_ucs2_t *src, size_t dst_len);
--size_t unicode_to_dos_char(char *dst, const smb_ucs2_t src);
--smb_ucs2_t *dos_to_unicode(smb_ucs2_t *dst, const char *src, size_t dst_len);
--size_t strlen_w(const smb_ucs2_t *src);
--smb_ucs2_t *safe_strcpy_w(smb_ucs2_t *dest,const smb_ucs2_t *src, size_t maxlength);
--smb_ucs2_t *safe_strcat_w(smb_ucs2_t *dest, const smb_ucs2_t *src, size_t maxlength);
--int strcmp_w(const smb_ucs2_t *s1, const smb_ucs2_t *s2);
--int strncmp_w(const smb_ucs2_t *s1, const smb_ucs2_t *s2, size_t len);
--smb_ucs2_t *strstr_w(const smb_ucs2_t *s1, const smb_ucs2_t *s2);
--smb_ucs2_t *strchr_w(const smb_ucs2_t *s, smb_ucs2_t c);
--smb_ucs2_t *strrchr_w(const smb_ucs2_t *s, smb_ucs2_t c);
--smb_ucs2_t *strtok_w(smb_ucs2_t *s1, const smb_ucs2_t *s2);
--smb_ucs2_t *strdup_w(const smb_ucs2_t *s);
--int isupper_w( smb_ucs2_t val);
--int islower_w( smb_ucs2_t val);
--int isdigit_w( smb_ucs2_t val);
--int isxdigit_w( smb_ucs2_t val);
--int isspace_w( smb_ucs2_t val);
--smb_ucs2_t toupper_w( smb_ucs2_t val );
--smb_ucs2_t tolower_w( smb_ucs2_t val );
--void set_first_token_w(smb_ucs2_t *ptr);
--BOOL next_token_w(smb_ucs2_t **ptr, smb_ucs2_t *buff, smb_ucs2_t *sep, size_t bufsize);
--smb_ucs2_t **toktocliplist_w(int *ctok, smb_ucs2_t *sep);
--int StrCaseCmp_w(const smb_ucs2_t *s, const smb_ucs2_t *t);
--int StrnCaseCmp_w(const smb_ucs2_t *s, const smb_ucs2_t *t, size_t n);
--BOOL strequal_w(const smb_ucs2_t *s1, const smb_ucs2_t *s2);
--BOOL strnequal_w(const smb_ucs2_t *s1,const smb_ucs2_t *s2,size_t n);
--BOOL strcsequal_w(const smb_ucs2_t *s1,const smb_ucs2_t *s2);
--void strlower_w(smb_ucs2_t *s);
--void strupper_w(smb_ucs2_t *s);
--void strnorm_w(smb_ucs2_t *s);
--BOOL strisnormal_w(smb_ucs2_t *s);
--void string_replace_w(smb_ucs2_t *s, smb_ucs2_t oldc, smb_ucs2_t newc);
--smb_ucs2_t *skip_string_w(smb_ucs2_t *buf,size_t n);
--size_t str_charnum_w(const smb_ucs2_t *s);
--BOOL trim_string_w(smb_ucs2_t *s,const smb_ucs2_t *front,const smb_ucs2_t *back);
--BOOL strhasupper_w(const smb_ucs2_t *s);
--BOOL strhaslower_w(const smb_ucs2_t *s);
--size_t count_chars_w(const smb_ucs2_t *s,smb_ucs2_t c);
--BOOL str_is_all_w(const smb_ucs2_t *s,smb_ucs2_t c);
--smb_ucs2_t *alpha_strcpy_w(smb_ucs2_t *dest, const smb_ucs2_t *src, const smb_ucs2_t *other_safe_chars, size_t maxlength);
--smb_ucs2_t *StrnCpy_w(smb_ucs2_t *dest,const smb_ucs2_t *src,size_t n);
--smb_ucs2_t *strncpyn_w(smb_ucs2_t *dest, const smb_ucs2_t *src,size_t n, smb_ucs2_t c);
--size_t strhex_to_str_w(char *p, size_t len, const smb_ucs2_t *strhex);
--BOOL in_list_w(smb_ucs2_t *s,smb_ucs2_t *list,BOOL casesensitive);
--BOOL string_init_w(smb_ucs2_t **dest,const smb_ucs2_t *src);
--void string_free_w(smb_ucs2_t **s);
--BOOL string_set_w(smb_ucs2_t **dest,const smb_ucs2_t *src);
--void string_sub_w(smb_ucs2_t *s,const smb_ucs2_t *pattern,const smb_ucs2_t *insert, size_t len);
--void fstring_sub_w(smb_ucs2_t *s,const smb_ucs2_t *pattern,const smb_ucs2_t *insert);
--void pstring_sub_w(smb_ucs2_t *s,const smb_ucs2_t *pattern,smb_ucs2_t *insert);
--void all_string_sub_w(smb_ucs2_t *s,const smb_ucs2_t *pattern,const smb_ucs2_t *insert, size_t len);
--void split_at_last_component_w(smb_ucs2_t *path, smb_ucs2_t *front, smb_ucs2_t sep, smb_ucs2_t *back);
--smb_ucs2_t *octal_string_w(int i);
--smb_ucs2_t *string_truncate_w(smb_ucs2_t *s, size_t length);
--smb_ucs2_t doscp2ucs2(int w);
--int ucs2doscp(smb_ucs2_t w);
--int rpcstr_pull(char* dest, void *src, int dest_len, int src_len, int flags);
-+void SMBencrypt(const uchar *passwd, uchar *c8, uchar *p24);
-+void E_md4hash(const uchar *passwd, uchar *p16);
-+void nt_lm_owf_gen(char *pwd, uchar nt_p16[16], uchar p16[16]);
-+void SMBOWFencrypt(uchar passwd[16], uchar *c8, uchar p24[24]);
-+void NTLMSSPOWFencrypt(uchar passwd[8], uchar *ntlmchalresp, uchar p24[24]);
-+void SMBNTencrypt(const uchar *passwd, uchar *c8, uchar *p24);
-+BOOL make_oem_passwd_hash(char data[516], const char *passwd, uchar old_pw_hash[16], BOOL unicode);
-+BOOL encode_pw_buffer(char buffer[516], const char *new_pass,
-+ int new_pw_len, BOOL nt_pass_set);
-+BOOL decode_pw_buffer(char in_buffer[516], char *new_pwrd,
-+ int new_pwrd_size, uint32 *new_pw_len,
-+ uchar nt_p16[16], uchar p16[16]);
-+void nt_owf_genW(const UNISTR2 *pwd, uchar nt_p16[16]);
-
--/* The following definitions come from lib/wins_srv.c */
-+/* The following definitions come from libsmb/smberr.c */
-
--BOOL wins_srv_load_list( char *src );
--struct in_addr wins_srv_ip( void );
--void wins_srv_died( struct in_addr boothill_ip );
--unsigned long wins_srv_count( void );
-+char *smb_dos_err_name(uint8 class, uint16 num);
-+char *get_dos_error_msg(WERROR result);
-+char *smb_dos_err_class(uint8 class);
-+char *smb_dos_errstr(char *inbuf);
-+WERROR map_werror_from_unix(int error);
-+
-+/* The following definitions come from libsmb/unexpected.c */
-+
-+void unexpected_packet(struct packet_struct *p);
-+void clear_unexpected(time_t t);
-+struct packet_struct *receive_unexpected(enum packet_type packet_type, int id,
-+ char *mailslot_name);
-
- /* The following definitions come from locking/brlock.c */
-
-@@ -1519,6 +1521,9 @@
- struct name_record **n);
- void kill_async_dns_child(void);
-
-+/* The following definitions come from nmbd/nmbd.c */
-+
-+
- /* The following definitions come from nmbd/nmbd_become_dmb.c */
-
- void add_domain_names(time_t t);
-@@ -1549,9 +1554,6 @@
- void collect_all_workgroup_names_from_wins_server(time_t t);
- void sync_all_dmbs(time_t t);
-
--/* The following definitions come from nmbd/nmbd.c */
--
--
- /* The following definitions come from nmbd/nmbd_elections.c */
-
- void check_master_browser_exists(time_t t);
-@@ -2435,14 +2437,19 @@
- /* The following definitions come from printing/print_cups.c */
-
-
-+/* The following definitions come from printing/print_generic.c */
-+
-+
-+/* The following definitions come from printing/print_svid.c */
-+
-+void sysv_printer_fn(void (*fn)(char *, char *));
-+int sysv_printername_ok(char *name);
-+
- /* The following definitions come from printing/printfsp.c */
-
- files_struct *print_fsp_open(connection_struct *conn, char *fname);
- void print_fsp_end(files_struct *fsp, BOOL normal_close);
-
--/* The following definitions come from printing/print_generic.c */
--
--
- /* The following definitions come from printing/printing.c */
-
- BOOL print_backend_init(void);
-@@ -2468,11 +2475,6 @@
- BOOL print_queue_resume(struct current_user *user, int snum, WERROR *errcode);
- BOOL print_queue_purge(struct current_user *user, int snum, WERROR *errcode);
-
--/* The following definitions come from printing/print_svid.c */
--
--void sysv_printer_fn(void (*fn)(char *, char *));
--int sysv_printername_ok(char *name);
--
- /* The following definitions come from profile/profile.c */
-
- void profile_message(int msg_type, pid_t src, void *buf, size_t len);
-@@ -2531,42 +2533,6 @@
-
- BOOL change_trust_account_password( char *domain, char *remote_machine_list);
-
--/* The following definitions come from rpcclient/cmd_dfs.c */
--
--
--/* The following definitions come from rpcclient/cmd_lsarpc.c */
--
--
--/* The following definitions come from rpcclient/cmd_netlogon.c */
--
--
--/* The following definitions come from rpcclient/cmd_reg.c */
--
--
--/* The following definitions come from rpcclient/cmd_samr.c */
--
--
--/* The following definitions come from rpcclient/cmd_spoolss.c */
--
--BOOL get_short_archi(char *short_archi, char *long_archi);
--void set_drv_info_3_env (DRIVER_INFO_3 *info, const char *arch);
--
--/* The following definitions come from rpcclient/cmd_srvsvc.c */
--
--
--/* The following definitions come from rpcclient/display_sec.c */
--
--char *get_sec_mask_str(uint32 type);
--void display_sec_access(SEC_ACCESS *info);
--void display_sec_ace(SEC_ACE *ace);
--void display_sec_acl(SEC_ACL *sec_acl);
--void display_sec_desc(SEC_DESC *sec);
--
--/* The following definitions come from rpcclient/rpcclient.c */
--
--void fetch_machine_sid(struct cli_state *cli);
--int main(int argc, char *argv[]);
--
- /* The following definitions come from rpc_parse/parse_dfs.c */
-
- void init_dfs_q_dfs_exist(DFS_Q_DFS_EXIST *q_d);
-@@ -4273,6 +4239,42 @@
-
- NTSTATUS _wks_query_info(pipes_struct *p, WKS_Q_QUERY_INFO *q_u, WKS_R_QUERY_INFO *r_u);
-
-+/* The following definitions come from rpcclient/cmd_dfs.c */
-+
-+
-+/* The following definitions come from rpcclient/cmd_lsarpc.c */
-+
-+
-+/* The following definitions come from rpcclient/cmd_netlogon.c */
-+
-+
-+/* The following definitions come from rpcclient/cmd_reg.c */
-+
-+
-+/* The following definitions come from rpcclient/cmd_samr.c */
-+
-+
-+/* The following definitions come from rpcclient/cmd_spoolss.c */
-+
-+BOOL get_short_archi(char *short_archi, char *long_archi);
-+void set_drv_info_3_env (DRIVER_INFO_3 *info, const char *arch);
-+
-+/* The following definitions come from rpcclient/cmd_srvsvc.c */
-+
-+
-+/* The following definitions come from rpcclient/display_sec.c */
-+
-+char *get_sec_mask_str(uint32 type);
-+void display_sec_access(SEC_ACCESS *info);
-+void display_sec_ace(SEC_ACE *ace);
-+void display_sec_acl(SEC_ACL *sec_acl);
-+void display_sec_desc(SEC_DESC *sec);
-+
-+/* The following definitions come from rpcclient/rpcclient.c */
-+
-+void fetch_machine_sid(struct cli_state *cli);
-+int main(int argc, char *argv[]);
-+
- /* The following definitions come from smbd/blocking.c */
-
- BOOL push_blocking_lock_request( char *inbuf, int length, int lock_timeout, int lock_num);
-@@ -4740,24 +4742,6 @@
- void sys_utmp_claim(const char *username, const char *hostname,
- const char *id_str, int id_num);
-
--/* The following definitions come from smbd/vfs.c */
--
--BOOL smbd_vfs_init(connection_struct *conn);
--BOOL vfs_directory_exist(connection_struct *conn, const char *dname, SMB_STRUCT_STAT *st);
--int vfs_mkdir(connection_struct *conn, char *const fname, mode_t mode);
--char *vfs_getwd(connection_struct *conn, char *unix_path);
--BOOL vfs_object_exist(connection_struct *conn, const char *fname,SMB_STRUCT_STAT *sbuf);
--BOOL vfs_file_exist(connection_struct *conn, const char *fname,SMB_STRUCT_STAT *sbuf);
--ssize_t vfs_read_data(files_struct *fsp, char *buf, size_t byte_count);
--ssize_t vfs_write_data(files_struct *fsp,const char *buffer,size_t N);
--int vfs_allocate_file_space(files_struct *fsp, SMB_OFF_T len);
--int vfs_set_filelen(files_struct *fsp, SMB_OFF_T len);
--SMB_OFF_T vfs_transfer_file(files_struct *in, files_struct *out, SMB_OFF_T n);
--char *vfs_readdirname(connection_struct *conn, void *p);
--int vfs_ChDir(connection_struct *conn, const char *path);
--char *vfs_GetWd(connection_struct *conn, char *path);
--BOOL reduce_name(connection_struct *conn, char *s,char *dir,BOOL widelinks);
--
- /* The following definitions come from smbd/vfs-wrap.c */
+diff -ur samba-2.2.4+5pre1.orig/source/passdb/secrets.c samba-2.2.4+5pre1/source/passdb/secrets.c
+--- samba-2.2.4+5pre1.orig/source/passdb/secrets.c Mon Mar 18 17:55:49 2002
++++ samba-2.2.4+5pre1/source/passdb/secrets.c Thu Jun 13 10:37:44 2002
+@@ -34,8 +34,7 @@
+ if (tdb)
+ return True;
- int vfswrap_dummy_connect(connection_struct *conn, const char *service, const char *user);
-@@ -4822,6 +4806,24 @@
- int vfswrap_sys_acl_free_text(struct connection_struct *conn, char *text);
- int vfswrap_sys_acl_free_acl(struct connection_struct *conn, SMB_ACL_T posix_acl);
- int vfswrap_sys_acl_free_qualifier(struct connection_struct *conn, void *qualifier, SMB_ACL_TAG_T tagtype);
-+
-+/* The following definitions come from smbd/vfs.c */
-+
-+BOOL smbd_vfs_init(connection_struct *conn);
-+BOOL vfs_directory_exist(connection_struct *conn, const char *dname, SMB_STRUCT_STAT *st);
-+int vfs_mkdir(connection_struct *conn, char *const fname, mode_t mode);
-+char *vfs_getwd(connection_struct *conn, char *unix_path);
-+BOOL vfs_object_exist(connection_struct *conn, const char *fname,SMB_STRUCT_STAT *sbuf);
-+BOOL vfs_file_exist(connection_struct *conn, const char *fname,SMB_STRUCT_STAT *sbuf);
-+ssize_t vfs_read_data(files_struct *fsp, char *buf, size_t byte_count);
-+ssize_t vfs_write_data(files_struct *fsp,const char *buffer,size_t N);
-+int vfs_allocate_file_space(files_struct *fsp, SMB_OFF_T len);
-+int vfs_set_filelen(files_struct *fsp, SMB_OFF_T len);
-+SMB_OFF_T vfs_transfer_file(files_struct *in, files_struct *out, SMB_OFF_T n);
-+char *vfs_readdirname(connection_struct *conn, void *p);
-+int vfs_ChDir(connection_struct *conn, const char *path);
-+char *vfs_GetWd(connection_struct *conn, char *path);
-+BOOL reduce_name(connection_struct *conn, char *s,char *dir,BOOL widelinks);
+- get_private_directory(fname);
+- pstrcat(fname,"/secrets.tdb");
++ pstrcpy(fname,state_path("secrets.tdb"));
- /* The following definitions come from smbwrapper/realcalls.c */
+ tdb = tdb_open_log(fname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
diff --git a/packaging/Debian/debian/patches/loadparm.patch b/packaging/Debian/debian/patches/loadparm.patch
index b2c74c3eb85..ccca48793fc 100644
--- a/packaging/Debian/debian/patches/loadparm.patch
+++ b/packaging/Debian/debian/patches/loadparm.patch
@@ -1,6 +1,7 @@
---- samba-2.2.4/source/param/loadparm.c.orig Thu May 2 01:34:29 2002
-+++ samba-2.2.4/source/param/loadparm.c Thu May 2 01:34:39 2002
-@@ -1126,26 +1126,26 @@
+diff -uNr samba-2.2.5pre1.orig/source/param/loadparm.c samba-2.2.5pre1/source/param/loadparm.c
+--- samba-2.2.5pre1.orig/source/param/loadparm.c Wed Jun 12 15:42:59 2002
++++ samba-2.2.5pre1/source/param/loadparm.c Wed Jun 12 15:43:10 2002
+@@ -1128,26 +1128,26 @@
case PRINT_AIX:
case PRINT_LPRNT:
case PRINT_LPROS2:
@@ -37,7 +38,7 @@
break;
case PRINT_CUPS:
-@@ -1161,19 +1161,19 @@
+@@ -1163,19 +1163,19 @@
string_set(&Globals.szPrintcapname, "cups");
#else
string_set(&sDefault.szLpqcommand,
@@ -64,7 +65,7 @@
string_set(&Globals.szPrintcapname, "lpstat");
#endif /* HAVE_CUPS */
break;
-@@ -1486,7 +1486,10 @@
+@@ -1492,7 +1492,10 @@
else
StrnCpy(ret, s, len);
diff --git a/packaging/Debian/debian/patches/smbmount-mtab-flags.patch b/packaging/Debian/debian/patches/smbmount-mtab-flags.patch
new file mode 100644
index 00000000000..dac999dd63c
--- /dev/null
+++ b/packaging/Debian/debian/patches/smbmount-mtab-flags.patch
@@ -0,0 +1,15 @@
+diff -ur samba-2.2.4.orig/source/client/smbmnt.c samba-2.2.4/source/client/smbmnt.c
+--- samba-2.2.4.orig/source/client/smbmnt.c Sun Apr 8 15:22:51 2001
++++ samba-2.2.4/source/client/smbmnt.c Sun May 5 16:42:29 2002
+@@ -259,7 +259,10 @@
+ ment.mnt_fsname = share_name ? share_name : "none";
+ ment.mnt_dir = mount_point;
+ ment.mnt_type = "smbfs";
+- ment.mnt_opts = "";
++ if (mount_ro)
++ ment.mnt_opts = "ro";
++ else
++ ment.mnt_opts = "rw";
+ ment.mnt_freq = 0;
+ ment.mnt_passno= 0;
+
diff --git a/packaging/Debian/debian/patches/smbmount-nomtab.patch b/packaging/Debian/debian/patches/smbmount-nomtab.patch
index 8725e60da75..233356bd9ff 100644
--- a/packaging/Debian/debian/patches/smbmount-nomtab.patch
+++ b/packaging/Debian/debian/patches/smbmount-nomtab.patch
@@ -1,5 +1,6 @@
---- samba-2.2.3a/source/client/smbmnt.c.orig Tue Apr 2 09:58:18 2002
-+++ samba-2.2.3a/source/client/smbmnt.c Tue Apr 2 09:58:24 2002
+diff -uNr samba-2.2.5pre1.orig/source/client/smbmnt.c samba-2.2.5pre1/source/client/smbmnt.c
+--- samba-2.2.5pre1.orig/source/client/smbmnt.c Wed Jun 12 15:50:00 2002
++++ samba-2.2.5pre1/source/client/smbmnt.c Wed Jun 12 15:50:04 2002
@@ -28,6 +28,7 @@
static uid_t mount_uid;
static gid_t mount_gid;
@@ -35,7 +36,7 @@
case 'r':
mount_ro = 1;
break;
-@@ -271,36 +276,38 @@
+@@ -274,36 +279,38 @@
return -1;
}
@@ -101,8 +102,9 @@
return 0;
}
---- samba-2.2.4/source/client/smbmount.c.orig Thu May 2 00:33:08 2002
-+++ samba-2.2.4/source/client/smbmount.c Thu May 2 00:36:12 2002
+diff -uNr samba-2.2.5pre1.orig/source/client/smbmount.c samba-2.2.5pre1/source/client/smbmount.c
+--- samba-2.2.5pre1.orig/source/client/smbmount.c Wed Jun 12 15:46:02 2002
++++ samba-2.2.5pre1/source/client/smbmount.c Wed Jun 12 15:50:04 2002
@@ -50,6 +50,7 @@
static int mount_ro;
static unsigned mount_fmask;
diff --git a/packaging/Debian/debian/patches/smbtar-exclude.patch b/packaging/Debian/debian/patches/smbtar-exclude.patch
new file mode 100644
index 00000000000..a5cacc82824
--- /dev/null
+++ b/packaging/Debian/debian/patches/smbtar-exclude.patch
@@ -0,0 +1,12 @@
+diff -uNr samba-2.2.4.orig/source/client/clitar.c samba-2.2.4/source/client/clitar.c
+--- samba-2.2.4.orig/source/client/clitar.c Thu May 2 20:02:58 2002
++++ samba-2.2.4/source/client/clitar.c Sat Jun 1 00:25:28 2002
+@@ -515,7 +515,7 @@
+ if (!*s2 && (*s1 == '/' || *s1 == '\\') && !*(s1+1)) return 0;
+
+ /* check for s1 is an "initial" string of s2 */
+- if (*s2 == '/' || *s2 == '\\') return 0;
++ if ((*s2 == '/' || *s2 == '\\') && !*s1) return 0;
+
+ return *s1-*s2;
+ }
diff --git a/packaging/Debian/debian/rules b/packaging/Debian/debian/rules
index d7020ee7954..db04766b9b7 100755
--- a/packaging/Debian/debian/rules
+++ b/packaging/Debian/debian/rules
@@ -4,7 +4,6 @@
# solve build problems) introduced in Samba 2.2.1a-5. These
# modification were made by Steve Langasek <vorlon@netexpress.net>.
#
-# $Id: rules,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
# Uncomment this to turn on verbose mode.
@@ -76,7 +75,8 @@ configure-stamp:
--with-pam_smbpass \
--with-libsmbclient \
--with-winbind \
- --with-msdfs)
+ --with-msdfs \
+ --with-automount)
touch configure-stamp
diff --git a/packaging/Debian/debian/samba-common.postinst b/packaging/Debian/debian/samba-common.postinst
index 4696e2c19a4..54b5679932e 100644
--- a/packaging/Debian/debian/samba-common.postinst
+++ b/packaging/Debian/debian/samba-common.postinst
@@ -1,6 +1,5 @@
#!/bin/sh
#
-# $Id: samba-common.postinst,v 1.1.4.1 2002/05/02 20:20:28 jerry Exp $
#
set -e
diff --git a/packaging/Debian/debian/samba-common.postrm b/packaging/Debian/debian/samba-common.postrm
index 493b5c9d077..8a4b6d3d55e 100644
--- a/packaging/Debian/debian/samba-common.postrm
+++ b/packaging/Debian/debian/samba-common.postrm
@@ -1,6 +1,5 @@
#!/bin/sh
#
-# $Id: samba-common.postrm,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
if [ "$1" = purge ]; then
diff --git a/packaging/Debian/debian/samba.config b/packaging/Debian/debian/samba.config
index fe26040ef57..d82e56ccf63 100644
--- a/packaging/Debian/debian/samba.config
+++ b/packaging/Debian/debian/samba.config
@@ -1,6 +1,5 @@
#/bin/sh -e
#
-# $Id: samba.config,v 1.1.4.1 2002/05/02 20:20:28 jerry Exp $
#
# Source debconf library.
diff --git a/packaging/Debian/debian/samba.init b/packaging/Debian/debian/samba.init
index 3d740483a8c..00b8dcbb100 100644
--- a/packaging/Debian/debian/samba.init
+++ b/packaging/Debian/debian/samba.init
@@ -2,7 +2,6 @@
#
# Start/stops the Samba daemons (nmbd and smbd).
#
-# $Id: samba.init,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
# Defaults
@@ -19,14 +18,18 @@ unset TMPDIR
# If Samba is running from inetd then there is nothing to do
if [ "$RUN_MODE" = "inetd" ]; then
- # Commented out to close bug #26884 (startup message is rather long). I
- # have yet to think how to let the user know that if he/she is running
- # Samba from inetd, he can't just "/etc/init.d/samba stop" to stop
- # the Samba daemons.
-# echo "Warning: Samba is not running as daemons. Daemons not restarted/stopped."
-# echo "Daemons will start automatically by inetd (if you wanted to start Samba)."
-# echo "If you want to stop Samba, get the PID's of all nmbd and smbd processes"
-# echo "and send them a SIGTERM signal but keep in mind that inetd could restart them."
+ # INIT_VERSION is defined for scripts than run directly from init...
+ if [ "$INIT_VERSION" = "" ]; then
+ cat <<EOF
+
+Warning: Samba is set to start from inetd; this script has no effect.
+Run "dpkg-reconfigure samba" if you want Samba to be started and stopped
+from this script. If you want to continue running Samba from inetd, you
+should use "killall nmbd smbd" to restart the service, or update-inetd
+to disable/reenable it.
+
+EOF
+ fi
exit 0
fi
@@ -46,15 +49,30 @@ case "$1" in
echo "."
;;
stop)
- echo -n "Stopping Samba daemons:"
+ echo -n "Stopping Samba daemons: "
- echo -n " nmbd"
start-stop-daemon --stop --quiet --pidfile $NMBDPID
+ # Wait a little and remove stale PID file
+ sleep 1
+ if [ -f $NMBDPID ] && ! ps h `cat $NMBDPID` > /dev/null
+ then
+ # Stale PID file (nmbd was succesfully stopped),
+ # remove it (should be removed by nmbd itself IMHO.)
+ rm -f $NMBDPID
+ fi
+ echo -n "nmbd "
- echo -n " smbd"
start-stop-daemon --stop --quiet --pidfile $SMBDPID
+ # Wait a little and remove stale PID file
+ sleep 1
+ if [ -f $SMBDPID ] && ! ps h `cat $SMBDPID` > /dev/null
+ then
+ # Stale PID file (nmbd was succesfully stopped),
+ # remove it (should be removed by smbd itself IMHO.)
+ rm -f $SMBDPID
+ fi
+ echo "smbd."
- echo "."
;;
reload)
echo -n "Reloading /etc/samba/smb.conf (smbd only)"
@@ -63,19 +81,9 @@ case "$1" in
echo "."
;;
restart|force-reload)
- echo -n "Restarting Samba daemons:"
-
- echo -n " nmbd"
- start-stop-daemon --stop --quiet --pidfile $NMBDPID
- sleep 2
- start-stop-daemon --start --quiet --exec /usr/sbin/nmbd -- -D
-
- echo -n " smbd"
- start-stop-daemon --stop --quiet --pidfile $SMBDPID
- sleep 2
- start-stop-daemon --start --quiet --exec /usr/sbin/smbd -- -D
-
- echo "."
+ $0 stop
+ sleep 1
+ $0 start
;;
*)
echo "Usage: /etc/init.d/samba {start|stop|reload|restart|force-reload}"
diff --git a/packaging/Debian/debian/samba.postinst b/packaging/Debian/debian/samba.postinst
index 55f263faa83..772513f4c78 100644
--- a/packaging/Debian/debian/samba.postinst
+++ b/packaging/Debian/debian/samba.postinst
@@ -2,7 +2,6 @@
#
# Post-installation script for the Samba package for Debian GNU/Linux
#
-# $Id: samba.postinst,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
case "$1" in
@@ -90,6 +89,13 @@ do
fi
done
+# Beginning with Samba 2.2.5-1, we also move the domain secrets file
+# to a more suitable location, since no one really edits this by hand.
+if [ -e /etc/samba/secrets.tdb -a ! -e /var/lib/samba/secrets.tdb ]
+then
+ mv /etc/samba/secrets.tdb /var/lib/samba/
+fi
+
# --- End of FHS migration code ---
# ------------------------- Debconf questions start ---------------------
@@ -138,12 +144,13 @@ else
update-inetd --enable netbios-ssn
fi
-# Start Samba: nothing wrong should happen if Samba is running from inetd
-# and /etc/init.d/samba is run.
+# Start Samba: we don't want to call /etc/init.d/samba if we are
+# running from inetd because a nasty help message would be printed out.
# Run the init script if this is a first-time install, or if it's an
-# upgrade and Samba was running before.
-if [ -z "$2" -o ! -f /tmp/samba-was-not-running ]; then
+# upgrade and Samba was running before, _and_ we're not running from inetd.
+if [ \( -z "$2" -o ! -f /tmp/samba-was-not-running \) -a \
+ "$RUN_MODE" = "daemons" ]; then
# Check the script is executable before running it.
[ -x /etc/init.d/samba ] && /etc/init.d/samba start
fi
diff --git a/packaging/Debian/debian/samba.postrm b/packaging/Debian/debian/samba.postrm
index f134288c6e7..17503df6b7d 100644
--- a/packaging/Debian/debian/samba.postrm
+++ b/packaging/Debian/debian/samba.postrm
@@ -1,6 +1,5 @@
#!/bin/sh
#
-# $Id: samba.postrm,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
if [ "$1" = purge ]; then
diff --git a/packaging/Debian/debian/samba.preinst b/packaging/Debian/debian/samba.preinst
index bcfac2f91be..8f6c3e210a7 100644
--- a/packaging/Debian/debian/samba.preinst
+++ b/packaging/Debian/debian/samba.preinst
@@ -7,7 +7,6 @@
# Thanks to Ben Pfaff <pfaffben@pilot.msu.edu> for sharing on debian-devel
# his ideas about how to move conffiles to new locations.
#
-# $Id: samba.preinst,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
# First see if a smb.conf file currently exists.
diff --git a/packaging/Debian/debian/samba.prerm b/packaging/Debian/debian/samba.prerm
index 671f677d509..ec30ff6687b 100644
--- a/packaging/Debian/debian/samba.prerm
+++ b/packaging/Debian/debian/samba.prerm
@@ -16,10 +16,11 @@ then
fi
fi
-if [ -x /etc/init.d/samba ]; then # Old Samba packages didn't have
- # /etc/init.d/samba so we'd better
- # check first.
- /etc/init.d/samba stop
-fi
+# We read /etc/default/samba to know if we're running from inetd or as
+# daemons so we don't call the init script if we are running from inetd.
+[ -r /etc/default/samba ] && . /etc/default/samba
+
+# We call the init script to stop Samba only if we are running as daemons.
+[ -x /etc/init.d/samba -a "$RUN_MODE" != "inetd" ] && /etc/init.d/samba stop
#DEBHELPER#
diff --git a/packaging/Debian/debian/smb.conf b/packaging/Debian/debian/smb.conf
index 18c1a53f38e..e9fc0607ace 100644
--- a/packaging/Debian/debian/smb.conf
+++ b/packaging/Debian/debian/smb.conf
@@ -1,7 +1,6 @@
#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
-# $Id: smb.conf,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
diff --git a/packaging/Debian/debian/swat.postinst b/packaging/Debian/debian/swat.postinst
index 7aba360417f..338f8a07c23 100644
--- a/packaging/Debian/debian/swat.postinst
+++ b/packaging/Debian/debian/swat.postinst
@@ -1,6 +1,5 @@
#!/bin/sh
#
-# $Id: swat.postinst,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
diff --git a/packaging/Debian/debian/swat.postrm b/packaging/Debian/debian/swat.postrm
index 7944d71af9a..6bc5873096e 100644
--- a/packaging/Debian/debian/swat.postrm
+++ b/packaging/Debian/debian/swat.postrm
@@ -1,6 +1,5 @@
#!/bin/sh
#
-# $Id: swat.postrm,v 1.2.2.2 2002/05/02 20:20:28 jerry Exp $
#
case "$1" in
diff --git a/packaging/Debian/debian/winbind.init b/packaging/Debian/debian/winbind.init
index 8e8daaef120..2dfdf3b8352 100644
--- a/packaging/Debian/debian/winbind.init
+++ b/packaging/Debian/debian/winbind.init
@@ -2,7 +2,6 @@
#
# Start/stops the winbindd daemon.
#
-# $Id: winbind.init,v 1.1.4.1 2002/05/02 20:20:28 jerry Exp $
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
diff --git a/source/include/proto.h b/source/include/proto.h
index e99cb580901..7d1aed9d475 100644
--- a/source/include/proto.h
+++ b/source/include/proto.h
@@ -2141,6 +2141,7 @@ int lp_printing(int );
int lp_oplock_contention_limit(int );
int lp_csc_policy(int );
int lp_write_cache_size(int );
+int lp_block_size(int );
char lp_magicchar(int );
int lp_winbind_cache_time(void);
BOOL lp_hide_local_users(void);
diff --git a/source/param/loadparm.c b/source/param/loadparm.c
index 6fb88628fcf..4d085887cf7 100644
--- a/source/param/loadparm.c
+++ b/source/param/loadparm.c
@@ -359,6 +359,7 @@ typedef struct
int iPrinting;
int iOplockContentionLimit;
int iCSCPolicy;
+ int iBlock_size;
BOOL bAlternatePerm;
BOOL bPreexecClose;
BOOL bRootpreexecClose;
@@ -479,6 +480,7 @@ static service sDefault = {
DEFAULT_PRINTING, /* iPrinting */
2, /* iOplockContentionLimit */
0, /* iCSCPolicy */
+ 1024, /* iBlock_size */
False, /* bAlternatePerm */
False, /* bPreexecClose */
False, /* bRootpreexecClose */
@@ -868,6 +870,7 @@ static struct parm_struct parm_table[] = {
{"Tuning Options", P_SEP, P_SEPARATOR},
+ {"block size", P_INTEGER, P_LOCAL, &sDefault.iBlock_size, NULL, NULL, FLAG_SHARE | FLAG_GLOBAL},
{"change notify timeout", P_INTEGER, P_GLOBAL, &Globals.change_notify_timeout, NULL, NULL, 0},
{"deadtime", P_INTEGER, P_GLOBAL, &Globals.deadtime, NULL, NULL, 0},
{"getwd cache", P_BOOL, P_GLOBAL, &use_getwd_cache, NULL, NULL, 0},
@@ -1797,6 +1800,7 @@ FN_LOCAL_INTEGER(lp_printing, iPrinting)
FN_LOCAL_INTEGER(lp_oplock_contention_limit, iOplockContentionLimit)
FN_LOCAL_INTEGER(lp_csc_policy, iCSCPolicy)
FN_LOCAL_INTEGER(lp_write_cache_size, iWriteCacheSize)
+FN_LOCAL_INTEGER(lp_block_size, iBlock_size)
FN_LOCAL_CHAR(lp_magicchar, magic_char)
FN_GLOBAL_INTEGER(lp_winbind_cache_time, &Globals.winbind_cache_time)
FN_GLOBAL_BOOL(lp_hide_local_users, &Globals.bHideLocalUsers)
diff --git a/source/passdb/pdb_ldap.c b/source/passdb/pdb_ldap.c
index a214d51d14b..c24d96653b6 100644
--- a/source/passdb/pdb_ldap.c
+++ b/source/passdb/pdb_ldap.c
@@ -69,6 +69,43 @@ static struct ldap_enum_info global_ldap_ent;
extern pstring samlogon_user;
extern BOOL sam_logon_in_ssb;
+/*
+ * attributes needed from sambaAccount
+ *
+ * objectclass ( 1.3.6.1.4.1.7165.2.2.3 NAME 'sambaAccount' SUP top AUXILIARY
+ * DESC 'Samba Auxilary Account'
+ * MUST ( uid $ rid )
+ * MAY ( cn $ lmPassword $ ntPassword $ pwdLastSet $ logonTime $
+ * logoffTime $ kickoffTime $ pwdCanChange $ pwdMustChange $ acctFlags $
+ * displayName $ smbHome $ homeDrive $ scriptPath $ profilePath $
+ * description $ userWorkstations $ primaryGroupID $ domain ))
+ */
+
+char* attribs[] = {
+ "uid",
+ "rid",
+ "cn",
+ "lmPassword",
+ "ntPassword",
+ "pwdLastSet",
+ "logonTime",
+ "logoffTime",
+ "kickoffTime",
+ "pwdCanChange",
+ "pwdMustChange",
+ "acctFlags",
+ "displayName",
+ "smbHome",
+ "homeDrive",
+ "scriptPath",
+ "profilePath",
+ "description",
+ "userWorkstations",
+ "primaryGroupID",
+ "domain",
+ NULL
+};
+
/*******************************************************************
open a connection to the ldap server.
@@ -224,7 +261,7 @@ static int ldap_search_one_user (LDAP * ldap_struct, const char *filter, LDAPMes
DEBUG(2, ("ldap_search_one_user: searching for:[%s]\n", filter));
- rc = ldap_search_s(ldap_struct, lp_ldap_suffix (), scope, (char*)filter, NULL, 0, result);
+ rc = ldap_search_s(ldap_struct, lp_ldap_suffix (), scope, (char*)filter, attribs, 0, result);
if (rc != LDAP_SUCCESS) {
DEBUG(0,("ldap_search_one_user: Problem during the LDAP search: %s\n",
@@ -730,7 +767,7 @@ BOOL pdb_setsampwent(BOOL update)
all_string_sub(filter, "%u", "*", sizeof(pstring));
rc = ldap_search_s(global_ldap_ent.ldap_struct, lp_ldap_suffix(),
- LDAP_SCOPE_SUBTREE, filter, NULL, 0,
+ LDAP_SCOPE_SUBTREE, filter, attribs, 0,
&global_ldap_ent.result);
if (rc != LDAP_SUCCESS)
diff --git a/source/smbd/trans2.c b/source/smbd/trans2.c
index 5e74845f4ef..cda99912813 100644
--- a/source/smbd/trans2.c
+++ b/source/smbd/trans2.c
@@ -1435,33 +1435,62 @@ static int call_trans2qfsinfo(connection_struct *conn, char *inbuf, char *outbuf
case SMB_QUERY_FS_SIZE_INFO:
case SMB_FS_SIZE_INFORMATION:
{
- SMB_BIG_UINT dfree,dsize,bsize,secs_per_unit;;
+ SMB_BIG_UINT dfree,dsize,bsize,block_size,sectors_per_unit,bytes_per_sector;
data_len = 24;
conn->vfs_ops.disk_free(conn,".",False,&bsize,&dfree,&dsize);
- if (bsize < 1024) {
- SMB_BIG_UINT factor = 1024/bsize;
- bsize = 1024;
+ block_size = lp_block_size(snum);
+ if (bsize < block_size) {
+ SMB_BIG_UINT factor = block_size/bsize;
+ bsize = block_size;
dsize /= factor;
dfree /= factor;
}
- secs_per_unit = 2;
- SBIG_UINT(pdata,0,dsize*(bsize/(512*secs_per_unit)));
- SBIG_UINT(pdata,8,dfree*(bsize/(512*secs_per_unit)));
- SIVAL(pdata,16,secs_per_unit);
- SIVAL(pdata,20,512);
+ if (bsize > block_size) {
+ SMB_BIG_UINT factor = bsize/block_size;
+ bsize = block_size;
+ dsize *= factor;
+ dfree *= factor;
+ }
+ bytes_per_sector = 512;
+ sectors_per_unit = bsize/bytes_per_sector;
+ DEBUG(5,("call_trans2qfsinfo : SMB_QUERY_FS_SIZE_INFO bsize=%u, cSectorUnit=%u, \
+cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", (unsigned int)bsize, (unsigned int)sectors_per_unit,
+ (unsigned int)bytes_per_sector, (unsigned int)dsize, (unsigned int)dfree));
+ SBIG_UINT(pdata,0,dsize);
+ SBIG_UINT(pdata,8,dfree);
+ SIVAL(pdata,16,sectors_per_unit);
+ SIVAL(pdata,20,bytes_per_sector);
break;
}
case SMB_FS_FULL_SIZE_INFORMATION:
{
- SMB_BIG_UINT dfree,dsize,bsize;
+ SMB_BIG_UINT dfree,dsize,bsize,block_size,sectors_per_unit,bytes_per_sector;
data_len = 32;
conn->vfs_ops.disk_free(conn,".",False,&bsize,&dfree,&dsize);
+ block_size = lp_block_size(snum);
+ if (bsize < block_size) {
+ SMB_BIG_UINT factor = block_size/bsize;
+ bsize = block_size;
+ dsize /= factor;
+ dfree /= factor;
+ }
+ if (bsize > block_size) {
+ SMB_BIG_UINT factor = bsize/block_size;
+ bsize = block_size;
+ dsize *= factor;
+ dfree *= factor;
+ }
+ bytes_per_sector = 512;
+ sectors_per_unit = bsize/bytes_per_sector;
+ DEBUG(5,("call_trans2qfsinfo : SMB_QUERY_FS_FULL_SIZE_INFO bsize=%u, cSectorUnit=%u, \
+cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", (unsigned int)bsize, (unsigned int)sectors_per_unit,
+ (unsigned int)bytes_per_sector, (unsigned int)dsize, (unsigned int)dfree));
SBIG_UINT(pdata,0,dsize); /* Total Allocation units. */
SBIG_UINT(pdata,8,dfree); /* Caller available allocation units. */
SBIG_UINT(pdata,16,dfree); /* Actual available allocation units. */
- SIVAL(pdata,24,bsize/512); /* Sectors per allocation unit. */
- SIVAL(pdata,28,512); /* Bytes per sector. */
+ SIVAL(pdata,24,sectors_per_unit); /* Sectors per allocation unit. */
+ SIVAL(pdata,28,bytes_per_sector); /* Bytes per sector. */
break;
}