1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-25 06:04:04 +03:00

62 Commits

Author SHA1 Message Date
Andrew Tridgell
c98c6aa561 r9702: r9680@blu: tridge | 2005-08-27 18:45:08 +1000
- fixed ncacn_ip_tcp to use the generic async name resolution methods,
   so NBT names now work (as requested several times by abartlet!)

 - changed resolve_name() to take an event_context, so it doesn't cause
   the whole process to block

 - cleaned up the talloc_find_parent_bytype() calls to go via a cleaner
   event_context_find() call
(This used to be commit b3d491b210a8b889a25efcb273e70fefbd01b7f7)
2007-10-10 13:34:51 -05:00
Stefan Metzmacher
0bbe88c859 r9110: use printf again
metyze
(This used to be commit 99537d35cb7c2561a7ce47ac7ad602496afe3475)
2007-10-10 13:31:17 -05:00
Stefan Metzmacher
224a2a62b5 r9106: look for something more usefull in the -lnsl
(this is for solaris)

metze
(This used to be commit f37bb2a838b83e70d50a0ed036e641ced16d8a7b)
2007-10-10 13:31:17 -05:00
Stefan Metzmacher
56c112bbbc r9063: - don't pollute the global $LIBS variable with -ldl
- -lresolve seems to not being needed any more
  (it's actually not used, and the build farm seem to happy with it)

- move socket and netif configure test to seperate files
- don't pollute the global $LIBS variable with -lsocket ...
- actually make use of the -lsocket when needed
  (should fix the solaris build)

metze
(This used to be commit adebd56be6f62323d56b6666ca0e02f85a33438e)
2007-10-10 13:31:13 -05:00
Andrew Tridgell
d1291dacbd r8408: its quite common in our code to free up a connection when we get an
error, but sometimes a socket option may then happen on the NULL
socket. This has been handled by the individual libraries up to now,
but its cleaner to centralise it here
(This used to be commit d9864e1f9aac1fb19f054c2da996a5099e90941e)
2007-10-10 13:22:59 -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
Stefan Metzmacher
5d55ee570b r8044: give a better error code
metze
(This used to be commit fdbf822f1c90cba110d91720ea586ceef9de38b2)
2007-10-10 13:19:02 -05:00
Andrew Tridgell
44a04d74cd r7668: - setup HAVE_ILDAP to enable the ildap backend in ldb
- fixed a bug in socket_connect_ev()
(This used to be commit 3f77b879a035929a843e02b798d54eba6625bde7)
2007-10-10 13:18:20 -05:00
Andrew Tridgell
11bc3f3589 r7660: improved error handling in socket_connect_ev() (it matters when name
resolution fails)
(This used to be commit 4013c2ddea0cd03f875e2acf40d2a34344017d05)
2007-10-10 13:18:18 -05:00
Andrew Tridgell
bab977dad7 r7626: a new ldap client library. Main features are:
- hooked into events system, so requests can be truly async and won't
   interfere with other processing happening at the same time

 - uses NTSTATUS codes for errors (previously errors were mostly
   ignored). In a similar fashion to the DOS error handling, I have
   reserved a range of the NTSTATUS code 32 bit space for LDAP error
   codes, so a function can return a LDAP error code in a NTSTATUS

 - much cleaner packet handling
(This used to be commit 2e3c660b2fc20e046d82bf1cc296422b6e7dfad0)
2007-10-10 13:18:14 -05:00
Andrew Tridgell
b1b134084f r7476: ensure dgram sockets are created non-blocking. As they usually skip
the connect() stage, we were missing this
(This used to be commit f5102b886c10fead0f6bcdc4460584ae53912ebc)
2007-10-10 13:17:57 -05:00
Andrew Tridgell
1692bbf2e2 r7227: added a socket_pending() call to abstract away the FIONREAD ioctl. It
will be interesting to see if this causes any portability problems, as
it is a less commonly used call.
(This used to be commit f6993db31d93059c70b44a23005ba444e205870f)
2007-10-10 13:17:28 -05:00
Andrew Tridgell
e83b74244d r7205: added support for sendto() on unix domain sockets
(This used to be commit 35ef6e3b153f527f79539b2d99c5ff1cd034ba4b)
2007-10-10 13:17:26 -05:00
Jelmer Vernooij
5b18cf2268 r6795: Make some functions static and remove some unused ones.
(This used to be commit 46509eb89980bfe6dabd71264d570ea356ee5a22)
2007-10-10 13:16:44 -05:00
Andrew Tridgell
b2584a403c r6562: added support for datagram unix domain sockets in the socket library
(This used to be commit 23b2046dcb5c4593cba6964f400a2e5246fb35f7)
2007-10-10 13:16:25 -05:00
Jelmer Vernooij
5ae38fb963 r6070: Fix typo's and fallback to "" as default user name if no
other username could be guessed.
(This used to be commit 7fe77cd65901776b5a78e8398547f364379259d3)
2007-10-10 13:11:17 -05:00
Andrew Bartlett
63b5ad6d54 r5903: While I can't test IPv6, metze asked me to commit a matching change
for unknown hosts that I just did for IPv4.

Andrew Bartlett
(This used to be commit 7e1d82a200b3c679b727e0ef28a245389708ae2f)
2007-10-10 13:11:08 -05:00
Andrew Bartlett
3240f01636 r5898: Handle errors in the 'sync' name and IP address handling code.
Andrew Bartlett
(This used to be commit 6b8b40f73bd8b7ce23effc8eb1d808db77bcbf8b)
2007-10-10 13:11:07 -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
e82aad1ce3 r5298: - got rid of pstring.h from includes.h. This at least makes it a bit
less likely that anyone will use pstring for new code

 - got rid of winbind_client.h from includes.h. This one triggered a
   huge change, as winbind_client.h was including system/filesys.h and
   defining the old uint32 and uint16 types, as well as its own
   pstring and fstring.
(This used to be commit 9db6c79e902ec538108d6b7d3324039aabe1704f)
2007-10-10 13:09:38 -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
759da3b915 r5037: got rid of all of the TALLOC_DEPRECATED stuff. My apologies for the
large commit. I thought this was worthwhile to get done for
consistency.
(This used to be commit ec32b22ed5ec224f6324f5e069d15e92e38e15c0)
2007-10-10 13:09:15 -05:00
Andrew Tridgell
8783aa8ea5 r4831: added udp support to our generic sockets library.
I decided to incorporate the udp support into the socket_ipv4.c
backend (and later in socket_ipv6.c) rather than doing a separate
backend, as so much of the code is shareable. Basically this adds a
socket_sendto() and a socket_recvfrom() call and not much all.

For udp servers, I decided to keep the call as socket_listen(), even
though dgram servers don't actually call listen(). This keeps the API
consistent.

I also added a simple local sockets testsuite in smbtorture,
LOCAL-SOCKET
(This used to be commit 9f12a45a05c5c447fb4ec18c8dd28f70e90e32a5)
2007-10-10 13:08:59 -05:00
Andrew Tridgell
21aafc3536 r4753: added the ability for the generic socket library to handle async
connect(). This required a small API change (the addition of
a socket_connect_complete() method)
(This used to be commit b787dd166f5cca82b3710802eefb41e0a8851fc3)
2007-10-10 13:08:50 -05:00
Stefan Metzmacher
ffb8c82424 r4686: cerate a function to create a socket by specifying an socket_ops struct
metze
(This used to be commit 894f402b01c8d4e0bef9c29697b8d13e5b9ea150)
2007-10-10 13:08:43 -05:00
Jelmer Vernooij
5b397619cc r3753: Have some modules default to "NOT" and enable them again when
their dependencies are found
(This used to be commit 8e7e98ae5fca8be8c6a0b4c543b6828c46172171)
2007-10-10 13:05:51 -05:00
Jelmer Vernooij
8e16d8a76f r3733: More build system fixes/features:
- Use .mk files directly (no need for a SMB_*_MK() macro when adding a new SUBSYSTEM, MODULE or BINARY). This allows addition of new modules and subsystems without running configure
 - Add support for generating .dot files with the Samba4 dependency tree (as used by the graphviz and springgraph utilities)
(This used to be commit 64826da834e26ee0488674e27a0eae36491ee179)
2007-10-10 13:05:47 -05:00
Jelmer Vernooij
71db46ea66 r3586: Fix some of the issues with the module init functions.
Both subsystems and modules can now have init functions, which can be
specified in .mk files (INIT_FUNCTION = ...)

The build system will define :
 - SUBSYSTEM_init_static_modules that calls the init functions of all statically compiled modules. Failing to load will generate an error which is not fatal
 - BINARY_init_subsystems that calls the init functions (if defined) for the subsystems the binary depends on

This removes the hack with the "static bool Initialised = " and the
"lazy_init" functions
(This used to be commit 7a8244761bfdfdfb48f8264d76951ebdfbf7bd8a)
2007-10-10 13:05:36 -05:00
Andrew Tridgell
e8e94a93b5 r3482: fixed a warning and an error from the IRIX 6.4 build
(This used to be commit 8ec3cf8b2ba149b7d6a15689e9b77685c6da3179)
2007-10-10 13:05:20 -05:00
Andrew Tridgell
5011f901aa r3457: s_addr is a macro on solaris, so we can't use it in structure names. arrgh.
(This used to be commit 7842b23d01c53009259a2461600bd01159cecebf)
2007-10-10 13:05:15 -05:00
Andrew Tridgell
452ddd94ba r3450: portability fixes
- fix rep_inet_ntoa() for IRIX
 - lib/signal.c needs system/wait.h
 - some systems define a macro "accept", which breaks the lib/socket/ structures.
   use fn_ as a prefix for the structure elements to avoid the problem
(This used to be commit ced1a0fcdc8d8e47755ce4391c19f8b12862eb60)
2007-10-10 13:05:13 -05:00
Andrew Tridgell
26c6b4c70b r3449: more include file reduction
the ldb part isn't ideal, I will have to think of a better solution
(This used to be commit 6b1f86aea8427a8e957b1aeb0ec2f507297f07cb)
2007-10-10 13:05:13 -05:00
Andrew Tridgell
284349482f 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.
(This used to be commit 2e25c71853f8996f73755277e448e7d670810349)
2007-10-10 13:05:11 -05:00
Andrew Tridgell
0caeda53d3 r3356: in the standard process model we need to make sure we close all
listening sockets after the fork to prevent the child still listening
on incoming requests.

I have also added an optimisation where we use dup()/close() to lower
the file descriptor number of the new socket to the lowest possible
after closing our listening sockets. This keeps the max fd num passed
to select() low, which makes a difference to the speed of select().
(This used to be commit f2a9bbc317ba86ebe87c3ca27a3a0192de91014d)
2007-10-10 13:05:00 -05:00
Andrew Tridgell
94c0b939c4 r3335: better configure support for ipv6 - thanks to a quick tutorial from metze
(This used to be commit 76c4ba6d29a6ad1e21c2d7674e1f323e8d53d627)
2007-10-10 13:04:56 -05:00
Jelmer Vernooij
08c4d0db0c r3334: Allow disabling IPv6 support using socket:noipv6
(This used to be commit 9c13f42c1fd489a6a663f614a41c59730c18a054)
2007-10-10 13:04:56 -05:00
Andrew Tridgell
148f07c94b r3333: added configure tests for ipv6 support
(This used to be commit 9794570c6d0646cc34147bf8128802b181f658f0)
2007-10-10 13:04:56 -05:00
Jelmer Vernooij
bb69e3bbe6 r3329: Add support for IPv6
(This used to be commit d8298901243ca4ce2ec420fa523c8e1407e72513)
2007-10-10 13:04:56 -05:00
Andrew Tridgell
8c752ec861 r3318: generate random STATUS_MORE_ENTRIES errors (1 in 10 packets) as well
as randomly short recv/send when socket:testnonblock is enabled
(This used to be commit 718175a265d34bfdbcbf0cc6b55dbf6b389f3194)
2007-10-10 13:04:53 -05:00
Andrew Tridgell
990d76f7cb r3314: added a option "socket:testnonblock" to the generic socket code. If
you set this option (either on the command line using --option or in
smb.conf) then every socket recv or send will return short by random
amounts. This allows you to test that the non-blocking socket logic in
your code works correctly.

I also removed the flags argument to socket_accept(), and instead made
the new socket inherit the flags of the old socket, which makes more
sense to me.
(This used to be commit 406d356e698da01c84e8aa5b7894752b4403f63c)
2007-10-10 13:04:53 -05:00
Andrew Tridgell
34cd0662f0 r3313: in socket_accept() make the new socket non-blocking unless SOCKET_FLAG_BLOCK is set.
(This used to be commit a2d92aa431e0e9752387eebe741d9e6f376f74d7)
2007-10-10 13:04:53 -05:00
Andrew Tridgell
c6888da148 r3304: changed the API to lib/socket/ a little.
The main change is to make socket_recv() take a pre-allocated buffer,
rather than allocating one itself. This allows non-blocking users of
this API to avoid a memcpy(). As a result our messaging code is now
about 10% faster, and the ncacn_ip_tcp and ncalrpc code is also
faster.

The second change was to remove the unused mem_ctx argument from
socket_send(). Having it there implied that memory could be allocated,
which meant the caller had to worry about freeing that memory (if for
example it is sending in a tight loop using the same memory
context). Removing that unused argument keeps life simpler for users.
(This used to be commit a16e4756cd68ca8aab4ffc59d4d9db0b6e44dbd1)
2007-10-10 13:04:52 -05:00
Andrew Tridgell
93c32f81e2 r3300: initialise *sendlen on failure, to allow for callers to check only for
NT_STATUS_IS_ERR()
(This used to be commit 80a109de8458420ac0b40c563f4b3bc51424d759)
2007-10-10 13:04:51 -05:00
Andrew Tridgell
1f6fd130a3 r3279: Removed MSG_DONTWAIT flags as many platform don't have it.
If a socket is non-blocking then adding MSG_DONTWAIT is pointless (it
does nothing), so all we lose is the ability to set non-blocking on a
packet-by-packet basis, which is not a very useful thing to have
anyway

if the socket is blocking then the code already adds MSG_WAITALL, so
MSG_DONTWAIT is also not needed in that case.
(This used to be commit b8a2afae67691a609b4a7a577fee3f9518adc9d2)
2007-10-10 13:04:49 -05:00
Andrew Tridgell
9d055846f2 r3278: - rewrote the client side rpc connection code to use lib/socket/
rather than doing everything itself. This greatly simplifies the
  code, although I really don't like the socket_recv() interface (it
  always allocates memory for you, which means an extra memcpy in this
  code)

- fixed several bugs in the socket_ipv4.c code, in particular client
  side code used a non-blocking connect but didn't handle EINPROGRESS,
  so it had no chance of working. Also fixed the error codes, using
  map_nt_error_from_unix()

- cleaned up and expanded map_nt_error_from_unix()

- changed interpret_addr2() to not take a mem_ctx. It makes absolutely
  no sense to allocate a fixed size 4 byte structure like this. Dozens
  of places in the code were also using interpret_addr2() incorrectly
  (precisely because the allocation made no sense)
(This used to be commit 7f2c771b0e0e98c5c9e5cf662592d64d34ff1205)
2007-10-10 13:04:49 -05:00
Andrew Tridgell
6b280c1300 r3184: don't setup socket options on unix domain sockets (our smb.conf socket options are really meant for tcp)
(This used to be commit 238febb0088f85933c869052f4f83ff31f164df1)
2007-10-10 13:04:38 -05:00
Andrew Tridgell
75ed4f7cc4 r3183: moved the unlink of the messaging unixdom socket to the messaging destructor
(This used to be commit ab222b236a091d31b1f5f2cba150a11585ab5836)
2007-10-10 13:04:37 -05:00
Jelmer Vernooij
d164190deb r3169: unlink() is called on the listening unix socket every time a child process
exits. Commenting it out until we have a clean way of doing this.
(This used to be commit fa0760dd5fa361be3b72dc4adc8b736e8a862606)
2007-10-10 13:02:29 -05:00
Andrew Tridgell
b071fe60d7 r3020: better error handling in socket_unix
(This used to be commit 64514ff5b7734667a1364de925114091fe208b3a)
2007-10-10 12:59:58 -05:00
Andrew Tridgell
6591a22614 r3016: - converted the events code to talloc
- added the new messaging system, based on unix domain sockets. It
  gets over 10k messages/second on my laptop without any socket
  cacheing, which is better than I expected.

- added a LOCAL-MESSAGING torture test
(This used to be commit 3af06478da7ab34a272226d8d9ac87e0a4940cfb)
2007-10-10 12:59:57 -05:00