1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-19 10:03:58 +03:00

58 Commits

Author SHA1 Message Date
Stefan Metzmacher
fccbbf3546 r10997: r11980@SERNOX (orig r10037): metze | 2005-09-05 14:21:40 +0200
add struct nbt_peer_socket and use it instead of passing const char *addr, uint16 port everyhwere

 (tridge: can you review this please, (make test works)

 metze
(This used to be commit a599d7a4ae881c94be2c2d908a398838549942bb)
2007-10-10 13:39:52 -05:00
Jelmer Vernooij
a1f60c9b0d r10848: Fix warning
(This used to be commit 48d22a991024f19eccaa63848566b311524260c8)
2007-10-10 13:39:36 -05:00
Stefan Metzmacher
03b634042f r10761: we need to use a pointer to a nbt_name to fix compiler warnings, because we can
only use a pointers to unknown types in proto.h

metze
(This used to be commit 2f46e54e1bcf43f1bee062ff9a21e646cc3676e9)
2007-10-10 13:39:28 -05:00
Stefan Metzmacher
08f16292a0 r10608: - fix hierachical memory handling in ndr_pull_nbt_name
- add wrepl_nbt_name scalar type and do the pull/push in the ndr layer
  instead of the caller
- give the flags and group_flag in the wrepl_name a meaning

metze
(This used to be commit b98efc2905e1147eb97111b46a877bdb9d8dd154)
2007-10-10 13:39:12 -05:00
Stefan Metzmacher
ab4d635b92 r10504: - seperate implementation specific stuff, from the generic composite
stuff.
- don't use SMBCLI_REQUEST_* state's in the genreic composite stuff
- move monitor_fn to libnet.

NOTE: I have maybe found some bugs, in code that is dirrectly in DONE or ERROR
      state in the _send() function. I haven't fixed this bugs in this
      commit! We may need some composite_trigger_*() functions or so.
      And maybe some other generic helper functions...

metze
(This used to be commit 4527815a0a9b96e460f301cb1f0c0b3964c166fc)
2007-10-10 13:38:57 -05:00
Jelmer Vernooij
6553dd0c60 r8811: Fix the build..
(This used to be commit fac77f5fa267da57a55e88cad8993897e80741a0)
2007-10-10 13:30:07 -05:00
Andrew Tridgell
e835621799 r8520: fixed a pile of warnings from the build farm gcc -Wall output on
S390. This is an attempt to avoid the panic we're seeing in the
automatic builds.

The main fixes are:

 - assumptions that sizeof(size_t) == sizeof(int), mostly in printf formats

 - use of NULL format statements to perform dn searches.

 - assumption that sizeof() returns an int
(This used to be commit a58ea6b3854973b694d2b1e22323ed7eb00e3a3f)
2007-10-10 13:29:34 -05:00
Love Hörnquist Åstrand
61edb97bdf r8394: Make sure the argument to ctype is*(3) macros are unsigned char as
required by ISO C99.
(This used to be commit 56fd21c806e816cf4c3d23881f26474f858b45e2)
2007-10-10 13:20:14 -05:00
Andrew Tridgell
bde98850be r8247: remove the free of fullname in nbtname.c for now.
Metze, the ndr_token_store() code is storing temporary pointers into
this string in the token list, which means we are referring to freed
memory when we scan the token list. A better key might be a pointer
into the ndr buffer?
(This used to be commit 6a4e8cc991613773a65545eb308cf4ead75844e8)
2007-10-10 13:19:25 -05:00
Stefan Metzmacher
e296c8de6e r8212: fix pushing of nbt_string's:
- we now use an ndr_token_list, for the nbt string label pointer offsets
  this avoids to scan the whole buffer

- we need to check for already send string on a per component basis
  not only for the fullname

e.g.
w2k3 response this in the CLDAP netlogon replies

forest: w2k3.vmnet1.vm.base
dns_name: sub1.
pdc_dns_name: w2k3-104.

and this will be interpreted like

forest: w2k3.vmnet1.vm.base
dns_name: sub1.w2k3.vmnet1.vm.base
pdc_dns_name: w2k3-104.w2k3.vmnet1.vm.base

metze
(This used to be commit d18303a0e27643285ffaf100eeddea2f9555c9db)
2007-10-10 13:19:20 -05:00
Andrew Tridgell
152a6a00c3 r7865: changed pidl to take a "const void *" instead of a "void *" for the
structure in ndr_push_*() and ndr_print_*(). The push and print
functions really should not modify the structure.

metze, to make this work I had to change your spoolss hand
marshaller. Can you please check it is OK? I think that the IN and OUT
sides of that function are not ever called on the same structure, so I
think that attempt at remembering the value by assigning to
r->in._offered was not doing anything anyway, but please correct me if
I have misunderstood it.

If you really do need to remember something on those structures I'd
suggest the ndr_token_store() and ndr_token_retrieve() functions,
which are used by pidl for just this sort of thing.
(This used to be commit eee528be97fa43ca53bdc5652b4d29a0a2caf563)
2007-10-10 13:18:44 -05:00
Andrew Tridgell
07b0d86121 r7483: ensure we try reading from a socket if epoll says we can, and don't
just do the write. This is needed because the write could return
-1/EAGAIN for dgram sockets, if the socket buffer is nearly full. The
epoll loop then goes on forever.

This was causing some failures in 'make test'
(This used to be commit b7fefe76a2d3c288611868f41d65af4e13ac460b)
2007-10-10 13:17:58 -05:00
Volker Lendecke
c96492a9dc r7436: As far as I see it, these are the last two "real" ones for Samba4 on AIX to
build. The remaining patch (not now) is to convert the javascript stuff not to
use // style comments.

Volker
(This used to be commit 29f7e430ac4ae43f6844f021be73bf391610ef73)
2007-10-10 13:17:53 -05:00
Andrew Tridgell
665480ffed r7229: use socket_pending() to get rid of the max packet size limits in the
nbt and dgram layers
(This used to be commit 2a9efbdae638a655999e07a7c3da97fd20dc056c)
2007-10-10 13:17:29 -05:00
Andrew Tridgell
489a6b5591 r6692: used idr_get_new_random() in the nbt client library
(This used to be commit a3f64357af75587a855cfedb58ce2583658c7d04)
2007-10-10 13:16:35 -05:00
Andrew Tridgell
e284a26294 r6338: ADS style GETDC response now works well enough that WinXP can join
Samba4 without Samba3 nmbd
(This used to be commit f4d07d7d3b6973b503d8c98f177471dd6cebfa92)
2007-10-10 13:11:33 -05:00
Andrew Tridgell
8d0a36366c r6331: added IDL and test suite for the ADS style response to a datagram netlogon query.
Note that this response is almost identical to the CLDAP netlogon
response, so adding that will now be quite easy.
(This used to be commit 1ea4ed4ad1d9336f8288283688fa2d7bebfa533c)
2007-10-10 13:11:32 -05:00
Andrew Tridgell
93cd3e9022 r5405: try to use NBT name pointers when a netbios name is repeated in a NBT
packet. This allows much longer names to fit within the limits of NBT
name packets (rfc1002.txt also says this should be done, although
Samba3 never generates them).

The main reason for doing this is it means that our NBT name pointer
decoding code is tested with the smbtorture tests
(This used to be commit 6e2feef125daceb143c44c0c4ab73b010b311792)
2007-10-10 13:10:42 -05:00
Andrew Tridgell
3bbe3fe4ce r5404: allow spaces in the string representation of nbt names
(This used to be commit dd3d4ded21e50130243de3b35927368875620d47)
2007-10-10 13:10:42 -05:00
Andrew Tridgell
e428eee91b r5398: fixed encoding of *SMBSERVER name (thanks to Karl Melcher for spotting this)
(This used to be commit 76c49851b921c137c59c45084c5dab95f1c16f58)
2007-10-10 13:09:51 -05:00
Andrew Tridgell
240829d53e r5396: fixed parsing of NBT type 0xc0 compressed name pointers
(This used to be commit 666cc65d10012fa2a413dfa619fbc4599f752728)
2007-10-10 13:09:51 -05:00
Andrew Tridgell
352de700ca r5392: added "secure" WINS server processing. Send a WACK on name
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-10 13:09:50 -05:00
Andrew Tridgell
85fd954145 r5391: cope with w2k3 getting the timeout wrong in wack replies
(This used to be commit 75766603e325d515a718b1d1ab0f08160ea1f790)
2007-10-10 13:09:50 -05:00
Andrew Tridgell
803ce86db9 r5382: another place where we need to uppercase the called name for port 139 connects
(This used to be commit b13cea5b2b55ce3d4109666cf51af6ffd879d15d)
2007-10-10 13:09:49 -05:00
Andrew Tridgell
e199f4cef2 r5358: - added initial WINS server code. It passes most of the NBT-WINS 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-10 13:09:45 -05:00
Andrew Tridgell
907d1d413d r5356: fixed the hex coding for nbt names
(This used to be commit e467715c63624e165b79b37bd21b381d7a99d0fe)
2007-10-10 13:09:45 -05:00
Andrew Tridgell
7b8f58c37c r5352: added a function nbt_name_string() that formats a nbt_name structure
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-10 13:09:45 -05:00
Andrew Tridgell
dd689afdc8 r5328: - allow case sensitive nbt name lookups
- added --case-sensitive option to nmblookup

 - added case sensitivity tests to the NBT-WINS test
(This used to be commit 80a95d5688e055b36727e5c043cb36322d719763)
2007-10-10 13:09:42 -05:00
Andrew Tridgell
f3d1fa124b r5326: removed the charset conversion from the nbtname code, so we no longer
convert from/to DOS strings in NBT names. This will allow us to
support all foreign names as a WINS server, as long as they don't
contain a 0 byte.
(This used to be commit 8e5d3a74d341de086d850d823cf8a1bfc9387fe8)
2007-10-10 13:09:41 -05:00
Andrew Tridgell
82fd60e904 r5325: - expanded the NBT-WINS test to include scopes
- fixed the bugs that the new test found
(This used to be commit 6d775f12168d51ce92a3f7e17f4bf06357d41a06)
2007-10-10 13:09:41 -05:00
Andrew Tridgell
9515fc4406 r5322: removed a whole bunch of #include lines that minimal_includes.pl
thinks are not needed. Now to see how this fares on the build farm :)
(This used to be commit 80ffcc650c9c86141507edd8338b97814a85f868)
2007-10-10 13:09:41 -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
b9bb7f596d r5294: - added a separate NBT-WINS test for WINS operations (register, 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-10 13:09:37 -05:00
Jelmer Vernooij
632acd9bc7 r5286: Some first steps in making the pidl code somewhat more generic for the
various data types:

Add ndr_flags argument to all ndr push/pull scalar functions
(This used to be commit ab490c0c882bb13de190546c50a0631ecb8255ad)
2007-10-10 13:09:36 -05:00
Andrew Tridgell
2513ac33de r5275: - added support for NBT_OPCODE_MULTI_HOME_REG (opcode 0xf) for WINS name registrations
- fixed a bug in the send queue handling on timeouts

- added support for handling unexpected replies (replies to the wrong
  port) at the nbtsocket layer

- added separate layer 2 code for wins refresh and wins registration
(This used to be commit 2502b02898407e3262c09a5a4aa573c5f87b8f5f)
2007-10-10 13:09:36 -05:00
Andrew Tridgell
b69a2c0d6b r5261: translate nbt rcode errors to NTSTATUS codes
(This used to be commit 554d1b70e73faeb1f5ecf88f31c5810d86d76200)
2007-10-10 13:09:35 -05:00
Andrew Tridgell
fcb78064bf r5260: - show an error message on nmblookup failure
- always try to enable broadcast on nbt name sockets (this matches
  samba3 behaviour better)
(This used to be commit 919bc14e7bbc04479cf11f7a7fd4c5e46616ef46)
2007-10-10 13:09:35 -05:00
Andrew Tridgell
e0caea68f5 r5250: - added low level support for retrying nbt name queries, rather than
having the 2nd layer functions do retries themselves. This makes the
  code simpler, and allows the TRN_ID to be reused in the retry (which
  is how it is supposed to work).

- added support for WACK replies to nbt name requests. A WACK reply
  specifies a timeout to wait for the real reply.

- added WINS name refresh async calls, supporting multiple wins
  servers and multiple IPs to register
(This used to be commit 76be35cb990de830c2451d9e48cb2c40a4befdb7)
2007-10-10 13:09:34 -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
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
Andrew Tridgell
9b9c23b19b r5155: define ipv4address as a based IDL type, mapped to a "const char *" in
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-10 13:09:28 -05:00
Stefan Metzmacher
ca3f70256a r5145: define struct ipv4_addr in misc.idl,
so we can use it in nbt.idl and
get a nicer debug output

metze
(This used to be commit abacbc9192646f6f3c720758ab65889b82b9ae7b)
2007-10-10 13:09:27 -05:00
Andrew Tridgell
9a70f446fc r5126: the composite code is no longer client specific or smb specific, so
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-10 13:09:25 -05:00
Andrew Tridgell
2e953b967a r5121: added periodic name refresh requests for all our registered names, reporting any
name conflicts
(This used to be commit 69e6a1cd4bac665debb10601d1a3ddc0ae86e779)
2007-10-10 13:09:24 -05:00
Andrew Tridgell
0700676da6 r5120: encode outgoing nbt packets when queueing them rather than in the send
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-10 13:09:24 -05:00
Andrew Tridgell
5e6082b4b0 r5117: used a composite function to add 4 stage name registration. We send 3
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-10 13:09:24 -05:00
Andrew Tridgell
414f6c80b2 r5114: the nbtd task can now act as a basic B-node server. It registers its
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-10 13:09:23 -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
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