summaryrefslogtreecommitdiff
path: root/source4/nbt_server
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r5411: make network interface selection a bit sanerAndrew Tridgell1-0/+5
- 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-10r5408: - added testing for the behaviour of the special 0x1c nameAndrew Tridgell4-9/+20
- added WINS server support for the 0x1c name (This used to be commit 1558a545285ae0432c70e0a3e2b132a5132e7b3b)
2007-10-10r5397: added testing and server support for the special handling required ↵Andrew Tridgell1-0/+6
for the 0x1d local master browser name in WINS (This used to be commit 2650b43ca903fb478d2943fa9bbdba8b2bf74966)
2007-10-10r5392: added "secure" WINS server processing. Send a WACK on nameAndrew Tridgell6-47/+280
registrations from anyone who isn't a current owner, then query the owner addresses to see if they still want it. (This used to be commit 8dc2a028d3ca0115d3173df435d926d7b6a4d5d5)
2007-10-10r5387: - added automatic WINS server record expiryAndrew Tridgell3-20/+149
- added support for group names in registration and query (This used to be commit 3690a65bef2b2791203c49d68c8268ff03434622)
2007-10-10r5375: use a real DN in the WINS database. We now pass the NBT-WINS test.Andrew Tridgell1-2/+2
(This used to be commit 807a3a1f80b1c065ee799531cdf947b31d1a109f)
2007-10-10r5358: - added initial WINS server code. It passes most of the NBT-WINS ↵Andrew Tridgell7-28/+393
test, but doesn't yet do secure server WACK responses - added a ldap_string_to_time() function, for converting a LDAP formatted time to a time_t (This used to be commit 9aa3313b3f93e47e3f93028e072f6a23b3c22385)
2007-10-10r5352: added a function nbt_name_string() that formats a nbt_name structureAndrew Tridgell7-39/+47
as a human readable string. The format is designed to be able to be used as the DN for the WINS database as well, while coping with arbitrary bytes in the name (except nul bytes) (This used to be commit aac3090e3504ba07124a9d480322a98efb97175e)
2007-10-10r5346: - a bit more preparation for the WINS server going inAndrew Tridgell8-144/+263
- more NBT packet asserts, to ensure that incoming requests have all the elements we depend on - open the WINS database at startup if we are configured as a WINS server - split out the nbtd server reply packet generation code so it can be shared by the WINS server - re-did the logic of what is answered by the WINS server and what by the B node server. It now always tries to answer by the B node, and only "recurses" to the WINS server for names that are not found. (This used to be commit 5613e6b8ad9b32639caf5055f793dbc4d0a2fc19)
2007-10-10r5329: made the nbt server case sensitiveAndrew Tridgell2-2/+2
(This used to be commit 895071881920a5d6726f377f4367b588deabfb03)
2007-10-10r5304: removed lib/socket/socket.h from includes.hAndrew Tridgell1-0/+1
(This used to be commit b902ea546d2d1327b23f40ddaeeaa8e7e3662454)
2007-10-10r5294: - added a separate NBT-WINS test for WINS operations (register, ↵Andrew Tridgell1-4/+4
refresh, release and query) - change the iface_n_*() functions to return a "const char *" instead of a "struct ipv4_addr" I think that in general we should move towards "const char *" for all IP addresses, as this makes IPv6 much easier, and is also easier to debug. Andrew, when you get a chance, could you fix some of the auth code to use strings for IPs ? - return a NTSTATUS error on bad name queries and node status instead of using rcode. This makes the calling code simpler. - added low level name release code in libcli/nbt/ - use a real IP in the register and wins nbt torture tests, as w2k3 WINS server silently rejects some operations that don't come from the IP being used (eg. it says "yes" to a release, but does not in fact release the name) (This used to be commit bb1ab11d8e0ea0bd9ae34aebeb565d36fe4b495f)
2007-10-10r5276: - added support for NBT_OPCODE_REFRESH2 (type 0x9)Andrew Tridgell5-34/+145
- when registering with a WINS server, initially use multi-homed registration, then switch to name refresh requests. Send refresh requests only to the WINS server that responded to our registration. If that server goes away, then start the registration from scratch. This makes registration more robust to WINS server failure. - send WINS registration requests out on our first interface rather than an unbound interface, to avoid the problem of WACK replies being sent to the wrong port (w2k3 WINS server does this) (This used to be commit f7712ac7468184c07b3e3c10cb7b847ad1791dd2)
2007-10-10r5260: - show an error message on nmblookup failureAndrew Tridgell1-3/+0
- always try to enable broadcast on nbt name sockets (this matches samba3 behaviour better) (This used to be commit 919bc14e7bbc04479cf11f7a7fd4c5e46616ef46)
2007-10-10r5259: make sure we give the ip of the interface that a name query comes inAndrew Tridgell3-8/+25
on as the first IP in a multi-homed reply (This used to be commit a9128f6544d56a637e28430cbd2907acbb978281)
2007-10-10r5251: - renamed the nbtd server side structures to have a nbtd_ prefix, toAndrew Tridgell11-64/+287
be consistent with the function names - added WINS client support to the NBT server. It will do initial WINS registration, and WINS refresh, automatically failing over to secondary WINS servers and handling multi-homed servers where we need to register multiple IPs. - added support for multi-homed name query replies, which are essential for multi-homed registration as the WINS server will query us to ensure we have the names when doing the secondary IPs in multi-homed registration (This used to be commit a1553fa8054dc7d33f5d77f8f95d3ffd90392b2a)
2007-10-10r5222: made the nbtd_self_packet() code more efficientAndrew Tridgell1-6/+16
(This used to be commit 8fe477955d0e28c891281803d625d80cb78a51b0)
2007-10-10r5216: don't defend group names against incoming name registration requestsAndrew Tridgell1-1/+1
(This used to be commit c5f5e1d4012c9f4fd4ea78a4276e6766727a5494)
2007-10-10r5215: register aliases as both client and server node types, so nmblookup ↵Andrew Tridgell1-0/+1
can see them (This used to be commit 3e9788691fe6d618b1e170494e818d0cbdc64eae)
2007-10-10r5214: added support for "netbios aliases" in smb.confAndrew Tridgell1-1/+8
(This used to be commit 3270b07539d9a50763f4f15c7aa8fee028928b29)
2007-10-10r5213: do our name broadcast refresh requests as register packets not refreshAndrew Tridgell1-4/+9
packets, as w2k3 and Samba3 do not defend against broadcast name refresh packets (This used to be commit 3935b5f7c57be46042110911ba5b00ac39b0f41a)
2007-10-10r5212: added checking for receiving our own packets as broadcastsAndrew Tridgell2-0/+35
(This used to be commit 290dbd8cdcfa6a897647768dcbbd03f22fc7cf36)
2007-10-10r5211: added broadcast name defense against both registration and refreshAndrew Tridgell4-7/+124
requests (This used to be commit 9eafe2cacaef64384febe6bb0938294f7c1ee6bf)
2007-10-10r5210: changed server side nbt functions to be prefixed with nbtd_ instead ofAndrew Tridgell8-76/+79
nbt_, so as to more clearly separate them from the client code in libcli/nbt/ (This used to be commit b07a7e35f26204055a99abf72438b5cd7ec35d3b)
2007-10-10r5197: moved events code to lib/events/ (suggestion from metze)Andrew Tridgell2-2/+2
(This used to be commit 7f54c8a339f36aa43c9340be70ab7f0067593ef2)
2007-10-10r5196: fixed sily bug (that metze found)Andrew Tridgell1-1/+1
(This used to be commit 180f29f9e05e75e8ed32d010bc0c57a55ea9d843)
2007-10-10r5185: make all the events data structures private to events.c. This willAndrew Tridgell1-8/+6
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-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-10r5155: define ipv4address as a based IDL type, mapped to a "const char *" inAndrew Tridgell1-1/+3
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-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 Metzmacher2-1/+4
so we can use it in nbt.idl and get a nicer debug output metze (This used to be commit abacbc9192646f6f3c720758ab65889b82b9ae7b)
2007-10-10r5126: the composite code is no longer client specific or smb specific, soAndrew Tridgell1-2/+2
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-10r5121: added periodic name refresh requests for all our registered names, ↵Andrew Tridgell1-0/+82
reporting any name conflicts (This used to be commit 69e6a1cd4bac665debb10601d1a3ddc0ae86e779)
2007-10-10r5118: added support for node status replies in nbtd. nmblookup -S now works ↵Andrew Tridgell5-14/+148
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 Tridgell1-20/+11
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-10r5114: the nbtd task can now act as a basic B-node server. It registers itsAndrew Tridgell8-16/+483
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 Tridgell1-1/+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 Tridgell4-0/+230
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)