diff options
33 files changed, 2299 insertions, 1699 deletions
diff --git a/lib/talloc/talloc.mk b/lib/talloc/talloc.mk index a563d613d6..fc90f4d41e 100644 --- a/lib/talloc/talloc.mk +++ b/lib/talloc/talloc.mk @@ -1,5 +1,6 @@ TALLOC_OBJ = $(tallocdir)/talloc.o +TALLOC_SHLIB = libtalloc.$(SHLIBEXT) TALLOC_SOLIB = libtalloc.$(SHLIBEXT).$(TALLOC_VERSION) TALLOC_SONAME = libtalloc.$(SHLIBEXT).$(TALLOC_VERSION_MAJOR) TALLOC_STLIB = libtalloc.a @@ -25,6 +26,10 @@ install:: all if [ -f talloc.3 ];then ${INSTALLCMD} -m 644 talloc.3 $(DESTDIR)$(mandir)/man3; fi which swig >/dev/null 2>&1 && ${INSTALLCMD} -d $(DESTDIR)`swig -swiglib` || true which swig >/dev/null 2>&1 && ${INSTALLCMD} -m 644 talloc.i $(DESTDIR)`swig -swiglib` || true + rm -f $(DESTDIR)$(libdir)/$(TALLOC_SONAME) + ln -s $(TALLOC_SOLIB) $(DESTDIR)$(libdir)/$(TALLOC_SONAME) + rm -f $(DESTDIR)$(libdir)/$(TALLOC_SHLIB) + ln -s $(TALLOC_SOLIB) $(DESTDIR)$(libdir)/$(TALLOC_SHLIB) doc:: talloc.3 talloc.3.html diff --git a/lib/tdb/Makefile.in b/lib/tdb/Makefile.in index 3abeec3258..dc22ee3fea 100644 --- a/lib/tdb/Makefile.in +++ b/lib/tdb/Makefile.in @@ -9,6 +9,7 @@ exec_prefix = @exec_prefix@ bindir = @bindir@ includedir = @includedir@ libdir = @libdir@ +mandir = @mandir@ VPATH = @srcdir@:@libreplacedir@ srcdir = @srcdir@ builddir = @builddir@ diff --git a/lib/tdb/tdb.mk b/lib/tdb/tdb.mk index 93aa899480..ecc6f9fd08 100644 --- a/lib/tdb/tdb.mk +++ b/lib/tdb/tdb.mk @@ -61,9 +61,9 @@ doc:: manpages/tdbbackup.8 manpages/tdbdump.8 manpages/tdbtool.8 -test -z "$(XSLTPROC)" || $(XSLTPROC) -o $@ http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl $< installdocs:: - ${INSTALLCMD} -d $(DESTDIR)$(mandir)/man1 - for I in manpages/*.1; do \ - ${INSTALLCMD} -m 644 $$I $(DESTDIR)$(mandir)/man1 \ + ${INSTALLCMD} -d $(DESTDIR)$(mandir)/man8 + for I in manpages/*.8; do \ + ${INSTALLCMD} -m 644 $$I $(DESTDIR)$(mandir)/man8; \ done install-python:: build-python @@ -91,6 +91,10 @@ installheaders:: installdirs installlibs:: all installdirs cp tdb.pc $(DESTDIR)$(libdir)/pkgconfig cp $(TDB_STLIB) $(TDB_SOLIB) $(DESTDIR)$(libdir) + rm -f $(DESTDIR)$(libdir)/libtdb.$(SHLIBEXT) + ln -s $(TDB_SOLIB) $(DESTDIR)$(libdir)/libtdb.$(SHLIBEXT) + rm -f $(DESTDIR)$(libdir)/$(TDB_SONAME) + ln -s $(TDB_SOLIB) $(DESTDIR)$(libdir)/$(TDB_SONAME) $(TDB_STLIB): $(TDB_OBJ) ar -rv $(TDB_STLIB) $(TDB_OBJ) diff --git a/lib/tevent/tevent.mk b/lib/tevent/tevent.mk index 694d082c4a..57bfd81222 100644 --- a/lib/tevent/tevent.mk +++ b/lib/tevent/tevent.mk @@ -26,6 +26,10 @@ installheaders:: installdirs installlibs:: installdirs cp tevent.pc $(DESTDIR)$(libdir)/pkgconfig cp $(TEVENT_STLIB) $(TEVENT_SOLIB) $(DESTDIR)$(libdir) + rm -f $(DESTDIR)$(libdir)/$(TEVENT_SONAME) + ln -s $(TEVENT_SOLIB) $(DESTDIR)$(libdir)/$(TEVENT_SONAME) + rm -f $(DESTDIR)$(libdir)/$(TEVENT_SOBASE) + ln -s $(TEVENT_SOLIB) $(DESTDIR)$(libdir)/$(TEVENT_SOBASE) install:: all installdirs installheaders installlibs $(PYTHON_INSTALL_TARGET) diff --git a/lib/util/time.c b/lib/util/time.c index eadafe4562..571219b810 100644 --- a/lib/util/time.c +++ b/lib/util/time.c @@ -27,11 +27,6 @@ * @brief time handling functions */ -#ifndef TIME_T_MIN -/* we use 0 here, because (time_t)-1 means error */ -#define TIME_T_MIN 0 -#endif - #if (SIZEOF_LONG == 8) #define TIME_FIXUP_CONSTANT_INT 11644473600L #elif (SIZEOF_LONG_LONG == 8) @@ -40,15 +35,6 @@ -/* - * we use the INT32_MAX here as on 64 bit systems, - * gmtime() fails with INT64_MAX - */ - -#ifndef TIME_T_MAX -#define TIME_T_MAX MIN(INT32_MAX,_TYPE_MAXIMUM(time_t)) -#endif - /** External access to time_t_min and time_t_max. **/ diff --git a/lib/util/time.h b/lib/util/time.h index e40de2de3d..cf6dc1caa7 100644 --- a/lib/util/time.h +++ b/lib/util/time.h @@ -23,6 +23,20 @@ #define _PUBLIC_ #endif +#ifndef TIME_T_MIN +/* we use 0 here, because (time_t)-1 means error */ +#define TIME_T_MIN 0 +#endif + +/* + * we use the INT32_MAX here as on 64 bit systems, + * gmtime() fails with INT64_MAX + */ +#ifndef TIME_T_MAX +#define TIME_T_MAX MIN(INT32_MAX,_TYPE_MAXIMUM(time_t)) +#endif + + /* 64 bit time (100 nanosec) 1601 - cifs6.txt, section 3.5, page 30, 4 byte aligned */ typedef uint64_t NTTIME; diff --git a/source3/configure.in b/source3/configure.in index 7d34237185..e3f53b45c2 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -120,6 +120,7 @@ fi m4_include(../lib/socket_wrapper/config.m4) m4_include(../lib/nss_wrapper/config.m4) +m4_include(../lib/util/time.m4) m4_include(m4/swat.m4) @@ -2216,15 +2217,6 @@ if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro]) fi -AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[ -AC_TRY_LINK([ -#include <sys/time.h> -#include <unistd.h>], [struct timeval tv; return gettimeofday(&tv, NULL);], - samba_cv_HAVE_GETTIMEOFDAY_TZ=yes, - samba_cv_HAVE_GETTIMEOFDAY_TZ=no)]) -if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then - AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday takes a tz argument]) -fi if test x"$samba_cv_WITH_PROFILE" = x"yes"; then diff --git a/source3/include/proto.h b/source3/include/proto.h index b3921c468e..5b16120294 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1059,14 +1059,12 @@ void cli_put_dos_date3(struct cli_state *cli, char *buf, int offset, time_t unix time_t cli_make_unix_date(struct cli_state *cli, const void *date_ptr); time_t cli_make_unix_date2(struct cli_state *cli, const void *date_ptr); time_t cli_make_unix_date3(struct cli_state *cli, const void *date_ptr); -bool nt_time_equals(const NTTIME *nt1, const NTTIME *nt2); void TimeInit(void); void get_process_uptime(struct timeval *ret_time); time_t nt_time_to_unix_abs(const NTTIME *nt); time_t uint64s_nt_time_to_unix_abs(const uint64_t *src); void unix_timespec_to_nt_time(NTTIME *nt, struct timespec ts); void unix_to_nt_time_abs(NTTIME *nt, time_t t); -bool null_mtime(time_t mtime); const char *time_to_asc(const time_t t); const char *display_time(NTTIME nttime); bool nt_time_is_set(const NTTIME *nt); @@ -5396,6 +5394,7 @@ NTSTATUS rpc_transport_np_init(TALLOC_CTX *mem_ctx, struct cli_state *cli, const struct ndr_syntax_id *abstract_syntax, struct rpc_cli_transport **presult); struct cli_state *rpc_pipe_np_smb_conn(struct rpc_pipe_client *p); +void rpccli_close_np_fd(struct rpc_pipe_client *p); /* The following definitions come from rpc_client/rpc_transport_smbd.c */ @@ -5426,11 +5425,15 @@ NTSTATUS rpc_transport_smbd_init(TALLOC_CTX *mem_ctx, struct rpc_cli_smbd_conn *conn, const struct ndr_syntax_id *abstract_syntax, struct rpc_cli_transport **presult); +struct cli_state *rpc_pipe_smbd_smb_conn(struct rpc_pipe_client *p); /* The following definitions come from rpc_client/rpc_transport_sock.c */ NTSTATUS rpc_transport_sock_init(TALLOC_CTX *mem_ctx, int fd, struct rpc_cli_transport **presult); +int rpccli_set_sock_timeout(struct rpc_pipe_client *rpccli, int timeout); +void rpccli_close_sock_fd(struct rpc_pipe_client *rpccli); +bool rpc_pipe_tcp_connection_ok(struct rpc_pipe_client *rpccli); /* The following definitions come from rpc_client/cli_samr.c */ diff --git a/source3/lib/time.c b/source3/lib/time.c index a418c42dd7..5286af37fd 100644 --- a/source3/lib/time.c +++ b/source3/lib/time.c @@ -28,14 +28,6 @@ */ -#ifndef TIME_T_MIN -#define TIME_T_MIN ((time_t)0 < (time_t) -1 ? (time_t) 0 \ - : ~ (time_t) 0 << (sizeof (time_t) * CHAR_BIT - 1)) -#endif -#ifndef TIME_T_MAX -#define TIME_T_MAX (~ (time_t) 0 - TIME_T_MIN) -#endif - #define NTTIME_INFINITY (NTTIME)0x8000000000000000LL #if (SIZEOF_LONG == 8) @@ -44,53 +36,6 @@ #define TIME_FIXUP_CONSTANT_INT 11644473600LL #endif -/******************************************************************* - create a 16 bit dos packed date -********************************************************************/ -static uint16_t make_dos_date1(struct tm *t) -{ - uint16_t ret=0; - ret = (((unsigned int)(t->tm_mon+1)) >> 3) | ((t->tm_year-80) << 1); - ret = ((ret&0xFF)<<8) | (t->tm_mday | (((t->tm_mon+1) & 0x7) << 5)); - return ret; -} - -/******************************************************************* - create a 16 bit dos packed time -********************************************************************/ -static uint16_t make_dos_time1(struct tm *t) -{ - uint16_t ret=0; - ret = ((((unsigned int)t->tm_min >> 3)&0x7) | (((unsigned int)t->tm_hour) << 3)); - ret = ((ret&0xFF)<<8) | ((t->tm_sec/2) | ((t->tm_min & 0x7) << 5)); - return ret; -} - -/******************************************************************* - create a 32 bit dos packed date/time from some parameters - This takes a GMT time and returns a packed localtime structure -********************************************************************/ -static uint32_t make_dos_date(time_t unixdate, int zone_offset) -{ - struct tm *t; - uint32_t ret=0; - - if (unixdate == 0) { - return 0; - } - - unixdate -= zone_offset; - - t = gmtime(&unixdate); - if (!t) { - return 0xFFFFFFFF; - } - - ret = make_dos_date1(t); - ret = ((ret&0xFFFF)<<16) | make_dos_time1(t); - - return ret; -} /** parse a nttime as a large integer in a string and return a NTTIME @@ -245,42 +190,6 @@ char *current_timestring(TALLOC_CTX *ctx, bool hires) return timeval_string(ctx, &tv, hires); } -/******************************************************************* - Put a dos date into a buffer (time/date format). - This takes GMT time and puts local time in the buffer. -********************************************************************/ - -static void put_dos_date(char *buf,int offset,time_t unixdate, int zone_offset) -{ - uint32_t x = make_dos_date(unixdate, zone_offset); - SIVAL(buf,offset,x); -} - -/******************************************************************* - Put a dos date into a buffer (date/time format). - This takes GMT time and puts local time in the buffer. -********************************************************************/ - -static void put_dos_date2(char *buf,int offset,time_t unixdate, int zone_offset) -{ - uint32_t x = make_dos_date(unixdate, zone_offset); - x = ((x&0xFFFF)<<16) | ((x&0xFFFF0000)>>16); - SIVAL(buf,offset,x); -} - -/******************************************************************* - Put a dos 32 bit "unix like" date into a buffer. This routine takes - GMT and converts it to LOCAL time before putting it (most SMBs assume - localtime for this sort of date) -********************************************************************/ - -static void put_dos_date3(char *buf,int offset,time_t unixdate, int zone_offset) -{ - if (!null_mtime(unixdate)) { - unixdate -= zone_offset; - } - SIVAL(buf,offset,unixdate); -} /*************************************************************************** @@ -289,17 +198,17 @@ static void put_dos_date3(char *buf,int offset,time_t unixdate, int zone_offset) void srv_put_dos_date(char *buf,int offset,time_t unixdate) { - put_dos_date(buf, offset, unixdate, server_zone_offset); + push_dos_date(buf, offset, unixdate, server_zone_offset); } void srv_put_dos_date2(char *buf,int offset, time_t unixdate) { - put_dos_date2(buf, offset, unixdate, server_zone_offset); + push_dos_date2(buf, offset, unixdate, server_zone_offset); } void srv_put_dos_date3(char *buf,int offset,time_t unixdate) { - put_dos_date3(buf, offset, unixdate, server_zone_offset); + push_dos_date3(buf, offset, unixdate, server_zone_offset); } void round_timespec(enum timestamp_set_resolution res, struct timespec *ts) @@ -396,7 +305,7 @@ time_t make_unix_date2(const void *date_ptr, int zone_offset) time_t make_unix_date3(const void *date_ptr, int zone_offset) { time_t t = (time_t)IVAL(date_ptr,0); - if (!null_mtime(t)) { + if (!null_time(t)) { t += zone_offset; } return(t); @@ -530,17 +439,17 @@ struct timespec interpret_long_date(const char *p) void cli_put_dos_date(struct cli_state *cli, char *buf, int offset, time_t unixdate) { - put_dos_date(buf, offset, unixdate, cli->serverzone); + push_dos_date(buf, offset, unixdate, cli->serverzone); } void cli_put_dos_date2(struct cli_state *cli, char *buf, int offset, time_t unixdate) { - put_dos_date2(buf, offset, unixdate, cli->serverzone); + push_dos_date2(buf, offset, unixdate, cli->serverzone); } void cli_put_dos_date3(struct cli_state *cli, char *buf, int offset, time_t unixdate) { - put_dos_date3(buf, offset, unixdate, cli->serverzone); + push_dos_date3(buf, offset, unixdate, cli->serverzone); } time_t cli_make_unix_date(struct cli_state *cli, const void *date_ptr) @@ -558,14 +467,6 @@ time_t cli_make_unix_date3(struct cli_state *cli, const void *date_ptr) return make_unix_date3(date_ptr, cli->serverzone); } -/**************************************************************************** - Check if two NTTIMEs are the same. -****************************************************************************/ - -bool nt_time_equals(const NTTIME *nt1, const NTTIME *nt2) -{ - return (*nt1 == *nt2); -} /******************************************************************* Re-read the smb serverzone value. @@ -747,17 +648,6 @@ void unix_to_nt_time_abs(NTTIME *nt, time_t t) /**************************************************************************** - Check if it's a null mtime. -****************************************************************************/ - -bool null_mtime(time_t mtime) -{ - if (mtime == 0 || mtime == (time_t)0xFFFFFFFF || mtime == (time_t)-1) - return true; - return false; -} - -/**************************************************************************** Utility function that always returns a const string even if localtime and asctime fail. ****************************************************************************/ diff --git a/source3/locale/net/de.po b/source3/locale/net/de.po index 0e18172a58..e1ccb32ad7 100644 --- a/source3/locale/net/de.po +++ b/source3/locale/net/de.po @@ -8,13 +8,13 @@ msgid "" msgstr "" "Project-Id-Version: @PACKAGE@\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-08-11 09:01+0200\n" +"POT-Creation-Date: 2010-01-05 09:23+0100\n" "PO-Revision-Date: 2009-12-26 19:20+0100\n" "Last-Translator: André Hentschel <nerv@dawncrow.de>\n" +"Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language-Team: \n" #: ../../utils/net.c:103 msgid "Enter machine password: " @@ -35,219 +35,269 @@ msgid "" "This function will change the ADS Domain member machine account password in the secrets.tdb file!\n" msgstr "" -#: ../../utils/net.c:150 -#: ../../utils/net.c:228 +#: ../../utils/net.c:132 +msgid "Failed to open secrets.tdb.\n" +msgstr "" + +#: ../../utils/net.c:139 ../../utils/net.c:157 ../../utils/net_conf.c:1136 ../../utils/net_help.c:36 ../../utils/net_rap.c:161 ../../utils/net_rap.c:302 ../../utils/net_rap.c:467 ../../utils/net_rap.c:750 ../../utils/net_rap.c:891 +#: ../../utils/net_rap.c:1002 ../../utils/net_rap.c:1193 ../../utils/net_rpc.c:979 ../../utils/net_rpc.c:2820 ../../utils/net_rpc.c:4923 ../../utils/net_rpc.c:6962 ../../utils/net_rpc.c:7067 ../../utils/net_util.c:586 +msgid "Usage:\n" +msgstr "Verwendung:\n" + +#: ../../utils/net.c:141 +#, c-format +msgid "" +" net setauthuser -U user[%%password] \n" +" Set the auth user account to userpassword. Prompt for password if not specified.\n" +msgstr "" + +#: ../../utils/net.c:146 ../../utils/net.c:164 +msgid "" +" net setauthuser delete\n" +" Delete the auth user setting.\n" +msgstr "" + +#: ../../utils/net.c:159 +#, c-format +msgid "" +" net setauthuser -U user[%%password]\n" +" Set the auth user account to userpassword. Prompt for password if not specified.\n" +msgstr "" + +#: ../../utils/net.c:169 +msgid "the auth user" +msgstr "" + +#: ../../utils/net.c:171 +msgid "Failed to get the auth users password.\n" +msgstr "" + +#: ../../utils/net.c:177 +msgid "error storing auth user name\n" +msgstr "" + +#: ../../utils/net.c:183 +msgid "error storing auth user domain\n" +msgstr "" + +#: ../../utils/net.c:189 +msgid "error storing auth user password\n" +msgstr "" + +#: ../../utils/net.c:213 +msgid "No authorised user configured\n" +msgstr "" + +#: ../../utils/net.c:255 ../../utils/net.c:333 #, c-format msgid "Unable to open secrets.tdb. Can't fetch domain SID for name: %s\n" msgstr "" -#: ../../utils/net.c:163 -#: ../../utils/net.c:251 +#: ../../utils/net.c:268 ../../utils/net.c:356 #, c-format msgid "SID for domain %s is: %s\n" msgstr "" -#: ../../utils/net.c:175 +#: ../../utils/net.c:280 msgid "usage: net setlocalsid S-1-5-21-x-y-z\n" msgstr "" -#: ../../utils/net.c:195 +#: ../../utils/net.c:300 msgid "usage: net setdomainsid S-1-5-21-x-y-z\n" msgstr "" -#: ../../utils/net.c:213 +#: ../../utils/net.c:318 msgid "usage: net getdomainsid\n" msgstr "" -#: ../../utils/net.c:238 +#: ../../utils/net.c:343 msgid "Could not fetch local SID\n" msgstr "" -#: ../../utils/net.c:242 +#: ../../utils/net.c:347 #, c-format msgid "SID for local machine %s is: %s\n" msgstr "" -#: ../../utils/net.c:246 +#: ../../utils/net.c:351 msgid "Could not fetch domain SID\n" msgstr "" -#: ../../utils/net.c:263 +#: ../../utils/net.c:368 #, c-format msgid "get_maxrid: Could not search %s\n" msgstr "" -#: ../../utils/net.c:297 +#: ../../utils/net.c:402 msgid "usage: net maxrid\n" msgstr "" -#: ../../utils/net.c:302 +#: ../../utils/net.c:407 msgid "can't get current maximum rid\n" msgstr "" -#: ../../utils/net.c:306 +#: ../../utils/net.c:411 #, c-format msgid "Currently used maximum rid: %d\n" msgstr "" -#: ../../utils/net.c:317 +#: ../../utils/net.c:422 msgid "Run functions using RPC transport" msgstr "RPC Protokoll nutzen" -#: ../../utils/net.c:318 +#: ../../utils/net.c:423 msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands." msgstr "" -#: ../../utils/net.c:325 +#: ../../utils/net.c:430 msgid "Run functions using RAP transport" msgstr "RAP Protokoll nutzen" -#: ../../utils/net.c:326 +#: ../../utils/net.c:431 msgid " Use 'net help rap' to get more extensive information about 'net rap' commands." msgstr "" -#: ../../utils/net.c:333 +#: ../../utils/net.c:438 msgid "Run functions using ADS transport" msgstr "ADS Protokoll nutzen" -#: ../../utils/net.c:334 +#: ../../utils/net.c:439 msgid " Use 'net help ads' to get more extensive information about 'net ads' commands." msgstr "" -#: ../../utils/net.c:343 +#: ../../utils/net.c:448 msgid "Functions on remote opened files" msgstr "Freigegebene Dateien verwalten" -#: ../../utils/net.c:344 +#: ../../utils/net.c:449 msgid " Use 'net help file' to get more information about 'net file' commands." msgstr "" -#: ../../utils/net.c:351 +#: ../../utils/net.c:456 msgid "Functions on shares" msgstr "Freigaben verwalten" -#: ../../utils/net.c:352 +#: ../../utils/net.c:457 msgid " Use 'net help share' to get more information about 'net share' commands." msgstr "" -#: ../../utils/net.c:359 +#: ../../utils/net.c:464 msgid "Manage sessions" msgstr "Sitzungen verwalten" -#: ../../utils/net.c:360 +#: ../../utils/net.c:465 msgid " Use 'net help session' to get more information about 'net session' commands." msgstr "" -#: ../../utils/net.c:367 -#: ../../utils/net_rap.c:1291 +#: ../../utils/net.c:472 ../../utils/net_rap.c:1291 msgid "List servers in workgroup" msgstr "Server der Arbeitsgruppe auflisten" -#: ../../utils/net.c:368 +#: ../../utils/net.c:473 msgid " Use 'net help server' to get more information about 'net server' commands." msgstr "" -#: ../../utils/net.c:375 +#: ../../utils/net.c:480 msgid "List domains/workgroups on network" msgstr "Domänen/Arbeitsgruppen im Netzwerk auflisten" -#: ../../utils/net.c:376 +#: ../../utils/net.c:481 msgid " Use 'net help domain' to get more information about 'net domain' commands." msgstr "" -#: ../../utils/net.c:383 +#: ../../utils/net.c:488 msgid "Modify printer queue" msgstr "" -#: ../../utils/net.c:384 +#: ../../utils/net.c:489 msgid " Use 'net help printq' to get more information about 'net printq' commands." msgstr "" -#: ../../utils/net.c:391 +#: ../../utils/net.c:496 msgid "Manage users" msgstr "Benutzer verwalten" -#: ../../utils/net.c:392 +#: ../../utils/net.c:497 msgid " Use 'net help user' to get more information about 'net user' commands." msgstr "" -#: ../../utils/net.c:399 +#: ../../utils/net.c:504 msgid "Manage groups" msgstr "Gruppen verwalten" -#: ../../utils/net.c:400 +#: ../../utils/net.c:505 msgid " Use 'net help group' to get more information about 'net group' commands." msgstr "" -#: ../../utils/net.c:407 +#: ../../utils/net.c:512 msgid "Manage group mappings" msgstr "Gruppenzuweisungen verwalten" -#: ../../utils/net.c:408 +#: ../../utils/net.c:513 msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands." msgstr "" -#: ../../utils/net.c:415 +#: ../../utils/net.c:520 msgid "Functions on the SAM database" msgstr "" -#: ../../utils/net.c:416 +#: ../../utils/net.c:521 msgid " Use 'net help sam' to get more information about 'net sam' commands." msgstr "" -#: ../../utils/net.c:423 +#: ../../utils/net.c:528 msgid "Validate username and password" msgstr "" -#: ../../utils/net.c:424 +#: ../../utils/net.c:529 msgid " Use 'net help validate' to get more information about 'net validate' commands." msgstr "" -#: ../../utils/net.c:431 +#: ../../utils/net.c:536 msgid "Modify group memberships" msgstr "Gruppenzugehörigkeiten verwalten" -#: ../../utils/net.c:432 +#: ../../utils/net.c:537 msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands." msgstr "" -#: ../../utils/net.c:438 +#: ../../utils/net.c:543 msgid "Execute remote command on a remote OS/2 server" msgstr "Befehl auf einem entfernten OS/2 Server ausführen" -#: ../../utils/net.c:439 +#: ../../utils/net.c:544 msgid " Use 'net help admin' to get more information about 'net admin' commands." msgstr "" -#: ../../utils/net.c:445 +#: ../../utils/net.c:550 msgid "List/modify running services" msgstr "Zeige/Ändere laufende Dienste" -#: ../../utils/net.c:446 +#: ../../utils/net.c:551 msgid " Use 'net help service' to get more information about 'net service' commands." msgstr "" -#: ../../utils/net.c:453 +#: ../../utils/net.c:558 msgid "Change user password on target server" msgstr "" -#: ../../utils/net.c:454 +#: ../../utils/net.c:559 msgid " Use 'net help password' to get more information about 'net password' commands." msgstr "" -#: ../../utils/net.c:460 +#: ../../utils/net.c:565 msgid "Change the trust password" msgstr "" -#: ../../utils/net.c:461 +#: ../../utils/net.c:566 msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'." msgstr "" -#: ../../utils/net.c:467 +#: ../../utils/net.c:572 msgid "Change the secret password" msgstr "Das geheime Passwort ändern" -#: ../../utils/net.c:468 +#: ../../utils/net.c:573 msgid "" " net [options] changesecretpw\n" " Change the ADS domain member machine account password in secrets.tdb.\n" @@ -255,169 +305,193 @@ msgid "" " Requires the -f flag to work." msgstr "" -#: ../../utils/net.c:477 +#: ../../utils/net.c:583 +msgid "Set the winbind auth user" +msgstr "" + +#: ../../utils/net.c:584 +#, c-format +msgid "" +" net -U user[%%password] [-W domain] setauthuser\n" +" Set the auth user, password (and optionally domain\n" +" Will prompt for password if not given.\n" +" net setauthuser delete\n" +" Delete the existing auth user settings." +msgstr "" + +#: ../../utils/net.c:594 +msgid "Get the winbind auth user settings" +msgstr "" + +#: ../../utils/net.c:595 +msgid "" +" net getauthuser\n" +" Get the current winbind auth user settings." +msgstr "" + +#: ../../utils/net.c:601 msgid "Show/set time" msgstr "Zeigt/Setzt die Systemzeit" -#: ../../utils/net.c:478 +#: ../../utils/net.c:602 msgid " Use 'net help time' to get more information about 'net time' commands." msgstr "" -#: ../../utils/net.c:484 +#: ../../utils/net.c:608 msgid "Look up host names/IP addresses" msgstr "" -#: ../../utils/net.c:485 +#: ../../utils/net.c:609 msgid " Use 'net help lookup' to get more information about 'net lookup' commands." msgstr "" -#: ../../utils/net.c:491 +#: ../../utils/net.c:615 msgid "Join a domain/AD" msgstr "Einer Domäne/AD beitreten" -#: ../../utils/net.c:492 +#: ../../utils/net.c:616 msgid " Use 'net help join' to get more information about 'net join'." msgstr "" -#: ../../utils/net.c:498 +#: ../../utils/net.c:622 msgid "Join/unjoin (remote) machines to/from a domain/AD" msgstr "" -#: ../../utils/net.c:499 +#: ../../utils/net.c:623 msgid " Use 'net help dom' to get more information about 'net dom' commands." msgstr "" -#: ../../utils/net.c:505 +#: ../../utils/net.c:629 msgid "Operate on the cache tdb file" msgstr "" -#: ../../utils/net.c:506 +#: ../../utils/net.c:630 msgid " Use 'net help cache' to get more information about 'net cache' commands." msgstr "" -#: ../../utils/net.c:512 +#: ../../utils/net.c:636 msgid "Get the SID for the local domain" msgstr "" -#: ../../utils/net.c:513 +#: ../../utils/net.c:637 msgid " net getlocalsid" msgstr "" -#: ../../utils/net.c:518 +#: ../../utils/net.c:642 msgid "Set the SID for the local domain" msgstr "" -#: ../../utils/net.c:519 +#: ../../utils/net.c:643 msgid " net setlocalsid S-1-5-21-x-y-z" msgstr "" -#: ../../utils/net.c:524 +#: ../../utils/net.c:648 msgid "Set domain SID on member servers" msgstr "" -#: ../../utils/net.c:525 +#: ../../utils/net.c:649 msgid " net setdomainsid S-1-5-21-x-y-z" msgstr "" -#: ../../utils/net.c:530 +#: ../../utils/net.c:654 msgid "Get domain SID on member servers" msgstr "" -#: ../../utils/net.c:531 +#: ../../utils/net.c:655 msgid " net getdomainsid" msgstr "" -#: ../../utils/net.c:536 +#: ../../utils/net.c:660 msgid "Display the maximul RID currently used" msgstr "" -#: ../../utils/net.c:537 +#: ../../utils/net.c:661 msgid " net maxrid" msgstr "" -#: ../../utils/net.c:542 +#: ../../utils/net.c:666 msgid "IDmap functions" msgstr "" -#: ../../utils/net.c:543 +#: ../../utils/net.c:667 msgid " Use 'net help idmap to get more information about 'net idmap' commands." msgstr "" -#: ../../utils/net.c:549 +#: ../../utils/net.c:673 msgid "Display server status" msgstr "Zeigt den Server Status" -#: ../../utils/net.c:550 +#: ../../utils/net.c:674 msgid " Use 'net help status' to get more information about 'net status' commands." msgstr "" -#: ../../utils/net.c:556 +#: ../../utils/net.c:680 msgid "Manage user-modifiable shares" msgstr "Benutzerfreigaben verwalten" -#: ../../utils/net.c:557 +#: ../../utils/net.c:681 msgid " Use 'net help usershare to get more information about 'net usershare' commands." msgstr "" -#: ../../utils/net.c:563 +#: ../../utils/net.c:687 msgid "Display list of all users with SID" msgstr "Zeigt eine Liste aller SID-Benutzer" -#: ../../utils/net.c:564 +#: ../../utils/net.c:688 msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'." msgstr "" -#: ../../utils/net.c:570 +#: ../../utils/net.c:694 msgid "Manage Samba registry based configuration" msgstr "Konfiguration ändern" -#: ../../utils/net.c:571 +#: ../../utils/net.c:695 msgid " Use 'net help conf' to get more information about 'net conf' commands." msgstr "" -#: ../../utils/net.c:577 +#: ../../utils/net.c:701 msgid "Manage the Samba registry" msgstr "" -#: ../../utils/net.c:578 +#: ../../utils/net.c:702 msgid " Use 'net help registry' to get more information about 'net registry' commands." msgstr "" -#: ../../utils/net.c:591 +#: ../../utils/net.c:708 msgid "Process Win32 *.evt eventlog files" msgstr "Arbeitet mit Win32 *.evt Eventlog Dateien" -#: ../../utils/net.c:592 +#: ../../utils/net.c:709 msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands." msgstr "" -#: ../../utils/net.c:600 +#: ../../utils/net.c:717 msgid "Manage AFS tokens" msgstr "" -#: ../../utils/net.c:601 +#: ../../utils/net.c:718 msgid " Use 'net help afs' to get more information about 'net afs' commands." msgstr "" -#: ../../utils/net.c:609 +#: ../../utils/net.c:726 msgid "Print usage information" msgstr "Zeigt die Hilfe an" -#: ../../utils/net.c:610 +#: ../../utils/net.c:727 msgid " Use 'net help help' to list usage information for 'net' commands." msgstr "" -#: ../../utils/net.c:639 +#: ../../utils/net.c:756 msgid "Encrypt SMB transport (UNIX extended servers only)" msgstr "" -#: ../../utils/net.c:703 +#: ../../utils/net.c:824 msgid "" "\n" "Invalid ip address specified\n" msgstr "" -#: ../../utils/net.c:718 +#: ../../utils/net.c:839 #, c-format msgid "" "\n" @@ -426,28 +500,27 @@ msgstr "" "\n" "Ungültige Option %s: %s\n" -#: ../../utils/net_ads.c:52 -#: ../../utils/net_ads.c:392 +#: ../../utils/net_ads.c:53 ../../utils/net_ads.c:393 msgid "CLDAP query failed!\n" msgstr "" -#: ../../utils/net_ads.c:56 +#: ../../utils/net_ads.c:57 #, c-format msgid "" "Information for Domain Controller: %s\n" "\n" msgstr "" -#: ../../utils/net_ads.c:59 +#: ../../utils/net_ads.c:60 msgid "Response Type: " msgstr "" -#: ../../utils/net_ads.c:72 +#: ../../utils/net_ads.c:73 #, c-format msgid "GUID: %s\n" msgstr "" -#: ../../utils/net_ads.c:74 +#: ../../utils/net_ads.c:75 #, c-format msgid "" "Flags:\n" @@ -465,324 +538,293 @@ msgid "" "\tIs NT6 DC that has all secrets: %s\n" msgstr "" -#: ../../utils/net_ads.c:87 -#: ../../utils/net_ads.c:88 -#: ../../utils/net_ads.c:89 -#: ../../utils/net_ads.c:90 -#: ../../utils/net_ads.c:91 -#: ../../utils/net_ads.c:92 -#: ../../utils/net_ads.c:93 -#: ../../utils/net_ads.c:94 -#: ../../utils/net_ads.c:95 -#: ../../utils/net_ads.c:96 -#: ../../utils/net_ads.c:97 -#: ../../utils/net_ads.c:98 -#: ../../utils/net_rap.c:376 -#: ../../utils/net_rpc_sh_acct.c:203 -#: ../../utils/net_rpc_sh_acct.c:206 +#: ../../utils/net_ads.c:88 ../../utils/net_ads.c:89 ../../utils/net_ads.c:90 ../../utils/net_ads.c:91 ../../utils/net_ads.c:92 ../../utils/net_ads.c:93 ../../utils/net_ads.c:94 ../../utils/net_ads.c:95 ../../utils/net_ads.c:96 ../../utils/net_ads.c:97 +#: ../../utils/net_ads.c:98 ../../utils/net_ads.c:99 ../../utils/net_rap.c:376 ../../utils/net_rpc_sh_acct.c:204 ../../utils/net_rpc_sh_acct.c:207 msgid "yes" msgstr "Ja" -#: ../../utils/net_ads.c:87 -#: ../../utils/net_ads.c:88 -#: ../../utils/net_ads.c:89 -#: ../../utils/net_ads.c:90 -#: ../../utils/net_ads.c:91 -#: ../../utils/net_ads.c:92 -#: ../../utils/net_ads.c:93 -#: ../../utils/net_ads.c:94 -#: ../../utils/net_ads.c:95 -#: ../../utils/net_ads.c:96 -#: ../../utils/net_ads.c:97 -#: ../../utils/net_ads.c:98 -#: ../../utils/net_rap.c:376 -#: ../../utils/net_rpc_sh_acct.c:203 -#: ../../utils/net_rpc_sh_acct.c:206 +#: ../../utils/net_ads.c:88 ../../utils/net_ads.c:89 ../../utils/net_ads.c:90 ../../utils/net_ads.c:91 ../../utils/net_ads.c:92 ../../utils/net_ads.c:93 ../../utils/net_ads.c:94 ../../utils/net_ads.c:95 ../../utils/net_ads.c:96 ../../utils/net_ads.c:97 +#: ../../utils/net_ads.c:98 ../../utils/net_ads.c:99 ../../utils/net_rap.c:376 ../../utils/net_rpc_sh_acct.c:204 ../../utils/net_rpc_sh_acct.c:207 msgid "no" msgstr "Nein" -#: ../../utils/net_ads.c:101 +#: ../../utils/net_ads.c:102 #, c-format msgid "Forest:\t\t\t%s\n" msgstr "" -#: ../../utils/net_ads.c:102 +#: ../../utils/net_ads.c:103 #, c-format msgid "Domain:\t\t\t%s\n" msgstr "Domäne:\t\t\t%s\n" -#: ../../utils/net_ads.c:103 +#: ../../utils/net_ads.c:104 #, c-format msgid "Domain Controller:\t%s\n" msgstr "" -#: ../../utils/net_ads.c:105 +#: ../../utils/net_ads.c:106 #, c-format msgid "Pre-Win2k Domain:\t%s\n" msgstr "" -#: ../../utils/net_ads.c:106 +#: ../../utils/net_ads.c:107 #, c-format msgid "Pre-Win2k Hostname:\t%s\n" msgstr "" -#: ../../utils/net_ads.c:108 +#: ../../utils/net_ads.c:109 #, c-format msgid "User name:\t%s\n" msgstr "" -#: ../../utils/net_ads.c:110 +#: ../../utils/net_ads.c:111 #, c-format msgid "Server Site Name :\t\t%s\n" msgstr "" -#: ../../utils/net_ads.c:111 +#: ../../utils/net_ads.c:112 #, c-format msgid "Client Site Name :\t\t%s\n" msgstr "" -#: ../../utils/net_ads.c:113 +#: ../../utils/net_ads.c:114 #, c-format msgid "NT Version: %d\n" msgstr "NT Version: %d\n" -#: ../../utils/net_ads.c:114 +#: ../../utils/net_ads.c:115 #, c-format msgid "LMNT Token: %.2x\n" msgstr "" -#: ../../utils/net_ads.c:115 +#: ../../utils/net_ads.c:116 #, c-format msgid "LM20 Token: %.2x\n" msgstr "" -#: ../../utils/net_ads.c:130 +#: ../../utils/net_ads.c:131 msgid "" "Usage:\n" "net ads lookup\n" " Find the ADS DC using CLDAP lookup.\n" msgstr "" -#: ../../utils/net_ads.c:137 -#: ../../utils/net_ads.c:381 +#: ../../utils/net_ads.c:138 ../../utils/net_ads.c:382 msgid "Didn't find the cldap server!\n" msgstr "" -#: ../../utils/net_ads.c:160 +#: ../../utils/net_ads.c:161 msgid "" "Usage:\n" "net ads info\n" " Display information about an Active Directory server.\n" msgstr "" -#: ../../utils/net_ads.c:168 -#: ../../utils/net_ads.c:173 +#: ../../utils/net_ads.c:169 ../../utils/net_ads.c:174 msgid "Didn't find the ldap server!\n" msgstr "" -#: ../../utils/net_ads.c:182 +#: ../../utils/net_ads.c:183 msgid "Failed to get server's current time!\n" msgstr "" -#: ../../utils/net_ads.c:187 +#: ../../utils/net_ads.c:188 #, c-format msgid "LDAP server: %s\n" msgstr "" -#: ../../utils/net_ads.c:188 +#: ../../utils/net_ads.c:189 #, c-format msgid "LDAP server name: %s\n" msgstr "" -#: ../../utils/net_ads.c:189 +#: ../../utils/net_ads.c:190 #, c-format msgid "Realm: %s\n" msgstr "" -#: ../../utils/net_ads.c:190 +#: ../../utils/net_ads.c:191 #, c-format msgid "Bind Path: %s\n" msgstr "" -#: ../../utils/net_ads.c:191 +#: ../../utils/net_ads.c:192 #, c-format msgid "LDAP port: %d\n" msgstr "" -#: ../../utils/net_ads.c:192 +#: ../../utils/net_ads.c:193 #, c-format msgid "Server time: %s\n" msgstr "" -#: ../../utils/net_ads.c:195 +#: ../../utils/net_ads.c:196 #, c-format msgid "KDC server: %s\n" msgstr "" -#: ../../utils/net_ads.c:196 +#: ../../utils/net_ads.c:197 #, c-format msgid "Server time offset: %d\n" msgstr "" -#: ../../utils/net_ads.c:374 +#: ../../utils/net_ads.c:375 msgid "" "Usage:\n" "net ads workgroup\n" " Print the workgroup name\n" msgstr "" -#: ../../utils/net_ads.c:397 +#: ../../utils/net_ads.c:398 #, c-format msgid "Workgroup: %s\n" msgstr "" -#: ../../utils/net_ads.c:458 +#: ../../utils/net_ads.c:459 #, c-format msgid "ads_user_add: %s\n" msgstr "" -#: ../../utils/net_ads.c:463 +#: ../../utils/net_ads.c:464 #, c-format msgid "ads_user_add: User %s already exists\n" msgstr "" -#: ../../utils/net_ads.c:477 +#: ../../utils/net_ads.c:478 #, c-format msgid "Could not add user %s: %s\n" msgstr "" -#: ../../utils/net_ads.c:484 -#: ../../utils/net_ads.c:497 +#: ../../utils/net_ads.c:485 ../../utils/net_ads.c:498 #, c-format msgid "User %s added\n" msgstr "" #. password didn't set, delete account -#: ../../utils/net_ads.c:503 +#: ../../utils/net_ads.c:504 #, c-format msgid "Could not add user %s. Error setting password %s\n" msgstr "" -#: ../../utils/net_ads.c:551 +#: ../../utils/net_ads.c:552 #, c-format msgid "ads_user_info: failed to escape user %s\n" msgstr "" -#: ../../utils/net_ads.c:569 +#: ../../utils/net_ads.c:570 #, c-format msgid "ads_search: %s\n" msgstr "" -#: ../../utils/net_ads.c:575 +#: ../../utils/net_ads.c:576 msgid "ads_pull_uint32 failed\n" msgstr "" -#: ../../utils/net_ads.c:582 +#: ../../utils/net_ads.c:583 #, c-format msgid "ads_domain_sid: %s\n" msgstr "" -#: ../../utils/net_ads.c:642 +#: ../../utils/net_ads.c:643 #, c-format msgid "User %s does not exist.\n" msgstr "" -#: ../../utils/net_ads.c:652 +#: ../../utils/net_ads.c:653 #, c-format msgid "User %s deleted\n" msgstr "" -#: ../../utils/net_ads.c:656 +#: ../../utils/net_ads.c:657 #, c-format msgid "Error deleting user %s: %s\n" msgstr "" -#: ../../utils/net_ads.c:669 +#: ../../utils/net_ads.c:670 msgid "Add an AD user" msgstr "" -#: ../../utils/net_ads.c:670 +#: ../../utils/net_ads.c:671 msgid "" "net ads user add\n" " Add an AD user" msgstr "" -#: ../../utils/net_ads.c:677 +#: ../../utils/net_ads.c:678 msgid "Display information about an AD user" msgstr "" -#: ../../utils/net_ads.c:678 +#: ../../utils/net_ads.c:679 msgid "" "net ads user info\n" " Display information about an AD user" msgstr "" -#: ../../utils/net_ads.c:685 +#: ../../utils/net_ads.c:686 msgid "Delete an AD user" msgstr "" -#: ../../utils/net_ads.c:686 +#: ../../utils/net_ads.c:687 msgid "" "net ads user delete\n" " Delete an AD user" msgstr "" -#: ../../utils/net_ads.c:699 +#: ../../utils/net_ads.c:700 msgid "" "Usage:\n" "net ads user\n" " List AD users\n" msgstr "" -#: ../../utils/net_ads.c:711 -#: ../../utils/net_rap.c:901 -#: ../../utils/net_rpc.c:852 +#: ../../utils/net_ads.c:712 ../../utils/net_rap.c:901 ../../utils/net_rpc.c:871 msgid "" "\n" "User name Comment\n" "-----------------------------\n" msgstr "" -#: ../../utils/net_ads.c:751 +#: ../../utils/net_ads.c:752 #, c-format msgid "ads_group_add: %s\n" msgstr "" -#: ../../utils/net_ads.c:756 +#: ../../utils/net_ads.c:757 #, c-format msgid "ads_group_add: Group %s already exists\n" msgstr "" -#: ../../utils/net_ads.c:769 +#: ../../utils/net_ads.c:770 #, c-format msgid "Group %s added\n" msgstr "" -#: ../../utils/net_ads.c:772 +#: ../../utils/net_ads.c:773 #, c-format msgid "Could not add group %s: %s\n" msgstr "" -#: ../../utils/net_ads.c:801 +#: ../../utils/net_ads.c:802 #, c-format msgid "Group %s does not exist.\n" msgstr "" -#: ../../utils/net_ads.c:811 +#: ../../utils/net_ads.c:812 #, c-format msgid "Group %s deleted\n" msgstr "" -#: ../../utils/net_ads.c:815 +#: ../../utils/net_ads.c:816 #, c-format msgid "Error deleting group %s: %s\n" msgstr "" -#: ../../utils/net_ads.c:828 +#: ../../utils/net_ads.c:829 msgid "Add an AD group" msgstr "AD Gruppe hinzufügen" -#: ../../utils/net_ads.c:829 +#: ../../utils/net_ads.c:830 msgid "" "net ads group add\n" " Add an AD group" @@ -790,11 +832,11 @@ msgstr "" "net ads group add\n" " AD Gruppe hinzufügen" -#: ../../utils/net_ads.c:836 +#: ../../utils/net_ads.c:837 msgid "Delete an AD group" msgstr "AD Gruppe entfernen" -#: ../../utils/net_ads.c:837 +#: ../../utils/net_ads.c:838 msgid "" "net ads group delete\n" " Delete an AD group" @@ -802,15 +844,14 @@ msgstr "" "net ads group delete\n" " AD Gruppe entfernen" -#: ../../utils/net_ads.c:850 +#: ../../utils/net_ads.c:851 msgid "" "Usage:\n" "net ads group\n" " List AD groups\n" msgstr "" -#: ../../utils/net_ads.c:862 -#: ../../utils/net_rpc.c:2230 +#: ../../utils/net_ads.c:863 ../../utils/net_rpc.c:2249 msgid "" "\n" "Group name Comment\n" @@ -820,54 +861,53 @@ msgstr "" "Gruppenname Kommentar\n" "-----------------------------\n" -#: ../../utils/net_ads.c:884 +#: ../../utils/net_ads.c:885 msgid "" "Usage:\n" "net ads status\n" " Display machine account details\n" msgstr "" -#: ../../utils/net_ads.c:896 +#: ../../utils/net_ads.c:897 #, c-format msgid "ads_find_machine_acct: %s\n" msgstr "" -#: ../../utils/net_ads.c:902 +#: ../../utils/net_ads.c:903 #, c-format msgid "No machine account for '%s' found\n" msgstr "" -#: ../../utils/net_ads.c:926 +#: ../../utils/net_ads.c:927 msgid "" "Usage:\n" "net ads leave\n" " Leave an AD domain\n" msgstr "" -#: ../../utils/net_ads.c:933 +#: ../../utils/net_ads.c:934 msgid "No realm set, are we joined ?\n" msgstr "" -#: ../../utils/net_ads.c:938 -#: ../../utils/net_ads.c:1260 +#: ../../utils/net_ads.c:939 ../../utils/net_ads.c:1265 msgid "Could not initialise talloc context.\n" msgstr "" -#: ../../utils/net_ads.c:948 +#: ../../utils/net_ads.c:949 msgid "Could not initialise unjoin context.\n" msgstr "" -#: ../../utils/net_ads.c:968 +#: ../../utils/net_ads.c:969 #, c-format msgid "Failed to leave domain: %s\n" msgstr "" -#: ../../utils/net_ads.c:975 +#: ../../utils/net_ads.c:976 #, c-format msgid "Deleted account for '%s' in realm '%s'\n" msgstr "" -#: ../../utils/net_ads.c:982 +#: ../../utils/net_ads.c:983 #, c-format msgid "Disabled account for '%s' in realm '%s'\n" msgstr "" @@ -875,61 +915,60 @@ msgstr "" #. Based on what we requseted, we shouldn't get here, but if #. we did, it means the secrets were removed, and therefore #. we have left the domain -#: ../../utils/net_ads.c:991 +#: ../../utils/net_ads.c:992 #, c-format msgid "Machine '%s' Left domain '%s'\n" msgstr "" -#: ../../utils/net_ads.c:1035 +#: ../../utils/net_ads.c:1040 msgid "" "Usage:\n" "net ads testjoin\n" " Test if the existing join is ok\n" msgstr "" -#: ../../utils/net_ads.c:1044 +#: ../../utils/net_ads.c:1049 #, c-format msgid "Join to domain is not valid: %s\n" msgstr "" -#: ../../utils/net_ads.c:1049 +#: ../../utils/net_ads.c:1054 #, fuzzy, c-format msgid "Join is OK\n" msgstr "Beitritt ist OK\n" -#: ../../utils/net_ads.c:1060 +#: ../../utils/net_ads.c:1065 msgid "Host is not configured as a member server.\n" msgstr "" -#: ../../utils/net_ads.c:1065 -#: ../../utils/net_rpc.c:436 +#: ../../utils/net_ads.c:1070 ../../utils/net_rpc.c:455 #, c-format msgid "Our netbios name can be at most 15 chars long, \"%s\" is %u chars long\n" msgstr "" -#: ../../utils/net_ads.c:1072 +#: ../../utils/net_ads.c:1077 #, c-format msgid "realm must be set in in %s for ADS join to succeed.\n" msgstr "" -#: ../../utils/net_ads.c:1105 +#: ../../utils/net_ads.c:1110 #, c-format msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n" msgstr "" -#: ../../utils/net_ads.c:1212 +#: ../../utils/net_ads.c:1217 msgid "" "net ads join [options]\n" "Valid options:\n" msgstr "" -#: ../../utils/net_ads.c:1214 +#: ../../utils/net_ads.c:1219 msgid "" " createupn[=UPN] Set the userPrincipalName attribute during the join.\n" " The deault UPN is in the form host/netbiosname@REALM.\n" msgstr "" -#: ../../utils/net_ads.c:1216 +#: ../../utils/net_ads.c:1221 msgid "" " createcomputer=OU Precreate the computer account in a specific OU.\n" " The OU string read from top to bottom without RDNs and delimited by a '/'.\n" @@ -938,11 +977,11 @@ msgid "" " need to be doubled or even quadrupled. It is not used as a separator.\n" msgstr "" -#: ../../utils/net_ads.c:1221 +#: ../../utils/net_ads.c:1226 msgid " osName=string Set the operatingSystem attribute during the join.\n" msgstr "" -#: ../../utils/net_ads.c:1222 +#: ../../utils/net_ads.c:1227 msgid "" " osVer=string Set the operatingSystemVersion attribute during the join.\n" " NB: osName and osVer must be specified together for either to take effect.\n" @@ -950,27 +989,27 @@ msgid "" " the two other attributes.\n" msgstr "" -#: ../../utils/net_ads.c:1254 +#: ../../utils/net_ads.c:1259 msgid "Invalid configuration. Exiting....\n" msgstr "" -#: ../../utils/net_ads.c:1283 +#: ../../utils/net_ads.c:1288 msgid "Please supply a valid OU path.\n" msgstr "" -#: ../../utils/net_ads.c:1290 +#: ../../utils/net_ads.c:1295 msgid "Please supply a operating system name.\n" msgstr "" -#: ../../utils/net_ads.c:1297 +#: ../../utils/net_ads.c:1302 msgid "Please supply a valid operating system version.\n" msgstr "" -#: ../../utils/net_ads.c:1308 +#: ../../utils/net_ads.c:1313 msgid "Please supply a valid domain name\n" msgstr "" -#: ../../utils/net_ads.c:1339 +#: ../../utils/net_ads.c:1344 #, c-format msgid "" "The workgroup in %s does not match the short\n" @@ -979,53 +1018,51 @@ msgid "" "You should set \"workgroup = %s\" in %s.\n" msgstr "" -#: ../../utils/net_ads.c:1347 +#: ../../utils/net_ads.c:1352 #, c-format msgid "Using short domain name -- %s\n" msgstr "" -#: ../../utils/net_ads.c:1350 +#: ../../utils/net_ads.c:1355 #, c-format msgid "Joined '%s' to realm '%s'\n" msgstr "" -#: ../../utils/net_ads.c:1353 +#: ../../utils/net_ads.c:1358 #, c-format msgid "Joined '%s' to domain '%s'\n" msgstr "" -#: ../../utils/net_ads.c:1377 -#: ../../utils/net_ads.c:1433 +#: ../../utils/net_ads.c:1382 ../../utils/net_ads.c:1438 msgid "DNS update failed!\n" msgstr "" #. issue an overall failure message at the end. -#: ../../utils/net_ads.c:1391 -#: ../../utils/net_dom.c:198 +#: ../../utils/net_ads.c:1396 ../../utils/net_dom.c:199 #, c-format msgid "Failed to join domain: %s\n" msgstr "" -#: ../../utils/net_ads.c:1414 +#: ../../utils/net_ads.c:1419 msgid "" "Usage:\n" "net ads dns register\n" " Register hostname with DNS\n" msgstr "" -#: ../../utils/net_ads.c:1421 +#: ../../utils/net_ads.c:1426 msgid "Could not initialise talloc context\n" msgstr "" -#: ../../utils/net_ads.c:1439 +#: ../../utils/net_ads.c:1444 msgid "Successfully registered hostname with DNS\n" msgstr "" -#: ../../utils/net_ads.c:1447 +#: ../../utils/net_ads.c:1452 msgid "DNS update support not enabled at compile time!\n" msgstr "" -#: ../../utils/net_ads.c:1466 +#: ../../utils/net_ads.c:1471 msgid "" "Usage:\n" "net ads dns gethostbyname <server> <name>\n" @@ -1034,32 +1071,32 @@ msgid "" " name\tName to look up\n" msgstr "" -#: ../../utils/net_ads.c:1476 +#: ../../utils/net_ads.c:1481 #, c-format msgid "do_gethostbyname returned %d\n" msgstr "" -#: ../../utils/net_ads.c:1488 +#: ../../utils/net_ads.c:1493 msgid "Add host dns entry to AD" msgstr "" -#: ../../utils/net_ads.c:1489 +#: ../../utils/net_ads.c:1494 msgid "" "net ads dns register\n" " Add host dns entry to AD" msgstr "" -#: ../../utils/net_ads.c:1496 +#: ../../utils/net_ads.c:1501 msgid "Look up host" msgstr "" -#: ../../utils/net_ads.c:1497 +#: ../../utils/net_ads.c:1502 msgid "" "net ads dns gethostbyname\n" " Look up host" msgstr "" -#: ../../utils/net_ads.c:1512 +#: ../../utils/net_ads.c:1517 msgid "" "\n" "net ads printer search <printer>\n" @@ -1078,23 +1115,23 @@ msgid "" "\t(note: printer name is required)\n" msgstr "" -#: ../../utils/net_ads.c:1536 +#: ../../utils/net_ads.c:1541 msgid "" "Usage:\n" "net ads printer search\n" " List printers in the AD\n" msgstr "" -#: ../../utils/net_ads.c:1549 +#: ../../utils/net_ads.c:1554 #, c-format msgid "ads_find_printer: %s\n" msgstr "" -#: ../../utils/net_ads.c:1556 +#: ../../utils/net_ads.c:1561 msgid "No results found\n" msgstr "" -#: ../../utils/net_ads.c:1576 +#: ../../utils/net_ads.c:1581 msgid "" "Usage:\n" "net ads printer info [printername [servername]]\n" @@ -1103,18 +1140,17 @@ msgid "" " servername\tName of the print server\n" msgstr "" -#: ../../utils/net_ads.c:1603 +#: ../../utils/net_ads.c:1608 #, c-format msgid "Server '%s' not found: %s\n" msgstr "" -#: ../../utils/net_ads.c:1611 -#: ../../utils/net_ads.c:1794 +#: ../../utils/net_ads.c:1616 ../../utils/net_ads.c:1799 #, c-format msgid "Printer '%s' not found\n" msgstr "" -#: ../../utils/net_ads.c:1640 +#: ../../utils/net_ads.c:1645 msgid "" "Usage:\n" "net ads printer publish <printername> [servername]\n" @@ -1123,27 +1159,26 @@ msgid "" " servername\tName of the print server\n" msgstr "" -#: ../../utils/net_ads.c:1675 +#: ../../utils/net_ads.c:1680 #, c-format msgid "Unable to open a connnection to %s to obtain data for %s\n" msgstr "" -#: ../../utils/net_ads.c:1688 +#: ../../utils/net_ads.c:1693 #, c-format msgid "Could not find machine account for server %s\n" msgstr "" -#: ../../utils/net_ads.c:1704 -#: ../../utils/net_ads.c:1713 +#: ../../utils/net_ads.c:1709 ../../utils/net_ads.c:1718 msgid "Internal error, out of memory!" msgstr "" -#: ../../utils/net_ads.c:1724 +#: ../../utils/net_ads.c:1729 #, c-format msgid "Unable to open a connnection to the spoolss pipe on %s\n" msgstr "" -#: ../../utils/net_ads.c:1766 +#: ../../utils/net_ads.c:1771 msgid "" "Usage:\n" "net ads printer remove <printername> [servername]\n" @@ -1152,57 +1187,57 @@ msgid "" " servername\tName of the print server\n" msgstr "" -#: ../../utils/net_ads.c:1787 +#: ../../utils/net_ads.c:1792 #, c-format msgid "ads_find_printer_on_server: %s\n" msgstr "" -#: ../../utils/net_ads.c:1806 +#: ../../utils/net_ads.c:1811 #, c-format msgid "ads_del_dn: %s\n" msgstr "" -#: ../../utils/net_ads.c:1822 +#: ../../utils/net_ads.c:1827 msgid "Search for a printer" msgstr "" -#: ../../utils/net_ads.c:1823 +#: ../../utils/net_ads.c:1828 msgid "" "net ads printer search\n" " Search for a printer" msgstr "" -#: ../../utils/net_ads.c:1830 +#: ../../utils/net_ads.c:1835 msgid "Display printer information" msgstr "" -#: ../../utils/net_ads.c:1831 +#: ../../utils/net_ads.c:1836 msgid "" "net ads printer info\n" " Display printer information" msgstr "" -#: ../../utils/net_ads.c:1838 +#: ../../utils/net_ads.c:1843 msgid "Publish a printer" msgstr "" -#: ../../utils/net_ads.c:1839 +#: ../../utils/net_ads.c:1844 msgid "" "net ads printer publish\n" " Publish a printer" msgstr "" -#: ../../utils/net_ads.c:1846 +#: ../../utils/net_ads.c:1851 msgid "Delete a printer" msgstr "" -#: ../../utils/net_ads.c:1847 +#: ../../utils/net_ads.c:1852 msgid "" "net ads printer remove\n" " Delete a printer" msgstr "" -#: ../../utils/net_ads.c:1869 +#: ../../utils/net_ads.c:1874 msgid "" "Usage:\n" "net ads password <username>\n" @@ -1210,61 +1245,59 @@ msgid "" " username\tName of user to change password for\n" msgstr "" -#: ../../utils/net_ads.c:1877 +#: ../../utils/net_ads.c:1882 msgid "You must supply an administrator username/password\n" msgstr "" -#: ../../utils/net_ads.c:1883 +#: ../../utils/net_ads.c:1888 msgid "ERROR: You must say which username to change password for\n" msgstr "" -#: ../../utils/net_ads.c:1915 +#: ../../utils/net_ads.c:1920 msgid "Didn't find the kerberos server!\n" msgstr "" -#: ../../utils/net_ads.c:1923 -#: ../../utils/net_rpc.c:756 +#: ../../utils/net_ads.c:1928 ../../utils/net_rpc.c:775 #, c-format msgid "Enter new password for %s:" msgstr "Bitte neues Passwort für %s eingeben: " -#: ../../utils/net_ads.c:1933 -#: ../../utils/net_ads.c:1982 +#: ../../utils/net_ads.c:1938 ../../utils/net_ads.c:1987 #, c-format msgid "Password change failed: %s\n" msgstr "" -#: ../../utils/net_ads.c:1938 +#: ../../utils/net_ads.c:1943 #, c-format msgid "Password change for %s completed.\n" msgstr "" -#: ../../utils/net_ads.c:1952 +#: ../../utils/net_ads.c:1957 msgid "" "Usage:\n" "net ads changetrustpw\n" " Change the machine account's trust password\n" msgstr "" -#: ../../utils/net_ads.c:1977 +#: ../../utils/net_ads.c:1982 #, c-format msgid "Changing password for principal: %s\n" msgstr "" -#: ../../utils/net_ads.c:1988 +#: ../../utils/net_ads.c:1993 #, c-format msgid "Password change for principal %s succeeded.\n" msgstr "" -#: ../../utils/net_ads.c:1991 +#: ../../utils/net_ads.c:1996 msgid "Attempting to update system keytab with new password.\n" msgstr "" -#: ../../utils/net_ads.c:1993 +#: ../../utils/net_ads.c:1998 msgid "Failed to update system keytab.\n" msgstr "" -#: ../../utils/net_ads.c:2009 +#: ../../utils/net_ads.c:2014 msgid "" "\n" "net ads search <expression> <attributes...>\n" @@ -1277,24 +1310,19 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_ads.c:2046 -#: ../../utils/net_ads.c:2107 -#: ../../utils/net_ads.c:2171 -#: ../../utils/net_ads_gpo.c:250 +#: ../../utils/net_ads.c:2051 ../../utils/net_ads.c:2112 ../../utils/net_ads.c:2176 ../../utils/net_ads_gpo.c:250 #, c-format msgid "search failed: %s\n" msgstr "Suche fehlgeschlagen: %s\n" -#: ../../utils/net_ads.c:2051 -#: ../../utils/net_ads.c:2176 -#: ../../utils/net_ads_gpo.c:256 +#: ../../utils/net_ads.c:2056 ../../utils/net_ads.c:2181 ../../utils/net_ads_gpo.c:256 #, c-format msgid "" "Got %d replies\n" "\n" msgstr "" -#: ../../utils/net_ads.c:2069 +#: ../../utils/net_ads.c:2074 msgid "" "\n" "net ads dn <dn> <attributes...>\n" @@ -1309,7 +1337,7 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_ads.c:2129 +#: ../../utils/net_ads.c:2134 msgid "" "\n" "net ads sid <sid> <attributes...>\n" @@ -1322,18 +1350,18 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_ads.c:2164 +#: ../../utils/net_ads.c:2169 msgid "could not convert sid\n" msgstr "" -#: ../../utils/net_ads.c:2193 +#: ../../utils/net_ads.c:2198 msgid "" "Usage:\n" "net ads keytab flush\n" " Delete the whole keytab\n" msgstr "" -#: ../../utils/net_ads.c:2214 +#: ../../utils/net_ads.c:2219 msgid "" "Usage:\n" "net ads keytab add <principal> [principal ...]\n" @@ -1341,18 +1369,18 @@ msgid "" " principal\tKerberos principal to add to keytab\n" msgstr "" -#: ../../utils/net_ads.c:2222 +#: ../../utils/net_ads.c:2227 msgid "Processing principals to add...\n" msgstr "" -#: ../../utils/net_ads.c:2239 +#: ../../utils/net_ads.c:2244 msgid "" "Usage:\n" "net ads keytab create\n" " Create new default keytab\n" msgstr "" -#: ../../utils/net_ads.c:2258 +#: ../../utils/net_ads.c:2263 msgid "" "Usage:\n" "net ads keytab list [keytab]\n" @@ -1360,317 +1388,314 @@ msgid "" " keytab\tKeytab to list\n" msgstr "" -#: ../../utils/net_ads.c:2280 +#: ../../utils/net_ads.c:2285 msgid "Add a service principal" msgstr "" -#: ../../utils/net_ads.c:2281 +#: ../../utils/net_ads.c:2286 msgid "" "net ads keytab add\n" " Add a service principal" msgstr "" -#: ../../utils/net_ads.c:2288 +#: ../../utils/net_ads.c:2293 msgid "Create a fresh keytab" msgstr "" -#: ../../utils/net_ads.c:2289 +#: ../../utils/net_ads.c:2294 msgid "" "net ads keytab create\n" " Create a fresh keytab" msgstr "" -#: ../../utils/net_ads.c:2296 +#: ../../utils/net_ads.c:2301 msgid "Remove all keytab entries" msgstr "" -#: ../../utils/net_ads.c:2297 +#: ../../utils/net_ads.c:2302 msgid "" "net ads keytab flush\n" " Remove all keytab entries" msgstr "" -#: ../../utils/net_ads.c:2304 +#: ../../utils/net_ads.c:2309 msgid "List a keytab" msgstr "" -#: ../../utils/net_ads.c:2305 +#: ../../utils/net_ads.c:2310 msgid "" "net ads keytab list\n" " List a keytab" msgstr "" -#: ../../utils/net_ads.c:2312 +#: ../../utils/net_ads.c:2317 msgid "" "\n" "Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n" msgstr "" -#: ../../utils/net_ads.c:2324 +#: ../../utils/net_ads.c:2329 msgid "" "Usage:\n" "net ads kerberos renew\n" " Renew TGT from existing credential cache\n" msgstr "" -#: ../../utils/net_ads.c:2332 +#: ../../utils/net_ads.c:2337 #, c-format msgid "failed to renew kerberos ticket: %s\n" msgstr "" -#: ../../utils/net_ads.c:2347 +#: ../../utils/net_ads.c:2353 msgid "" "Usage:\n" "net ads kerberos pac\n" " Dump the Kerberos PAC\n" msgstr "" -#: ../../utils/net_ads.c:2372 +#: ../../utils/net_ads.c:2383 #, c-format msgid "failed to query kerberos PAC: %s\n" msgstr "" -#: ../../utils/net_ads.c:2381 +#: ../../utils/net_ads.c:2392 #, c-format msgid "The Pac: %s\n" msgstr "" -#: ../../utils/net_ads.c:2397 +#: ../../utils/net_ads.c:2408 msgid "" "Usage:\n" "net ads kerberos kinit\n" " Get Ticket Granting Ticket (TGT) for the user\n" msgstr "" -#: ../../utils/net_ads.c:2421 +#: ../../utils/net_ads.c:2432 #, c-format msgid "failed to kinit password: %s\n" msgstr "" -#: ../../utils/net_ads.c:2435 +#: ../../utils/net_ads.c:2446 msgid "Retrieve Ticket Granting Ticket (TGT)" msgstr "" -#: ../../utils/net_ads.c:2436 +#: ../../utils/net_ads.c:2447 msgid "" "net ads kerberos kinit\n" " Receive Ticket Granting Ticket (TGT)" msgstr "" -#: ../../utils/net_ads.c:2443 +#: ../../utils/net_ads.c:2454 msgid "Renew Ticket Granting Ticket from credential cache" msgstr "" -#: ../../utils/net_ads.c:2444 +#: ../../utils/net_ads.c:2455 msgid "" "net ads kerberos renew\n" " Renew Ticket Granting Ticket (TGT) from credential cache" msgstr "" -#: ../../utils/net_ads.c:2452 +#: ../../utils/net_ads.c:2463 msgid "Dump Kerberos PAC" msgstr "" -#: ../../utils/net_ads.c:2453 +#: ../../utils/net_ads.c:2464 msgid "" "net ads kerberos pac\n" " Dump Kerberos PAC" msgstr "" -#: ../../utils/net_ads.c:2469 +#: ../../utils/net_ads.c:2480 msgid "Display details on remote ADS server" msgstr "" -#: ../../utils/net_ads.c:2470 +#: ../../utils/net_ads.c:2481 msgid "" "net ads info\n" " Display details on remote ADS server" msgstr "" -#: ../../utils/net_ads.c:2477 +#: ../../utils/net_ads.c:2488 msgid "Join the local machine to ADS realm" msgstr "" -#: ../../utils/net_ads.c:2478 +#: ../../utils/net_ads.c:2489 msgid "" "net ads join\n" " Join the local machine to ADS realm" msgstr "" -#: ../../utils/net_ads.c:2485 +#: ../../utils/net_ads.c:2496 msgid "Validate machine account" msgstr "" -#: ../../utils/net_ads.c:2486 +#: ../../utils/net_ads.c:2497 msgid "" "net ads testjoin\n" " Validate machine account" msgstr "" -#: ../../utils/net_ads.c:2493 +#: ../../utils/net_ads.c:2504 msgid "Remove the local machine from ADS" msgstr "" -#: ../../utils/net_ads.c:2494 +#: ../../utils/net_ads.c:2505 msgid "" "net ads leave\n" " Remove the local machine from ADS" msgstr "" -#: ../../utils/net_ads.c:2501 +#: ../../utils/net_ads.c:2512 msgid "Display machine account details" msgstr "" -#: ../../utils/net_ads.c:2502 +#: ../../utils/net_ads.c:2513 msgid "" "net ads status\n" " Display machine account details" msgstr "" -#: ../../utils/net_ads.c:2509 -#: ../../utils/net_rpc.c:7110 +#: ../../utils/net_ads.c:2520 ../../utils/net_rpc.c:7139 msgid "List/modify users" msgstr "" -#: ../../utils/net_ads.c:2510 +#: ../../utils/net_ads.c:2521 msgid "" "net ads user\n" " List/modify users" msgstr "" -#: ../../utils/net_ads.c:2517 -#: ../../utils/net_rpc.c:7127 +#: ../../utils/net_ads.c:2528 ../../utils/net_rpc.c:7156 msgid "List/modify groups" msgstr "" -#: ../../utils/net_ads.c:2518 +#: ../../utils/net_ads.c:2529 msgid "" "net ads group\n" " List/modify groups" msgstr "" -#: ../../utils/net_ads.c:2525 +#: ../../utils/net_ads.c:2536 msgid "Issue dynamic DNS update" msgstr "" -#: ../../utils/net_ads.c:2526 +#: ../../utils/net_ads.c:2537 msgid "" "net ads dns\n" " Issue dynamic DNS update" msgstr "" -#: ../../utils/net_ads.c:2533 +#: ../../utils/net_ads.c:2544 msgid "Change user passwords" msgstr "" -#: ../../utils/net_ads.c:2534 +#: ../../utils/net_ads.c:2545 msgid "" "net ads password\n" " Change user passwords" msgstr "" -#: ../../utils/net_ads.c:2541 -#: ../../utils/net_rpc.c:7159 +#: ../../utils/net_ads.c:2552 ../../utils/net_rpc.c:7188 msgid "Change trust account password" msgstr "Trust account Passwort ändern" -#: ../../utils/net_ads.c:2542 +#: ../../utils/net_ads.c:2553 msgid "" "net ads changetrustpw\n" " Change trust account password" msgstr "" -#: ../../utils/net_ads.c:2549 +#: ../../utils/net_ads.c:2560 msgid "List/modify printer entries" msgstr "" -#: ../../utils/net_ads.c:2550 +#: ../../utils/net_ads.c:2561 msgid "" "net ads printer\n" " List/modify printer entries" msgstr "" -#: ../../utils/net_ads.c:2557 +#: ../../utils/net_ads.c:2568 msgid "Issue LDAP search using filter" msgstr "" -#: ../../utils/net_ads.c:2558 +#: ../../utils/net_ads.c:2569 msgid "" "net ads search\n" " Issue LDAP search using filter" msgstr "" -#: ../../utils/net_ads.c:2565 +#: ../../utils/net_ads.c:2576 msgid "Issue LDAP search by DN" msgstr "" -#: ../../utils/net_ads.c:2566 +#: ../../utils/net_ads.c:2577 msgid "" "net ads dn\n" " Issue LDAP search by DN" msgstr "" -#: ../../utils/net_ads.c:2573 +#: ../../utils/net_ads.c:2584 msgid "Issue LDAP search by SID" msgstr "" -#: ../../utils/net_ads.c:2574 +#: ../../utils/net_ads.c:2585 msgid "" "net ads sid\n" " Issue LDAP search by SID" msgstr "" -#: ../../utils/net_ads.c:2581 +#: ../../utils/net_ads.c:2592 msgid "Display workgroup name" msgstr "" -#: ../../utils/net_ads.c:2582 +#: ../../utils/net_ads.c:2593 msgid "" "net ads workgroup\n" " Display the workgroup name" msgstr "" -#: ../../utils/net_ads.c:2589 +#: ../../utils/net_ads.c:2600 msgid "Perfom CLDAP query on DC" msgstr "" -#: ../../utils/net_ads.c:2590 +#: ../../utils/net_ads.c:2601 msgid "" "net ads lookup\n" " Find the ADS DC using CLDAP lookups" msgstr "" -#: ../../utils/net_ads.c:2597 +#: ../../utils/net_ads.c:2608 msgid "Manage local keytab file" msgstr "" -#: ../../utils/net_ads.c:2598 +#: ../../utils/net_ads.c:2609 msgid "" "net ads keytab\n" " Manage local keytab file" msgstr "" -#: ../../utils/net_ads.c:2605 +#: ../../utils/net_ads.c:2616 msgid "Manage group policy objects" msgstr "" -#: ../../utils/net_ads.c:2606 +#: ../../utils/net_ads.c:2617 msgid "" "net ads gpo\n" " Manage group policy objects" msgstr "" -#: ../../utils/net_ads.c:2613 +#: ../../utils/net_ads.c:2624 msgid "Manage kerberos keytab" msgstr "" -#: ../../utils/net_ads.c:2614 +#: ../../utils/net_ads.c:2625 msgid "" "net ads kerberos\n" " Manage kerberos keytab" msgstr "" -#: ../../utils/net_ads.c:2627 +#: ../../utils/net_ads.c:2638 msgid "ADS support not compiled in\n" msgstr "" @@ -1701,13 +1726,11 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_ads_gpo.c:71 -#: ../../utils/net_ads_gpo.c:328 +#: ../../utils/net_ads_gpo.c:71 ../../utils/net_ads_gpo.c:328 msgid "machine" msgstr "" -#: ../../utils/net_ads_gpo.c:71 -#: ../../utils/net_ads_gpo.c:328 +#: ../../utils/net_ads_gpo.c:71 ../../utils/net_ads_gpo.c:328 msgid "user" msgstr "" @@ -1715,20 +1738,12 @@ msgstr "" msgid "* fetching token " msgstr "" -#: ../../utils/net_ads_gpo.c:82 -#: ../../utils/net_ads_gpo.c:90 -#: ../../utils/net_ads_gpo.c:102 -#: ../../utils/net_ads_gpo.c:113 -#: ../../utils/net_ads_gpo.c:158 +#: ../../utils/net_ads_gpo.c:82 ../../utils/net_ads_gpo.c:90 ../../utils/net_ads_gpo.c:102 ../../utils/net_ads_gpo.c:113 ../../utils/net_ads_gpo.c:158 #, c-format msgid "failed: %s\n" msgstr "" -#: ../../utils/net_ads_gpo.c:85 -#: ../../utils/net_ads_gpo.c:94 -#: ../../utils/net_ads_gpo.c:105 -#: ../../utils/net_ads_gpo.c:118 -#: ../../utils/net_ads_gpo.c:163 +#: ../../utils/net_ads_gpo.c:85 ../../utils/net_ads_gpo.c:94 ../../utils/net_ads_gpo.c:105 ../../utils/net_ads_gpo.c:118 ../../utils/net_ads_gpo.c:163 msgid "finished\n" msgstr "" @@ -2031,8 +2046,7 @@ msgid "" " List all cache entries.\n" msgstr "" -#: ../../utils/net_cache.c:293 -#: ../../utils/net_cache.c:306 +#: ../../utils/net_cache.c:293 ../../utils/net_cache.c:306 msgid "" "Usage:\n" "net cache flush\n" @@ -2181,18 +2195,8 @@ msgstr "" msgid "Error getting config: %s\n" msgstr "" -#: ../../utils/net_conf.c:305 -#: ../../utils/net_conf.c:318 -#: ../../utils/net_conf.c:614 -#: ../../utils/net_conf.c:742 -#: ../../utils/net_conf.c:780 -#: ../../utils/net_conf.c:786 -#: ../../utils/net_conf.c:860 -#: ../../utils/net_conf.c:866 -#: ../../utils/net_conf.c:916 -#: ../../utils/net_conf.c:970 -#: ../../utils/net_conf.c:1010 -#: ../../utils/net_conf.c:1050 +#: ../../utils/net_conf.c:305 ../../utils/net_conf.c:318 ../../utils/net_conf.c:614 ../../utils/net_conf.c:742 ../../utils/net_conf.c:780 ../../utils/net_conf.c:786 ../../utils/net_conf.c:860 ../../utils/net_conf.c:866 ../../utils/net_conf.c:916 +#: ../../utils/net_conf.c:970 ../../utils/net_conf.c:1010 ../../utils/net_conf.c:1050 msgid "error: out of memory!\n" msgstr "" @@ -2208,23 +2212,17 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_conf.c:346 -#: ../../utils/net_conf.c:382 -#: ../../utils/net_conf.c:407 -#: ../../utils/net_conf.c:793 +#: ../../utils/net_conf.c:346 ../../utils/net_conf.c:382 ../../utils/net_conf.c:407 ../../utils/net_conf.c:793 #, c-format msgid "error starting transaction: %s\n" msgstr "" -#: ../../utils/net_conf.c:400 -#: ../../utils/net_conf.c:416 -#: ../../utils/net_conf.c:817 +#: ../../utils/net_conf.c:400 ../../utils/net_conf.c:416 ../../utils/net_conf.c:817 #, c-format msgid "error committing transaction: %s\n" msgstr "" -#: ../../utils/net_conf.c:427 -#: ../../utils/net_conf.c:828 +#: ../../utils/net_conf.c:427 ../../utils/net_conf.c:828 #, c-format msgid "error cancelling transaction: %s\n" msgstr "" @@ -2275,10 +2273,7 @@ msgstr "" msgid "Error creating share %s: %s\n" msgstr "" -#: ../../utils/net_conf.c:690 -#: ../../utils/net_conf.c:699 -#: ../../utils/net_conf.c:707 -#: ../../utils/net_conf.c:715 +#: ../../utils/net_conf.c:690 ../../utils/net_conf.c:699 ../../utils/net_conf.c:707 ../../utils/net_conf.c:715 #, c-format msgid "Error setting parameter %s: %s\n" msgstr "" @@ -2298,14 +2293,12 @@ msgstr "" msgid "Error setting value '%s': %s\n" msgstr "" -#: ../../utils/net_conf.c:874 -#: ../../utils/net_conf.c:930 +#: ../../utils/net_conf.c:874 ../../utils/net_conf.c:930 #, c-format msgid "Error: given service '%s' does not exist.\n" msgstr "" -#: ../../utils/net_conf.c:879 -#: ../../utils/net_conf.c:935 +#: ../../utils/net_conf.c:879 ../../utils/net_conf.c:935 #, c-format msgid "Error: given parameter '%s' is not set.\n" msgstr "" @@ -2335,23 +2328,6 @@ msgstr "" msgid "error deleting includes: %s\n" msgstr "" -#: ../../utils/net_conf.c:1136 -#: ../../utils/net_help.c:36 -#: ../../utils/net_rap.c:161 -#: ../../utils/net_rap.c:302 -#: ../../utils/net_rap.c:467 -#: ../../utils/net_rap.c:750 -#: ../../utils/net_rap.c:891 -#: ../../utils/net_rap.c:1002 -#: ../../utils/net_rap.c:1193 -#: ../../utils/net_rpc.c:960 -#: ../../utils/net_rpc.c:2801 -#: ../../utils/net_rpc.c:4897 -#: ../../utils/net_rpc.c:6933 -#: ../../utils/net_rpc.c:7038 -msgid "Usage:\n" -msgstr "" - #: ../../utils/net_conf.c:1160 msgid "Dump the complete configuration in smb.conf like format." msgstr "" @@ -2482,73 +2458,72 @@ msgid "" " Delete includes from a share definition." msgstr "" -#: ../../utils/net_dom.c:25 +#: ../../utils/net_dom.c:26 msgid "" "usage: net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n" " Join a remote machine\n" msgstr "" -#: ../../utils/net_dom.c:28 +#: ../../utils/net_dom.c:29 msgid "" "usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n" " Unjoin a remote machine\n" msgstr "" -#: ../../utils/net_dom.c:31 +#: ../../utils/net_dom.c:32 msgid "" "usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n" " Rename joined computer\n" msgstr "" -#: ../../utils/net_dom.c:91 +#: ../../utils/net_dom.c:92 #, c-format msgid "Failed to unjoin domain: %s\n" msgstr "" -#: ../../utils/net_dom.c:97 -#: ../../utils/net_dom.c:204 +#: ../../utils/net_dom.c:98 ../../utils/net_dom.c:205 msgid "Shutting down due to a domain membership change" msgstr "" -#: ../../utils/net_dom.c:290 +#: ../../utils/net_dom.c:291 #, c-format msgid "Failed to rename machine: " msgstr "" -#: ../../utils/net_dom.c:292 +#: ../../utils/net_dom.c:293 #, c-format msgid "Computer is not joined to a Domain\n" msgstr "" -#: ../../utils/net_dom.c:301 +#: ../../utils/net_dom.c:302 msgid "Shutting down due to a computer rename" msgstr "" -#: ../../utils/net_dom.c:338 +#: ../../utils/net_dom.c:339 msgid "Join a remote machine" msgstr "" -#: ../../utils/net_dom.c:339 +#: ../../utils/net_dom.c:340 msgid "" "net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n" " Join a remote machine" msgstr "" -#: ../../utils/net_dom.c:347 +#: ../../utils/net_dom.c:348 msgid "Unjoin a remote machine" msgstr "" -#: ../../utils/net_dom.c:348 +#: ../../utils/net_dom.c:349 msgid "" "net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n" " Unjoin a remote machine" msgstr "" -#: ../../utils/net_dom.c:356 +#: ../../utils/net_dom.c:357 msgid "Rename a computer that is joined to a domain" msgstr "" -#: ../../utils/net_dom.c:357 +#: ../../utils/net_dom.c:358 msgid "" "net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n" " Rename joined computer" @@ -2558,14 +2533,12 @@ msgstr "" msgid "usage: net eventlog dump <file.evt>\n" msgstr "" -#: ../../utils/net_eventlog.c:52 -#: ../../utils/net_eventlog.c:108 +#: ../../utils/net_eventlog.c:52 ../../utils/net_eventlog.c:108 #, c-format msgid "failed to load evt file: %s\n" msgstr "" -#: ../../utils/net_eventlog.c:59 -#: ../../utils/net_eventlog.c:129 +#: ../../utils/net_eventlog.c:59 ../../utils/net_eventlog.c:129 #, c-format msgid "evt pull failed: %s\n" msgstr "" @@ -2583,8 +2556,7 @@ msgstr "" msgid "input file is wrapped, cannot proceed\n" msgstr "" -#: ../../utils/net_eventlog.c:138 -#: ../../utils/net_eventlog.c:203 +#: ../../utils/net_eventlog.c:138 ../../utils/net_eventlog.c:203 #, c-format msgid "can't open the eventlog TDB (%s)\n" msgstr "" @@ -2713,13 +2685,11 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_group.c:44 -#: ../../utils/net_user.c:41 +#: ../../utils/net_group.c:44 ../../utils/net_user.c:41 msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n" msgstr "" -#: ../../utils/net_group.c:46 -#: ../../utils/net_user.c:43 +#: ../../utils/net_group.c:46 ../../utils/net_user.c:43 msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n" msgstr "" @@ -2770,37 +2740,22 @@ msgid "" " sid\tSID of group to list" msgstr "" -#: ../../utils/net_groupmap.c:91 -#: ../../utils/net_groupmap.c:271 -#: ../../utils/net_groupmap.c:356 -#: ../../utils/net_groupmap.c:412 -#: ../../utils/net_groupmap.c:495 -#: ../../utils/net_groupmap.c:522 +#: ../../utils/net_groupmap.c:91 ../../utils/net_groupmap.c:271 ../../utils/net_groupmap.c:356 ../../utils/net_groupmap.c:412 ../../utils/net_groupmap.c:495 ../../utils/net_groupmap.c:522 #, c-format msgid "" "Usage:\n" "%s\n" msgstr "" -#: ../../utils/net_groupmap.c:106 -#: ../../utils/net_groupmap.c:213 -#: ../../utils/net_groupmap.c:220 -#: ../../utils/net_groupmap.c:365 -#: ../../utils/net_groupmap.c:372 -#: ../../utils/net_groupmap.c:504 +#: ../../utils/net_groupmap.c:106 ../../utils/net_groupmap.c:213 ../../utils/net_groupmap.c:220 ../../utils/net_groupmap.c:365 ../../utils/net_groupmap.c:372 ../../utils/net_groupmap.c:504 msgid "must supply a name\n" msgstr "" -#: ../../utils/net_groupmap.c:113 -#: ../../utils/net_groupmap.c:227 -#: ../../utils/net_groupmap.c:511 +#: ../../utils/net_groupmap.c:113 ../../utils/net_groupmap.c:227 ../../utils/net_groupmap.c:511 msgid "must supply a SID\n" msgstr "" -#: ../../utils/net_groupmap.c:118 -#: ../../utils/net_groupmap.c:265 -#: ../../utils/net_groupmap.c:406 -#: ../../utils/net_groupmap.c:516 +#: ../../utils/net_groupmap.c:118 ../../utils/net_groupmap.c:265 ../../utils/net_groupmap.c:406 ../../utils/net_groupmap.c:516 #, c-format msgid "Bad option: %s\n" msgstr "Ungültige Option: %s\n" @@ -2825,8 +2780,7 @@ msgstr "" msgid "RID must be greater than %d\n" msgstr "" -#: ../../utils/net_groupmap.c:235 -#: ../../utils/net_groupmap.c:380 +#: ../../utils/net_groupmap.c:235 ../../utils/net_groupmap.c:380 msgid "must supply a comment string\n" msgstr "" @@ -3015,8 +2969,7 @@ msgstr "" msgid "Usage: net groupmap memberof sid\n" msgstr "" -#: ../../utils/net_groupmap.c:820 -#: ../../utils/net_idmap.c:345 +#: ../../utils/net_groupmap.c:820 ../../utils/net_idmap.c:345 msgid "talloc_init failed\n" msgstr "" @@ -3129,18 +3082,15 @@ msgstr "" msgid "net %s usage:\n" msgstr "" -#: ../../utils/net_help_common.c:25 -#: ../../utils/net_join.c:28 +#: ../../utils/net_help_common.c:25 ../../utils/net_join.c:28 msgid "Valid methods: (auto-detected if not specified)\n" msgstr "" -#: ../../utils/net_help_common.c:26 -#: ../../utils/net_join.c:29 +#: ../../utils/net_help_common.c:26 ../../utils/net_join.c:29 msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n" msgstr "" -#: ../../utils/net_help_common.c:27 -#: ../../utils/net_join.c:30 +#: ../../utils/net_help_common.c:27 ../../utils/net_join.c:30 msgid "\trpc\t\t\t\tDCE-RPC\n" msgstr "" @@ -3277,8 +3227,7 @@ msgstr "ignoriere ungültige sid [%s]: %s\n" msgid "Could not set mapping of %s %lu to sid %s: %s\n" msgstr "" -#: ../../utils/net_idmap.c:196 -#: ../../utils/net_idmap.c:202 +#: ../../utils/net_idmap.c:196 ../../utils/net_idmap.c:202 msgid "Not Implemented yet\n" msgstr "" @@ -3341,8 +3290,7 @@ msgstr "" msgid "db_open failed: %s\n" msgstr "" -#: ../../utils/net_idmap.c:356 -#: ../../utils/net_idmap.c:361 +#: ../../utils/net_idmap.c:356 ../../utils/net_idmap.c:361 #, c-format msgid "%s is not a valid sid\n" msgstr "" @@ -3380,8 +3328,7 @@ msgid "" " Restore entries from stdin" msgstr "" -#: ../../utils/net_idmap.c:418 -#: ../../utils/net_idmap.c:426 +#: ../../utils/net_idmap.c:418 ../../utils/net_idmap.c:426 msgid "Not implemented yet" msgstr "" @@ -3466,8 +3413,7 @@ msgstr "" msgid "usage: net lookup name <name>\n" msgstr "" -#: ../../utils/net_lookup.c:331 -#: ../../utils/net_lookup.c:358 +#: ../../utils/net_lookup.c:331 ../../utils/net_lookup.c:358 #, c-format msgid "Could not lookup name %s\n" msgstr "" @@ -3523,8 +3469,7 @@ msgid "" "------ --------- ----- ----- ---- \n" msgstr "" -#: ../../utils/net_rap.c:120 -#: ../../utils/net_rap.c:180 +#: ../../utils/net_rap.c:120 ../../utils/net_rap.c:180 msgid "" "\n" "Operation not supported by server!\n" @@ -3582,8 +3527,7 @@ msgstr "" msgid "Server path not specified\n" msgstr "" -#: ../../utils/net_rap.c:273 -#: ../../utils/net_rap.c:281 +#: ../../utils/net_rap.c:273 ../../utils/net_rap.c:281 msgid "Delete a share from server" msgstr "" @@ -3616,8 +3560,7 @@ msgid "" " List all shares on remote server\n" msgstr "" -#: ../../utils/net_rap.c:314 -#: ../../utils/net_rpc.c:3046 +#: ../../utils/net_rap.c:314 ../../utils/net_rpc.c:3065 msgid "" "\n" "Enumerating shared resources (exports) on remote server:\n" @@ -3677,8 +3620,7 @@ msgid "" " Display information about session" msgstr "" -#: ../../utils/net_rap.c:446 -#: ../../utils/net_rap.c:455 +#: ../../utils/net_rap.c:446 ../../utils/net_rap.c:455 msgid "Close specified session" msgstr "" @@ -3812,8 +3754,7 @@ msgstr "" msgid "*Delete Pending*\n" msgstr "" -#: ../../utils/net_rap.c:652 -#: ../../utils/net_rap.c:678 +#: ../../utils/net_rap.c:652 ../../utils/net_rap.c:678 msgid "**UNKNOWN STATUS**\n" msgstr "" @@ -3870,8 +3811,7 @@ msgid "" " List the print queue\n" msgstr "" -#: ../../utils/net_rap.c:864 -#: ../../utils/net_rpc.c:909 +#: ../../utils/net_rap.c:864 ../../utils/net_rpc.c:928 msgid "Add specified user" msgstr "" @@ -3891,8 +3831,7 @@ msgid "" " List domain groups of specified user" msgstr "" -#: ../../utils/net_rap.c:881 -#: ../../utils/net_rpc.c:925 +#: ../../utils/net_rap.c:881 ../../utils/net_rpc.c:944 msgid "Remove specified user" msgstr "" @@ -3923,8 +3862,7 @@ msgid "" " Add specified group" msgstr "" -#: ../../utils/net_rap.c:991 -#: ../../utils/net_rpc.c:2742 +#: ../../utils/net_rap.c:991 ../../utils/net_rpc.c:2761 msgid "Delete specified group" msgstr "" @@ -4059,8 +3997,7 @@ msgid "" "\texecutes a remote command on an os/2 target server\n" msgstr "" -#: ../../utils/net_rap.c:1267 -#: ../../utils/net_rpc.c:7143 +#: ../../utils/net_rap.c:1267 ../../utils/net_rpc.c:7172 msgid "List open files" msgstr "" @@ -4176,8 +4113,7 @@ msgid "" " Start/stop remote service" msgstr "" -#: ../../utils/net_rap.c:1363 -#: ../../utils/net_rpc.c:933 +#: ../../utils/net_rap.c:1363 ../../utils/net_rpc.c:952 msgid "Change user password" msgstr "" @@ -4187,9 +4123,7 @@ msgid "" " Change user password" msgstr "" -#: ../../utils/net_registry.c:94 -#: ../../utils/net_registry.c:197 -#: ../../utils/net_registry.c:250 +#: ../../utils/net_registry.c:94 ../../utils/net_registry.c:197 ../../utils/net_registry.c:250 #, c-format msgid "open_hive failed: %s\n" msgstr "" @@ -4207,11 +4141,7 @@ msgstr "" msgid "Example: net registry enumerate 'HKLM\\Software\\Samba'\n" msgstr "" -#: ../../utils/net_registry.c:141 -#: ../../utils/net_registry.c:286 -#: ../../utils/net_registry.c:356 -#: ../../utils/net_registry.c:390 -#: ../../utils/net_registry.c:439 +#: ../../utils/net_registry.c:141 ../../utils/net_registry.c:286 ../../utils/net_registry.c:356 ../../utils/net_registry.c:390 ../../utils/net_registry.c:439 #, c-format msgid "open_key failed: %s\n" msgstr "" @@ -4224,8 +4154,7 @@ msgstr "" msgid "Example: net registry createkey 'HKLM\\Software\\Samba\\smbconf.127.0.0.1'\n" msgstr "" -#: ../../utils/net_registry.c:191 -#: ../../utils/net_registry.c:244 +#: ../../utils/net_registry.c:191 ../../utils/net_registry.c:244 msgid "error: zero length key name given\n" msgstr "" @@ -4234,19 +4163,16 @@ msgstr "" msgid "reg_createkey failed: %s\n" msgstr "" -#: ../../utils/net_registry.c:211 -#: ../../utils/net_rpc_registry.c:681 +#: ../../utils/net_registry.c:211 ../../utils/net_rpc_registry.c:722 msgid "createkey did nothing -- huh?\n" msgstr "" -#: ../../utils/net_registry.c:214 -#: ../../utils/net_rpc_registry.c:684 +#: ../../utils/net_registry.c:214 ../../utils/net_rpc_registry.c:725 #, c-format msgid "createkey created %s\n" msgstr "" -#: ../../utils/net_registry.c:217 -#: ../../utils/net_rpc_registry.c:687 +#: ../../utils/net_registry.c:217 ../../utils/net_rpc_registry.c:728 #, c-format msgid "createkey opened existing %s\n" msgstr "" @@ -4259,15 +4185,12 @@ msgstr "" msgid "Example: net registry deletekey 'HKLM\\Software\\Samba\\smbconf.127.0.0.1'\n" msgstr "" -#: ../../utils/net_registry.c:257 -#: ../../utils/net_registry.c:396 +#: ../../utils/net_registry.c:257 ../../utils/net_registry.c:396 #, c-format msgid "reg_deletekey failed: %s\n" msgstr "" -#: ../../utils/net_registry.c:279 -#: ../../utils/net_rpc_registry.c:601 -#: ../../utils/net_rpc_registry.c:628 +#: ../../utils/net_registry.c:279 ../../utils/net_rpc_registry.c:642 ../../utils/net_rpc_registry.c:669 msgid "usage: net rpc registry getvalue <key> <valuename>\n" msgstr "" @@ -4276,19 +4199,16 @@ msgstr "" msgid "reg_queryvalue failed: %s\n" msgstr "" -#: ../../utils/net_registry.c:328 -#: ../../utils/net_rpc_registry.c:433 +#: ../../utils/net_registry.c:328 ../../utils/net_rpc_registry.c:474 msgid "usage: net rpc registry setvalue <key> <valuename> <type> [<val>]+\n" msgstr "" -#: ../../utils/net_registry.c:334 -#: ../../utils/net_rpc_registry.c:395 +#: ../../utils/net_registry.c:334 ../../utils/net_rpc_registry.c:436 #, c-format msgid "Too many args for type %s\n" msgstr "" -#: ../../utils/net_registry.c:350 -#: ../../utils/net_rpc_registry.c:409 +#: ../../utils/net_registry.c:350 ../../utils/net_rpc_registry.c:450 #, c-format msgid "type \"%s\" not implemented\n" msgstr "" @@ -4298,8 +4218,7 @@ msgstr "" msgid "reg_setvalue failed: %s\n" msgstr "" -#: ../../utils/net_registry.c:383 -#: ../../utils/net_rpc_registry.c:486 +#: ../../utils/net_registry.c:383 ../../utils/net_rpc_registry.c:527 msgid "usage: net rpc registry deletevalue <key> <valuename>\n" msgstr "" @@ -4316,8 +4235,7 @@ msgstr "" msgid "reg_getkeysecurity failed: %s\n" msgstr "" -#: ../../utils/net_registry.c:468 -#: ../../utils/net_rpc_registry.c:1234 +#: ../../utils/net_registry.c:468 ../../utils/net_rpc_registry.c:1273 msgid "Enumerate registry keys and values" msgstr "" @@ -4327,8 +4245,7 @@ msgid "" " Enumerate registry keys and values" msgstr "" -#: ../../utils/net_registry.c:476 -#: ../../utils/net_rpc_registry.c:1242 +#: ../../utils/net_registry.c:476 ../../utils/net_rpc_registry.c:1281 msgid "Create a new registry key" msgstr "" @@ -4338,8 +4255,7 @@ msgid "" " Create a new registry key" msgstr "" -#: ../../utils/net_registry.c:484 -#: ../../utils/net_rpc_registry.c:1250 +#: ../../utils/net_registry.c:484 ../../utils/net_rpc_registry.c:1289 msgid "Delete a registry key" msgstr "" @@ -4349,9 +4265,7 @@ msgid "" " Delete a registry key" msgstr "" -#: ../../utils/net_registry.c:492 -#: ../../utils/net_rpc_registry.c:1258 -#: ../../utils/net_rpc_registry.c:1266 +#: ../../utils/net_registry.c:492 ../../utils/net_rpc_registry.c:1297 ../../utils/net_rpc_registry.c:1305 msgid "Print a registry value" msgstr "" @@ -4371,8 +4285,7 @@ msgid "" " Print a registry value (raw format)" msgstr "" -#: ../../utils/net_registry.c:508 -#: ../../utils/net_rpc_registry.c:1274 +#: ../../utils/net_registry.c:508 ../../utils/net_rpc_registry.c:1313 msgid "Set a new registry value" msgstr "" @@ -4382,8 +4295,7 @@ msgid "" " Set a new registry value" msgstr "" -#: ../../utils/net_registry.c:516 -#: ../../utils/net_rpc_registry.c:1282 +#: ../../utils/net_registry.c:516 ../../utils/net_rpc_registry.c:1321 msgid "Delete a registry value" msgstr "" @@ -4393,8 +4305,7 @@ msgid "" " Delete a registry value" msgstr "" -#: ../../utils/net_registry.c:524 -#: ../../utils/net_rpc_registry.c:1314 +#: ../../utils/net_registry.c:524 ../../utils/net_rpc_registry.c:1353 msgid "Get security descriptor" msgstr "" @@ -4423,9 +4334,7 @@ msgstr "" msgid "Type = %s\n" msgstr "" -#: ../../utils/net_registry_util.c:45 -#: ../../utils/net_registry_util.c:76 -#: ../../utils/net_registry_util.c:82 +#: ../../utils/net_registry_util.c:45 ../../utils/net_registry_util.c:76 ../../utils/net_registry_util.c:82 msgid "Value = " msgstr "" @@ -4452,47 +4361,49 @@ msgstr "" msgid "Valuename = %s\n" msgstr "" -#: ../../utils/net_rpc.c:66 -#: ../../utils/net_util.c:43 +#: ../../utils/net_rpc.c:73 ../../utils/net_util.c:45 msgid "Could not initialise lsa pipe\n" msgstr "" -#: ../../utils/net_rpc.c:74 -#: ../../utils/net_util.c:51 +#: ../../utils/net_rpc.c:81 ../../utils/net_util.c:53 #, c-format msgid "open_policy failed: %s\n" msgstr "" -#: ../../utils/net_rpc.c:84 +#: ../../utils/net_rpc.c:91 #, c-format msgid "lsaquery failed: %s\n" msgstr "" -#: ../../utils/net_rpc.c:257 +#: ../../utils/net_rpc.c:254 +#, fuzzy, c-format +msgid "Failed to change machine account password: %s\n" +msgstr "Konnte Passwort für trust account nicht stetzen: %s\n" + +#: ../../utils/net_rpc.c:275 msgid "" "Usage:\n" "net rpc changetrustpw\n" " Change the machine trust password\n" msgstr "" -#: ../../utils/net_rpc.c:341 -#: ../../utils/net_rpc_join.c:470 +#: ../../utils/net_rpc.c:360 ../../utils/net_rpc_join.c:477 #, c-format msgid "Joined domain %s.\n" msgstr "" -#: ../../utils/net_rpc.c:387 +#: ../../utils/net_rpc.c:406 msgid "" "Usage:\n" "net rpc oldjoin\n" " Join a domain the old way\n" msgstr "" -#: ../../utils/net_rpc.c:396 +#: ../../utils/net_rpc.c:415 msgid "Failed to join domain\n" msgstr "" -#: ../../utils/net_rpc.c:417 +#: ../../utils/net_rpc.c:436 #, c-format msgid "" "Usage:\n" @@ -4505,387 +4416,375 @@ msgid "" "\t\tPDC\tJoin as PDC\n" msgstr "" -#: ../../utils/net_rpc.c:431 +#: ../../utils/net_rpc.c:450 msgid "cannot join as standalone machine\n" msgstr "" -#: ../../utils/net_rpc.c:486 +#: ../../utils/net_rpc.c:505 #, c-format msgid "Could not connect to SAM: %s\n" msgstr "" -#: ../../utils/net_rpc.c:498 +#: ../../utils/net_rpc.c:517 #, c-format msgid "Could not open domain: %s\n" msgstr "" -#: ../../utils/net_rpc.c:508 +#: ../../utils/net_rpc.c:527 #, c-format msgid "Domain Name: %s\n" msgstr "" -#: ../../utils/net_rpc.c:510 +#: ../../utils/net_rpc.c:529 #, c-format msgid "Domain SID: %s\n" msgstr "" -#: ../../utils/net_rpc.c:511 +#: ../../utils/net_rpc.c:530 #, c-format msgid "Sequence number: %llu\n" msgstr "" -#: ../../utils/net_rpc.c:513 +#: ../../utils/net_rpc.c:532 #, c-format msgid "Num users: %u\n" msgstr "" -#: ../../utils/net_rpc.c:514 +#: ../../utils/net_rpc.c:533 #, c-format msgid "Num domain groups: %u\n" msgstr "" -#: ../../utils/net_rpc.c:515 +#: ../../utils/net_rpc.c:534 #, c-format msgid "Num local groups: %u\n" msgstr "" -#: ../../utils/net_rpc.c:532 +#: ../../utils/net_rpc.c:551 msgid "" "Usage:\n" "net rpc info\n" " Display information about the domain\n" msgstr "" -#: ../../utils/net_rpc.c:571 +#: ../../utils/net_rpc.c:590 #, c-format msgid "Storing SID %s for Domain %s in secrets.tdb\n" msgstr "" -#: ../../utils/net_rpc.c:592 +#: ../../utils/net_rpc.c:611 msgid "" "Usage:\n" "net rpc getsid\n" " Fetch domain SID into local secrets.tdb\n" msgstr "" -#: ../../utils/net_rpc.c:649 +#: ../../utils/net_rpc.c:668 #, c-format msgid "Failed to add user '%s' with error: %s.\n" msgstr "" -#: ../../utils/net_rpc.c:654 +#: ../../utils/net_rpc.c:673 #, c-format msgid "Added user '%s'.\n" msgstr "" -#: ../../utils/net_rpc.c:687 +#: ../../utils/net_rpc.c:706 #, c-format msgid "Failed to rename user from %s to %s - %s\n" msgstr "" -#: ../../utils/net_rpc.c:691 +#: ../../utils/net_rpc.c:710 #, c-format msgid "Renamed user from %s to %s\n" msgstr "" -#: ../../utils/net_rpc.c:719 +#: ../../utils/net_rpc.c:738 #, c-format msgid "Failed to delete user '%s' with: %s.\n" msgstr "" -#: ../../utils/net_rpc.c:724 +#: ../../utils/net_rpc.c:743 #, c-format msgid "Deleted user '%s'.\n" msgstr "" -#: ../../utils/net_rpc.c:770 +#: ../../utils/net_rpc.c:789 #, c-format msgid "Failed to set password for '%s' with error: %s.\n" msgstr "" -#: ../../utils/net_rpc.c:813 +#: ../../utils/net_rpc.c:832 #, c-format msgid "Failed to get groups for '%s' with error: %s.\n" msgstr "" -#: ../../utils/net_rpc.c:910 +#: ../../utils/net_rpc.c:929 msgid "" "net rpc user add\n" " Add specified user" msgstr "" -#: ../../utils/net_rpc.c:917 +#: ../../utils/net_rpc.c:936 msgid "List domain groups of user" msgstr "" -#: ../../utils/net_rpc.c:918 +#: ../../utils/net_rpc.c:937 msgid "" "net rpc user info\n" " Lis domain groups of user" msgstr "" -#: ../../utils/net_rpc.c:926 +#: ../../utils/net_rpc.c:945 msgid "" "net rpc user delete\n" " Remove specified user" msgstr "" -#: ../../utils/net_rpc.c:934 +#: ../../utils/net_rpc.c:953 msgid "" "net rpc user password\n" " Change user password" msgstr "" -#: ../../utils/net_rpc.c:941 +#: ../../utils/net_rpc.c:960 msgid "Rename specified user" msgstr "" -#: ../../utils/net_rpc.c:942 +#: ../../utils/net_rpc.c:961 msgid "" "net rpc user rename\n" " Rename specified user" msgstr "" -#: ../../utils/net_rpc.c:961 +#: ../../utils/net_rpc.c:980 msgid "" "net rpc user\n" " List all users\n" msgstr "" -#: ../../utils/net_rpc.c:1011 +#: ../../utils/net_rpc.c:1030 #, c-format msgid "usage: %s <username>\n" msgstr "" -#: ../../utils/net_rpc.c:1022 +#: ../../utils/net_rpc.c:1041 #, c-format msgid "Could not lookup %s: %s\n" msgstr "" -#: ../../utils/net_rpc.c:1028 -#: ../../utils/net_sam.c:52 -#: ../../utils/net_sam.c:157 -#: ../../utils/net_sam.c:249 +#: ../../utils/net_rpc.c:1047 ../../utils/net_sam.c:52 ../../utils/net_sam.c:157 ../../utils/net_sam.c:249 #, c-format msgid "%s is a %s, not a user\n" msgstr "" -#: ../../utils/net_rpc.c:1035 +#: ../../utils/net_rpc.c:1054 #, c-format msgid "%s is not in our domain\n" msgstr "" -#: ../../utils/net_rpc.c:1092 +#: ../../utils/net_rpc.c:1111 #, c-format msgid "usage: %s show <username>\n" msgstr "" -#: ../../utils/net_rpc.c:1104 +#: ../../utils/net_rpc.c:1123 #, c-format msgid "user rid: %d, group rid: %d\n" msgstr "" -#: ../../utils/net_rpc.c:1145 +#: ../../utils/net_rpc.c:1164 #, c-format msgid "usage: %s <username> [new value|NULL]\n" msgstr "" -#: ../../utils/net_rpc.c:1168 +#: ../../utils/net_rpc.c:1187 #, c-format msgid "%s's %s: [%s]\n" msgstr "" -#: ../../utils/net_rpc.c:1190 +#: ../../utils/net_rpc.c:1209 #, c-format msgid "Set %s's %s from [%s] to [%s]\n" msgstr "" #. TRANSATORS: The yes|no here are program keywords. Please do #. not translate. -#: ../../utils/net_rpc.c:1236 +#: ../../utils/net_rpc.c:1255 #, c-format msgid "usage: %s <username> [yes|no]\n" msgstr "" -#: ../../utils/net_rpc.c:1261 +#: ../../utils/net_rpc.c:1280 #, c-format msgid "%s's %s flag: %s\n" msgstr "" -#: ../../utils/net_rpc.c:1277 +#: ../../utils/net_rpc.c:1296 #, c-format msgid "Set %s's %s flag from [%s] to [%s]\n" msgstr "" -#: ../../utils/net_rpc.c:1303 +#: ../../utils/net_rpc.c:1322 msgid "Show/Set a user's full name" msgstr "" -#: ../../utils/net_rpc.c:1306 +#: ../../utils/net_rpc.c:1325 msgid "Show/Set a user's home directory" msgstr "" -#: ../../utils/net_rpc.c:1309 +#: ../../utils/net_rpc.c:1328 msgid "Show/Set a user's home drive" msgstr "" -#: ../../utils/net_rpc.c:1312 +#: ../../utils/net_rpc.c:1331 msgid "Show/Set a user's logon script" msgstr "" -#: ../../utils/net_rpc.c:1315 +#: ../../utils/net_rpc.c:1334 msgid "Show/Set a user's profile path" msgstr "" -#: ../../utils/net_rpc.c:1318 +#: ../../utils/net_rpc.c:1337 msgid "Show/Set a user's description" msgstr "" -#: ../../utils/net_rpc.c:1321 +#: ../../utils/net_rpc.c:1340 msgid "Show/Set whether a user is disabled" msgstr "" -#: ../../utils/net_rpc.c:1324 +#: ../../utils/net_rpc.c:1343 msgid "Show/Set whether a user locked out" msgstr "" -#: ../../utils/net_rpc.c:1327 +#: ../../utils/net_rpc.c:1346 msgid "Show/Set whether a user does not need a password" msgstr "" -#: ../../utils/net_rpc.c:1330 +#: ../../utils/net_rpc.c:1349 msgid "Show/Set whether a user's password does not expire" msgstr "" -#: ../../utils/net_rpc.c:1345 +#: ../../utils/net_rpc.c:1364 msgid "List available users" msgstr "" -#: ../../utils/net_rpc.c:1348 +#: ../../utils/net_rpc.c:1367 msgid "List the domain groups a user is member of" msgstr "" -#: ../../utils/net_rpc.c:1351 +#: ../../utils/net_rpc.c:1370 msgid "Show info about a user" msgstr "" -#: ../../utils/net_rpc.c:1354 +#: ../../utils/net_rpc.c:1373 msgid "Show/Modify a user's fields" msgstr "" -#: ../../utils/net_rpc.c:1425 +#: ../../utils/net_rpc.c:1444 msgid "Request samr_Connect2 failed\n" msgstr "" -#: ../../utils/net_rpc.c:1436 +#: ../../utils/net_rpc.c:1455 msgid "Request open_domain failed\n" msgstr "" -#: ../../utils/net_rpc.c:1449 +#: ../../utils/net_rpc.c:1468 #, c-format msgid "Lookup of '%s' failed\n" msgstr "" -#: ../../utils/net_rpc.c:1462 +#: ../../utils/net_rpc.c:1481 msgid "Request open_group failed" msgstr "" -#: ../../utils/net_rpc.c:1474 +#: ../../utils/net_rpc.c:1493 #, c-format msgid "Unable to query group members of %s" msgstr "" -#: ../../utils/net_rpc.c:1481 +#: ../../utils/net_rpc.c:1500 #, c-format msgid "Domain Group %s (rid: %d) has %d members\n" msgstr "" -#: ../../utils/net_rpc.c:1496 +#: ../../utils/net_rpc.c:1515 #, c-format msgid "Unable to open group member %d\n" msgstr "" -#: ../../utils/net_rpc.c:1508 +#: ../../utils/net_rpc.c:1527 #, c-format msgid "Unable to lookup userinfo for group member %d\n" msgstr "" -#: ../../utils/net_rpc.c:1516 +#: ../../utils/net_rpc.c:1535 #, c-format msgid "Group is primary group of %s\n" msgstr "" -#: ../../utils/net_rpc.c:1527 +#: ../../utils/net_rpc.c:1546 msgid "Unable to delete group because some of it's members have it as primary group\n" msgstr "" -#: ../../utils/net_rpc.c:1538 +#: ../../utils/net_rpc.c:1557 #, c-format msgid "Remove group member %d..." msgstr "" -#: ../../utils/net_rpc.c:1546 -#: ../../utils/net_rpc_registry.c:1053 -#: ../../utils/net_rpc_registry.c:1073 -#: ../../utils/net_rpc_registry.c:1098 -#: ../../utils/net_rpc_registry.c:1105 -#: ../../utils/net_rpc_registry.c:1125 -#: ../../utils/net_rpc_registry.c:1131 +#: ../../utils/net_rpc.c:1565 ../../utils/net_rpc_registry.c:1092 ../../utils/net_rpc_registry.c:1112 ../../utils/net_rpc_registry.c:1137 ../../utils/net_rpc_registry.c:1144 ../../utils/net_rpc_registry.c:1164 ../../utils/net_rpc_registry.c:1170 msgid "ok\n" msgstr "" -#: ../../utils/net_rpc.c:1549 +#: ../../utils/net_rpc.c:1568 msgid "failed\n" msgstr "" -#: ../../utils/net_rpc.c:1567 +#: ../../utils/net_rpc.c:1586 msgid "Request open_alias failed\n" msgstr "" -#: ../../utils/net_rpc.c:1575 +#: ../../utils/net_rpc.c:1594 #, c-format msgid "%s is of type %s. This command is only for deleting local or global groups\n" msgstr "" -#: ../../utils/net_rpc.c:1584 +#: ../../utils/net_rpc.c:1603 #, c-format msgid "Deleted %s '%s'\n" msgstr "" -#: ../../utils/net_rpc.c:1587 +#: ../../utils/net_rpc.c:1606 #, c-format msgid "Deleting of %s failed: %s\n" msgstr "" -#: ../../utils/net_rpc.c:1624 +#: ../../utils/net_rpc.c:1643 #, c-format msgid "Failed to add group '%s' with error: %s.\n" msgstr "" -#: ../../utils/net_rpc.c:1629 +#: ../../utils/net_rpc.c:1648 #, c-format msgid "Added group '%s'.\n" msgstr "" -#: ../../utils/net_rpc.c:1657 +#: ../../utils/net_rpc.c:1676 #, c-format msgid "Failed to add alias '%s' with error: %s.\n" msgstr "" -#: ../../utils/net_rpc.c:1662 +#: ../../utils/net_rpc.c:1681 #, c-format msgid "Added alias '%s'.\n" msgstr "" -#: ../../utils/net_rpc.c:1782 -#: ../../utils/net_rpc.c:1832 -#: ../../utils/net_rpc.c:1989 -#: ../../utils/net_rpc.c:2036 +#: ../../utils/net_rpc.c:1801 ../../utils/net_rpc.c:1851 ../../utils/net_rpc.c:2008 ../../utils/net_rpc.c:2055 #, c-format msgid "Could not lookup up group member %s\n" msgstr "" -#: ../../utils/net_rpc.c:1892 +#: ../../utils/net_rpc.c:1911 msgid "" "Usage:\n" "net rpc group addmem <group> <member>\n" @@ -4894,24 +4793,22 @@ msgid "" " member\tMember to add to group\n" msgstr "" -#: ../../utils/net_rpc.c:1902 -#: ../../utils/net_rpc.c:2104 +#: ../../utils/net_rpc.c:1921 ../../utils/net_rpc.c:2123 #, c-format msgid "Could not lookup group name %s\n" msgstr "" -#: ../../utils/net_rpc.c:1912 -#: ../../utils/net_rpc.c:1923 +#: ../../utils/net_rpc.c:1931 ../../utils/net_rpc.c:1942 #, c-format msgid "Could not add %s to %s: %s\n" msgstr "" -#: ../../utils/net_rpc.c:1929 +#: ../../utils/net_rpc.c:1948 #, c-format msgid "Can only add members to global or local groups which %s is not\n" msgstr "" -#: ../../utils/net_rpc.c:2094 +#: ../../utils/net_rpc.c:2113 msgid "" "Usage:\n" "net rpc group delmem <group> <member>\n" @@ -4920,18 +4817,17 @@ msgid "" " member\tMember to delete from group\n" msgstr "" -#: ../../utils/net_rpc.c:2114 -#: ../../utils/net_rpc.c:2125 +#: ../../utils/net_rpc.c:2133 ../../utils/net_rpc.c:2144 #, c-format msgid "Could not del %s from %s: %s\n" msgstr "" -#: ../../utils/net_rpc.c:2131 +#: ../../utils/net_rpc.c:2150 #, c-format msgid "Can only delete members from global or local groups which %s is not\n" msgstr "" -#: ../../utils/net_rpc.c:2178 +#: ../../utils/net_rpc.c:2197 msgid "" "Usage:\n" "net rpc group list [global] [local] [builtin]\n" @@ -4942,353 +4838,338 @@ msgid "" " If none of global, local or builtin is specified, all three options are considered set\n" msgstr "" -#: ../../utils/net_rpc.c:2499 +#: ../../utils/net_rpc.c:2518 msgid "Couldn't list alias members\n" msgstr "" -#: ../../utils/net_rpc.c:2513 +#: ../../utils/net_rpc.c:2532 #, c-format msgid "Couldn't open LSA pipe. Error was %s\n" msgstr "" -#: ../../utils/net_rpc.c:2522 +#: ../../utils/net_rpc.c:2541 msgid "Couldn't open LSA policy handle\n" msgstr "" -#: ../../utils/net_rpc.c:2529 +#: ../../utils/net_rpc.c:2548 msgid "Out of memory\n" msgstr "" -#: ../../utils/net_rpc.c:2544 +#: ../../utils/net_rpc.c:2563 msgid "Couldn't lookup SIDs\n" msgstr "" -#: ../../utils/net_rpc.c:2555 -#: ../../utils/net_rpc.c:2556 +#: ../../utils/net_rpc.c:2574 ../../utils/net_rpc.c:2575 msgid "*unknown*" msgstr "" -#: ../../utils/net_rpc.c:2630 -#: ../../utils/net_rpc.c:2643 -#: ../../utils/net_rpc.c:2650 +#: ../../utils/net_rpc.c:2649 ../../utils/net_rpc.c:2662 ../../utils/net_rpc.c:2669 #, c-format msgid "Couldn't find group %s\n" msgstr "" -#: ../../utils/net_rpc.c:2687 +#: ../../utils/net_rpc.c:2706 msgid "Usage: 'net rpc group rename group newname'\n" msgstr "" -#: ../../utils/net_rpc.c:2700 +#: ../../utils/net_rpc.c:2719 #, c-format msgid "Renaming group %s failed with: %s\n" msgstr "" -#: ../../utils/net_rpc.c:2734 +#: ../../utils/net_rpc.c:2753 msgid "Create specified group" msgstr "" -#: ../../utils/net_rpc.c:2735 +#: ../../utils/net_rpc.c:2754 msgid "" "net rpc group add\n" " Create specified group" msgstr "" -#: ../../utils/net_rpc.c:2743 +#: ../../utils/net_rpc.c:2762 msgid "" "net rpc group delete\n" " Delete specified group" msgstr "" -#: ../../utils/net_rpc.c:2750 +#: ../../utils/net_rpc.c:2769 msgid "Add member to group" msgstr "" -#: ../../utils/net_rpc.c:2751 +#: ../../utils/net_rpc.c:2770 msgid "" "net rpc group addmem\n" " Add member to group" msgstr "" -#: ../../utils/net_rpc.c:2758 +#: ../../utils/net_rpc.c:2777 msgid "Remove member from group" msgstr "" -#: ../../utils/net_rpc.c:2759 +#: ../../utils/net_rpc.c:2778 msgid "" "net rpc group delmem\n" " Remove member from group" msgstr "" -#: ../../utils/net_rpc.c:2766 +#: ../../utils/net_rpc.c:2785 msgid "List groups" msgstr "" -#: ../../utils/net_rpc.c:2767 +#: ../../utils/net_rpc.c:2786 msgid "" "net rpc group list\n" " List groups" msgstr "" -#: ../../utils/net_rpc.c:2774 -#: ../../utils/net_sam.c:2053 +#: ../../utils/net_rpc.c:2793 ../../utils/net_sam.c:2053 msgid "List group members" msgstr "" -#: ../../utils/net_rpc.c:2775 +#: ../../utils/net_rpc.c:2794 msgid "" "net rpc group members\n" " List group members" msgstr "" -#: ../../utils/net_rpc.c:2782 +#: ../../utils/net_rpc.c:2801 msgid "Rename group" msgstr "" -#: ../../utils/net_rpc.c:2783 +#: ../../utils/net_rpc.c:2802 msgid "" "net rpc group rename\n" " Rename group" msgstr "" -#: ../../utils/net_rpc.c:2802 +#: ../../utils/net_rpc.c:2821 msgid "" "net rpc group\n" " Alias for net rpc group list global local builtin\n" msgstr "" -#: ../../utils/net_rpc.c:2874 +#: ../../utils/net_rpc.c:2893 #, c-format msgid "NetShareAdd failed with: %s\n" msgstr "" -#: ../../utils/net_rpc.c:3025 +#: ../../utils/net_rpc.c:3044 msgid "" "Usage\n" "net rpc share list\n" " List shares on remote server\n" msgstr "" -#: ../../utils/net_rpc.c:3059 +#: ../../utils/net_rpc.c:3081 #, c-format msgid "skipping [%s]: not a file share.\n" msgstr "" -#: ../../utils/net_rpc.c:3074 +#: ../../utils/net_rpc.c:3087 +#, c-format +msgid "cli_tdis returned %s\n" +msgstr "" + +#: ../../utils/net_rpc.c:3099 #, c-format msgid "share [%s] is not a diskshare (type: %x)\n" msgstr "" -#: ../../utils/net_rpc.c:3086 +#: ../../utils/net_rpc.c:3111 #, c-format msgid "excluding [%s]\n" msgstr "" #. finally add the share on the dst server -#: ../../utils/net_rpc.c:3153 +#: ../../utils/net_rpc.c:3178 #, c-format msgid "migrating: [%s], path: %s, comment: %s, without share-ACLs\n" msgstr "" -#: ../../utils/net_rpc.c:3167 +#: ../../utils/net_rpc.c:3192 #, c-format msgid " [%s] does already exist\n" msgstr "" -#: ../../utils/net_rpc.c:3173 +#: ../../utils/net_rpc.c:3198 #, c-format msgid "cannot add share: %s\n" msgstr "" -#: ../../utils/net_rpc.c:3203 +#: ../../utils/net_rpc.c:3228 msgid "" "Usage:\n" "net rpc share migrate shares\n" " Migrate shares to local server\n" msgstr "" -#: ../../utils/net_rpc.c:3210 -#: ../../utils/net_rpc.c:3543 -#: ../../utils/net_rpc.c:3668 -#: ../../utils/net_rpc.c:3701 -#: ../../utils/net_rpc.c:6476 -#: ../../utils/net_rpc.c:6530 -#: ../../utils/net_rpc.c:6560 -#: ../../utils/net_rpc.c:6590 -#: ../../utils/net_rpc.c:6620 -#: ../../utils/net_rpc.c:6651 +#: ../../utils/net_rpc.c:3235 ../../utils/net_rpc.c:3568 ../../utils/net_rpc.c:3693 ../../utils/net_rpc.c:3726 ../../utils/net_rpc.c:6505 ../../utils/net_rpc.c:6559 ../../utils/net_rpc.c:6589 ../../utils/net_rpc.c:6619 ../../utils/net_rpc.c:6649 +#: ../../utils/net_rpc.c:6680 #, c-format msgid "no server to migrate\n" msgstr "" -#: ../../utils/net_rpc.c:3270 -#: ../../utils/net_rpc.c:3382 -#: ../../utils/net_rpc.c:3465 +#: ../../utils/net_rpc.c:3295 ../../utils/net_rpc.c:3407 ../../utils/net_rpc.c:3490 #, c-format msgid "Unsupported mode %d\n" msgstr "" -#: ../../utils/net_rpc.c:3275 +#: ../../utils/net_rpc.c:3300 #, c-format msgid "could not handle dir %s: %s\n" msgstr "" -#: ../../utils/net_rpc.c:3285 +#: ../../utils/net_rpc.c:3310 #, c-format msgid "could not handle files\n" msgstr "" -#: ../../utils/net_rpc.c:3312 +#: ../../utils/net_rpc.c:3337 #, c-format msgid "Unsupported file mode %d\n" msgstr "" -#: ../../utils/net_rpc.c:3318 +#: ../../utils/net_rpc.c:3343 #, c-format msgid "could not handle file %s: %s\n" msgstr "" -#: ../../utils/net_rpc.c:3341 +#: ../../utils/net_rpc.c:3366 #, c-format msgid "cli_resolve_path %s failed with error: %s\n" msgstr "" -#: ../../utils/net_rpc.c:3348 +#: ../../utils/net_rpc.c:3373 #, c-format msgid "listing %s failed with error: %s\n" msgstr "" -#: ../../utils/net_rpc.c:3387 +#: ../../utils/net_rpc.c:3412 #, c-format msgid "Could handle directory attributes for top level directory of share %s. Error %s\n" msgstr "" -#: ../../utils/net_rpc.c:3454 +#: ../../utils/net_rpc.c:3479 #, c-format msgid "skipping [%s]: builtin/hidden share\n" msgstr "" -#: ../../utils/net_rpc.c:3469 +#: ../../utils/net_rpc.c:3494 #, c-format msgid " [%s] files and directories %s ACLs, %s DOS Attributes %s\n" msgstr "" -#: ../../utils/net_rpc.c:3472 -#: ../../utils/net_rpc.c:3473 +#: ../../utils/net_rpc.c:3497 ../../utils/net_rpc.c:3498 msgid "including" msgstr "" -#: ../../utils/net_rpc.c:3472 -#: ../../utils/net_rpc.c:3473 -#: ../../utils/net_rpc_printer.c:371 -#: ../../utils/net_rpc_printer.c:372 +#: ../../utils/net_rpc.c:3497 ../../utils/net_rpc.c:3498 ../../utils/net_rpc_printer.c:370 ../../utils/net_rpc_printer.c:371 msgid "without" msgstr "" -#: ../../utils/net_rpc.c:3474 -#: ../../utils/net_rpc_printer.c:373 +#: ../../utils/net_rpc.c:3499 ../../utils/net_rpc_printer.c:372 msgid "(preserving timestamps)" msgstr "" -#: ../../utils/net_rpc.c:3503 +#: ../../utils/net_rpc.c:3528 #, c-format msgid "Could not handle the top level directory permissions for the share: %s\n" msgstr "" -#: ../../utils/net_rpc.c:3511 +#: ../../utils/net_rpc.c:3536 #, c-format msgid "could not handle files for share: %s\n" msgstr "" -#: ../../utils/net_rpc.c:3536 +#: ../../utils/net_rpc.c:3561 msgid "" "Usage:\n" "net share migrate files\n" " Migrate files to local server\n" msgstr "" -#: ../../utils/net_rpc.c:3611 +#: ../../utils/net_rpc.c:3636 #, c-format msgid "migrating: [%s], path: %s, comment: %s, including share-ACLs\n" msgstr "" -#: ../../utils/net_rpc.c:3630 +#: ../../utils/net_rpc.c:3655 #, c-format msgid "cannot set share-acl: %s\n" msgstr "" -#: ../../utils/net_rpc.c:3661 +#: ../../utils/net_rpc.c:3686 msgid "" "Usage:\n" "net rpc share migrate security\n" " Migrate share-acls to local server\n" msgstr "" -#: ../../utils/net_rpc.c:3694 +#: ../../utils/net_rpc.c:3719 msgid "" "Usage:\n" "net rpc share migrate all\n" " Migrates shares including all share settings\n" msgstr "" -#: ../../utils/net_rpc.c:3738 -#: ../../utils/net_rpc.c:3762 +#: ../../utils/net_rpc.c:3763 ../../utils/net_rpc.c:3787 msgid "Migrate shares from remote to local server" msgstr "" -#: ../../utils/net_rpc.c:3739 +#: ../../utils/net_rpc.c:3764 msgid "" "net rpc share migrate all\n" " Migrate shares from remote to local server" msgstr "" -#: ../../utils/net_rpc.c:3746 +#: ../../utils/net_rpc.c:3771 msgid "Migrate files from remote to local server" msgstr "" -#: ../../utils/net_rpc.c:3747 +#: ../../utils/net_rpc.c:3772 msgid "" "net rpc share migrate files\n" " Migrate files from remote to local server" msgstr "" -#: ../../utils/net_rpc.c:3754 +#: ../../utils/net_rpc.c:3779 msgid "Migrate share-ACLs from remote to local server" msgstr "" -#: ../../utils/net_rpc.c:3755 +#: ../../utils/net_rpc.c:3780 msgid "" "net rpc share migrate security\n" " Migrate share-ACLs from remote to local server" msgstr "" -#: ../../utils/net_rpc.c:3763 +#: ../../utils/net_rpc.c:3788 msgid "" "net rpc share migrate shares\n" " Migrate shares from remote to local server" msgstr "" -#: ../../utils/net_rpc.c:3991 +#: ../../utils/net_rpc.c:4016 msgid "malloc failed\n" msgstr "" -#: ../../utils/net_rpc.c:4178 +#: ../../utils/net_rpc.c:4203 msgid "winbind use default domain = yes set, please specify a workgroup\n" msgstr "" -#: ../../utils/net_rpc.c:4187 +#: ../../utils/net_rpc.c:4212 #, c-format msgid "winbind could not list users: %s\n" msgstr "" -#: ../../utils/net_rpc.c:4496 +#: ../../utils/net_rpc.c:4522 msgid "" "Usage:\n" "net rpc share allowedusers\n" " List allowed users\n" msgstr "" -#: ../../utils/net_rpc.c:4546 +#: ../../utils/net_rpc.c:4572 msgid "" "net usersidlist\n" "\tprints out a list of all users the running winbind knows\n" @@ -5297,57 +5178,57 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_rpc.c:4571 +#: ../../utils/net_rpc.c:4597 msgid "Add share" msgstr "" -#: ../../utils/net_rpc.c:4572 +#: ../../utils/net_rpc.c:4598 msgid "" "net rpc share add\n" " Add share" msgstr "" -#: ../../utils/net_rpc.c:4579 +#: ../../utils/net_rpc.c:4605 msgid "Remove share" msgstr "" -#: ../../utils/net_rpc.c:4580 +#: ../../utils/net_rpc.c:4606 msgid "" "net rpc share delete\n" " Remove share" msgstr "" -#: ../../utils/net_rpc.c:4587 +#: ../../utils/net_rpc.c:4613 msgid "Modify allowed users" msgstr "" -#: ../../utils/net_rpc.c:4588 +#: ../../utils/net_rpc.c:4614 msgid "" "net rpc share allowedusers\n" " Modify allowed users" msgstr "" -#: ../../utils/net_rpc.c:4595 +#: ../../utils/net_rpc.c:4621 msgid "Migrate share to local server" msgstr "" -#: ../../utils/net_rpc.c:4596 +#: ../../utils/net_rpc.c:4622 msgid "" "net rpc share migrate\n" " Migrate share to local server" msgstr "" -#: ../../utils/net_rpc.c:4603 +#: ../../utils/net_rpc.c:4629 msgid "List shares" msgstr "" -#: ../../utils/net_rpc.c:4604 +#: ../../utils/net_rpc.c:4630 msgid "" "net rpc share list\n" " List shares" msgstr "" -#: ../../utils/net_rpc.c:4622 +#: ../../utils/net_rpc.c:4648 msgid "" "Usage:\n" "net rpc share\n" @@ -5355,54 +5236,53 @@ msgid "" " Alias for net rpc share list\n" msgstr "" -#: ../../utils/net_rpc.c:4657 +#: ../../utils/net_rpc.c:4683 #, c-format msgid "usage: %s <share> <path> [comment]\n" msgstr "" -#: ../../utils/net_rpc.c:4686 -#: ../../utils/net_rpc.c:4704 +#: ../../utils/net_rpc.c:4712 ../../utils/net_rpc.c:4730 #, c-format msgid "usage: %s <share>\n" msgstr "" -#: ../../utils/net_rpc.c:4718 +#: ../../utils/net_rpc.c:4744 #, c-format msgid "Name: %s\n" msgstr "" -#: ../../utils/net_rpc.c:4719 +#: ../../utils/net_rpc.c:4745 #, c-format msgid "Comment: %s\n" msgstr "" -#: ../../utils/net_rpc.c:4720 +#: ../../utils/net_rpc.c:4746 #, c-format msgid "Path: %s\n" msgstr "" -#: ../../utils/net_rpc.c:4721 +#: ../../utils/net_rpc.c:4747 #, c-format msgid "Password: %s\n" msgstr "" -#: ../../utils/net_rpc.c:4733 +#: ../../utils/net_rpc.c:4759 msgid "List available shares" msgstr "" -#: ../../utils/net_rpc.c:4736 +#: ../../utils/net_rpc.c:4762 msgid "Add a share" msgstr "" -#: ../../utils/net_rpc.c:4739 +#: ../../utils/net_rpc.c:4765 msgid "Delete a share" msgstr "" -#: ../../utils/net_rpc.c:4742 +#: ../../utils/net_rpc.c:4768 msgid "Get information about a share" msgstr "" -#: ../../utils/net_rpc.c:4834 +#: ../../utils/net_rpc.c:4860 msgid "" "\n" "Enumerating open files on remote server:\n" @@ -5412,137 +5292,134 @@ msgid "" "------ --------- ----- ----- ---- \n" msgstr "" -#: ../../utils/net_rpc.c:4860 +#: ../../utils/net_rpc.c:4886 msgid "Close opened file" msgstr "" -#: ../../utils/net_rpc.c:4861 +#: ../../utils/net_rpc.c:4887 msgid "" "net rpc file close\n" " Close opened file" msgstr "" -#: ../../utils/net_rpc.c:4868 +#: ../../utils/net_rpc.c:4894 msgid "List files opened by user" msgstr "" -#: ../../utils/net_rpc.c:4869 +#: ../../utils/net_rpc.c:4895 msgid "" "net rpc file user\n" " List files opened by user" msgstr "" -#: ../../utils/net_rpc.c:4877 +#: ../../utils/net_rpc.c:4903 msgid "Display information about opened file" msgstr "" -#: ../../utils/net_rpc.c:4878 +#: ../../utils/net_rpc.c:4904 msgid "" "net rpc file info\n" " Display information about opened file" msgstr "" -#: ../../utils/net_rpc.c:4898 +#: ../../utils/net_rpc.c:4924 msgid "" "net rpc file\n" " List opened files\n" msgstr "" -#: ../../utils/net_rpc.c:4941 -#: ../../utils/net_rpc.c:4980 +#: ../../utils/net_rpc.c:4967 ../../utils/net_rpc.c:5006 msgid "" "\n" "Shutdown successfully aborted\n" msgstr "" -#: ../../utils/net_rpc.c:5004 +#: ../../utils/net_rpc.c:5030 msgid "" "Usage:\n" "net rpc abortshutdown\n" " Abort a scheduled shutdown\n" msgstr "" -#: ../../utils/net_rpc.c:5050 -#: ../../utils/net_rpc.c:5103 +#: ../../utils/net_rpc.c:5076 ../../utils/net_rpc.c:5129 msgid "This machine will be shutdown shortly" msgstr "" -#: ../../utils/net_rpc.c:5069 -#: ../../utils/net_rpc.c:5124 +#: ../../utils/net_rpc.c:5095 ../../utils/net_rpc.c:5150 msgid "" "\n" "Shutdown of remote machine succeeded\n" msgstr "" -#: ../../utils/net_rpc.c:5151 +#: ../../utils/net_rpc.c:5177 msgid "" "Usage:\n" "net rpc shutdown\n" " Shut down a remote RPC server\n" msgstr "" -#: ../../utils/net_rpc.c:5210 +#: ../../utils/net_rpc.c:5236 msgid "Usage: net rpc trustdom add <domain_name> <trust password>\n" msgstr "" -#: ../../utils/net_rpc.c:5272 +#: ../../utils/net_rpc.c:5298 #, c-format msgid "net rpc trustdom add: create user %s failed %s\n" msgstr "" -#: ../../utils/net_rpc.c:5323 +#: ../../utils/net_rpc.c:5349 msgid "" "Usage:\n" "net rpc trustdom add <domain_name> <trust password>\n" msgstr "" -#: ../../utils/net_rpc.c:5364 +#: ../../utils/net_rpc.c:5390 msgid "Usage: net rpc trustdom del <domain_name>\n" msgstr "" -#: ../../utils/net_rpc.c:5407 +#: ../../utils/net_rpc.c:5433 #, c-format msgid "net rpc trustdom del: LookupNames on user %s failed %s\n" msgstr "" -#: ../../utils/net_rpc.c:5420 +#: ../../utils/net_rpc.c:5446 #, c-format msgid "net rpc trustdom del: OpenUser on user %s failed %s\n" msgstr "" -#: ../../utils/net_rpc.c:5438 +#: ../../utils/net_rpc.c:5464 #, c-format msgid "net rpc trustdom del: RemoveMemberFromForeignDomain on user %s failed %s\n" msgstr "" -#: ../../utils/net_rpc.c:5450 +#: ../../utils/net_rpc.c:5476 #, c-format msgid "net rpc trustdom del: DeleteUser on user %s failed %s\n" msgstr "" -#: ../../utils/net_rpc.c:5457 +#: ../../utils/net_rpc.c:5483 #, c-format msgid "Could not set trust account password: %s\n" msgstr "Konnte Passwort für trust account nicht stetzen: %s\n" -#: ../../utils/net_rpc.c:5481 +#: ../../utils/net_rpc.c:5507 msgid "" "Usage:\n" "net rpc trustdom del <domain>\n" msgstr "" -#: ../../utils/net_rpc.c:5564 +#: ../../utils/net_rpc.c:5590 msgid "" "Usage:\n" "net rpc trustdom establish <domain_name>\n" msgstr "" -#: ../../utils/net_rpc.c:5707 +#: ../../utils/net_rpc.c:5733 #, c-format msgid "Trust to domain %s established\n" msgstr "" -#: ../../utils/net_rpc.c:5728 +#: ../../utils/net_rpc.c:5754 msgid "" "Usage:\n" "net rpc trustdom revoke <domain_name>\n" @@ -5550,7 +5427,7 @@ msgid "" " domain_name\tName of domain to revoke trust\n" msgstr "" -#: ../../utils/net_rpc.c:5863 +#: ../../utils/net_rpc.c:5885 msgid "" "Usage:\n" "net rpc trustdom vampire\n" @@ -5561,7 +5438,7 @@ msgstr "" #. * Keep calling LsaEnumTrustdom over opened pipe until #. * the end of enumeration is reached #. -#: ../../utils/net_rpc.c:5939 +#: ../../utils/net_rpc.c:5961 msgid "" "Vampire trusted domains:\n" "\n" @@ -5571,23 +5448,22 @@ msgstr "" #. * in case of no trusted domains say something rather #. * than just display blank line #. -#: ../../utils/net_rpc.c:5974 -#: ../../utils/net_rpc.c:6121 +#: ../../utils/net_rpc.c:5996 ../../utils/net_rpc.c:6150 msgid "none\n" msgstr "" -#: ../../utils/net_rpc.c:6020 +#: ../../utils/net_rpc.c:6042 msgid "" "Usage:\n" "net rpc trustdom list\n" -" List trust relationships\n" +" List in- and outgoing trust relationships\n" msgstr "" #. #. * Keep calling LsaEnumTrustdom over opened pipe until #. * the end of enumeration is reached #. -#: ../../utils/net_rpc.c:6096 +#: ../../utils/net_rpc.c:6118 msgid "" "Trusted domains list:\n" "\n" @@ -5596,333 +5472,336 @@ msgstr "" #. #. * Listing trusting domains (stored in passdb backend, if local) #. -#: ../../utils/net_rpc.c:6141 +#: ../../utils/net_rpc.c:6169 msgid "" "\n" "Trusting domains list:\n" "\n" msgstr "" -#: ../../utils/net_rpc.c:6244 -msgid "couldn't get domain's sid\n" +#: ../../utils/net_rpc.c:6270 +msgid "strange - couldn't get domain's sid\n" msgstr "" -#: ../../utils/net_rpc.c:6249 +#: ../../utils/net_rpc.c:6275 #, c-format msgid "domain controller is not responding: %s\n" msgstr "" -#: ../../utils/net_rpc.c:6293 -msgid "Add trusted domain's account" +#: ../../utils/net_rpc.c:6278 +msgid "couldn't get domain's sid\n" +msgstr "" + +#: ../../utils/net_rpc.c:6322 +msgid "Add trusting domain's account" msgstr "" -#: ../../utils/net_rpc.c:6294 +#: ../../utils/net_rpc.c:6323 msgid "" "net rpc trustdom add\n" -" Add trusted domain's account" +" Add trusting domain's account" msgstr "" -#: ../../utils/net_rpc.c:6301 -msgid "Remove trusted domain's account" +#: ../../utils/net_rpc.c:6330 +msgid "Remove trusting domain's account" msgstr "" -#: ../../utils/net_rpc.c:6302 +#: ../../utils/net_rpc.c:6331 msgid "" "net rpc trustdom del\n" -" Remove trusted domain's account" +" Remove trusting domain's account" msgstr "" -#: ../../utils/net_rpc.c:6309 -msgid "Establish trust relationship" +#: ../../utils/net_rpc.c:6338 +msgid "Establish outgoing trust relationship" msgstr "" -#: ../../utils/net_rpc.c:6310 +#: ../../utils/net_rpc.c:6339 msgid "" "net rpc trustdom establish\n" -" Establish trust relationship" +" Establish outgoing trust relationship" msgstr "" -#: ../../utils/net_rpc.c:6317 -msgid "Revoke trust relationship" +#: ../../utils/net_rpc.c:6346 +msgid "Revoke outgoing trust relationship" msgstr "" -#: ../../utils/net_rpc.c:6318 +#: ../../utils/net_rpc.c:6347 msgid "" "net rpc trustdom revoke\n" -" Revoke trust relationship" +" Revoke outgoing trust relationship" msgstr "" -#: ../../utils/net_rpc.c:6325 -msgid "List domain trusts" +#: ../../utils/net_rpc.c:6354 +msgid "List in- and outgoing domain trusts" msgstr "" -#: ../../utils/net_rpc.c:6326 +#: ../../utils/net_rpc.c:6355 msgid "" "net rpc trustdom list\n" -" List domain trusts" +" List in- and outgoing domain trusts" msgstr "" -#: ../../utils/net_rpc.c:6333 +#: ../../utils/net_rpc.c:6362 msgid "Vampire trusts from remote server" msgstr "" -#: ../../utils/net_rpc.c:6334 +#: ../../utils/net_rpc.c:6363 msgid "" "net rpc trustdom vampire\n" " Vampire trusts from remote server" msgstr "" -#: ../../utils/net_rpc.c:6386 +#: ../../utils/net_rpc.c:6415 msgid "" "Usage:\n" "net rpc samdump\n" " Dump remote SAM database\n" msgstr "" -#: ../../utils/net_rpc.c:6405 +#: ../../utils/net_rpc.c:6434 msgid "Dump remote SAM database to ldif" msgstr "" -#: ../../utils/net_rpc.c:6406 +#: ../../utils/net_rpc.c:6435 msgid "" "net rpc vampire ldif\n" " Dump remote SAM database to LDIF file or stdout" msgstr "" -#: ../../utils/net_rpc.c:6414 +#: ../../utils/net_rpc.c:6443 msgid "Dump remote SAM database to Kerberos Keytab" msgstr "" -#: ../../utils/net_rpc.c:6415 +#: ../../utils/net_rpc.c:6444 msgid "" "net rpc vampire keytab\n" " Dump remote SAM database to Kerberos keytab file" msgstr "" -#: ../../utils/net_rpc.c:6423 +#: ../../utils/net_rpc.c:6452 msgid "Dump remote SAM database to passdb" msgstr "" -#: ../../utils/net_rpc.c:6424 +#: ../../utils/net_rpc.c:6453 msgid "" "net rpc vampire passdb\n" " Dump remote SAM database to passdb" msgstr "" -#: ../../utils/net_rpc.c:6433 +#: ../../utils/net_rpc.c:6462 msgid "" "Usage:\n" "net rpc vampire\n" " Vampire remote SAM database\n" msgstr "" -#: ../../utils/net_rpc.c:6469 +#: ../../utils/net_rpc.c:6498 msgid "" "Usage:\n" "net rpc printer migrate all\n" " Migrate everything from a print server\n" msgstr "" -#: ../../utils/net_rpc.c:6523 +#: ../../utils/net_rpc.c:6552 msgid "" "Usage:\n" "net rpc printer migrate drivers\n" " Migrate print-drivers from a print-server\n" msgstr "" -#: ../../utils/net_rpc.c:6553 +#: ../../utils/net_rpc.c:6582 msgid "" "Usage:\n" "net rpc printer migrate forms\n" " Migrate print-forms from a print-server\n" msgstr "" -#: ../../utils/net_rpc.c:6583 +#: ../../utils/net_rpc.c:6612 msgid "" "Usage:\n" "net rpc printer migrate printers\n" " Migrate printers from a print-server\n" msgstr "" -#: ../../utils/net_rpc.c:6613 +#: ../../utils/net_rpc.c:6642 msgid "" "Usage:\n" "net rpc printer migrate security\n" " Migrate printer-ACLs from a print-server\n" msgstr "" -#: ../../utils/net_rpc.c:6643 +#: ../../utils/net_rpc.c:6672 msgid "" "Usage:\n" "net rpc printer migrate settings\n" " Migrate printer-settings from a print-server\n" msgstr "" -#: ../../utils/net_rpc.c:6681 +#: ../../utils/net_rpc.c:6710 msgid "Migrate all from remote to local print server" msgstr "" -#: ../../utils/net_rpc.c:6682 +#: ../../utils/net_rpc.c:6711 msgid "" "net rpc printer migrate all\n" " Migrate all from remote to local print server" msgstr "" -#: ../../utils/net_rpc.c:6689 +#: ../../utils/net_rpc.c:6718 msgid "Migrate drivers to local server" msgstr "" -#: ../../utils/net_rpc.c:6690 +#: ../../utils/net_rpc.c:6719 msgid "" "net rpc printer migrate drivers\n" " Migrate drivers to local server" msgstr "" -#: ../../utils/net_rpc.c:6697 +#: ../../utils/net_rpc.c:6726 msgid "Migrate froms to local server" msgstr "" -#: ../../utils/net_rpc.c:6698 +#: ../../utils/net_rpc.c:6727 msgid "" "net rpc printer migrate forms\n" " Migrate froms to local server" msgstr "" -#: ../../utils/net_rpc.c:6705 +#: ../../utils/net_rpc.c:6734 msgid "Migrate printers to local server" msgstr "" -#: ../../utils/net_rpc.c:6706 +#: ../../utils/net_rpc.c:6735 msgid "" "net rpc printer migrate printers\n" " Migrate printers to local server" msgstr "" -#: ../../utils/net_rpc.c:6713 +#: ../../utils/net_rpc.c:6742 msgid "Mirgate printer ACLs to local server" msgstr "" -#: ../../utils/net_rpc.c:6714 +#: ../../utils/net_rpc.c:6743 msgid "" "net rpc printer migrate security\n" " Mirgate printer ACLs to local server" msgstr "" -#: ../../utils/net_rpc.c:6721 +#: ../../utils/net_rpc.c:6750 msgid "Migrate printer settings to local server" msgstr "" -#: ../../utils/net_rpc.c:6722 +#: ../../utils/net_rpc.c:6751 msgid "" "net rpc printer migrate settings\n" " Migrate printer settings to local server" msgstr "" -#: ../../utils/net_rpc.c:6745 +#: ../../utils/net_rpc.c:6774 msgid "" "Usage:\n" "net rpc printer list\n" " List printers on a remote RPC server\n" msgstr "" -#: ../../utils/net_rpc.c:6770 +#: ../../utils/net_rpc.c:6799 msgid "" "Usage:\n" "net rpc printer driver\n" " List printer-drivers on a remote RPC server\n" msgstr "" -#: ../../utils/net_rpc.c:6795 +#: ../../utils/net_rpc.c:6824 msgid "" "Usage:\n" "net rpc printer publish publish\n" " Publish printer in ADS via MSRPC\n" msgstr "" -#: ../../utils/net_rpc.c:6819 +#: ../../utils/net_rpc.c:6848 msgid "" "Usage:\n" "net rpc printer publish update\n" " Update printer in ADS via MSRPC\n" msgstr "" -#: ../../utils/net_rpc.c:6844 +#: ../../utils/net_rpc.c:6873 msgid "" "Usage:\n" "net rpc printer publish unpublish\n" " UnPublish printer in ADS via MSRPC\n" msgstr "" -#: ../../utils/net_rpc.c:6869 +#: ../../utils/net_rpc.c:6898 msgid "" "Usage:\n" "net rpc printer publish list\n" " List published printers via MSRPC\n" msgstr "" -#: ../../utils/net_rpc.c:6900 -#: ../../utils/net_rpc.c:7029 +#: ../../utils/net_rpc.c:6929 ../../utils/net_rpc.c:7058 msgid "Publish printer in AD" msgstr "" -#: ../../utils/net_rpc.c:6901 +#: ../../utils/net_rpc.c:6930 msgid "" "net rpc printer publish publish\n" " Publish printer in AD" msgstr "" -#: ../../utils/net_rpc.c:6908 +#: ../../utils/net_rpc.c:6937 msgid "Update printer in AD" msgstr "" -#: ../../utils/net_rpc.c:6909 +#: ../../utils/net_rpc.c:6938 msgid "" "net rpc printer publish update\n" " Update printer in AD" msgstr "" -#: ../../utils/net_rpc.c:6916 +#: ../../utils/net_rpc.c:6945 msgid "Unpublish printer" msgstr "" -#: ../../utils/net_rpc.c:6917 +#: ../../utils/net_rpc.c:6946 msgid "" "net rpc printer publish unpublish\n" " Unpublish printer" msgstr "" -#: ../../utils/net_rpc.c:6924 +#: ../../utils/net_rpc.c:6953 msgid "List published printers" msgstr "" -#: ../../utils/net_rpc.c:6925 +#: ../../utils/net_rpc.c:6954 msgid "" "net rpc printer publish list\n" " List published printers" msgstr "" -#: ../../utils/net_rpc.c:6934 +#: ../../utils/net_rpc.c:6963 msgid "" "net rpc printer publish\n" " List published printers\n" " Alias of net rpc printer publish list\n" msgstr "" -#: ../../utils/net_rpc.c:6961 +#: ../../utils/net_rpc.c:6990 msgid "" "net rpc printer LIST [printer] [misc. options] [targets]\n" "\tlists all printers on print-server\n" "\n" msgstr "" -#: ../../utils/net_rpc.c:6963 +#: ../../utils/net_rpc.c:6992 msgid "" "net rpc printer DRIVER [printer] [misc. options] [targets]\n" "\tlists all printer-drivers on print-server\n" "\n" msgstr "" -#: ../../utils/net_rpc.c:6965 +#: ../../utils/net_rpc.c:6994 msgid "" "net rpc printer PUBLISH action [printer] [misc. options] [targets]\n" "\tpublishes printer settings in Active Directory\n" @@ -5930,42 +5809,42 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_rpc.c:6968 +#: ../../utils/net_rpc.c:6997 msgid "" "net rpc printer MIGRATE PRINTERS [printer] [misc. options] [targets]\n" "\tmigrates printers from remote to local server\n" "\n" msgstr "" -#: ../../utils/net_rpc.c:6970 +#: ../../utils/net_rpc.c:6999 msgid "" "net rpc printer MIGRATE SETTINGS [printer] [misc. options] [targets]\n" "\tmigrates printer-settings from remote to local server\n" "\n" msgstr "" -#: ../../utils/net_rpc.c:6972 +#: ../../utils/net_rpc.c:7001 msgid "" "net rpc printer MIGRATE DRIVERS [printer] [misc. options] [targets]\n" "\tmigrates printer-drivers from remote to local server\n" "\n" msgstr "" -#: ../../utils/net_rpc.c:6974 +#: ../../utils/net_rpc.c:7003 msgid "" "net rpc printer MIGRATE FORMS [printer] [misc. options] [targets]\n" "\tmigrates printer-forms from remote to local server\n" "\n" msgstr "" -#: ../../utils/net_rpc.c:6976 +#: ../../utils/net_rpc.c:7005 msgid "" "net rpc printer MIGRATE SECURITY [printer] [misc. options] [targets]\n" "\tmigrates printer-ACLs from remote to local server\n" "\n" msgstr "" -#: ../../utils/net_rpc.c:6978 +#: ../../utils/net_rpc.c:7007 msgid "" "net rpc printer MIGRATE ALL [printer] [misc. options] [targets]\n" "\tmigrates drivers, forms, queues, settings and acls from\n" @@ -5973,154 +5852,154 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_rpc.c:6984 +#: ../../utils/net_rpc.c:7013 msgid "" "\t-v or --verbose\t\t\tgive verbose output\n" "\t --destination\t\tmigration target server (default: localhost)\n" msgstr "" -#: ../../utils/net_rpc.c:7005 +#: ../../utils/net_rpc.c:7034 msgid "List all printers on print server" msgstr "" -#: ../../utils/net_rpc.c:7006 +#: ../../utils/net_rpc.c:7035 msgid "" "net rpc printer list\n" " List all printers on print server" msgstr "" -#: ../../utils/net_rpc.c:7013 +#: ../../utils/net_rpc.c:7042 msgid "Migrate printer to local server" msgstr "" -#: ../../utils/net_rpc.c:7014 +#: ../../utils/net_rpc.c:7043 msgid "" "net rpc printer migrate\n" " Migrate printer to local server" msgstr "" -#: ../../utils/net_rpc.c:7021 +#: ../../utils/net_rpc.c:7050 msgid "List printer drivers" msgstr "" -#: ../../utils/net_rpc.c:7022 +#: ../../utils/net_rpc.c:7051 msgid "" "net rpc printer driver\n" " List printer drivers" msgstr "" -#: ../../utils/net_rpc.c:7030 +#: ../../utils/net_rpc.c:7059 msgid "" "net rpc printer publish\n" " Publish printer in AD" msgstr "" -#: ../../utils/net_rpc.c:7039 +#: ../../utils/net_rpc.c:7068 msgid "" "net rpc printer\n" " List printers\n" msgstr "" -#: ../../utils/net_rpc.c:7070 +#: ../../utils/net_rpc.c:7099 msgid "Modify global audit settings" msgstr "" -#: ../../utils/net_rpc.c:7071 +#: ../../utils/net_rpc.c:7100 msgid "" "net rpc audit\n" " Modify global audit settings" msgstr "" -#: ../../utils/net_rpc.c:7078 +#: ../../utils/net_rpc.c:7107 msgid "Show basic info about a domain" msgstr "" -#: ../../utils/net_rpc.c:7079 +#: ../../utils/net_rpc.c:7108 msgid "" "net rpc info\n" " Show basic info about a domain" msgstr "" -#: ../../utils/net_rpc.c:7086 +#: ../../utils/net_rpc.c:7115 msgid "Join a domain" msgstr "" -#: ../../utils/net_rpc.c:7087 +#: ../../utils/net_rpc.c:7116 msgid "" "net rpc join\n" " Join a domain" msgstr "" -#: ../../utils/net_rpc.c:7094 +#: ../../utils/net_rpc.c:7123 msgid "Join a domain created in server manager" msgstr "" -#: ../../utils/net_rpc.c:7095 +#: ../../utils/net_rpc.c:7124 msgid "" "net rpc oldjoin\n" " Join a domain created in server manager" msgstr "" -#: ../../utils/net_rpc.c:7102 +#: ../../utils/net_rpc.c:7131 msgid "Test that a join is valid" msgstr "" -#: ../../utils/net_rpc.c:7103 +#: ../../utils/net_rpc.c:7132 msgid "" "net rpc testjoin\n" " Test that a join is valid" msgstr "" -#: ../../utils/net_rpc.c:7111 +#: ../../utils/net_rpc.c:7140 msgid "" "net rpc user\n" " List/modify users" msgstr "" -#: ../../utils/net_rpc.c:7118 +#: ../../utils/net_rpc.c:7147 msgid "Change a user password" msgstr "Benutzerpasswort ändern" -#: ../../utils/net_rpc.c:7119 +#: ../../utils/net_rpc.c:7148 msgid "" "net rpc password\n" " Change a user password\n" " Alias for net rpc user password" msgstr "" -#: ../../utils/net_rpc.c:7128 +#: ../../utils/net_rpc.c:7157 msgid "" "net rpc group\n" " List/modify groups" msgstr "" -#: ../../utils/net_rpc.c:7135 +#: ../../utils/net_rpc.c:7164 msgid "List/modify shares" msgstr "" -#: ../../utils/net_rpc.c:7136 +#: ../../utils/net_rpc.c:7165 msgid "" "net rpc share\n" " List/modify shares" msgstr "" -#: ../../utils/net_rpc.c:7144 +#: ../../utils/net_rpc.c:7173 msgid "" "net rpc file\n" " List open files" msgstr "" -#: ../../utils/net_rpc.c:7151 +#: ../../utils/net_rpc.c:7180 msgid "List/modify printers" msgstr "" -#: ../../utils/net_rpc.c:7152 +#: ../../utils/net_rpc.c:7181 msgid "" "net rpc printer\n" " List/modify printers" msgstr "" -#: ../../utils/net_rpc.c:7160 +#: ../../utils/net_rpc.c:7189 msgid "" "net rpc changetrustpw\n" " Change trust account password" @@ -6128,1041 +6007,1014 @@ msgstr "" "net rpc changetrustpw\n" " trust account Passwort ändern" -#: ../../utils/net_rpc.c:7167 +#: ../../utils/net_rpc.c:7196 msgid "Modify domain trusts" msgstr "" -#: ../../utils/net_rpc.c:7168 +#: ../../utils/net_rpc.c:7197 msgid "" "net rpc trustdom\n" " Modify domain trusts" msgstr "" -#: ../../utils/net_rpc.c:7175 +#: ../../utils/net_rpc.c:7204 msgid "Abort a remote shutdown" msgstr "" -#: ../../utils/net_rpc.c:7176 +#: ../../utils/net_rpc.c:7205 msgid "" "net rpc abortshutdown\n" " Abort a remote shutdown" msgstr "" -#: ../../utils/net_rpc.c:7183 +#: ../../utils/net_rpc.c:7212 msgid "Shutdown a remote server" msgstr "" -#: ../../utils/net_rpc.c:7184 +#: ../../utils/net_rpc.c:7213 msgid "" "net rpc shutdown\n" " Shutdown a remote server" msgstr "" -#: ../../utils/net_rpc.c:7191 +#: ../../utils/net_rpc.c:7220 msgid "Dump SAM data of remote NT PDC" msgstr "" -#: ../../utils/net_rpc.c:7192 +#: ../../utils/net_rpc.c:7221 msgid "" "net rpc samdump\n" " Dump SAM data of remote NT PDC" msgstr "" -#: ../../utils/net_rpc.c:7199 +#: ../../utils/net_rpc.c:7228 msgid "Sync a remote NT PDC's data into local passdb" msgstr "" -#: ../../utils/net_rpc.c:7200 +#: ../../utils/net_rpc.c:7229 msgid "" "net rpc vampire\n" " Sync a remote NT PDC's data into local passdb" msgstr "" -#: ../../utils/net_rpc.c:7207 +#: ../../utils/net_rpc.c:7236 msgid "Fetch the domain sid into local secrets.tdb" msgstr "" -#: ../../utils/net_rpc.c:7208 +#: ../../utils/net_rpc.c:7237 msgid "" "net rpc getsid\n" " Fetch the domain sid into local secrets.tdb" msgstr "" -#: ../../utils/net_rpc.c:7215 +#: ../../utils/net_rpc.c:7244 msgid "Manage privileges assigned to SID" msgstr "" -#: ../../utils/net_rpc.c:7216 +#: ../../utils/net_rpc.c:7245 msgid "" "net rpc rights\n" " Manage privileges assigned to SID" msgstr "" -#: ../../utils/net_rpc.c:7223 +#: ../../utils/net_rpc.c:7252 msgid "Start/stop/query remote services" msgstr "" -#: ../../utils/net_rpc.c:7224 +#: ../../utils/net_rpc.c:7253 msgid "" "net rpc service\n" " Start/stop/query remote services" msgstr "" -#: ../../utils/net_rpc.c:7231 +#: ../../utils/net_rpc.c:7260 msgid "Manage registry hives" msgstr "" -#: ../../utils/net_rpc.c:7232 +#: ../../utils/net_rpc.c:7261 msgid "" "net rpc registry\n" " Manage registry hives" msgstr "" -#: ../../utils/net_rpc.c:7239 +#: ../../utils/net_rpc.c:7268 msgid "Open interactive shell on remote server" msgstr "" -#: ../../utils/net_rpc.c:7240 +#: ../../utils/net_rpc.c:7269 msgid "" "net rpc shell\n" " Open interactive shell on remote server" msgstr "" -#: ../../utils/net_rpc_audit.c:27 +#: ../../utils/net_rpc_audit.c:28 msgid "net rpc audit list View configured Auditing policies\n" msgstr "" -#: ../../utils/net_rpc_audit.c:28 +#: ../../utils/net_rpc_audit.c:29 msgid "net rpc audit enable Enable Auditing\n" msgstr "" -#: ../../utils/net_rpc_audit.c:29 +#: ../../utils/net_rpc_audit.c:30 msgid "net rpc audit disable Disable Auditing\n" msgstr "" -#: ../../utils/net_rpc_audit.c:30 +#: ../../utils/net_rpc_audit.c:31 msgid "net rpc audit get <category> View configured Auditing policy setting\n" msgstr "" -#: ../../utils/net_rpc_audit.c:31 +#: ../../utils/net_rpc_audit.c:32 msgid "" "net rpc audit set <category> <policy> Set Auditing policies\n" "\n" msgstr "" -#: ../../utils/net_rpc_audit.c:32 +#: ../../utils/net_rpc_audit.c:33 msgid "\tcategory can be one of: SYSTEM, LOGON, OBJECT, PRIVILEGE, PROCESS, POLICY, SAM, DIRECTORY or ACCOUNT\n" msgstr "" -#: ../../utils/net_rpc_audit.c:33 +#: ../../utils/net_rpc_audit.c:34 msgid "" "\tpolicy can be one of: SUCCESS, FAILURE, ALL or NONE\n" "\n" msgstr "" -#: ../../utils/net_rpc_audit.c:47 -#: ../../utils/net_util.c:611 +#: ../../utils/net_rpc_audit.c:45 ../../utils/net_util.c:613 msgid "Unknown" msgstr "" -#: ../../utils/net_rpc_audit.c:50 +#: ../../utils/net_rpc_audit.c:48 msgid "Invalid" msgstr "" -#: ../../utils/net_rpc_audit.c:58 +#: ../../utils/net_rpc_audit.c:51 #, c-format -msgid "\t%s%s%s\n" +msgid "\t%-30s%s\n" msgstr "" -#: ../../utils/net_rpc_audit.c:80 -#: ../../utils/net_rpc_audit.c:147 +#: ../../utils/net_rpc_audit.c:73 ../../utils/net_rpc_audit.c:140 msgid "insufficient arguments\n" msgstr "" -#: ../../utils/net_rpc_audit.c:86 -#: ../../utils/net_rpc_audit.c:153 +#: ../../utils/net_rpc_audit.c:79 ../../utils/net_rpc_audit.c:146 #, c-format msgid "invalid auditing category: %s\n" msgstr "Ungültige Audit-Kategorie: %s\n" -#: ../../utils/net_rpc_audit.c:122 +#: ../../utils/net_rpc_audit.c:115 #, c-format msgid "failed to get auditing policy: %s\n" msgstr "" -#: ../../utils/net_rpc_audit.c:168 +#: ../../utils/net_rpc_audit.c:161 #, c-format msgid "invalid auditing policy: %s\n" msgstr "Ungültige Audit-Regel: %s\n" -#: ../../utils/net_rpc_audit.c:212 +#: ../../utils/net_rpc_audit.c:205 #, c-format msgid "failed to set audit policy: %s\n" msgstr "" -#: ../../utils/net_rpc_audit.c:261 +#: ../../utils/net_rpc_audit.c:254 #, c-format msgid "%s: %s\n" msgstr "" -#: ../../utils/net_rpc_audit.c:262 +#: ../../utils/net_rpc_audit.c:255 msgid "failed to enable audit policy" msgstr "" -#: ../../utils/net_rpc_audit.c:263 +#: ../../utils/net_rpc_audit.c:256 msgid "failed to disable audit policy" msgstr "" -#: ../../utils/net_rpc_audit.c:335 +#: ../../utils/net_rpc_audit.c:328 #, c-format msgid "Auditing:\t\t" msgstr "" -#: ../../utils/net_rpc_audit.c:338 +#: ../../utils/net_rpc_audit.c:331 #, c-format msgid "Enabled" msgstr "" -#: ../../utils/net_rpc_audit.c:341 +#: ../../utils/net_rpc_audit.c:334 #, c-format msgid "Disabled" msgstr "" -#: ../../utils/net_rpc_audit.c:344 +#: ../../utils/net_rpc_audit.c:337 #, c-format msgid "unknown (%d)" msgstr "" -#: ../../utils/net_rpc_audit.c:350 +#: ../../utils/net_rpc_audit.c:343 #, c-format msgid "Auditing categories:\t%d\n" msgstr "" -#: ../../utils/net_rpc_audit.c:351 +#: ../../utils/net_rpc_audit.c:344 #, c-format msgid "Auditing settings:\n" msgstr "" -#: ../../utils/net_rpc_audit.c:361 +#: ../../utils/net_rpc_audit.c:354 #, c-format msgid "failed to list auditing policies: %s\n" msgstr "" -#: ../../utils/net_rpc_audit.c:374 +#: ../../utils/net_rpc_audit.c:367 msgid "" "Usage:\n" "net rpc audit get\n" " View configured audit setting\n" msgstr "" -#: ../../utils/net_rpc_audit.c:390 +#: ../../utils/net_rpc_audit.c:383 msgid "" "Usage:\n" "net rpc audit set\n" " Set audit policies\n" msgstr "" -#: ../../utils/net_rpc_audit.c:406 +#: ../../utils/net_rpc_audit.c:399 msgid "" "Usage:\n" "net rpc audit enable\n" " Enable auditing\n" msgstr "" -#: ../../utils/net_rpc_audit.c:422 +#: ../../utils/net_rpc_audit.c:415 msgid "" "Usage:\n" "net rpc audit disable\n" " Disable auditing\n" msgstr "" -#: ../../utils/net_rpc_audit.c:438 +#: ../../utils/net_rpc_audit.c:431 msgid "" "Usage:\n" "net rpc audit list\n" " List auditing settings\n" msgstr "" -#: ../../utils/net_rpc_audit.c:458 +#: ../../utils/net_rpc_audit.c:451 msgid "View configured auditing settings" msgstr "" -#: ../../utils/net_rpc_audit.c:459 +#: ../../utils/net_rpc_audit.c:452 msgid "" "net rpc audit get\n" " View configured auditing settings" msgstr "" -#: ../../utils/net_rpc_audit.c:466 +#: ../../utils/net_rpc_audit.c:459 msgid "Set auditing policies" msgstr "" -#: ../../utils/net_rpc_audit.c:467 +#: ../../utils/net_rpc_audit.c:460 msgid "" "net rpc audit set\n" " Set auditing policies" msgstr "" -#: ../../utils/net_rpc_audit.c:474 +#: ../../utils/net_rpc_audit.c:467 msgid "Enable auditing" msgstr "" -#: ../../utils/net_rpc_audit.c:475 +#: ../../utils/net_rpc_audit.c:468 msgid "" "net rpc audit enable\n" " Enable auditing" msgstr "" -#: ../../utils/net_rpc_audit.c:482 +#: ../../utils/net_rpc_audit.c:475 msgid "Disable auditing" msgstr "" -#: ../../utils/net_rpc_audit.c:483 +#: ../../utils/net_rpc_audit.c:476 msgid "" "net rpc audit disable\n" " Disable auditing" msgstr "" -#: ../../utils/net_rpc_audit.c:490 +#: ../../utils/net_rpc_audit.c:483 msgid "List configured auditing settings" msgstr "" -#: ../../utils/net_rpc_audit.c:491 +#: ../../utils/net_rpc_audit.c:484 msgid "" "net rpc audit list\n" " List configured auditing settings" msgstr "" -#: ../../utils/net_rpc_join.c:290 +#: ../../utils/net_rpc_join.c:297 msgid "Creation of workstation account failed\n" msgstr "" -#: ../../utils/net_rpc_join.c:297 +#: ../../utils/net_rpc_join.c:304 msgid "User specified does not have administrator privileges\n" msgstr "" -#: ../../utils/net_rpc_join.c:403 -#: ../../utils/net_rpc_join.c:431 +#: ../../utils/net_rpc_join.c:410 ../../utils/net_rpc_join.c:438 #, c-format msgid "" "Please make sure that no computer account\n" "named like this machine (%s) exists in the domain\n" msgstr "" -#: ../../utils/net_rpc_join.c:468 +#: ../../utils/net_rpc_join.c:475 #, c-format msgid "Unable to join domain %s.\n" msgstr "" -#: ../../utils/net_rpc_join.c:492 +#: ../../utils/net_rpc_join.c:499 msgid "" "Usage\n" "net rpc testjoin\n" " Test if a join is OK\n" msgstr "" -#: ../../utils/net_rpc_join.c:501 +#: ../../utils/net_rpc_join.c:508 #, c-format msgid "Join to domain '%s' is not valid: %s\n" msgstr "" -#: ../../utils/net_rpc_join.c:506 +#: ../../utils/net_rpc_join.c:513 #, c-format msgid "Join to '%s' is OK\n" msgstr "" -#: ../../utils/net_rpc_printer.c:54 +#: ../../utils/net_rpc_printer.c:55 #, c-format msgid "Printer Driver Info 3:\n" msgstr "" -#: ../../utils/net_rpc_printer.c:55 +#: ../../utils/net_rpc_printer.c:56 #, c-format msgid "\tVersion: [%x]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:56 +#: ../../utils/net_rpc_printer.c:57 #, c-format msgid "\tDriver Name: [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:57 +#: ../../utils/net_rpc_printer.c:58 #, c-format msgid "\tArchitecture: [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:58 +#: ../../utils/net_rpc_printer.c:59 #, c-format msgid "\tDriver Path: [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:59 +#: ../../utils/net_rpc_printer.c:60 #, c-format msgid "\tDatafile: [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:60 +#: ../../utils/net_rpc_printer.c:61 #, c-format msgid "" "\tConfigfile: [%s]\n" "\n" msgstr "" -#: ../../utils/net_rpc_printer.c:61 +#: ../../utils/net_rpc_printer.c:62 #, c-format msgid "" "\tHelpfile: [%s]\n" "\n" msgstr "" -#: ../../utils/net_rpc_printer.c:64 +#: ../../utils/net_rpc_printer.c:65 #, c-format msgid "\tDependentfiles: [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:69 +#: ../../utils/net_rpc_printer.c:70 #, c-format msgid "\tMonitorname: [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:70 +#: ../../utils/net_rpc_printer.c:71 #, c-format msgid "" "\tDefaultdatatype: [%s]\n" "\n" msgstr "" -#: ../../utils/net_rpc_printer.c:79 +#: ../../utils/net_rpc_printer.c:81 #, c-format msgid "\t[%s:%s]: REG_DWORD: 0x%08x\n" msgstr "" -#: ../../utils/net_rpc_printer.c:92 +#: ../../utils/net_rpc_printer.c:91 #, c-format msgid "\t[%s:%s]: REG_SZ: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:97 +#: ../../utils/net_rpc_printer.c:96 #, c-format msgid "\t[%s:%s]: REG_BINARY: unknown length value not displayed\n" msgstr "" -#: ../../utils/net_rpc_printer.c:109 -msgid "reg_pull_multi_sz failed\n" -msgstr "" - -#: ../../utils/net_rpc_printer.c:121 +#: ../../utils/net_rpc_printer.c:120 #, c-format msgid "\t%s: unknown type %d\n" msgstr "" -#: ../../utils/net_rpc_printer.c:255 +#: ../../utils/net_rpc_printer.c:254 #, c-format msgid "could not close %s on originating server: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:263 +#: ../../utils/net_rpc_printer.c:262 #, c-format msgid "could not close %s on destination server: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:356 +#: ../../utils/net_rpc_printer.c:355 #, c-format msgid "malloc fail for size %d\n" msgstr "" -#: ../../utils/net_rpc_printer.c:367 +#: ../../utils/net_rpc_printer.c:366 #, c-format msgid "copying [\\\\%s\\%s%s] => [\\\\%s\\%s%s] %s ACLs and %s DOS Attributes %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:371 -#: ../../utils/net_rpc_printer.c:372 +#: ../../utils/net_rpc_printer.c:370 ../../utils/net_rpc_printer.c:371 msgid "with" msgstr "" -#: ../../utils/net_rpc_printer.c:391 +#: ../../utils/net_rpc_printer.c:390 #, c-format msgid "Error writing file: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:415 +#: ../../utils/net_rpc_printer.c:414 #, c-format msgid "cannot check for directory %s: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:425 +#: ../../utils/net_rpc_printer.c:424 #, c-format msgid "could not close file on originating server: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:433 +#: ../../utils/net_rpc_printer.c:432 #, c-format msgid "could not close file on destination server: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:566 +#: ../../utils/net_rpc_printer.c:565 #, c-format msgid "cannot check %s: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:607 +#: ../../utils/net_rpc_printer.c:606 #, c-format msgid "copying driver: [%s], for architecture: [%s], version: [%d]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:676 +#: ../../utils/net_rpc_printer.c:675 #, c-format msgid "cannot enum printers: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:709 +#: ../../utils/net_rpc_printer.c:708 #, c-format msgid "no access to printer [%s] on [%s] for user [%s] granted\n" msgstr "" -#: ../../utils/net_rpc_printer.c:716 +#: ../../utils/net_rpc_printer.c:715 #, c-format msgid "cannot open printer %s on server %s: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:742 +#: ../../utils/net_rpc_printer.c:741 #, c-format msgid "cannot get printer-info: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:823 -#: ../../utils/net_rpc_printer.c:1318 +#: ../../utils/net_rpc_printer.c:822 ../../utils/net_rpc_printer.c:1326 #, c-format msgid "cannot set printer-info: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:851 +#: ../../utils/net_rpc_printer.c:850 #, c-format msgid "unable to set printerdata: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:872 +#: ../../utils/net_rpc_printer.c:871 #, c-format msgid "enumprinterkey failed: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:898 +#: ../../utils/net_rpc_printer.c:897 #, c-format msgid "enumprinterdataex failed: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:926 +#: ../../utils/net_rpc_printer.c:934 #, c-format msgid "could not set printerdataex: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:951 +#: ../../utils/net_rpc_printer.c:959 #, c-format msgid "could not enum forms: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:975 +#: ../../utils/net_rpc_printer.c:983 #, c-format msgid "cannot enum drivers: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1008 +#: ../../utils/net_rpc_printer.c:1016 #, c-format msgid "cannot get driver: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1038 +#: ../../utils/net_rpc_printer.c:1046 #, c-format msgid "unsupported info level: %d\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1049 +#: ../../utils/net_rpc_printer.c:1057 #, c-format msgid "You are not allowed to add drivers\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1053 +#: ../../utils/net_rpc_printer.c:1061 #, c-format msgid "cannot add driver: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1153 +#: ../../utils/net_rpc_printer.c:1161 #, c-format msgid "printer %d: %s, shared as: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1193 +#: ../../utils/net_rpc_printer.c:1201 #, c-format msgid "listing printer-drivers\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1208 +#: ../../utils/net_rpc_printer.c:1216 #, c-format msgid "no drivers found on server for architecture: [%s].\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1214 +#: ../../utils/net_rpc_printer.c:1222 #, c-format msgid "got %d printer-drivers for architecture: [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1287 +#: ../../utils/net_rpc_printer.c:1295 msgid "published" msgstr "" -#: ../../utils/net_rpc_printer.c:1290 +#: ../../utils/net_rpc_printer.c:1298 msgid "updated" msgstr "" -#: ../../utils/net_rpc_printer.c:1293 +#: ../../utils/net_rpc_printer.c:1301 msgid "unpublished" msgstr "" -#: ../../utils/net_rpc_printer.c:1296 +#: ../../utils/net_rpc_printer.c:1304 msgid "unknown action" msgstr "" -#: ../../utils/net_rpc_printer.c:1297 +#: ../../utils/net_rpc_printer.c:1305 #, c-format msgid "unkown action: %d\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1323 +#: ../../utils/net_rpc_printer.c:1331 #, c-format msgid "successfully %s printer %s in Active Directory\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1435 +#: ../../utils/net_rpc_printer.c:1443 #, c-format msgid "printer [%s] is published" msgstr "" -#: ../../utils/net_rpc_printer.c:1438 +#: ../../utils/net_rpc_printer.c:1446 #, c-format msgid ", guid: %s" msgstr "" -#: ../../utils/net_rpc_printer.c:1442 +#: ../../utils/net_rpc_printer.c:1450 #, c-format msgid "printer [%s] is unpublished\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1446 +#: ../../utils/net_rpc_printer.c:1454 #, c-format msgid "printer [%s] is currently updating\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1450 +#: ../../utils/net_rpc_printer.c:1458 #, c-format msgid "unkown state: %d\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1520 -#: ../../utils/net_rpc_printer.c:1667 -#: ../../utils/net_rpc_printer.c:1850 -#: ../../utils/net_rpc_printer.c:2039 -#: ../../utils/net_rpc_printer.c:2206 +#: ../../utils/net_rpc_printer.c:1528 ../../utils/net_rpc_printer.c:1675 ../../utils/net_rpc_printer.c:1858 ../../utils/net_rpc_printer.c:2047 ../../utils/net_rpc_printer.c:2214 #, c-format msgid "no printers found on server.\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1541 +#: ../../utils/net_rpc_printer.c:1549 #, c-format msgid "migrating printer ACLs for: [%s] / [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1687 +#: ../../utils/net_rpc_printer.c:1695 #, c-format msgid "migrating printer forms for: [%s] / [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1723 +#: ../../utils/net_rpc_printer.c:1731 #, c-format msgid "\tmigrating form # %d [%s] of type [%d]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1739 +#: ../../utils/net_rpc_printer.c:1747 #, c-format msgid "\tAddForm form %d: [%s] refused.\n" msgstr "" -#: ../../utils/net_rpc_printer.c:1872 +#: ../../utils/net_rpc_printer.c:1880 #, c-format msgid "migrating printer driver for: [%s] / [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:2059 +#: ../../utils/net_rpc_printer.c:2067 #, c-format msgid "migrating printer queue for: [%s] / [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:2071 +#: ../../utils/net_rpc_printer.c:2079 #, c-format msgid "could not get printer, creating printer.\n" msgstr "" #. copy each src printer to a dst printer 1:1, #. maybe some values have to be changed though -#: ../../utils/net_rpc_printer.c:2095 +#: ../../utils/net_rpc_printer.c:2103 #, c-format msgid "creating printer: %s\n" msgstr "" -#: ../../utils/net_rpc_printer.c:2106 +#: ../../utils/net_rpc_printer.c:2114 #, c-format msgid "printer [%s] successfully added.\n" msgstr "" -#: ../../utils/net_rpc_printer.c:2109 +#: ../../utils/net_rpc_printer.c:2117 #, c-format msgid "printer [%s] already exists.\n" msgstr "" -#: ../../utils/net_rpc_printer.c:2112 +#: ../../utils/net_rpc_printer.c:2120 #, c-format msgid "could not create printer [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:2240 +#: ../../utils/net_rpc_printer.c:2248 #, c-format msgid "migrating printer settings for: [%s] / [%s]\n" msgstr "" -#: ../../utils/net_rpc_printer.c:2393 +#: ../../utils/net_rpc_printer.c:2401 #, c-format msgid "got no key-data\n" msgstr "" -#: ../../utils/net_rpc_registry.c:389 -#: ../../utils/net_rpc_registry.c:461 -#: ../../utils/net_rpc_registry.c:522 -#: ../../utils/net_rpc_registry.c:791 -#: ../../utils/net_rpc_registry.c:862 -#: ../../utils/net_rpc_registry.c:1171 +#: ../../utils/net_rpc_registry.c:430 ../../utils/net_rpc_registry.c:502 ../../utils/net_rpc_registry.c:563 ../../utils/net_rpc_registry.c:832 ../../utils/net_rpc_registry.c:903 ../../utils/net_rpc_registry.c:1210 #, c-format msgid "registry_openkey failed: %s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:418 +#: ../../utils/net_rpc_registry.c:459 #, c-format msgid "registry_setvalue failed: %s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:472 +#: ../../utils/net_rpc_registry.c:513 #, c-format msgid "registry_deletevalue failed: %s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:543 -#: ../../utils/net_rpc_registry.c:560 +#: ../../utils/net_rpc_registry.c:584 ../../utils/net_rpc_registry.c:601 #, c-format msgid "registry_queryvalue failed: %s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:673 +#: ../../utils/net_rpc_registry.c:714 #, c-format msgid "createkey returned %s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:702 +#: ../../utils/net_rpc_registry.c:743 msgid "usage: net rpc registry createkey <key>\n" msgstr "" -#: ../../utils/net_rpc_registry.c:741 +#: ../../utils/net_rpc_registry.c:782 #, c-format msgid "deletekey returned %s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:752 +#: ../../utils/net_rpc_registry.c:793 msgid "usage: net rpc registry deletekey <key>\n" msgstr "" -#: ../../utils/net_rpc_registry.c:782 +#: ../../utils/net_rpc_registry.c:823 msgid "Usage: net rpc registry enumerate <path>\n" msgstr "" -#: ../../utils/net_rpc_registry.c:783 +#: ../../utils/net_rpc_registry.c:824 msgid "Example: net rpc registry enumerate 'HKLM\\Software\\Samba'\n" msgstr "" -#: ../../utils/net_rpc_registry.c:799 +#: ../../utils/net_rpc_registry.c:840 #, c-format msgid "enumerating keys failed: %s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:811 +#: ../../utils/net_rpc_registry.c:852 #, c-format msgid "enumerating values failed: %s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:854 +#: ../../utils/net_rpc_registry.c:895 msgid "Usage: net rpc registry backup <path> <file> \n" msgstr "" -#: ../../utils/net_rpc_registry.c:870 +#: ../../utils/net_rpc_registry.c:911 #, c-format msgid "Unable to save [%s] to %s:%s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:937 +#: ../../utils/net_rpc_registry.c:976 msgid "unknown" msgstr "" -#: ../../utils/net_rpc_registry.c:1044 +#: ../../utils/net_rpc_registry.c:1083 msgid "Usage: net rpc registry dump <file> \n" msgstr "" -#: ../../utils/net_rpc_registry.c:1048 -#: ../../utils/net_rpc_registry.c:1093 -#: ../../utils/net_rpc_registry.c:1100 +#: ../../utils/net_rpc_registry.c:1087 ../../utils/net_rpc_registry.c:1132 ../../utils/net_rpc_registry.c:1139 #, c-format msgid "Opening %s...." msgstr "" -#: ../../utils/net_rpc_registry.c:1050 -#: ../../utils/net_rpc_registry.c:1095 +#: ../../utils/net_rpc_registry.c:1089 ../../utils/net_rpc_registry.c:1134 #, c-format msgid "Failed to open %s for reading\n" msgstr "" -#: ../../utils/net_rpc_registry.c:1058 -#: ../../utils/net_rpc_registry.c:1110 +#: ../../utils/net_rpc_registry.c:1097 ../../utils/net_rpc_registry.c:1149 msgid "Could not get rootkey\n" msgstr "" -#: ../../utils/net_rpc_registry.c:1071 +#: ../../utils/net_rpc_registry.c:1110 msgid "Closing registry..." msgstr "" -#: ../../utils/net_rpc_registry.c:1088 +#: ../../utils/net_rpc_registry.c:1127 msgid "Usage: net rpc registry copy <srcfile> <newfile>\n" msgstr "" -#: ../../utils/net_rpc_registry.c:1102 +#: ../../utils/net_rpc_registry.c:1141 #, c-format msgid "Failed to open %s for writing\n" msgstr "" -#: ../../utils/net_rpc_registry.c:1113 +#: ../../utils/net_rpc_registry.c:1152 #, c-format msgid "RootKey: [%s]\n" msgstr "" -#: ../../utils/net_rpc_registry.c:1121 -#: ../../utils/net_rpc_registry.c:1127 +#: ../../utils/net_rpc_registry.c:1160 ../../utils/net_rpc_registry.c:1166 #, c-format msgid "Closing %s..." msgstr "" -#: ../../utils/net_rpc_registry.c:1160 +#: ../../utils/net_rpc_registry.c:1199 msgid "Usage: net rpc registry getsd <path> <secinfo>\n" msgstr "" -#: ../../utils/net_rpc_registry.c:1162 +#: ../../utils/net_rpc_registry.c:1201 msgid "Example: net rpc registry getsd 'HKLM\\Software\\Samba'\n" msgstr "" -#: ../../utils/net_rpc_registry.c:1192 +#: ../../utils/net_rpc_registry.c:1231 #, c-format msgid "getting sd failed: %s\n" msgstr "" -#: ../../utils/net_rpc_registry.c:1235 +#: ../../utils/net_rpc_registry.c:1274 msgid "" "net rpc registry enumerate\n" " Enumerate registry keys and values" msgstr "" -#: ../../utils/net_rpc_registry.c:1243 +#: ../../utils/net_rpc_registry.c:1282 msgid "" "net rpc registry createkey\n" " Create a new registry key" msgstr "" -#: ../../utils/net_rpc_registry.c:1251 +#: ../../utils/net_rpc_registry.c:1290 msgid "" "net rpc registry deletekey\n" " Delete a registry key" msgstr "" -#: ../../utils/net_rpc_registry.c:1259 +#: ../../utils/net_rpc_registry.c:1298 msgid "" "net rpc registry getvalue\n" " Print a registry value" msgstr "" -#: ../../utils/net_rpc_registry.c:1267 +#: ../../utils/net_rpc_registry.c:1306 msgid "" "net rpc registry getvalueraw\n" " Print a registry value (raw version)" msgstr "" -#: ../../utils/net_rpc_registry.c:1275 +#: ../../utils/net_rpc_registry.c:1314 msgid "" "net rpc registry setvalue\n" " Set a new registry value" msgstr "" -#: ../../utils/net_rpc_registry.c:1283 +#: ../../utils/net_rpc_registry.c:1322 msgid "" "net rpc registry deletevalue\n" " Delete a registry value" msgstr "" -#: ../../utils/net_rpc_registry.c:1290 +#: ../../utils/net_rpc_registry.c:1329 msgid "Save a registry file" msgstr "" -#: ../../utils/net_rpc_registry.c:1291 +#: ../../utils/net_rpc_registry.c:1330 msgid "" "net rpc registry save\n" " Save a registry file" msgstr "" -#: ../../utils/net_rpc_registry.c:1298 +#: ../../utils/net_rpc_registry.c:1337 msgid "Dump a registry file" msgstr "" -#: ../../utils/net_rpc_registry.c:1299 +#: ../../utils/net_rpc_registry.c:1338 msgid "" "net rpc registry dump\n" " Dump a registry file" msgstr "" -#: ../../utils/net_rpc_registry.c:1306 +#: ../../utils/net_rpc_registry.c:1345 msgid "Copy a registry file" msgstr "" -#: ../../utils/net_rpc_registry.c:1307 +#: ../../utils/net_rpc_registry.c:1346 msgid "" "net rpc registry copy\n" " Copy a registry file" msgstr "" -#: ../../utils/net_rpc_registry.c:1315 +#: ../../utils/net_rpc_registry.c:1354 msgid "" "net rpc registry getsd\n" " Get security descriptior" msgstr "" -#: ../../utils/net_rpc_rights.c:202 +#: ../../utils/net_rpc_rights.c:203 msgid "No privileges assigned\n" msgstr "" -#: ../../utils/net_rpc_rights.c:367 +#: ../../utils/net_rpc_rights.c:368 #, c-format msgid "No such privilege exists: %s.\n" msgstr "" -#: ../../utils/net_rpc_rights.c:370 +#: ../../utils/net_rpc_rights.c:371 #, c-format msgid "Error resolving privilege display name [%s].\n" msgstr "" -#: ../../utils/net_rpc_rights.c:379 +#: ../../utils/net_rpc_rights.c:380 #, c-format msgid "Error enumerating accounts for privilege %s [%s].\n" msgstr "" -#: ../../utils/net_rpc_rights.c:415 +#: ../../utils/net_rpc_rights.c:416 msgid "Usage: net rpc rights list [[accounts|privileges] [name|SID]]\n" msgstr "" -#: ../../utils/net_rpc_rights.c:453 +#: ../../utils/net_rpc_rights.c:454 msgid "Usage: net rpc rights grant <name|SID> <rights...>\n" msgstr "" -#: ../../utils/net_rpc_rights.c:491 +#: ../../utils/net_rpc_rights.c:492 msgid "Successfully granted rights.\n" msgstr "" -#: ../../utils/net_rpc_rights.c:495 +#: ../../utils/net_rpc_rights.c:496 #, c-format msgid "Failed to grant privileges for %s (%s)\n" msgstr "" -#: ../../utils/net_rpc_rights.c:523 +#: ../../utils/net_rpc_rights.c:524 msgid "Usage: net rpc rights revoke <name|SID> <rights...>\n" msgstr "" -#: ../../utils/net_rpc_rights.c:559 +#: ../../utils/net_rpc_rights.c:560 msgid "Successfully revoked rights.\n" msgstr "" -#: ../../utils/net_rpc_rights.c:563 +#: ../../utils/net_rpc_rights.c:564 #, c-format msgid "Failed to revoke privileges for %s (%s)\n" msgstr "" -#: ../../utils/net_rpc_rights.c:579 +#: ../../utils/net_rpc_rights.c:580 msgid "" "Usage:\n" "net rpc rights list [{accounts|privileges} [name|SID]]\n" " View available/assigned privileges\n" msgstr "" -#: ../../utils/net_rpc_rights.c:596 +#: ../../utils/net_rpc_rights.c:597 msgid "" "Usage:\n" "net rpc rights grant <name|SID> <right>\n" " Assign privilege[s]\n" msgstr "" -#: ../../utils/net_rpc_rights.c:599 +#: ../../utils/net_rpc_rights.c:600 msgid "" "For example:\n" " net rpc rights grant 'VALE\\biddle' SePrintOperatorPrivilege SeDiskOperatorPrivilege\n" " would grant the printer admin and disk manager rights to the user 'VALE\\biddle'\n" msgstr "" -#: ../../utils/net_rpc_rights.c:617 +#: ../../utils/net_rpc_rights.c:618 msgid "" "Usage:\n" "net rpc rights revoke <name|SID> <right>\n" " Revoke privilege[s]\n" msgstr "" -#: ../../utils/net_rpc_rights.c:620 +#: ../../utils/net_rpc_rights.c:621 msgid "" "For example:\n" " net rpc rights revoke 'VALE\\biddle' SePrintOperatorPrivilege SeDiskOperatorPrivilege\n" " would revoke the printer admin and disk manager rights from the user 'VALE\\biddle'\n" msgstr "" -#: ../../utils/net_rpc_rights.c:642 +#: ../../utils/net_rpc_rights.c:643 msgid "View available/assigned privileges" msgstr "" -#: ../../utils/net_rpc_rights.c:643 +#: ../../utils/net_rpc_rights.c:644 msgid "" "net rpc rights list\n" " View available/assigned privileges" msgstr "" -#: ../../utils/net_rpc_rights.c:650 -#: ../../utils/net_rpc_rights.c:709 +#: ../../utils/net_rpc_rights.c:651 ../../utils/net_rpc_rights.c:710 msgid "Assign privilege[s]" msgstr "" -#: ../../utils/net_rpc_rights.c:651 +#: ../../utils/net_rpc_rights.c:652 msgid "" "net rpc rights grant\n" " Assign privilege[s]" msgstr "" -#: ../../utils/net_rpc_rights.c:658 -#: ../../utils/net_rpc_rights.c:712 +#: ../../utils/net_rpc_rights.c:659 ../../utils/net_rpc_rights.c:713 msgid "Revoke privilege[s]" msgstr "" -#: ../../utils/net_rpc_rights.c:659 +#: ../../utils/net_rpc_rights.c:660 msgid "" "net rpc rights revoke\n" " Revoke privilege[s]" msgstr "" -#: ../../utils/net_rpc_rights.c:706 +#: ../../utils/net_rpc_rights.c:707 msgid "View available or assigned privileges" msgstr "" @@ -7254,11 +7106,7 @@ msgstr "" msgid "Unknown State [%d]" msgstr "" -#: ../../utils/net_rpc_service.c:82 -#: ../../utils/net_rpc_service.c:162 -#: ../../utils/net_rpc_service.c:355 -#: ../../utils/net_rpc_service.c:625 -#: ../../utils/net_rpc_service.c:705 +#: ../../utils/net_rpc_service.c:82 ../../utils/net_rpc_service.c:162 ../../utils/net_rpc_service.c:355 ../../utils/net_rpc_service.c:625 ../../utils/net_rpc_service.c:705 #, c-format msgid "Failed to open service. [%s]\n" msgstr "" @@ -7268,8 +7116,7 @@ msgstr "" msgid "Control service request failed. [%s]\n" msgstr "" -#: ../../utils/net_rpc_service.c:185 -#: ../../utils/net_rpc_service.c:373 +#: ../../utils/net_rpc_service.c:185 ../../utils/net_rpc_service.c:373 #, c-format msgid "%s service is %s.\n" msgstr "" @@ -7278,8 +7125,7 @@ msgstr "" msgid "Usage: net rpc service list\n" msgstr "" -#: ../../utils/net_rpc_service.c:230 -#: ../../utils/net_rpc_service.c:340 +#: ../../utils/net_rpc_service.c:230 ../../utils/net_rpc_service.c:340 #, c-format msgid "Failed to open Service Control Manager. [%s]\n" msgstr "" @@ -7293,16 +7139,11 @@ msgstr "" msgid "No services returned\n" msgstr "" -#: ../../utils/net_rpc_service.c:327 -#: ../../utils/net_rpc_service.c:459 -#: ../../utils/net_rpc_service.c:505 -#: ../../utils/net_rpc_service.c:551 -#: ../../utils/net_rpc_service.c:597 +#: ../../utils/net_rpc_service.c:327 ../../utils/net_rpc_service.c:459 ../../utils/net_rpc_service.c:505 ../../utils/net_rpc_service.c:551 ../../utils/net_rpc_service.c:597 msgid "Usage: net rpc service status <service>\n" msgstr "" -#: ../../utils/net_rpc_service.c:368 -#: ../../utils/net_rpc_service.c:639 +#: ../../utils/net_rpc_service.c:368 ../../utils/net_rpc_service.c:639 #, c-format msgid "Query status request failed. [%s]\n" msgstr "" @@ -7367,12 +7208,7 @@ msgstr "" msgid "\tDisplay Name = %s\n" msgstr "" -#: ../../utils/net_rpc_service.c:474 -#: ../../utils/net_rpc_service.c:520 -#: ../../utils/net_rpc_service.c:566 -#: ../../utils/net_rpc_service.c:610 -#: ../../utils/net_rpc_service.c:690 -#: ../../utils/net_rpc_service.c:769 +#: ../../utils/net_rpc_service.c:474 ../../utils/net_rpc_service.c:520 ../../utils/net_rpc_service.c:566 ../../utils/net_rpc_service.c:610 ../../utils/net_rpc_service.c:690 ../../utils/net_rpc_service.c:769 #, c-format msgid "Failed to open Service Control Manager. [%s]\n" msgstr "" @@ -7551,164 +7387,150 @@ msgid "" " Creates a service" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:78 +#: ../../utils/net_rpc_sh_acct.c:79 #, c-format msgid "query_domain_info level 1 failed: %s\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:89 +#: ../../utils/net_rpc_sh_acct.c:90 #, c-format msgid "query_domain_info level 3 failed: %s\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:100 +#: ../../utils/net_rpc_sh_acct.c:101 #, c-format msgid "query_domain_info level 12 failed: %s\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:133 +#: ../../utils/net_rpc_sh_acct.c:134 #, c-format msgid "Got unexpected info level %d\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:157 +#: ../../utils/net_rpc_sh_acct.c:158 #, c-format msgid "usage: %s\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:161 +#: ../../utils/net_rpc_sh_acct.c:162 #, c-format msgid "Minimum password length: %d\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:162 +#: ../../utils/net_rpc_sh_acct.c:163 #, c-format msgid "Password history length: %d\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:165 +#: ../../utils/net_rpc_sh_acct.c:166 msgid "Minimum password age: " msgstr "" -#: ../../utils/net_rpc_sh_acct.c:168 -#: ../../utils/net_rpc_sh_acct.c:176 -#: ../../utils/net_rpc_sh_acct.c:188 -#: ../../utils/net_rpc_sh_acct.c:196 +#: ../../utils/net_rpc_sh_acct.c:169 ../../utils/net_rpc_sh_acct.c:177 ../../utils/net_rpc_sh_acct.c:189 ../../utils/net_rpc_sh_acct.c:197 #, c-format msgid "%d seconds\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:170 -#: ../../utils/net_rpc_sh_acct.c:178 -#: ../../utils/net_rpc_sh_acct.c:190 -#: ../../utils/net_rpc_sh_acct.c:198 +#: ../../utils/net_rpc_sh_acct.c:171 ../../utils/net_rpc_sh_acct.c:179 ../../utils/net_rpc_sh_acct.c:191 ../../utils/net_rpc_sh_acct.c:199 msgid "not set\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:173 +#: ../../utils/net_rpc_sh_acct.c:174 msgid "Maximum password age: " msgstr "" -#: ../../utils/net_rpc_sh_acct.c:181 +#: ../../utils/net_rpc_sh_acct.c:182 #, c-format msgid "Bad logon attempts: %d\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:185 +#: ../../utils/net_rpc_sh_acct.c:186 msgid "Account lockout duration: " msgstr "" -#: ../../utils/net_rpc_sh_acct.c:193 +#: ../../utils/net_rpc_sh_acct.c:194 msgid "Bad password count reset after: " msgstr "" -#: ../../utils/net_rpc_sh_acct.c:202 +#: ../../utils/net_rpc_sh_acct.c:203 #, c-format msgid "Disconnect users when logon hours expire: %s\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:205 +#: ../../utils/net_rpc_sh_acct.c:206 #, c-format msgid "User must logon to change password: %s\n" msgstr "Benutzer muss sich anmelden um Passwort zu ändern: %s\n" -#: ../../utils/net_rpc_sh_acct.c:228 -#: ../../utils/net_rpc_sh_acct.c:258 -#: ../../utils/net_rpc_sh_acct.c:288 -#: ../../utils/net_rpc_sh_acct.c:318 -#: ../../utils/net_rpc_sh_acct.c:348 -#: ../../utils/net_rpc_sh_acct.c:378 -#: ../../utils/net_rpc_sh_acct.c:408 +#: ../../utils/net_rpc_sh_acct.c:229 ../../utils/net_rpc_sh_acct.c:259 ../../utils/net_rpc_sh_acct.c:289 ../../utils/net_rpc_sh_acct.c:319 ../../utils/net_rpc_sh_acct.c:349 ../../utils/net_rpc_sh_acct.c:379 ../../utils/net_rpc_sh_acct.c:409 #, c-format msgid "usage: %s <count>\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:233 +#: ../../utils/net_rpc_sh_acct.c:234 #, c-format msgid "Setting bad password count to %d\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:263 +#: ../../utils/net_rpc_sh_acct.c:264 #, c-format msgid "Setting lockout duration to %d seconds\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:293 +#: ../../utils/net_rpc_sh_acct.c:294 #, c-format msgid "Setting bad password reset duration to %d seconds\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:323 +#: ../../utils/net_rpc_sh_acct.c:324 #, c-format msgid "Setting minimum password age to %d seconds\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:353 +#: ../../utils/net_rpc_sh_acct.c:354 #, c-format msgid "Setting maximum password age to %d seconds\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:383 +#: ../../utils/net_rpc_sh_acct.c:384 #, c-format msgid "Setting minimum password length to %d\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:413 +#: ../../utils/net_rpc_sh_acct.c:414 #, c-format msgid "Setting password history length to %d\n" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:434 +#: ../../utils/net_rpc_sh_acct.c:435 msgid "Show current account policy settings" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:436 +#: ../../utils/net_rpc_sh_acct.c:437 msgid "Set bad password count before lockout" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:438 +#: ../../utils/net_rpc_sh_acct.c:439 msgid "Set account lockout duration" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:441 +#: ../../utils/net_rpc_sh_acct.c:442 msgid "Set bad password count reset duration" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:443 -#, fuzzy +#: ../../utils/net_rpc_sh_acct.c:444 msgid "Set minimum password age" -msgstr "Bitte Maschinenpasswort eingeben: " +msgstr "" -#: ../../utils/net_rpc_sh_acct.c:445 -#, fuzzy +#: ../../utils/net_rpc_sh_acct.c:446 msgid "Set maximum password age" -msgstr "Bitte Maschinenpasswort eingeben: " +msgstr "" -#: ../../utils/net_rpc_sh_acct.c:447 +#: ../../utils/net_rpc_sh_acct.c:448 msgid "Set minimum password length" msgstr "" -#: ../../utils/net_rpc_sh_acct.c:449 +#: ../../utils/net_rpc_sh_acct.c:450 msgid "Set the password history length" msgstr "" @@ -7722,60 +7544,57 @@ msgid "Could not open pipe: %s\n" msgstr "" #. None found -#: ../../utils/net_rpc_shell.c:144 +#: ../../utils/net_rpc_shell.c:146 #, c-format msgid "%s: unknown cmd\n" msgstr "" -#: ../../utils/net_rpc_shell.c:150 -#: ../../utils/net_rpc_shell.c:231 -#: ../../utils/net_sam.c:1573 -#: ../../utils/net_sam.c:1835 +#: ../../utils/net_rpc_shell.c:152 ../../utils/net_rpc_shell.c:233 ../../utils/net_sam.c:1573 ../../utils/net_sam.c:1835 msgid "talloc failed\n" msgstr "" -#: ../../utils/net_rpc_shell.c:182 +#: ../../utils/net_rpc_shell.c:184 #, c-format msgid "%s failed: %s\n" msgstr "" -#: ../../utils/net_rpc_shell.c:192 +#: ../../utils/net_rpc_shell.c:194 msgid "Print information about the domain connected to" msgstr "" -#: ../../utils/net_rpc_shell.c:195 +#: ../../utils/net_rpc_shell.c:197 msgid "List/Grant/Revoke user rights" msgstr "" -#: ../../utils/net_rpc_shell.c:198 +#: ../../utils/net_rpc_shell.c:200 msgid "List/Add/Remove etc shares" msgstr "" -#: ../../utils/net_rpc_shell.c:201 +#: ../../utils/net_rpc_shell.c:203 msgid "List/Add/Remove user info" msgstr "" -#: ../../utils/net_rpc_shell.c:204 +#: ../../utils/net_rpc_shell.c:206 msgid "Show/Change account policy settings" msgstr "" -#: ../../utils/net_rpc_shell.c:215 +#: ../../utils/net_rpc_shell.c:217 msgid "" "Usage:\n" "net rpc shell\n" msgstr "" -#: ../../utils/net_rpc_shell.c:237 +#: ../../utils/net_rpc_shell.c:239 #, c-format msgid "Could not open connection: %s\n" msgstr "" -#: ../../utils/net_rpc_shell.c:252 +#: ../../utils/net_rpc_shell.c:254 #, c-format msgid "Talking to domain %s (%s)\n" msgstr "" -#: ../../utils/net_rpc_shell.c:279 +#: ../../utils/net_rpc_shell.c:281 #, c-format msgid "cmdline invalid: %s\n" msgstr "Kommandozeile ungültig: %s\n" @@ -7785,34 +7604,21 @@ msgstr "Kommandozeile ungültig: %s\n" msgid "usage: net sam set %s <user> <value>\n" msgstr "" -#: ../../utils/net_sam.c:47 -#: ../../utils/net_sam.c:152 -#: ../../utils/net_sam.c:244 -#: ../../utils/net_sam.c:307 -#: ../../utils/net_sam.c:697 -#: ../../utils/net_sam.c:735 -#: ../../utils/net_sam.c:1527 +#: ../../utils/net_sam.c:47 ../../utils/net_sam.c:152 ../../utils/net_sam.c:244 ../../utils/net_sam.c:307 ../../utils/net_sam.c:697 ../../utils/net_sam.c:735 ../../utils/net_sam.c:1527 #, c-format msgid "Could not find name %s\n" msgstr "" -#: ../../utils/net_sam.c:58 -#: ../../utils/net_sam.c:68 -#: ../../utils/net_sam.c:163 -#: ../../utils/net_sam.c:255 +#: ../../utils/net_sam.c:58 ../../utils/net_sam.c:68 ../../utils/net_sam.c:163 ../../utils/net_sam.c:255 msgid "Internal error\n" msgstr "" -#: ../../utils/net_sam.c:63 -#: ../../utils/net_sam.c:168 -#: ../../utils/net_sam.c:260 +#: ../../utils/net_sam.c:63 ../../utils/net_sam.c:168 ../../utils/net_sam.c:260 #, c-format msgid "Loading user %s failed\n" msgstr "" -#: ../../utils/net_sam.c:74 -#: ../../utils/net_sam.c:184 -#: ../../utils/net_sam.c:272 +#: ../../utils/net_sam.c:74 ../../utils/net_sam.c:184 ../../utils/net_sam.c:272 #, c-format msgid "Updating sam account %s failed with %s\n" msgstr "" @@ -7996,14 +7802,11 @@ msgid "" "\n" msgstr "" -#: ../../utils/net_sam.c:493 -#: ../../utils/net_sam.c:545 -#: ../../utils/net_sam.c:583 +#: ../../utils/net_sam.c:493 ../../utils/net_sam.c:545 ../../utils/net_sam.c:583 msgid "Valid account policies are:\n" msgstr "" -#: ../../utils/net_sam.c:504 -#: ../../utils/net_sam.c:556 +#: ../../utils/net_sam.c:504 ../../utils/net_sam.c:556 #, c-format msgid "Valid account policy, but unable to fetch value!\n" msgstr "" @@ -8090,8 +7893,7 @@ msgstr "" msgid "usage: net sam rights grant <name> <rights> ...\n" msgstr "" -#: ../../utils/net_sam.c:703 -#: ../../utils/net_sam.c:742 +#: ../../utils/net_sam.c:703 ../../utils/net_sam.c:742 #, c-format msgid "%s unknown\n" msgstr "" @@ -8152,10 +7954,7 @@ msgstr "" msgid "usage: net sam mapunixgroup <name>\n" msgstr "" -#: ../../utils/net_sam.c:861 -#: ../../utils/net_sam.c:1161 -#: ../../utils/net_sam.c:1248 -#: ../../utils/net_sam.c:1320 +#: ../../utils/net_sam.c:861 ../../utils/net_sam.c:1161 ../../utils/net_sam.c:1248 ../../utils/net_sam.c:1320 #, c-format msgid "Could not find group %s\n" msgstr "" @@ -8193,9 +7992,7 @@ msgstr "" msgid "usage: net sam createdomaingroup <name>\n" msgstr "" -#: ../../utils/net_sam.c:960 -#: ../../utils/net_sam.c:1038 -#: ../../utils/net_sam.c:1133 +#: ../../utils/net_sam.c:960 ../../utils/net_sam.c:1038 ../../utils/net_sam.c:1133 #, c-format msgid "Creating %s failed with %s\n" msgstr "" @@ -8205,13 +8002,11 @@ msgstr "" msgid "Created domain group %s with RID %d\n" msgstr "" -#: ../../utils/net_sam.c:984 -#: ../../utils/net_sam.c:1060 +#: ../../utils/net_sam.c:984 ../../utils/net_sam.c:1060 msgid "usage: net sam deletelocalgroup <name>\n" msgstr "" -#: ../../utils/net_sam.c:990 -#: ../../utils/net_sam.c:1066 +#: ../../utils/net_sam.c:990 ../../utils/net_sam.c:1066 #, c-format msgid "Could not find %s.\n" msgstr "" @@ -8286,8 +8081,7 @@ msgstr "" msgid "usage: net sam addmem <group> <member>\n" msgstr "" -#: ../../utils/net_sam.c:1173 -#: ../../utils/net_sam.c:1255 +#: ../../utils/net_sam.c:1173 ../../utils/net_sam.c:1255 #, c-format msgid "Could not find member %s\n" msgstr "" @@ -8357,8 +8151,7 @@ msgstr "" msgid "usage: net sam listmem <group>\n" msgstr "" -#: ../../utils/net_sam.c:1329 -#: ../../utils/net_sam.c:1339 +#: ../../utils/net_sam.c:1329 ../../utils/net_sam.c:1339 #, c-format msgid "Listing group members failed with %s\n" msgstr "" @@ -8450,14 +8243,7 @@ msgid "" " Init an LDAP tree with default users/groups\n" msgstr "" -#: ../../utils/net_sam.c:1568 -#: ../../utils/net_sam.c:1697 -#: ../../utils/net_sam.c:1729 -#: ../../utils/net_sam.c:1773 -#: ../../utils/net_sam.c:1811 -#: ../../utils/net_sam.c:1849 -#: ../../utils/net_sam.c:1860 -#: ../../utils/net_sam.c:1929 +#: ../../utils/net_sam.c:1568 ../../utils/net_sam.c:1697 ../../utils/net_sam.c:1729 ../../utils/net_sam.c:1773 ../../utils/net_sam.c:1811 ../../utils/net_sam.c:1849 ../../utils/net_sam.c:1860 ../../utils/net_sam.c:1929 msgid "Out of Memory!\n" msgstr "" @@ -8493,12 +8279,7 @@ msgstr "" msgid "Failed to add Domain Users group to ldap directory\n" msgstr "" -#: ../../utils/net_sam.c:1663 -#: ../../utils/net_sam.c:1720 -#: ../../utils/net_sam.c:1804 -#: ../../utils/net_sam.c:1893 -#: ../../utils/net_sam.c:1907 -#: ../../utils/net_sam.c:1954 +#: ../../utils/net_sam.c:1663 ../../utils/net_sam.c:1720 ../../utils/net_sam.c:1804 ../../utils/net_sam.c:1893 ../../utils/net_sam.c:1907 ../../utils/net_sam.c:1954 msgid "found!\n" msgstr "gefunden!\n" @@ -8802,8 +8583,7 @@ msgid "" "-------------------------------------------------------------------\n" msgstr "" -#: ../../utils/net_status.c:92 -#: ../../utils/net_status.c:198 +#: ../../utils/net_status.c:92 ../../utils/net_status.c:198 #, c-format msgid "%s not initialised\n" msgstr "" @@ -9326,79 +9106,77 @@ msgstr "" msgid "Please ask your system administrator to enable user sharing.\n" msgstr "" -#: ../../utils/net_util.c:116 +#: ../../utils/net_util.c:118 #, c-format msgid "Could not connect to server %s\n" msgstr "" -#: ../../utils/net_util.c:124 +#: ../../utils/net_util.c:126 msgid "The username or password was not correct.\n" msgstr "Benutzername oder Passwort nicht korrekt.\n" -#: ../../utils/net_util.c:129 +#: ../../utils/net_util.c:131 msgid "The account was locked out.\n" msgstr "" -#: ../../utils/net_util.c:133 +#: ../../utils/net_util.c:135 msgid "The account was disabled.\n" msgstr "" -#: ../../utils/net_util.c:144 +#: ../../utils/net_util.c:146 msgid "Encryption required and server that doesn't support UNIX extensions - failing connect\n" msgstr "" -#: ../../utils/net_util.c:148 +#: ../../utils/net_util.c:150 msgid "Encryption required and can't get UNIX CIFS extensions version from server.\n" msgstr "" -#: ../../utils/net_util.c:152 +#: ../../utils/net_util.c:154 #, c-format msgid "Encryption required and share %s doesn't support encryption.\n" msgstr "" -#: ../../utils/net_util.c:156 +#: ../../utils/net_util.c:158 #, c-format msgid "Encryption required and setup failed with error %s.\n" msgstr "" -#: ../../utils/net_util.c:343 -#: ../../utils/net_util.c:365 +#: ../../utils/net_util.c:345 ../../utils/net_util.c:367 msgid "ERROR: Unable to open secrets database\n" msgstr "" -#: ../../utils/net_util.c:499 +#: ../../utils/net_util.c:501 #, c-format msgid "Unable to find a suitable server for domain %s\n" msgstr "" -#: ../../utils/net_util.c:524 +#: ../../utils/net_util.c:526 #, c-format msgid "Connection failed: %s\n" msgstr "Verbindung fehlgeschlagen: %s\n" -#: ../../utils/net_util.c:558 +#: ../../utils/net_util.c:560 #, c-format msgid "Enter %s's password:" msgstr "Bitte Passwort für %s eingeben: " -#: ../../utils/net_util.c:581 +#: ../../utils/net_util.c:583 #, c-format msgid "Invalid command: %s %s\n" msgstr "Ungültiges Kommando: %s %s\n" -#: ../../utils/net_util.c:607 +#: ../../utils/net_util.c:609 msgid "Disk" -msgstr "" +msgstr "Festplatte" -#: ../../utils/net_util.c:608 +#: ../../utils/net_util.c:610 msgid "Print" -msgstr "Drucken" +msgstr "Drucker" -#: ../../utils/net_util.c:609 +#: ../../utils/net_util.c:611 msgid "Dev" -msgstr "" +msgstr "Gerät" -#: ../../utils/net_util.c:610 +#: ../../utils/net_util.c:612 msgid "IPC" -msgstr "" - +msgstr "IPC" diff --git a/source3/modules/vfs_commit.c b/source3/modules/vfs_commit.c index 1d099494e9..cade1170ba 100644 --- a/source3/modules/vfs_commit.c +++ b/source3/modules/vfs_commit.c @@ -88,6 +88,8 @@ static int commit_do( #elif HAVE_FSYNC result = fsync(fd); #else + DEBUG(0, ("%s: WARNING: no commit support on this platform\n", + MODULE)); result = 0 #endif if (result == 0) { diff --git a/source3/rpc_client/cli_pipe.c b/source3/rpc_client/cli_pipe.c index 96531666d5..48e2f9eb51 100644 --- a/source3/rpc_client/cli_pipe.c +++ b/source3/rpc_client/cli_pipe.c @@ -3035,12 +3035,30 @@ NTSTATUS rpc_pipe_bind(struct rpc_pipe_client *cli, unsigned int rpccli_set_timeout(struct rpc_pipe_client *rpc_cli, unsigned int timeout) { - struct cli_state *cli = rpc_pipe_np_smb_conn(rpc_cli); + struct cli_state *cli; - if (cli == NULL) { - return 0; + if (rpc_cli->transport->transport == NCACN_NP) { + cli = rpc_pipe_np_smb_conn(rpc_cli); + if (cli == NULL) { + return 0; + } + return cli_set_timeout(cli, timeout); + } + + if (rpc_cli->transport->transport == NCACN_IP_TCP || + rpc_cli->transport->transport == NCALRPC) { + return rpccli_set_sock_timeout(rpc_cli, timeout); } - return cli_set_timeout(cli, timeout); + + if (rpc_cli->transport->transport == NCACN_INTERNAL) { + cli = rpc_pipe_smbd_smb_conn(rpc_cli); + if (!cli) { + return 0; + } + return cli_set_timeout(cli, timeout); + } + + return 0; } bool rpccli_get_pwd_hash(struct rpc_pipe_client *rpc_cli, uint8_t nt_hash[16]) diff --git a/source3/rpc_client/ndr.c b/source3/rpc_client/ndr.c index 6433a7d196..4e8634d3b9 100644 --- a/source3/rpc_client/ndr.c +++ b/source3/rpc_client/ndr.c @@ -182,6 +182,21 @@ NTSTATUS cli_do_rpc_ndr(struct rpc_pipe_client *cli, } status = cli_do_rpc_ndr_recv(req, mem_ctx); + + /* + * NT_STATUS_IO_TIMEOUT indicates network problem, + * tear the connection apart. + */ + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT)) { + if (cli->transport->transport == NCACN_IP_TCP || + cli->transport->transport == NCALRPC) { + rpccli_close_sock_fd(cli); + } + + if (cli->transport->transport == NCACN_NP) { + rpccli_close_np_fd(cli); + } + } fail: TALLOC_FREE(frame); return status; diff --git a/source3/rpc_client/rpc_transport_np.c b/source3/rpc_client/rpc_transport_np.c index de748d9bbc..9f8872c467 100644 --- a/source3/rpc_client/rpc_transport_np.c +++ b/source3/rpc_client/rpc_transport_np.c @@ -402,3 +402,15 @@ struct cli_state *rpc_pipe_np_smb_conn(struct rpc_pipe_client *p) } return state->cli; } + +void rpccli_close_np_fd(struct rpc_pipe_client *p) +{ + struct cli_state *cli = rpc_pipe_np_smb_conn(p); + if (cli) { + if (cli->fd != -1) { + close(cli->fd); + cli->fd = -1; + } + } + return; +} diff --git a/source3/rpc_client/rpc_transport_smbd.c b/source3/rpc_client/rpc_transport_smbd.c index 171048ae29..929e553c84 100644 --- a/source3/rpc_client/rpc_transport_smbd.c +++ b/source3/rpc_client/rpc_transport_smbd.c @@ -682,3 +682,13 @@ NTSTATUS rpc_transport_smbd_init(TALLOC_CTX *mem_ctx, TALLOC_FREE(frame); return status; } + +struct cli_state *rpc_pipe_smbd_smb_conn(struct rpc_pipe_client *p) +{ + struct rpc_transport_smbd_state *state = talloc_get_type(p->transport->priv, + struct rpc_transport_smbd_state); + if (!state || !state->conn) { + return NULL; + } + return state->conn->cli; +} diff --git a/source3/rpc_client/rpc_transport_sock.c b/source3/rpc_client/rpc_transport_sock.c index 4ab6500900..df060e61e9 100644 --- a/source3/rpc_client/rpc_transport_sock.c +++ b/source3/rpc_client/rpc_transport_sock.c @@ -24,6 +24,7 @@ struct rpc_transport_sock_state { int fd; + int timeout; }; static int rpc_transport_sock_state_destructor(struct rpc_transport_sock_state *s) @@ -51,6 +52,7 @@ static struct tevent_req *rpc_sock_read_send(TALLOC_CTX *mem_ctx, priv, struct rpc_transport_sock_state); struct tevent_req *req, *subreq; struct rpc_sock_read_state *state; + struct timeval endtime; req = tevent_req_create(mem_ctx, &state, struct rpc_sock_read_state); if (req == NULL) { @@ -61,10 +63,16 @@ static struct tevent_req *rpc_sock_read_send(TALLOC_CTX *mem_ctx, return tevent_req_post(req, ev); } state->transp = sock_transp; + endtime = timeval_current_ofs(0, sock_transp->timeout * 1000); subreq = async_recv_send(state, ev, sock_transp->fd, data, size, 0); if (subreq == NULL) { goto fail; } + + if (!tevent_req_set_endtime(subreq, ev, endtime)) { + goto fail; + } + tevent_req_set_callback(subreq, rpc_sock_read_done, req); return req; fail: @@ -121,6 +129,7 @@ static struct tevent_req *rpc_sock_write_send(TALLOC_CTX *mem_ctx, priv, struct rpc_transport_sock_state); struct tevent_req *req, *subreq; struct rpc_sock_write_state *state; + struct timeval endtime; req = tevent_req_create(mem_ctx, &state, struct rpc_sock_write_state); if (req == NULL) { @@ -131,10 +140,16 @@ static struct tevent_req *rpc_sock_write_send(TALLOC_CTX *mem_ctx, return tevent_req_post(req, ev); } state->transp = sock_transp; + endtime = timeval_current_ofs(0, sock_transp->timeout * 1000); subreq = async_send_send(state, ev, sock_transp->fd, data, size, 0); if (subreq == NULL) { goto fail; } + + if (!tevent_req_set_endtime(subreq, ev, endtime)) { + goto fail; + } + tevent_req_set_callback(subreq, rpc_sock_write_done, req); return req; fail: @@ -193,6 +208,7 @@ NTSTATUS rpc_transport_sock_init(TALLOC_CTX *mem_ctx, int fd, result->priv = state; state->fd = fd; + state->timeout = 10000; /* 10 seconds. */ talloc_set_destructor(state, rpc_transport_sock_state_destructor); result->trans_send = NULL; @@ -205,3 +221,40 @@ NTSTATUS rpc_transport_sock_init(TALLOC_CTX *mem_ctx, int fd, *presult = result; return NT_STATUS_OK; } + +int rpccli_set_sock_timeout(struct rpc_pipe_client *cli, int timeout) +{ + struct rpc_transport_sock_state *state = talloc_get_type(cli->transport->priv, + struct rpc_transport_sock_state); + int orig_timeout; + if (!state) { + return 0; + } + orig_timeout = state->timeout; + state->timeout = timeout; + return orig_timeout; +} + +void rpccli_close_sock_fd(struct rpc_pipe_client *cli) +{ + struct rpc_transport_sock_state *state = talloc_get_type(cli->transport->priv, + struct rpc_transport_sock_state); + if (state) { + if (state->fd != -1) { + close(state->fd); + state->fd = -1; + } + } + return; +} + +bool rpc_pipe_tcp_connection_ok(struct rpc_pipe_client *cli) +{ + struct rpc_transport_sock_state *state = talloc_get_type(cli->transport->priv, + struct rpc_transport_sock_state); + if (state && state->fd != -1) { + return true; + } + + return false; +} diff --git a/source3/rpc_server/srv_pipe_hnd.c b/source3/rpc_server/srv_pipe_hnd.c index 5d5eb0eeb1..83f27fee8e 100644 --- a/source3/rpc_server/srv_pipe_hnd.c +++ b/source3/rpc_server/srv_pipe_hnd.c @@ -903,6 +903,13 @@ static ssize_t read_from_internal_pipe(struct pipes_struct *p, char *data, size_ out: (*is_data_outstanding) = prs_offset(&p->out_data.frag) > n; + if (p->out_data.current_pdu_sent == prs_offset(&p->out_data.frag)) { + /* We've returned everything in the out_data.frag + * so we're done with this pdu. Free it and reset + * current_pdu_sent. */ + p->out_data.current_pdu_sent = 0; + prs_mem_free(&p->out_data.frag); + } return data_returned; } diff --git a/source3/smbd/pipes.c b/source3/smbd/pipes.c index bf64c59afd..9bc3fdfdf6 100644 --- a/source3/smbd/pipes.c +++ b/source3/smbd/pipes.c @@ -353,6 +353,11 @@ static void pipe_write_andx_done(struct tevent_req *subreq) done: chain_reply(req); + /* + * We must free here as the ownership of req was + * moved to the connection struct in reply_pipe_write_and_X(). + */ + TALLOC_FREE(req); } /**************************************************************************** @@ -458,4 +463,9 @@ static void pipe_read_andx_done(struct tevent_req *subreq) done: chain_reply(req); + /* + * We must free here as the ownership of req was + * moved to the connection struct in reply_pipe_read_and_X(). + */ + TALLOC_FREE(req); } diff --git a/source3/utils/net_help.c b/source3/utils/net_help.c index 20fb66c2e0..4e326ba902 100644 --- a/source3/utils/net_help.c +++ b/source3/utils/net_help.c @@ -37,10 +37,10 @@ static int net_usage(struct net_context *c, int argc, const char **argv) for (i=0; table[i].funcname != NULL; i++) { if (c->display_usage) { d_printf(_("net %s usage:\n"), table[i].funcname); - d_printf("\n%s\n\n", table[i].usage); + d_printf("\n%s\n\n", _(table[i].usage)); } else { d_printf("%s %-15s %s\n", "net", table[i].funcname, - table[i].description); + _(table[i].description)); } } diff --git a/source3/utils/net_util.c b/source3/utils/net_util.c index 6bb5a3836c..2a42c87e2e 100644 --- a/source3/utils/net_util.c +++ b/source3/utils/net_util.c @@ -583,13 +583,13 @@ int net_run_function(struct net_context *c, int argc, const char **argv, d_fprintf(stderr, _("Invalid command: %s %s\n"), whoami, (argc > 0)?argv[0]:""); } - d_printf("Usage:\n"); + d_printf(_("Usage:\n")); for (i=0; table[i].funcname != NULL; i++) { if(c->display_usage == false) d_printf("%s %-15s %s\n", whoami, table[i].funcname, - table[i].description); + _(table[i].description)); else - d_printf("%s\n", table[i].usage); + d_printf("%s\n", _(table[i].usage)); } return c->display_usage?0:-1; @@ -599,7 +599,7 @@ void net_display_usage_from_functable(struct functable *table) { int i; for (i=0; table[i].funcname != NULL; i++) { - d_printf("%s\n", table[i].usage); + d_printf("%s\n", _(table[i].usage)); } } diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c index ddbd9d9d5b..68972dd18d 100644 --- a/source3/winbindd/winbindd_cache.c +++ b/source3/winbindd/winbindd_cache.c @@ -1380,6 +1380,7 @@ static NTSTATUS query_user_list(struct winbindd_domain *domain, struct cache_entry *centry = NULL; NTSTATUS status; unsigned int i, retry; + bool old_status = domain->online; if (!cache->tdb) goto do_query; @@ -1388,6 +1389,7 @@ static NTSTATUS query_user_list(struct winbindd_domain *domain, if (!centry) goto do_query; +do_fetch_cache: *num_entries = centry_uint32(centry); if (*num_entries == 0) @@ -1448,12 +1450,44 @@ do_query: "connection cache\n")); invalidate_cm_connection(&domain->conn); } + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + /* store partial response. */ + if (*num_entries > 0) { + /* + * humm, what about the status used for cache? + * Should it be NT_STATUS_OK? + */ + break; + } + /* + * domain is offline now, and there is no user entries, + * try to fetch from cache again. + */ + if (cache->tdb && !domain->online && !domain->internal && old_status) { + centry = wcache_fetch(cache, domain, "UL/%s", domain->name); + /* partial response... */ + if (!centry) { + goto skip_save; + } else { + goto do_fetch_cache; + } + } else { + goto skip_save; + } + } } while (NT_STATUS_V(status) == NT_STATUS_V(NT_STATUS_UNSUCCESSFUL) && (retry++ < 5)); /* and save it */ refresh_sequence_number(domain, false); + if (!NT_STATUS_IS_OK(status)) { + return status; + } centry = centry_start(domain, status); if (!centry) goto skip_save; @@ -1497,7 +1531,9 @@ static NTSTATUS enum_dom_groups(struct winbindd_domain *domain, struct cache_entry *centry = NULL; NTSTATUS status; unsigned int i; + bool old_status; + old_status = domain->online; if (!cache->tdb) goto do_query; @@ -1505,6 +1541,7 @@ static NTSTATUS enum_dom_groups(struct winbindd_domain *domain, if (!centry) goto do_query; +do_fetch_cache: *num_entries = centry_uint32(centry); if (*num_entries == 0) @@ -1543,8 +1580,26 @@ do_query: status = domain->backend->enum_dom_groups(domain, mem_ctx, num_entries, info); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (cache->tdb && + !domain->online && + !domain->internal && + old_status) { + centry = wcache_fetch(cache, domain, "GL/%s/domain", domain->name); + if (centry) { + goto do_fetch_cache; + } + } + } /* and save it */ refresh_sequence_number(domain, false); + if (!NT_STATUS_IS_OK(status)) { + return status; + } centry = centry_start(domain, status); if (!centry) goto skip_save; @@ -1571,7 +1626,9 @@ static NTSTATUS enum_local_groups(struct winbindd_domain *domain, struct cache_entry *centry = NULL; NTSTATUS status; unsigned int i; + bool old_status; + old_status = domain->online; if (!cache->tdb) goto do_query; @@ -1579,6 +1636,7 @@ static NTSTATUS enum_local_groups(struct winbindd_domain *domain, if (!centry) goto do_query; +do_fetch_cache: *num_entries = centry_uint32(centry); if (*num_entries == 0) @@ -1627,8 +1685,26 @@ do_query: status = domain->backend->enum_local_groups(domain, mem_ctx, num_entries, info); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (cache->tdb && + !domain->internal && + !domain->online && + old_status) { + centry = wcache_fetch(cache, domain, "GL/%s/local", domain->name); + if (centry) { + goto do_fetch_cache; + } + } + } /* and save it */ refresh_sequence_number(domain, false); + if (!NT_STATUS_IS_OK(status)) { + return status; + } centry = centry_start(domain, status); if (!centry) goto skip_save; @@ -1694,6 +1770,9 @@ static NTSTATUS name_to_sid(struct winbindd_domain *domain, enum lsa_SidType *type) { NTSTATUS status; + bool old_status; + + old_status = domain->online; status = wcache_name_to_sid(domain, domain_name, name, sid, type); if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) { @@ -1719,6 +1798,19 @@ static NTSTATUS name_to_sid(struct winbindd_domain *domain, status = domain->backend->name_to_sid(domain, mem_ctx, domain_name, name, flags, sid, type); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (!domain->internal && + !domain->online && + old_status) { + NTSTATUS cache_status; + cache_status = wcache_name_to_sid(domain, domain_name, name, sid, type); + return cache_status; + } + } /* and save it */ refresh_sequence_number(domain, false); @@ -1789,7 +1881,9 @@ static NTSTATUS sid_to_name(struct winbindd_domain *domain, enum lsa_SidType *type) { NTSTATUS status; + bool old_status; + old_status = domain->online; status = wcache_sid_to_name(domain, sid, mem_ctx, domain_name, name, type); if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) { @@ -1815,8 +1909,25 @@ static NTSTATUS sid_to_name(struct winbindd_domain *domain, status = domain->backend->sid_to_name(domain, mem_ctx, sid, domain_name, name, type); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (!domain->internal && + !domain->online && + old_status) { + NTSTATUS cache_status; + cache_status = wcache_sid_to_name(domain, sid, mem_ctx, + domain_name, name, type); + return cache_status; + } + } /* and save it */ refresh_sequence_number(domain, false); + if (!NT_STATUS_IS_OK(status)) { + return status; + } wcache_save_sid_to_name(domain, status, sid, *domain_name, *name, *type); /* We can't save the name to sid mapping here, as with sid history a @@ -1839,7 +1950,9 @@ static NTSTATUS rids_to_names(struct winbindd_domain *domain, NTSTATUS result = NT_STATUS_UNSUCCESSFUL; bool have_mapped; bool have_unmapped; + bool old_status; + old_status = domain->online; *domain_name = NULL; *names = NULL; *types = NULL; @@ -1924,6 +2037,73 @@ static NTSTATUS rids_to_names(struct winbindd_domain *domain, rids, num_rids, domain_name, names, types); + if (NT_STATUS_EQUAL(result, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(result, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (cache->tdb && + !domain->internal && + !domain->online && + old_status) { + have_mapped = have_unmapped = false; + + for (i=0; i<num_rids; i++) { + DOM_SID sid; + struct cache_entry *centry; + fstring tmp; + + if (!sid_compose(&sid, domain_sid, rids[i])) { + result = NT_STATUS_INTERNAL_ERROR; + goto error; + } + + centry = wcache_fetch(cache, domain, "SN/%s", + sid_to_fstring(tmp, &sid)); + if (!centry) { + (*types)[i] = SID_NAME_UNKNOWN; + (*names)[i] = talloc_strdup(*names, ""); + continue; + } + + (*types)[i] = SID_NAME_UNKNOWN; + (*names)[i] = talloc_strdup(*names, ""); + + if (NT_STATUS_IS_OK(centry->status)) { + char *dom; + have_mapped = true; + (*types)[i] = (enum lsa_SidType)centry_uint32(centry); + + dom = centry_string(centry, mem_ctx); + if (*domain_name == NULL) { + *domain_name = dom; + } else { + talloc_free(dom); + } + + (*names)[i] = centry_string(centry, *names); + + } else if (NT_STATUS_EQUAL(centry->status, NT_STATUS_NONE_MAPPED)) { + have_unmapped = true; + + } else { + /* something's definitely wrong */ + result = centry->status; + goto error; + } + + centry_free(centry); + } + + if (!have_mapped) { + return NT_STATUS_NONE_MAPPED; + } + if (!have_unmapped) { + return NT_STATUS_OK; + } + return STATUS_SOME_UNMAPPED; + } + } /* None of the queried rids has been found so save all negative entries */ @@ -2046,7 +2226,9 @@ static NTSTATUS query_user(struct winbindd_domain *domain, struct wbint_userinfo *info) { NTSTATUS status; + bool old_status; + old_status = domain->online; status = wcache_query_user(domain, mem_ctx, user_sid, info); if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) { return status; @@ -2064,8 +2246,24 @@ static NTSTATUS query_user(struct winbindd_domain *domain, status = domain->backend->query_user(domain, mem_ctx, user_sid, info); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (!domain->internal && + !domain->online && + old_status) { + NTSTATUS cache_status; + cache_status = wcache_query_user(domain, mem_ctx, user_sid, info); + return cache_status; + } + } /* and save it */ refresh_sequence_number(domain, false); + if (!NT_STATUS_IS_OK(status)) { + return status; + } wcache_save_user(domain, status, info); return status; @@ -2140,7 +2338,9 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain, NTSTATUS status; unsigned int i; fstring sid_string; + bool old_status; + old_status = domain->online; status = wcache_lookup_usergroups(domain, mem_ctx, user_sid, num_groups, user_gids); if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) { @@ -2160,11 +2360,28 @@ static NTSTATUS lookup_usergroups(struct winbindd_domain *domain, status = domain->backend->lookup_usergroups(domain, mem_ctx, user_sid, num_groups, user_gids); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (!domain->internal && + !domain->online && + old_status) { + NTSTATUS cache_status; + cache_status = wcache_lookup_usergroups(domain, mem_ctx, user_sid, + num_groups, user_gids); + return cache_status; + } + } if ( NT_STATUS_EQUAL(status, NT_STATUS_SYNCHRONIZATION_REQUIRED) ) goto skip_save; /* and save it */ refresh_sequence_number(domain, false); + if (!NT_STATUS_IS_OK(status)) { + return status; + } centry = centry_start(domain, status); if (!centry) goto skip_save; @@ -2272,7 +2489,9 @@ static NTSTATUS lookup_useraliases(struct winbindd_domain *domain, NTSTATUS status; char *sidlist; int i; + bool old_status; + old_status = domain->online; status = wcache_lookup_useraliases(domain, mem_ctx, num_sids, sids, num_aliases, alias_rids); if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) { @@ -2297,8 +2516,25 @@ static NTSTATUS lookup_useraliases(struct winbindd_domain *domain, num_sids, sids, num_aliases, alias_rids); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (!domain->internal && + !domain->online && + old_status) { + NTSTATUS cache_status; + cache_status = wcache_lookup_useraliases(domain, mem_ctx, num_sids, + sids, num_aliases, alias_rids); + return cache_status; + } + } /* and save it */ refresh_sequence_number(domain, false); + if (!NT_STATUS_IS_OK(status)) { + return status; + } centry = centry_start(domain, status); if (!centry) goto skip_save; @@ -2389,7 +2625,9 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, NTSTATUS status; unsigned int i; fstring sid_string; + bool old_status; + old_status = domain->online; status = wcache_lookup_groupmem(domain, mem_ctx, group_sid, num_names, sid_mem, names, name_types); if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) { @@ -2413,8 +2651,26 @@ static NTSTATUS lookup_groupmem(struct winbindd_domain *domain, type, num_names, sid_mem, names, name_types); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (!domain->internal && + !domain->online && + old_status) { + NTSTATUS cache_status; + cache_status = wcache_lookup_groupmem(domain, mem_ctx, group_sid, + num_names, sid_mem, names, + name_types); + return cache_status; + } + } /* and save it */ refresh_sequence_number(domain, false); + if (!NT_STATUS_IS_OK(status)) { + return status; + } centry = centry_start(domain, status); if (!centry) goto skip_save; @@ -2449,7 +2705,71 @@ static NTSTATUS trusted_domains(struct winbindd_domain *domain, struct netr_DomainTrustList *trusts) { NTSTATUS status; + struct winbind_cache *cache; + struct winbindd_tdc_domain *dom_list = NULL; + size_t num_domains = 0; + bool retval = false; + int i; + bool old_status; + + old_status = domain->online; + trusts->count = 0; + trusts->array = NULL; + if (domain->online) { + goto do_query; + } + + cache = get_cache(domain); + if (!cache || !cache->tdb) { + goto do_query; + } + + retval = wcache_tdc_fetch_list(&dom_list, &num_domains); + if (!retval || !num_domains || !dom_list) { + TALLOC_FREE(dom_list); + goto do_query; + } + +do_fetch_cache: + trusts->array = TALLOC_ZERO_ARRAY(mem_ctx, struct netr_DomainTrust, num_domains); + if (!trusts->array) { + TALLOC_FREE(dom_list); + return NT_STATUS_NO_MEMORY; + } + + for (i = 0; i < num_domains; i++) { + struct netr_DomainTrust *trust; + struct dom_sid *sid; + struct winbindd_domain *dom; + + dom = find_domain_from_name_noinit(dom_list[i].domain_name); + if (dom && dom->internal) { + continue; + } + + trust = &trusts->array[trusts->count]; + trust->netbios_name = talloc_strdup(trusts->array, dom_list[i].domain_name); + trust->dns_name = talloc_strdup(trusts->array, dom_list[i].dns_name); + sid = talloc(trusts->array, struct dom_sid); + if (!trust->netbios_name || !trust->dns_name || + !sid) { + TALLOC_FREE(dom_list); + TALLOC_FREE(trusts->array); + return NT_STATUS_NO_MEMORY; + } + + trust->trust_flags = dom_list[i].trust_flags; + trust->trust_attributes = dom_list[i].trust_attribs; + trust->trust_type = dom_list[i].trust_type; + sid_copy(sid, &dom_list[i].sid); + trust->sid = sid; + trusts->count++; + } + + TALLOC_FREE(dom_list); + return NT_STATUS_OK; +do_query: /* Return status value returned by seq number check */ if (!NT_STATUS_IS_OK(domain->last_status)) @@ -2460,6 +2780,22 @@ static NTSTATUS trusted_domains(struct winbindd_domain *domain, status = domain->backend->trusted_domains(domain, mem_ctx, trusts); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (!domain->internal && + !domain->online && + old_status) { + retval = wcache_tdc_fetch_list(&dom_list, &num_domains); + if (retval && num_domains && dom_list) { + TALLOC_FREE(trusts->array); + trusts->count = 0; + goto do_fetch_cache; + } + } + } /* no trusts gives NT_STATUS_NO_MORE_ENTRIES resetting to NT_STATUS_OK * so that the generic centry handling still applies correctly - * Guenther*/ @@ -2478,7 +2814,9 @@ static NTSTATUS lockout_policy(struct winbindd_domain *domain, struct winbind_cache *cache = get_cache(domain); struct cache_entry *centry = NULL; NTSTATUS status; + bool old_status; + old_status = domain->online; if (!cache->tdb) goto do_query; @@ -2487,6 +2825,7 @@ static NTSTATUS lockout_policy(struct winbindd_domain *domain, if (!centry) goto do_query; +do_fetch_cache: policy->lockout_duration = centry_nttime(centry); policy->lockout_window = centry_nttime(centry); policy->lockout_threshold = centry_uint16(centry); @@ -2512,8 +2851,26 @@ do_query: status = domain->backend->lockout_policy(domain, mem_ctx, policy); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (cache->tdb && + !domain->internal && + !domain->online && + old_status) { + centry = wcache_fetch(cache, domain, "LOC_POL/%s", domain->name); + if (centry) { + goto do_fetch_cache; + } + } + } /* and save it */ refresh_sequence_number(domain, false); + if (!NT_STATUS_IS_OK(status)) { + return status; + } wcache_save_lockout_policy(domain, status, policy); return status; @@ -2527,7 +2884,9 @@ static NTSTATUS password_policy(struct winbindd_domain *domain, struct winbind_cache *cache = get_cache(domain); struct cache_entry *centry = NULL; NTSTATUS status; + bool old_status; + old_status = domain->online; if (!cache->tdb) goto do_query; @@ -2536,6 +2895,7 @@ static NTSTATUS password_policy(struct winbindd_domain *domain, if (!centry) goto do_query; +do_fetch_cache: policy->min_password_length = centry_uint16(centry); policy->password_history_length = centry_uint16(centry); policy->password_properties = centry_uint32(centry); @@ -2563,11 +2923,27 @@ do_query: status = domain->backend->password_policy(domain, mem_ctx, policy); + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || + NT_STATUS_EQUAL(status, NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND)) { + if (!domain->internal && old_status) { + set_domain_offline(domain); + } + if (cache->tdb && + !domain->internal && + !domain->online && + old_status) { + centry = wcache_fetch(cache, domain, "PWD_POL/%s", domain->name); + if (centry) { + goto do_fetch_cache; + } + } + } /* and save it */ refresh_sequence_number(domain, false); - if (NT_STATUS_IS_OK(status)) { - wcache_save_password_policy(domain, status, policy); + if (!NT_STATUS_IS_OK(status)) { + return status; } + wcache_save_password_policy(domain, status, policy); return status; } diff --git a/source3/winbindd/winbindd_cm.c b/source3/winbindd/winbindd_cm.c index 36b769bf1b..479602a9b4 100644 --- a/source3/winbindd/winbindd_cm.c +++ b/source3/winbindd/winbindd_cm.c @@ -2214,7 +2214,8 @@ NTSTATUS cm_connect_lsa_tcp(struct winbindd_domain *domain, if (conn->lsa_pipe_tcp && conn->lsa_pipe_tcp->transport->transport == NCACN_IP_TCP && - conn->lsa_pipe_tcp->auth->auth_level == DCERPC_AUTH_LEVEL_PRIVACY) { + conn->lsa_pipe_tcp->auth->auth_level == DCERPC_AUTH_LEVEL_PRIVACY && + rpc_pipe_tcp_connection_ok(conn->lsa_pipe_tcp)) { goto done; } diff --git a/source3/winbindd/winbindd_rpc.c b/source3/winbindd/winbindd_rpc.c index e7003766d8..2146953639 100644 --- a/source3/winbindd/winbindd_rpc.c +++ b/source3/winbindd/winbindd_rpc.c @@ -199,7 +199,7 @@ static NTSTATUS enum_dom_groups(struct winbindd_domain *domain, talloc_destroy(mem_ctx2); } while (NT_STATUS_EQUAL(status, STATUS_MORE_ENTRIES)); - return NT_STATUS_OK; + return status; } /* List all domain groups */ @@ -269,7 +269,7 @@ static NTSTATUS enum_local_groups(struct winbindd_domain *domain, } while (NT_STATUS_EQUAL(result, STATUS_MORE_ENTRIES)); - return NT_STATUS_OK; + return result; } /* convert a single name to a sid in a domain */ @@ -1286,12 +1286,8 @@ NTSTATUS winbindd_lookup_names(TALLOC_CTX *mem_ctx, * This call can take a long time * allow the server to time out. * 35 seconds should do it. - * NB - * only do this when the undelying transport is named pipe. */ - if (cli->transport->transport == NCACN_NP) { - orig_timeout = rpccli_set_timeout(cli, 35000); - } + orig_timeout = rpccli_set_timeout(cli, 35000); status = lookup_names_fn(cli, mem_ctx, @@ -1304,9 +1300,7 @@ NTSTATUS winbindd_lookup_names(TALLOC_CTX *mem_ctx, types); /* And restore our original timeout. */ - if (cli->transport->transport == NCACN_NP) { - rpccli_set_timeout(cli, orig_timeout); - } + rpccli_set_timeout(cli, orig_timeout); if (!NT_STATUS_IS_OK(status)) { return status; diff --git a/source4/dsdb/repl/drepl_notify.c b/source4/dsdb/repl/drepl_notify.c index fe3b2d2497..2f0fa4892b 100644 --- a/source4/dsdb/repl/drepl_notify.c +++ b/source4/dsdb/repl/drepl_notify.c @@ -101,13 +101,14 @@ static void dreplsrv_op_notify_replica_sync_send(struct dreplsrv_op_notify_state /* called when we have an established connection */ -static void dreplsrv_op_notify_connect_recv(struct composite_context *creq) +static void dreplsrv_op_notify_connect_done(struct tevent_req *subreq) { - struct dreplsrv_op_notify_state *st = talloc_get_type(creq->async.private_data, - struct dreplsrv_op_notify_state); + struct dreplsrv_op_notify_state *st = tevent_req_callback_data(subreq, + struct dreplsrv_op_notify_state); struct composite_context *c = st->creq; - c->status = dreplsrv_out_drsuapi_recv(creq); + c->status = dreplsrv_out_drsuapi_recv(subreq); + TALLOC_FREE(subreq); if (!composite_is_ok(c)) return; dreplsrv_op_notify_replica_sync_send(st); @@ -119,8 +120,8 @@ static void dreplsrv_op_notify_connect_recv(struct composite_context *creq) static struct composite_context *dreplsrv_op_notify_send(struct dreplsrv_notify_operation *op) { struct composite_context *c; - struct composite_context *creq; struct dreplsrv_op_notify_state *st; + struct tevent_req *subreq; c = composite_create(op, op->service->task->event_ctx); if (c == NULL) return NULL; @@ -131,8 +132,11 @@ static struct composite_context *dreplsrv_op_notify_send(struct dreplsrv_notify_ st->creq = c; st->op = op; - creq = dreplsrv_out_drsuapi_send(op->source_dsa->conn); - composite_continue(c, creq, dreplsrv_op_notify_connect_recv, st); + subreq = dreplsrv_out_drsuapi_send(st, + op->service->task->event_ctx, + op->source_dsa->conn); + if (composite_nomem(subreq, c)) return c; + tevent_req_set_callback(subreq, dreplsrv_op_notify_connect_done, st); return c; } diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c index 03f8842494..722db4f8ee 100644 --- a/source4/dsdb/repl/drepl_out_helpers.c +++ b/source4/dsdb/repl/drepl_out_helpers.c @@ -34,10 +34,9 @@ #include "libcli/composite/composite.h" #include "auth/gensec/gensec.h" #include "param/param.h" +#include "../lib/util/tevent_ntstatus.h" struct dreplsrv_out_drsuapi_state { - struct composite_context *creq; - struct dreplsrv_out_connection *conn; struct dreplsrv_drsuapi_connection *drsuapi; @@ -46,139 +45,160 @@ struct dreplsrv_out_drsuapi_state { struct drsuapi_DsBind bind_r; }; -static void dreplsrv_out_drsuapi_connect_recv(struct composite_context *creq); +static void dreplsrv_out_drsuapi_connect_done(struct composite_context *creq); -struct composite_context *dreplsrv_out_drsuapi_send(struct dreplsrv_out_connection *conn) +struct tevent_req *dreplsrv_out_drsuapi_send(TALLOC_CTX *mem_ctx, + struct tevent_context *ev, + struct dreplsrv_out_connection *conn) { - struct composite_context *c; + struct tevent_req *req; + struct dreplsrv_out_drsuapi_state *state; struct composite_context *creq; - struct dreplsrv_out_drsuapi_state *st; - c = composite_create(conn, conn->service->task->event_ctx); - if (c == NULL) return NULL; + req = tevent_req_create(mem_ctx, &state, + struct dreplsrv_out_drsuapi_state); + if (req == NULL) { + return NULL; + } - st = talloc_zero(c, struct dreplsrv_out_drsuapi_state); - if (composite_nomem(st, c)) return c; + state->conn = conn; + state->drsuapi = conn->drsuapi; - c->private_data = st; + if (state->drsuapi && !state->drsuapi->pipe->conn->dead) { + tevent_req_done(req); + return tevent_req_post(req, ev); + } - st->creq = c; - st->conn = conn; - st->drsuapi = conn->drsuapi; - - if (st->drsuapi && !st->drsuapi->pipe->conn->dead) { - composite_done(c); - return c; - } else if (st->drsuapi && st->drsuapi->pipe->conn->dead) { - talloc_free(st->drsuapi); + if (state->drsuapi && state->drsuapi->pipe->conn->dead) { + talloc_free(state->drsuapi); conn->drsuapi = NULL; } - st->drsuapi = talloc_zero(st, struct dreplsrv_drsuapi_connection); - if (composite_nomem(st->drsuapi, c)) return c; + state->drsuapi = talloc_zero(state, struct dreplsrv_drsuapi_connection); + if (tevent_req_nomem(state->drsuapi, req)) { + return tevent_req_post(req, ev); + } - creq = dcerpc_pipe_connect_b_send(st, conn->binding, &ndr_table_drsuapi, + creq = dcerpc_pipe_connect_b_send(state, conn->binding, &ndr_table_drsuapi, conn->service->system_session_info->credentials, - c->event_ctx, conn->service->task->lp_ctx); - composite_continue(c, creq, dreplsrv_out_drsuapi_connect_recv, st); + ev, conn->service->task->lp_ctx); + if (tevent_req_nomem(creq, req)) { + return tevent_req_post(req, ev); + } + composite_continue(NULL, creq, dreplsrv_out_drsuapi_connect_done, req); - return c; + return req; } -static void dreplsrv_out_drsuapi_bind_send(struct dreplsrv_out_drsuapi_state *st); +static void dreplsrv_out_drsuapi_bind_done(struct rpc_request *rreq); -static void dreplsrv_out_drsuapi_connect_recv(struct composite_context *creq) +static void dreplsrv_out_drsuapi_connect_done(struct composite_context *creq) { - struct dreplsrv_out_drsuapi_state *st = talloc_get_type(creq->async.private_data, - struct dreplsrv_out_drsuapi_state); - struct composite_context *c = st->creq; - - c->status = dcerpc_pipe_connect_b_recv(creq, st->drsuapi, &st->drsuapi->pipe); - if (!composite_is_ok(c)) return; - - c->status = gensec_session_key(st->drsuapi->pipe->conn->security_state.generic_state, - &st->drsuapi->gensec_skey); - if (!composite_is_ok(c)) return; - - dreplsrv_out_drsuapi_bind_send(st); -} + struct tevent_req *req = talloc_get_type(creq->async.private_data, + struct tevent_req); + struct dreplsrv_out_drsuapi_state *state = tevent_req_data(req, + struct dreplsrv_out_drsuapi_state); + NTSTATUS status; + struct rpc_request *rreq; -static void dreplsrv_out_drsuapi_bind_recv(struct rpc_request *req); + status = dcerpc_pipe_connect_b_recv(creq, + state->drsuapi, + &state->drsuapi->pipe); + if (tevent_req_nterror(req, status)) { + return; + } -static void dreplsrv_out_drsuapi_bind_send(struct dreplsrv_out_drsuapi_state *st) -{ - struct composite_context *c = st->creq; - struct rpc_request *req; + status = gensec_session_key(state->drsuapi->pipe->conn->security_state.generic_state, + &state->drsuapi->gensec_skey); + if (tevent_req_nterror(req, status)) { + return; + } - st->bind_info_ctr.length = 28; - st->bind_info_ctr.info.info28 = st->conn->service->bind_info28; + state->bind_info_ctr.length = 28; + state->bind_info_ctr.info.info28 = state->conn->service->bind_info28; - st->bind_r.in.bind_guid = &st->conn->service->ntds_guid; - st->bind_r.in.bind_info = &st->bind_info_ctr; - st->bind_r.out.bind_handle = &st->drsuapi->bind_handle; + state->bind_r.in.bind_guid = &state->conn->service->ntds_guid; + state->bind_r.in.bind_info = &state->bind_info_ctr; + state->bind_r.out.bind_handle = &state->drsuapi->bind_handle; - req = dcerpc_drsuapi_DsBind_send(st->drsuapi->pipe, st, &st->bind_r); - composite_continue_rpc(c, req, dreplsrv_out_drsuapi_bind_recv, st); + rreq = dcerpc_drsuapi_DsBind_send(state->drsuapi->pipe, + state, + &state->bind_r); + if (tevent_req_nomem(rreq, req)) { + return; + } + composite_continue_rpc(NULL, rreq, dreplsrv_out_drsuapi_bind_done, req); } -static void dreplsrv_out_drsuapi_bind_recv(struct rpc_request *req) +static void dreplsrv_out_drsuapi_bind_done(struct rpc_request *rreq) { - struct dreplsrv_out_drsuapi_state *st = talloc_get_type(req->async.private_data, - struct dreplsrv_out_drsuapi_state); - struct composite_context *c = st->creq; + struct tevent_req *req = talloc_get_type(rreq->async.private_data, + struct tevent_req); + struct dreplsrv_out_drsuapi_state *state = tevent_req_data(req, + struct dreplsrv_out_drsuapi_state); + NTSTATUS status; - c->status = dcerpc_ndr_request_recv(req); - if (!composite_is_ok(c)) return; + status = dcerpc_ndr_request_recv(rreq); + if (tevent_req_nterror(req, status)) { + return; + } - if (!W_ERROR_IS_OK(st->bind_r.out.result)) { - composite_error(c, werror_to_ntstatus(st->bind_r.out.result)); + if (!W_ERROR_IS_OK(state->bind_r.out.result)) { + status = werror_to_ntstatus(state->bind_r.out.result); + tevent_req_nterror(req, status); return; } - ZERO_STRUCT(st->drsuapi->remote_info28); - if (st->bind_r.out.bind_info) { - switch (st->bind_r.out.bind_info->length) { + ZERO_STRUCT(state->drsuapi->remote_info28); + if (state->bind_r.out.bind_info) { + struct drsuapi_DsBindInfo28 *info28; + info28 = &state->drsuapi->remote_info28; + + switch (state->bind_r.out.bind_info->length) { case 24: { struct drsuapi_DsBindInfo24 *info24; - info24 = &st->bind_r.out.bind_info->info.info24; - st->drsuapi->remote_info28.supported_extensions = info24->supported_extensions; - st->drsuapi->remote_info28.site_guid = info24->site_guid; - st->drsuapi->remote_info28.pid = info24->pid; - st->drsuapi->remote_info28.repl_epoch = 0; + info24 = &state->bind_r.out.bind_info->info.info24; + + info28->supported_extensions = info24->supported_extensions; + info28->site_guid = info24->site_guid; + info28->pid = info24->pid; + info28->repl_epoch = 0; break; } case 48: { struct drsuapi_DsBindInfo48 *info48; - info48 = &st->bind_r.out.bind_info->info.info48; - st->drsuapi->remote_info28.supported_extensions = info48->supported_extensions; - st->drsuapi->remote_info28.site_guid = info48->site_guid; - st->drsuapi->remote_info28.pid = info48->pid; - st->drsuapi->remote_info28.repl_epoch = info48->repl_epoch; + info48 = &state->bind_r.out.bind_info->info.info48; + + info28->supported_extensions = info48->supported_extensions; + info28->site_guid = info48->site_guid; + info28->pid = info48->pid; + info28->repl_epoch = info48->repl_epoch; break; } case 28: - st->drsuapi->remote_info28 = st->bind_r.out.bind_info->info.info28; + *info28 = state->bind_r.out.bind_info->info.info28; break; } } - composite_done(c); + tevent_req_done(req); } -NTSTATUS dreplsrv_out_drsuapi_recv(struct composite_context *c) +NTSTATUS dreplsrv_out_drsuapi_recv(struct tevent_req *req) { + struct dreplsrv_out_drsuapi_state *state = tevent_req_data(req, + struct dreplsrv_out_drsuapi_state); NTSTATUS status; - struct dreplsrv_out_drsuapi_state *st = talloc_get_type(c->private_data, - struct dreplsrv_out_drsuapi_state); - status = composite_wait(c); - - if (NT_STATUS_IS_OK(status)) { - st->conn->drsuapi = talloc_steal(st->conn, st->drsuapi); + if (tevent_req_is_nterror(req, &status)) { + tevent_req_received(req); + return status; } - talloc_free(c); - return status; + state->conn->drsuapi = talloc_move(state->conn, &state->drsuapi); + + tevent_req_received(req); + return NT_STATUS_OK; } struct dreplsrv_op_pull_source_state { @@ -195,13 +215,13 @@ struct dreplsrv_op_pull_source_state { struct drsuapi_DsGetNCChangesCtr6 *ctr6; }; -static void dreplsrv_op_pull_source_connect_recv(struct composite_context *creq); +static void dreplsrv_op_pull_source_connect_done(struct tevent_req *subreq); struct composite_context *dreplsrv_op_pull_source_send(struct dreplsrv_out_operation *op) { struct composite_context *c; - struct composite_context *creq; struct dreplsrv_op_pull_source_state *st; + struct tevent_req *subreq; c = composite_create(op, op->service->task->event_ctx); if (c == NULL) return NULL; @@ -212,21 +232,25 @@ struct composite_context *dreplsrv_op_pull_source_send(struct dreplsrv_out_opera st->creq = c; st->op = op; - creq = dreplsrv_out_drsuapi_send(op->source_dsa->conn); - composite_continue(c, creq, dreplsrv_op_pull_source_connect_recv, st); + subreq = dreplsrv_out_drsuapi_send(st, + op->service->task->event_ctx, + op->source_dsa->conn); + if (composite_nomem(subreq, c)) return c; + tevent_req_set_callback(subreq, dreplsrv_op_pull_source_connect_done, st); return c; } static void dreplsrv_op_pull_source_get_changes_send(struct dreplsrv_op_pull_source_state *st); -static void dreplsrv_op_pull_source_connect_recv(struct composite_context *creq) +static void dreplsrv_op_pull_source_connect_done(struct tevent_req *subreq) { - struct dreplsrv_op_pull_source_state *st = talloc_get_type(creq->async.private_data, + struct dreplsrv_op_pull_source_state *st = tevent_req_callback_data(subreq, struct dreplsrv_op_pull_source_state); struct composite_context *c = st->creq; - c->status = dreplsrv_out_drsuapi_recv(creq); + c->status = dreplsrv_out_drsuapi_recv(subreq); + TALLOC_FREE(subreq); if (!composite_is_ok(c)) return; dreplsrv_op_pull_source_get_changes_send(st); diff --git a/source4/dsdb/samdb/ldb_modules/samldb.c b/source4/dsdb/samdb/ldb_modules/samldb.c index fc286c4d83..17a99c74c7 100644 --- a/source4/dsdb/samdb/ldb_modules/samldb.c +++ b/source4/dsdb/samdb/ldb_modules/samldb.c @@ -9,12 +9,12 @@ it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 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, see <http://www.gnu.org/licenses/>. */ @@ -333,37 +333,37 @@ static int samldb_check_samAccountName_callback(struct ldb_request *req, { struct samldb_ctx *ac; int ret; - + ac = talloc_get_type(req->context, struct samldb_ctx); - + if (ares->error != LDB_SUCCESS) { return ldb_module_done(ac->req, ares->controls, ares->response, ares->error); } - + switch (ares->type) { - case LDB_REPLY_ENTRY: + case LDB_REPLY_ENTRY: /* if we get an entry it means this samAccountName * already exists */ return ldb_module_done(ac->req, NULL, NULL, LDB_ERR_ENTRY_ALREADY_EXISTS); - + case LDB_REPLY_REFERRAL: /* this should not happen */ return ldb_module_done(ac->req, NULL, NULL, LDB_ERR_OPERATIONS_ERROR); - + case LDB_REPLY_DONE: /* not found, go on */ talloc_free(ares); ret = samldb_next_step(ac); break; } - + if (ret != LDB_SUCCESS) { return ldb_module_done(ac->req, NULL, NULL, ret); } - + return LDB_SUCCESS; } @@ -374,16 +374,16 @@ static int samldb_check_samAccountName(struct samldb_ctx *ac) const char *name; char *filter; int ret; - + ldb = ldb_module_get_ctx(ac->module); - + if (ldb_msg_find_element(ac->msg, "samAccountName") == NULL) { ret = samldb_generate_samAccountName(ac->msg); if (ret != LDB_SUCCESS) { return ret; } } - + name = ldb_msg_find_attr_as_string(ac->msg, "samAccountName", NULL); if (name == NULL) { return LDB_ERR_OPERATIONS_ERROR; @@ -393,7 +393,7 @@ static int samldb_check_samAccountName(struct samldb_ctx *ac) if (filter == NULL) { return LDB_ERR_OPERATIONS_ERROR; } - + ret = ldb_build_search_req(&req, ldb, ac, ac->domain_dn, LDB_SCOPE_SUBTREE, filter, NULL, @@ -569,7 +569,7 @@ static int samldb_get_sid_domain(struct samldb_ctx *ac) /* get the domain component part of the provided SID */ ac->domain_sid->num_auths--; - filter = talloc_asprintf(ac, + filter = talloc_asprintf(ac, "(&(objectSid=%s)" "(|(objectClass=domain)" "(objectClass=builtinDomain)))", @@ -713,7 +713,7 @@ static int samldb_check_primaryGroupID_2(struct samldb_ctx *ac) struct ldb_context *ldb; ldb = ldb_module_get_ctx(ac->module); ldb_asprintf_errstring(ldb, - "Failed to find group sid %s!", + "Failed to find group sid %s!", dom_sid_string(ac->sid, ac->sid)); return LDB_ERR_UNWILLING_TO_PERFORM; } @@ -918,36 +918,33 @@ done: static int samldb_set_defaultObjectCategory(struct samldb_ctx *ac) { + struct ldb_context *ldb; + struct ldb_message *msg; + struct ldb_request *req; int ret; - if (ac->dn) { - struct ldb_request *req; - struct ldb_context *ldb; - struct ldb_message *msg = ldb_msg_new(ac); - - msg->dn = ac->dn; - - ldb_msg_add_empty(msg, "defaultObjectCategory", LDB_FLAG_MOD_REPLACE, NULL); - - ldb_msg_add_steal_string(msg, "defaultObjectCategory", ldb_dn_alloc_linearized(msg, ac->dn)); - - ldb = ldb_module_get_ctx(ac->module); - ret = ldb_build_mod_req(&req, ldb, ac, - msg, NULL, - ac, samldb_set_defaultObjectCategory_callback, - ac->req); - if (ret != LDB_SUCCESS) { - return ret; - } + ldb = ldb_module_get_ctx(ac->module); - return ldb_next_request(ac->module, req); - } + /* (Re)set the default object category to have it set to the DN in the + * storage format */ + msg = ldb_msg_new(ac); + msg->dn = ac->msg->dn; + ldb_msg_add_empty(msg, "defaultObjectCategory", + LDB_FLAG_MOD_REPLACE, NULL); + ldb_msg_add_steal_string(msg, "defaultObjectCategory", + ldb_dn_alloc_linearized(msg, ac->dn)); - ret = samldb_next_step(ac); + ret = ldb_build_mod_req(&req, ldb, ac, + msg, NULL, + ac, + samldb_set_defaultObjectCategory_callback, + ac->req); if (ret != LDB_SUCCESS) { - return ldb_module_done(ac->req, NULL, NULL, ret); + talloc_free(msg); + return ret; } - return ret; + + return ldb_next_request(ac->module, req); } /* @@ -955,14 +952,35 @@ static int samldb_set_defaultObjectCategory(struct samldb_ctx *ac) */ static int samldb_find_for_defaultObjectCategory_callback(struct ldb_request *req, - struct ldb_reply *ares) + struct ldb_reply *ares) { + struct ldb_context *ldb; struct samldb_ctx *ac; int ret; ac = talloc_get_type(req->context, struct samldb_ctx); + ldb = ldb_module_get_ctx(ac->module); + if (!ares) { + ret = LDB_ERR_OPERATIONS_ERROR; + goto done; + } if (ares->error != LDB_SUCCESS) { + if (ares->error == LDB_ERR_NO_SUCH_OBJECT) { + if (ldb_request_get_control(ac->req, + LDB_CONTROL_RELAX_OID) != NULL) { + /* Don't be pricky when the DN doesn't exist */ + /* if we have the RELAX control specified */ + ac->dn = req->op.search.base; + return samldb_next_step(ac); + } else { + ldb_set_errstring(ldb, + "samldb_find_defaultObjectCategory: " + "Invalid DN for 'defaultObjectCategory'!"); + ares->error = LDB_ERR_CONSTRAINT_VIOLATION; + } + } + return ldb_module_done(ac->req, ares->controls, ares->response, ares->error); } @@ -970,22 +988,33 @@ static int samldb_find_for_defaultObjectCategory_callback(struct ldb_request *re switch (ares->type) { case LDB_REPLY_ENTRY: ac->dn = talloc_steal(ac, ares->message->dn); + + ret = LDB_SUCCESS; break; + case LDB_REPLY_REFERRAL: /* this should not happen */ - return ldb_module_done(ac->req, NULL, NULL, - LDB_ERR_OPERATIONS_ERROR); + talloc_free(ares); + ret = LDB_ERR_OPERATIONS_ERROR; + break; case LDB_REPLY_DONE: - /* found or not found, go on */ talloc_free(ares); - ret = samldb_next_step(ac); - if (ret != LDB_SUCCESS) { - return ldb_module_done(ac->req, NULL, NULL, ret); + + if (ac->dn != NULL) { + /* when found go on */ + ret = samldb_next_step(ac); + } else { + ret = LDB_ERR_OPERATIONS_ERROR; } break; } +done: + if (ret != LDB_SUCCESS) { + return ldb_module_done(ac->req, NULL, NULL, ret); + } + return LDB_SUCCESS; } @@ -993,38 +1022,55 @@ static int samldb_find_for_defaultObjectCategory(struct samldb_ctx *ac) { struct ldb_context *ldb; struct ldb_request *req; - int ret; static const char *no_attrs[] = { NULL }; + int ret; + const struct ldb_val *val; + struct ldb_dn *def_obj_cat_dn; ldb = ldb_module_get_ctx(ac->module); ac->dn = NULL; - if (ldb_msg_find_element(ac->msg, "defaultObjectCategory") == NULL) { - ret = ldb_build_search_req(&req, ldb, ac, - ac->msg->dn, LDB_SCOPE_BASE, - "objectClass=classSchema", no_attrs, - NULL, - ac, samldb_find_for_defaultObjectCategory_callback, - ac->req); - if (ret != LDB_SUCCESS) { - return ret; - } - ret = dsdb_request_add_controls(ac->module, req, DSDB_SEARCH_SHOW_DN_IN_STORAGE_FORMAT); - if (ret != LDB_SUCCESS) { - return ret; + val = ldb_msg_find_ldb_val(ac->msg, "defaultObjectCategory"); + if (val != NULL) { + /* "defaultObjectCategory" has been set by the caller. Do some + * checks for consistency. + * NOTE: The real constraint check (that 'defaultObjectCategory' + * is the DN of the new objectclass or any parent of it) is + * still incomplete. + * For now we say that 'defaultObjectCategory' is valid if it + * exists and it is of objectclass "classSchema". */ + def_obj_cat_dn = ldb_dn_from_ldb_val(ac, ldb, val); + if (def_obj_cat_dn == NULL) { + ldb_set_errstring(ldb, + "samldb_find_defaultObjectCategory: Invalid DN " + "for 'defaultObjectCategory'!"); + return LDB_ERR_CONSTRAINT_VIOLATION; } - return ldb_next_request(ac->module, req); + } else { + /* "defaultObjectCategory" has not been set by the caller. Use + * the entry DN for it. */ + def_obj_cat_dn = ac->msg->dn; } - ret = samldb_next_step(ac); + ret = ldb_build_search_req(&req, ldb, ac, + def_obj_cat_dn, LDB_SCOPE_BASE, + "objectClass=classSchema", no_attrs, + NULL, + ac, samldb_find_for_defaultObjectCategory_callback, + ac->req); if (ret != LDB_SUCCESS) { - return ldb_module_done(ac->req, NULL, NULL, ret); + return ret; } - return ret; -} + ret = dsdb_request_add_controls(ac->module, req, + DSDB_SEARCH_SHOW_DN_IN_STORAGE_FORMAT); + if (ret != LDB_SUCCESS) { + return ret; + } + return ldb_next_request(ac->module, req); +} /* @@ -1377,7 +1423,7 @@ static int samldb_foreign_notice_sid(struct samldb_ctx *ac) } - filter = talloc_asprintf(ac, + filter = talloc_asprintf(ac, "(&(objectSid=%s)" "(|(objectClass=domain)" "(objectClass=builtinDomain)))", diff --git a/source4/dsdb/samdb/ldb_modules/schema_load.c b/source4/dsdb/samdb/ldb_modules/schema_load.c index c7cd76a395..c72911fe89 100644 --- a/source4/dsdb/samdb/ldb_modules/schema_load.c +++ b/source4/dsdb/samdb/ldb_modules/schema_load.c @@ -102,7 +102,7 @@ static int dsdb_schema_from_schema_dn(TALLOC_CTX *mem_ctx, struct ldb_module *mo "(objectClass=classSchema)"); if (ret != LDB_SUCCESS) { ldb_asprintf_errstring(ldb, - "dsdb_schema: failed to search attributeSchema objects: %s", + "dsdb_schema: failed to search classSchema objects: %s", ldb_errstring(ldb)); goto failed; } diff --git a/source4/lib/ldb/config.mk b/source4/lib/ldb/config.mk index 7d110fc618..54e1416ed3 100644 --- a/source4/lib/ldb/config.mk +++ b/source4/lib/ldb/config.mk @@ -16,7 +16,7 @@ ldb_asq_OBJ_FILES = $(ldbsrcdir)/modules/asq.o PRIVATE_DEPENDENCIES = LIBTALLOC LIBTEVENT CFLAGS = -I$(ldbsrcdir)/include INIT_FUNCTION = LDB_MODULE(sample) -SUBSYSTEM = LIBTESTLDB +SUBSYSTEM = LIBLDB # End MODULE sample_module ################################################ diff --git a/source4/lib/ldb/tests/python/ldap_schema.py b/source4/lib/ldb/tests/python/ldap_schema.py index 0a31db82f7..9e54732104 100755 --- a/source4/lib/ldb/tests/python/ldap_schema.py +++ b/source4/lib/ldb/tests/python/ldap_schema.py @@ -132,9 +132,41 @@ systemOnly: FALSE """ self.ldb.add_ldif(ldif) + # Search for created attribute + res = [] + res = self.ldb.search("cn=%s,%s" % (attr_name, self.schema_dn), scope=SCOPE_BASE, attrs=["*"]) + self.assertEquals(len(res), 1) + self.assertEquals(res[0]["lDAPDisplayName"][0], attr_ldap_display_name) + self.assertTrue("schemaIDGUID" in res[0]) + class_name = "test-Class" + time.strftime("%s", time.gmtime()) class_ldap_display_name = class_name.replace("-", "") + # First try to create a class with a wrong "defaultObjectCategory" + ldif = """ +dn: CN=%s,%s""" % (class_name, self.schema_dn) + """ +objectClass: top +objectClass: classSchema +defaultObjectCategory: CN=_ +adminDescription: """ + class_name + """ +adminDisplayName: """ + class_name + """ +cn: """ + class_name + """ +governsId: 1.2.840.""" + str(random.randint(1,100000)) + """.1.5.9939 +instanceType: 4 +objectClassCategory: 1 +subClassOf: organizationalPerson +systemFlags: 16 +rDNAttID: cn +systemMustContain: cn +systemMustContain: """ + attr_ldap_display_name + """ +systemOnly: FALSE +""" + try: + self.ldb.add_ldif(ldif) + self.fail() + except LdbError, (num, _): + self.assertEquals(num, ERR_CONSTRAINT_VIOLATION) + ldif = """ dn: CN=%s,%s""" % (class_name, self.schema_dn) + """ objectClass: top @@ -154,6 +186,14 @@ systemOnly: FALSE """ self.ldb.add_ldif(ldif) + # Search for created objectclass + res = [] + res = self.ldb.search("cn=%s,%s" % (class_name, self.schema_dn), scope=SCOPE_BASE, attrs=["*"]) + self.assertEquals(len(res), 1) + self.assertEquals(res[0]["lDAPDisplayName"][0], class_ldap_display_name) + self.assertEquals(res[0]["defaultObjectCategory"][0], res[0]["distinguishedName"][0]) + self.assertTrue("schemaIDGUID" in res[0]) + ldif = """ dn: changetype: modify @@ -179,21 +219,6 @@ name: """ + object_name + """ """ self.ldb.add_ldif(ldif) - # Search for created attribute - res = [] - res = self.ldb.search("cn=%s,%s" % (attr_name, self.schema_dn), scope=SCOPE_BASE, attrs=["*"]) - self.assertEquals(len(res), 1) - self.assertEquals(res[0]["lDAPDisplayName"][0], attr_ldap_display_name) - self.assertTrue("schemaIDGUID" in res[0]) - - # Search for created objectclass - res = [] - res = self.ldb.search("cn=%s,%s" % (class_name, self.schema_dn), scope=SCOPE_BASE, attrs=["*"]) - self.assertEquals(len(res), 1) - self.assertEquals(res[0]["lDAPDisplayName"][0], class_ldap_display_name) - self.assertEquals(res[0]["defaultObjectCategory"][0], res[0]["distinguishedName"][0]) - self.assertTrue("schemaIDGUID" in res[0]) - # Search for created object res = [] res = self.ldb.search("cn=%s,cn=Users,%s" % (object_name, self.base_dn), scope=SCOPE_BASE, attrs=["*"]) diff --git a/source4/libcli/resolve/dns_ex.c b/source4/libcli/resolve/dns_ex.c index 1b5037273a..79ed78340c 100644 --- a/source4/libcli/resolve/dns_ex.c +++ b/source4/libcli/resolve/dns_ex.c @@ -283,14 +283,19 @@ static void run_child_getaddrinfo(struct dns_ex_state *state, int fd) hints.ai_flags = AI_ADDRCONFIG | AI_NUMERICSERV; ret = getaddrinfo(state->name.name, "0", &hints, &res_list); + /* try to fallback in case of error */ + if (state->do_fallback) { + switch (ret) { #ifdef EAI_NODATA - if (ret == EAI_NODATA && state->do_fallback) { -#else - if (ret == EAI_NONAME && state->do_fallback) { + case EAI_NODATA: #endif - /* getaddrinfo() doesn't handle CNAME records */ - run_child_dns_lookup(state, fd); - return; + case EAI_NONAME: + /* getaddrinfo() doesn't handle CNAME records */ + run_child_dns_lookup(state, fd); + return; + default: + break; + } } if (ret != 0) { goto done; diff --git a/source4/torture/raw/lock.c b/source4/torture/raw/lock.c index 34b05b70e4..7eb461048b 100644 --- a/source4/torture/raw/lock.c +++ b/source4/torture/raw/lock.c @@ -643,10 +643,104 @@ static bool test_async(struct torture_context *tctx, /* cleanup the second lock */ io.lockx.in.ulock_cnt = 1; io.lockx.in.lock_cnt = 0; + io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; + io.lockx.in.locks = &lock[1]; + status = smb_raw_lock(cli->tree, &io); + CHECK_STATUS(status, NT_STATUS_OK); + + /* If a lock request contained multiple ranges and we are cancelling + * one while it's still pending, what happens? */ + torture_comment(tctx, "testing cancel 1/2 lock request\n"); + + /* Send request with two ranges */ + io.lockx.in.timeout = -1; + io.lockx.in.ulock_cnt = 0; + io.lockx.in.lock_cnt = 2; + io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; + io.lockx.in.locks = lock; + req = smb_raw_lock_send(cli->tree, &io); + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup pending lock (%s)\n", __location__)); + + /* Try to cancel the first lock range */ + io.lockx.in.timeout = 0; + io.lockx.in.lock_cnt = 1; + io.lockx.in.mode = LOCKING_ANDX_CANCEL_LOCK | LOCKING_ANDX_LARGE_FILES; + io.lockx.in.locks = &lock[0]; + status = smb_raw_lock(cli->tree, &io); + CHECK_STATUS(status, NT_STATUS_OK); + + /* Locking request should've failed and second range should be + * unlocked */ + status = smbcli_request_simple_recv(req); + CHECK_STATUS(status, NT_STATUS_FILE_LOCK_CONFLICT); + + io.lockx.in.timeout = 0; + io.lockx.in.ulock_cnt = 0; + io.lockx.in.lock_cnt = 1; + io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; io.lockx.in.locks = &lock[1]; status = smb_raw_lock(cli->tree, &io); CHECK_STATUS(status, NT_STATUS_OK); + /* Cleanup both locks */ + io.lockx.in.ulock_cnt = 2; + io.lockx.in.lock_cnt = 0; + io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; + io.lockx.in.locks = lock; + status = smb_raw_lock(cli->tree, &io); + CHECK_STATUS(status, NT_STATUS_OK); + + torture_comment(tctx, "testing cancel 2/2 lock request\n"); + + /* Lock second range so it contends */ + io.lockx.in.timeout = 0; + io.lockx.in.ulock_cnt = 0; + io.lockx.in.lock_cnt = 1; + io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; + io.lockx.in.locks = &lock[1]; + status = smb_raw_lock(cli->tree, &io); + CHECK_STATUS(status, NT_STATUS_OK); + + /* Send request with two ranges */ + io.lockx.in.timeout = -1; + io.lockx.in.ulock_cnt = 0; + io.lockx.in.lock_cnt = 2; + io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; + io.lockx.in.locks = lock; + req = smb_raw_lock_send(cli->tree, &io); + torture_assert(tctx,(req != NULL), talloc_asprintf(tctx, + "Failed to setup pending lock (%s)\n", __location__)); + + /* Try to cancel the second lock range */ + io.lockx.in.timeout = 0; + io.lockx.in.lock_cnt = 1; + io.lockx.in.mode = LOCKING_ANDX_CANCEL_LOCK | LOCKING_ANDX_LARGE_FILES; + io.lockx.in.locks = &lock[1]; + status = smb_raw_lock(cli->tree, &io); + CHECK_STATUS(status, NT_STATUS_OK); + + /* Locking request should've failed and first range should be + * unlocked */ + status = smbcli_request_simple_recv(req); + CHECK_STATUS(status, NT_STATUS_FILE_LOCK_CONFLICT); + + io.lockx.in.timeout = 0; + io.lockx.in.ulock_cnt = 0; + io.lockx.in.lock_cnt = 1; + io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; + io.lockx.in.locks = &lock[0]; + status = smb_raw_lock(cli->tree, &io); + CHECK_STATUS(status, NT_STATUS_OK); + + /* Cleanup both locks */ + io.lockx.in.ulock_cnt = 2; + io.lockx.in.lock_cnt = 0; + io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; + io.lockx.in.locks = lock; + status = smb_raw_lock(cli->tree, &io); + CHECK_STATUS(status, NT_STATUS_OK); + torture_comment(tctx, "testing cancel by unlock\n"); io.lockx.in.ulock_cnt = 0; io.lockx.in.lock_cnt = 1; @@ -654,7 +748,7 @@ static bool test_async(struct torture_context *tctx, io.lockx.in.timeout = 0; io.lockx.in.locks = &lock[0]; status = smb_raw_lock(cli->tree, &io); - CHECK_STATUS(status, NT_STATUS_LOCK_NOT_GRANTED); + CHECK_STATUS(status, NT_STATUS_OK); io.lockx.in.timeout = 5000; req = smb_raw_lock_send(cli->tree, &io); @@ -680,7 +774,7 @@ static bool test_async(struct torture_context *tctx, io.lockx.in.mode = LOCKING_ANDX_LARGE_FILES; io.lockx.in.timeout = 0; status = smb_raw_lock(cli->tree, &io); - CHECK_STATUS(status, NT_STATUS_FILE_LOCK_CONFLICT); + CHECK_STATUS(status, NT_STATUS_LOCK_NOT_GRANTED); t = time(NULL); io.lockx.in.timeout = 10000; diff --git a/source4/torture/rpc/spoolss.c b/source4/torture/rpc/spoolss.c index 65bc3619ca..489174bde6 100644 --- a/source4/torture/rpc/spoolss.c +++ b/source4/torture/rpc/spoolss.c @@ -5,7 +5,7 @@ Copyright (C) Tim Potter 2003 Copyright (C) Stefan Metzmacher 2005 Copyright (C) Jelmer Vernooij 2007 - Copyright (C) Guenther Deschner 2009 + Copyright (C) Guenther Deschner 2009-2010 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 @@ -865,45 +865,67 @@ static bool test_GetPrinterDriver2(struct torture_context *tctx, struct policy_handle *handle, const char *driver_name); -static bool test_GetPrinter(struct torture_context *tctx, - struct dcerpc_pipe *p, - struct policy_handle *handle) +static bool test_GetPrinter_level(struct torture_context *tctx, + struct dcerpc_pipe *p, + struct policy_handle *handle, + uint32_t level, + union spoolss_PrinterInfo *info) { - NTSTATUS status; struct spoolss_GetPrinter r; - uint16_t levels[] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; - int i; uint32_t needed; - for (i=0;i<ARRAY_SIZE(levels);i++) { - r.in.handle = handle; - r.in.level = levels[i]; - r.in.buffer = NULL; - r.in.offered = 0; - r.out.needed = &needed; + r.in.handle = handle; + r.in.level = level; + r.in.buffer = NULL; + r.in.offered = 0; + r.out.needed = &needed; - torture_comment(tctx, "Testing GetPrinter level %u\n", r.in.level); + torture_comment(tctx, "Testing GetPrinter level %u\n", r.in.level); - status = dcerpc_spoolss_GetPrinter(p, tctx, &r); - torture_assert_ntstatus_ok(tctx, status, "GetPrinter failed"); + torture_assert_ntstatus_ok(tctx, dcerpc_spoolss_GetPrinter(p, tctx, &r), + "GetPrinter failed"); - if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) { - DATA_BLOB blob = data_blob_talloc(tctx, NULL, needed); - data_blob_clear(&blob); - r.in.buffer = &blob; - r.in.offered = needed; - status = dcerpc_spoolss_GetPrinter(p, tctx, &r); - } + if (W_ERROR_EQUAL(r.out.result, WERR_INSUFFICIENT_BUFFER)) { + DATA_BLOB blob = data_blob_talloc(tctx, NULL, needed); + data_blob_clear(&blob); + r.in.buffer = &blob; + r.in.offered = needed; + + torture_assert_ntstatus_ok(tctx, dcerpc_spoolss_GetPrinter(p, tctx, &r), + "GetPrinter failed"); + } + + torture_assert_werr_ok(tctx, r.out.result, "GetPrinter failed"); - torture_assert_ntstatus_ok(tctx, status, "GetPrinter failed"); + CHECK_NEEDED_SIZE_LEVEL(spoolss_PrinterInfo, r.out.info, r.in.level, lp_iconv_convenience(tctx->lp_ctx), needed, 4); - torture_assert_werr_ok(tctx, r.out.result, "GetPrinter failed"); + if (info && r.out.info) { + *info = *r.out.info; + } + + return true; +} + + +static bool test_GetPrinter(struct torture_context *tctx, + struct dcerpc_pipe *p, + struct policy_handle *handle) +{ + uint32_t levels[] = {0, 1, 2, 3, 4, 5, 6, 7, 8}; + int i; + + for (i=0;i<ARRAY_SIZE(levels);i++) { - CHECK_NEEDED_SIZE_LEVEL(spoolss_PrinterInfo, r.out.info, r.in.level, lp_iconv_convenience(tctx->lp_ctx), needed, 4); + union spoolss_PrinterInfo info; - if ((r.in.level == 2) && r.out.info->info2.drivername && strlen(r.out.info->info2.drivername)) { + ZERO_STRUCT(info); + + torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, levels[i], &info), + "failed to call GetPrinter"); + + if ((levels[i] == 2) && info.info2.drivername && strlen(info.info2.drivername)) { torture_assert(tctx, - test_GetPrinterDriver2(tctx, p, handle, r.out.info->info2.drivername), + test_GetPrinterDriver2(tctx, p, handle, info.info2.drivername), "failed to call test_GetPrinterDriver2"); } } @@ -911,6 +933,32 @@ static bool test_GetPrinter(struct torture_context *tctx, return true; } +static bool test_SetPrinter(struct torture_context *tctx, + struct dcerpc_pipe *p, + struct policy_handle *handle, + struct spoolss_SetPrinterInfoCtr *info_ctr, + struct spoolss_DevmodeContainer *devmode_ctr, + struct sec_desc_buf *secdesc_ctr, + enum spoolss_PrinterControl command) +{ + struct spoolss_SetPrinter r; + + r.in.handle = handle; + r.in.info_ctr = info_ctr; + r.in.devmode_ctr = devmode_ctr; + r.in.secdesc_ctr = secdesc_ctr; + r.in.command = command; + + torture_comment(tctx, "Testing SetPrinter Level %d\n", r.in.info_ctr->level); + + torture_assert_ntstatus_ok(tctx, dcerpc_spoolss_SetPrinter(p, tctx, &r), + "failed to call SetPrinter"); + torture_assert_werr_ok(tctx, r.out.result, + "failed to call SetPrinter"); + + return true; +} + static bool test_SetPrinter_errors(struct torture_context *tctx, struct dcerpc_pipe *p, struct policy_handle *handle) @@ -2618,6 +2666,181 @@ static bool test_SetPrinterDataEx(struct torture_context *tctx, return true; } +static bool test_GetChangeID_PrinterData(struct torture_context *tctx, + struct dcerpc_pipe *p, + struct policy_handle *handle, + uint32_t *change_id) +{ + enum winreg_Type type; + union spoolss_PrinterData data; + + torture_assert(tctx, + test_GetPrinterData(tctx, p, handle, "ChangeID", &type, &data), + "failed to call GetPrinterData"); + + torture_assert(tctx, type == REG_DWORD, "unexpected type"); + + *change_id = data.value; + + return true; +} + +static bool test_GetChangeID_PrinterDataEx(struct torture_context *tctx, + struct dcerpc_pipe *p, + struct policy_handle *handle, + uint32_t *change_id) +{ + enum winreg_Type type; + union spoolss_PrinterData data; + + torture_assert(tctx, + test_GetPrinterDataEx(tctx, p, handle, "PrinterDriverData", "ChangeID", &type, &data), + "failed to call GetPrinterData"); + + torture_assert(tctx, type == REG_DWORD, "unexpected type"); + + *change_id = data.value; + + return true; +} + +static bool test_GetChangeID_PrinterInfo(struct torture_context *tctx, + struct dcerpc_pipe *p, + struct policy_handle *handle, + uint32_t *change_id) +{ + union spoolss_PrinterInfo info; + + torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, 0, &info), + "failed to query Printer level 0"); + + *change_id = info.info0.change_id; + + return true; +} + +static bool test_ChangeID(struct torture_context *tctx, + struct dcerpc_pipe *p, + struct policy_handle *handle) +{ + uint32_t change_id, change_id_ex, change_id_info; + uint32_t change_id2, change_id_ex2, change_id_info2; + union spoolss_PrinterInfo info; + const char *comment; + + + torture_comment(tctx, "Testing ChangeID: id change test #1\n"); + + torture_assert(tctx, test_GetChangeID_PrinterData(tctx, p, handle, &change_id), + "failed to query for ChangeID"); + torture_assert(tctx, test_GetChangeID_PrinterDataEx(tctx, p, handle, &change_id_ex), + "failed to query for ChangeID"); + torture_assert(tctx, test_GetChangeID_PrinterInfo(tctx, p, handle, &change_id_info), + "failed to query for ChangeID"); + + torture_assert_int_equal(tctx, change_id, change_id_ex, + "change_ids should all be equal"); + torture_assert_int_equal(tctx, change_id_ex, change_id_info, + "change_ids should all be equal"); + + + torture_comment(tctx, "Testing ChangeID: id change test #2\n"); + + torture_assert(tctx, test_GetChangeID_PrinterData(tctx, p, handle, &change_id), + "failed to query for ChangeID"); + torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, 2, &info), + "failed to query Printer level 2"); + torture_assert(tctx, test_GetChangeID_PrinterDataEx(tctx, p, handle, &change_id_ex), + "failed to query for ChangeID"); + torture_assert(tctx, test_GetChangeID_PrinterInfo(tctx, p, handle, &change_id_info), + "failed to query for ChangeID"); + torture_assert_int_equal(tctx, change_id, change_id_ex, + "change_id should not have changed"); + torture_assert_int_equal(tctx, change_id_ex, change_id_info, + "change_id should not have changed"); + + + torture_comment(tctx, "Testing ChangeID: id change test #3\n"); + + torture_assert(tctx, test_GetChangeID_PrinterData(tctx, p, handle, &change_id), + "failed to query for ChangeID"); + torture_assert(tctx, test_GetChangeID_PrinterDataEx(tctx, p, handle, &change_id_ex), + "failed to query for ChangeID"); + torture_assert(tctx, test_GetChangeID_PrinterInfo(tctx, p, handle, &change_id_info), + "failed to query for ChangeID"); + torture_assert(tctx, test_GetPrinter_level(tctx, p, handle, 2, &info), + "failed to query Printer level 2"); + comment = talloc_strdup(tctx, info.info2.comment); + + { + struct spoolss_SetPrinterInfoCtr info_ctr; + struct spoolss_DevmodeContainer devmode_ctr; + struct sec_desc_buf secdesc_ctr; + struct spoolss_SetPrinterInfo2 info2; + + ZERO_STRUCT(info_ctr); + ZERO_STRUCT(devmode_ctr); + ZERO_STRUCT(secdesc_ctr); + + info2.servername = info.info2.servername; + info2.printername = info.info2.printername; + info2.sharename = info.info2.sharename; + info2.portname = info.info2.portname; + info2.drivername = info.info2.drivername; + info2.comment = "torture_comment"; + info2.location = info.info2.location; + info2.devmode_ptr = 0; + info2.sepfile = info.info2.sepfile; + info2.printprocessor = info.info2.printprocessor; + info2.datatype = info.info2.datatype; + info2.parameters = info.info2.parameters; + info2.secdesc_ptr = 0; + info2.attributes = info.info2.attributes; + info2.priority = info.info2.priority; + info2.defaultpriority = info.info2.defaultpriority; + info2.starttime = info.info2.starttime; + info2.untiltime = info.info2.untiltime; + info2.status = info.info2.status; + info2.cjobs = info.info2.cjobs; + info2.averageppm = info.info2.averageppm; + + info_ctr.level = 2; + info_ctr.info.info2 = &info2; + + torture_assert(tctx, test_SetPrinter(tctx, p, handle, &info_ctr, &devmode_ctr, &secdesc_ctr, 0), + "failed to call SetPrinter"); + + info2.comment = comment; + + torture_assert(tctx, test_SetPrinter(tctx, p, handle, &info_ctr, &devmode_ctr, &secdesc_ctr, 0), + "failed to call SetPrinter"); + + } + + torture_assert(tctx, test_GetChangeID_PrinterData(tctx, p, handle, &change_id2), + "failed to query for ChangeID"); + torture_assert(tctx, test_GetChangeID_PrinterDataEx(tctx, p, handle, &change_id_ex2), + "failed to query for ChangeID"); + torture_assert(tctx, test_GetChangeID_PrinterInfo(tctx, p, handle, &change_id_info2), + "failed to query for ChangeID"); + + torture_assert_int_equal(tctx, change_id2, change_id_ex2, + "change_ids should all be equal"); + torture_assert_int_equal(tctx, change_id_ex2, change_id_info2, + "change_ids should all be equal"); + + torture_assert(tctx, (change_id < change_id2), + talloc_asprintf(tctx, "change_id %d needs to be larger than change_id %d", + change_id2, change_id)); + torture_assert(tctx, (change_id_ex < change_id_ex2), + talloc_asprintf(tctx, "change_id %d needs to be larger than change_id %d", + change_id_ex2, change_id_ex)); + torture_assert(tctx, (change_id_info < change_id_info2), + talloc_asprintf(tctx, "change_id %d needs to be larger than change_id %d", + change_id_info2, change_id_info)); + + return true; +} static bool test_SecondaryClosePrinter(struct torture_context *tctx, struct dcerpc_pipe *p, @@ -2848,6 +3071,10 @@ static bool test_OpenPrinterEx(struct torture_context *tctx, ret = false; } + if (!test_ChangeID(tctx, p, &handle)) { + ret = false; + } + if (!torture_setting_bool(tctx, "samba3", false)) { if (!test_SecondaryClosePrinter(tctx, p, &handle)) { ret = false; diff --git a/testprogs/blackbox/test_export_keytab.sh b/testprogs/blackbox/test_export_keytab.sh index c5e85e35c8..6f2abab694 100755 --- a/testprogs/blackbox/test_export_keytab.sh +++ b/testprogs/blackbox/test_export_keytab.sh @@ -52,16 +52,16 @@ testit "export keytab from domain (2nd time)" $VALGRIND $net export keytab $PREF KRB5CCNAME="$PREFIX/tmpuserccache" export KRB5CCNAME -testit "kinit with keytab as user" $samba4kinit --keytab=$PREFIX/tmpkeytab --request-pac nettestuser@$REALM || failed=`expr $failed + 1` +testit "kinit with keytab as user" $VALGRIND $samba4kinit --keytab=$PREFIX/tmpkeytab --request-pac nettestuser@$REALM || failed=`expr $failed + 1` test_smbclient "Test login with user kerberos ccache" 'ls' -k yes || failed=`expr $failed + 1` KRB5CCNAME="$PREFIX/tmpadminccache" export KRB5CCNAME -testit "kinit with keytab as $USERNAME" $samba4kinit --keytab=$PREFIX/tmpkeytab --request-pac $USERNAME@$REALM || failed=`expr $failed + 1` +testit "kinit with keytab as $USERNAME" $VALGRIND $samba4kinit --keytab=$PREFIX/tmpkeytab --request-pac $USERNAME@$REALM || failed=`expr $failed + 1` testit "del user" $VALGRIND $net user delete nettestuser -k yes $@ || failed=`expr $failed + 1` -rm -f tmpadminccache tmpuserccache tmpkeytab +rm -f $PREFIX/tmpadminccache $PREFIX/tmpuserccache $PREFIX/tmpkeytab exit $failed |