Age | Commit message (Collapse) | Author | Files | Lines |
|
In winbind, we do multiple events in one select round. This needs fixing, but
as long as we're still using it, for efficiency reasons we need to do that.
What can happen is the following: We have outgoing data pending for a client,
thus
state->fd_event.flags == EVENT_FD_WRITE
Now a new client comes in, we go through the list of clients to find an idle
one. The detection for idle clients in remove_idle_client does not take the
pending data into account. We close the socket that has pending outgoing data,
the accept(2) one syscall later gives us the same socket.
In new_connection(), we do a setup_async_read, setting up a read fde. The
select from before however had found the socket (that we had already closed!!)
to be writable. In rw_callback we only want to see a readable flag, and we
panic in the SMB_ASSERT(flags == EVENT_FD_READ).
Found using
bin/smbtorture //127.0.0.1/tmp -U% -N 500 -o 2 local-wbclient
Volker
|
|
client might have already closed the socket
Signed-off-by: Bo Yang <boyang@samba.org>
|
|
|
|
|
|
|
|
metze
|
|
metze
|
|
|
|
|
|
Jeremy.
|
|
* Adds wbcGetSidAliases that calls the lookup_useraliases function.
* Updates wbinfo and winbind_util.c to call the new function.
* Also added winbind_get_groups helper function.
|
|
* Adds the plumbing required to lookup users by sid into winbind, wbinfo
and smbd helper lib (winbind_util.c).
* Removes some double declarations of winbind_util.c functions.
* Bumps the winbind protocol version to 21 and the minor version of
wbclient to 3.
|
|
metze
|
|
triggered now
metze
|
|
And always setup the fd events.
metze
|
|
version.h changes rather frequently. Since it is included via includes.h,
this means each C file will be a cache miss. This applies to the following
situations:
* When building a new package with a new Samba version
* building in a git branch after calling mkversion.sh
after a new commit (i.e. virtually always)
This patch improves the situation in the following way:
* remove inlude "version.h" from includes.h
* Use samba_version_string() instead of SAMBA_VERSION_STRING
in files that use no other macro from version.h instead of
SAMBA_VERSION_STRING.
* explicitly include "version.h" in those files that use more
macros from "version.h" than just SAMBA_VERSION_STRING.
Michael
|
|
Jeremy.
|
|
metze
|
|
It's really confusing to have two versions of 'fd_event'
metze
|
|
Signed-off-by: Stefan Metzmacher <metze@samba.org>
|
|
|
|
|
|
|
|
|
|
The idmap_tdb backend already provides an interface to remove existing id
mappings. This commit plumbs that ability up through, winbindd, libwbclient,
and wbinfo.
Added new winbindd command:
WINBINDD_REMOVE_MAPPING
Added new libwbclient interfaces:
wbcRemoveUidMapping() and wbcRemoveGidMapping()
Added new wbinfo options:
--remove-uid-mapping
--remove-gid-mapping
Increased libwbclient version to 0.2
Increased winbind interface version to 20
|
|
|
|
On some versions of Solaris, we observed a strange effect of close(2)
on a socket: After the server (here winbindd) called close, the client fd
was not marked as readable for select. And a write call to the fd did
not produce an error EPIPE but just returned as if successful.
So while winbindd had called remove_client(), the corresponding smbd
still thought that it was connected, but failed to retrieve answers
for its queries.
This patch works around the problem by forcing the client fd to
the readable state: Just write one byte into the socket before
closing.
Michael
|
|
|
|
request.extra_data is not freed if there is no extra_data in response or
when there is some error happens in processing. This patch will free the
buffer right after processing a request before sending back a response.
(This used to be commit be6f12273f171a3eb1967d2299064e57d737f6a4)
|
|
(This used to be commit f91a3e0f7b7737c1d0667cd961ea950e2b93e592)
|
|
(This used to be commit 30a180f2fce8cf6a3e5548f6bba453272ba70b33)
|
|
(This used to be commit 1bd98521dc3f16ad77ccccd3979288c58e03ebe8)
|
|
(This used to be commit 865ea6fcbc089a03e453709fa54ff2a39c0c168e)
|
|
(This used to be commit 9e49d390f79c6afc8b0efd9664e60602aebaa4f2)
|
|
In reloading the smb.conf, if a "log file" is specified in smb.conf,
winbind children will overwrite the logfile name to be the same as the
parent.
Jeremy.
(This used to be commit 62d319cc1a2ef891866b2ddbd22f3ed0944356af)
|
|
smbcontrol winbindd debug level would only set the debug level of the
parent winbindd process and not the child processes. This patch adds
the functionality of broadcasting the debug message to all winbindd
children. Now the debug level message is propagated to all the winbindd
processes that includes parent and children.
(This used to be commit cfbcfc3ffe74f28ec874a6bf1ab93f55f405b6e6)
|
|
Leave the message inside winbind_messaging_context() for now.
There might be callers, where this debug message could prove useful...
Michael
(This used to be commit e9177ec56a8fe596d6fcfc4a95df87e39f757818)
|
|
Michael
(This used to be commit e710a9b73ea2fd176de7093125bc5f3f3f3a9404)
|
|
Leave appropriate handling to the callers.
Michael
(This used to be commit 3e0c24323af5f10fa68ae8aad552b7346536c908)
|
|
way - deleting the socket!
Jeremy.
(This used to be commit 3ab5a3883e33eba159152aa02544d71f047c7e45)
|
|
in particular closing and reopening logs on SIGHUP.
Conflicts:
source/winbindd/winbindd.c
(This used to be commit 0f7b11accec7df1c0e9a9dc0828a5e0c5ddec4cb)
|
|
We now open messages.tdb even before we do the become_daemon. become_daemon()
involves a fork and an immediate exit of the parent, thus the
parent_is_longlived argument must be set to false in this case. The parent is
not really long lived :-)
(This used to be commit 4f4781c6d17fe2db34dd5945fec52a7685448aec)
|
|
metze
(This used to be commit 2e1b9130635235efdbf49d0b92a43b342114246c)
|
|
metze
(This used to be commit 64450cc1e441355aa8925b7183e90872eeab20b1)
|
|
originally, the cache was cleared before calling validate, but
this way, we skipt the validation of the database when not in
offline logon mode.
This is put into a new wrapper function winbindd_cache_validate_and_initialize()
which is now called in winbindd.c instead calling validate and
initialize functions separately.
Michael
(This used to be commit 641b5e3fecfce9581536de8daf6d7e6ecbefaf34)
|
|
(This used to be commit 38683a73013865695e1b04f5f6a974bd0c5c1cac)
|
|
Guenther
(This used to be commit 54ad97bd8364c393de2c9471a4c14ca5b880b318)
|
|
Michael
(This used to be commit 62d6d4fff2edcce04e793d2a2f877cb3f4fedbdb)
|
|
Michael
(This used to be commit dba24ceae78ffc49200b647838b6bf3657275add)
|
|
If we try to flush the caches and due to a corrupted tdb we and have no tdb
context close the tdb and validate it. Initialize the cache afterwards again.
(This used to be commit d0c0f91fb9f3438a18c6f47ed894f525beb75cbf)
|