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

21 Commits

Author SHA1 Message Date
Andrew Bartlett
d1ca2b9f23 Kill off codepage related stuff, now we don't use codepages any more.
Andrew Bartlett
-
Andrew Tridgell
e125f06058 This commit finally gives us multiple wins server groups. We now
accept an extended syntax for 'wins server' like this:

  wins server = group1:192.168.2.10 group2:192.168.3.99 group1:192.168.0.1

The tags before the IPs don't mean anything, they are just a way of
grouping IPs together. If you use the old syntax (ie. no ':') then
an implicit group name of '*' is used. In general I'd recommend people
use interface names for the group names, but it doesn't matter much.

When we register in nmbd we try to register all our IPs with each group
of WINS servers. We keep trying until all of them are registered with
every group, falling back to the failover WINS servers for each group
as we go.

When we do a WINS lookup we try each of the WINS servers for each group.
If a WINS server for a group gives a negative answer then we give up
on that group and move to the next group. If it times out then
we move to the next failover wins server in the group.

In either case, if a WINS server doesn't respond then we mark it dead
for 10 minutes, to prevent lengthy waits for dead servers.
-
Jeremy Allison
b06862e2de Fix for Linux kernel bug where signal mask set within a signal handler
is being ignored on sighandler exit. This means we have to have a small
array of fd's, not a single one.
Jeremy.
-
Richard Sharpe
c986a19cde Changes to allow head to translate NMB flags ... -
Tim Potter
6a58c9bd06 Removed version number from file header.
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
-
Herb Lewis
20c5f042e3 merge IRIX winbind support from Samba 2.2 branch -
Herb Lewis
564bfd7728 allow IRIX to build nsswitch/libnss_wins.so -
Tim Potter
778f5f77a6 Got medieval on another pointless extern. Removed extern struct ipzero
and replaced with two functions:

	void zero_ip(struct in_adder *ip);
	BOOL is_zero_ip(struct in_addr ip);
-
Tim Potter
8fc772c9e5 Removed TimeInit() call from every client program (except for one place
in smbd/process.c where the timezone is reinitialised.  Was replaced with
check for a static is_initialised boolean.
-
Martin Pool
79ec88f0da Store some path names in global variables initialized to configure
default, rather than in preprocessor macros.
-
Tim Potter
2d0922b0ea Removed 'extern int DEBUGLEVEL' as it is now in the smb.h header. -
Simo Sorce
03dc67788f move to SAFE_FREE() -
Andrew Tridgell
debb471267 The big character set handling changeover!
This commit gets rid of all our old codepage handling and replaces it with
iconv. All internal strings in Samba are now in "unix" charset, which may
be multi-byte. See internals.doc and my posting to samba-technical for
a more complete explanation.
-
Jeremy Allison
86557d6336 Zero-fill struct hostent.
Jeremy.
-
Jeremy Allison
c38a465bef Fixed glibc crash problems with libnss_wins.so
Jeremy.
-
Christopher R. Hertel
56be7c2a49 Converted to call lib/wins_srv.c:wins_srv_ip() instead of lp_wins_server()
when looking up the WINS server address.

Please *don't* use lp_wins_server() any more!

The wins_srv_ip() function has the following features:

- If the WINS server was entered as a DNS name then the translation to an
  IP address will already have taken place.  We used to do this every time
  a call to the WINS server was made.  Ick.

- The return value of wins_srv_ip() is a struct in_addr.  Ready to go.

- When WINS failover is fully implemented, you'll be able to enter a colon-
  separated list of WINS servers via the WINS SERVER parameter.  Using
  lp_wins_server() directly will fail if this syntax is used.

Chris -)-----
-
John Terpstra
3fb2e94c44 Fixes to allow wins.c to compile to allow building of libnss_wins.so. -
Christopher R. Hertel
73aa188320 Instead of handing back a string (which might be a DNS name or an IP
string), the wins_srv module now hands back a struct in_addr when it's
called.  It caches the IP address once it has been looked up.  The IP
is cleared (and must be looked up again) if the 'wins server' parameter
is reread, or if the node is marked 'dead'.  A dead node will not be
re-tried for 10 minutes (per a #define in wins_srv.c).

As it was, the code was reading the WINS server name or IP directly from
lp_wins_server.  That's okay, except that if the value was expressed as
a name, then a DNS lookup would be done every time the client wanted to
talk to the server.

I still need to work out the implications of failover regarding the
'unicast subnet' list.

Chris -)-----
-
Christopher R. Hertel
cc08bdc74f First cut toward adding WINS server failover.
*Note: failover doesn't actually work yet!*  It's just that the code I'm
adding provides all of the pieces necessary.

I do have one big question.  Something that I'll have to ask Jeremy, I'm
thinkin'.  In nmbd/nmbd_subnetdb.c the IP of the WINS server is used to
set up the Unicast subnet.

...so what happens if the WINS server changes?

My guess is either:
  a) nothing.
  b) I'd have to change the unicast subnet entry whenever the WINS server
     changes.

Urq.

BTW, the lp_wins_server() function no longer returns the WINS server name
or IP.  It returns the list of WINS servers entered in smb.conf.  To get
the currently 'live' WINS server, use the wins_srv() function.

Fun, eh?

Chris -)-----
-
Andrew Tridgell
c78deb1d22 remove scope parameter here too -
Andrew Tridgell
4058eb5bff added basic nsswitch support - this allows you to use a "wins" entry
in a /etc/nsswitch.conf hosts line.

Only tested on RH6.1, but should work on a broad range of Linux
distributions. It could probably be made to work with Solaris pretty
easily.

It does not build by default. Build it with "make nsswitch"
-