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