1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-11 00:23:51 +03:00
Commit Graph

14 Commits

Author SHA1 Message Date
Jelmer Vernooij
0a5c9197f2 r10516: Add seperator argument to str_list_{make,join}_shell() 2007-10-10 13:38:59 -05:00
Jelmer Vernooij
8b86a5da73 r10514: Add str_list_make_shell() and str_list_join_shell() 2007-10-10 13:38:59 -05:00
Jelmer Vernooij
414e5f7f6d r9798: Add generic functions for handling smb.conf files (the parameters don't to be pre-declared). Also doesn't use any globals, so multiple files can be loaded at once.
Currently uses the prefix "param" for all functions and structures; suggestions for better ones are welcome...

Remove old smb.conf-parsing code from libsamba3.
2007-10-10 13:35:02 -05:00
Andrew Tridgell
5654330b61 r7052: added a case insensitive str_list_check_ci() version of str_list_check() 2007-10-10 13:17:09 -05:00
Andrew Tridgell
b35ee83536 r5401: using talloc_array() is neater here 2007-10-10 13:10:42 -05:00
Andrew Tridgell
8dc2a028d3 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.
2007-10-10 13:09:50 -05:00
Andrew Tridgell
4165f21635 r5274: fixed some const warnings by making the str_list_ functions return "const char **" 2007-10-10 13:09:35 -05:00
Andrew Tridgell
e8e499755a r5221: replace the str_list_*() code with new code based on talloc(). This is
a precursor to adding the wins client code in the nbt server.
2007-10-10 13:09:32 -05:00
Andrew Tridgell
d7d31fdc66 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
2007-10-10 13:09:23 -05:00
Andrew Tridgell
b0f6e21481 r4054: got rid of Realloc(), replacing it with the type safe macro realloc_p() 2007-10-10 13:06:19 -05:00
Andrew Tridgell
8e9212ecfc r3478: split out some more pieces of includes.h 2007-10-10 13:05:20 -05:00
Andrew Tridgell
7842b23d01 r3457: s_addr is a macro on solaris, so we can't use it in structure names. arrgh. 2007-10-10 13:05:15 -05:00
Andrew Tridgell
2e25c71853 r3443: the next stage in the include files re-organisation.
I have created the include/system/ directory, which will contain the
wrappers for the system includes for logical subsystems. So far I have
created include/system/kerberos.h and include/system/network.h, which
contain all the system includes for kerberos code and networking code.
These are the included in subsystems that need kerberos or networking
respectively.

Note that this method avoids the mess of #ifdef HAVE_XXX_H in every C
file, instead each C module includes the include/system/XXX.h file for
the logical system support it needs, and the details are kept isolated
in include/system/

This patch also creates a "struct ipv4_addr" which replaces "struct
in_addr" in our code. That avoids every C file needing to import all
the system networking headers.
2007-10-10 13:05:11 -05:00
Andrew Tridgell
814881f0e5 r2857: this commit gets rid of smb_ucs2_t, wpstring and fpstring, plus lots of associated functions.
The motivation for this change was to avoid having to convert to/from
ucs2 strings for so many operations. Doing that was slow, used many
static buffers, and was also incorrect as it didn't cope properly with
unicode codepoints above 65536 (which could not be represented
correctly as smb_ucs2_t chars)

The two core functions that allowed this change are next_codepoint()
and push_codepoint(). These functions allow you to correctly walk a
arbitrary multi-byte string a character at a time without converting
the whole string to ucs2.

While doing this cleanup I also fixed several ucs2 string handling
bugs. See the commit for details.

The following code (which counts the number of occuraces of 'c' in a
string) shows how to use the new interface:

size_t count_chars(const char *s, char c)
{
	size_t count = 0;

	while (*s) {
		size_t size;
		codepoint_t c2 = next_codepoint(s, &size);
		if (c2 == c) count++;
		s += size;
	}

	return count;
}
2007-10-10 12:59:39 -05:00