summaryrefslogtreecommitdiff
path: root/source4/lib/socket
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r10348: Add scons scripts for remaining subsystems. Most subsystems build now,Jelmer Vernooij1-1/+0
but final linking still fails (as does generating files asn1, et, idl and proto files) (This used to be commit 4f0d7f75b99c7f4388d8acb0838577d86baf68b5)
2007-10-10r10336: Add sconscript for a couple more subsystems.Jelmer Vernooij1-0/+6
(This used to be commit 59d4450453c25f5cce9b67b808ff0c4433c1d194)
2007-10-10r10200: added a composite_trigger_done() call that allows a composite functionAndrew Tridgell1-5/+0
to cause an event to happen immediately. This allows metzes patch for recognising IPs in resolve_name() to work, and also allows us to remove some of the other code where we currently do specific checks for is_ipaddress(). (This used to be commit 9cc000d868e1257ef6429f6f6f1f9d3c28ca330f)
2007-10-10r9705: r9685@blu: tridge | 2005-08-27 19:43:44 +1000Andrew Tridgell4-0/+4
set the backend_name on socket_accept() too (This used to be commit 10ac2732881ac73dd9cb8162beb1efd741bfe3d2)
2007-10-10r9704: r9684@blu: tridge | 2005-08-27 19:38:31 +1000Andrew Tridgell5-5/+17
don't try to call the name resolver on non-ipv4 names! (This used to be commit 4bb3d36fe6705bc625fe4122500f681ab7f2dc53)
2007-10-10r9702: r9680@blu: tridge | 2005-08-27 18:45:08 +1000Andrew Tridgell1-0/+33
- 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-10r9110: use printf againStefan Metzmacher1-2/+2
metyze (This used to be commit 99537d35cb7c2561a7ce47ac7ad602496afe3475)
2007-10-10r9106: look for something more usefull in the -lnslStefan Metzmacher1-2/+2
(this is for solaris) metze (This used to be commit f37bb2a838b83e70d50a0ed036e641ced16d8a7b)
2007-10-10r9063: - don't pollute the global $LIBS variable with -ldlStefan Metzmacher2-1/+92
- -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-10r8408: its quite common in our code to free up a connection when we get anAndrew Tridgell1-0/+27
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-10r8394: Make sure the argument to ctype is*(3) macros are unsigned char asLove Hörnquist Åstrand1-1/+1
required by ISO C99. (This used to be commit 56fd21c806e816cf4c3d23881f26474f858b45e2)
2007-10-10r8044: give a better error codeStefan Metzmacher1-3/+3
metze (This used to be commit fdbf822f1c90cba110d91720ea586ceef9de38b2)
2007-10-10r7668: - setup HAVE_ILDAP to enable the ildap backend in ldbAndrew Tridgell1-1/+2
- fixed a bug in socket_connect_ev() (This used to be commit 3f77b879a035929a843e02b798d54eba6625bde7)
2007-10-10r7660: improved error handling in socket_connect_ev() (it matters when nameAndrew Tridgell1-0/+3
resolution fails) (This used to be commit 4013c2ddea0cd03f875e2acf40d2a34344017d05)
2007-10-10r7626: a new ldap client library. Main features are:Andrew Tridgell4-5/+82
- 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-10r7476: ensure dgram sockets are created non-blocking. As they usually skipAndrew Tridgell1-0/+6
the connect() stage, we were missing this (This used to be commit f5102b886c10fead0f6bcdc4460584ae53912ebc)
2007-10-10r7227: added a socket_pending() call to abstract away the FIONREAD ioctl. ItAndrew Tridgell4-0/+40
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-10r7205: added support for sendto() on unix domain socketsAndrew Tridgell1-0/+32
(This used to be commit 35ef6e3b153f527f79539b2d99c5ff1cd034ba4b)
2007-10-10r6795: Make some functions static and remove some unused ones.Jelmer Vernooij2-7/+0
(This used to be commit 46509eb89980bfe6dabd71264d570ea356ee5a22)
2007-10-10r6562: added support for datagram unix domain sockets in the socket libraryAndrew Tridgell2-9/+26
(This used to be commit 23b2046dcb5c4593cba6964f400a2e5246fb35f7)
2007-10-10r6070: Fix typo's and fallback to "" as default user name if noJelmer Vernooij1-1/+0
other username could be guessed. (This used to be commit 7fe77cd65901776b5a78e8398547f364379259d3)
2007-10-10r5903: While I can't test IPv6, metze asked me to commit a matching changeAndrew Bartlett1-0/+3
for unknown hosts that I just did for IPv4. Andrew Bartlett (This used to be commit 7e1d82a200b3c679b727e0ef28a245389708ae2f)
2007-10-10r5898: Handle errors in the 'sync' name and IP address handling code.Andrew Bartlett1-0/+3
Andrew Bartlett (This used to be commit 6b8b40f73bd8b7ce23effc8eb1d808db77bcbf8b)
2007-10-10r5304: removed lib/socket/socket.h from includes.hAndrew Tridgell7-0/+49
(This used to be commit b902ea546d2d1327b23f40ddaeeaa8e7e3662454)
2007-10-10r5298: - got rid of pstring.h from includes.h. This at least makes it a bitAndrew Tridgell4-0/+4
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-10r5108: the beginnings of a nbtd server for Samba4. Currently just displaysAndrew Tridgell2-0/+4
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-10r5037: got rid of all of the TALLOC_DEPRECATED stuff. My apologies for theAndrew Tridgell3-3/+3
large commit. I thought this was worthwhile to get done for consistency. (This used to be commit ec32b22ed5ec224f6324f5e069d15e92e38e15c0)
2007-10-10r4831: added udp support to our generic sockets library.Andrew Tridgell5-78/+208
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-10r4753: added the ability for the generic socket library to handle asyncAndrew Tridgell5-30/+104
connect(). This required a small API change (the addition of a socket_connect_complete() method) (This used to be commit b787dd166f5cca82b3710802eefb41e0a8851fc3)
2007-10-10r4686: cerate a function to create a socket by specifying an socket_ops structStefan Metzmacher1-8/+16
metze (This used to be commit 894f402b01c8d4e0bef9c29697b8d13e5b9ea150)
2007-10-10r3753: Have some modules default to "NOT" and enable them again whenJelmer Vernooij1-0/+1
their dependencies are found (This used to be commit 8e7e98ae5fca8be8c6a0b4c543b6828c46172171)
2007-10-10r3733: More build system fixes/features:Jelmer Vernooij2-6/+3
- 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-10r3586: Fix some of the issues with the module init functions.Jelmer Vernooij3-15/+0
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-10r3482: fixed a warning and an error from the IRIX 6.4 buildAndrew Tridgell1-0/+1
(This used to be commit 8ec3cf8b2ba149b7d6a15689e9b77685c6da3179)
2007-10-10r3457: s_addr is a macro on solaris, so we can't use it in structure names. ↵Andrew Tridgell1-4/+4
arrgh. (This used to be commit 7842b23d01c53009259a2461600bd01159cecebf)
2007-10-10r3450: portability fixesAndrew Tridgell5-103/+103
- 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-10r3449: more include file reductionAndrew Tridgell1-0/+1
the ldb part isn't ideal, I will have to think of a better solution (This used to be commit 6b1f86aea8427a8e957b1aeb0ec2f507297f07cb)
2007-10-10r3443: the next stage in the include files re-organisation.Andrew Tridgell3-6/+9
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-10r3356: in the standard process model we need to make sure we close allAndrew Tridgell1-0/+22
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-10r3335: better configure support for ipv6 - thanks to a quick tutorial from metzeAndrew Tridgell1-1/+7
(This used to be commit 76c4ba6d29a6ad1e21c2d7674e1f323e8d53d627)
2007-10-10r3334: Allow disabling IPv6 support using socket:noipv6Jelmer Vernooij1-0/+4
(This used to be commit 9c13f42c1fd489a6a663f614a41c59730c18a054)
2007-10-10r3333: added configure tests for ipv6 supportAndrew Tridgell2-1/+8
(This used to be commit 9794570c6d0646cc34147bf8128802b181f658f0)
2007-10-10r3329: Add support for IPv6Jelmer Vernooij4-0/+373
(This used to be commit d8298901243ca4ce2ec420fa523c8e1407e72513)
2007-10-10r3318: generate random STATUS_MORE_ENTRIES errors (1 in 10 packets) as wellAndrew Tridgell1-2/+10
as randomly short recv/send when socket:testnonblock is enabled (This used to be commit 718175a265d34bfdbcbf0cc6b55dbf6b389f3194)
2007-10-10r3314: added a option "socket:testnonblock" to the generic socket code. IfAndrew Tridgell4-13/+30
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-10r3313: in socket_accept() make the new socket non-blocking unless ↵Andrew Tridgell2-0/+16
SOCKET_FLAG_BLOCK is set. (This used to be commit a2d92aa431e0e9752387eebe741d9e6f376f74d7)
2007-10-10r3304: changed the API to lib/socket/ a little.Andrew Tridgell4-62/+24
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-10r3300: initialise *sendlen on failure, to allow for callers to check only forAndrew Tridgell1-0/+2
NT_STATUS_IS_ERR() (This used to be commit 80a109de8458420ac0b40c563f4b3bc51424d759)
2007-10-10r3279: Removed MSG_DONTWAIT flags as many platform don't have it.Andrew Tridgell2-19/+1
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-10r3278: - rewrote the client side rpc connection code to use lib/socket/Andrew Tridgell3-101/+32
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)