[SCM] Samba Shared Repository - branch master updated

Matthieu Patou mat at samba.org
Sun Oct 10 06:57:01 MDT 2010


The branch, master has been updated
       via  9b94894 socket_wrapper: Make it work on freebsd for udp packets
       via  9d958ce build: make make tests SCREEN=1 work on freebsd
      from  f827fcd s4-libnet_vampire: Remove unused self_corrected_schema

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 9b9489479e9c429cefd58c31be4d39da8ea90057
Author: Stefan Metzmacher <metze at samba.org>
Date:   Sun Oct 10 12:29:08 2010 +0200

    socket_wrapper: Make it work on freebsd for udp packets
    
    Autobuild-User: Matthieu Patou <mat at samba.org>
    Autobuild-Date: Sun Oct 10 12:57:00 UTC 2010 on sn-devel-104

commit 9d958ce582fa760456b52d65a2deb36d8bd3794a
Author: Matthieu Patou <mat at freebsd.home.tridgell.net>
Date:   Sun Oct 10 10:12:46 2010 +1100

    build: make make tests SCREEN=1 work on freebsd

-----------------------------------------------------------------------

Summary of changes:
 lib/socket_wrapper/socket_wrapper.c |   12 +++++++++++-
 selftest/in_screen                  |   17 +++++++++++++++--
 selftest/target/Samba4.pm           |    7 +++++--
 source4/selftest/wscript            |    4 ++--
 4 files changed, 33 insertions(+), 7 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/socket_wrapper/socket_wrapper.c b/lib/socket_wrapper/socket_wrapper.c
index 9d732ee..c52d98c 100644
--- a/lib/socket_wrapper/socket_wrapper.c
+++ b/lib/socket_wrapper/socket_wrapper.c
@@ -1967,7 +1967,17 @@ _PUBLIC_ ssize_t swrap_sendto(int s, const void *buf, size_t len, int flags, con
 			si->defer_connect = 0;
 		}
 
-		ret = real_sendto(s, buf, len, flags, (struct sockaddr *)&un_addr, sizeof(un_addr));
+		/* Man page for Linux says:
+		 * "the error EISONN may be returned when they are not NULL and 0"
+		 * But in practice it's not on x86/amd64, but on other unix it is
+		 * (ie. freebsd)
+		 * So if we are already connected we send NULL/0
+		 */
+		if (si->connected) {
+			ret = real_sendto(s, buf, len, flags, NULL, 0);
+		} else {
+			ret = real_sendto(s, buf, len, flags, (struct sockaddr *)&un_addr, sizeof(un_addr));
+		}
 		break;
 	default:
 		ret = -1;
diff --git a/selftest/in_screen b/selftest/in_screen
index 8a3cc5c..927d831 100755
--- a/selftest/in_screen
+++ b/selftest/in_screen
@@ -1,10 +1,24 @@
-#!/bin/bash
+#!/usr/bin/env bash
 
 export TMPDIR="$SELFTEST_TMPDIR"
 
 SERVERNAME="$ENVNAME"
 [ -z "$SERVERNAME" ] && SERVERNAME="base"
 basedir=$TMPDIR
+osname=$(uname)
+if [ "$osname" = "Linux" ]; then
+	vars=$(mktemp)
+else
+	vars=$(mktemp -t tmpsmb)
+	function seq() {
+		dpt=$1
+		end=$2
+		while [ $dpt -le $end ]; do
+			echo "$dpt"
+			dpt=$(( $dpt + 1))
+		done
+	}
+fi
 
 [ -r $basedir/$SERVERNAME.pid ] && {
     for i in $(seq 2 100); do
@@ -19,7 +33,6 @@ rm -f $basedir/$SERVERNAME.*
 
 # set most of the environment vars we have in the screen session too
 _ENV=""
-vars=$(mktemp)
 printenv |
   egrep -v '^TERMCAP|^WINDOW|^SHELL|^STY|^SHLVL|^SAMBA_VALGRIND|\$' |
   egrep '^[A-Z]' |
diff --git a/selftest/target/Samba4.pm b/selftest/target/Samba4.pm
index 36023f2..574c015 100644
--- a/selftest/target/Samba4.pm
+++ b/selftest/target/Samba4.pm
@@ -88,6 +88,7 @@ sub check_or_start($$$)
 	POSIX::mkfifo($env_vars->{SAMBA_TEST_FIFO}, 0700);
 	unlink($env_vars->{SAMBA_TEST_LOG});
 	
+	my $pwd = `pwd`;
 	print "STARTING SAMBA for $ENV{ENVNAME}\n";
 	my $pid = fork();
 	if ($pid == 0) {
@@ -138,9 +139,11 @@ sub check_or_start($$$)
 		if (defined($ENV{SAMBA_PROCESS_MODEL})) {
 			$model = $ENV{SAMBA_PROCESS_MODEL};
 		}
-		my $ret = system("$valgrind $samba $optarg $env_vars->{CONFIGURATION} -M $model -i");
+		chomp($pwd);
+		my $cmdline = "$valgrind ${pwd}/$samba $optarg $env_vars->{CONFIGURATION} -M $model -i";
+		my $ret = system("$cmdline");
 		if ($ret == -1) {
-			print "Unable to start $samba: $ret: $!\n";
+			print "Unable to start $cmdline: $ret: $!\n";
 			exit 1;
 		}
 		my $exit = ($ret >> 8);
diff --git a/source4/selftest/wscript b/source4/selftest/wscript
index 561baeb..249db5e 100644
--- a/source4/selftest/wscript
+++ b/source4/selftest/wscript
@@ -130,8 +130,8 @@ def cmd_testonly(opt):
         server_wrapper = '../selftest/gdb_run _DUMMY=X'
 
     if Options.options.SCREEN:
-        server_wrapper = '../selftest/in_screen %s' % server_wrapper
-        os.environ['TERMINAL'] = '../selftest/in_screen'
+        server_wrapper = '%s/../selftest/in_screen %s' % (os.getcwd(), server_wrapper)
+        os.environ['TERMINAL'] = '%s/../selftest/in_screen' % os.getcwd()
     elif server_wrapper != '':
         server_wrapper = 'xterm -n server -l -e %s' % server_wrapper
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list