1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-04 05:18:06 +03:00
samba-mirror/source4/smb_server
Andrew Tridgell 7d32679e96 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;
}
(This used to be commit 814881f0e5)
2007-10-10 12:59:39 -05:00
..
config.m4 r847: convert SMB SERVER SUBSYSTEM to a config.mk file 2007-10-10 12:53:55 -05:00
config.mk r2288: Remove the claim/yield connection code - this will need to be redone 2007-10-10 12:58:39 -05:00
conn.c r2249: got rid of some more mem_ctx elements in structures 2007-10-10 12:58:34 -05:00
negprot.c r2783: got rid of the unused remote architecture detection code 2007-10-10 12:59:32 -05:00
nttrans.c r2751: this is a new ntvfs design which tries to solve: 2007-10-10 12:59:30 -05:00
password.c r2249: got rid of some more mem_ctx elements in structures 2007-10-10 12:58:34 -05:00
reply.c r2751: this is a new ntvfs design which tries to solve: 2007-10-10 12:59:30 -05:00
request.c r2857: this commit gets rid of smb_ucs2_t, wpstring and fpstring, plus lots of associated functions. 2007-10-10 12:59:39 -05:00
search.c r2751: this is a new ntvfs design which tries to solve: 2007-10-10 12:59:30 -05:00
service.c r2751: this is a new ntvfs design which tries to solve: 2007-10-10 12:59:30 -05:00
session.c r1499: combine struct user_struct and struct smbsrv_user 2007-10-10 12:57:36 -05:00
sesssetup.c r2797: don't free the server_info before using it for anonymous connections 2007-10-10 12:59:35 -05:00
signing.c r2664: fixed the final server leak for normal operation. We now get a clean report from --leak-check 2007-10-10 12:59:19 -05:00
smb_server.c r2751: this is a new ntvfs design which tries to solve: 2007-10-10 12:59:30 -05:00
smb_server.h r2751: this is a new ntvfs design which tries to solve: 2007-10-10 12:59:30 -05:00
srvtime.c r1291: rename struct smbsrv_context to smbsrv_connection 2007-10-10 12:56:49 -05:00
trans2.c r2784: - fixed alignment of ascii directory listings 2007-10-10 12:59:32 -05:00