1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00

162 Commits

Author SHA1 Message Date
Andrew Tridgell
9281b58398 r8282: make the deletion of the smbd.tmp directory recursive. This cleans up the messaging
directory
(This used to be commit 783679e0df6c059ebd26f78115445e81e304bc84)
2007-10-10 13:19:31 -05:00
Andrew Tridgell
b3e493470f r7911: task_terminate() is defined in the macosx headers, so change the name
to task_server_terminate()
(This used to be commit a7447e25ac203f0ee09ffdf72df1094eb70e7c0c)
2007-10-10 13:18:48 -05:00
Stefan Metzmacher
f877a7fdf5 r7845: remove unused files
and remove all generated files with make distclean and make realdistclean

metze
(This used to be commit f964e228c9ceeb3dc4d0afd1b6b092734e06e372)
2007-10-10 13:18:42 -05:00
Andrew Bartlett
2b4791ae73 r7525: Unify lp_load(), load_interfaces and logging setup into popt().
There is now a new --debug-stderr option to enable debug to STDERR.

popt isn't perfect, but the callbacks are used in all the main Samba
binaries, and should be used in the rest.  This avoids duplicated
code, and ensures every binary is setup correctly.

This also ensures the setup happens early enough to have -s function,
and have a correct impact on the credentials code.  (Fixing a bug that
frustrated tridge earlier today).

The only 'subtle' aspect of all this is that I'm pretty sure that the
SAMBA_COMMON popt code must be above the CREDENTIALS code, in the
popt tables.

Andrew Bartlett
(This used to be commit 50f3c2b3a22971f40e0d3a88127b5120bfc47591)
2007-10-10 13:18:06 -05:00
Andrew Tridgell
ea7942d468 r7493: add a --maximum-runtime option to smbd. If this time is exceeeded then it exits.
This will be used in the build farm
(This used to be commit 3cec5b3c8656efcb00df530071c2badca914126a)
2007-10-10 13:17:59 -05:00
Andrew Tridgell
b8c8da4a50 r7478: fixed a problem with a backgrounded smbd looping to handle continuous
tty related signals
(This used to be commit db2b507adde8a28524cb9bff3558e5c339276767)
2007-10-10 13:17:57 -05:00
Stefan Metzmacher
b26cffe747 r7392: more verbose debug output
metze
(This used to be commit 816442320d1a7defe9eeb2c0a09070a3877a2853)
2007-10-10 13:17:49 -05:00
Andrew Tridgell
c3c61bddc9 r7356: fixed the problem mkaplan reported with not being able to run without -i
(This used to be commit eebca142e5a8e4aa25951d25b628c27a8fdbd046)
2007-10-10 13:17:46 -05:00
Andrew Tridgell
bce8cda061 r7352: the internal heimdal build change. This changes quite a few things:
- if you want kerberos now, you need to unpack a lorikeet heimdal
   tree in source/heimdal/. If source/heimdal/ does not exist at
   configure time then all kerberos features are disabled. You cannot
   use an external kerberos library for now. That may change later.

 - moved lib/replace/ config stuff to lib/replace/ and create a
   lib/replace/replace.h. That allows the heimdal build to use our
   portability layer, and prevenets duplicate definitions of functions
   like strlcat()

 - if you do enable heimdal, then you will need to do 'make
   HEIMDAL_EXTERNAL' before you build Samba. That should be fixed once
   I explain the problem to jelmer (the problem is the inability to
   set a depend without also dragging in the object list of the
   dependency. We need this for building the heimdal asn1 compiler and
   et compiler.

 - disabled all of the m4 checks for external kerberos libraries. I
   left them in place in auth/kerberos/, but disabled it in
   configure.in

some of the heimdal_build/ code is still very rough, for example I
don't correctly detect the correct awk, flex, bison replacements for
heimdal_build/build_external.sh. I expect to fix that stuff up over
the next few days.
(This used to be commit d4648249b2c7fc8b5e7c0fc8d8f92ae043b5691f)
2007-10-10 13:17:45 -05:00
Stefan Metzmacher
2c499fe5aa r7303: autodetect the libkdc and our kdc support
btw: I use this for configuring heimdal

>>>
CONFIG="CFLAGS=\"-g -O -Wall -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wwrite-strings -Wdeclaration-after-statement\" \
	CC=gcc-4.0 \
	./configure -C --prefix=$HOME/prefix/heimdal-test \
	--sysconfdir=/etc \
	--enable-shared=no \
	--with-ldb=$HOME/prefix/ldb \
	--without-openldap \
	--without-openssl $@"

echo $CONFIG
eval $CONFIG
>>>

maybe you also want to use --disable-berkeley-db

metze
(This used to be commit 2aec140e00770df78ba31ef91109634ce0aa3d8a)
2007-10-10 13:17:39 -05:00
Andrew Tridgell
bf1ffa283c r7294: implemented the irpc messaging system. This is the core of the
management system I proposed on samba-technical a couple of days
ago. Essentially it is a very lightweight way for any code in Samba to
make IDL based rpc calls to anywhere else in the code, without the
client or server having to go to the trouble of setting up a full rpc
service.

It can be used with any of our existing IDL, but I expect it will
mostly be used for a new set of Samba specific management calls.

The LOCAL-IRPC torture test demonstrates how it can be used by calling
the echo_AddOne() call over this transport.
(This used to be commit 3d589a09954eb8b318f567e1150b0c27412fb942)
2007-10-10 13:17:37 -05:00
Andrew Bartlett
ff27722fea r7226: Forgot file to disable building the new kdc
Andrew Bartlett
(This used to be commit 678c3f37c7b1996f77daa176eb8a6c151ca3aa27)
2007-10-10 13:17:28 -05:00
Andrew Bartlett
51fc684227 r7221: Add the start of a KDC service (to be built on a 'libkdc' from a to be
included Heimdal) to Samba4.

Andrew Bartlett
(This used to be commit 51ba3ea60c265b837821b6c3e031dfe229c10d6a)
2007-10-10 13:17:27 -05:00
Andrew Tridgell
b7158885af r6997: added a private pointer to the task structure. This is needed by the session data
in the web server
(This used to be commit ac438f0a9cc38ebec95133250c04c4935032b24d)
2007-10-10 13:17:03 -05:00
Andrew Tridgell
d70912a26a r6981: first version of the builtin web server for Samba4
This includes an embedded server side scripting system called 'esp'
(see http://www.appwebserver.org/products/esp/esp.html) and javascript
based scripting language called 'esj' (see
http://www.appwebserver.org/products/ejs/ejs.html)

The justification for including this scripting language is that it
should make it much easier to write a high quality web interface for
Samba4. The scripting language can call into any Samba4 library code
(so for example it will be able to make ldb and loadparm calls), plus
it provides easy support for forms, cookies, sessions etc.

There is still quite a bit more work to do on the web server, but
there is enough here now for people to look at and comment. I will be
committing some sample web pages that test esp functionality shortly.
(This used to be commit 26f0ba92c0c565ac9e4cb5a079d795d4262497dd)
2007-10-10 13:17:01 -05:00
Andrew Tridgell
b5d44d4040 r6846: make smbd terminate immediately on EOF from stdin
this will be used to make sure 'make test' kills smbd when finished
(This used to be commit ddbb5495637ec0d693079bc94010ab91201a07b7)
2007-10-10 13:16:50 -05:00
Andrew Tridgell
7b18fcd847 r6725: the beginnings of a cldap server
(This used to be commit e51e0dffa8f8bff9bd1535751e805b548b6c6d7f)
2007-10-10 13:16:38 -05:00
Andrew Tridgell
7b03af8963 r6530: the server ID of a connection in the single process model should be
based on the new socket fd, not the listening socket!

this fixes locktest with -M single
(This used to be commit 3e1b2742db818629fb79d12d40279db8dd575279)
2007-10-10 13:16:23 -05:00
Richard Sharpe
89f03dc4eb r6196: Make the comparisons consistent with in the same expression.
(This used to be commit 6f7337163e2eaae2d24ccebcd31787e48f543fbf)
2007-10-10 13:11:25 -05:00
Richard Sharpe
cf97980f31 r6187: 1. Make sure that we don't try to delete . and .. in a more portable way.
2. Also, don't try to delete directories.

I am not entirely happy with this patch, and the fact that there is a
define for HAVE_SYS_STAT_H suggests that there are some systems for which
stat will not be defined, which means that the patch is not entirely
portable.
(This used to be commit fe7ddad7d44a49b2efe81cb3d0a5b2d09d1892ab)
2007-10-10 13:11:24 -05:00
Andrew Tridgell
4c7c38e930 r5411: make network interface selection a bit saner
- if we have no configured network interfaces, then don't start nbtd (when I add dynamic
  interface loading this will change to a delay until a network interface comes up)

- choose the best interface by netmask for torture tests that need a
  specific IP (such as the WINS test). Added iface_best_ip() for that.

- if specific interfaces are chosen in smb.conf, then keep that ordering, and
  default to the first one listed
(This used to be commit 4d08c114079ef6d1d10a96195046fe43631aefa2)
2007-10-10 13:10:43 -05:00
Andrew Tridgell
6aa6dce3f7 r5306: removed all the unused mutex functions from mutex.c. When (if?) we
decide to reinstate the mutex code for the threads process model, I'd
like to do it a little differently. At least this gets it out of
includes.h for now.
(This used to be commit cfee0fb02e10add22b6c436bdfa95d1a8f5f3def)
2007-10-10 13:09:40 -05:00
Andrew Tridgell
bed7c9ec32 r5304: removed lib/socket/socket.h from includes.h
(This used to be commit b902ea546d2d1327b23f40ddaeeaa8e7e3662454)
2007-10-10 13:09:39 -05:00
Andrew Tridgell
35537c1255 r5302: fixed a compilation problem on solaris caused by the recent include
changes
(This used to be commit e7e015f79b10c353848a17f31c91a0593790a560)
2007-10-10 13:09:39 -05:00
Andrew Tridgell
f9529111af r5301: fixed pthreads build
(This used to be commit a7a72de07b3197b2ebfe8fe33a4e017e384dec6f)
2007-10-10 13:09:39 -05:00
Andrew Tridgell
e82aad1ce3 r5298: - got rid of pstring.h from includes.h. This at least makes it a bit
less likely that anyone will use pstring for new code

 - got rid of winbind_client.h from includes.h. This one triggered a
   huge change, as winbind_client.h was including system/filesys.h and
   defining the old uint32 and uint16 types, as well as its own
   pstring and fstring.
(This used to be commit 9db6c79e902ec538108d6b7d3324039aabe1704f)
2007-10-10 13:09:38 -05:00
Andrew Tridgell
fedf0b0d91 r5296: - only include the tdb headers where they are needed
- removed the u32 hack in events.c as I think this was only needed as
  tdb.h defines u32. Metze, can you check that this hack is indeed no
  longer needed on your suse system?
(This used to be commit 6f79432fe656164d4770dbce114a30dda5e7bf9a)
2007-10-10 13:09:38 -05:00
Andrew Tridgell
131dc76d56 r5197: moved events code to lib/events/ (suggestion from metze)
(This used to be commit 7f54c8a339f36aa43c9340be70ab7f0067593ef2)
2007-10-10 13:09:30 -05:00
Andrew Tridgell
0798d54b4f r5195: most events don't need the time of the event, so save a gettimeofday() call
and just use timeval_current() when its actually needed
(This used to be commit 236403cc4dc2924ed6a898acae0bb44cc1688dcc)
2007-10-10 13:09:30 -05:00
Andrew Tridgell
a097414ed2 r5193: make sure we mark the event dead when we free it on a dead connection
(This used to be commit 90535bab957ddaa7bfcdf43e199581f3352bdc8a)
2007-10-10 13:09:29 -05:00
Andrew Tridgell
66170ef8b3 r5185: make all the events data structures private to events.c. This will
make it possible to add optimisations to the events code such as
keeping the next timed event in a sorted list, and using epoll for
file descriptor events.

I also removed the loop events code, as it wasn't being used anywhere,
and changed timed events to always be one-shot (as adding a new timed
event in the event handler is so easy to do if needed)
(This used to be commit d7b4b6de51342a65bf46fce772d313f92f8d73d3)
2007-10-10 13:09:29 -05:00
Stefan Metzmacher
65db148d87 r5141: fix compiler warnings
metze
(This used to be commit 12b0841b30fdb6d7ba8c3dc9991c172f7fb3d31f)
2007-10-10 13:09:26 -05:00
Andrew Tridgell
c7ded5ab0a r5108: the beginnings of a nbtd server for Samba4. Currently just displays
the packets it receives, but it at least shows how the server
structure will work.

To implement it I extended the libcli/nbt/ library to allow for an
incoming packet handler to be registered. That allows the nbt client
library to be used for low level processing of the nbtd server packets.

Other changes:

 - made the socket library always set SO_REUSEADDR when binding to an
   interface, to ensure that restarts of a server don't have to wait
   for a couple of minutes.

 - made the nbt port configurable. Defaults to 137, but other ports
   will be useful for testing.
(This used to be commit 2fedca6adfd4df9e85cc86896dfa79630777a917)
2007-10-10 13:09:23 -05:00
Andrew Tridgell
1447b9a8c1 r5104: - added support for task based servers. These are servers that within
themselves are run as a single process, but run as a child of the
  main process when smbd is run in the standard model, and run as part
  of the main process when in the single mode.

- rewrote the winbind template code to use the new task services. Also
  fixed the packet queueing

- got rid of event_context_merge() as it is no longer needed
(This used to be commit 339964a596689278d2138cff05d7d444798a3504)
2007-10-10 13:09:23 -05:00
Andrew Tridgell
597142ddd3 r5103: forgot to add two new files
these are the stream server helper functions
(This used to be commit 3c5a7650a9730d74503b759bccafbb0fa3bbce78)
2007-10-10 13:09:22 -05:00
Andrew Tridgell
55d4d36993 r5102: This is a major simplification of the logic for controlling top level
servers in smbd. The old code still contained a fairly bit of legacy
from the time when smbd was only handling SMB connection. The new code
gets rid of all of the smb_server specific code in smbd/, and creates
a much simpler infrastructures for new server code.

Major changes include:

 - simplified the process model code a lot.

 - got rid of the top level server and service structures
   completely. The top level context is now the event_context. This
   got rid of service.h and server.h completely (they were the most
   confusing parts of the old code)

 - added service_stream.[ch] for the helper functions that are
   specific to stream type services (services that handle streams, and
   use a logically separate process per connection)

 - got rid of the builtin idle_handler code in the service logic, as
   none of the servers were using it, and it can easily be handled by
   a server in future by adding its own timed_event to the event
   context.

 - fixed some major memory leaks in the rpc server code.

 - added registration of servers, rather than hard coding our list of
   possible servers. This allows for servers as modules in the future.

 - temporarily disabled the winbind code until I add the helper
   functions for that type of server

 - added error checking on service startup. If a configured server
   fails to startup then smbd doesn't startup.

 - cleaned up the command line handling in smbd, removing unused options
(This used to be commit cf6a46c3cbde7b1eb1b86bd3882b953a2de3a42e)
2007-10-10 13:09:22 -05:00
Andrew Tridgell
759da3b915 r5037: got rid of all of the TALLOC_DEPRECATED stuff. My apologies for the
large commit. I thought this was worthwhile to get done for
consistency.
(This used to be commit ec32b22ed5ec224f6324f5e069d15e92e38e15c0)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
6c14b0133d r4944: every event_add_*() caller was having to call talloc_steal() to take
control of the event, so instead build that into the function. If you
pass NULL as mem_ctx then it leaves it as a child of the events
structure.
(This used to be commit 7f981b9ed96f39027cbfd500f41e0c2be64cbb50)
2007-10-10 13:09:08 -05:00
Andrew Tridgell
fd62df6418 r4943: Smplified the events handling code a lot. The first source of
complexity was that events didn't automatically cleanup
themselves. This was because the events code was written before we had
talloc destructors, so you needed to call event_remove_XX() to clean
the event out of the event lists from every piece of code that used
events. I have now added automatic event destructors, which in turn
allowed me to simplify a lot of the calling code.

The 2nd source of complexity was caused by the ref_count, which was
needed to cope with event handlers destroying events while handling
them, which meant the linked lists became invalid, so the ref_count ws
used to mark events for later destruction.

The new system is much simpler. I now have a ev->destruction_count,
which is incremented in all event destructors. The event dispatch code
checks for changes to this and handles it.
(This used to be commit a3c7417cfeab429ffb22d5546b205818f531a7b4)
2007-10-10 13:09:08 -05:00
Andrew Tridgell
fa55d52ede r4939: make a few more private pointers type safe (this might help abartlet
track down a bug he just told me about)
(This used to be commit fb326cbb32ef7eebb7073777d834d6bea25069a7)
2007-10-10 13:09:07 -05:00
Andrew Tridgell
fb8004a288 r4819: its just not my day today ....
(This used to be commit e54a97f8a67a04427b36cb4afac204c4e5f4502a)
2007-10-10 13:08:59 -05:00
Andrew Tridgell
8451b2658c r4817: ccache was being made ineffective on all the build farm machines
because the version number was being auto-updated and included in all
C files. With this change it is only included where needed.
(This used to be commit 520cff73c6dc62ba1050cf7ca5145d50b5f2bb4e)
2007-10-10 13:08:59 -05:00
Stefan Metzmacher
76b38d11fd r4729: add dummy "winbind" service
- this creates a new task and then starts a process_model "single"
  with service "winbind_task"

- that means with -M single everything is in one process

  with - M standard winbind is a seperate process but didn't fork for each connection
  with -M thread winbind is a seperate thread but didn't thread for each connection

- the dummy server listen s on /tmp/.winbind/echo
  and for better testing with telnet also on 127.0.255.1 port 55555

metze
(This used to be commit 5190f60dedc4076d94fbf77e02eb3b5312d953ec)
2007-10-10 13:08:49 -05:00
Stefan Metzmacher
9327ec51d1 r4728: split up server_services into:
- stream_socket services
  the smb, ldap and rpc service which sets up a srtam socket end then
  waits for connections
and
- task services
  which this you can create a seperate task that do something
  (this is also going through the process_model subsystem
  so with -M standard a new process for this created
  with -M thread a new thread ...

I'll add datagram services later when we whave support for datagram sockets in lib/socket/

see the next commit as an example for service_task's

metze
(This used to be commit d5fa02746c6569b09b6e05785642da2fad3ba3e0)
2007-10-10 13:08:49 -05:00
Stefan Metzmacher
9261f6e928 r4685: only remove events when we have them
metze
(This used to be commit d2276a9149b14aed459e9492384c0a7563dd154c)
2007-10-10 13:08:43 -05:00
Andrew Bartlett
fdfa2adcb1 r4667: Don't follow a NULL pointer for an idle event handler.
Fix up some header comments.

Andrew Bartlett
(This used to be commit 62005a3924e2af52c7173098b0b38eca14e03609)
2007-10-10 13:08:40 -05:00
Volker Lendecke
3f89308b32 r4605: Fix a confusing comment :-)
(This used to be commit fbd2a90bcdb7426c9a15bd8dc09da9008a0bc1bf)
2007-10-10 13:08:32 -05:00
Andrew Tridgell
e5ce904ddb r4054: got rid of Realloc(), replacing it with the type safe macro realloc_p()
(This used to be commit b0f6e21481745d1b2ced28d9ed6f09f6ffd99562)
2007-10-10 13:06:19 -05:00
Andrew Tridgell
fdc9f417d8 r4011: get rid of rpc_secdes.h and replace it with a single sane set of
definitions for security access masks, in security.idl

The previous definitions were inconsistently named, and contained many
duplicate and misleading entries. I kept finding myself tripping up
while using them.
(This used to be commit 01c0fa722f80ceeb3f81f01987de95f365a2ed3d)
2007-10-10 13:06:13 -05:00
Jelmer Vernooij
5b397619cc r3753: Have some modules default to "NOT" and enable them again when
their dependencies are found
(This used to be commit 8e7e98ae5fca8be8c6a0b4c543b6828c46172171)
2007-10-10 13:05:51 -05:00