1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-15 05:57:49 +03:00

35178 Commits

Author SHA1 Message Date
David Disseldorp
0b188e7784 s3-printing: Initiate pcap reload from parent smbd
Since commit 7022554, smbds share a printcap cache (printer_list.tdb),
therefore ordering of events between smbd processes is important when
updating printcap cache information. Consider the following two process
example:
1) smbd1 receives HUP or printcap cache time expiry
2) smbd1 checks whether pcap needs refresh, it does
3) smbd1 marks pcap as refreshed
4) smbd1 forks child1 to obtain cups printer info
5) smbd2 receives HUP or printcap cache time expiry
6) smbd2 checks whether pcap needs refresh, it does not (due to step 3)
7) smbd2 reloads printer shares prior to child1 completion (stale pcap)
8) child1 completion, pcap cache (printer_list.tdb) is updated by smbd1
9) smbd1 reloads printer shares based on new pcap information

In this case both smbd1 and smbd2 are reliant on the pcap update
performed on child1 completion.
The prior commit "reload shares after pcap cache fill" ensures that
smbd1 only reloads printer shares following pcap update, however smbd2
continues to present shares based on stale pcap data.

This commit addresses the above problem by driving pcap cache and
printer share updates from the parent smbd process.
1) smbd0 (parent) receives a HUP or printcap cache time expiry
2) smbd0 forks child0 to obtain cups printer info
3) child0 completion, pcap cache (printer_list.tdb) is updated by smbd0
4) smbd0 reloads printer shares
5) smbd0 notifies child smbds of pcap update via message_send_all()
6) child smbds read fresh pcap data and reload printer shares

This architecture has the additional advantage that only a single
process (the parent smbd) requests printer information from the printcap
backend.

Use time_mono in housekeeping functions As suggested by Björn Jacke.
2011-01-07 15:37:39 -08:00
David Disseldorp
04248c2cfa s3-printing: reload shares after pcap cache fill
Since commit eada8f8a, updates to the cups pcap cache are performed
asynchronously - cups_cache_reload() forks a child process to request
cups printer information and notify the parent smbd on completion.

Currently printer shares are reloaded immediately following the call to
cups_cache_reload(), this occurs prior to smbd receiving new cups pcap
information from the child process. Such behaviour can result in stale
print shares as outlined in bug 7836.

This fix ensures print shares are only reloaded after new pcap data has
been received.

Pair-Programmed-With: Lars Müller <lars@samba.org>
2011-01-07 15:37:39 -08:00
Björn Baumbach
617e342a14 s3-nmbd: Fix bug #7875
nmbd --port didn't work

Signed-off-by: Stefan Metzmacher <metze@samba.org>

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Fri Jan  7 17:44:08 CET 2011 on sn-devel-104
2011-01-07 17:44:08 +01:00
Günther Deschner
286c3d6d8e s3-waf: add NMBDSOCKETDIR variable.
Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Fri Jan  7 16:33:55 CET 2011 on sn-devel-104
2011-01-07 16:33:55 +01:00
Günther Deschner
5c9eca6fc4 s3-build: fix classic build after libcli netlogon changes.
Guenther
2011-01-07 15:02:24 +01:00
Günther Deschner
3294ccbb6d netlogon: move netlogon helpers to ../libcli/netlogon.
Guenther
2011-01-07 15:02:24 +01:00
Günther Deschner
75c8e42938 s3-waf: rename LIBCLI_NETLOGON subsystem to LIBRPCCLI_NETLOGON.
Guenther
2011-01-07 15:02:24 +01:00
Günther Deschner
358c8ec292 s3-waf: rearrange waf recurses in main wscript_build.
Guenther
2011-01-07 15:02:24 +01:00
Günther Deschner
ccf15ebcc3 s3-waf: cleanup wscript_build a little.
Guenther
2011-01-07 15:02:24 +01:00
Günther Deschner
0a7d6dc8a8 s3-waf: recurse into ../lib/smbconf.
Guenther
2011-01-07 15:02:23 +01:00
Volker Lendecke
3e0915f271 s3: Make nmbd socket dir configurable
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Fri Jan  7 14:14:19 CET 2011 on sn-devel-104
2011-01-07 14:14:19 +01:00
Volker Lendecke
2672101cc4 s3: Remove some unused code 2011-01-07 13:28:07 +01:00
Volker Lendecke
dab6a35f4c s3: Limit the number of unexpected clients to 200
DoS protection like the max winbind clients. Settable by
nmbd:unexpected_clients
2011-01-07 13:28:07 +01:00
Volker Lendecke
0cff82e054 s3: Limit the number of unexpected packets per client to 10
Non-reading clients could maliciously make nmbd allocate memory
2011-01-07 13:28:07 +01:00
Volker Lendecke
5f4ff3bfbd s3: Use the new nbt_getdc in winbindd_cm 2011-01-07 13:28:07 +01:00
Volker Lendecke
b4041b59b2 s3: Use the new nbt_getdc in dsgetdcname() 2011-01-07 13:28:06 +01:00
Volker Lendecke
f9520008df s3: Add nbt_getdc
This is a getdc version that uses /tmp/.nmbd/unexpected
2011-01-07 13:28:06 +01:00
Volker Lendecke
1137cf8e6f s3: Fix a valgrind error 2011-01-07 13:28:06 +01:00
Volker Lendecke
126b1806b8 s3: Factor out parse_getdc_response 2011-01-07 13:28:06 +01:00
Volker Lendecke
0376d03e6d s3: Lift my_mailslot from prep_getdc_request 2011-01-07 13:28:05 +01:00
Volker Lendecke
6ba4bddb61 s3: Make name_query use /tmp/.nmbd/unexpected 2011-01-07 13:28:05 +01:00
Volker Lendecke
a32f021d66 s3: Make node_status_query use /tmp/.nmbd/unexpected 2011-01-07 13:28:04 +01:00
Volker Lendecke
77a9b0e265 s3: Add nb_trans_send/recv
This does an async port 137 transaction: It connects to /tmp/.nmbd/unexpected,
sends out the query and then waits for a reply on both the socket as well as
data from /tmp/.nmbd/unexpected. Every packet is passed through a validator. If
that returns true, the packet received is finally accepted.
2011-01-07 13:28:04 +01:00
Volker Lendecke
cbd5e4e16b s3: Add sock_packet_read
Read packets from both a socket and from /tmp/.nmbd/unexpected simultaneously
2011-01-07 13:28:04 +01:00
Volker Lendecke
d801d4da2d s3: Add packet_trn_id() 2011-01-07 13:28:04 +01:00
Volker Lendecke
5297f3fcff s3: Make nmbd listen on the unexpected socket 2011-01-07 13:28:04 +01:00
Volker Lendecke
b2c62d639d s3: Basic infrastructure for /tmp/.nmbd/unexpected
This provides the framework to replace the unexpected.tdb file. Nmbd will
listen on /tmp/.nmbd/unexpected. A client interested in unexpected packets
connects there. It sends a nb_packet_query plus a potential mailslot name for
dgram packets. It waits for a single ack byte to avoid races. After that has
happened, nmbd will pass down all matching packets through that socket.

nb_packet_server_create and nb_packet_dispatch are the nmbd routines,
nb_packet_reader_send/recv and nb_packet_read_send/recv are the client ones.
2011-01-07 13:28:03 +01:00
Günther Deschner
2187c49013 s3-waf: fix winbind_krb5_locator.so realname.
Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Fri Jan  7 11:13:29 CET 2011 on sn-devel-104
2011-01-07 11:13:29 +01:00
Günther Deschner
f405384ad8 s3-waf: make the --with-Xdir options work more like in the classic build.
Also remove duplicates and sort the tables.

Still not sure if I understand the reason of processing the flags table after
the diroptions table, as every option you give it via configure was overwritten
immediately.

Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Fri Jan  7 00:57:10 CET 2011 on sn-devel-104
2011-01-07 00:57:10 +01:00
Günther Deschner
fa1fd85eea s3-net: Fix bug #7690: retry DNS updates when connection to one nameserver has failed.
Initial patch from Patrik Martinsson <patrik.martinsson@smhi.se>.

Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Thu Jan  6 17:29:11 CET 2011 on sn-devel-104
2011-01-06 17:29:11 +01:00
Günther Deschner
7ee75c9548 lib/addns: move DNS client library to the main directory.
Guenther
2011-01-06 16:42:56 +01:00
Günther Deschner
2958a43fad s3-waf: no need to compile librpc/gen_ndr/cli_dfs.c anymore.
Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Thu Jan  6 15:20:14 CET 2011 on sn-devel-104
2011-01-06 15:20:14 +01:00
Günther Deschner
577b4e527c s3-build: no need to compile librpc/gen_ndr/cli_dfs.c anymore.
Guenther
2011-01-06 14:35:18 +01:00
Günther Deschner
7888108e89 s3-rpcclient: use dcerpc_dfs_X functions.
Guenther
2011-01-06 14:35:18 +01:00
Volker Lendecke
4de4703bb9 s3: Fix some nonempty blank lines
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Wed Jan  5 16:03:24 CET 2011 on sn-devel-104
2011-01-05 16:03:24 +01:00
Stefan Metzmacher
899adcaec9 s3:build: don't use cli_dssetup.c any more
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Tue Jan  4 22:21:48 CET 2011 on sn-devel-104
2011-01-04 22:21:48 +01:00
Stefan Metzmacher
4c37257f16 s3:net_utils: use dcerpc_dssetup_DsRoleGetPrimaryDomainInformation()
metze
2011-01-04 21:29:03 +01:00
Stefan Metzmacher
f016e4d4bd s3:winbindd: use dcerpc_dssetup_DsRoleGetPrimaryDomainInformation()
metze
2011-01-04 21:29:01 +01:00
Stefan Metzmacher
c6aedc9750 s3:rpcclient: use dcerpc_binding_handle based client stubs in cmd_dssetup.c
metze
2011-01-04 21:28:59 +01:00
Stefan Metzmacher
62aa019a1b s3:build: don't use cli_epmapper.c anymore
metze
2011-01-04 21:28:58 +01:00
Stefan Metzmacher
6dd5ccd041 s3:rpcclient: improve "epmmap" output
metze
2011-01-04 21:28:56 +01:00
Stefan Metzmacher
697d4ea8ff s3:rpcclient: use dcerpc_binding_handle bases client stubs in cmd_epmapper.c
metze
2011-01-04 21:28:54 +01:00
Stefan Metzmacher
fba2fdf265 s3:rpc_client: use dcerpc_epm_Map() and don't ignore 'result' anymore.
metze
2011-01-04 21:28:49 +01:00
Andreas Schneider
8925b03b59 s3-rpcecho: Only register rpcecho in the developer build.
Autobuild-User: Andreas Schneider <asn@samba.org>
Autobuild-Date: Tue Jan  4 18:56:38 CET 2011 on sn-devel-104
2011-01-04 18:56:38 +01:00
Stefan Metzmacher
e1e8693525 s3:build: don't use cli_ntsvcs.c any more.
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Tue Jan  4 17:23:17 CET 2011 on sn-devel-104
2011-01-04 17:23:17 +01:00
Stefan Metzmacher
d99e9c389b s3:rpcclient: use dcerpc_binding_handle client stubs in cmd_ntsvcs.c
metze
2011-01-04 16:37:19 +01:00
Stefan Metzmacher
fbcbeabd65 s3:build: don't use cli_wbint.c any more
metze
2011-01-04 16:37:19 +01:00
Günther Deschner
4ebf2f9745 s3-waf: convert SAMBA_VERSION into a subsystem.
Guenther

Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Tue Jan  4 15:10:52 CET 2011 on sn-devel-104
2011-01-04 15:10:52 +01:00
Günther Deschner
589d1bf57e s3-waf: convert PASSCHANGE into a subsystem.
Guenther
2011-01-04 13:05:51 +01:00
Günther Deschner
34596493ba s3-waf: add UTIL_TDB subsystem.
Guenther
2011-01-04 12:56:29 +01:00