| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Simplify calling convention of timeout_processing. lp_deadtime is only
referenced in conn_idle_all().
Move sending keepalives out of the main processing loop into idle event.
On the way, make lp_keepalive() a proper parameter.
Move sending auth_server keepalives out of the main loop into an idle event.
Move deadtime processing into an idle event. While there, simplify
conn_idle_all() a bit.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move process_blocking_lock_queue to a timed event.
The idea is that we have blocking.c:brl_timeout as a timed
event that is present whenever we do have a blocking lock
pending. It fires brl_timeout_fn() which calls
process_blocking_lock_queue().
Whenever we make changes to blocking_lock_queue, we trigger
a recalc_brl_timeout() which sets a new brl_timout event if
necessary. This makes the call to
blocking_locks_timeout_ms() in setup_select_timeout()
unnecessary, this is implicitly done in
event_add_to_select_args() from the timed events.
Volker
|
|
|
|
|
|
|
| |
Replace smb_register_idle_event() with event_add_timed(). This fixes winbind
which did not run the idle events to drop ldap connections.
Volker
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds the two functions talloc_stackframe() and talloc_tos().
* When a new talloc stackframe is allocated with talloc_stackframe(), then
* the TALLOC_CTX returned with talloc_tos() is reset to that new
* frame. Whenever that stack frame is TALLOC_FREE()'ed, then the reverse
* happens: The previous talloc_tos() is restored.
*
* This API is designed to be robust in the sense that if someone forgets to
* TALLOC_FREE() a stackframe, then the next outer one correctly cleans up and
* resets the talloc_tos().
The original motivation for this patch was to get rid of the
sid_string_static & friends buffers. Explicitly passing talloc context
everywhere clutters code too much for my taste, so an implicit
talloc_tos() is introduced here. Many of these static buffers are
replaced by a single static pointer.
The intended use would thus be that low-level functions can rather
freely push stuff to talloc_tos, the upper layers clean up by freeing
the stackframe. The more of these stackframes are used and correctly
freed the more exact the memory cleanup happens.
This patch removes the main_loop_talloc_ctx, tmp_talloc_ctx and
lp_talloc_ctx (did I forget any?)
So, never do a
tmp_ctx = talloc_init("foo");
anymore, instead, use
tmp_ctx = talloc_stackframe()
:-)
Volker
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
if (smb_messages[type].fn == NULL) { into the function top-level. Makes
this function a bit easier to understand IMO.
Volker
|
|
|
|
|
| |
There's no point in duplicating functionality that exists in
sys_getpid() that also only used in a debug statement
|
| |
|
| |
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
Remove get_current_mid()
|
|
|
|
|
|
|
|
| |
Reduce access to the global inbuf a tiny bit. Add a struct smb_request
that contains some of the fields from the SMB header, removing the need
to access inbuf directly. This right now is used only in the open file
code & friends, and creating that header is only done when needed. This
needs more work, but it is a start.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
make test
to break. The Solaris CC put the static char InBuffer[TOTAL_BUFFER_SIZE] on an
odd address, the malloc'ed one is always aligned. The problem showed up in
pull_ucs2, ucs2_align uses the address of InBuffer as an indication whether to
bump up the src of the string by one. Unfortunately in the trans calls the
data portion is malloced and thus has different alignment guarantees than a
static variable. This one is bigger....
Volker
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove the allocated inbuf/output. In async I/O we copy the buffers
explicitly now, so NewInBuffer is called exactly once. This does not
reduce memory footprint, but removes one of the larger chunks that
clobber the rest of the massif output
In getgroups_unix_user on Linux 2.6 we allocated 64k groups x 4 bytes
per group x 2 (once in the routine itself and once in libc) = 512k just
to throw it away directly again. This reduces it do a more typical limit
of 32 groups per user. We certainly cope with overflow fine if 32 is not
enough. Not 100% sure about this one, a DEVELOPER only thing?
|
|
|
|
|
|
|
|
|
|
|
| |
doing this because for the clustering the marshalling is needed in more
than one place, so I wanted a decent routine to marshall a message_rec
struct which was not there before.
Tridge, this seems about the same speed as it used to be before, the
librpc/ndr overhead in my tests was under the noise.
Volker
|
|
|
|
| |
tomorrow.
|
| |
|
|
|
|
|
| |
If returning a mapped UNIX error from sendfile, don't call chain_reply.
Jeremy.
|
|
|
|
|
|
| |
Should fix a bug with WinPE. Probably a candidate
for the Vista patchset.
Jeremy.
|
|
|
|
|
| |
paths.
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
| |
It does not matter if I screw up 3.0.25 or 3.0.26 with this, so do it rather
sooner than later.
Add the notify support that already exists in 3_0 to 3_0_25. If you want to
see this patch dissected into digestable parts, look at 3_0, revisions at
about 20800 and following.
Volker
|
|
|
|
|
| |
filesystem.
Jeremy.
|
|
|
|
|
|
| |
Start removing unneeded "BOOL ok" from this reply.c
(this logic is old, old, old..... :-).
Jeremy.
|
|
|
|
|
| |
copy now returns NTSTATUS, part of close does the same.
Jeremy.
|
| |
|
|
|
|
| |
well)
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
packet processing code. Only do these when needed (ie. in the
idle timeout code). We drop an unneccessary global here too.
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
| |
memset's as possible.
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
|
|
|
| |
into 3.0. Also merge the new POSIX lock code - this
is not enabled unless -DDEVELOPER is defined.
This doesn't yet map onto underlying system POSIX
locks. Updates vfs to allow lock queries.
Jeremy.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
is produced when a process exits abnormally.
First, we coalesce the core dumping code so that we greatly improve our
odds of being able to produce a core file, even in the case of a memory
fault. I've removed duplicates of dump_core() and split it in two to
reduce the amount of work needed to actually do the dump.
Second, we refactor the exit_server code path to always log an explanation
and a stack trace. My goal is to always produce enough log information
for us to be able to explain any server exit, though there is a risk
that this could produce too much log information on a flaky network.
Finally, smbcontrol has gained a smbd fault injection operation to test
the changes above. This is only enabled for developer builds.
|
| |
|
|
|
|
|
|
| |
sensitive to null derefs. get_timed_events_timeout()
can potentially return NULL. Cope with this.
Jeremy.
|
|
|
|
| |
macro which sets the freed pointer to NULL.
|
|
|
|
| |
Jeremy.
|
|
|
|
| |
set to avoid unnecessary polling.
|
|
|
|
| |
Sync with trunk as off r13315
|
|
|
|
|
|
|
| |
* \PIPE\unixinfo
* winbindd's {group,alias}membership new functions
* winbindd's lookupsids() functionality
* swat (trunk changes to be reverted as per discussion with Deryck)
|
|
|
|
| |
Jeremy.
|
|
|
|
|
| |
flipping and oplocks.
Jeremy.
|
|
|
|
|
|
|
|
|
| |
used to
close idle pdb_ldap connections, and from my point of view this can wait until
normal timeout handling, this does not need to be done per client request.
Volker
|
|
|
|
|
|
|
|
|
| |
message onto the queue
when we're in a chained message set - we're actually processing a different
buffer then. Added current_inbuf as a static inside smbd/process.c to ensure the
correct message gets pushed and processed.
Jeremy.
|
|
|
|
| |
Jeremy.
|
|
|
|
|
| |
by reloading printers all at the same time.
sss
|