Re: [Samba] Hidden folder when using Windows client
On Wed, 16 May 2007, Mike Fleetwood wrote: We have folder PDL012 which behaves as though it is hidden for Windows clients only, not Linux clients, in 1 folder on 1 samba server only. Tried increasing the debugging level but didn't quite understand the ouput. The folder PDL012 does not appear in the logging when connecting from Windows client. Nothing related to hiding files is set in smb.conf, therefore defaults to off. Samba version - 3.0.20 Platform - AIX 5.2 Can anybody offer any suggestions as to why, and how to resolve? We have been doing some further testing. Using a Windows client to list a directory with a sufficient number of entries will result in one or more names being missed. Then I read through the Release Notes for Samba 3.0.20a http://www.samba.org/samba/history/samba-3.0.20a.html and saw these details: o Missing files from directory listings on AIX servers * BUG 3010: Fix missing files bug on AIX systems. This matches our symptoms. Will try upgrading. Mike -- __ __ _ _ ___ ____ ___ _ ___ ____ | \/ (_| | _ / _ \ | ___| | / _ \/ _ \| |_ _ _ _/ \/ \ _| | | |\/| | | |/ | ___| | _| | |_| __| ___| __| \/ \/| O | O / _ | |_| |_|_|_|\_\\___| |_| |\___|\___||\_/^\_/\___/\___/\___| -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/listinfo/samba
[Samba] Re: Successful migration NT4-SAMBA3 domain, anyone?
Davide Cervella [EMAIL PROTECTED] wrote in message news:[EMAIL PROTECTED] Saulius G wrote: Thanks Davide :) just one more question, did you have windows xp in your NT domain? Yes, all workstations were Win XP pro. DaC -- We have done this. It works quite well. Follow the instructions in Samba by Example. Take it step by step. There were somewhere between 20 and 30 XP pro machines. -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/listinfo/samba
[Samba] Abnormal Windows behaviour with Samba
Hello all, I am using Samba v3.0.24 on an Ubuntu Server system as a fileserver for 30 pcs. Samba is working nice but I face a problem that I can't tell if it is because of Samba or Windows. Let me explain: On the Windows terminals (XP SP2) I have changed the special folders settings in registry, so as to redirect them to samba shares instead of local folders. Among the folders I have changed is the desktop folder, the start menu and the startup folder, which now point to i.e. \\server\share\folder. I have also setup a WINS server in Samba, I have configured my dhcpd to distribute the WINS ip to the clients, I have added Netbios on Windows and I have even added the samba's ip and hostname to the Windows' HOSTS file manually. The problem is that when Windows boot, the don't find the samba share to read the special folders' contents from there. This problem occur some times, not always. The server always work good, and even if Windows fail to read the special 'network' folders, if I kill explorer.exe and re-run it, it succeeds on reading them with no problem. A friend of mine told me that I have also to setup the SyncForeground policy in Windows, so as to delay Windows on boot and have a synchronous network reading. I did so, but it didn't do the trick as well... The only 'abnormal' thing in my Samba's configuration is this line: socket options = IPTOS_LOWDELAY TCP_NODELAY SO_RCVBUF=4096 SO_SNDBUF=4096 ...which I use for tuning purposes. However, even if I leave the default (TCP_NODELAY) I have exactly the same abnormal behaviour, so I don't think that this is to blame. Do you have any suggestion to make (either in Samba's configuration or a tweak on the Windows side) so as to overcome this problem? Thank you very much in advance, Konstantinos P.S. Here is my Samba configuration: [global] unix charset = ISO-8859-7 workgroup = X-NET server string = %h fileserver browseable = No interfaces = 192.168.1.0/255.255.255.0, 127.0.0.1 bind interfaces only = Yes update encrypted = Yes null passwords = Yes passdb backend = smbpasswd:/etc/samba/smbpasswd passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n . syslog = 0 log file = /var/log/samba/log.%m smb ports = 139 max xmit = 65535 time server = Yes deadtime = 15 socket options = IPTOS_LOWDELAY TCP_NODELAY SO_RCVBUF=4096 SO_SNDBUF=4096 load printers = No show add printer wizard = No preferred master = Yes domain master = Yes wins support = Yes ldap ssl = no panic action = /usr/share/samba/panic-action %d invalid users = root hosts allow = 192.168.1.0/255.255.255.0, 127.0.0.1 hosts deny = ALL [x-net] comment = X-Net Essentials path = /s3/x-net valid users = x-admin, x-net, erebus admin users = x-admin, erebus read list = x-net write list = x-admin, erebus -- View this message in context: http://www.nabble.com/Abnormal-Windows-behaviour-with-Samba-tf3821648.html#a10819479 Sent from the Samba - General mailing list archive at Nabble.com. -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/listinfo/samba
[Samba] using standalone unix passwords ?
Which cmd.conf option let samba use (/etc/passwd,/etc/shadow) passwords without need to smnpasswd ? Thanks Yakov -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/listinfo/samba
Re: [Samba] using standalone unix passwords ?
On Saturday 26 May 2007 16:30, Yakov Lerner wrote: Which cmd.conf option let samba use (/etc/passwd,/etc/shadow) passwords without need to smnpasswd ? Thanks Yakov Please explain more clearly. Are you asking how to set up guest access? - John T. -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/listinfo/samba
Re: [Samba] using standalone unix passwords ?
On 5/27/07, John H Terpstra [EMAIL PROTECTED] wrote: On Saturday 26 May 2007 16:30, Yakov Lerner wrote: Which cmd.conf option let samba use (/etc/passwd,/etc/shadow) passwords without need to smnpasswd ? Thanks Yakov Please explain more clearly. Are you asking how to set up guest access? No. There is specific Unix user X, and client uses mount -t smbfs -o username=X,password=... ... ... Basically, only user X is supposed to access the samba. I defined security=user. But the convenient password setup for me would be the unix password of X, not the separate smbpasswd. Can I tell smb.conf to use /etc/shadow password instead of separate password defined by smbpasswd ? Yakov -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/listinfo/samba
[Samba] samba.org DNS trouble
Hello list, I think samba.org has DNS trouble! No? -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/listinfo/samba
Re: [Samba] samba.org DNS trouble
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Hello, On Sun, 27 May 2007, Gaye Abdoulaye wrote: Hello list, I think samba.org has DNS trouble! No? No... well unless you can elaborate further :) - -- Cheers Res -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFGWPaasWhAmSIQh7MRAmujAKCUZJOBNg5qlwq4nZpfC/hWU2q2nQCeI4Ag mUsEH7SbvgZP5Iaz76m2ieo= =ZZLs -END PGP SIGNATURE- -- To unsubscribe from this list go to the following URL and read the instructions: https://lists.samba.org/mailman/listinfo/samba
Rev 349: moved system specific ip code to system.c in http://samba.org/~tridge/ctdb
revno: 349 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell [EMAIL PROTECTED] branch nick: tridge timestamp: Sat 2007-05-26 14:01:08 +1000 message: moved system specific ip code to system.c modified: common/ctdb_recoverd.c recoverd.c-20070503213540-bvxuyd9jm1f7ig90-1 include/ctdb_private.h ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13 takeover/ctdb_takeover.c ctdb_takeover.c-20070525071636-a5n1ihghjtppy08r-2 takeover/system.c system.c-20070525071636-a5n1ihghjtppy08r-3 === modified file 'common/ctdb_recoverd.c' --- a/common/ctdb_recoverd.c2007-05-25 14:05:30 + +++ b/common/ctdb_recoverd.c2007-05-26 04:01:08 + @@ -666,9 +666,10 @@ return; } - /* wait for one second to collect all responses */ + /* wait for a few seconds to collect all responses */ timed_out = 0; - event_add_timed(ctdb-ev, mem_ctx, CONTROL_TIMEOUT(), timeout_func, ctdb); + event_add_timed(ctdb-ev, mem_ctx, timeval_current_ofs(3, 0), + timeout_func, ctdb); while (!timed_out) { event_loop_once(ctdb-ev); } === modified file 'include/ctdb_private.h' --- a/include/ctdb_private.h2007-05-25 11:27:26 + +++ b/include/ctdb_private.h2007-05-26 04:01:08 + @@ -894,6 +894,8 @@ /* from takeover/system.c */ int ctdb_sys_send_arp(const struct sockaddr_in *saddr, const char *iface); +int ctdb_sys_take_ip(const char *ip, const char *interface); +int ctdb_sys_release_ip(const char *ip, const char *interface); int ctdb_set_public_addresses(struct ctdb_context *ctdb, const char *alist); === modified file 'takeover/ctdb_takeover.c' --- a/takeover/ctdb_takeover.c 2007-05-25 14:21:07 + +++ b/takeover/ctdb_takeover.c 2007-05-26 04:01:08 + @@ -73,16 +73,16 @@ { int ret; struct sockaddr_in *sin = (struct sockaddr_in *)indata.dptr; - char *cmdstr; struct ctdb_takeover_arp *arp; - - cmdstr = talloc_asprintf(ctdb, ip addr add %s/32 dev %s 2 /dev/null, -inet_ntoa(sin-sin_addr), ctdb-takeover.interface); - CTDB_NO_MEMORY(ctdb, cmdstr); - - DEBUG(0,(Taking over IP : %s\n, cmdstr)); - system(cmdstr); - talloc_free(cmdstr); + char *ip = inet_ntoa(sin-sin_addr); + + DEBUG(0,(Takover of IP %s on interface %s\n, ip, ctdb-takeover.interface)); + ret = ctdb_sys_take_ip(ip, ctdb-takeover.interface); + if (ret != 0) { + DEBUG(0,(__location__ Failed to takeover IP %s on interface %s\n, +ip, ctdb-takeover.interface)); + return -1; + } if (!ctdb-takeover.last_ctx) { ctdb-takeover.last_ctx = talloc_new(ctdb); @@ -107,21 +107,22 @@ int32_t ctdb_control_release_ip(struct ctdb_context *ctdb, TDB_DATA indata) { struct sockaddr_in *sin = (struct sockaddr_in *)indata.dptr; - char *cmdstr; TDB_DATA data; char *ip = inet_ntoa(sin-sin_addr); + int ret; + + DEBUG(0,(Release of IP %s on interface %s\n, ip, ctdb-takeover.interface)); /* stop any previous arps */ talloc_free(ctdb-takeover.last_ctx); ctdb-takeover.last_ctx = NULL; - cmdstr = talloc_asprintf(ctdb, ip addr del %s/32 dev %s 2 /dev/null, -ip, ctdb-takeover.interface); - - DEBUG(0,(Releasing IP : %s\n, cmdstr)); - system(cmdstr); - - talloc_free(cmdstr); + ret = ctdb_sys_release_ip(ip, ctdb-takeover.interface); + if (ret != 0) { + DEBUG(0,(__location__ Failed to release IP %s on interface %s\n, +ip, ctdb-takeover.interface)); + return -1; + } /* send a message to all clients of this node telling them that the cluster has been reconfigured and they should === modified file 'takeover/system.c' --- a/takeover/system.c 2007-05-25 07:16:50 + +++ b/takeover/system.c 2007-05-26 04:01:08 + @@ -126,3 +126,35 @@ close(s); return 0; } + +/* + takeover an IP on an interface + */ +int ctdb_sys_take_ip(const char *ip, const char *interface) +{ + char *cmdstr; + cmdstr = talloc_asprintf(NULL, /sbin/ip addr add %s/32 dev %s 2 /dev/null, +ip, interface); + if (cmdstr == NULL) { + return -1; + } + system(cmdstr); + talloc_free(cmdstr); + return 0; +} + +/* + release an IP on an interface + */ +int ctdb_sys_release_ip(const char *ip, const char *interface) +{ + char *cmdstr; + cmdstr = talloc_asprintf(NULL, /sbin/ip addr del %s/32 dev %s 2 /dev/null, +ip, interface); + if (cmdstr == NULL) { + return -1; + } + system(cmdstr); +
Rev 351: paranoid checks for bad packets in tcp layer. Close the socket if it gets a bad packet in http://samba.org/~tridge/ctdb
revno: 351 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell [EMAIL PROTECTED] branch nick: tridge timestamp: Sat 2007-05-26 16:32:32 +1000 message: paranoid checks for bad packets in tcp layer. Close the socket if it gets a bad packet modified: common/ctdb.c ctdb.c-20061127094323-t50f58d65iaao5of-2 tcp/tcp_io.c tcp_io.c-20061128004937-x70q1cu5xzg5g2tm-3 === modified file 'common/ctdb.c' --- a/common/ctdb.c 2007-05-25 07:04:13 + +++ b/common/ctdb.c 2007-05-26 06:32:32 + @@ -347,26 +347,6 @@ ctdb-status.node_packets_recv++; - if (length sizeof(*hdr)) { - ctdb_set_error(ctdb, Bad packet length %u\n, length); - return; - } - if (length != hdr-length) { - ctdb_set_error(ctdb, Bad header length %u expected %u\n, - hdr-length, length); - return; - } - - if (hdr-ctdb_magic != CTDB_MAGIC) { - ctdb_set_error(ctdb, Non CTDB packet rejected\n); - return; - } - - if (hdr-ctdb_version != CTDB_VERSION) { - ctdb_set_error(ctdb, Bad CTDB version 0x%x rejected\n, hdr-ctdb_version); - return; - } - /* up the counter for this source node, so we know its alive */ if (ctdb_validate_vnn(ctdb, hdr-srcnode)) { /* as a special case, redirected calls don't increment the rx_cnt */ === modified file 'tcp/tcp_io.c' --- a/tcp/tcp_io.c 2007-04-28 09:35:49 + +++ b/tcp/tcp_io.c 2007-05-26 06:32:32 + @@ -34,38 +34,48 @@ void ctdb_tcp_read_cb(uint8_t *data, size_t cnt, void *args) { struct ctdb_incoming *in = talloc_get_type(args, struct ctdb_incoming); - struct ctdb_req_header *hdr; + struct ctdb_req_header *hdr = (struct ctdb_req_header *)data; if (data == NULL) { /* incoming socket has died */ - talloc_free(in); - return; + goto failed; } if (cnt sizeof(*hdr)) { - ctdb_set_error(in-ctdb, Bad packet length %u\n, (unsigned)cnt); - return; - } - hdr = (struct ctdb_req_header *)data; + DEBUG(0,(__location__ Bad packet length %u\n, (unsigned)cnt)); + goto failed; + } + + if (cnt (CTDB_TCP_ALIGNMENT-1)) { + DEBUG(0,(__location__ Length 0x%x not multiple of alignment\n, cnt)); + goto failed; + } + + if (cnt != hdr-length) { - ctdb_set_error(in-ctdb, Bad header length %u expected %u\n, - (unsigned)hdr-length, (unsigned)cnt); - return; + DEBUG(0,(__location__ Bad header length %u expected %u\n, +(unsigned)hdr-length, (unsigned)cnt)); + goto failed; } if (hdr-ctdb_magic != CTDB_MAGIC) { - ctdb_set_error(in-ctdb, Non CTDB packet rejected\n); - return; + DEBUG(0,(__location__ Non CTDB packet 0x%x rejected\n, +hdr-ctdb_magic)); + goto failed; } if (hdr-ctdb_version != CTDB_VERSION) { - ctdb_set_error(in-ctdb, Bad CTDB version 0x%x rejected\n, hdr-ctdb_version); - return; + DEBUG(0, (__location__ Bad CTDB version 0x%x rejected\n, + hdr-ctdb_version)); + goto failed; } - /* most common case - we got a whole packet in one go - tell the ctdb layer above that we have a packet */ + /* tell the ctdb layer above that we have a packet */ in-ctdb-upcalls-recv_pkt(in-ctdb, data, cnt); + return; + +failed: + talloc_free(in); } /*
Rev 353: drop any partialialy send packets when we get a socket write error in http://samba.org/~tridge/ctdb
revno: 353 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell [EMAIL PROTECTED] branch nick: tridge timestamp: Sat 2007-05-26 16:41:32 +1000 message: drop any partialialy send packets when we get a socket write error modified: common/ctdb_io.c ctdb_io.c-20070409200335-dzfc7f3rra5rcf60-1 === modified file 'common/ctdb_io.c' --- a/common/ctdb_io.c 2007-05-26 04:46:12 + +++ b/common/ctdb_io.c 2007-05-26 06:41:32 + @@ -40,6 +40,7 @@ struct ctdb_queue_pkt *next, *prev; uint8_t *data; uint32_t length; + uint32_t full_length; }; struct ctdb_queue { @@ -175,6 +176,11 @@ } if (n == -1 errno != EAGAIN errno != EWOULDBLOCK) { + if (pkt-length != pkt-full_length) { + /* partial packet sent - we have to drop it */ + DLIST_REMOVE(queue-out_queue, pkt); + talloc_free(pkt); + } talloc_free(queue-fde); queue-fde = NULL; queue-fd = -1; @@ -262,6 +268,7 @@ CTDB_NO_MEMORY(queue-ctdb, pkt-data); pkt-length = length2; + pkt-full_length = length2; if (queue-out_queue == NULL queue-fd != -1) { EVENT_FD_WRITEABLE(queue-fde);
Rev 352: show op type of badly aligned packets in tcp layer in http://samba.org/~tridge/ctdb
revno: 352 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell [EMAIL PROTECTED] branch nick: tridge timestamp: Sat 2007-05-26 16:35:41 +1000 message: show op type of badly aligned packets in tcp layer modified: tcp/tcp_io.c tcp_io.c-20061128004937-x70q1cu5xzg5g2tm-3 === modified file 'tcp/tcp_io.c' --- a/tcp/tcp_io.c 2007-05-26 06:32:32 + +++ b/tcp/tcp_io.c 2007-05-26 06:35:41 + @@ -85,5 +85,12 @@ { struct ctdb_tcp_node *tnode = talloc_get_type(node-private_data, struct ctdb_tcp_node); + struct ctdb_req_header *hdr = (struct ctdb_req_header *)data; + + if (length (CTDB_TCP_ALIGNMENT-1)) { + DEBUG(0,(__location__ Length 0x%x not multiple of alignment op %d\n, +length, hdr-operation)); + } + return ctdb_queue_send(tnode-queue, data, length); }
Rev 350: handle corrupt ctdb packets better in http://samba.org/~tridge/ctdb
revno: 350 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell [EMAIL PROTECTED] branch nick: tridge timestamp: Sat 2007-05-26 14:46:12 +1000 message: handle corrupt ctdb packets better modified: common/ctdb_io.c ctdb_io.c-20070409200335-dzfc7f3rra5rcf60-1 === modified file 'common/ctdb_io.c' --- a/common/ctdb_io.c 2007-05-15 04:08:58 + +++ b/common/ctdb_io.c 2007-05-26 04:46:12 + @@ -109,6 +109,11 @@ uint8_t *d2; uint32_t len; len = *(uint32_t *)data; + if (len == 0) { + /* bad packet! treat as EOF */ + DEBUG(0,(Invalid packet of length 0\n)); + goto failed; + } d2 = talloc_memdup(queue, data, len); if (d2 == NULL) { DEBUG(0,(read error memdup failed for %u\n, len));
Rev 354: removed bogus alignment check in http://samba.org/~tridge/ctdb
revno: 354 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell [EMAIL PROTECTED] branch nick: tridge timestamp: Sat 2007-05-26 18:13:19 +1000 message: removed bogus alignment check modified: tcp/tcp_io.c tcp_io.c-20061128004937-x70q1cu5xzg5g2tm-3 === modified file 'tcp/tcp_io.c' --- a/tcp/tcp_io.c 2007-05-26 06:35:41 + +++ b/tcp/tcp_io.c 2007-05-26 08:13:19 + @@ -85,12 +85,5 @@ { struct ctdb_tcp_node *tnode = talloc_get_type(node-private_data, struct ctdb_tcp_node); - struct ctdb_req_header *hdr = (struct ctdb_req_header *)data; - - if (length (CTDB_TCP_ALIGNMENT-1)) { - DEBUG(0,(__location__ Length 0x%x not multiple of alignment op %d\n, -length, hdr-operation)); - } - return ctdb_queue_send(tnode-queue, data, length); }
svn commit: samba r23153 - in branches/SAMBA_4_0/source/lib/messaging: .
Author: tridge Date: 2007-05-26 08:47:27 + (Sat, 26 May 2007) New Revision: 23153 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=23153 Log: a first cut at a fix for the dgram flood problem that volker found. Not sure this is the best solution, but it should work. Modified: branches/SAMBA_4_0/source/lib/messaging/messaging.c Changeset: Modified: branches/SAMBA_4_0/source/lib/messaging/messaging.c === --- branches/SAMBA_4_0/source/lib/messaging/messaging.c 2007-05-26 03:24:08 UTC (rev 23152) +++ branches/SAMBA_4_0/source/lib/messaging/messaging.c 2007-05-26 08:47:27 UTC (rev 23153) @@ -48,11 +48,12 @@ uint32_t num_types; struct idr_context *dispatch_tree; struct messaging_rec *pending; + struct messaging_rec *retry_queue; struct irpc_list *irpc; struct idr_context *idr; const char **names; struct timeval start_time; - + struct timed_event *retry_te; struct { struct event_context *ev; struct fd_event *fde; @@ -83,6 +84,7 @@ } *header; DATA_BLOB packet; + uint32_t retries; }; @@ -168,6 +170,7 @@ rec-path = msg-path; rec-header= (struct messaging_header *)packet.data; rec-packet= packet; + rec-retries = 0; if (packet.length != sizeof(*rec-header) + rec-header-length) { DEBUG(0,(messaging: bad message header size %d should be %d\n, @@ -211,6 +214,26 @@ } /* + retry backed off messages +*/ +static void msg_retry_timer(struct event_context *ev, struct timed_event *te, + struct timeval t, void *private) +{ + struct messaging_context *msg = talloc_get_type(private, + struct messaging_context); + msg-retry_te = NULL; + + /* put the messages back on the main queue */ + while (msg-retry_queue) { + struct messaging_rec *rec = msg-retry_queue; + DLIST_REMOVE(msg-retry_queue, rec); + DLIST_ADD_END(msg-pending, rec, struct messaging_rec *); + } + + EVENT_FD_WRITEABLE(msg-event.fde); +} + +/* handle a socket write event */ static void messaging_send_handler(struct messaging_context *msg) @@ -220,8 +243,23 @@ NTSTATUS status; status = try_send(rec); if (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)) { + rec-retries++; + if (rec-retries 3) { + /* we're getting continuous write errors - + backoff this record */ + DLIST_REMOVE(msg-pending, rec); + DLIST_ADD_END(msg-retry_queue, rec, + struct messaging_rec *); + if (msg-retry_te == NULL) { + msg-retry_te = + event_add_timed(msg-event.ev, msg, + timeval_current_ofs(1, 0), + msg_retry_timer, msg); + } + } break; } + rec-retries = 0; if (!NT_STATUS_IS_OK(status)) { DEBUG(1,(messaging: Lost message from %u to %u of type %u - %s\n, rec-header-from.id, rec-header-to.id, rec-header-msg_type, @@ -281,6 +319,7 @@ rec-path = msg-path; rec-header= (struct messaging_header *)packet.data; rec-packet= packet; + rec-retries = 0; if (msize != sizeof(*rec-header) + rec-header-length) { DEBUG(0,(messaging: bad message header size %d should be %d\n, @@ -415,6 +454,7 @@ return NT_STATUS_NO_MEMORY; } + rec-retries = 0; rec-msg = msg; rec-header = (struct messaging_header *)rec-packet.data; rec-header-version = MESSAGING_VERSION;
svn commit: samba r23154 - in branches: SAMBA_3_0/source SAMBA_3_0_26/source
Author: lmuelle Date: 2007-05-26 13:24:56 + (Sat, 26 May 2007) New Revision: 23154 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=23154 Log: Add INSTALLPERMS_DATA set to 0644 to install the header files with this permission set instead of 0755. Modified: branches/SAMBA_3_0/source/Makefile.in branches/SAMBA_3_0_26/source/Makefile.in Changeset: Modified: branches/SAMBA_3_0/source/Makefile.in === --- branches/SAMBA_3_0/source/Makefile.in 2007-05-26 08:47:27 UTC (rev 23153) +++ branches/SAMBA_3_0/source/Makefile.in 2007-05-26 13:24:56 UTC (rev 23154) @@ -91,8 +91,9 @@ MANDIR = @mandir@ DATADIR = @datadir@ -# The permissions to give the executables +# The permissions to give the executables and other data INSTALLPERMS = 0755 +INSTALLPERMS_DATA = 0644 # set these to where to find various files # These can be overridden by command line switches (see smbd(8)) @@ -1775,14 +1776,14 @@ -$(INSTALLLIBCMD_SH) bin/[EMAIL PROTECTED]@ $(DESTDIR)$(LIBDIR) -$(INSTALLLIBCMD_A) bin/libsmbclient.a $(DESTDIR)$(LIBDIR) @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) ${prefix}/include - -$(INSTALLCMD) $(srcdir)/include/libsmbclient.h $(DESTDIR)${prefix}/include + -$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(srcdir)/include/libsmbclient.h $(DESTDIR)${prefix}/include installlibmsrpc: installdirs libmsrpc @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(LIBDIR) -$(INSTALLLIBCMD_SH) bin/[EMAIL PROTECTED]@ $(DESTDIR)$(LIBDIR) -$(INSTALLLIBCMD_A) bin/libmsrpc.a $(DESTDIR)$(LIBDIR) @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) ${prefix}/include - -$(INSTALLCMD) $(srcdir)/include/libmsrpc.h $(DESTDIR)${prefix}/include + -$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(srcdir)/include/libmsrpc.h $(DESTDIR)${prefix}/include installlibsmbsharemodes: installdirs libsmbsharemodes @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(LIBDIR) Modified: branches/SAMBA_3_0_26/source/Makefile.in === --- branches/SAMBA_3_0_26/source/Makefile.in2007-05-26 08:47:27 UTC (rev 23153) +++ branches/SAMBA_3_0_26/source/Makefile.in2007-05-26 13:24:56 UTC (rev 23154) @@ -84,8 +84,9 @@ MANDIR = @mandir@ DATADIR = @datadir@ -# The permissions to give the executables +# The permissions to give the executables and other data INSTALLPERMS = 0755 +INSTALLPERMS_DATA = 0644 # set these to where to find various files # These can be overridden by command line switches (see smbd(8)) @@ -1653,14 +1654,14 @@ -$(INSTALLLIBCMD_SH) bin/[EMAIL PROTECTED]@ $(DESTDIR)$(LIBDIR) -$(INSTALLLIBCMD_A) bin/libsmbclient.a $(DESTDIR)$(LIBDIR) @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) ${prefix}/include - -$(INSTALLCMD) $(srcdir)/include/libsmbclient.h $(DESTDIR)${prefix}/include + -$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(srcdir)/include/libsmbclient.h $(DESTDIR)${prefix}/include installlibmsrpc: installdirs libmsrpc @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(LIBDIR) -$(INSTALLLIBCMD_SH) bin/[EMAIL PROTECTED]@ $(DESTDIR)$(LIBDIR) -$(INSTALLLIBCMD_A) bin/libmsrpc.a $(DESTDIR)$(LIBDIR) @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) ${prefix}/include - -$(INSTALLCMD) $(srcdir)/include/libmsrpc.h $(DESTDIR)${prefix}/include + -$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(srcdir)/include/libmsrpc.h $(DESTDIR)${prefix}/include installlibsmbsharemodes: installdirs libsmbsharemodes @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(LIBDIR)
svn commit: samba r23155 - in branches: SAMBA_3_0/source SAMBA_3_0_26/source
Author: lmuelle Date: 2007-05-26 13:30:45 + (Sat, 26 May 2007) New Revision: 23155 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=23155 Log: Rename INSTALLPERMS to INSTALLPERMS_BIN to differenciate clearer from INSTALLPERMS_DATA. Modified: branches/SAMBA_3_0/source/Makefile.in branches/SAMBA_3_0_26/source/Makefile.in Changeset: Modified: branches/SAMBA_3_0/source/Makefile.in === --- branches/SAMBA_3_0/source/Makefile.in 2007-05-26 13:24:56 UTC (rev 23154) +++ branches/SAMBA_3_0/source/Makefile.in 2007-05-26 13:30:45 UTC (rev 23155) @@ -92,7 +92,7 @@ DATADIR = @datadir@ # The permissions to give the executables and other data -INSTALLPERMS = 0755 +INSTALLPERMS_BIN = 0755 INSTALLPERMS_DATA = 0644 # set these to where to find various files @@ -1728,28 +1728,28 @@ # is not used installdirs: - @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(BINDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(PRIVATEDIR) $(PIDDIR) $(LOCKDIR) $(MANDIR) + @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(BINDIR) $(SBINDIR) $(LIBDIR) $(VARDIR) $(PRIVATEDIR) $(PIDDIR) $(LOCKDIR) $(MANDIR) installservers: all installdirs - @$(SHELL) script/installbin.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(SBINDIR) $(SBIN_PROGS) + @$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(SBINDIR) $(SBIN_PROGS) installbin: all installdirs - @$(SHELL) script/installbin.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(BINDIR) $(BIN_PROGS) + @$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(BINDIR) $(BIN_PROGS) installcifsmount: @CIFSMOUNT_PROGS@ - @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS) $(DESTDIR) $(ROOTSBINDIR) - @$(SHELL) script/installbin.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(ROOTSBINDIR) @CIFSMOUNT_PROGS@ + @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(ROOTSBINDIR) + @$(SHELL) script/installbin.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(ROOTSBINDIR) @CIFSMOUNT_PROGS@ # Some symlinks are required for the 'probing' of modules. # This mechanism should go at some point.. installmodules: modules installdirs - @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(VFSLIBDIR) $(VFS_MODULES) - @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(PDBLIBDIR) $(PDB_MODULES) - @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(RPCLIBDIR) $(RPC_MODULES) - @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(IDMAPLIBDIR) $(IDMAP_MODULES) - @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(NSSINFOLIBDIR) $(NSS_INFO_MODULES) - @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(CHARSETLIBDIR) $(CHARSET_MODULES) - @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS) $(DESTDIR) $(prefix) $(AUTHLIBDIR) $(AUTH_MODULES) + @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(VFSLIBDIR) $(VFS_MODULES) + @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(PDBLIBDIR) $(PDB_MODULES) + @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(RPCLIBDIR) $(RPC_MODULES) + @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(IDMAPLIBDIR) $(IDMAP_MODULES) + @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(NSSINFOLIBDIR) $(NSS_INFO_MODULES) + @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(CHARSETLIBDIR) $(CHARSET_MODULES) + @$(SHELL) $(srcdir)/script/installmodules.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(prefix) $(AUTHLIBDIR) $(AUTH_MODULES) @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(PDBLIBDIR) [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(PDBLIBDIR) [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(PDBLIBDIR) [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ @@ -1760,7 +1760,7 @@ @$(SHELL) $(srcdir)/script/linkmodules.sh $(DESTDIR)$(NSSINFOLIBDIR) ../idmap/[EMAIL PROTECTED]@ [EMAIL PROTECTED]@ [EMAIL PROTECTED]@ installscripts: installdirs - @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS) $(DESTDIR)$(BINDIR) $(SCRIPTS) + @$(SHELL) $(srcdir)/script/installscripts.sh $(INSTALLPERMS_BIN) $(DESTDIR)$(BINDIR) $(SCRIPTS) installdat: installdirs @$(SHELL) $(srcdir)/script/installdat.sh $(DESTDIR) $(LIBDIR) $(srcdir) @@ -1772,34 +1772,34 @@ @$(SHELL)
svn commit: samba r23156 - in branches: SAMBA_3_0/source SAMBA_3_0_26/source
Author: lmuelle Date: 2007-05-26 13:33:56 + (Sat, 26 May 2007) New Revision: 23156 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=23156 Log: Install the smb_share_modes.h header file. Modified: branches/SAMBA_3_0/source/Makefile.in branches/SAMBA_3_0_26/source/Makefile.in Changeset: Modified: branches/SAMBA_3_0/source/Makefile.in === --- branches/SAMBA_3_0/source/Makefile.in 2007-05-26 13:30:45 UTC (rev 23155) +++ branches/SAMBA_3_0/source/Makefile.in 2007-05-26 13:33:56 UTC (rev 23156) @@ -1789,6 +1789,7 @@ @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR) -$(INSTALLLIBCMD_SH) bin/[EMAIL PROTECTED]@ $(DESTDIR)$(LIBDIR) -$(INSTALLLIBCMD_A) bin/libsmbsharemodes.a $(DESTDIR)$(LIBDIR) + -$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(srcdir)/include/smb_share_modes.h $(DESTDIR)${prefix}/include installlibaddns: installdirs libaddns @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR) Modified: branches/SAMBA_3_0_26/source/Makefile.in === --- branches/SAMBA_3_0_26/source/Makefile.in2007-05-26 13:30:45 UTC (rev 23155) +++ branches/SAMBA_3_0_26/source/Makefile.in2007-05-26 13:33:56 UTC (rev 23156) @@ -1667,6 +1667,7 @@ @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR) -$(INSTALLLIBCMD_SH) bin/[EMAIL PROTECTED]@ $(DESTDIR)$(LIBDIR) -$(INSTALLLIBCMD_A) bin/libsmbsharemodes.a $(DESTDIR)$(LIBDIR) + -$(INSTALLCMD) -m $(INSTALLPERMS_DATA) $(srcdir)/include/smb_share_modes.h $(DESTDIR)${prefix}/include installlibaddns: installdirs libaddns @$(SHELL) $(srcdir)/script/installdirs.sh $(INSTALLPERMS_BIN) $(DESTDIR) $(LIBDIR)
svn commit: samba r23157 - in branches/SAMBA_4_0/source/lib/talloc: .
Author: jelmer Date: 2007-05-26 16:55:08 + (Sat, 26 May 2007) New Revision: 23157 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=23157 Log: Add news file for talloc. Added: branches/SAMBA_4_0/source/lib/talloc/NEWS Changeset: Added: branches/SAMBA_4_0/source/lib/talloc/NEWS === --- branches/SAMBA_4_0/source/lib/talloc/NEWS 2007-05-26 13:33:56 UTC (rev 23156) +++ branches/SAMBA_4_0/source/lib/talloc/NEWS 2007-05-26 16:55:08 UTC (rev 23157) @@ -0,0 +1,13 @@ +1.0.1 26 May 2007 + + BUGS + + * Set name of correctly when using talloc_append_string() (metze) + + LICENSE + + * Change license of files in lib/replace to LGPL (was GPL). (jelmer) + +1.0.0 30 April 2007 + + Initial release.
svn commit: samba r23158 - in branches/SAMBA_4_0/source/lib/talloc: .
Author: jelmer Date: 2007-05-26 16:56:54 + (Sat, 26 May 2007) New Revision: 23158 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=23158 Log: Set version to 1.0.1. Modified: branches/SAMBA_4_0/source/lib/talloc/configure.ac Changeset: Modified: branches/SAMBA_4_0/source/lib/talloc/configure.ac === --- branches/SAMBA_4_0/source/lib/talloc/configure.ac 2007-05-26 16:55:08 UTC (rev 23157) +++ branches/SAMBA_4_0/source/lib/talloc/configure.ac 2007-05-26 16:56:54 UTC (rev 23158) @@ -1,5 +1,5 @@ AC_PREREQ(2.50) -AC_INIT(talloc, 1.0) +AC_INIT(talloc, 1.0.1) AC_CONFIG_SRCDIR([talloc.c]) AC_SUBST(datarootdir) AC_CONFIG_HEADER(config.h)
svn commit: samba r23159 - in tags: . TALLOC_1_0_1
Author: jelmer Date: 2007-05-26 16:57:27 + (Sat, 26 May 2007) New Revision: 23159 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=23159 Log: Tag talloc 1.0.1 Added: tags/TALLOC_1_0_1/ tags/TALLOC_1_0_1/NEWS tags/TALLOC_1_0_1/configure.ac Removed: tags/TALLOC_1_0_1/configure.ac Changeset: Copied: tags/TALLOC_1_0_1 (from rev 23156, branches/SAMBA_4_0/source/lib/talloc) Copied: tags/TALLOC_1_0_1/NEWS (from rev 23157, branches/SAMBA_4_0/source/lib/talloc/NEWS) Deleted: tags/TALLOC_1_0_1/configure.ac === --- branches/SAMBA_4_0/source/lib/talloc/configure.ac 2007-05-26 13:33:56 UTC (rev 23156) +++ tags/TALLOC_1_0_1/configure.ac 2007-05-26 16:57:27 UTC (rev 23159) @@ -1,18 +0,0 @@ -AC_PREREQ(2.50) -AC_INIT(talloc, 1.0) -AC_CONFIG_SRCDIR([talloc.c]) -AC_SUBST(datarootdir) -AC_CONFIG_HEADER(config.h) - -AC_LIBREPLACE_ALL_CHECKS - -m4_include(libtalloc.m4) - -AC_PATH_PROG(XSLTPROC,xsltproc) -DOC_TARGET= -if test -n $XSLTPROC; then - DOC_TARGET=doc -fi -AC_SUBST(DOC_TARGET) - -AC_OUTPUT(Makefile talloc.pc) Copied: tags/TALLOC_1_0_1/configure.ac (from rev 23158, branches/SAMBA_4_0/source/lib/talloc/configure.ac)
svn commit: samba r23160 - in tags/TALLOC_1_0_1: .
Author: jelmer Date: 2007-05-26 16:57:53 + (Sat, 26 May 2007) New Revision: 23160 WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=revroot=sambarev=23160 Log: Add libreplace. Added: tags/TALLOC_1_0_1/libreplace/ Changeset: Copied: tags/TALLOC_1_0_1/libreplace (from rev 23156, branches/SAMBA_4_0/source/lib/replace)
Build status as of Sun May 27 00:00:03 2007
URL: http://build.samba.org/ --- /home/build/master/cache/broken_results.txt.old 2007-05-26 00:02:37.0 + +++ /home/build/master/cache/broken_results.txt 2007-05-27 00:01:48.0 + @@ -1,4 +1,4 @@ -Build status as of Sat May 26 00:00:02 2007 +Build status as of Sun May 27 00:00:03 2007 Build counts: Tree Total Broken Panic @@ -17,9 +17,9 @@ samba0 0 0 samba-docs 0 0 0 samba-gtk3 2 0 -samba4 33 24 4 -samba_3_036 29 0 +samba4 33 22 4 +samba_3_036 18 0 smb-build33 32 0 -talloc 35 5 0 -tdb 35 5 0 +talloc 36 6 0 +tdb 34 5 0
Rev 355: tweak timeouts in http://samba.org/~tridge/ctdb
revno: 355 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell [EMAIL PROTECTED] branch nick: tridge timestamp: Sun 2007-05-27 09:43:25 +1000 message: tweak timeouts modified: common/ctdb_recoverd.c recoverd.c-20070503213540-bvxuyd9jm1f7ig90-1 include/ctdb_private.h ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13 === modified file 'common/ctdb_recoverd.c' --- a/common/ctdb_recoverd.c2007-05-26 04:01:08 + +++ b/common/ctdb_recoverd.c2007-05-26 23:43:25 + @@ -36,6 +36,7 @@ } #define CONTROL_TIMEOUT() timeval_current_ofs(5, 0) +#define MONITOR_TIMEOUT() timeval_current_ofs(1, 0) static int set_recovery_mode(struct ctdb_context *ctdb, struct ctdb_node_map *nodemap, uint32_t rec_mode) { @@ -699,7 +700,7 @@ /* we only check for recovery once every second */ timed_out = 0; - event_add_timed(ctdb-ev, mem_ctx, CONTROL_TIMEOUT(), timeout_func, ctdb); + event_add_timed(ctdb-ev, mem_ctx, MONITOR_TIMEOUT(), timeout_func, ctdb); while (!timed_out) { event_loop_once(ctdb-ev); } === modified file 'include/ctdb_private.h' --- a/include/ctdb_private.h2007-05-26 04:01:08 + +++ b/include/ctdb_private.h2007-05-26 23:43:25 + @@ -334,7 +334,7 @@ #define CTDB_TRAVERSE_TIMEOUT 20 /* timeout between dead-node monitoring events */ -#define CTDB_MONITORING_TIMEOUT 3 +#define CTDB_MONITORING_TIMEOUT 2 /* number of monitoring timeouts before a node is considered dead */ #define CTDB_MONITORING_DEAD_COUNT 2
Rev 356: added function to send a raw tcp ack packet in http://samba.org/~tridge/ctdb
revno: 356 revision-id: [EMAIL PROTECTED] parent: [EMAIL PROTECTED] committer: Andrew Tridgell [EMAIL PROTECTED] branch nick: tridge timestamp: Sun 2007-05-27 13:39:36 +1000 message: added function to send a raw tcp ack packet modified: takeover/system.c system.c-20070525071636-a5n1ihghjtppy08r-3 === modified file 'takeover/system.c' --- a/takeover/system.c 2007-05-26 04:01:08 + +++ b/takeover/system.c 2007-05-27 03:39:36 + @@ -28,6 +28,7 @@ #include net/if_arp.h + /* send gratuitous arp reply after we have taken over an ip address @@ -44,7 +45,6 @@ unsigned char buffer[64]; /*minimum eth frame size */ char *ptr; - /* for now, we only handle AF_INET addresses */ if (saddr-sin_family != AF_INET) { DEBUG(0,(__location__ not an ipv4 address\n)); @@ -53,7 +53,7 @@ s = socket(AF_INET, SOCK_PACKET, htons(ETHERTYPE_ARP)); if (s == -1){ - DEBUG(0,(__location__ failed to open raw socket\n)); + DEBUG(0,(__location__ failed to open raw socket\n)); return -1; } @@ -128,6 +128,87 @@ } /* + simple IP checksum - assumes data is multiple of 2 bytes long + */ +static uint16_t ip_checksum(uint16_t *data, size_t n) +{ + uint16_t sum=0; + while (n--) { + sum += ntohs(*data); + data++; + } + if (sum == 0) { + return 0x; + } + return htons(sum); +} + +/* + send tcp ack packet from the specified IP/port to the specified + destination IP/port. + + This is used to trigger the receiving host into sending its own ACK, + which should trigger early detection of TCP reset by the client + after IP takeover + */ +int ctdb_sys_send_ack(const struct sockaddr_in *dest, + const struct sockaddr_in *src) +{ + int s, ret; + uint32_t one = 1; + struct { + struct iphdr ip; + struct tcphdr tcp; + } pkt; + + /* for now, we only handle AF_INET addresses */ + if (src-sin_family != AF_INET || dest-sin_family != AF_INET) { + DEBUG(0,(__location__ not an ipv4 address\n)); + return -1; + } + + s = socket(AF_INET, SOCK_RAW, htons(IPPROTO_RAW)); + if (s == -1) { + DEBUG(0,(__location__ failed to open raw socket (%s)\n, +strerror(errno))); + return -1; + } + + ret = setsockopt(s, SOL_IP, IP_HDRINCL, one, sizeof(one)); + if (ret != 0) { + DEBUG(0,(__location__ failed to setup IP headers (%s)\n, +strerror(errno))); + close(s); + return -1; + } + + ZERO_STRUCT(pkt); + pkt.ip.version = 4; + pkt.ip.ihl = sizeof(pkt.ip)/4; + pkt.ip.tot_len = sizeof(pkt); + pkt.ip.ttl = 255; + pkt.ip.protocol = IPPROTO_TCP; + pkt.ip.saddr= src-sin_addr.s_addr; + pkt.ip.daddr= dest-sin_addr.s_addr; + pkt.ip.check= ip_checksum((uint16_t *)pkt.ip, sizeof(pkt.ip)/2); + + pkt.tcp.source = src-sin_port; + pkt.tcp.dest = dest-sin_port; + pkt.tcp.ack = 1; + pkt.tcp.check= ip_checksum((uint16_t *)pkt.tcp, sizeof(pkt.tcp)/2); + + ret = sendto(3, pkt, sizeof(pkt), 0, dest, sizeof(*dest)); + if (ret != 0) { + DEBUG(0,(__location__ failed sendto (%s)\n, strerror(errno))); + } + close(s); + + return ret; +} + + + +/* takeover an IP on an interface */ int ctdb_sys_take_ip(const char *ip, const char *interface)