summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r5195: most events don't need the time of the event, so save a ↵Andrew Tridgell16-39/+32
gettimeofday() call and just use timeval_current() when its actually needed (This used to be commit 236403cc4dc2924ed6a898acae0bb44cc1688dcc)
2007-10-10r5194: added support for using epoll instead of select() on systems that haveAndrew Tridgell2-48/+223
it. epoll is much more scalable than select(), but only exists on some systems (such as Linux with the 2.6.x kernel). The code detects any epoll system call failures at runtime and falls back to select() if there is a problem, so it should be safe to compile this on a 2.6 kernel and run it on a 2.4.x kernel. The speedup is quite large. It gains 20% in packet rate in the BENCH-NBT test, on top of another 20% gain from the better timer handling I added earlier. The really big gain will be when we are dealing with large numbers of file descriptors. With epoll we can handle hundreds of file descriptors all O(1), whereas with select it is O(n). (This used to be commit 26aa1aa69377e43da2942a42d137b95801e9fa1a)
2007-10-10r5193: make sure we mark the event dead when we free it on a dead connectionAndrew Tridgell2-1/+2
(This used to be commit 90535bab957ddaa7bfcdf43e199581f3352bdc8a)
2007-10-10r5190: Grr - typo.Tim Potter1-1/+1
(This used to be commit 5f40ff0f554323ed0a806be7a4d0f1fac97e3ffb)
2007-10-10r5189: fixed a double free bug in the ltdb indexing codeAndrew Tridgell1-7/+0
(This used to be commit 7be0bc93bd6757e52fd10bd3d3b3d1a8f5221452)
2007-10-10r5188: Add config.mk file for swig.Tim Potter1-0/+1
(This used to be commit c40fb6625d5cc6b3ddadfdc3c63d7856a45ec134)
2007-10-10r5187: ordered the timed events in the events code, which makes processingAndrew Tridgell2-95/+75
events much more efficient (no linked lists need to be traversed, so large numbers of timers are no problem) (This used to be commit b45b9436d78b0ad288b27a1023579bb566ca6202)
2007-10-10r5185: make all the events data structures private to events.c. This willAndrew Tridgell33-349/+297
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-10r5173: Refer to a proper zone file name in resulting messageAlexander Bokovoy1-1/+1
(This used to be commit 0c96cc8babf222731375a59e86c64468c6dbda33)
2007-10-10r5172: actually bind to the right address for the wildcard interface ....Andrew Tridgell1-2/+4
(This used to be commit 7720d247fed3343a5bf39b2eedf34604f9203a37)
2007-10-10r5171: added support for "bind interfaces only" in nbtd. The solution was toAndrew Tridgell5-89/+76
bind twice on each interface, once using the broadcast address and once using the specific IP. We then only listen on the wildcard address if we don't have "bind interface only" set. This also happens to simplify the code that finds the right interface for an incoming request. (This used to be commit b3edf17281c5d82abb40dab817bf2de43f9f6c3f)
2007-10-10r5170: fixed a bug handling events that have already timed out - they wereAndrew Tridgell1-8/+4
being treated as events that never time out, so they happened on the next other event (This used to be commit 2eefe4f8dea4a9060f229417777435133c684a0c)
2007-10-10r5169: As provisioning script generates everything under $newdb/ directory, ↵Alexander Bokovoy1-2/+2
put generated domain zone there as well (This used to be commit f4fc885c14da517051cbcf7296b804da0f5f70b4)
2007-10-10r5156: started on test driven development of the nbt server. This adds aAndrew Tridgell3-1/+179
NBT-REGISTER test that tests that a server correctly defends its name against broadcast name registrations. Jeremy, you might like to look at this. Samba3 nmbd fails to respond. (This used to be commit bb1298a2eb192ec2cd547a299334cc82a63a5acc)
2007-10-10r5155: define ipv4address as a based IDL type, mapped to a "const char *" inAndrew Tridgell12-73/+71
the header, and defined on the wire as a 4 byte network byte order IP. This means the calling code doesn't have to worry about network byte order conversions. (This used to be commit 72048e37179dd5b9ada0c5280d2f0d8c23d1a17d)
2007-10-10r5148: use ipv4_addr also in epmapper idlStefan Metzmacher3-7/+7
metze (This used to be commit cbc1f172822363e1fc4495d27248464403748cae)
2007-10-10r5147: remove unused varStefan Metzmacher1-3/+0
metze (This used to be commit 79e79552e62bbef61eb4f3dff104c6415c3e2ef8)
2007-10-10r5145: define struct ipv4_addr in misc.idl,Stefan Metzmacher11-17/+30
so we can use it in nbt.idl and get a nicer debug output metze (This used to be commit abacbc9192646f6f3c720758ab65889b82b9ae7b)
2007-10-10r5144: add more forward declarationsStefan Metzmacher1-2/+7
metze (This used to be commit c5a24792db61b688f23cf7d2509993049cad4a75)
2007-10-10r5143: don't generate prototypes for lib/tdb/Stefan Metzmacher3-1/+12
metze (This used to be commit 1c48c30aaf58d069cdba2f59b5c012bc4bdd3efc)
2007-10-10r5142: fix compiler warningStefan Metzmacher1-1/+1
metze (This used to be commit d8aeb69ea85cc0df89e213482c446eb8e793bc86)
2007-10-10r5141: fix compiler warningsStefan Metzmacher2-2/+2
metze (This used to be commit 12b0841b30fdb6d7ba8c3dc9991c172f7fb3d31f)
2007-10-10r5139: fix typesStefan Metzmacher1-2/+2
metze (This used to be commit 8507a57b88c6acce84d9ccc580e17c7f96c6d7af)
2007-10-10r5138: don't create prototypes for samba3's winbind client libStefan Metzmacher1-1/+1
they're in hand declared metze (This used to be commit fcc690a274963565d13fc358edc61db57c4111b9)
2007-10-10r5137: fix typesStefan Metzmacher10-12/+12
metze (This used to be commit add1c579375d08040f722946da31ee3862f9e7ac)
2007-10-10r5136: fix typesStefan Metzmacher4-8/+8
metze (This used to be commit 344367cc4cdb232c394ce45ab64cc357cce4259f)
2007-10-10r5135: I prepare a clean up in includes.hStefan Metzmacher2-1/+4
metze (This used to be commit 670e088e94468a5311353dbbaa7e34d200999313)
2007-10-10r5134: - fix types to always use _t typesStefan Metzmacher6-10/+13
- add #include "system/filesys.h" where needed metze (This used to be commit 6bb07a0ed8a4baaeaa1d63bde8ce773364860fd2)
2007-10-10r5133: fix type mapping to internal typesStefan Metzmacher1-5/+7
metze (This used to be commit 4cebc7a85810395a0b095127925bd88c7caddb63)
2007-10-10r5130: added a single NBT name query benchmark. It keeps 10 queries in ↵Andrew Tridgell3-0/+142
flight at a time. (This used to be commit 2d23c665ffda7619dc9b9c2dbcbc422b0854998c)
2007-10-10r5129: make sure we don't spin chewing CPU time due to my last changeAndrew Tridgell1-1/+5
(This used to be commit 69e97ad9c397261cd6edb6f7504021942f16c0ec)
2007-10-10r5126: the composite code is no longer client specific or smb specific, soAndrew Tridgell18-130/+130
rename the core structure to composite_context and the wait routine to composite_wait() (suggestion from metze) (This used to be commit cf11d05e35179c2c3e51c5ab370cd0a3fb15f24a)
2007-10-10r5123: fixed a bug in the timed events handling. It was possible for a timedAndrew Tridgell2-11/+26
event handler to trigger a free that could cause a timer to be triggered twice. This changs fixes it properly by marking timer events to be removed using a zero next_event time. I also changed the default timeout for events.c to be infinite, so if there are no events to handle then smbd will sit forever doing nothing. That allows it to be swapped out completely when idle. (This used to be commit 0f1fb7017ee441cbebcad45900435adb57ca1760)
2007-10-10r5122: fixed name of winbind stream opsAndrew Tridgell1-1/+1
(This used to be commit 984c737c1b5e9106979be95738c11f52ae6cddc2)
2007-10-10r5121: added periodic name refresh requests for all our registered names, ↵Andrew Tridgell7-7/+246
reporting any name conflicts (This used to be commit 69e6a1cd4bac665debb10601d1a3ddc0ae86e779)
2007-10-10r5120: encode outgoing nbt packets when queueing them rather than in the sendAndrew Tridgell2-30/+45
event code, as elements of the callers packet structure could go away while the queue is pending (if for example a name was de-registered while a packet referencing that name is queued) (This used to be commit 6726f15cf44388e5787eec223a8c9778110a508f)
2007-10-10r5119: fflush after talloc reports to ensure they are fully on disk when ↵Andrew Tridgell1-1/+2
using tee (This used to be commit e73e49aaa64f6f976918f087cf196b00eecc3eb2)
2007-10-10r5118: added support for node status replies in nbtd. nmblookup -S now works ↵Andrew Tridgell7-17/+151
against Samba4. Also added support for the '*' wildcard name (This used to be commit 2dd7ccf72444db668fa970c3a95de1448baea224)
2007-10-10r5117: used a composite function to add 4 stage name registration. We send 3Andrew Tridgell5-22/+163
broadcast name registration demands per name per interface at 1 second intervals, then send a name overwrite request and demand. Any name conflict replies are reported. (This used to be commit d656fba6f1a2e9d8c03893741327e5fb59c5271e)
2007-10-10r5116: fixed build of the nbtlist codeAndrew Tridgell1-2/+7
(This used to be commit 506e1e823cd3f652a793db9f4c43147d298b9b8b)
2007-10-10r5115: enable the nbt daemon by defaultAndrew Tridgell1-1/+1
(This used to be commit 4c0cc5fc11241c8a19081c4944b162c29da31603)
2007-10-10r5114: the nbtd task can now act as a basic B-node server. It registers itsAndrew Tridgell18-211/+745
names on the network and answers name queries. Lots of details are still missing, but at least this now means you don't need a Samba3 nmbd to use Samba4. missing pieces include: - name registrations should be "shout 3 times, then demand" - no WINS server yet - no master browser code (This used to be commit d7d31fdc6670f026f96b50e51a4de19f0b920e5b)
2007-10-10r5109: - fixed handling of zero-length subcontexts in the ndr libraryAndrew Tridgell2-4/+8
- added error checking on socket startup in nbtd (This used to be commit 5707ebc9ecdce5c195a2788ab1e4214788a086ea)
2007-10-10r5108: the beginnings of a nbtd server for Samba4. Currently just displaysAndrew Tridgell14-4/+285
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-10r5107: moved the horrible ldap socket code, and the even worseAndrew Tridgell4-242/+299
asn1-tied-to-blocking-sockets code into the ldap client and torture suite, and out of the generic libs, so nobody else is tempted to use it for any new code. (This used to be commit 39d1ced21baeca40d1fca62ba65243ca8f15757e)
2007-10-10r5106: removed a bunch of unused socket functions. We still needAndrew Tridgell1-373/+1
open_socket_out() as its used by the ldap client code (uggh) (This used to be commit 95d9766be8b08b7ca52c24d4ed3313e147edb159)
2007-10-10r5105: removed some unused events functions. These are no longer needed asAndrew Tridgell1-30/+0
destructors are used to remove pending socket events (This used to be commit ce62105434ab02e94e38897409c3512905c48f02)
2007-10-10r5104: - added support for task based servers. These are servers that withinAndrew Tridgell12-186/+377
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-10r5103: forgot to add two new filesAndrew Tridgell2-0/+272
these are the stream server helper functions (This used to be commit 3c5a7650a9730d74503b759bccafbb0fa3bbce78)
2007-10-10r5102: This is a major simplification of the logic for controlling top levelAndrew Tridgell36-1558/+633
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)