--- /dev/null
+samba4wins HOWTO
+================
+(Version 1.0.0)
+Status: 31.01.2006
+
+NOTE: The location of wins_config.ldb has changed
+ from /etc/samba4wins/ to /var/lib/samba4wins/private/
+
+Please take a look at samba4wins-NEWS.txt for more changes
+between releases
+(a copy can be found under
+ /usr/share/doc/packages/samba4wins/ (SLES9) or
+ /usr/share/doc/samba4wins/ (RHEL4,Debian)).
+
+Some useful links:
+==================
+For an overview of the WINS Replication please read this:
+http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarnetbios/html/msdn_winswp.asp
+http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnw2k/html/msdn_winsoverview.asp
+
+Ethereal >= 0.10.13 has a dissector for the WINS-Replication
+http://www.ethereal.com/
+
+Configuration
+=============
+/etc/samba4wins/samba4wins.conf:
+
+This file has the same syntax as the smb.conf from samba3.
+
+These are the global parameters that matter:
+--------------------------------------------
+But you should try to keep the default values == an empty file
+
+"netbios name"
+"workgroup"
+"interfaces"
+"bind interfaces only"
+"log level" you should may run with log level = 4 for testing
+These parameters are like in samba3 smb.conf.
+
+"nbtd:disable_broadcast"
+Set this to "yes" disables listening on the broadcast ip-addresses on the udp port 137.
+This is needed when using samba4wins together with samba-3.0.21.
+The default is "no".
+
+"dns proxy"
+Specifies that when acting as a WINS server and finding that a NetBIOS name has not been registered,
+should treat the NetBIOS name word-for-word as a DNS name and do a lookup with the DNS server for
+that name on behalf of the name-querying client.
+Note that the maximum length for a NetBIOS name is 15 characters, so the DNS name (or DNS alias)
+can likewise only be 15 characters, maximum.
+The default is "yes".
+
+"wins hook"
+When samba4wins allows you to call an external program for all changes to the WINS database.
+The primary use for this option is to allow the dynamic update of external name resolution
+databases such as dynamic DNS.
+The wins hook parameter specifies the name of a script or executable that will be called as follows:
+ - wins_hook operation name nametype ttl IP_list
+ - The first argument is the operation and is one of "add", "delete", or "refresh".
+ In most cases the operation can be ignored as the rest of the parameters provide sufficient information.
+ Note that "refresh" may sometimes be called when the name has not previously been added,
+ in that case it should be treated as an add.
+ - The second argument is the NetBIOS name.
+ - The third argument is the NetBIOS name type as a 2 digit hexadecimal number.
+ - The fourth argument is the TTL (time to live) for the name in seconds.
+ - The fifth and subsequent arguments are the IP addresses currently registered for that name.
+ If this list is empty then the name should be deleted.
+An example script that calls the BIND dynamic DNS update program nsupdate is
+provided in examples directory of the Samba 3.0.* source code.
+
+"winsdb:local_owner"
+This specifies the address that is stored in the winsOwner attribute, of
+locally registered winsRecord-objects.
+The default is to use the ip-address of the first network interface.
+
+"max wins ttl"
+This is the maximum 'time to live' of NetBIOS names that smbd4wins will grant will be (in seconds).
+You should never need to change this parameter.
+The default is 518400 (= 6 days = 6*24*60*60).
+
+"min wins ttl" 10
+This is the minimum 'time to live' of NetBIOS names that smbd4wins will grant will be (in seconds).
+
+"wreplsrv:renew_interval"
+This is the interval till records become released.
+The default is 518400 (= 6 days = 6*24*60*60)
+(NOT used really yet).
+
+"wreplsrv:tombstone_interval"
+This is the interval till released records become tombstone
+the default is 518400 (= 6 days = 6*24*60*60).
+
+"wreplsrv:tombstone_timeout"
+This is the interval till tombstone records are deleted from the database.
+The default is 86400 (= 1 day = 1*24*60*60).
+
+"wreplsrv:tombstone_extra_timeout"
+This is the time the server needs to be up till we'll remove tombstone records
+from our database.
+The default is 259200 (= 3 days = 3*24*60*60).
+
+"wreplsrv:verify_interval"
+This interval till we verify active replica records with the owning wins server.
+NOTE: this is currently not implemented.
+The default value is 2073600 (= 24 days = 24*24*60*60).
+
+"wreplsrv:scavenging_interval"
+This is the interval between 2 scavenging runis which cleanup the database
+and changes the states of expired name records.
+The default value is half of the "wreplsrv:renew_interval".
+
+"wreplsrv:periodic_interval"
+This maximum interval between 2 periodicly scheduled runs:
+e.g. this is the maximal interval where we check for wins.ldb changes and do push notiications
+ to our push partners
+e.g. this is the maximal interval where we check for wins_config.ldb changes
+ and reload the partner configuration
+This default value is 15 seconds.
+
+Configure WINS-Replication-Partners
+===================================
+/var/lib/samba4wins/private/wins_config.ldb
+
+Please be very careful when you edit the wins_config.ldb file!
+
+Adding a new replication partner
+--------------------------------
+Run this 'ldbedit -H /var/lib/samba4wins/private/wins_config.ldb -a' command (see Notes about ldbedit below).
+Then add this for replicating with 'WINSSERVER-02' at ip-address 192.168.9.9:
+(Note: the ',CN=PARTNERS' is important!)
+
+Example1 (simple):
+<-------------------------------->
+dn: CN=WINSSERVER-02,CN=PARTNERS
+objectClass: wreplPartner
+address: 192.168.9.9
+<-------------------------------->
+
+Example1 (extended):
+<-------------------------------->
+dn: CN=WINSSERVER-02,CN=PARTNERS
+objectClass: wreplPartner
+address: 192.168.9.9
+type: 0x3
+pullInterval: 1800
+pullRetryInterval: 30
+pushChangeCount: 0
+pushUseInform: 0
+<-------------------------------->
+
+Both versions of Example1 result in the same, the only difference is that
+the extended one explictily specifies the default values. When you're ready
+just store the file within your editor and exit the editor.
+
+The meanings of the attributes of a 'wreplPartner' object:
+----------------------------------------------------------
+
+address:
+This is the ip-address of the replication partner, that we use to contact
+the partner when pulling from him, but it's also the address which the partner
+needs to use as source ip-addres, when he contacts us!
+
+type:
+This has the following meaning:
+0x0 => disabled partner
+0x1 => the partner is only a PULL-Partner
+0x2 => the partner is only a PUSH-Partner
+0x3 => the partner is a PULL- and PUSH-Partner
+the default is 0x3 (pull and push)
+
+pullInterval:
+This is the interval in seconds, between 2 PULL-Replications
+to the partner.
+The default is 1800 (= 30 mins)
+The value 0 means to not try active pull attempts at all to this partner.
+
+pullRetryInterval:
+This is the interval in seconds, that will be waited, after a pull replication
+error happens to the partner. Because using linear interval steps for the retry
+attempts isn't a good idea, we use this:
+wait_interval = MIN(pullInterval, error_count * pullRetryInterval)
+The default is 30 (seconds).
+
+pushChangeCount:
+This is the number of database changes, before we send a push notification to the partner.
+The value 0 means to not do active push notifications at all to this partner.
+
+pushUseInform:
+This is a boolean parameter (1 or 0), that controls whether we should use a
+persistent connection and WREPL_REPL_INFORM messages for the push notifications.
+Note: Because NT4 doesn't support WREPL_REPL_INFORM messages, but w2k, w2k3 and samba4wins do,
+the default is 0 (use the old WREPL_REPL_UPDATE) messages.
+
+ourAddress:
+This is the address which we will use as source address, when we contact the partner.
+This is only needed when we have multiple local network interfaces, by default smbd4wins
+uses the 'best' interface. If you got NT_STATUS_NETWORK_ACCESS_DENIED errors you may need
+to set this attribute, otherwise just skip it
+(use ethereal to make sure the correct source address is used).
+
+Notes about ldbedit
+-------------------
+ldbedit uses the EDITOR env-variable, or 'vi' as fallback
+to open the search result in LDIF format. You can then edit the records
+as you wish, add new records or delete them. When you save and exit
+the editor, ldbedit calculates the LDIF diff, and applies the changes
+to the database. Note the 'distinguishedName' attribute is autogenerated,
+and won't be stored in the database. also see 'ldbedit --help'.
+
+Backup .ldb files
+-----------------
+Use something like this to backup the ldb-database files.
+
+#~>ldbsearch -d 0 -H /var/lib/samba4wins/wins.ldb "objectClass=*" > /backup/wins-backup.ldif
+#~>ldbsearch -d 0 -H /var/lib/samba4wins/private/wins_config.ldb "objectClass=*" > /backup/wins_config-backup.ldif
+
+or maybe just backup static records...
+#~>ldbsearch -d 0 -H /var/lib/samba4wins/wins.ldb "(|(objectClass=winsMaxVersion)(isStatic=1))" > /backup/wins-static.ldif
+
+Restore .ldb files
+------------------
+Use something like this to restore the ldb-database file from a ldif-file.
+
+#~>ldbadd -d 0 -H /var/lib/samba4wins/wins.ldb < /backup/wins-backup.ldif
+#~>ldbadd -d 0 -H /var/lib/samba4wins/private/wins_config.ldb < /backup/wins_config-backup.ldif
+
+Please note that ldbadd will not overwrite existing records in an already present database.
+
+Start/Stop
+==========
+rcsmbd4wins start
+rcsmbd4wins stop
+
+Debian:
+/etc/init.d/smbd4wins start
+/etc/init.d/smbd4wins stop
+
+Log-File
+========
+/var/log/samba4wins/smbd4wins.log
+
+Database-File
+=============
+/var/lib/samba4wins/wins.ldb
+
+Please be very careful when you edit the wins.ldb file yourself!
+
+You can look at the database records also with ldbedit or ldbsearch:
+
+ldbedit -H /var/lib/samba4wins/wins.ldb -a
+ldbsearch -H /var/lib/samba4wins/wins.ldb
+
+The database has a special entry CN=VERSION that holds the max version id
+counter for the local server.
+For looking only at this entry, call:
+ldbedit -H /var/lib/samba4wins/wins.ldb objectClass=winsMaxVersion
+or
+ldbedit -H /var/lib/samba4wins/wins.ldb DN=CN=VERSION
+
+It will look like this after at least
+one name record was registered with the local wins server:
+<----------------------------->
+dn: CN=VERSION
+objectClass: winsMaxVersion
+maxVersion: 64
+<----------------------------->
+
+The database also contains the name records, look at all records call:
+ldbedit -H /var/lib/samba4wins/wins.ldb objectClass=winsRecord
+
+for only specific records use this:
+ldbedit -H /var/lib/samba4wins/wins.ldb name=DOMAIN1
+or
+ldbedit -H /var/lib/samba4wins/wins.ldb type=0x1C
+or
+ldbedit -H /var/lib/samba4wins/wins.ldb (&(name=DOMAIN1)(recordState=0))
+or ...
+
+this is an example name record:
+<------------------------------------------------------------------------>
+dn: name=DOMAIN1,type=0x1C
+objectClass: winsRecord
+type: 0x1C
+name: DOMAIN1
+recordType: 2
+recordState: 0
+nodeType: 0
+isStatic: 0
+expireTime: 20060110201752.0Z
+winsOwner: 192.168.9.9
+versionID: 55654
+address: 192.168.9.56;winsOwner:192.168.9.9;expireTime:20060110201752.0Z;
+address: 192.168.4.66;winsOwner:192.168.4.9;expireTime:20060103135509.0Z;
+<------------------------------------------------------------------------>
+
+The meanings of the attributes of an 'winsRecord' object:
+--------------------------------------------------------
+
+type:
+This is name type, e.g. 0x1C means DOMAIN LOGON Servers, 0x20 means file server ...
+
+name:
+The name for the record.
+
+recordType:
+This means the following:
+0 => UNIQUE name record
+1 => NORMAL GROUP name record
+2 => SPECIAL GROUP name record (e.g. 0x1C)
+3 => MULTIHOMED name record
+
+recordState:
+0 => ACTIVE
+1 => RELEASED
+3 => TOMBSTONE
+
+nodeType:
+0 => B-NODE
+1 => P-NODE
+2 => M-NODE
+3 => H-NODE
+
+isStatic:
+1 => This is a static record and it won't be overwritten via a WINS registration nor
+ via WINS replication.
+0 => This is a normal dynamic record.
+
+winsOwner:
+This is the WINS server where the name owner registerd the name.
+For static records which are added via ldbedit you can use
+0.0.0.0 here.
+
+versionID;
+This is the version id of the record relative to the winsOwner, when a record is registered
+locally, this is taken from the CN=VERSION record's maxVersion attribute,
+(which is incremented at the same time).
+NOTE: If you create your own (static) records using ldbedit, you need to manually keep the CN=VERSION's
+ maxVersion in sync!!! If not, some records will not be replicated to the partners.
+
+address:
+This can be a multivalued attribute if the recordType is SPECIAL GROUP (2) or MULTIHOMED (3).
+This is the address attached to the name record with the per address winsOwner and expireTime.
+The winsOwner and expireTime per address is needed to handle replication conflicts
+between SPECIAL GROUP and MULTIHOMED records correctly.
+
+Testing
+=======
+You can use nmblookup from samba3 to do some name queries.
+
+Using Samba 3.0.21 and samba4wins on an alias network interface
+===============================================================
+If you want to use samba4wins on a server where you already run
+Samba 3.0.21, you need the following extra configuration.
+
+Example setup:
+You have a server with a network interface:
+eth0 ip:192.168.9.1 netmask:255.255.255.0 broadcast:192.168.9.255
+
+Usually the following sockets are used to listen on:
+
+smbd:
+0.0.0.0:139 tcp
+0.0.0.0:445 tcp
+
+nmbd:
+192.168.9.1:137 udp
+0.0.0.0:137 udp
+192.168.9.1:138 udp
+0.0.0.0:138 udp
+
+In this case all incoming packets would go through the 0.0.0.0:* sockets.
+If you would start smbd4wins, it wouldn't be possible to listen on port 137
+as nmdd already listens there with the wildcard ip.
+
+So what you need is to make nmbd not using the wildcard address,
+and we need a seperate unicast address for smbd4wins.
+
+This will add the 192.168.9.2 as 2nd address to the eth0 interface:
+ifconfig eth0:2 192.168.9.2 netmask 255.255.255 broadcast 192.168.9.255
+
+To make nmbd not using the wildcard address, you need this:
+so what you need is the following in your smb.conf (for samba3!)
+<------ /etc/samba/smb.conf --------------->
+[globals]
+ ...
+ netbios name = SERVER1
+ ...
+ # only use the given interfaces
+ bind interfaces only = yes
+ # this is the unicast address
+ interfaces = 172.31.9.1
+ # this is the broadcast address
+ socket address = 172.31.9.255
+
+ # as we want to use samba4wins as wins server
+ # set the address here
+ wins server = 172.31.9.2
+ ...
+<------------------------------------------>
+
+smbd4wins should only act as wins server and should in this case only handle unicast
+requests, as it's imposible to have 2 unix process listening on the same broadcast address
+and the same port (192.168.9.255 port 127 in this case).
+Also it should use a different netbios name!
+
+<------ /etc/samba4wins/samba4wins.conf --------------->
+[globals]
+ ...
+ # it's important that this netbios name is different from
+ # the one that's used for samba3!
+ netbios name = SERVER1-WINS
+ ...
+ # only use the given interfaces
+ bind interfaces only = yes
+ # this is the unicast address
+ interfaces = 172.31.9.2
+ # samba4wins is only a wins server,
+ # and broadcasts are handled by samba3
+ # so disable listening on the broadcast address
+ nbtd:disable_broadcast = yes
+
+ # as we want to ourself as wins server
+ # and don't listen on 127.0.0.1
+ # we need to explicit set the wins server here
+ wins server = 172.31.9.2
+ ...
+<------------------------------------------>
+
+After these changes, the use of listening sockets should be like this:
+
+smbd:
+192.168.9.1:139 tcp
+192.168.9.1:445 tcp
+
+nmbd:
+192.168.9.1:137 udp
+192.168.9.255:137 udp
+192.168.9.1:138 udp
+192.168.9.255:138 udp
+
+smbd4wins:
+192.168.9.2:42 tcp
+192.168.9.2:137 udp
+
+Note: port 42 is used for the wins replication.
+
+Feedback
+========
+For comments, questions and updates please contact samba4wins@SerNet.DE
--- /dev/null
+samba4wins NEWS
+===============
+(Version 1.0.0)
+Status: 31.01.2006
+
+News since pre3:
+================
+- The location of 'wins_config.ldb' is changed from
+ /etc/samba4wins/ to /var/lib/samba4wins/private/.
+ If you upgrade from pre3 you need to copy the wins_config.ldb
+ to the new path manually!!!
+- "wins hook" option works now.
+- "max wins ttl" option is now 6 days instead of 5 days.
+- "wreplsrv:periodic_interval" is 15 seconds now instead of 60 seconds.
+- Push notifications are now triggered by changes of owned records.
+- Autoreload of wins partners without restart.
+
+News since pre2:
+================
+- "winsdb:local_owner" option
+- "dns proxy" option
+
+Feedback
+========
+For comments, questions and updates please contact samba4wins@SerNet.DE
--- /dev/null
+samba4wins README
+=================
+(Version 1.0.0)
+Status: 31.01.2006
+
+The project samba4WINS is about the replicating WINS server.
+SerNet started this project because of many requests
+from corporate and public customers in late 2005.
+
+Sponsors of the initial project are
+Computacenter, Fujitsu Siemens Computers (FSC) and the LiSoG e.V..
+SerNet funds the further development after the first release.
+
+The new WINS server has been developed using the Samba 4 framework.
+
+Please regard this work as a subject of rapid development. The software may contain bugs.
+Please send any comment or question concerning samba4WINS to samba4wins@sernet.de.
+
+Please read the following files carefully!
+
+samba4wins-<version>-NEWS.txt
+samba4wins-<version>-HOWTO.txt
+samba4wins-<version>-TODO.txt
+
+Copies of this files can be found in
+/usr/share/doc/packages/samba4wins/ (SLES9) or
+/usr/share/doc/samba4wins/ (RHEL4,Debian)
+
+Links:
+http://www.enterprisesamba.org/index.php?id=88
+http://ftp.sernet.de/pub/samba4WINS/
+mailto:samba4wins@sernet.de
--- /dev/null
+samba4wins TODO list
+====================
+(Version 1.0.0)
+Status: 31.01.2006
+
+TODO after 1.0.0:
+===============
+- Handle all cases with static records, only protect static, active.
+- (Maybe) verify the record and update the versionID while using ldbedit.
+- Search and fix bugs.
+- Write EJS-script for standalone wins.dat => wins.ldb upgrade.
+- Write EJS-script for standalone wins.tdb => wins.ldb upgrade?
+
+TODO for 1.1.0:
+===============
+- (Maybe) find out how WREPL_REPL_INFORM* is negotiated.
+- Propagate WREPL_REPL_INFORM2 and WREPL_REPL_UPDATE2 to all push partners.
+- Verify active replicas after the verify interval passes, in the same way w2k3 does it.
+
+TODO HOWTO
+==========
+
+DONE:
+=====
+- Ethereal Dissector (for understanding and debugging of the protocol).
+- Listen to port 42.
+- Load Configured Partners at startup.
+- Load Owner Table at startup.
+- Handle WREPL_START_ASSOCIATION WREPL_STOP_ASSOCIATION calls
+ in the server (like open()/close()).
+- Handle WREPL_REPL_TABLE_REQUEST and reply with
+ WREPL_REPL_TABLE_REPLY.
+- Handle WREPL_REPL_SEND_REQUEST and reply with
+ WREPL_REPL_SEND_REPLY.
+- Pull (only the needed) changes from PULL-Partners, in configured intervals
+ (this handles broken connections and reconnects fine).
+- Switch the connection, on an incomming WREPL_REPL_UPDATE* message
+ from a PULL-Partner, into a client connection that pulls (only the needed)
+ chages) from the partner, and then closes the connection.
+- Trigger a pull-cycle when we receive an incomming WREPL_REPL_INFORM* message from a
+ PULL-partner.
+- We know how to handle replication conflicts, between records from the same owner.
+ And we pass the torture test.
+- We know how to handle replication conflicts, between records from a different owner.
+ And we pass the torture test.
+- We know how to handle owned,non-active records vs. replica conflicts.
+ And we pass the torture test.
+- We know how to handle owned,active records vs. replica conflicts.
+ And we pass the torture test.
+- We do scheduled database cleanup ("Scavenging")
+ (but verifying of active replicas after the
+ verify interval is done by name queries to
+ the original wins owner).
+- We do dns proxy lookups, for 0x00 and 0x20 names, if "dns proxy = yes" is configured.
+- We call the wins hook script.
+
+Feedback
+========
+For comments, questions and updates please contact samba4wins@SerNet.DE
# e.g. SAMBA_VERSION_VENDOR_SUFFIX=vendor_version() #
# -> "CVS 3.0.0rc2-VendorVersion" #
########################################################
-SAMBA_VERSION_VENDOR_SUFFIX=
-SAMBA_VERSION_VENDOR_PATCH=
+SAMBA_VERSION_VENDOR_SUFFIX="SerNet-samba4wins-patch-tree"
+
#################################
# Start BINARY smbclient
-[BINARY::smbclient]
-INSTALLDIR = BINDIR
-OBJ_FILES = \
- client.o
-REQUIRED_SUBSYSTEMS = \
- CONFIG \
- LIBREADLINE \
- LIBBASIC \
- LIBSMB \
- RPC_NDR_SRVSVC \
- LIBCLI_LSA \
- LIBPOPT \
- POPT_SAMBA \
- POPT_CREDENTIALS
+#[BINARY::smbclient]
+#INSTALLDIR = BINDIR
+#OBJ_FILES = \
+# client.o
+#REQUIRED_SUBSYSTEMS = \
+# CONFIG \
+# LIBREADLINE \
+# LIBBASIC \
+# LIBSMB \
+# RPC_NDR_SRVSVC \
+# LIBCLI_LSA \
+# LIBPOPT \
+# POPT_SAMBA \
+# POPT_CREDENTIALS
# End BINARY smbclient
#################################
# LIB GTK SMB subsystem
-[LIBRARY::GTK_SAMBA]
-MAJOR_VERSION = 0
-DESCRIPTION = Common Samba-related widgets for GTK+ applications
-MINOR_VERSION = 0
-RELEASE_VERSION = 1
-NOPROTO = YES
-PUBLIC_HEADERS = common/gtk-smb.h common/select.h
-OBJ_FILES = common/gtk-smb.o \
- common/select.o \
- common/gtk_events.o \
- common/credentials.o
-REQUIRED_SUBSYSTEMS = CHARSET LIBBASIC EXT_LIB_gtk RPC_NDR_SAMR
+#[LIBRARY::GTK_SAMBA]
+#MAJOR_VERSION = 0
+#DESCRIPTION = Common Samba-related widgets for GTK+ applications
+#MINOR_VERSION = 0
+#RELEASE_VERSION = 1
+#NOPROTO = YES
+#PUBLIC_HEADERS = common/gtk-smb.h common/select.h
+#OBJ_FILES = common/gtk-smb.o \
+# common/select.o \
+# common/gtk_events.o \
+# common/credentials.o
+#REQUIRED_SUBSYSTEMS = CHARSET LIBBASIC EXT_LIB_gtk RPC_NDR_SAMR
-[BINARY::gregedit]
-INSTALLDIR = BINDIR
-OBJ_FILES = tools/gregedit.o
-REQUIRED_SUBSYSTEMS = CONFIG REGISTRY GTK_SAMBA
-MANPAGE = man/gregedit.1
+#[BINARY::gregedit]
+#INSTALLDIR = BINDIR
+#OBJ_FILES = tools/gregedit.o
+#REQUIRED_SUBSYSTEMS = CONFIG REGISTRY GTK_SAMBA
+#MANPAGE = man/gregedit.1
-[BINARY::gepdump]
-INSTALLDIR = BINDIR
-MANPAGE = man/gepdump.1
-OBJ_FILES = tools/gepdump.o
-REQUIRED_SUBSYSTEMS = CONFIG GTK_SAMBA RPC_NDR_EPMAPPER RPC_NDR_MGMT
+#[BINARY::gepdump]
+#INSTALLDIR = BINDIR
+#MANPAGE = man/gepdump.1
+#OBJ_FILES = tools/gepdump.o
+#REQUIRED_SUBSYSTEMS = CONFIG GTK_SAMBA RPC_NDR_EPMAPPER RPC_NDR_MGMT
-[BINARY::gwcrontab]
-INSTALLDIR = BINDIR
-MANPAGE = man/gwcrontab.1
-OBJ_FILES = tools/gwcrontab.o
-REQUIRED_SUBSYSTEMS = CONFIG GTK_SAMBA RPC_NDR_ATSVC
+#[BINARY::gwcrontab]
+#INSTALLDIR = BINDIR
+#MANPAGE = man/gwcrontab.1
+#OBJ_FILES = tools/gwcrontab.o
+#REQUIRED_SUBSYSTEMS = CONFIG GTK_SAMBA RPC_NDR_ATSVC
# This binary is disabled for now as it doesn't do anything useful yet...
-[BINARY::gwsam]
+#[BINARY::gwsam]
#INSTALLDIR = BINDIR
-OBJ_FILES = tools/gwsam.o tools/gwsam_user.o
-REQUIRED_SUBSYSTEMS = CONFIG RPC_NDR_SAMR GTK_SAMBA
+#OBJ_FILES = tools/gwsam.o tools/gwsam_user.o
+#REQUIRED_SUBSYSTEMS = CONFIG RPC_NDR_SAMR GTK_SAMBA
################################################
# Start BINARY oLschema2ldif
[BINARY::oLschema2ldif]
+ENABLE = NO
INSTALLDIR = BINDIR
MANPAGE = man/oLschema2ldif.1
OBJ_FILES= \
################################################
# Start BINARY regdiff
[BINARY::regdiff]
+ENABLE = NO
INSTALLDIR = BINDIR
OBJ_FILES= \
tools/regdiff.o
################################################
# Start BINARY regpatch
[BINARY::regpatch]
+ENABLE = NO
INSTALLDIR = BINDIR
OBJ_FILES= \
tools/regpatch.o
################################################
# Start BINARY regshell
[BINARY::regshell]
+ENABLE = NO
INSTALLDIR = BINDIR
OBJ_FILES= \
tools/regshell.o
################################################
# Start BINARY regtree
[BINARY::regtree]
+ENABLE = NO
INSTALLDIR = BINDIR
OBJ_FILES= \
tools/regtree.o
################################################
# Start BINARY tdbtorture
[BINARY::tdbtorture]
+ENABLE = NO
INSTALLDIR = BINDIR
OBJ_FILES= \
tools/tdbtorture.o
################################################
# Start BINARY tdbdump
[BINARY::tdbdump]
+ENABLE = NO
INSTALLDIR = BINDIR
OBJ_FILES= \
tools/tdbdump.o
{
char *fname, *dname;
- dname = pid_path(mem_ctx, "smbd.tmp");
+ dname = pid_path(mem_ctx, "smbd4wins.tmp");
if (!directory_exist(dname)) {
mkdir(dname,0755);
}
# set these to where to find various files
# These can be overridden by command line switches (see smbd(8))
# or in smb.conf (see smb.conf(5))
-CONFIGFILE = $(CONFIGDIR)/smb.conf
+CONFIGFILE = $(CONFIGDIR)/samba4wins.conf
PKGCONFIGDIR = $(LIBDIR)/pkgconfig
LMHOSTSFILE = $(CONFIGDIR)/lmhosts
iface->netmask = talloc_steal(iface, netmask);
iface->names = NULL;
+if (!lp_parm_bool(-1,"nbtd","disable_broadcast", False)) {
if (strcmp(netmask, "0.0.0.0") != 0) {
struct nbt_name_socket *bcast_nbtsock;
nbt_set_incoming_handler(bcast_nbtsock, nbtd_request_handler, iface);
}
+}
/* listen for unicasts on port 137 */
iface->nbtsock = nbt_name_socket_init(iface, nbtsrv->task->event_ctx);
nbt_set_incoming_handler(iface->nbtsock, nbtd_request_handler, iface);
+#if 0
/* also setup the datagram listeners */
status = nbtd_dgram_setup(iface, bind_address);
if (!NT_STATUS_IS_OK(status)) {
talloc_free(iface);
return status;
}
-
+#endif
+
if (strcmp(netmask, "0.0.0.0") == 0) {
DLIST_ADD(nbtsrv->bcast_interface, iface);
} else {
case WINSDB_HANDLE_CALLER_ADMIN:
error = talloc_strdup(module, "WINS_LDB: TODO verify add/modify for WINSDB_HANDLE_CALLER_ADMIN");
- ldb_debug(module->ldb, LDB_DEBUG_WARNING, "%s\n", error);
+ ldb_debug(module->ldb, LDB_DEBUG_TRACE, "%s\n", error);
return ldb_next_request(module, req);
}
do_parameter("max connections", "-1", NULL);
do_parameter("dcerpc endpoint servers", "epmapper srvsvc wkssvc rpcecho samr netlogon lsarpc spoolss drsuapi winreg dssetup", NULL);
- do_parameter("server services", "smb rpc nbt wrepl ldap cldap web kdc", NULL);
+ do_parameter("server services", "nbt wrepl", NULL);
do_parameter("ntptr providor", "simple_ldb", NULL);
do_parameter("auth methods", "anonymous sam_ignoredomain", NULL);
do_parameter("private dir", dyn_PRIVATE_DIR, NULL);
do_parameter("PreferredMaster", "Auto", NULL);
do_parameter("LocalMaster", "True", NULL);
- do_parameter("wins support", "False", NULL);
+ do_parameter("wins support", "True", NULL);
do_parameter("dns proxy", "True", NULL);
do_parameter("winbind separator", "\\", NULL);
) 9>$SMBD_TEST_FIFO
failed=$?
-kill `cat $PIDDIR/smbd.pid`
+kill `cat $PIDDIR/smbd4wins.pid`
END=`date`
echo "START: $START ($0)";
if [ -z "$SMBD_MAXTIME" ]; then
SMBD_MAXTIME=2700
fi
- $SMBD_VALGRIND $SRCDIR/bin/smbd --maximum-runtime=$SMBD_MAXTIME -d1 -s $CONFFILE -M single -i < $SMBD_TEST_FIFO > $SMBD_TEST_LOG 2>&1;
+ $SMBD_VALGRIND $SRCDIR/bin/smbd4wins --maximum-runtime=$SMBD_MAXTIME -d1 -s $CONFFILE -M single -i < $SMBD_TEST_FIFO > $SMBD_TEST_LOG 2>&1;
ret=$?;
rm -f $SMBD_TEST_FIFO;
if [ -n "$SOCKET_WRAPPER_DIR" -a -d "$SOCKET_WRAPPER_DIR" ]; then
- $SRCDIR/script/tests/test_ejs.sh $DOMAIN $USERNAME $PASSWORD || failed=`expr $failed + $?`
- $SRCDIR/script/tests/test_ldap.sh $SERVER $USERNAME $PASSWORD || failed=`expr $failed + $?`
$SRCDIR/script/tests/test_nbt.sh $SERVER || failed=`expr $failed + $?`
- $SRCDIR/script/tests/test_quick.sh //$SERVER/cifs $USERNAME $PASSWORD "" || failed=`expr $failed + $?`
- $SRCDIR/script/tests/test_rpc.sh $SERVER $USERNAME $PASSWORD $DOMAIN || failed=`expr $failed + $?`
- $SRCDIR/script/tests/test_session_key.sh $SERVER $USERNAME $PASSWORD $DOMAIN || failed=`expr $failed + $?`
- $SRCDIR/script/tests/test_binding_string.sh $SERVER $USERNAME $PASSWORD $DOMAIN || failed=`expr $failed + $?`
- $SRCDIR/script/tests/test_echo.sh $SERVER $USERNAME $PASSWORD $DOMAIN || failed=`expr $failed + $?`
- $SRCDIR/script/tests/test_posix.sh //$SERVER/tmp $USERNAME $PASSWORD "" || failed=`expr $failed + $?`
$SRCDIR/script/tests/test_local.sh || failed=`expr $failed + $?`
$SRCDIR/script/tests/test_pidl.sh || failed=`expr $failed + $?`
- $SRCDIR/script/tests/test_smbclient.sh $SERVER $USERNAME $PASSWORD $DOMAIN $PREFIX || failed=`expr $failed + $?`
TORTURE_OPTIONS="$TORTURE_OPTIONS --option=torture:quick=yes"
-$SRCDIR/script/tests/test_ejs.sh $DOMAIN $USERNAME $PASSWORD || failed=`expr $failed + $?`
-$SRCDIR/script/tests/test_ldap.sh $SERVER $USERNAME $PASSWORD || failed=`expr $failed + $?`
$SRCDIR/script/tests/test_nbt.sh $SERVER || failed=`expr $failed + $?`
-$SRCDIR/script/tests/test_quick.sh //$SERVER/cifs $USERNAME $PASSWORD "" || failed=`expr $failed + $?`
-$SRCDIR/script/tests/test_rpc_quick.sh $SERVER $USERNAME $PASSWORD $DOMAIN || failed=`expr $failed + $?`
################################################
# Start MODULE server_service_auth
-[MODULE::server_service_auth]
-INIT_FUNCTION = server_service_auth_init
-SUBSYSTEM = SERVER_SERVICE
-REQUIRED_SUBSYSTEMS = \
- AUTH
+#[MODULE::server_service_auth]
+#INIT_FUNCTION = server_service_auth_init
+#SUBSYSTEM = SERVER_SERVICE
+#REQUIRED_SUBSYSTEMS = \
+# AUTH
# End MODULE server_auth
################################################
################################################
# Start MODULE server_service_smb
-[MODULE::server_service_smb]
-INIT_FUNCTION = server_service_smb_init
-OUTPUT_TYPE = MERGEDOBJ
-SUBSYSTEM = SERVER_SERVICE
-REQUIRED_SUBSYSTEMS = \
- SMB
+#[MODULE::server_service_smb]
+#INIT_FUNCTION = server_service_smb_init
+#OUTPUT_TYPE = MERGEDOBJ
+#SUBSYSTEM = SERVER_SERVICE
+#REQUIRED_SUBSYSTEMS = \
+# SMB
# End MODULE server_smb
################################################
################################################
# Start MODULE server_service_rpc
-[MODULE::server_service_rpc]
-INIT_FUNCTION = server_service_rpc_init
-SUBSYSTEM = SERVER_SERVICE
-OUTPUT_TYPE = MERGEDOBJ
-REQUIRED_SUBSYSTEMS = \
- DCERPC_SERVER
+#[MODULE::server_service_rpc]
+#INIT_FUNCTION = server_service_rpc_init
+#SUBSYSTEM = SERVER_SERVICE
+#OUTPUT_TYPE = MERGEDOBJ
+#REQUIRED_SUBSYSTEMS = \
+# DCERPC_SERVER
# End MODULE server_rpc
################################################
################################################
# Start MODULE server_service_ldap
-[MODULE::server_service_ldap]
-INIT_FUNCTION = server_service_ldap_init
-SUBSYSTEM = SERVER_SERVICE
-REQUIRED_SUBSYSTEMS = \
- LDAP
+#[MODULE::server_service_ldap]
+#INIT_FUNCTION = server_service_ldap_init
+#SUBSYSTEM = SERVER_SERVICE
+#REQUIRED_SUBSYSTEMS = \
+# LDAP
# End MODULE server_ldap
################################################
################################################
# Start MODULE server_service_cldapd
-[MODULE::server_service_cldap]
-INIT_FUNCTION = server_service_cldapd_init
-SUBSYSTEM = SERVER_SERVICE
-REQUIRED_SUBSYSTEMS = \
- CLDAPD
+#[MODULE::server_service_cldap]
+#INIT_FUNCTION = server_service_cldapd_init
+#SUBSYSTEM = SERVER_SERVICE
+#REQUIRED_SUBSYSTEMS = \
+# CLDAPD
# End MODULE server_service_cldapd
################################################
################################################
# Start MODULE server_service_web
-[MODULE::server_service_web]
-INIT_FUNCTION = server_service_web_init
-SUBSYSTEM = SERVER_SERVICE
-REQUIRED_SUBSYSTEMS = \
- WEB
+#[MODULE::server_service_web]
+#INIT_FUNCTION = server_service_web_init
+#SUBSYSTEM = SERVER_SERVICE
+#REQUIRED_SUBSYSTEMS = \
+# WEB
# End MODULE server_service_web
################################################
################################################
# Start MODULE server_service_web
-[MODULE::server_service_kdc]
-INIT_FUNCTION = server_service_kdc_init
-SUBSYSTEM = SERVER_SERVICE
-REQUIRED_SUBSYSTEMS = \
- KDC
+#[MODULE::server_service_kdc]
+#INIT_FUNCTION = server_service_kdc_init
+#SUBSYSTEM = SERVER_SERVICE
+#REQUIRED_SUBSYSTEMS = \
+# KDC
# End MODULE server_service_web
################################################
################################################
# Start MODULE server_service_winbind
-[MODULE::server_service_winbind]
-INIT_FUNCTION = server_service_winbind_init
-SUBSYSTEM = SERVER_SERVICE
-REQUIRED_SUBSYSTEMS = \
- WINBIND
+#[MODULE::server_service_winbind]
+#INIT_FUNCTION = server_service_winbind_init
+#SUBSYSTEM = SERVER_SERVICE
+#REQUIRED_SUBSYSTEMS = \
+# WINBIND
# End MODULE server_service_winbind
################################################
#################################
# Start BINARY smbd
-[BINARY::smbd]
+#[BINARY::smbd]
+#INSTALLDIR = SBINDIR
+#OBJ_FILES = \
+# server.o
+#REQUIRED_SUBSYSTEMS = \
+# PROCESS_MODEL \
+# SERVER_SERVICE \
+# CONFIG \
+# LIBCMDLINE \
+# LIBBASIC \
+# PIDFILE
+# End BINARY smbd
+#################################
+
+#################################
+# Start BINARY smbd
+[BINARY::smbd4wins]
INSTALLDIR = SBINDIR
MANPAGE = smbd.8
OBJ_FILES = \
################################################
# Start MODULE process_model_standard
-[MODULE::process_model_standard]
-INIT_FUNCTION = process_model_standard_init
-SUBSYSTEM = PROCESS_MODEL
-OBJ_FILES = \
- process_standard.o
+#[MODULE::process_model_standard]
+#INIT_FUNCTION = process_model_standard_init
+#SUBSYSTEM = PROCESS_MODEL
+#OBJ_FILES = \
+# process_standard.o
# End MODULE process_model_standard
################################################
################################################
# Start MODULE process_model_thread
-[MODULE::process_model_thread]
-INIT_FUNCTION = process_model_thread_init
-SUBSYSTEM = PROCESS_MODEL
-OBJ_FILES = \
- process_thread.o
-REQUIRED_SUBSYSTEMS = EXT_LIB_PTHREAD
+#[MODULE::process_model_thread]
+#INIT_FUNCTION = process_model_thread_init
+#SUBSYSTEM = PROCESS_MODEL
+#OBJ_FILES = \
+# process_thread.o
+#REQUIRED_SUBSYSTEMS = EXT_LIB_PTHREAD
# End MODULE process_model_thread
################################################
init_module_fn *shared_init;
struct event_context *event_ctx;
NTSTATUS status;
- const char *model = "standard";
+ const char *model = "single";
int max_runtime = 0;
struct poptOption long_options[] = {
POPT_AUTOHELP
gensec_init();
+#if 0
registry_init(); /* FIXME: maybe run this in the initialization function
of the winreg RPC server instead? */
ntvfs_init(); /* FIXME: maybe run this in the initialization functions
of the SMB[,2] server instead? */
+#endif
process_model_init();
int main(int argc, const char *argv[])
{
- return binary_smbd_main("smbd", argc, argv);
+ return binary_smbd_main("smbd4wins", argc, argv);
}
#################################
# Start BINARY gentest
-[BINARY::gentest]
-INSTALLDIR = BINDIR
-OBJ_FILES = \
- gentest.o \
- torture_util.o
-REQUIRED_SUBSYSTEMS = \
- LIBSMB \
- CONFIG \
- LIBBASIC
-MANPAGE = man/gentest.1
+#[BINARY::gentest]
+#INSTALLDIR = BINDIR
+#OBJ_FILES = \
+# gentest.o \
+# torture_util.o
+#REQUIRED_SUBSYSTEMS = \
+# LIBSMB \
+# CONFIG \
+# LIBBASIC
+#MANPAGE = man/gentest.1
# End BINARY gentest
#################################
#################################
# Start BINARY masktest
-[BINARY::masktest]
-INSTALLDIR = BINDIR
-OBJ_FILES = \
- masktest.o
-REQUIRED_SUBSYSTEMS = \
- LIBSMB \
- CONFIG \
- LIBBASIC
-MANPAGE = man/masktest.1
+#[BINARY::masktest]
+#INSTALLDIR = BINDIR
+#OBJ_FILES = \
+# masktest.o
+#REQUIRED_SUBSYSTEMS = \
+# LIBSMB \
+# CONFIG \
+# LIBBASIC
+#MANPAGE = man/masktest.1
# End BINARY masktest
#################################
#################################
# Start BINARY locktest
-[BINARY::locktest]
-INSTALLDIR = BINDIR
-OBJ_FILES = \
- locktest.o \
- torture_util.o
-REQUIRED_SUBSYSTEMS = \
- LIBSMB \
- CONFIG \
- LIBBASIC
-MANPAGE = man/locktest.1
+#[BINARY::locktest]
+#INSTALLDIR = BINDIR
+#OBJ_FILES = \
+# locktest.o \
+# torture_util.o
+#REQUIRED_SUBSYSTEMS = \
+# LIBSMB \
+# CONFIG \
+# LIBBASIC
+#MANPAGE = man/locktest.1
# End BINARY locktest
#################################
#################################
# Start BINARY ndrdump
-[BINARY::ndrdump]
-INSTALLDIR = BINDIR
-OBJ_FILES = \
- ndrdump.o
-REQUIRED_SUBSYSTEMS = \
- CONFIG \
- LIBBASIC \
- NDR_ALL \
- LIBPOPT \
- POPT_SAMBA
-MANPAGE = man/ndrdump.1
+#[BINARY::ndrdump]
+#INSTALLDIR = BINDIR
+#OBJ_FILES = \
+# ndrdump.o
+#REQUIRED_SUBSYSTEMS = \
+# CONFIG \
+# LIBBASIC \
+# NDR_ALL \
+# LIBPOPT \
+# POPT_SAMBA
+#MANPAGE = man/ndrdump.1
# FIXME: ndrdump shouldn't have to depend on RPC...
# End BINARY ndrdump
#################################
#################################
# Start BINARY ntlm_auth
-[BINARY::ntlm_auth]
-INSTALLDIR = BINDIR
-OBJ_FILES = \
- ntlm_auth.o
-REQUIRED_SUBSYSTEMS = \
- CONFIG \
- LIBBASIC \
- LIBPOPT \
- POPT_SAMBA
-MANPAGE = man/ntlm_auth.1
+#[BINARY::ntlm_auth]
+#INSTALLDIR = BINDIR
+#OBJ_FILES = \
+# ntlm_auth.o
+#REQUIRED_SUBSYSTEMS = \
+# CONFIG \
+# LIBBASIC \
+# LIBPOPT \
+# POPT_SAMBA
+#MANPAGE = man/ntlm_auth.1
# End BINARY ntlm_auth
#################################
#################################
# Start BINARY getntacl
-[BINARY::getntacl]
-MANPAGE = man/getntacl.1
-INSTALLDIR = BINDIR
-OBJ_FILES = \
- getntacl.o
-REQUIRED_SUBSYSTEMS = \
- CONFIG \
- LIBBASIC \
- NDR_XATTR \
- EXT_LIB_XATTR
+#[BINARY::getntacl]
+#MANPAGE = man/getntacl.1
+#INSTALLDIR = BINDIR
+#OBJ_FILES = \
+# getntacl.o
+#REQUIRED_SUBSYSTEMS = \
+# CONFIG \
+# LIBBASIC \
+# NDR_XATTR \
+# EXT_LIB_XATTR
# End BINARY getntacl
#################################
#################################
# Start BINARY setntacl
-[BINARY::setntacl]
+#[BINARY::setntacl]
# disabled until rewritten
#INSTALLDIR = BINDIR
-OBJ_FILES = \
- setntacl.o
-REQUIRED_SUBSYSTEMS = \
- CONFIG \
- LIBBASIC \
- NDR_XATTR
+#OBJ_FILES = \
+# setntacl.o
+#REQUIRED_SUBSYSTEMS = \
+# CONFIG \
+# LIBBASIC \
+# NDR_XATTR
# End BINARY setntacl
#################################
#################################
# Start BINARY setnttoken
-[BINARY::setnttoken]
-INSTALLDIR = BINDIR
-OBJ_FILES = \
- setnttoken.o
-REQUIRED_SUBSYSTEMS = \
- CONFIG \
- LIBBASIC \
- NDR_XATTR \
- NDR_SAMR
+#[BINARY::setnttoken]
+#INSTALLDIR = BINDIR
+#OBJ_FILES = \
+# setnttoken.o
+#REQUIRED_SUBSYSTEMS = \
+# CONFIG \
+# LIBBASIC \
+# NDR_XATTR \
+# NDR_SAMR
# End BINARY setnttoken
#################################
#################################
# Start BINARY net
-[BINARY::net]
-INSTALLDIR = BINDIR
-PRIVATE_PROTO_HEADER = net_proto.h
-OBJ_FILES = \
- net.o \
- net_password.o \
- net_time.o \
- net_join.o \
- net_vampire.o \
- net_user.o
-REQUIRED_SUBSYSTEMS = \
- CONFIG \
- LIBBASIC \
- LIBNET \
- LIBPOPT \
- POPT_SAMBA \
- POPT_CREDENTIALS
+#[BINARY::net]
+#INSTALLDIR = BINDIR
+#PRIVATE_PROTO_HEADER = net_proto.h
+#OBJ_FILES = \
+# net.o \
+# net_password.o \
+# net_time.o \
+# net_join.o \
+# net_vampire.o \
+# net_user.o
+#REQUIRED_SUBSYSTEMS = \
+# CONFIG \
+# LIBBASIC \
+# LIBNET \
+# LIBPOPT \
+# POPT_SAMBA \
+# POPT_CREDENTIALS
# End BINARY net
#################################