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 <me...@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 <m...@samba.org>
    Autobuild-Date: Sun Oct 10 12:57:00 UTC 2010 on sn-devel-104

commit 9d958ce582fa760456b52d65a2deb36d8bd3794a
Author: Matthieu Patou <m...@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

Reply via email to