mirror of
https://github.com/samba-team/samba.git
synced 2025-08-04 08:22:08 +03:00
This commit was manufactured by cvs2svn to create branch 'SAMBA_3_0'.
This commit is contained in:
487
docs/htmldocs/vfstest.1.html
Normal file
487
docs/htmldocs/vfstest.1.html
Normal file
@ -0,0 +1,487 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
||||
<HTML
|
||||
><HEAD
|
||||
><TITLE
|
||||
>vfstest</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
|
||||
"></HEAD
|
||||
><BODY
|
||||
CLASS="REFENTRY"
|
||||
BGCOLOR="#FFFFFF"
|
||||
TEXT="#000000"
|
||||
LINK="#0000FF"
|
||||
VLINK="#840084"
|
||||
ALINK="#0000FF"
|
||||
><H1
|
||||
><A
|
||||
NAME="VFSTEST">vfstest</H1
|
||||
><DIV
|
||||
CLASS="REFNAMEDIV"
|
||||
><A
|
||||
NAME="AEN5"
|
||||
></A
|
||||
><H2
|
||||
>Name</H2
|
||||
>vfstest -- tool for testing samba VFS modules </DIV
|
||||
><DIV
|
||||
CLASS="REFSYNOPSISDIV"
|
||||
><A
|
||||
NAME="AEN8"><H2
|
||||
>Synopsis</H2
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>vfstest</B
|
||||
> [-d debuglevel] [-c command] [-l logfile] [-h]</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN15"
|
||||
></A
|
||||
><H2
|
||||
>DESCRIPTION</H2
|
||||
><P
|
||||
>This tool is part of the <A
|
||||
HREF="samba.7.html"
|
||||
TARGET="_top"
|
||||
> Samba</A
|
||||
> suite.</P
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>vfstest</B
|
||||
> is a small command line
|
||||
utility that has the ability to test dso samba VFS modules. It gives the
|
||||
user the ability to call the various VFS functions manually and
|
||||
supports cascaded VFS modules.
|
||||
</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN21"
|
||||
></A
|
||||
><H2
|
||||
>OPTIONS</H2
|
||||
><P
|
||||
></P
|
||||
><DIV
|
||||
CLASS="VARIABLELIST"
|
||||
><DL
|
||||
><DT
|
||||
>-c|--command=command</DT
|
||||
><DD
|
||||
><P
|
||||
>Execute the specified (colon-separated) commands.
|
||||
See below for the commands that are available.
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>-d|--debug=debuglevel</DT
|
||||
><DD
|
||||
><P
|
||||
><TT
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>debuglevel</I
|
||||
></TT
|
||||
> is an integer
|
||||
from 0 to 10. The default value if this parameter is
|
||||
not specified is zero.</P
|
||||
><P
|
||||
>The higher this value, the more detail will be
|
||||
logged to the log files about the activities of the
|
||||
server. At level 0, only critical errors and serious
|
||||
warnings will be logged. Level 1 is a reasonable level for
|
||||
day to day running - it generates a small amount of
|
||||
information about operations carried out.</P
|
||||
><P
|
||||
>Levels above 1 will generate considerable
|
||||
amounts of log data, and should only be used when
|
||||
investigating a problem. Levels above 3 are designed for
|
||||
use only by developers and generate HUGE amounts of log
|
||||
data, most of which is extremely cryptic.</P
|
||||
><P
|
||||
>Note that specifying this parameter here will
|
||||
override the <A
|
||||
HREF="smb.conf.5.html#loglevel"
|
||||
TARGET="_top"
|
||||
>log
|
||||
level</A
|
||||
> parameter in the <A
|
||||
HREF="smb.conf.5.html"
|
||||
TARGET="_top"
|
||||
><TT
|
||||
CLASS="FILENAME"
|
||||
>smb.conf(5)</TT
|
||||
></A
|
||||
> file.</P
|
||||
></DD
|
||||
><DT
|
||||
>-h|--help</DT
|
||||
><DD
|
||||
><P
|
||||
>Print a summary of command line options.</P
|
||||
></DD
|
||||
><DT
|
||||
>-l|--logfile=logbasename</DT
|
||||
><DD
|
||||
><P
|
||||
>File name for log/debug files. The extension
|
||||
<TT
|
||||
CLASS="CONSTANT"
|
||||
>'.client'</TT
|
||||
> will be appended. The log file is never removed
|
||||
by the client.
|
||||
</P
|
||||
></DD
|
||||
></DL
|
||||
></DIV
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN48"
|
||||
></A
|
||||
><H2
|
||||
>COMMANDS</H2
|
||||
><P
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>VFS COMMANDS</I
|
||||
></P
|
||||
><P
|
||||
></P
|
||||
><UL
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>load <module.so></B
|
||||
> - Load specified VFS module </P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>populate <char> <size></B
|
||||
> - Populate a data buffer with the specified data
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>showdata [<offset> <len>]</B
|
||||
> - Show data currently in data buffer
|
||||
</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>connect</B
|
||||
> - VFS connect()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>disconnect</B
|
||||
> - VFS disconnect()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>disk_free</B
|
||||
> - VFS disk_free()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>opendir</B
|
||||
> - VFS opendir()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>readdir</B
|
||||
> - VFS readdir()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>mkdir</B
|
||||
> - VFS mkdir()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>rmdir</B
|
||||
> - VFS rmdir()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>closedir</B
|
||||
> - VFS closedir()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>open</B
|
||||
> - VFS open()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>close</B
|
||||
> - VFS close()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>read</B
|
||||
> - VFS read()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>write</B
|
||||
> - VFS write()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>lseek</B
|
||||
> - VFS lseek()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>rename</B
|
||||
> - VFS rename()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>fsync</B
|
||||
> - VFS fsync()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>stat</B
|
||||
> - VFS stat()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>fstat</B
|
||||
> - VFS fstat()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>lstat</B
|
||||
> - VFS lstat()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>unlink</B
|
||||
> - VFS unlink()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>chmod</B
|
||||
> - VFS chmod()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>fchmod</B
|
||||
> - VFS fchmod()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>chown</B
|
||||
> - VFS chown()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>fchown</B
|
||||
> - VFS fchown()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>chdir</B
|
||||
> - VFS chdir()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>getwd</B
|
||||
> - VFS getwd()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>utime</B
|
||||
> - VFS utime()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>ftruncate</B
|
||||
> - VFS ftruncate()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>lock</B
|
||||
> - VFS lock()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>symlink</B
|
||||
> - VFS symlink()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>readlink</B
|
||||
> - VFS readlink()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>link</B
|
||||
> - VFS link()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>mknod</B
|
||||
> - VFS mknod()</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>realpath</B
|
||||
> - VFS realpath()</P
|
||||
></LI
|
||||
></UL
|
||||
><P
|
||||
><I
|
||||
CLASS="EMPHASIS"
|
||||
>GENERAL COMMANDS</I
|
||||
></P
|
||||
><P
|
||||
></P
|
||||
><UL
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>conf <smb.conf></B
|
||||
> - Load a different configuration file</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>help [<command>]</B
|
||||
> - Get list of commands or info about specified command</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>debuglevel <level></B
|
||||
> - Set debug level</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>freemem</B
|
||||
> - Free memory currently in use</P
|
||||
></LI
|
||||
><LI
|
||||
><P
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>exit</B
|
||||
> - Exit vfstest</P
|
||||
></LI
|
||||
></UL
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN179"
|
||||
></A
|
||||
><H2
|
||||
>VERSION</H2
|
||||
><P
|
||||
>This man page is correct for version 3.0 of the Samba
|
||||
suite.</P
|
||||
></DIV
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN182"
|
||||
></A
|
||||
><H2
|
||||
>AUTHOR</H2
|
||||
><P
|
||||
>The original Samba software and related utilities
|
||||
were created by Andrew Tridgell. Samba is now developed
|
||||
by the Samba Team as an Open Source project similar
|
||||
to the way the Linux kernel is developed.</P
|
||||
><P
|
||||
>The vfstest man page was written by Jelmer Vernooij.</P
|
||||
></DIV
|
||||
></BODY
|
||||
></HTML
|
||||
>
|
104
source/libsmb/namequery_dc.c
Normal file
104
source/libsmb/namequery_dc.c
Normal file
@ -0,0 +1,104 @@
|
||||
/*
|
||||
Unix SMB/CIFS implementation.
|
||||
|
||||
Winbind daemon connection manager
|
||||
|
||||
Copyright (C) Tim Potter 2001
|
||||
Copyright (C) Andrew Bartlett 2002
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
|
||||
#include "includes.h"
|
||||
|
||||
|
||||
/*
|
||||
find the DC for a domain using methods appropriate for a RPC domain
|
||||
*/
|
||||
BOOL rpc_find_dc(const char *domain, fstring srv_name, struct in_addr *ip_out)
|
||||
{
|
||||
struct in_addr *ip_list = NULL, dc_ip, exclude_ip;
|
||||
int count, i;
|
||||
BOOL list_ordered;
|
||||
BOOL use_pdc_only;
|
||||
|
||||
zero_ip(&exclude_ip);
|
||||
|
||||
use_pdc_only = must_use_pdc(domain);
|
||||
|
||||
/* Lookup domain controller name */
|
||||
|
||||
if ( use_pdc_only && get_pdc_ip(domain, &dc_ip) ) {
|
||||
DEBUG(10,("rpc_find_dc: Atempting to lookup PDC to avoid sam sync delays\n"));
|
||||
|
||||
if (name_status_find(domain, 0x1c, 0x20, dc_ip, srv_name)) {
|
||||
goto done;
|
||||
}
|
||||
/* Didn't get name, remember not to talk to this DC. */
|
||||
exclude_ip = dc_ip;
|
||||
}
|
||||
|
||||
/* get a list of all domain controllers */
|
||||
|
||||
if (!get_dc_list( domain, &ip_list, &count, &list_ordered) ) {
|
||||
DEBUG(3, ("Could not look up dc's for domain %s\n", domain));
|
||||
return False;
|
||||
}
|
||||
|
||||
/* Remove the entry we've already failed with (should be the PDC). */
|
||||
|
||||
if ( use_pdc_only ) {
|
||||
for (i = 0; i < count; i++) {
|
||||
if (ip_equal( exclude_ip, ip_list[i]))
|
||||
zero_ip(&ip_list[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/* Pick a nice close server, but only if the list was not ordered */
|
||||
if (!list_ordered && (count > 1) ) {
|
||||
qsort(ip_list, count, sizeof(struct in_addr), QSORT_CAST ip_compare);
|
||||
}
|
||||
|
||||
for (i = 0; i < count; i++) {
|
||||
if (is_zero_ip(ip_list[i]))
|
||||
continue;
|
||||
|
||||
if (name_status_find(domain, 0x1c, 0x20, ip_list[i], srv_name)) {
|
||||
dc_ip = ip_list[i];
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
SAFE_FREE(ip_list);
|
||||
|
||||
return False;
|
||||
done:
|
||||
/* We have the netbios name and IP address of a domain controller.
|
||||
Ideally we should sent a SAMLOGON request to determine whether
|
||||
the DC is alive and kicking. If we can catch a dead DC before
|
||||
performing a cli_connect() we can avoid a 30-second timeout. */
|
||||
|
||||
DEBUG(3, ("rpc_find_dc: Returning DC %s (%s) for domain %s\n", srv_name,
|
||||
inet_ntoa(dc_ip), domain));
|
||||
|
||||
*ip_out = dc_ip;
|
||||
|
||||
SAFE_FREE(ip_list);
|
||||
|
||||
return True;
|
||||
}
|
||||
|
2
source/python/examples/tdbpack/.cvsignore
Normal file
2
source/python/examples/tdbpack/.cvsignore
Normal file
@ -0,0 +1,2 @@
|
||||
*.pyc
|
||||
*.pyo
|
Reference in New Issue
Block a user