summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/LDAP/samba-schema-netscapeds5.x7
-rw-r--r--lib/tdb/common/open.c3
-rw-r--r--lib/tdb/common/traverse.c30
-rw-r--r--librpc/gen_ndr/epmapper.h8
-rw-r--r--librpc/gen_ndr/ndr_epmapper.c26
-rw-r--r--librpc/gen_ndr/ndr_epmapper.h2
-rw-r--r--librpc/idl/epmapper.idl8
-rw-r--r--librpc/rpc/binding.c18
-rw-r--r--nsswitch/winbind_struct_protocol.h3
-rw-r--r--pidl/expr.yp202
-rw-r--r--pidl/idl.yp708
-rw-r--r--pidl/lib/Parse/Pidl/Expr.pm116
-rw-r--r--pidl/lib/Parse/Pidl/IDL.pm2137
-rw-r--r--pidl/lib/Parse/Pidl/NDR.pm20
-rw-r--r--source3/Makefile.in31
-rw-r--r--source3/include/includes.h7
-rw-r--r--source3/include/proto.h34
-rw-r--r--source3/include/smb.h3
-rw-r--r--source3/lib/bitmap.c4
-rw-r--r--source3/lib/conn_tdb.c6
-rw-r--r--source3/lib/ctdbd_conn.c19
-rw-r--r--source3/lib/smbldap.c2
-rw-r--r--source3/lib/util_tdb.c14
-rw-r--r--source3/lib/winbind_util.c26
-rw-r--r--source3/lib/wins_srv.c4
-rw-r--r--source3/librpc/gen_ndr/cli_wbint.c1647
-rw-r--r--source3/librpc/gen_ndr/cli_wbint.h141
-rw-r--r--source3/librpc/gen_ndr/ndr_wbint.c1405
-rw-r--r--source3/librpc/gen_ndr/ndr_wbint.h54
-rw-r--r--source3/librpc/gen_ndr/srv_wbint.c1000
-rw-r--r--source3/librpc/gen_ndr/srv_wbint.h27
-rw-r--r--source3/librpc/gen_ndr/wbint.h169
-rw-r--r--source3/librpc/idl/wbint.idl91
-rw-r--r--source3/libsmb/libsmb_context.c22
-rw-r--r--source3/locale/net/de.po4822
-rwxr-xr-xsource3/locale/net/genmsg58
-rw-r--r--source3/modules/vfs_default.c15
-rw-r--r--source3/po/de.msg3760
-rw-r--r--source3/po/en.msg3703
-rw-r--r--source3/po/fr.msg3728
-rwxr-xr-xsource3/po/genmsg17
-rw-r--r--source3/po/it.msg3728
-rw-r--r--source3/po/ja.msg3733
-rw-r--r--source3/po/pl.msg3728
-rw-r--r--source3/po/ru.msg3737
-rw-r--r--source3/po/tr.msg3733
-rw-r--r--source3/printing/nt_printing.c6
-rw-r--r--source3/rpc_server/srv_srvsvc_nt.c8
-rw-r--r--source3/rpc_server/srv_wkssvc_nt.c4
-rw-r--r--source3/samba4.mk1
-rw-r--r--source3/smbd/conn.c29
-rw-r--r--source3/smbd/dir.c490
-rw-r--r--source3/smbd/files.c25
-rw-r--r--source3/smbd/globals.c4
-rw-r--r--source3/smbd/globals.h32
-rw-r--r--source3/smbd/ipc.c3
-rw-r--r--source3/smbd/msdfs.c22
-rw-r--r--source3/smbd/posix_acls.c10
-rw-r--r--source3/smbd/process.c3
-rw-r--r--source3/smbd/reply.c61
-rw-r--r--source3/smbd/server.c2
-rw-r--r--source3/smbd/service.c35
-rw-r--r--source3/smbd/smb2_tcon.c2
-rw-r--r--source3/smbd/trans2.c1364
-rw-r--r--source3/utils/net_rap.c453
-rw-r--r--source3/utils/net_registry.c131
-rw-r--r--source3/utils/net_registry_util.c25
-rw-r--r--source3/utils/net_rpc.c1177
-rw-r--r--source3/utils/net_rpc_audit.c116
-rw-r--r--source3/winbindd/wb_getpwsid.c223
-rw-r--r--source3/winbindd/wb_gettoken.c218
-rw-r--r--source3/winbindd/wb_gid2sid.c119
-rw-r--r--source3/winbindd/wb_lookupname.c104
-rw-r--r--source3/winbindd/wb_lookupsid.c132
-rw-r--r--source3/winbindd/wb_lookupuseraliases.c101
-rw-r--r--source3/winbindd/wb_lookupusergroups.c99
-rw-r--r--source3/winbindd/wb_queryuser.c121
-rw-r--r--source3/winbindd/wb_sid2gid.c170
-rw-r--r--source3/winbindd/wb_sid2uid.c168
-rw-r--r--source3/winbindd/wb_uid2sid.c119
-rw-r--r--source3/winbindd/winbindd.c40
-rw-r--r--source3/winbindd/winbindd.h1
-rw-r--r--source3/winbindd/winbindd_async.c15
-rw-r--r--source3/winbindd/winbindd_cache.c412
-rw-r--r--source3/winbindd/winbindd_domain.c4
-rw-r--r--source3/winbindd/winbindd_dual.c13
-rw-r--r--source3/winbindd/winbindd_dual_ndr.c273
-rw-r--r--source3/winbindd/winbindd_dual_srv.c174
-rw-r--r--source3/winbindd/winbindd_getgroups.c222
-rw-r--r--source3/winbindd/winbindd_getpwnam.c142
-rw-r--r--source3/winbindd/winbindd_getpwsid.c92
-rw-r--r--source3/winbindd/winbindd_getpwuid.c108
-rw-r--r--source3/winbindd/winbindd_getsidaliases.c137
-rw-r--r--source3/winbindd/winbindd_getuserdomgroups.c121
-rw-r--r--source3/winbindd/winbindd_gid_to_sid.c87
-rw-r--r--source3/winbindd/winbindd_group.c224
-rw-r--r--source3/winbindd/winbindd_idmap.c4
-rw-r--r--source3/winbindd/winbindd_locator.c4
-rw-r--r--source3/winbindd/winbindd_lookupname.c110
-rw-r--r--source3/winbindd/winbindd_lookupsid.c101
-rw-r--r--source3/winbindd/winbindd_misc.c6
-rw-r--r--source3/winbindd/winbindd_proto.h177
-rw-r--r--source3/winbindd/winbindd_sid.c440
-rw-r--r--source3/winbindd/winbindd_sid_to_gid.c94
-rw-r--r--source3/winbindd/winbindd_sid_to_uid.c94
-rw-r--r--source3/winbindd/winbindd_uid_to_sid.c87
-rw-r--r--source3/winbindd/winbindd_user.c382
-rw-r--r--source4/dsdb/samdb/ldb_modules/samldb.c4
-rw-r--r--source4/dsdb/schema/schema_set.c3
-rw-r--r--source4/heimdal/kuser/kinit.c2
-rw-r--r--source4/heimdal/kuser/kuser_locl.h2
-rwxr-xr-xsource4/heimdal/lib/gssapi/krb5/cfx.c9
-rw-r--r--source4/heimdal/lib/hcrypto/aes.c3
-rw-r--r--source4/heimdal/lib/hcrypto/bn.c3
-rw-r--r--source4/heimdal/lib/hcrypto/des.c3
-rw-r--r--source4/heimdal/lib/hcrypto/dh-imath.c2
-rw-r--r--source4/heimdal/lib/hcrypto/dh.c2
-rw-r--r--source4/heimdal/lib/hcrypto/dsa.c4
-rw-r--r--source4/heimdal/lib/hcrypto/engine.c4
-rw-r--r--source4/heimdal/lib/hcrypto/evp-hcrypto.c4
-rw-r--r--source4/heimdal/lib/hcrypto/md2.c4
-rw-r--r--source4/heimdal/lib/hcrypto/md4.c4
-rw-r--r--source4/heimdal/lib/hcrypto/md5.c4
-rw-r--r--source4/heimdal/lib/hcrypto/pkcs12.c4
-rw-r--r--source4/heimdal/lib/hcrypto/pkcs5.c4
-rw-r--r--source4/heimdal/lib/hcrypto/rand-egd.c4
-rw-r--r--source4/heimdal/lib/hcrypto/rand-fortuna.c4
-rw-r--r--source4/heimdal/lib/hcrypto/rand-timer.c4
-rw-r--r--source4/heimdal/lib/hcrypto/rand-unix.c4
-rw-r--r--source4/heimdal/lib/hcrypto/rand.c4
-rw-r--r--source4/heimdal/lib/hcrypto/rc2.c3
-rw-r--r--source4/heimdal/lib/hcrypto/rc4.c4
-rw-r--r--source4/heimdal/lib/hcrypto/rijndael-alg-fst.c3
-rw-r--r--source4/heimdal/lib/hcrypto/rnd_keys.c3
-rw-r--r--source4/heimdal/lib/hcrypto/rsa-imath.c4
-rw-r--r--source4/heimdal/lib/hcrypto/rsa.c4
-rw-r--r--source4/heimdal/lib/hcrypto/sha.c4
-rw-r--r--source4/heimdal/lib/hcrypto/sha256.c4
-rw-r--r--source4/heimdal/lib/hcrypto/ui.c3
-rw-r--r--source4/heimdal/lib/krb5/context.c12
-rw-r--r--source4/heimdal/lib/krb5/krb5_locl.h2
-rw-r--r--source4/heimdal/lib/roken/vis.hin24
-rw-r--r--source4/heimdal_build/roken.h1
-rw-r--r--source4/ldap_server/ldap_server.c1
-rw-r--r--source4/lib/ldb/common/attrib_handlers.c70
-rw-r--r--source4/lib/ldb/modules/rdn_name.c20
-rw-r--r--source4/lib/messaging/messaging.c2
-rw-r--r--source4/libcli/composite/composite.c6
-rw-r--r--source4/libcli/dgram/dgramsocket.c2
-rw-r--r--source4/libcli/raw/clisocket.c5
-rw-r--r--source4/libcli/raw/interfaces.h19
-rw-r--r--source4/libcli/raw/raweas.c1
-rw-r--r--source4/libcli/raw/rawfile.c1
-rw-r--r--source4/libcli/raw/rawlpq.c1
-rw-r--r--source4/libcli/raw/smb_signing.c1
-rw-r--r--source4/libcli/smb2/smb2_calls.h12
-rw-r--r--source4/libcli/smb2/smb2_constants.h22
-rw-r--r--source4/libcli/smb2/util.c78
-rw-r--r--source4/libcli/smb_composite/connect.c2
-rw-r--r--source4/libcli/wrepl/winsrepl.c4
-rw-r--r--source4/librpc/rpc/dcerpc.c2
-rw-r--r--source4/nbt_server/wins/winswack.c4
-rw-r--r--source4/ntvfs/posix/pvfs_acl.c37
-rw-r--r--source4/ntvfs/posix/pvfs_open.c10
-rw-r--r--source4/ntvfs/posix/pvfs_util.c5
-rwxr-xr-xsource4/script/installmisc.sh2
-rw-r--r--source4/scripting/python/samba/samdb.py3
-rwxr-xr-xsource4/setup/enableaccount1
-rwxr-xr-xsource4/setup/pwsettings202
-rw-r--r--source4/setup/secrets_sasl_ldap.ldif2
-rw-r--r--source4/smb_server/smb/receive.c21
-rw-r--r--source4/smb_server/smb/reply.c2
-rw-r--r--source4/smbd/process_standard.c24
-rw-r--r--source4/smbd/server.c18
-rw-r--r--source4/torture/ldap/basic.c20
-rw-r--r--source4/torture/raw/rename.c50
-rw-r--r--source4/winbind/wb_init_domain.c6
-rw-r--r--testsuite/libsmbclient/src/Makefile9
-rw-r--r--testsuite/libsmbclient/src/stat/stat_k.c91
179 files changed, 19196 insertions, 33613 deletions
diff --git a/examples/LDAP/samba-schema-netscapeds5.x b/examples/LDAP/samba-schema-netscapeds5.x
index efc528b786..661521cc02 100644
--- a/examples/LDAP/samba-schema-netscapeds5.x
+++ b/examples/LDAP/samba-schema-netscapeds5.x
@@ -4,9 +4,11 @@
## Thomas Mueller 12.04.2003, thomas.mueller@christ-wasser.de
## Richard Renard rrenard@idealx.com 2005-01-28
## - added support for MungedDial, BadPasswordCount, BadPasswordTime, PasswordHistory, LogonHours
+## TAKEDA Yasuma yasuma@osstech.co.jp 2008-11-06
+## - added sambaTrustedDomainPassword objectClasses
## - in Sun One 5.2 copy it as 99samba-schema-netscapeds5.ldif
##
-## Samba 3.0 schema file for Netscape DS 5.x
+## Samba 3.2 schema file for Netscape DS 5.x
##
## INSTALL-DIRECTORY/slapd-your_name/config/schema/samba-schema-netscapeds5.ldif
####################################################################
@@ -33,6 +35,7 @@ objectClasses: ( 1.3.6.1.4.1.7165.2.2.5 NAME 'sambaDomain' SUP top STRUCTURAL DE
objectClasses: ( 1.3.6.1.4.1.7165.1.2.2.7 NAME 'sambaUnixIdPool' SUP top AUXILIARY DESC 'Pool for allocating UNIX uids/gids' MUST ( uidNumber $ gidNumber ) X-ORIGIN 'user defined' )
objectClasses: ( 1.3.6.1.4.1.7165.1.2.2.8 NAME 'sambaIdmapEntry' SUP top AUXILIARY DESC 'Mapping from a SID to an ID' MUST ( sambaSID ) MAY ( uidNumber $ gidNumber ) X-ORIGIN 'user defined' )
objectClasses: ( 1.3.6.1.4.1.7165.1.2.2.9 NAME 'sambaSidEntry' SUP top STRUCTURAL DESC 'Structural Class for a SID' MUST ( sambaSID ) X-ORIGIN 'user defined' )
+objectClasses: ( 1.3.6.1.4.1.7165.2.2.15 NAME 'sambaTrustedDomainPassword' SUP top STRUCTURAL DESC 'Samba Trusted Domain Password' MUST ( sambaDomainName $ sambaSID $ sambaClearTextPassword $ sambaPwdLastSet ) MAY ( sambaPreviousClearTextPassword ) X-ORIGIN 'user defined')
attributeTypes: ( 1.3.6.1.4.1.7165.2.1.24 NAME 'sambaLMPassword' DESC 'LanManager Password' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE X-ORIGIN 'user defined' )
attributeTypes: ( 1.3.6.1.4.1.7165.2.1.25 NAME 'sambaNTPassword' DESC 'MD4 hash of the unicode password' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} SINGLE-VALUE X-ORIGIN 'user defined' )
attributeTypes: ( 1.3.6.1.4.1.7165.2.1.26 NAME 'sambaAcctFlags' DESC 'Account Flags' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{16} SINGLE-VALUE X-ORIGIN 'user defined' )
@@ -60,3 +63,5 @@ attributeTypes: ( 1.3.6.1.4.1.7165.2.1.21 NAME 'sambaNextUserRid' DESC 'Next NT
attributeTypes: ( 1.3.6.1.4.1.7165.2.1.22 NAME 'sambaNextGroupRid' DESC 'Next NT rid to give out for groups' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
attributeTypes: ( 1.3.6.1.4.1.7165.2.1.39 NAME 'sambaNextRid' DESC 'Next NT rid to give out for anything' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
attributeTypes: ( 1.3.6.1.4.1.7165.2.1.40 NAME 'sambaAlgorithmicRidBase' DESC 'Base at which the samba RID generation algorithm should operate' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE X-ORIGIN 'user defined' )
+attributeTypes: ( 1.3.6.1.4.1.7165.2.1.68 NAME 'sambaClearTextPassword' DESC 'Clear text password (used for trusted domain passwords)' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 X-ORIGIN 'user defined')
+attributeTypes: ( 1.3.6.1.4.1.7165.2.1.69 NAME 'sambaPreviousClearTextPassword' DESC 'Previous clear text password (used for trusted domain passwords)' EQUALITY octetStringMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 X-ORIGIN 'user defined')
diff --git a/lib/tdb/common/open.c b/lib/tdb/common/open.c
index 2dcdd4bde7..2e6a707497 100644
--- a/lib/tdb/common/open.c
+++ b/lib/tdb/common/open.c
@@ -407,7 +407,10 @@ void *tdb_get_logging_private(struct tdb_context *tdb)
static int tdb_reopen_internal(struct tdb_context *tdb, bool active_lock)
{
+#if !defined(LIBREPLACE_PREAD_NOT_REPLACED) || \
+ !defined(LIBREPLACE_PWRITE_NOT_REPLACED)
struct stat st;
+#endif
if (tdb->flags & TDB_INTERNAL) {
return 0; /* Nothing to do. */
diff --git a/lib/tdb/common/traverse.c b/lib/tdb/common/traverse.c
index 07b0c23858..8e5a63a5ec 100644
--- a/lib/tdb/common/traverse.c
+++ b/lib/tdb/common/traverse.c
@@ -27,8 +27,11 @@
#include "tdb_private.h"
-/* Uses traverse lock: 0 = finish, -1 = error, other = record offset */
-static int tdb_next_lock(struct tdb_context *tdb, struct tdb_traverse_lock *tlock,
+#define TDB_NEXT_LOCK_ERR ((tdb_off_t)-1)
+
+/* Uses traverse lock: 0 = finish, TDB_NEXT_LOCK_ERR = error,
+ other = record offset */
+static tdb_off_t tdb_next_lock(struct tdb_context *tdb, struct tdb_traverse_lock *tlock,
struct list_struct *rec)
{
int want_next = (tlock->off != 0);
@@ -71,7 +74,7 @@ static int tdb_next_lock(struct tdb_context *tdb, struct tdb_traverse_lock *tloc
}
if (tdb_lock(tdb, tlock->hash, tlock->lock_rw) == -1)
- return -1;
+ return TDB_NEXT_LOCK_ERR;
/* No previous record? Start at top of chain. */
if (!tlock->off) {
@@ -99,6 +102,7 @@ static int tdb_next_lock(struct tdb_context *tdb, struct tdb_traverse_lock *tloc
/* Detect infinite loops. From "Shlomi Yaakobovich" <Shlomi@exanet.com>. */
if (tlock->off == rec->next) {
+ tdb->ecode = TDB_ERR_CORRUPT;
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_next_lock: loop detected.\n"));
goto fail;
}
@@ -127,7 +131,7 @@ static int tdb_next_lock(struct tdb_context *tdb, struct tdb_traverse_lock *tloc
tlock->off = 0;
if (tdb_unlock(tdb, tlock->hash, tlock->lock_rw) != 0)
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_next_lock: On error unlock failed!\n"));
- return -1;
+ return TDB_NEXT_LOCK_ERR;
}
/* traverse the entire database - calling fn(tdb, key, data) on each element.
@@ -141,7 +145,8 @@ static int tdb_traverse_internal(struct tdb_context *tdb,
{
TDB_DATA key, dbuf;
struct list_struct rec;
- int ret, count = 0;
+ int ret = 0, count = 0;
+ tdb_off_t off;
/* This was in the initializaton, above, but the IRIX compiler
* did not like it. crh
@@ -152,7 +157,11 @@ static int tdb_traverse_internal(struct tdb_context *tdb,
tdb->travlocks.next = tl;
/* tdb_next_lock places locks on the record returned, and its chain */
- while ((ret = tdb_next_lock(tdb, tl, &rec)) > 0) {
+ while ((off = tdb_next_lock(tdb, tl, &rec)) != 0) {
+ if (off == TDB_NEXT_LOCK_ERR) {
+ ret = -1;
+ goto out;
+ }
count++;
/* now read the full record */
key.dptr = tdb_alloc_read(tdb, tl->off + sizeof(rec),
@@ -177,7 +186,6 @@ static int tdb_traverse_internal(struct tdb_context *tdb,
}
if (fn && fn(tdb, key, dbuf, private_data)) {
/* They want us to terminate traversal */
- ret = count;
if (tdb_unlock_record(tdb, tl->off) != 0) {
TDB_LOG((tdb, TDB_DEBUG_FATAL, "tdb_traverse: unlock_record failed!\n"));;
ret = -1;
@@ -256,6 +264,7 @@ TDB_DATA tdb_firstkey(struct tdb_context *tdb)
{
TDB_DATA key;
struct list_struct rec;
+ tdb_off_t off;
/* release any old lock */
if (tdb_unlock_record(tdb, tdb->travlocks.off) != 0)
@@ -264,7 +273,8 @@ TDB_DATA tdb_firstkey(struct tdb_context *tdb)
tdb->travlocks.lock_rw = F_RDLCK;
/* Grab first record: locks chain and returned record. */
- if (tdb_next_lock(tdb, &tdb->travlocks, &rec) <= 0)
+ off = tdb_next_lock(tdb, &tdb->travlocks, &rec);
+ if (off == 0 || off == TDB_NEXT_LOCK_ERR)
return tdb_null;
/* now read the key */
key.dsize = rec.key_len;
@@ -283,6 +293,7 @@ TDB_DATA tdb_nextkey(struct tdb_context *tdb, TDB_DATA oldkey)
TDB_DATA key = tdb_null;
struct list_struct rec;
unsigned char *k = NULL;
+ tdb_off_t off;
/* Is locked key the old key? If so, traverse will be reliable. */
if (tdb->travlocks.off) {
@@ -322,7 +333,8 @@ TDB_DATA tdb_nextkey(struct tdb_context *tdb, TDB_DATA oldkey)
/* Grab next record: locks chain and returned record,
unlocks old record */
- if (tdb_next_lock(tdb, &tdb->travlocks, &rec) > 0) {
+ off = tdb_next_lock(tdb, &tdb->travlocks, &rec);
+ if (off != TDB_NEXT_LOCK_ERR && off != 0) {
key.dsize = rec.key_len;
key.dptr = tdb_alloc_read(tdb, tdb->travlocks.off+sizeof(rec),
key.dsize);
diff --git a/librpc/gen_ndr/epmapper.h b/librpc/gen_ndr/epmapper.h
index ff80fbb4fd..2030e1e54f 100644
--- a/librpc/gen_ndr/epmapper.h
+++ b/librpc/gen_ndr/epmapper.h
@@ -26,7 +26,7 @@ enum epm_protocol
EPM_PROTOCOL_UUID=0x0d,
EPM_PROTOCOL_IPX=0x0e,
EPM_PROTOCOL_SMB=0x0f,
- EPM_PROTOCOL_PIPE=0x10,
+ EPM_PROTOCOL_NAMED_PIPE=0x10,
EPM_PROTOCOL_NETBIOS=0x11,
EPM_PROTOCOL_NETBEUI=0x12,
EPM_PROTOCOL_SPX=0x13,
@@ -55,7 +55,7 @@ enum epm_protocol
#define EPM_PROTOCOL_UUID ( 0x0d )
#define EPM_PROTOCOL_IPX ( 0x0e )
#define EPM_PROTOCOL_SMB ( 0x0f )
-#define EPM_PROTOCOL_PIPE ( 0x10 )
+#define EPM_PROTOCOL_NAMED_PIPE ( 0x10 )
#define EPM_PROTOCOL_NETBIOS ( 0x11 )
#define EPM_PROTOCOL_NETBEUI ( 0x12 )
#define EPM_PROTOCOL_SPX ( 0x13 )
@@ -116,7 +116,7 @@ struct epm_rhs_smb {
const char * unc;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
};
-struct epm_rhs_pipe {
+struct epm_rhs_named_pipe {
const char * path;/* [flag(LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM)] */
};
@@ -189,7 +189,7 @@ union epm_rhs {
struct epm_rhs_uuid uuid;/* [case(EPM_PROTOCOL_UUID)] */
struct epm_rhs_ipx ipx;/* [case(EPM_PROTOCOL_IPX)] */
struct epm_rhs_smb smb;/* [case(EPM_PROTOCOL_SMB)] */
- struct epm_rhs_pipe pipe;/* [case(EPM_PROTOCOL_PIPE)] */
+ struct epm_rhs_named_pipe named_pipe;/* [case(EPM_PROTOCOL_NAMED_PIPE)] */
struct epm_rhs_netbios netbios;/* [case(EPM_PROTOCOL_NETBIOS)] */
struct epm_rhs_netbeui netbeui;/* [case(EPM_PROTOCOL_NETBEUI)] */
struct epm_rhs_spx spx;/* [case(EPM_PROTOCOL_SPX)] */
diff --git a/librpc/gen_ndr/ndr_epmapper.c b/librpc/gen_ndr/ndr_epmapper.c
index e39356fbc4..7bcd8ddc13 100644
--- a/librpc/gen_ndr/ndr_epmapper.c
+++ b/librpc/gen_ndr/ndr_epmapper.c
@@ -35,7 +35,7 @@ _PUBLIC_ void ndr_print_epm_protocol(struct ndr_print *ndr, const char *name, en
case EPM_PROTOCOL_UUID: val = "EPM_PROTOCOL_UUID"; break;
case EPM_PROTOCOL_IPX: val = "EPM_PROTOCOL_IPX"; break;
case EPM_PROTOCOL_SMB: val = "EPM_PROTOCOL_SMB"; break;
- case EPM_PROTOCOL_PIPE: val = "EPM_PROTOCOL_PIPE"; break;
+ case EPM_PROTOCOL_NAMED_PIPE: val = "EPM_PROTOCOL_NAMED_PIPE"; break;
case EPM_PROTOCOL_NETBIOS: val = "EPM_PROTOCOL_NETBIOS"; break;
case EPM_PROTOCOL_NETBEUI: val = "EPM_PROTOCOL_NETBEUI"; break;
case EPM_PROTOCOL_SPX: val = "EPM_PROTOCOL_SPX"; break;
@@ -391,7 +391,7 @@ _PUBLIC_ void ndr_print_epm_rhs_smb(struct ndr_print *ndr, const char *name, con
ndr->depth--;
}
-static enum ndr_err_code ndr_push_epm_rhs_pipe(struct ndr_push *ndr, int ndr_flags, const struct epm_rhs_pipe *r)
+static enum ndr_err_code ndr_push_epm_rhs_named_pipe(struct ndr_push *ndr, int ndr_flags, const struct epm_rhs_named_pipe *r)
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_push_align(ndr, 4));
@@ -407,7 +407,7 @@ static enum ndr_err_code ndr_push_epm_rhs_pipe(struct ndr_push *ndr, int ndr_fla
return NDR_ERR_SUCCESS;
}
-static enum ndr_err_code ndr_pull_epm_rhs_pipe(struct ndr_pull *ndr, int ndr_flags, struct epm_rhs_pipe *r)
+static enum ndr_err_code ndr_pull_epm_rhs_named_pipe(struct ndr_pull *ndr, int ndr_flags, struct epm_rhs_named_pipe *r)
{
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_pull_align(ndr, 4));
@@ -423,9 +423,9 @@ static enum ndr_err_code ndr_pull_epm_rhs_pipe(struct ndr_pull *ndr, int ndr_fla
return NDR_ERR_SUCCESS;
}
-_PUBLIC_ void ndr_print_epm_rhs_pipe(struct ndr_print *ndr, const char *name, const struct epm_rhs_pipe *r)
+_PUBLIC_ void ndr_print_epm_rhs_named_pipe(struct ndr_print *ndr, const char *name, const struct epm_rhs_named_pipe *r)
{
- ndr_print_struct(ndr, name, "epm_rhs_pipe");
+ ndr_print_struct(ndr, name, "epm_rhs_named_pipe");
ndr->depth++;
ndr_print_string(ndr, "path", r->path);
ndr->depth--;
@@ -916,8 +916,8 @@ static enum ndr_err_code ndr_push_epm_rhs(struct ndr_push *ndr, int ndr_flags, c
NDR_CHECK(ndr_push_epm_rhs_smb(ndr, NDR_SCALARS, &r->smb));
break; }
- case EPM_PROTOCOL_PIPE: {
- NDR_CHECK(ndr_push_epm_rhs_pipe(ndr, NDR_SCALARS, &r->pipe));
+ case EPM_PROTOCOL_NAMED_PIPE: {
+ NDR_CHECK(ndr_push_epm_rhs_named_pipe(ndr, NDR_SCALARS, &r->named_pipe));
break; }
case EPM_PROTOCOL_NETBIOS: {
@@ -1022,7 +1022,7 @@ static enum ndr_err_code ndr_push_epm_rhs(struct ndr_push *ndr, int ndr_flags, c
case EPM_PROTOCOL_SMB:
break;
- case EPM_PROTOCOL_PIPE:
+ case EPM_PROTOCOL_NAMED_PIPE:
break;
case EPM_PROTOCOL_NETBIOS:
@@ -1131,8 +1131,8 @@ static enum ndr_err_code ndr_pull_epm_rhs(struct ndr_pull *ndr, int ndr_flags, u
NDR_CHECK(ndr_pull_epm_rhs_smb(ndr, NDR_SCALARS, &r->smb));
break; }
- case EPM_PROTOCOL_PIPE: {
- NDR_CHECK(ndr_pull_epm_rhs_pipe(ndr, NDR_SCALARS, &r->pipe));
+ case EPM_PROTOCOL_NAMED_PIPE: {
+ NDR_CHECK(ndr_pull_epm_rhs_named_pipe(ndr, NDR_SCALARS, &r->named_pipe));
break; }
case EPM_PROTOCOL_NETBIOS: {
@@ -1236,7 +1236,7 @@ static enum ndr_err_code ndr_pull_epm_rhs(struct ndr_pull *ndr, int ndr_flags, u
case EPM_PROTOCOL_SMB:
break;
- case EPM_PROTOCOL_PIPE:
+ case EPM_PROTOCOL_NAMED_PIPE:
break;
case EPM_PROTOCOL_NETBIOS:
@@ -1345,8 +1345,8 @@ _PUBLIC_ void ndr_print_epm_rhs(struct ndr_print *ndr, const char *name, const u
ndr_print_epm_rhs_smb(ndr, "smb", &r->smb);
break;
- case EPM_PROTOCOL_PIPE:
- ndr_print_epm_rhs_pipe(ndr, "pipe", &r->pipe);
+ case EPM_PROTOCOL_NAMED_PIPE:
+ ndr_print_epm_rhs_named_pipe(ndr, "named_pipe", &r->named_pipe);
break;
case EPM_PROTOCOL_NETBIOS:
diff --git a/librpc/gen_ndr/ndr_epmapper.h b/librpc/gen_ndr/ndr_epmapper.h
index 797c68d93e..8053d07838 100644
--- a/librpc/gen_ndr/ndr_epmapper.h
+++ b/librpc/gen_ndr/ndr_epmapper.h
@@ -40,7 +40,7 @@ void ndr_print_epm_rhs_ncacn(struct ndr_print *ndr, const char *name, const stru
void ndr_print_epm_rhs_uuid(struct ndr_print *ndr, const char *name, const struct epm_rhs_uuid *r);
void ndr_print_epm_rhs_ipx(struct ndr_print *ndr, const char *name, const struct epm_rhs_ipx *r);
void ndr_print_epm_rhs_smb(struct ndr_print *ndr, const char *name, const struct epm_rhs_smb *r);
-void ndr_print_epm_rhs_pipe(struct ndr_print *ndr, const char *name, const struct epm_rhs_pipe *r);
+void ndr_print_epm_rhs_named_pipe(struct ndr_print *ndr, const char *name, const struct epm_rhs_named_pipe *r);
void ndr_print_epm_rhs_netbios(struct ndr_print *ndr, const char *name, const struct epm_rhs_netbios *r);
void ndr_print_epm_rhs_netbeui(struct ndr_print *ndr, const char *name, const struct epm_rhs_netbeui *r);
void ndr_print_epm_rhs_spx(struct ndr_print *ndr, const char *name, const struct epm_rhs_spx *r);
diff --git a/librpc/idl/epmapper.idl b/librpc/idl/epmapper.idl
index 0a110a1780..3d9113892b 100644
--- a/librpc/idl/epmapper.idl
+++ b/librpc/idl/epmapper.idl
@@ -52,7 +52,7 @@ interface epmapper
EPM_PROTOCOL_UUID = 0x0d,
EPM_PROTOCOL_IPX = 0x0e,
EPM_PROTOCOL_SMB = 0x0f,
- EPM_PROTOCOL_PIPE = 0x10,
+ EPM_PROTOCOL_NAMED_PIPE = 0x10,
EPM_PROTOCOL_NETBIOS = 0x11,
EPM_PROTOCOL_NETBEUI = 0x12,
EPM_PROTOCOL_SPX = 0x13,
@@ -113,8 +113,8 @@ interface epmapper
} epm_rhs_smb;
typedef struct {
- astring path;
- } epm_rhs_pipe;
+ astring path;
+ } epm_rhs_named_pipe;
typedef struct {
astring name;
@@ -178,7 +178,7 @@ interface epmapper
[case(EPM_PROTOCOL_UUID)] epm_rhs_uuid uuid;
[case(EPM_PROTOCOL_IPX)] epm_rhs_ipx ipx;
[case(EPM_PROTOCOL_SMB)] epm_rhs_smb smb;
- [case(EPM_PROTOCOL_PIPE)] epm_rhs_pipe pipe;
+ [case(EPM_PROTOCOL_NAMED_PIPE)] epm_rhs_named_pipe named_pipe;
[case(EPM_PROTOCOL_NETBIOS)] epm_rhs_netbios netbios;
[case(EPM_PROTOCOL_NETBEUI)] epm_rhs_netbeui netbeui;
[case(EPM_PROTOCOL_SPX)] epm_rhs_spx spx;
diff --git a/librpc/rpc/binding.c b/librpc/rpc/binding.c
index ba992399cd..652927b2c5 100644
--- a/librpc/rpc/binding.c
+++ b/librpc/rpc/binding.c
@@ -45,7 +45,7 @@ static const struct {
{ "ncadg_ip_udp", NCACN_IP_UDP, 3,
{ EPM_PROTOCOL_NCADG, EPM_PROTOCOL_UDP, EPM_PROTOCOL_IP } },
{ "ncalrpc", NCALRPC, 2,
- { EPM_PROTOCOL_NCALRPC, EPM_PROTOCOL_PIPE } },
+ { EPM_PROTOCOL_NCALRPC, EPM_PROTOCOL_NAMED_PIPE } },
{ "ncacn_unix_stream", NCACN_UNIX_STREAM, 2,
{ EPM_PROTOCOL_NCACN, EPM_PROTOCOL_UNIX_DS } },
{ "ncadg_unix_dgram", NCADG_UNIX_DGRAM, 2,
@@ -130,8 +130,8 @@ const char *epm_floor_string(TALLOC_CTX *mem_ctx, struct epm_floor *epm_floor)
case EPM_PROTOCOL_IP:
return talloc_asprintf(mem_ctx, "IP:%s", epm_floor->rhs.ip.ipaddr);
- case EPM_PROTOCOL_PIPE:
- return talloc_asprintf(mem_ctx, "PIPE:%s", epm_floor->rhs.pipe.path);
+ case EPM_PROTOCOL_NAMED_PIPE:
+ return talloc_asprintf(mem_ctx, "NAMED-PIPE:%s", epm_floor->rhs.named_pipe.path);
case EPM_PROTOCOL_SMB:
return talloc_asprintf(mem_ctx, "SMB:%s", epm_floor->rhs.smb.unc);
@@ -440,9 +440,9 @@ const char *dcerpc_floor_get_rhs_data(TALLOC_CTX *mem_ctx, struct epm_floor *epm
if (strlen(epm_floor->rhs.smb.unc) == 0) return NULL;
return talloc_strdup(mem_ctx, epm_floor->rhs.smb.unc);
- case EPM_PROTOCOL_PIPE:
- if (strlen(epm_floor->rhs.pipe.path) == 0) return NULL;
- return talloc_strdup(mem_ctx, epm_floor->rhs.pipe.path);
+ case EPM_PROTOCOL_NAMED_PIPE:
+ if (strlen(epm_floor->rhs.named_pipe.path) == 0) return NULL;
+ return talloc_strdup(mem_ctx, epm_floor->rhs.named_pipe.path);
case EPM_PROTOCOL_NETBIOS:
if (strlen(epm_floor->rhs.netbios.name) == 0) return NULL;
@@ -510,9 +510,9 @@ static NTSTATUS dcerpc_floor_set_rhs_data(TALLOC_CTX *mem_ctx,
NT_STATUS_HAVE_NO_MEMORY(epm_floor->rhs.smb.unc);
return NT_STATUS_OK;
- case EPM_PROTOCOL_PIPE:
- epm_floor->rhs.pipe.path = talloc_strdup(mem_ctx, data);
- NT_STATUS_HAVE_NO_MEMORY(epm_floor->rhs.pipe.path);
+ case EPM_PROTOCOL_NAMED_PIPE:
+ epm_floor->rhs.named_pipe.path = talloc_strdup(mem_ctx, data);
+ NT_STATUS_HAVE_NO_MEMORY(epm_floor->rhs.named_pipe.path);
return NT_STATUS_OK;
case EPM_PROTOCOL_NETBIOS:
diff --git a/nsswitch/winbind_struct_protocol.h b/nsswitch/winbind_struct_protocol.h
index 1785c30906..bd144101f2 100644
--- a/nsswitch/winbind_struct_protocol.h
+++ b/nsswitch/winbind_struct_protocol.h
@@ -169,6 +169,8 @@ enum winbindd_cmd {
WINBINDD_DUAL_USERINFO,
WINBINDD_DUAL_GETSIDALIASES,
+ WINBINDD_DUAL_NDRCMD,
+
/* Complete the challenge phase of the NTLM authentication
protocol using cached password. */
WINBINDD_CCACHE_NTLMAUTH,
@@ -247,6 +249,7 @@ struct winbindd_request {
fstring groupname; /* getgrnam */
uid_t uid; /* getpwuid, uid_to_sid */
gid_t gid; /* getgrgid, gid_to_sid */
+ uint32_t ndrcmd;
struct {
/* We deliberatedly don't split into domain/user to
avoid having the client know what the separator
diff --git a/pidl/expr.yp b/pidl/expr.yp
index a8074875ff..ef8eee36db 100644
--- a/pidl/expr.yp
+++ b/pidl/expr.yp
@@ -2,70 +2,120 @@
# Copyright (C) 2006 Jelmer Vernooij <jelmer@samba.org>
# Published under the GNU GPL
#
-%left '->'
-%right '!' '~'
-%left '*' '/' '%'
-%left '+' '-'
+%left '->'
+%right '!' '~'
+%left '*' '/' '%'
+%left '+' '-'
%left '<<' '>>'
-%left '>' '<'
-%left '==' '!='
-%left '&'
-%left '|'
-%left '&&'
-%left '||'
+%left '>' '<'
+%left '==' '!='
+%left '&'
+%left '|'
+%left '&&'
+%left '||'
%left '?' ':'
-%left NEG DEREF ADDROF INV
-%left '.'
+%left NEG DEREF ADDROF INV
+%left '.'
%%
-exp: NUM
- | TEXT { "\"$_[1]\"" }
- | func
- | var
- | '~' exp %prec INV { "~$_[2]" }
- | exp '+' exp { "$_[1] + $_[3]" }
- | exp '-' exp { "$_[1] - $_[3]" }
- | exp '*' exp { "$_[1] * $_[3]" }
- | exp '%' exp { "$_[1] % $_[3]" }
- | exp '<' exp { "$_[1] < $_[3]" }
- | exp '>' exp { "$_[1] > $_[3]" }
- | exp '|' exp { "$_[1] | $_[3]" }
- | exp '==' exp { "$_[1] == $_[3]" }
- | exp '<=' exp { "$_[1] <= $_[3]" }
- | exp '=>' exp { "$_[1] => $_[3]" }
- | exp '<<' exp { "$_[1] << $_[3]" }
- | exp '>>' exp { "$_[1] >> $_[3]" }
- | exp '!=' exp { "$_[1] != $_[3]" }
- | exp '||' exp { "$_[1] || $_[3]" }
- | exp '&&' exp { "$_[1] && $_[3]" }
- | exp '&' exp { "$_[1] & $_[3]" }
- | exp '?' exp ':' exp { "$_[1]?$_[3]:$_[5]" }
- | '~' exp { "~$_[1]" }
- | '!' exp { "not $_[1]" }
- | exp '/' exp { "$_[1] / $_[3]" }
- | '-' exp %prec NEG { "-$_[2]" }
- | '&' exp %prec ADDROF { "&$_[2]" }
- | exp '^' exp { "$_[1]^$_[3]" }
- | '(' exp ')' { "($_[2])" }
+exp:
+ NUM
+ |
+ TEXT { "\"$_[1]\"" }
+ |
+ func
+ |
+ var
+ |
+ '~' exp %prec INV { "~$_[2]" }
+ |
+ exp '+' exp { "$_[1] + $_[3]" }
+ |
+ exp '-' exp { "$_[1] - $_[3]" }
+ |
+ exp '*' exp { "$_[1] * $_[3]" }
+ |
+ exp '%' exp { "$_[1] % $_[3]" }
+ |
+ exp '<' exp { "$_[1] < $_[3]" }
+ |
+ exp '>' exp { "$_[1] > $_[3]" }
+ |
+ exp '|' exp { "$_[1] | $_[3]" }
+ |
+ exp '==' exp { "$_[1] == $_[3]" }
+ |
+ exp '<=' exp { "$_[1] <= $_[3]" }
+ |
+ exp '=>' exp { "$_[1] => $_[3]" }
+ |
+ exp '<<' exp { "$_[1] << $_[3]" }
+ |
+ exp '>>' exp { "$_[1] >> $_[3]" }
+ |
+ exp '!=' exp { "$_[1] != $_[3]" }
+ |
+ exp '||' exp { "$_[1] || $_[3]" }
+ |
+ exp '&&' exp { "$_[1] && $_[3]" }
+ |
+ exp '&' exp { "$_[1] & $_[3]" }
+ |
+ exp '?' exp ':' exp { "$_[1]?$_[3]:$_[5]" }
+ |
+ '~' exp { "~$_[1]" }
+ |
+ '!' exp { "not $_[1]" }
+ |
+ exp '/' exp { "$_[1] / $_[3]" }
+ |
+ '-' exp %prec NEG { "-$_[2]" }
+ |
+ '&' exp %prec ADDROF { "&$_[2]" }
+ |
+ exp '^' exp { "$_[1]^$_[3]" }
+ |
+ '(' exp ')' { "($_[2])" }
;
-possible_pointer:
- VAR { $_[0]->_Lookup($_[1]) }
- | '*' possible_pointer %prec DEREF { $_[0]->_Dereference($_[2]); "*$_[2]" }
- ;
+possible_pointer:
+ VAR { $_[0]->_Lookup($_[1]) }
+ |
+ '*' possible_pointer %prec DEREF { $_[0]->_Dereference($_[2]); "*$_[2]" }
+;
+
+var:
+ possible_pointer { $_[0]->_Use($_[1]) }
+ |
+ var '.' VAR { $_[0]->_Use("$_[1].$_[3]") }
+ |
+ '(' var ')' { "($_[2])" }
+ |
+ var '->' VAR { $_[0]->_Use("*$_[1]"); $_[1]."->".$_[3] }
+;
+
+
+func:
+ VAR '(' opt_args ')' { "$_[1]($_[3])" }
+;
-var: possible_pointer { $_[0]->_Use($_[1]) }
- | var '.' VAR { $_[0]->_Use("$_[1].$_[3]") }
- | '(' var ')' { "($_[2])" }
- | var '->' VAR { $_[0]->_Use("*$_[1]"); $_[1]."->".$_[3] }
+opt_args:
+ #empty
+ { "" }
+ |
+ args
;
+exp_or_possible_pointer:
+ exp
+ |
+ possible_pointer
+;
-func: VAR '(' opt_args ')' { "$_[1]($_[3])" };
-opt_args: { "" } | args;
-exp_or_possible_pointer: exp | possible_pointer;
-args: exp_or_possible_pointer
- | exp_or_possible_pointer ',' args { "$_[1], $_[3]" }
+args:
+ exp_or_possible_pointer
+ |
+ exp_or_possible_pointer ',' args { "$_[1], $_[3]" }
;
%%
@@ -73,22 +123,22 @@ args: exp_or_possible_pointer
package Parse::Pidl::Expr;
sub _Lexer {
- my($parser)=shift;
+ my($parser)=shift;
- $parser->YYData->{INPUT}=~s/^[ \t]//;
+ $parser->YYData->{INPUT}=~s/^[ \t]//;
- for ($parser->YYData->{INPUT}) {
- if (s/^(0x[0-9A-Fa-f]+)//) {
+ for ($parser->YYData->{INPUT}) {
+ if (s/^(0x[0-9A-Fa-f]+)//) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('NUM',$1);
+ return('NUM',$1);
}
- if (s/^([0-9]+(?:\.[0-9]+)?)//) {
+ if (s/^([0-9]+(?:\.[0-9]+)?)//) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('NUM',$1);
+ return('NUM',$1);
}
- if (s/^([A-Za-z_][A-Za-z0-9_]*)//) {
+ if (s/^([A-Za-z_][A-Za-z0-9_]*)//) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('VAR',$1);
+ return('VAR',$1);
}
if (s/^\"(.*?)\"//) {
$parser->YYData->{LAST_TOKEN} = $1;
@@ -96,13 +146,13 @@ sub _Lexer {
}
if (s/^(==|!=|<=|>=|->|\|\||<<|>>|&&)//s) {
$parser->YYData->{LAST_TOKEN} = $1;
- return($1,$1);
+ return($1,$1);
}
- if (s/^(.)//s) {
+ if (s/^(.)//s) {
$parser->YYData->{LAST_TOKEN} = $1;
- return($1,$1);
+ return($1,$1);
}
- }
+ }
}
sub _Use($$)
@@ -139,12 +189,14 @@ sub _Error($)
}
sub Run {
- my($self, $data, $error, $lookup, $deref, $use) = @_;
- $self->YYData->{FULL_INPUT} = $data;
- $self->YYData->{INPUT} = $data;
- $self->YYData->{LOOKUP} = $lookup;
- $self->YYData->{DEREFERENCE} = $deref;
- $self->YYData->{ERROR} = $error;
- $self->YYData->{USE} = $use;
- return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error);
+ my($self, $data, $error, $lookup, $deref, $use) = @_;
+
+ $self->YYData->{FULL_INPUT} = $data;
+ $self->YYData->{INPUT} = $data;
+ $self->YYData->{LOOKUP} = $lookup;
+ $self->YYData->{DEREFERENCE} = $deref;
+ $self->YYData->{ERROR} = $error;
+ $self->YYData->{USE} = $use;
+
+ return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error);
}
diff --git a/pidl/idl.yp b/pidl/idl.yp
index d557590494..dc8e293f76 100644
--- a/pidl/idl.yp
+++ b/pidl/idl.yp
@@ -16,119 +16,148 @@
%%
idl:
#empty { {} }
- | idl interface { push(@{$_[1]}, $_[2]); $_[1] }
- | idl coclass { push(@{$_[1]}, $_[2]); $_[1] }
- | idl import { push(@{$_[1]}, $_[2]); $_[1] }
- | idl include { push(@{$_[1]}, $_[2]); $_[1] }
- | idl importlib { push(@{$_[1]}, $_[2]); $_[1] }
- | idl cpp_quote { push(@{$_[1]}, $_[2]); $_[1] }
-;
-
-import: 'import' commalist ';' {{
- "TYPE" => "IMPORT",
- "PATHS" => $_[2],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE}
- }}
-;
-include: 'include' commalist ';' {{
- "TYPE" => "INCLUDE",
- "PATHS" => $_[2],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE}
- }}
-;
-importlib: 'importlib' commalist ';' {{
- "TYPE" => "IMPORTLIB",
- "PATHS" => $_[2],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE}
- }}
-;
-
-commalist:
- text { [ $_[1] ] }
- | commalist ',' text { push(@{$_[1]}, $_[3]); $_[1] }
-;
-
-coclass: property_list 'coclass' identifier '{' interface_names '}' optional_semicolon
- {{
- "TYPE" => "COCLASS",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "DATA" => $_[5],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ |
+ idl interface { push(@{$_[1]}, $_[2]); $_[1] }
+ |
+ idl coclass { push(@{$_[1]}, $_[2]); $_[1] }
+ |
+ idl import { push(@{$_[1]}, $_[2]); $_[1] }
+ |
+ idl include { push(@{$_[1]}, $_[2]); $_[1] }
+ |
+ idl importlib { push(@{$_[1]}, $_[2]); $_[1] }
+ |
+ idl cpp_quote { push(@{$_[1]}, $_[2]); $_[1] }
+;
+
+import:
+ 'import' commalist ';'
+ {{
+ "TYPE" => "IMPORT",
+ "PATHS" => $_[2],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
+;
+
+include:
+ 'include' commalist ';'
+ {{
+ "TYPE" => "INCLUDE",
+ "PATHS" => $_[2],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
+;
+
+importlib:
+ 'importlib' commalist ';'
+ {{
+ "TYPE" => "IMPORTLIB",
+ "PATHS" => $_[2],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
+;
+
+commalist:
+ text { [ $_[1] ] }
+ |
+ commalist ',' text { push(@{$_[1]}, $_[3]); $_[1] }
+;
+
+coclass:
+ property_list 'coclass' identifier '{' interface_names '}' optional_semicolon
+ {{
+ "TYPE" => "COCLASS",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "DATA" => $_[5],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
;
interface_names:
#empty { {} }
- | interface_names 'interface' identifier ';' { push(@{$_[1]}, $_[2]); $_[1] }
+ |
+ interface_names 'interface' identifier ';' { push(@{$_[1]}, $_[2]); $_[1] }
;
-interface: property_list 'interface' identifier base_interface '{' definitions '}' optional_semicolon
- {{
- "TYPE" => "INTERFACE",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "BASE" => $_[4],
- "DATA" => $_[6],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+interface:
+ property_list 'interface' identifier base_interface '{' definitions '}' optional_semicolon
+ {{
+ "TYPE" => "INTERFACE",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "BASE" => $_[4],
+ "DATA" => $_[6],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
;
base_interface:
- #empty
- | ':' identifier { $_[2] }
+ #empty
+ |
+ ':' identifier { $_[2] }
;
-cpp_quote: 'cpp_quote' '(' text ')'
+cpp_quote:
+ 'cpp_quote' '(' text ')'
{{
"TYPE" => "CPP_QUOTE",
+ "DATA" => $_[3],
"FILE" => $_[0]->YYData->{FILE},
"LINE" => $_[0]->YYData->{LINE},
- "DATA" => $_[3]
}}
;
-definitions:
- definition { [ $_[1] ] }
- | definitions definition { push(@{$_[1]}, $_[2]); $_[1] }
-;
-
-
-definition: function | const | typedef | typedecl
+definitions:
+ definition { [ $_[1] ] }
+ |
+ definitions definition { push(@{$_[1]}, $_[2]); $_[1] }
;
-const: 'const' identifier pointers identifier '=' anytext ';'
- {{
- "TYPE" => "CONST",
- "DTYPE" => $_[2],
- "POINTERS" => $_[3],
- "NAME" => $_[4],
- "VALUE" => $_[6],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
- | 'const' identifier pointers identifier array_len '=' anytext ';'
- {{
- "TYPE" => "CONST",
- "DTYPE" => $_[2],
- "POINTERS" => $_[3],
- "NAME" => $_[4],
- "ARRAY_LEN" => $_[5],
- "VALUE" => $_[7],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+definition:
+ function
+ |
+ const
+ |
+ typedef
+ |
+ typedecl
;
+const:
+ 'const' identifier pointers identifier '=' anytext ';'
+ {{
+ "TYPE" => "CONST",
+ "DTYPE" => $_[2],
+ "POINTERS" => $_[3],
+ "NAME" => $_[4],
+ "VALUE" => $_[6],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
+ |
+ 'const' identifier pointers identifier array_len '=' anytext ';'
+ {{
+ "TYPE" => "CONST",
+ "DTYPE" => $_[2],
+ "POINTERS" => $_[3],
+ "NAME" => $_[4],
+ "ARRAY_LEN" => $_[5],
+ "VALUE" => $_[7],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
+;
-function: property_list type identifier '(' element_list2 ')' ';'
- {{
+function:
+ property_list type identifier '(' element_list2 ')' ';'
+ {{
"TYPE" => "FUNCTION",
"NAME" => $_[3],
"RETURN_TYPE" => $_[2],
@@ -136,220 +165,351 @@ function: property_list type identifier '(' element_list2 ')' ';'
"ELEMENTS" => $_[5],
"FILE" => $_[0]->YYData->{FILE},
"LINE" => $_[0]->YYData->{LINE},
- }}
-;
-
-typedef: property_list 'typedef' type identifier array_len ';'
- {{
- "TYPE" => "TYPEDEF",
- "PROPERTIES" => $_[1],
- "NAME" => $_[4],
- "DATA" => $_[3],
- "ARRAY_LEN" => $_[5],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
+ }}
+;
+
+typedef:
+ property_list 'typedef' type identifier array_len ';'
+ {{
+ "TYPE" => "TYPEDEF",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[4],
+ "DATA" => $_[3],
+ "ARRAY_LEN" => $_[5],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
}}
;
-usertype: struct | union | enum | bitmap;
+usertype:
+ struct
+ |
+ union
+ |
+ enum
+ |
+ bitmap
+ |
+ pipe
+;
-typedecl: usertype ';' { $_[1] };
+typedecl:
+ usertype ';' { $_[1] }
+;
-sign: 'signed' | 'unsigned';
+sign:
+ 'signed'
+ |
+ 'unsigned'
+;
-existingtype:
+existingtype:
sign identifier { ($_[1]?$_[1]:"signed") ." $_[2]" }
- | identifier
+ |
+ identifier
;
-type: usertype | existingtype | void { "void" } ;
+type:
+ usertype
+ |
+ existingtype
+ |
+ void { "void" }
+;
-enum_body: '{' enum_elements '}' { $_[2] };
-opt_enum_body: | enum_body;
-enum: property_list 'enum' optional_identifier opt_enum_body
- {{
- "TYPE" => "ENUM",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4]
- }}
+enum_body:
+ '{' enum_elements '}' { $_[2] }
+;
+
+opt_enum_body:
+ #empty
+ |
+ enum_body
+;
+
+enum:
+ property_list 'enum' optional_identifier opt_enum_body
+ {{
+ "TYPE" => "ENUM",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
;
-enum_elements:
- enum_element { [ $_[1] ] }
- | enum_elements ',' enum_element { push(@{$_[1]}, $_[3]); $_[1] }
+enum_elements:
+ enum_element { [ $_[1] ] }
+ |
+ enum_elements ',' enum_element { push(@{$_[1]}, $_[3]); $_[1] }
;
-enum_element: identifier
- | identifier '=' anytext { "$_[1]$_[2]$_[3]" }
+enum_element:
+ identifier
+ |
+ identifier '=' anytext { "$_[1]$_[2]$_[3]" }
;
-bitmap_body: '{' opt_bitmap_elements '}' { $_[2] };
-opt_bitmap_body: | bitmap_body;
-bitmap: property_list 'bitmap' optional_identifier opt_bitmap_body
- {{
- "TYPE" => "BITMAP",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4]
- }}
+bitmap_body:
+ '{' opt_bitmap_elements '}' { $_[2] }
+;
+
+opt_bitmap_body:
+ #empty
+ |
+ bitmap_body
;
-bitmap_elements:
- bitmap_element { [ $_[1] ] }
- | bitmap_elements ',' bitmap_element { push(@{$_[1]}, $_[3]); $_[1] }
+bitmap:
+ property_list 'bitmap' optional_identifier opt_bitmap_body
+ {{
+ "TYPE" => "BITMAP",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
;
-opt_bitmap_elements: | bitmap_elements;
+bitmap_elements:
+ bitmap_element { [ $_[1] ] }
+ |
+ bitmap_elements ',' bitmap_element { push(@{$_[1]}, $_[3]); $_[1] }
+;
-bitmap_element: identifier '=' anytext { "$_[1] ( $_[3] )" }
+opt_bitmap_elements:
+ #empty
+ |
+ bitmap_elements
;
-struct_body: '{' element_list1 '}' { $_[2] };
-opt_struct_body: | struct_body;
+bitmap_element:
+ identifier '=' anytext { "$_[1] ( $_[3] )" }
+;
-struct: property_list 'struct' optional_identifier opt_struct_body
- {{
- "TYPE" => "STRUCT",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4]
- }}
+struct_body:
+ '{' element_list1 '}' { $_[2] }
;
-empty_element: property_list ';'
+opt_struct_body:
+ #empty
+ |
+ struct_body
+;
+
+struct:
+ property_list 'struct' optional_identifier opt_struct_body
{{
- "NAME" => "",
- "TYPE" => "EMPTY",
- "PROPERTIES" => $_[1],
- "POINTERS" => 0,
- "ARRAY_LEN" => [],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "STRUCT",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
;
-base_or_empty: base_element ';' | empty_element;
+empty_element:
+ property_list ';'
+ {{
+ "NAME" => "",
+ "TYPE" => "EMPTY",
+ "PROPERTIES" => $_[1],
+ "POINTERS" => 0,
+ "ARRAY_LEN" => [],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
+;
+
+base_or_empty:
+ base_element ';'
+ |
+ empty_element;
optional_base_element:
property_list base_or_empty { $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] }
;
-union_elements:
- #empty
- | union_elements optional_base_element { push(@{$_[1]}, $_[2]); $_[1] }
+union_elements:
+ #empty
+ |
+ union_elements optional_base_element { push(@{$_[1]}, $_[2]); $_[1] }
+;
+
+union_body:
+ '{' union_elements '}' { $_[2] }
;
-union_body: '{' union_elements '}' { $_[2] };
-opt_union_body: | union_body;
+opt_union_body:
+ #empty
+ |
+ union_body
+;
-union: property_list 'union' optional_identifier opt_union_body
- {{
- "TYPE" => "UNION",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4]
- }}
+union:
+ property_list 'union' optional_identifier opt_union_body
+ {{
+ "TYPE" => "UNION",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
;
-base_element: property_list type pointers identifier array_len
- {{
- "NAME" => $_[4],
- "TYPE" => $_[2],
- "PROPERTIES" => $_[1],
- "POINTERS" => $_[3],
- "ARRAY_LEN" => $_[5],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+base_element:
+ property_list type pointers identifier array_len
+ {{
+ "NAME" => $_[4],
+ "TYPE" => $_[2],
+ "PROPERTIES" => $_[1],
+ "POINTERS" => $_[3],
+ "ARRAY_LEN" => $_[5],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
;
+pointers:
+ #empty
+ { 0 }
+ |
+ pointers '*' { $_[1]+1 }
+;
-pointers:
- #empty
- { 0 }
- | pointers '*' { $_[1]+1 }
+pipe:
+ property_list 'pipe' type
+ {{
+ "TYPE" => "PIPE",
+ "PROPERTIES" => $_[1],
+ "DATA" => $_[3],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
;
-element_list1:
+element_list1:
+ #empty
{ [] }
- | element_list1 base_element ';' { push(@{$_[1]}, $_[2]); $_[1] }
+ |
+ element_list1 base_element ';' { push(@{$_[1]}, $_[2]); $_[1] }
;
-optional_const:
+optional_const:
#empty
- | 'const'
+ |
+ 'const'
;
-element_list2:
- #empty
- | 'void'
- | optional_const base_element { [ $_[2] ] }
- | element_list2 ',' optional_const base_element { push(@{$_[1]}, $_[4]); $_[1] }
+element_list2:
+ #empty
+ |
+ 'void'
+ |
+ optional_const base_element { [ $_[2] ] }
+ |
+ element_list2 ',' optional_const base_element { push(@{$_[1]}, $_[4]); $_[1] }
;
-array_len:
- #empty { [] }
- | '[' ']' array_len { push(@{$_[3]}, "*"); $_[3] }
- | '[' anytext ']' array_len { push(@{$_[4]}, "$_[2]"); $_[4] }
+array_len:
+ #empty { [] }
+ |
+ '[' ']' array_len { push(@{$_[3]}, "*"); $_[3] }
+ |
+ '[' anytext ']' array_len { push(@{$_[4]}, "$_[2]"); $_[4] }
;
-
-property_list:
- #empty
- | property_list '[' properties ']' { FlattenHash([$_[1],$_[3]]); }
+property_list:
+ #empty
+ |
+ property_list '[' properties ']' { FlattenHash([$_[1],$_[3]]); }
;
-properties: property { $_[1] }
- | properties ',' property { FlattenHash([$_[1], $_[3]]); }
+properties:
+ property { $_[1] }
+ |
+ properties ',' property { FlattenHash([$_[1], $_[3]]); }
;
-property: identifier {{ "$_[1]" => "1" }}
- | identifier '(' commalisttext ')' {{ "$_[1]" => "$_[3]" }}
+property:
+ identifier {{ "$_[1]" => "1" }}
+ |
+ identifier '(' commalisttext ')' {{ "$_[1]" => "$_[3]" }}
;
commalisttext:
- anytext
- | commalisttext ',' anytext { "$_[1],$_[3]" }
-;
-
-anytext: #empty
- { "" }
- | identifier | constant | text
- | anytext '-' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '.' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '*' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '>' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '<' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '|' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '&' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '/' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '?' anytext { "$_[1]$_[2]$_[3]" }
- | anytext ':' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '=' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '+' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '~' anytext { "$_[1]$_[2]$_[3]" }
- | anytext '(' commalisttext ')' anytext { "$_[1]$_[2]$_[3]$_[4]$_[5]" }
- | anytext '{' commalisttext '}' anytext { "$_[1]$_[2]$_[3]$_[4]$_[5]" }
-;
-
-identifier: IDENTIFIER
-;
-
-optional_identifier:
+ anytext
+ |
+ commalisttext ',' anytext { "$_[1],$_[3]" }
+;
+
+anytext:
+ #empty
+ { "" }
+ |
+ identifier
+ |
+ constant
+ |
+ text
+ |
+ anytext '-' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '.' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '*' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '>' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '<' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '|' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '&' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '/' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '?' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext ':' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '=' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '+' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '~' anytext { "$_[1]$_[2]$_[3]" }
+ |
+ anytext '(' commalisttext ')' anytext { "$_[1]$_[2]$_[3]$_[4]$_[5]" }
+ |
+ anytext '{' commalisttext '}' anytext { "$_[1]$_[2]$_[3]$_[4]$_[5]" }
+;
+
+identifier:
+ IDENTIFIER
+;
+
+optional_identifier:
+ #empty { undef }
+ |
IDENTIFIER
- | #empty { undef }
;
-constant: CONSTANT
+constant:
+ CONSTANT
;
-text: TEXT { "\"$_[1]\"" }
+text:
+ TEXT { "\"$_[1]\"" }
;
-optional_semicolon:
+optional_semicolon:
#empty
- | ';'
+ |
+ ';'
;
@@ -361,51 +521,56 @@ use Parse::Pidl qw(error);
#####################################################################
# flatten an array of hashes into a single hash
-sub FlattenHash($)
-{
- my $a = shift;
- my %b;
- for my $d (@{$a}) {
- for my $k (keys %{$d}) {
- $b{$k} = $d->{$k};
+sub FlattenHash($)
+{
+ my $a = shift;
+ my %b;
+ for my $d (@{$a}) {
+ for my $k (keys %{$d}) {
+ $b{$k} = $d->{$k};
+ }
}
- }
- return \%b;
+ return \%b;
}
-
-
#####################################################################
# traverse a perl data structure removing any empty arrays or
# hashes and any hash elements that map to undef
sub CleanData($)
{
- sub CleanData($);
- my($v) = shift;
+ sub CleanData($);
+ my($v) = shift;
+
return undef if (not defined($v));
- if (ref($v) eq "ARRAY") {
- foreach my $i (0 .. $#{$v}) {
- CleanData($v->[$i]);
- }
- # this removes any undefined elements from the array
- @{$v} = grep { defined $_ } @{$v};
- } elsif (ref($v) eq "HASH") {
- foreach my $x (keys %{$v}) {
- CleanData($v->{$x});
- if (!defined $v->{$x}) { delete($v->{$x}); next; }
+
+ if (ref($v) eq "ARRAY") {
+ foreach my $i (0 .. $#{$v}) {
+ CleanData($v->[$i]);
+ }
+ # this removes any undefined elements from the array
+ @{$v} = grep { defined $_ } @{$v};
+ } elsif (ref($v) eq "HASH") {
+ foreach my $x (keys %{$v}) {
+ CleanData($v->{$x});
+ if (!defined $v->{$x}) {
+ delete($v->{$x});
+ next;
+ }
+ }
}
- }
+
return $v;
}
sub _Error {
- if (exists $_[0]->YYData->{ERRMSG}) {
+ if (exists $_[0]->YYData->{ERRMSG}) {
error($_[0]->YYData, $_[0]->YYData->{ERRMSG});
delete $_[0]->YYData->{ERRMSG};
return;
}
+
my $last_token = $_[0]->YYData->{LAST_TOKEN};
-
+
error($_[0]->YYData, "Syntax error near '$last_token'");
}
@@ -413,7 +578,7 @@ sub _Lexer($)
{
my($parser)=shift;
- $parser->YYData->{INPUT} or return('',undef);
+ $parser->YYData->{INPUT} or return('',undef);
again:
$parser->YYData->{INPUT} =~ s/^[ \t]*//;
@@ -440,18 +605,19 @@ again:
}
if (s/^\"(.*?)\"//) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('TEXT',$1);
+ return('TEXT',$1);
}
if (s/^(\d+)(\W|$)/$2/) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('CONSTANT',$1);
+ return('CONSTANT',$1);
}
if (s/^([\w_]+)//) {
$parser->YYData->{LAST_TOKEN} = $1;
- if ($1 =~
- /^(coclass|interface|const|typedef|union|cpp_quote
- |struct|enum|bitmap|void|unsigned|signed|import|include
- |importlib)$/x) {
+ if ($1 =~
+ /^(coclass|interface|import|importlib
+ |include|cpp_quote|typedef
+ |union|struct|enum|bitmap|pipe
+ |void|const|unsigned|signed)$/x) {
return $1;
}
return('IDENTIFIER',$1);
@@ -469,10 +635,10 @@ sub parse_string
my $self = new Parse::Pidl::IDL;
- $self->YYData->{FILE} = $filename;
- $self->YYData->{INPUT} = $data;
- $self->YYData->{LINE} = 0;
- $self->YYData->{LAST_TOKEN} = "NONE";
+ $self->YYData->{FILE} = $filename;
+ $self->YYData->{INPUT} = $data;
+ $self->YYData->{LINE} = 0;
+ $self->YYData->{LAST_TOKEN} = "NONE";
my $idl = $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error );
diff --git a/pidl/lib/Parse/Pidl/Expr.pm b/pidl/lib/Parse/Pidl/Expr.pm
index 5524374fae..1230a71a2b 100644
--- a/pidl/lib/Parse/Pidl/Expr.pm
+++ b/pidl/lib/Parse/Pidl/Expr.pm
@@ -1127,7 +1127,7 @@ sub new {
[#Rule 2
'exp', 1,
sub
-#line 22 "./pidl/expr.yp"
+#line 24 "./../pidl/expr.yp"
{ "\"$_[1]\"" }
],
[#Rule 3
@@ -1139,199 +1139,199 @@ sub
[#Rule 5
'exp', 2,
sub
-#line 25 "./pidl/expr.yp"
+#line 30 "./../pidl/expr.yp"
{ "~$_[2]" }
],
[#Rule 6
'exp', 3,
sub
-#line 26 "./pidl/expr.yp"
+#line 32 "./../pidl/expr.yp"
{ "$_[1] + $_[3]" }
],
[#Rule 7
'exp', 3,
sub
-#line 27 "./pidl/expr.yp"
+#line 34 "./../pidl/expr.yp"
{ "$_[1] - $_[3]" }
],
[#Rule 8
'exp', 3,
sub
-#line 28 "./pidl/expr.yp"
+#line 36 "./../pidl/expr.yp"
{ "$_[1] * $_[3]" }
],
[#Rule 9
'exp', 3,
sub
-#line 29 "./pidl/expr.yp"
+#line 38 "./../pidl/expr.yp"
{ "$_[1] % $_[3]" }
],
[#Rule 10
'exp', 3,
sub
-#line 30 "./pidl/expr.yp"
+#line 40 "./../pidl/expr.yp"
{ "$_[1] < $_[3]" }
],
[#Rule 11
'exp', 3,
sub
-#line 31 "./pidl/expr.yp"
+#line 42 "./../pidl/expr.yp"
{ "$_[1] > $_[3]" }
],
[#Rule 12
'exp', 3,
sub
-#line 32 "./pidl/expr.yp"
+#line 44 "./../pidl/expr.yp"
{ "$_[1] | $_[3]" }
],
[#Rule 13
'exp', 3,
sub
-#line 33 "./pidl/expr.yp"
+#line 46 "./../pidl/expr.yp"
{ "$_[1] == $_[3]" }
],
[#Rule 14
'exp', 3,
sub
-#line 34 "./pidl/expr.yp"
+#line 48 "./../pidl/expr.yp"
{ "$_[1] <= $_[3]" }
],
[#Rule 15
'exp', 3,
sub
-#line 35 "./pidl/expr.yp"
+#line 50 "./../pidl/expr.yp"
{ "$_[1] => $_[3]" }
],
[#Rule 16
'exp', 3,
sub
-#line 36 "./pidl/expr.yp"
+#line 52 "./../pidl/expr.yp"
{ "$_[1] << $_[3]" }
],
[#Rule 17
'exp', 3,
sub
-#line 37 "./pidl/expr.yp"
+#line 54 "./../pidl/expr.yp"
{ "$_[1] >> $_[3]" }
],
[#Rule 18
'exp', 3,
sub
-#line 38 "./pidl/expr.yp"
+#line 56 "./../pidl/expr.yp"
{ "$_[1] != $_[3]" }
],
[#Rule 19
'exp', 3,
sub
-#line 39 "./pidl/expr.yp"
+#line 58 "./../pidl/expr.yp"
{ "$_[1] || $_[3]" }
],
[#Rule 20
'exp', 3,
sub
-#line 40 "./pidl/expr.yp"
+#line 60 "./../pidl/expr.yp"
{ "$_[1] && $_[3]" }
],
[#Rule 21
'exp', 3,
sub
-#line 41 "./pidl/expr.yp"
+#line 62 "./../pidl/expr.yp"
{ "$_[1] & $_[3]" }
],
[#Rule 22
'exp', 5,
sub
-#line 42 "./pidl/expr.yp"
+#line 64 "./../pidl/expr.yp"
{ "$_[1]?$_[3]:$_[5]" }
],
[#Rule 23
'exp', 2,
sub
-#line 43 "./pidl/expr.yp"
+#line 66 "./../pidl/expr.yp"
{ "~$_[1]" }
],
[#Rule 24
'exp', 2,
sub
-#line 44 "./pidl/expr.yp"
+#line 68 "./../pidl/expr.yp"
{ "not $_[1]" }
],
[#Rule 25
'exp', 3,
sub
-#line 45 "./pidl/expr.yp"
+#line 70 "./../pidl/expr.yp"
{ "$_[1] / $_[3]" }
],
[#Rule 26
'exp', 2,
sub
-#line 46 "./pidl/expr.yp"
+#line 72 "./../pidl/expr.yp"
{ "-$_[2]" }
],
[#Rule 27
'exp', 2,
sub
-#line 47 "./pidl/expr.yp"
+#line 74 "./../pidl/expr.yp"
{ "&$_[2]" }
],
[#Rule 28
'exp', 3,
sub
-#line 48 "./pidl/expr.yp"
+#line 76 "./../pidl/expr.yp"
{ "$_[1]^$_[3]" }
],
[#Rule 29
'exp', 3,
sub
-#line 49 "./pidl/expr.yp"
+#line 78 "./../pidl/expr.yp"
{ "($_[2])" }
],
[#Rule 30
'possible_pointer', 1,
sub
-#line 53 "./pidl/expr.yp"
+#line 82 "./../pidl/expr.yp"
{ $_[0]->_Lookup($_[1]) }
],
[#Rule 31
'possible_pointer', 2,
sub
-#line 54 "./pidl/expr.yp"
+#line 84 "./../pidl/expr.yp"
{ $_[0]->_Dereference($_[2]); "*$_[2]" }
],
[#Rule 32
'var', 1,
sub
-#line 57 "./pidl/expr.yp"
+#line 88 "./../pidl/expr.yp"
{ $_[0]->_Use($_[1]) }
],
[#Rule 33
'var', 3,
sub
-#line 58 "./pidl/expr.yp"
+#line 90 "./../pidl/expr.yp"
{ $_[0]->_Use("$_[1].$_[3]") }
],
[#Rule 34
'var', 3,
sub
-#line 59 "./pidl/expr.yp"
+#line 92 "./../pidl/expr.yp"
{ "($_[2])" }
],
[#Rule 35
'var', 3,
sub
-#line 60 "./pidl/expr.yp"
+#line 94 "./../pidl/expr.yp"
{ $_[0]->_Use("*$_[1]"); $_[1]."->".$_[3] }
],
[#Rule 36
'func', 4,
sub
-#line 64 "./pidl/expr.yp"
+#line 99 "./../pidl/expr.yp"
{ "$_[1]($_[3])" }
],
[#Rule 37
'opt_args', 0,
sub
-#line 65 "./pidl/expr.yp"
+#line 104 "./../pidl/expr.yp"
{ "" }
],
[#Rule 38
@@ -1349,7 +1349,7 @@ sub
[#Rule 42
'args', 3,
sub
-#line 68 "./pidl/expr.yp"
+#line 118 "./../pidl/expr.yp"
{ "$_[1], $_[3]" }
]
],
@@ -1357,28 +1357,28 @@ sub
bless($self,$class);
}
-#line 71 "./pidl/expr.yp"
+#line 121 "./../pidl/expr.yp"
package Parse::Pidl::Expr;
sub _Lexer {
- my($parser)=shift;
+ my($parser)=shift;
- $parser->YYData->{INPUT}=~s/^[ \t]//;
+ $parser->YYData->{INPUT}=~s/^[ \t]//;
- for ($parser->YYData->{INPUT}) {
- if (s/^(0x[0-9A-Fa-f]+)//) {
+ for ($parser->YYData->{INPUT}) {
+ if (s/^(0x[0-9A-Fa-f]+)//) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('NUM',$1);
+ return('NUM',$1);
}
- if (s/^([0-9]+(?:\.[0-9]+)?)//) {
+ if (s/^([0-9]+(?:\.[0-9]+)?)//) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('NUM',$1);
+ return('NUM',$1);
}
- if (s/^([A-Za-z_][A-Za-z0-9_]*)//) {
+ if (s/^([A-Za-z_][A-Za-z0-9_]*)//) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('VAR',$1);
+ return('VAR',$1);
}
if (s/^\"(.*?)\"//) {
$parser->YYData->{LAST_TOKEN} = $1;
@@ -1386,13 +1386,13 @@ sub _Lexer {
}
if (s/^(==|!=|<=|>=|->|\|\||<<|>>|&&)//s) {
$parser->YYData->{LAST_TOKEN} = $1;
- return($1,$1);
+ return($1,$1);
}
- if (s/^(.)//s) {
+ if (s/^(.)//s) {
$parser->YYData->{LAST_TOKEN} = $1;
- return($1,$1);
+ return($1,$1);
}
- }
+ }
}
sub _Use($$)
@@ -1429,14 +1429,16 @@ sub _Error($)
}
sub Run {
- my($self, $data, $error, $lookup, $deref, $use) = @_;
- $self->YYData->{FULL_INPUT} = $data;
- $self->YYData->{INPUT} = $data;
- $self->YYData->{LOOKUP} = $lookup;
- $self->YYData->{DEREFERENCE} = $deref;
- $self->YYData->{ERROR} = $error;
- $self->YYData->{USE} = $use;
- return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error);
+ my($self, $data, $error, $lookup, $deref, $use) = @_;
+
+ $self->YYData->{FULL_INPUT} = $data;
+ $self->YYData->{INPUT} = $data;
+ $self->YYData->{LOOKUP} = $lookup;
+ $self->YYData->{DEREFERENCE} = $deref;
+ $self->YYData->{ERROR} = $error;
+ $self->YYData->{USE} = $use;
+
+ return $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error);
}
1;
diff --git a/pidl/lib/Parse/Pidl/IDL.pm b/pidl/lib/Parse/Pidl/IDL.pm
index 06d54fb4b5..1a3c59d35c 100644
--- a/pidl/lib/Parse/Pidl/IDL.pm
+++ b/pidl/lib/Parse/Pidl/IDL.pm
@@ -38,7 +38,7 @@ sub new {
"import" => 7,
"include" => 13
},
- DEFAULT => -85,
+ DEFAULT => -89,
GOTOS => {
'cpp_quote' => 11,
'importlib' => 10,
@@ -124,7 +124,7 @@ sub new {
}
},
{#State 16
- DEFAULT => -116
+ DEFAULT => -120
},
{#State 17
DEFAULT => -11
@@ -184,7 +184,7 @@ sub new {
}
},
{#State 26
- DEFAULT => -112
+ DEFAULT => -116
},
{#State 27
ACTIONS => {
@@ -210,10 +210,10 @@ sub new {
ACTIONS => {
"(" => 41
},
- DEFAULT => -89
+ DEFAULT => -93
},
{#State 31
- DEFAULT => -87
+ DEFAULT => -91
},
{#State 32
DEFAULT => -8
@@ -256,7 +256,7 @@ sub new {
}
},
{#State 40
- DEFAULT => -86
+ DEFAULT => -90
},
{#State 41
ACTIONS => {
@@ -264,7 +264,7 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
'text' => 51,
@@ -284,72 +284,73 @@ sub new {
},
{#State 44
ACTIONS => {
- "const" => 63
+ "const" => 64
},
- DEFAULT => -85,
+ DEFAULT => -89,
GOTOS => {
'typedecl' => 54,
'function' => 55,
- 'definitions' => 57,
- 'bitmap' => 56,
- 'definition' => 60,
- 'property_list' => 59,
- 'usertype' => 58,
- 'const' => 62,
- 'struct' => 61,
- 'typedef' => 65,
- 'enum' => 64,
- 'union' => 66
+ 'pipe' => 56,
+ 'definitions' => 58,
+ 'bitmap' => 57,
+ 'definition' => 61,
+ 'property_list' => 60,
+ 'usertype' => 59,
+ 'const' => 63,
+ 'struct' => 62,
+ 'typedef' => 66,
+ 'enum' => 65,
+ 'union' => 67
}
},
{#State 45
- DEFAULT => -88
+ DEFAULT => -92
},
{#State 46
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
},
- DEFAULT => -91
+ DEFAULT => -95
},
{#State 47
- DEFAULT => -95
+ DEFAULT => -99
},
{#State 48
- DEFAULT => -115
+ DEFAULT => -119
},
{#State 49
ACTIONS => {
- "," => 82,
- ")" => 83
+ "," => 83,
+ ")" => 84
}
},
{#State 50
- DEFAULT => -94
+ DEFAULT => -98
},
{#State 51
- DEFAULT => -96
+ DEFAULT => -100
},
{#State 52
ACTIONS => {
- ";" => 85
+ ";" => 86
},
- DEFAULT => -117,
+ DEFAULT => -121,
GOTOS => {
- 'optional_semicolon' => 84
+ 'optional_semicolon' => 85
}
},
{#State 53
@@ -357,7 +358,7 @@ sub new {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 86
+ 'identifier' => 87
}
},
{#State 54
@@ -367,98 +368,90 @@ sub new {
DEFAULT => -22
},
{#State 56
- DEFAULT => -33
+ DEFAULT => -34
},
{#State 57
+ DEFAULT => -33
+ },
+ {#State 58
ACTIONS => {
- "}" => 87,
- "const" => 63
+ "}" => 88,
+ "const" => 64
},
- DEFAULT => -85,
+ DEFAULT => -89,
GOTOS => {
'typedecl' => 54,
'function' => 55,
- 'bitmap' => 56,
- 'definition' => 88,
- 'property_list' => 59,
- 'usertype' => 58,
- 'struct' => 61,
- 'const' => 62,
- 'typedef' => 65,
- 'enum' => 64,
- 'union' => 66
+ 'pipe' => 56,
+ 'bitmap' => 57,
+ 'definition' => 89,
+ 'property_list' => 60,
+ 'usertype' => 59,
+ 'const' => 63,
+ 'struct' => 62,
+ 'typedef' => 66,
+ 'enum' => 65,
+ 'union' => 67
}
},
- {#State 58
+ {#State 59
ACTIONS => {
- ";" => 89
+ ";" => 90
}
},
- {#State 59
+ {#State 60
ACTIONS => {
- "typedef" => 90,
+ "typedef" => 91,
'IDENTIFIER' => 26,
- "signed" => 98,
- "union" => 91,
- "enum" => 100,
- "bitmap" => 101,
- 'void' => 92,
- "unsigned" => 102,
+ "signed" => 100,
+ "union" => 92,
+ "enum" => 101,
+ "bitmap" => 102,
+ 'void' => 93,
+ "pipe" => 103,
+ "unsigned" => 104,
"[" => 20,
- "struct" => 97
+ "struct" => 98
},
GOTOS => {
'existingtype' => 99,
- 'bitmap' => 56,
- 'usertype' => 94,
- 'property_list' => 93,
- 'identifier' => 95,
- 'struct' => 61,
- 'enum' => 64,
- 'type' => 103,
- 'union' => 66,
- 'sign' => 96
+ 'pipe' => 56,
+ 'bitmap' => 57,
+ 'usertype' => 95,
+ 'property_list' => 94,
+ 'identifier' => 96,
+ 'struct' => 62,
+ 'enum' => 65,
+ 'type' => 105,
+ 'union' => 67,
+ 'sign' => 97
}
},
- {#State 60
+ {#State 61
DEFAULT => -20
},
- {#State 61
+ {#State 62
DEFAULT => -30
},
- {#State 62
+ {#State 63
DEFAULT => -23
},
- {#State 63
+ {#State 64
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 104
+ 'identifier' => 106
}
},
- {#State 64
- DEFAULT => -32
- },
{#State 65
- DEFAULT => -24
+ DEFAULT => -32
},
{#State 66
- DEFAULT => -31
+ DEFAULT => -24
},
{#State 67
- ACTIONS => {
- 'CONSTANT' => 48,
- 'TEXT' => 16,
- 'IDENTIFIER' => 26
- },
- DEFAULT => -93,
- GOTOS => {
- 'identifier' => 50,
- 'anytext' => 105,
- 'text' => 51,
- 'constant' => 47
- }
+ DEFAULT => -31
},
{#State 68
ACTIONS => {
@@ -466,10 +459,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 106,
+ 'anytext' => 107,
'text' => 51,
'constant' => 47
}
@@ -480,10 +473,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 107,
+ 'anytext' => 108,
'text' => 51,
'constant' => 47
}
@@ -494,10 +487,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 108,
+ 'anytext' => 109,
'text' => 51,
'constant' => 47
}
@@ -508,10 +501,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 109,
+ 'anytext' => 110,
'text' => 51,
'constant' => 47
}
@@ -522,10 +515,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 110,
+ 'anytext' => 111,
'text' => 51,
'constant' => 47
}
@@ -536,13 +529,12 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 46,
+ 'anytext' => 112,
'text' => 51,
- 'constant' => 47,
- 'commalisttext' => 111
+ 'constant' => 47
}
},
{#State 74
@@ -551,12 +543,13 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 112,
+ 'anytext' => 46,
'text' => 51,
- 'constant' => 47
+ 'constant' => 47,
+ 'commalisttext' => 113
}
},
{#State 75
@@ -565,10 +558,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 113,
+ 'anytext' => 114,
'text' => 51,
'constant' => 47
}
@@ -579,10 +572,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 114,
+ 'anytext' => 115,
'text' => 51,
'constant' => 47
}
@@ -593,13 +586,12 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 46,
+ 'anytext' => 116,
'text' => 51,
- 'constant' => 47,
- 'commalisttext' => 115
+ 'constant' => 47
}
},
{#State 78
@@ -608,12 +600,13 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 116,
+ 'anytext' => 46,
'text' => 51,
- 'constant' => 47
+ 'constant' => 47,
+ 'commalisttext' => 117
}
},
{#State 79
@@ -622,10 +615,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 117,
+ 'anytext' => 118,
'text' => 51,
'constant' => 47
}
@@ -636,10 +629,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 118,
+ 'anytext' => 119,
'text' => 51,
'constant' => 47
}
@@ -650,10 +643,10 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 119,
+ 'anytext' => 120,
'text' => 51,
'constant' => 47
}
@@ -664,1039 +657,1101 @@ sub new {
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 120,
+ 'anytext' => 121,
'text' => 51,
'constant' => 47
}
},
{#State 83
- DEFAULT => -90
+ ACTIONS => {
+ 'CONSTANT' => 48,
+ 'TEXT' => 16,
+ 'IDENTIFIER' => 26
+ },
+ DEFAULT => -97,
+ GOTOS => {
+ 'identifier' => 50,
+ 'anytext' => 122,
+ 'text' => 51,
+ 'constant' => 47
+ }
},
{#State 84
- DEFAULT => -13
+ DEFAULT => -94
},
{#State 85
- DEFAULT => -118
+ DEFAULT => -13
},
{#State 86
+ DEFAULT => -122
+ },
+ {#State 87
ACTIONS => {
- ";" => 121
+ ";" => 123
}
},
- {#State 87
+ {#State 88
ACTIONS => {
- ";" => 85
+ ";" => 86
},
- DEFAULT => -117,
+ DEFAULT => -121,
GOTOS => {
- 'optional_semicolon' => 122
+ 'optional_semicolon' => 124
}
},
- {#State 88
- DEFAULT => -21
- },
{#State 89
- DEFAULT => -34
+ DEFAULT => -21
},
{#State 90
+ DEFAULT => -35
+ },
+ {#State 91
ACTIONS => {
'IDENTIFIER' => 26,
- "signed" => 98,
- 'void' => 92,
- "unsigned" => 102
+ "signed" => 100,
+ 'void' => 93,
+ "unsigned" => 104
},
- DEFAULT => -85,
+ DEFAULT => -89,
GOTOS => {
'existingtype' => 99,
- 'bitmap' => 56,
- 'usertype' => 94,
- 'property_list' => 93,
- 'identifier' => 95,
- 'struct' => 61,
- 'enum' => 64,
- 'type' => 123,
- 'union' => 66,
- 'sign' => 96
+ 'pipe' => 56,
+ 'bitmap' => 57,
+ 'usertype' => 95,
+ 'property_list' => 94,
+ 'identifier' => 96,
+ 'struct' => 62,
+ 'enum' => 65,
+ 'type' => 125,
+ 'union' => 67,
+ 'sign' => 97
}
},
- {#State 91
+ {#State 92
ACTIONS => {
- 'IDENTIFIER' => 124
+ 'IDENTIFIER' => 126
},
- DEFAULT => -114,
+ DEFAULT => -117,
GOTOS => {
- 'optional_identifier' => 125
+ 'optional_identifier' => 127
}
},
- {#State 92
- DEFAULT => -41
- },
{#State 93
+ DEFAULT => -42
+ },
+ {#State 94
ACTIONS => {
- "union" => 91,
- "enum" => 100,
- "bitmap" => 101,
+ "pipe" => 103,
+ "union" => 92,
+ "enum" => 101,
+ "bitmap" => 102,
"[" => 20,
- "struct" => 97
+ "struct" => 98
}
},
- {#State 94
- DEFAULT => -39
- },
{#State 95
- DEFAULT => -38
+ DEFAULT => -40
},
{#State 96
+ DEFAULT => -39
+ },
+ {#State 97
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 126
+ 'identifier' => 128
}
},
- {#State 97
+ {#State 98
ACTIONS => {
- 'IDENTIFIER' => 124
+ 'IDENTIFIER' => 126
},
- DEFAULT => -114,
+ DEFAULT => -117,
GOTOS => {
- 'optional_identifier' => 127
+ 'optional_identifier' => 129
}
},
- {#State 98
- DEFAULT => -35
- },
{#State 99
- DEFAULT => -40
+ DEFAULT => -41
},
{#State 100
+ DEFAULT => -36
+ },
+ {#State 101
ACTIONS => {
- 'IDENTIFIER' => 124
+ 'IDENTIFIER' => 126
},
- DEFAULT => -114,
+ DEFAULT => -117,
GOTOS => {
- 'optional_identifier' => 128
+ 'optional_identifier' => 130
}
},
- {#State 101
+ {#State 102
ACTIONS => {
- 'IDENTIFIER' => 124
+ 'IDENTIFIER' => 126
},
- DEFAULT => -114,
+ DEFAULT => -117,
GOTOS => {
- 'optional_identifier' => 129
+ 'optional_identifier' => 131
}
},
- {#State 102
- DEFAULT => -36
- },
{#State 103
ACTIONS => {
- 'IDENTIFIER' => 26
+ 'IDENTIFIER' => 26,
+ "signed" => 100,
+ 'void' => 93,
+ "unsigned" => 104
},
+ DEFAULT => -89,
GOTOS => {
- 'identifier' => 130
+ 'existingtype' => 99,
+ 'pipe' => 56,
+ 'bitmap' => 57,
+ 'usertype' => 95,
+ 'property_list' => 94,
+ 'identifier' => 96,
+ 'struct' => 62,
+ 'enum' => 65,
+ 'type' => 132,
+ 'union' => 67,
+ 'sign' => 97
}
},
{#State 104
- DEFAULT => -74,
- GOTOS => {
- 'pointers' => 131
- }
+ DEFAULT => -37
},
{#State 105
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ 'IDENTIFIER' => 26
},
- DEFAULT => -106
+ GOTOS => {
+ 'identifier' => 133
+ }
},
{#State 106
- ACTIONS => {
- ":" => 67,
- "<" => 70,
- "~" => 71,
- "?" => 69,
- "{" => 73,
- "=" => 76
- },
- DEFAULT => -97
+ DEFAULT => -75,
+ GOTOS => {
+ 'pointers' => 134
+ }
},
{#State 107
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
},
- DEFAULT => -105
+ DEFAULT => -110
},
{#State 108
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ ":" => 68,
+ "<" => 71,
+ "~" => 72,
+ "?" => 70,
+ "{" => 74,
+ "=" => 77
},
DEFAULT => -101
},
{#State 109
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
},
DEFAULT => -109
},
{#State 110
ACTIONS => {
- ":" => 67,
- "<" => 70,
- "~" => 71,
- "?" => 69,
- "{" => 73,
- "=" => 76
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
},
- DEFAULT => -108
+ DEFAULT => -105
},
{#State 111
ACTIONS => {
- "}" => 132,
- "," => 82
- }
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
+ },
+ DEFAULT => -113
},
{#State 112
ACTIONS => {
- ":" => 67,
- "<" => 70,
- "~" => 71,
- "?" => 69,
- "{" => 73,
- "=" => 76
+ ":" => 68,
+ "<" => 71,
+ "~" => 72,
+ "?" => 70,
+ "{" => 74,
+ "=" => 77
},
- DEFAULT => -103
+ DEFAULT => -112
},
{#State 113
ACTIONS => {
- ":" => 67,
- "<" => 70,
- "~" => 71,
- "?" => 69,
- "{" => 73,
- "=" => 76
- },
- DEFAULT => -104
+ "}" => 135,
+ "," => 83
+ }
},
{#State 114
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ ":" => 68,
+ "<" => 71,
+ "~" => 72,
+ "?" => 70,
+ "{" => 74,
+ "=" => 77
},
DEFAULT => -107
},
{#State 115
ACTIONS => {
- "," => 82,
- ")" => 133
- }
+ ":" => 68,
+ "<" => 71,
+ "~" => 72,
+ "?" => 70,
+ "{" => 74,
+ "=" => 77
+ },
+ DEFAULT => -108
},
{#State 116
ACTIONS => {
- ":" => 67,
- "<" => 70,
- "~" => 71,
- "?" => 69,
- "{" => 73,
- "=" => 76
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
},
- DEFAULT => -102
+ DEFAULT => -111
},
{#State 117
ACTIONS => {
- ":" => 67,
- "<" => 70,
- "~" => 71,
- "?" => 69,
- "{" => 73,
- "=" => 76
- },
- DEFAULT => -99
+ "," => 83,
+ ")" => 136
+ }
},
{#State 118
ACTIONS => {
- ":" => 67,
- "<" => 70,
- "~" => 71,
- "?" => 69,
- "{" => 73,
- "=" => 76
+ ":" => 68,
+ "<" => 71,
+ "~" => 72,
+ "?" => 70,
+ "{" => 74,
+ "=" => 77
},
- DEFAULT => -98
+ DEFAULT => -106
},
{#State 119
ACTIONS => {
- ":" => 67,
- "<" => 70,
- "~" => 71,
- "?" => 69,
- "{" => 73,
- "=" => 76
+ ":" => 68,
+ "<" => 71,
+ "~" => 72,
+ "?" => 70,
+ "{" => 74,
+ "=" => 77
},
- DEFAULT => -100
+ DEFAULT => -103
},
{#State 120
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ ":" => 68,
+ "<" => 71,
+ "~" => 72,
+ "?" => 70,
+ "{" => 74,
+ "=" => 77
},
- DEFAULT => -92
+ DEFAULT => -102
},
{#State 121
- DEFAULT => -15
+ ACTIONS => {
+ ":" => 68,
+ "<" => 71,
+ "~" => 72,
+ "?" => 70,
+ "{" => 74,
+ "=" => 77
+ },
+ DEFAULT => -104
},
{#State 122
- DEFAULT => -16
- },
- {#State 123
ACTIONS => {
- 'IDENTIFIER' => 26
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
},
- GOTOS => {
- 'identifier' => 134
- }
+ DEFAULT => -96
+ },
+ {#State 123
+ DEFAULT => -15
},
{#State 124
- DEFAULT => -113
+ DEFAULT => -16
},
{#State 125
ACTIONS => {
- "{" => 136
+ 'IDENTIFIER' => 26
},
- DEFAULT => -70,
GOTOS => {
- 'union_body' => 137,
- 'opt_union_body' => 135
+ 'identifier' => 137
}
},
{#State 126
- DEFAULT => -37
+ DEFAULT => -118
},
{#State 127
ACTIONS => {
"{" => 139
},
- DEFAULT => -60,
+ DEFAULT => -71,
GOTOS => {
- 'struct_body' => 138,
- 'opt_struct_body' => 140
+ 'union_body' => 140,
+ 'opt_union_body' => 138
}
},
{#State 128
+ DEFAULT => -38
+ },
+ {#State 129
ACTIONS => {
- "{" => 141
+ "{" => 142
},
- DEFAULT => -43,
+ DEFAULT => -61,
GOTOS => {
- 'opt_enum_body' => 143,
- 'enum_body' => 142
+ 'struct_body' => 141,
+ 'opt_struct_body' => 143
}
},
- {#State 129
+ {#State 130
ACTIONS => {
- "{" => 145
+ "{" => 144
},
- DEFAULT => -51,
+ DEFAULT => -44,
GOTOS => {
- 'bitmap_body' => 146,
- 'opt_bitmap_body' => 144
+ 'opt_enum_body' => 146,
+ 'enum_body' => 145
}
},
- {#State 130
+ {#State 131
ACTIONS => {
- "(" => 147
+ "{" => 148
+ },
+ DEFAULT => -52,
+ GOTOS => {
+ 'bitmap_body' => 149,
+ 'opt_bitmap_body' => 147
}
},
- {#State 131
+ {#State 132
+ DEFAULT => -77
+ },
+ {#State 133
+ ACTIONS => {
+ "(" => 150
+ }
+ },
+ {#State 134
ACTIONS => {
'IDENTIFIER' => 26,
- "*" => 149
+ "*" => 152
},
GOTOS => {
- 'identifier' => 148
+ 'identifier' => 151
}
},
- {#State 132
+ {#State 135
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 150,
+ 'anytext' => 153,
'text' => 51,
'constant' => 47
}
},
- {#State 133
+ {#State 136
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 151,
+ 'anytext' => 154,
'text' => 51,
'constant' => 47
}
},
- {#State 134
+ {#State 137
ACTIONS => {
- "[" => 152
+ "[" => 155
},
- DEFAULT => -82,
+ DEFAULT => -86,
GOTOS => {
- 'array_len' => 153
+ 'array_len' => 156
}
},
- {#State 135
- DEFAULT => -72
+ {#State 138
+ DEFAULT => -73
},
- {#State 136
- DEFAULT => -67,
+ {#State 139
+ DEFAULT => -68,
GOTOS => {
- 'union_elements' => 154
+ 'union_elements' => 157
}
},
- {#State 137
- DEFAULT => -71
+ {#State 140
+ DEFAULT => -72
},
- {#State 138
- DEFAULT => -61
+ {#State 141
+ DEFAULT => -62
},
- {#State 139
- DEFAULT => -76,
+ {#State 142
+ DEFAULT => -78,
GOTOS => {
- 'element_list1' => 155
+ 'element_list1' => 158
}
},
- {#State 140
- DEFAULT => -62
+ {#State 143
+ DEFAULT => -63
},
- {#State 141
+ {#State 144
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 156,
- 'enum_element' => 157,
- 'enum_elements' => 158
+ 'identifier' => 159,
+ 'enum_element' => 160,
+ 'enum_elements' => 161
}
},
- {#State 142
- DEFAULT => -44
- },
- {#State 143
+ {#State 145
DEFAULT => -45
},
- {#State 144
- DEFAULT => -53
+ {#State 146
+ DEFAULT => -46
},
- {#State 145
+ {#State 147
+ DEFAULT => -54
+ },
+ {#State 148
ACTIONS => {
'IDENTIFIER' => 26
},
- DEFAULT => -56,
+ DEFAULT => -57,
GOTOS => {
- 'identifier' => 161,
- 'bitmap_element' => 160,
- 'bitmap_elements' => 159,
- 'opt_bitmap_elements' => 162
+ 'identifier' => 164,
+ 'bitmap_element' => 163,
+ 'bitmap_elements' => 162,
+ 'opt_bitmap_elements' => 165
}
},
- {#State 146
- DEFAULT => -52
+ {#State 149
+ DEFAULT => -53
},
- {#State 147
+ {#State 150
ACTIONS => {
- "," => -78,
- "void" => 166,
- ")" => -78
+ "," => -82,
+ "void" => 169,
+ "const" => 167,
+ ")" => -82
},
- DEFAULT => -85,
+ DEFAULT => -80,
GOTOS => {
- 'base_element' => 163,
- 'element_list2' => 165,
- 'property_list' => 164
+ 'optional_const' => 166,
+ 'element_list2' => 168
}
},
- {#State 148
+ {#State 151
ACTIONS => {
- "[" => 152,
- "=" => 168
+ "[" => 155,
+ "=" => 171
},
GOTOS => {
- 'array_len' => 167
+ 'array_len' => 170
}
},
- {#State 149
- DEFAULT => -75
+ {#State 152
+ DEFAULT => -76
},
- {#State 150
+ {#State 153
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
},
- DEFAULT => -111
+ DEFAULT => -115
},
- {#State 151
+ {#State 154
ACTIONS => {
- ":" => 67,
- "<" => 70,
- "~" => 71,
- "?" => 69,
- "{" => 73,
- "=" => 76
+ ":" => 68,
+ "<" => 71,
+ "~" => 72,
+ "?" => 70,
+ "{" => 74,
+ "=" => 77
},
- DEFAULT => -110
+ DEFAULT => -114
},
- {#State 152
+ {#State 155
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
- "]" => 169,
+ "]" => 172,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 170,
+ 'anytext' => 173,
'text' => 51,
'constant' => 47
}
},
- {#State 153
- ACTIONS => {
- ";" => 171
- }
- },
- {#State 154
+ {#State 156
ACTIONS => {
- "}" => 172
- },
- DEFAULT => -85,
- GOTOS => {
- 'optional_base_element' => 174,
- 'property_list' => 173
+ ";" => 174
}
},
- {#State 155
+ {#State 157
ACTIONS => {
"}" => 175
},
- DEFAULT => -85,
+ DEFAULT => -89,
GOTOS => {
- 'base_element' => 176,
- 'property_list' => 164
+ 'optional_base_element' => 177,
+ 'property_list' => 176
}
},
- {#State 156
- ACTIONS => {
- "=" => 177
- },
- DEFAULT => -48
- },
- {#State 157
- DEFAULT => -46
- },
{#State 158
ACTIONS => {
- "}" => 178,
- "," => 179
+ "}" => 178
+ },
+ DEFAULT => -89,
+ GOTOS => {
+ 'base_element' => 179,
+ 'property_list' => 180
}
},
{#State 159
ACTIONS => {
- "," => 180
+ "=" => 181
},
- DEFAULT => -57
+ DEFAULT => -49
},
{#State 160
- DEFAULT => -54
+ DEFAULT => -47
},
{#State 161
ACTIONS => {
- "=" => 181
+ "}" => 182,
+ "," => 183
}
},
{#State 162
ACTIONS => {
- "}" => 182
- }
+ "," => 184
+ },
+ DEFAULT => -58
},
{#State 163
- DEFAULT => -80
+ DEFAULT => -55
},
{#State 164
ACTIONS => {
- 'IDENTIFIER' => 26,
- "signed" => 98,
- 'void' => 92,
- "unsigned" => 102,
- "[" => 20
- },
- DEFAULT => -85,
- GOTOS => {
- 'existingtype' => 99,
- 'bitmap' => 56,
- 'usertype' => 94,
- 'property_list' => 93,
- 'identifier' => 95,
- 'struct' => 61,
- 'enum' => 64,
- 'type' => 183,
- 'union' => 66,
- 'sign' => 96
+ "=" => 185
}
},
{#State 165
ACTIONS => {
- "," => 184,
- ")" => 185
+ "}" => 186
}
},
{#State 166
- DEFAULT => -79
+ DEFAULT => -89,
+ GOTOS => {
+ 'base_element' => 187,
+ 'property_list' => 180
+ }
},
{#State 167
+ DEFAULT => -81
+ },
+ {#State 168
ACTIONS => {
- "=" => 186
+ "," => 188,
+ ")" => 189
}
},
- {#State 168
+ {#State 169
+ DEFAULT => -83
+ },
+ {#State 170
+ ACTIONS => {
+ "=" => 190
+ }
+ },
+ {#State 171
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 187,
+ 'anytext' => 191,
'text' => 51,
'constant' => 47
}
},
- {#State 169
+ {#State 172
ACTIONS => {
- "[" => 152
+ "[" => 155
},
- DEFAULT => -82,
+ DEFAULT => -86,
GOTOS => {
- 'array_len' => 188
+ 'array_len' => 192
}
},
- {#State 170
+ {#State 173
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "?" => 69,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "&" => 74,
- "{" => 73,
- "/" => 75,
- "=" => 76,
- "|" => 78,
- "(" => 77,
- "*" => 79,
- "." => 80,
- "]" => 189,
- ">" => 81
+ "-" => 69,
+ ":" => 68,
+ "?" => 70,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "&" => 75,
+ "{" => 74,
+ "/" => 76,
+ "=" => 77,
+ "|" => 79,
+ "(" => 78,
+ "*" => 80,
+ "." => 81,
+ "]" => 193,
+ ">" => 82
}
},
- {#State 171
+ {#State 174
DEFAULT => -29
},
- {#State 172
- DEFAULT => -69
+ {#State 175
+ DEFAULT => -70
},
- {#State 173
+ {#State 176
ACTIONS => {
"[" => 20
},
- DEFAULT => -85,
+ DEFAULT => -89,
GOTOS => {
- 'base_or_empty' => 190,
- 'base_element' => 191,
- 'empty_element' => 192,
- 'property_list' => 193
+ 'base_or_empty' => 194,
+ 'base_element' => 195,
+ 'empty_element' => 196,
+ 'property_list' => 197
}
},
- {#State 174
- DEFAULT => -68
+ {#State 177
+ DEFAULT => -69
},
- {#State 175
- DEFAULT => -59
+ {#State 178
+ DEFAULT => -60
},
- {#State 176
+ {#State 179
ACTIONS => {
- ";" => 194
+ ";" => 198
}
},
- {#State 177
+ {#State 180
+ ACTIONS => {
+ 'IDENTIFIER' => 26,
+ "signed" => 100,
+ 'void' => 93,
+ "unsigned" => 104,
+ "[" => 20
+ },
+ DEFAULT => -89,
+ GOTOS => {
+ 'existingtype' => 99,
+ 'pipe' => 56,
+ 'bitmap' => 57,
+ 'usertype' => 95,
+ 'property_list' => 94,
+ 'identifier' => 96,
+ 'struct' => 62,
+ 'enum' => 65,
+ 'type' => 199,
+ 'union' => 67,
+ 'sign' => 97
+ }
+ },
+ {#State 181
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 195,
+ 'anytext' => 200,
'text' => 51,
'constant' => 47
}
},
- {#State 178
- DEFAULT => -42
+ {#State 182
+ DEFAULT => -43
},
- {#State 179
+ {#State 183
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 156,
- 'enum_element' => 196
+ 'identifier' => 159,
+ 'enum_element' => 201
}
},
- {#State 180
+ {#State 184
ACTIONS => {
'IDENTIFIER' => 26
},
GOTOS => {
- 'identifier' => 161,
- 'bitmap_element' => 197
+ 'identifier' => 164,
+ 'bitmap_element' => 202
}
},
- {#State 181
+ {#State 185
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 198,
+ 'anytext' => 203,
'text' => 51,
'constant' => 47
}
},
- {#State 182
- DEFAULT => -50
+ {#State 186
+ DEFAULT => -51
},
- {#State 183
- DEFAULT => -74,
- GOTOS => {
- 'pointers' => 199
- }
+ {#State 187
+ DEFAULT => -84
},
- {#State 184
- DEFAULT => -85,
+ {#State 188
+ ACTIONS => {
+ "const" => 167
+ },
+ DEFAULT => -80,
GOTOS => {
- 'base_element' => 200,
- 'property_list' => 164
+ 'optional_const' => 204
}
},
- {#State 185
+ {#State 189
ACTIONS => {
- ";" => 201
+ ";" => 205
}
},
- {#State 186
+ {#State 190
ACTIONS => {
'CONSTANT' => 48,
'TEXT' => 16,
'IDENTIFIER' => 26
},
- DEFAULT => -93,
+ DEFAULT => -97,
GOTOS => {
'identifier' => 50,
- 'anytext' => 202,
+ 'anytext' => 206,
'text' => 51,
'constant' => 47
}
},
- {#State 187
+ {#State 191
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "?" => 69,
- "<" => 70,
- ";" => 203,
- "+" => 72,
- "~" => 71,
- "&" => 74,
- "{" => 73,
- "/" => 75,
- "=" => 76,
- "|" => 78,
- "(" => 77,
- "*" => 79,
- "." => 80,
- ">" => 81
+ "-" => 69,
+ ":" => 68,
+ "?" => 70,
+ "<" => 71,
+ ";" => 207,
+ "+" => 73,
+ "~" => 72,
+ "&" => 75,
+ "{" => 74,
+ "/" => 76,
+ "=" => 77,
+ "|" => 79,
+ "(" => 78,
+ "*" => 80,
+ "." => 81,
+ ">" => 82
}
},
- {#State 188
- DEFAULT => -83
+ {#State 192
+ DEFAULT => -87
},
- {#State 189
+ {#State 193
ACTIONS => {
- "[" => 152
+ "[" => 155
},
- DEFAULT => -82,
+ DEFAULT => -86,
GOTOS => {
- 'array_len' => 204
+ 'array_len' => 208
}
},
- {#State 190
- DEFAULT => -66
+ {#State 194
+ DEFAULT => -67
},
- {#State 191
+ {#State 195
ACTIONS => {
- ";" => 205
+ ";" => 209
}
},
- {#State 192
- DEFAULT => -65
+ {#State 196
+ DEFAULT => -66
},
- {#State 193
+ {#State 197
ACTIONS => {
'IDENTIFIER' => 26,
- "signed" => 98,
- ";" => 206,
- 'void' => 92,
- "unsigned" => 102,
+ "signed" => 100,
+ ";" => 210,
+ 'void' => 93,
+ "unsigned" => 104,
"[" => 20
},
- DEFAULT => -85,
+ DEFAULT => -89,
GOTOS => {
'existingtype' => 99,
- 'bitmap' => 56,
- 'usertype' => 94,
- 'property_list' => 93,
- 'identifier' => 95,
- 'struct' => 61,
- 'enum' => 64,
- 'type' => 183,
- 'union' => 66,
- 'sign' => 96
+ 'pipe' => 56,
+ 'bitmap' => 57,
+ 'usertype' => 95,
+ 'property_list' => 94,
+ 'identifier' => 96,
+ 'struct' => 62,
+ 'enum' => 65,
+ 'type' => 199,
+ 'union' => 67,
+ 'sign' => 97
}
},
- {#State 194
- DEFAULT => -77
+ {#State 198
+ DEFAULT => -79
},
- {#State 195
+ {#State 199
+ DEFAULT => -75,
+ GOTOS => {
+ 'pointers' => 211
+ }
+ },
+ {#State 200
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
},
- DEFAULT => -49
+ DEFAULT => -50
},
- {#State 196
- DEFAULT => -47
+ {#State 201
+ DEFAULT => -48
},
- {#State 197
- DEFAULT => -55
+ {#State 202
+ DEFAULT => -56
},
- {#State 198
+ {#State 203
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "<" => 70,
- "+" => 72,
- "~" => 71,
- "*" => 79,
- "?" => 69,
- "{" => 73,
- "&" => 74,
- "/" => 75,
- "=" => 76,
- "(" => 77,
- "|" => 78,
- "." => 80,
- ">" => 81
+ "-" => 69,
+ ":" => 68,
+ "<" => 71,
+ "+" => 73,
+ "~" => 72,
+ "*" => 80,
+ "?" => 70,
+ "{" => 74,
+ "&" => 75,
+ "/" => 76,
+ "=" => 77,
+ "(" => 78,
+ "|" => 79,
+ "." => 81,
+ ">" => 82
},
- DEFAULT => -58
+ DEFAULT => -59
},
- {#State 199
- ACTIONS => {
- 'IDENTIFIER' => 26,
- "*" => 149
- },
+ {#State 204
+ DEFAULT => -89,
GOTOS => {
- 'identifier' => 207
+ 'base_element' => 212,
+ 'property_list' => 180
}
},
- {#State 200
- DEFAULT => -81
- },
- {#State 201
+ {#State 205
DEFAULT => -28
},
- {#State 202
+ {#State 206
ACTIONS => {
- "-" => 68,
- ":" => 67,
- "?" => 69,
- "<" => 70,
- ";" => 208,
- "+" => 72,
- "~" => 71,
- "&" => 74,
- "{" => 73,
- "/" => 75,
- "=" => 76,
- "|" => 78,
- "(" => 77,
- "*" => 79,
- "." => 80,
- ">" => 81
+ "-" => 69,
+ ":" => 68,
+ "?" => 70,
+ "<" => 71,
+ ";" => 213,
+ "+" => 73,
+ "~" => 72,
+ "&" => 75,
+ "{" => 74,
+ "/" => 76,
+ "=" => 77,
+ "|" => 79,
+ "(" => 78,
+ "*" => 80,
+ "." => 81,
+ ">" => 82
}
},
- {#State 203
+ {#State 207
DEFAULT => -26
},
- {#State 204
- DEFAULT => -84
+ {#State 208
+ DEFAULT => -88
},
- {#State 205
- DEFAULT => -64
+ {#State 209
+ DEFAULT => -65
},
- {#State 206
- DEFAULT => -63
+ {#State 210
+ DEFAULT => -64
},
- {#State 207
+ {#State 211
ACTIONS => {
- "[" => 152
+ 'IDENTIFIER' => 26,
+ "*" => 152
},
- DEFAULT => -82,
GOTOS => {
- 'array_len' => 209
+ 'identifier' => 214
}
},
- {#State 208
+ {#State 212
+ DEFAULT => -85
+ },
+ {#State 213
DEFAULT => -27
},
- {#State 209
- DEFAULT => -73
+ {#State 214
+ ACTIONS => {
+ "[" => 155
+ },
+ DEFAULT => -86,
+ GOTOS => {
+ 'array_len' => 215
+ }
+ },
+ {#State 215
+ DEFAULT => -74
}
],
yyrules =>
@@ -1710,96 +1765,96 @@ sub new {
[#Rule 2
'idl', 2,
sub
-#line 19 "pidl/idl.yp"
+#line 20 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 3
'idl', 2,
sub
-#line 20 "pidl/idl.yp"
+#line 22 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 4
'idl', 2,
sub
-#line 21 "pidl/idl.yp"
+#line 24 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 5
'idl', 2,
sub
-#line 22 "pidl/idl.yp"
+#line 26 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 6
'idl', 2,
sub
-#line 23 "pidl/idl.yp"
+#line 28 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 7
'idl', 2,
sub
-#line 24 "pidl/idl.yp"
+#line 30 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 8
'import', 3,
sub
-#line 27 "pidl/idl.yp"
+#line 35 "./../pidl/idl.yp"
{{
- "TYPE" => "IMPORT",
- "PATHS" => $_[2],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE}
- }}
+ "TYPE" => "IMPORT",
+ "PATHS" => $_[2],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 9
'include', 3,
sub
-#line 34 "pidl/idl.yp"
-{{
- "TYPE" => "INCLUDE",
- "PATHS" => $_[2],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE}
- }}
+#line 45 "./../pidl/idl.yp"
+{{
+ "TYPE" => "INCLUDE",
+ "PATHS" => $_[2],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 10
'importlib', 3,
sub
-#line 41 "pidl/idl.yp"
-{{
- "TYPE" => "IMPORTLIB",
- "PATHS" => $_[2],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE}
- }}
+#line 55 "./../pidl/idl.yp"
+{{
+ "TYPE" => "IMPORTLIB",
+ "PATHS" => $_[2],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 11
'commalist', 1,
sub
-#line 50 "pidl/idl.yp"
+#line 64 "./../pidl/idl.yp"
{ [ $_[1] ] }
],
[#Rule 12
'commalist', 3,
sub
-#line 51 "pidl/idl.yp"
+#line 66 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
[#Rule 13
'coclass', 7,
sub
-#line 55 "pidl/idl.yp"
+#line 71 "./../pidl/idl.yp"
{{
- "TYPE" => "COCLASS",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "DATA" => $_[5],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "COCLASS",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "DATA" => $_[5],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 14
'interface_names', 0, undef
@@ -1807,22 +1862,22 @@ sub
[#Rule 15
'interface_names', 4,
sub
-#line 67 "pidl/idl.yp"
+#line 84 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 16
'interface', 8,
sub
-#line 71 "pidl/idl.yp"
+#line 89 "./../pidl/idl.yp"
{{
- "TYPE" => "INTERFACE",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "BASE" => $_[4],
- "DATA" => $_[6],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "INTERFACE",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "BASE" => $_[4],
+ "DATA" => $_[6],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 17
'base_interface', 0, undef
@@ -1830,30 +1885,30 @@ sub
[#Rule 18
'base_interface', 2,
sub
-#line 84 "pidl/idl.yp"
+#line 103 "./../pidl/idl.yp"
{ $_[2] }
],
[#Rule 19
'cpp_quote', 4,
sub
-#line 89 "pidl/idl.yp"
+#line 109 "./../pidl/idl.yp"
{{
"TYPE" => "CPP_QUOTE",
+ "DATA" => $_[3],
"FILE" => $_[0]->YYData->{FILE},
"LINE" => $_[0]->YYData->{LINE},
- "DATA" => $_[3]
}}
],
[#Rule 20
'definitions', 1,
sub
-#line 98 "pidl/idl.yp"
+#line 118 "./../pidl/idl.yp"
{ [ $_[1] ] }
],
[#Rule 21
'definitions', 2,
sub
-#line 99 "pidl/idl.yp"
+#line 120 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
[#Rule 22
@@ -1871,36 +1926,36 @@ sub
[#Rule 26
'const', 7,
sub
-#line 107 "pidl/idl.yp"
+#line 135 "./../pidl/idl.yp"
{{
- "TYPE" => "CONST",
- "DTYPE" => $_[2],
- "POINTERS" => $_[3],
- "NAME" => $_[4],
- "VALUE" => $_[6],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "CONST",
+ "DTYPE" => $_[2],
+ "POINTERS" => $_[3],
+ "NAME" => $_[4],
+ "VALUE" => $_[6],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 27
'const', 8,
sub
-#line 117 "pidl/idl.yp"
+#line 146 "./../pidl/idl.yp"
{{
- "TYPE" => "CONST",
- "DTYPE" => $_[2],
- "POINTERS" => $_[3],
- "NAME" => $_[4],
- "ARRAY_LEN" => $_[5],
- "VALUE" => $_[7],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "TYPE" => "CONST",
+ "DTYPE" => $_[2],
+ "POINTERS" => $_[3],
+ "NAME" => $_[4],
+ "ARRAY_LEN" => $_[5],
+ "VALUE" => $_[7],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
[#Rule 28
'function', 7,
sub
-#line 131 "pidl/idl.yp"
+#line 160 "./../pidl/idl.yp"
{{
"TYPE" => "FUNCTION",
"NAME" => $_[3],
@@ -1909,20 +1964,20 @@ sub
"ELEMENTS" => $_[5],
"FILE" => $_[0]->YYData->{FILE},
"LINE" => $_[0]->YYData->{LINE},
- }}
+ }}
],
[#Rule 29
'typedef', 6,
sub
-#line 143 "pidl/idl.yp"
+#line 173 "./../pidl/idl.yp"
{{
- "TYPE" => "TYPEDEF",
- "PROPERTIES" => $_[1],
- "NAME" => $_[4],
- "DATA" => $_[3],
- "ARRAY_LEN" => $_[5],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
+ "TYPE" => "TYPEDEF",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[4],
+ "DATA" => $_[3],
+ "ARRAY_LEN" => $_[5],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
}}
],
[#Rule 30
@@ -1938,450 +1993,480 @@ sub
'usertype', 1, undef
],
[#Rule 34
+ 'usertype', 1, undef
+ ],
+ [#Rule 35
'typedecl', 2,
sub
-#line 156 "pidl/idl.yp"
+#line 197 "./../pidl/idl.yp"
{ $_[1] }
],
- [#Rule 35
- 'sign', 1, undef
- ],
[#Rule 36
'sign', 1, undef
],
[#Rule 37
+ 'sign', 1, undef
+ ],
+ [#Rule 38
'existingtype', 2,
sub
-#line 161 "pidl/idl.yp"
+#line 207 "./../pidl/idl.yp"
{ ($_[1]?$_[1]:"signed") ." $_[2]" }
],
- [#Rule 38
- 'existingtype', 1, undef
- ],
[#Rule 39
- 'type', 1, undef
+ 'existingtype', 1, undef
],
[#Rule 40
'type', 1, undef
],
[#Rule 41
+ 'type', 1, undef
+ ],
+ [#Rule 42
'type', 1,
sub
-#line 165 "pidl/idl.yp"
+#line 217 "./../pidl/idl.yp"
{ "void" }
],
- [#Rule 42
+ [#Rule 43
'enum_body', 3,
sub
-#line 167 "pidl/idl.yp"
+#line 221 "./../pidl/idl.yp"
{ $_[2] }
],
- [#Rule 43
+ [#Rule 44
'opt_enum_body', 0, undef
],
- [#Rule 44
+ [#Rule 45
'opt_enum_body', 1, undef
],
- [#Rule 45
+ [#Rule 46
'enum', 4,
sub
-#line 170 "pidl/idl.yp"
+#line 232 "./../pidl/idl.yp"
{{
- "TYPE" => "ENUM",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4]
- }}
+ "TYPE" => "ENUM",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
- [#Rule 46
+ [#Rule 47
'enum_elements', 1,
sub
-#line 179 "pidl/idl.yp"
+#line 243 "./../pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 47
+ [#Rule 48
'enum_elements', 3,
sub
-#line 180 "pidl/idl.yp"
+#line 245 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 48
+ [#Rule 49
'enum_element', 1, undef
],
- [#Rule 49
+ [#Rule 50
'enum_element', 3,
sub
-#line 184 "pidl/idl.yp"
+#line 251 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 50
+ [#Rule 51
'bitmap_body', 3,
sub
-#line 187 "pidl/idl.yp"
+#line 255 "./../pidl/idl.yp"
{ $_[2] }
],
- [#Rule 51
+ [#Rule 52
'opt_bitmap_body', 0, undef
],
- [#Rule 52
+ [#Rule 53
'opt_bitmap_body', 1, undef
],
- [#Rule 53
+ [#Rule 54
'bitmap', 4,
sub
-#line 190 "pidl/idl.yp"
+#line 266 "./../pidl/idl.yp"
{{
- "TYPE" => "BITMAP",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4]
- }}
+ "TYPE" => "BITMAP",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
- [#Rule 54
+ [#Rule 55
'bitmap_elements', 1,
sub
-#line 199 "pidl/idl.yp"
+#line 277 "./../pidl/idl.yp"
{ [ $_[1] ] }
],
- [#Rule 55
+ [#Rule 56
'bitmap_elements', 3,
sub
-#line 200 "pidl/idl.yp"
+#line 279 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[3]); $_[1] }
],
- [#Rule 56
+ [#Rule 57
'opt_bitmap_elements', 0, undef
],
- [#Rule 57
+ [#Rule 58
'opt_bitmap_elements', 1, undef
],
- [#Rule 58
+ [#Rule 59
'bitmap_element', 3,
sub
-#line 205 "pidl/idl.yp"
+#line 289 "./../pidl/idl.yp"
{ "$_[1] ( $_[3] )" }
],
- [#Rule 59
+ [#Rule 60
'struct_body', 3,
sub
-#line 208 "pidl/idl.yp"
+#line 293 "./../pidl/idl.yp"
{ $_[2] }
],
- [#Rule 60
+ [#Rule 61
'opt_struct_body', 0, undef
],
- [#Rule 61
+ [#Rule 62
'opt_struct_body', 1, undef
],
- [#Rule 62
+ [#Rule 63
'struct', 4,
sub
-#line 212 "pidl/idl.yp"
+#line 304 "./../pidl/idl.yp"
{{
- "TYPE" => "STRUCT",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4]
- }}
+ "TYPE" => "STRUCT",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
- [#Rule 63
+ [#Rule 64
'empty_element', 2,
sub
-#line 221 "pidl/idl.yp"
+#line 316 "./../pidl/idl.yp"
{{
- "NAME" => "",
- "TYPE" => "EMPTY",
- "PROPERTIES" => $_[1],
- "POINTERS" => 0,
- "ARRAY_LEN" => [],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "NAME" => "",
+ "TYPE" => "EMPTY",
+ "PROPERTIES" => $_[1],
+ "POINTERS" => 0,
+ "ARRAY_LEN" => [],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
- [#Rule 64
+ [#Rule 65
'base_or_empty', 2, undef
],
- [#Rule 65
+ [#Rule 66
'base_or_empty', 1, undef
],
- [#Rule 66
+ [#Rule 67
'optional_base_element', 2,
sub
-#line 235 "pidl/idl.yp"
+#line 333 "./../pidl/idl.yp"
{ $_[2]->{PROPERTIES} = FlattenHash([$_[1],$_[2]->{PROPERTIES}]); $_[2] }
],
- [#Rule 67
+ [#Rule 68
'union_elements', 0, undef
],
- [#Rule 68
+ [#Rule 69
'union_elements', 2,
sub
-#line 240 "pidl/idl.yp"
+#line 339 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
- [#Rule 69
+ [#Rule 70
'union_body', 3,
sub
-#line 243 "pidl/idl.yp"
+#line 343 "./../pidl/idl.yp"
{ $_[2] }
],
- [#Rule 70
+ [#Rule 71
'opt_union_body', 0, undef
],
- [#Rule 71
+ [#Rule 72
'opt_union_body', 1, undef
],
- [#Rule 72
+ [#Rule 73
'union', 4,
sub
-#line 247 "pidl/idl.yp"
+#line 354 "./../pidl/idl.yp"
{{
- "TYPE" => "UNION",
- "PROPERTIES" => $_[1],
- "NAME" => $_[3],
- "ELEMENTS" => $_[4]
- }}
+ "TYPE" => "UNION",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[3],
+ "ELEMENTS" => $_[4],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
- [#Rule 73
+ [#Rule 74
'base_element', 5,
sub
-#line 256 "pidl/idl.yp"
+#line 366 "./../pidl/idl.yp"
{{
- "NAME" => $_[4],
- "TYPE" => $_[2],
- "PROPERTIES" => $_[1],
- "POINTERS" => $_[3],
- "ARRAY_LEN" => $_[5],
- "FILE" => $_[0]->YYData->{FILE},
- "LINE" => $_[0]->YYData->{LINE},
- }}
+ "NAME" => $_[4],
+ "TYPE" => $_[2],
+ "PROPERTIES" => $_[1],
+ "POINTERS" => $_[3],
+ "ARRAY_LEN" => $_[5],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
],
- [#Rule 74
+ [#Rule 75
'pointers', 0,
sub
-#line 270 "pidl/idl.yp"
+#line 379 "./../pidl/idl.yp"
{ 0 }
],
- [#Rule 75
+ [#Rule 76
'pointers', 2,
sub
-#line 271 "pidl/idl.yp"
+#line 381 "./../pidl/idl.yp"
{ $_[1]+1 }
],
- [#Rule 76
+ [#Rule 77
+ 'pipe', 3,
+sub
+#line 386 "./../pidl/idl.yp"
+{{
+ "TYPE" => "PIPE",
+ "PROPERTIES" => $_[1],
+ "NAME" => $_[4],
+ "DATA" => $_[3],
+ "FILE" => $_[0]->YYData->{FILE},
+ "LINE" => $_[0]->YYData->{LINE},
+ }}
+ ],
+ [#Rule 78
'element_list1', 0,
sub
-#line 275 "pidl/idl.yp"
+#line 398 "./../pidl/idl.yp"
{ [] }
],
- [#Rule 77
+ [#Rule 79
'element_list1', 3,
sub
-#line 276 "pidl/idl.yp"
+#line 400 "./../pidl/idl.yp"
{ push(@{$_[1]}, $_[2]); $_[1] }
],
- [#Rule 78
+ [#Rule 80
+ 'optional_const', 0, undef
+ ],
+ [#Rule 81
+ 'optional_const', 1, undef
+ ],
+ [#Rule 82
'element_list2', 0, undef
],
- [#Rule 79
+ [#Rule 83
'element_list2', 1, undef
],
- [#Rule 80
- 'element_list2', 1,
+ [#Rule 84
+ 'element_list2', 2,
sub
-#line 282 "pidl/idl.yp"
-{ [ $_[1] ] }
+#line 414 "./../pidl/idl.yp"
+{ [ $_[2] ] }
],
- [#Rule 81
- 'element_list2', 3,
+ [#Rule 85
+ 'element_list2', 4,
sub
-#line 283 "pidl/idl.yp"
-{ push(@{$_[1]}, $_[3]); $_[1] }
+#line 416 "./../pidl/idl.yp"
+{ push(@{$_[1]}, $_[4]); $_[1] }
],
- [#Rule 82
+ [#Rule 86
'array_len', 0, undef
],
- [#Rule 83
+ [#Rule 87
'array_len', 3,
sub
-#line 288 "pidl/idl.yp"
+#line 422 "./../pidl/idl.yp"
{ push(@{$_[3]}, "*"); $_[3] }
],
- [#Rule 84
+ [#Rule 88
'array_len', 4,
sub
-#line 289 "pidl/idl.yp"
+#line 424 "./../pidl/idl.yp"
{ push(@{$_[4]}, "$_[2]"); $_[4] }
],
- [#Rule 85
+ [#Rule 89
'property_list', 0, undef
],
- [#Rule 86
+ [#Rule 90
'property_list', 4,
sub
-#line 295 "pidl/idl.yp"
+#line 430 "./../pidl/idl.yp"
{ FlattenHash([$_[1],$_[3]]); }
],
- [#Rule 87
+ [#Rule 91
'properties', 1,
sub
-#line 298 "pidl/idl.yp"
+#line 434 "./../pidl/idl.yp"
{ $_[1] }
],
- [#Rule 88
+ [#Rule 92
'properties', 3,
sub
-#line 299 "pidl/idl.yp"
+#line 436 "./../pidl/idl.yp"
{ FlattenHash([$_[1], $_[3]]); }
],
- [#Rule 89
+ [#Rule 93
'property', 1,
sub
-#line 302 "pidl/idl.yp"
+#line 440 "./../pidl/idl.yp"
{{ "$_[1]" => "1" }}
],
- [#Rule 90
+ [#Rule 94
'property', 4,
sub
-#line 303 "pidl/idl.yp"
+#line 442 "./../pidl/idl.yp"
{{ "$_[1]" => "$_[3]" }}
],
- [#Rule 91
+ [#Rule 95
'commalisttext', 1, undef
],
- [#Rule 92
+ [#Rule 96
'commalisttext', 3,
sub
-#line 308 "pidl/idl.yp"
+#line 448 "./../pidl/idl.yp"
{ "$_[1],$_[3]" }
],
- [#Rule 93
+ [#Rule 97
'anytext', 0,
sub
-#line 312 "pidl/idl.yp"
+#line 453 "./../pidl/idl.yp"
{ "" }
],
- [#Rule 94
+ [#Rule 98
'anytext', 1, undef
],
- [#Rule 95
+ [#Rule 99
'anytext', 1, undef
],
- [#Rule 96
+ [#Rule 100
'anytext', 1, undef
],
- [#Rule 97
+ [#Rule 101
'anytext', 3,
sub
-#line 314 "pidl/idl.yp"
+#line 461 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 98
+ [#Rule 102
'anytext', 3,
sub
-#line 315 "pidl/idl.yp"
+#line 463 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 99
+ [#Rule 103
'anytext', 3,
sub
-#line 316 "pidl/idl.yp"
+#line 465 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 100
+ [#Rule 104
'anytext', 3,
sub
-#line 317 "pidl/idl.yp"
+#line 467 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 101
+ [#Rule 105
'anytext', 3,
sub
-#line 318 "pidl/idl.yp"
+#line 469 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 102
+ [#Rule 106
'anytext', 3,
sub
-#line 319 "pidl/idl.yp"
+#line 471 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 103
+ [#Rule 107
'anytext', 3,
sub
-#line 320 "pidl/idl.yp"
+#line 473 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 104
+ [#Rule 108
'anytext', 3,
sub
-#line 321 "pidl/idl.yp"
+#line 475 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 105
+ [#Rule 109
'anytext', 3,
sub
-#line 322 "pidl/idl.yp"
+#line 477 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 106
+ [#Rule 110
'anytext', 3,
sub
-#line 323 "pidl/idl.yp"
+#line 479 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 107
+ [#Rule 111
'anytext', 3,
sub
-#line 324 "pidl/idl.yp"
+#line 481 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 108
+ [#Rule 112
'anytext', 3,
sub
-#line 325 "pidl/idl.yp"
+#line 483 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 109
+ [#Rule 113
'anytext', 3,
sub
-#line 326 "pidl/idl.yp"
+#line 485 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]" }
],
- [#Rule 110
+ [#Rule 114
'anytext', 5,
sub
-#line 327 "pidl/idl.yp"
+#line 487 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]$_[4]$_[5]" }
],
- [#Rule 111
+ [#Rule 115
'anytext', 5,
sub
-#line 328 "pidl/idl.yp"
+#line 489 "./../pidl/idl.yp"
{ "$_[1]$_[2]$_[3]$_[4]$_[5]" }
],
- [#Rule 112
+ [#Rule 116
'identifier', 1, undef
],
- [#Rule 113
- 'optional_identifier', 1, undef
- ],
- [#Rule 114
+ [#Rule 117
'optional_identifier', 0, undef
],
- [#Rule 115
+ [#Rule 118
+ 'optional_identifier', 1, undef
+ ],
+ [#Rule 119
'constant', 1, undef
],
- [#Rule 116
+ [#Rule 120
'text', 1,
sub
-#line 342 "pidl/idl.yp"
+#line 507 "./../pidl/idl.yp"
{ "\"$_[1]\"" }
],
- [#Rule 117
+ [#Rule 121
'optional_semicolon', 0, undef
],
- [#Rule 118
+ [#Rule 122
'optional_semicolon', 1, undef
]
],
@@ -2389,58 +2474,63 @@ sub
bless($self,$class);
}
-#line 353 "pidl/idl.yp"
+#line 519 "./../pidl/idl.yp"
use Parse::Pidl qw(error);
#####################################################################
# flatten an array of hashes into a single hash
-sub FlattenHash($)
-{
- my $a = shift;
- my %b;
- for my $d (@{$a}) {
- for my $k (keys %{$d}) {
- $b{$k} = $d->{$k};
+sub FlattenHash($)
+{
+ my $a = shift;
+ my %b;
+ for my $d (@{$a}) {
+ for my $k (keys %{$d}) {
+ $b{$k} = $d->{$k};
+ }
}
- }
- return \%b;
+ return \%b;
}
-
-
#####################################################################
# traverse a perl data structure removing any empty arrays or
# hashes and any hash elements that map to undef
sub CleanData($)
{
- sub CleanData($);
- my($v) = shift;
+ sub CleanData($);
+ my($v) = shift;
+
return undef if (not defined($v));
- if (ref($v) eq "ARRAY") {
- foreach my $i (0 .. $#{$v}) {
- CleanData($v->[$i]);
- }
- # this removes any undefined elements from the array
- @{$v} = grep { defined $_ } @{$v};
- } elsif (ref($v) eq "HASH") {
- foreach my $x (keys %{$v}) {
- CleanData($v->{$x});
- if (!defined $v->{$x}) { delete($v->{$x}); next; }
+
+ if (ref($v) eq "ARRAY") {
+ foreach my $i (0 .. $#{$v}) {
+ CleanData($v->[$i]);
+ }
+ # this removes any undefined elements from the array
+ @{$v} = grep { defined $_ } @{$v};
+ } elsif (ref($v) eq "HASH") {
+ foreach my $x (keys %{$v}) {
+ CleanData($v->{$x});
+ if (!defined $v->{$x}) {
+ delete($v->{$x});
+ next;
+ }
+ }
}
- }
+
return $v;
}
sub _Error {
- if (exists $_[0]->YYData->{ERRMSG}) {
+ if (exists $_[0]->YYData->{ERRMSG}) {
error($_[0]->YYData, $_[0]->YYData->{ERRMSG});
delete $_[0]->YYData->{ERRMSG};
return;
}
+
my $last_token = $_[0]->YYData->{LAST_TOKEN};
-
+
error($_[0]->YYData, "Syntax error near '$last_token'");
}
@@ -2448,7 +2538,7 @@ sub _Lexer($)
{
my($parser)=shift;
- $parser->YYData->{INPUT} or return('',undef);
+ $parser->YYData->{INPUT} or return('',undef);
again:
$parser->YYData->{INPUT} =~ s/^[ \t]*//;
@@ -2475,18 +2565,19 @@ again:
}
if (s/^\"(.*?)\"//) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('TEXT',$1);
+ return('TEXT',$1);
}
if (s/^(\d+)(\W|$)/$2/) {
$parser->YYData->{LAST_TOKEN} = $1;
- return('CONSTANT',$1);
+ return('CONSTANT',$1);
}
if (s/^([\w_]+)//) {
$parser->YYData->{LAST_TOKEN} = $1;
- if ($1 =~
- /^(coclass|interface|const|typedef|union|cpp_quote
- |struct|enum|bitmap|void|unsigned|signed|import|include
- |importlib)$/x) {
+ if ($1 =~
+ /^(coclass|interface|import|importlib
+ |include|cpp_quote|typedef
+ |union|struct|enum|bitmap|pipe
+ |void|const|unsigned|signed)$/x) {
return $1;
}
return('IDENTIFIER',$1);
@@ -2504,10 +2595,10 @@ sub parse_string
my $self = new Parse::Pidl::IDL;
- $self->YYData->{FILE} = $filename;
- $self->YYData->{INPUT} = $data;
- $self->YYData->{LINE} = 0;
- $self->YYData->{LAST_TOKEN} = "NONE";
+ $self->YYData->{FILE} = $filename;
+ $self->YYData->{INPUT} = $data;
+ $self->YYData->{LINE} = 0;
+ $self->YYData->{LAST_TOKEN} = "NONE";
my $idl = $self->YYParse( yylex => \&_Lexer, yyerror => \&_Error );
diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm
index 8440f0183d..a36f638092 100644
--- a/pidl/lib/Parse/Pidl/NDR.pm
+++ b/pidl/lib/Parse/Pidl/NDR.pm
@@ -928,7 +928,7 @@ my %property_list = (
"bitmap64bit" => ["BITMAP"],
# array
- "range" => ["ELEMENT"],
+ "range" => ["ELEMENT", "PIPE"],
"size_is" => ["ELEMENT"],
"string" => ["ELEMENT"],
"noheader" => ["ELEMENT"],
@@ -1120,6 +1120,18 @@ sub ValidUnion($)
}
#####################################################################
+# validate a pipe
+sub ValidPipe($)
+{
+ my ($pipe) = @_;
+ my $data = $pipe->{DATA};
+
+ ValidProperties($pipe, "PIPE");
+
+ fatal($pipe, $pipe->{NAME} . ": 'pipe' is not yet supported by pidl");
+}
+
+#####################################################################
# parse a typedef
sub ValidTypedef($)
{
@@ -1164,7 +1176,8 @@ sub ValidType($)
STRUCT => \&ValidStruct,
UNION => \&ValidUnion,
ENUM => \&ValidEnum,
- BITMAP => \&ValidBitmap
+ BITMAP => \&ValidBitmap,
+ PIPE => \&ValidPipe
}->{$t->{TYPE}}->($t);
}
@@ -1206,7 +1219,8 @@ sub ValidInterface($)
$d->{TYPE} eq "STRUCT" or
$d->{TYPE} eq "UNION" or
$d->{TYPE} eq "ENUM" or
- $d->{TYPE} eq "BITMAP") && ValidType($d);
+ $d->{TYPE} eq "BITMAP" or
+ $d->{TYPE} eq "PIPE") && ValidType($d);
}
}
diff --git a/source3/Makefile.in b/source3/Makefile.in
index ecfbcd0b9c..650e2081c7 100644
--- a/source3/Makefile.in
+++ b/source3/Makefile.in
@@ -1138,6 +1138,11 @@ WINBINDD_OBJ1 = \
winbindd/winbindd_ads.o \
winbindd/winbindd_passdb.o \
winbindd/winbindd_dual.o \
+ winbindd/winbindd_dual_ndr.o \
+ winbindd/winbindd_dual_srv.o \
+ librpc/gen_ndr/cli_wbint.o \
+ librpc/gen_ndr/srv_wbint.o \
+ librpc/gen_ndr/ndr_wbint.o \
winbindd/winbindd_async.o \
winbindd/winbindd_creds.o \
winbindd/winbindd_cred_cache.o \
@@ -1147,6 +1152,29 @@ WINBINDD_OBJ1 = \
winbindd/winbindd_locator.o \
winbindd/winbindd_ndr.o \
winbindd/wb_ping.o \
+ winbindd/wb_lookupsid.o \
+ winbindd/wb_lookupname.o \
+ winbindd/wb_sid2uid.o \
+ winbindd/wb_sid2gid.o \
+ winbindd/wb_uid2sid.o \
+ winbindd/wb_gid2sid.o \
+ winbindd/wb_queryuser.o \
+ winbindd/wb_lookupuseraliases.o \
+ winbindd/wb_lookupusergroups.o \
+ winbindd/wb_getpwsid.o \
+ winbindd/wb_gettoken.o \
+ winbindd/winbindd_lookupsid.o \
+ winbindd/winbindd_lookupname.o \
+ winbindd/winbindd_sid_to_uid.o \
+ winbindd/winbindd_sid_to_gid.o \
+ winbindd/winbindd_uid_to_sid.o \
+ winbindd/winbindd_gid_to_sid.o \
+ winbindd/winbindd_getpwsid.o \
+ winbindd/winbindd_getpwnam.o \
+ winbindd/winbindd_getpwuid.o \
+ winbindd/winbindd_getsidaliases.o \
+ winbindd/winbindd_getuserdomgroups.o \
+ winbindd/winbindd_getgroups.o \
auth/token_util.o \
../nsswitch/libwbclient/wb_reqtrans.o \
smbd/connection.o
@@ -1322,7 +1350,8 @@ samba3-idl::
srcdir="$(srcdir)" ../librpc/build_idl.sh ../librpc/idl/*.idl
@PIDL_OUTPUTDIR="librpc/gen_ndr" PIDL_ARGS="$(PIDL_ARGS)" CPP="$(CPP)" PIDL="../pidl/pidl" \
srcdir="$(srcdir)" $(srcdir)/script/build_idl.sh \
- librpc/idl/messaging.idl librpc/idl/libnetapi.idl librpc/idl/notify.idl
+ librpc/idl/messaging.idl librpc/idl/libnetapi.idl librpc/idl/notify.idl \
+ librpc/idl/wbint.idl
#####################################################################
diff --git a/source3/include/includes.h b/source3/include/includes.h
index 8fb240f26c..2d82e6e57e 100644
--- a/source3/include/includes.h
+++ b/source3/include/includes.h
@@ -207,7 +207,11 @@ typedef int ber_int_t;
#endif
#ifndef ENOATTR
+#if defined(ENODATA)
#define ENOATTR ENODATA
+#else
+#define ENOATTR ENOENT
+#endif
#endif
/* mutually exclusive (SuSE 8.2) */
@@ -1112,4 +1116,7 @@ void in6_addr_to_sockaddr_storage(struct sockaddr_storage *ss,
struct in6_addr ip);
#endif
+/* samba3 doesn't use uwrap yet */
+#define uwrap_enabled() 0
+
#endif /* _INCLUDES_H */
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 00cfd6129e..e8bfe8efae 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -6144,9 +6144,7 @@ connection_struct *conn_new(struct smbd_server_connection *sconn);
bool conn_close_all(struct smbd_server_connection *sconn);
bool conn_idle_all(struct smbd_server_connection *sconn, time_t t);
void conn_clear_vuid_caches(struct smbd_server_connection *sconn, uint16 vuid);
-void conn_free_internal(connection_struct *conn);
-void conn_free(struct smbd_server_connection *sconn,
- connection_struct *conn);
+void conn_free(connection_struct *conn);
void msg_force_tdis(struct messaging_context *msg,
void *private_data,
uint32_t msg_type,
@@ -6183,14 +6181,15 @@ bool make_dir_struct(TALLOC_CTX *ctx,
uint32 mode,
time_t date,
bool uc);
-void init_dptrs(void);
-char *dptr_path(int key);
-char *dptr_wcard(int key);
-uint16 dptr_attr(int key);
-void dptr_close(int *key);
+bool init_dptrs(struct smbd_server_connection *sconn);
+char *dptr_path(struct smbd_server_connection *sconn, int key);
+char *dptr_wcard(struct smbd_server_connection *sconn, int key);
+uint16 dptr_attr(struct smbd_server_connection *sconn, int key);
+void dptr_close(struct smbd_server_connection *sconn, int *key);
void dptr_closecnum(connection_struct *conn);
void dptr_idlecnum(connection_struct *conn);
-void dptr_closepath(char *path,uint16 spid);
+void dptr_closepath(struct smbd_server_connection *sconn,
+ char *path,uint16 spid);
NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle, bool expect_close,uint16 spid,
const char *wcard, bool wcard_has_wild, uint32 attr, struct dptr_struct **dptr_ret);
int dptr_CloseDir(struct dptr_struct *dptr);
@@ -6205,12 +6204,15 @@ char *dptr_ReadDirName(TALLOC_CTX *ctx,
bool dptr_SearchDir(struct dptr_struct *dptr, const char *name, long *poffset, SMB_STRUCT_STAT *pst);
void dptr_DirCacheAdd(struct dptr_struct *dptr, const char *name, long offset);
void dptr_init_search_op(struct dptr_struct *dptr);
-bool dptr_fill(char *buf1,unsigned int key);
-struct dptr_struct *dptr_fetch(char *buf,int *num);
-struct dptr_struct *dptr_fetch_lanman2(int dptr_num);
+bool dptr_fill(struct smbd_server_connection *sconn,
+ char *buf1,unsigned int key);
+struct dptr_struct *dptr_fetch(struct smbd_server_connection *sconn,
+ char *buf,int *num);
+struct dptr_struct *dptr_fetch_lanman2(struct smbd_server_connection *sconn,
+ int dptr_num);
bool dir_check_ftype(connection_struct *conn, uint32 mode, uint32 dirtype);
bool get_dir_entry(TALLOC_CTX *ctx,
- connection_struct *conn,
+ struct dptr_struct *dirptr,
const char *mask,
uint32 dirtype,
char **pp_fname_out,
@@ -6745,7 +6747,8 @@ int chmod_acl(connection_struct *conn, const char *name, mode_t mode);
int inherit_access_posix_acl(connection_struct *conn, const char *inherit_from_dir,
const char *name, mode_t mode);
int fchmod_acl(files_struct *fsp, mode_t mode);
-bool set_unix_posix_default_acl(connection_struct *conn, const char *fname, SMB_STRUCT_STAT *psbuf,
+bool set_unix_posix_default_acl(connection_struct *conn, const char *fname,
+ const SMB_STRUCT_STAT *psbuf,
uint16 num_def_acls, const char *pdata);
bool set_unix_posix_acl(connection_struct *conn, files_struct *fsp, const char *fname, uint16 num_acls, const char *pdata);
SEC_DESC *get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname);
@@ -6983,8 +6986,7 @@ connection_struct *make_connection(struct smbd_server_connection *sconn,
const char *service_in, DATA_BLOB password,
const char *pdev, uint16 vuid,
NTSTATUS *status);
-void close_cnum(struct smbd_server_connection *sconn,
- connection_struct *conn, uint16 vuid);
+void close_cnum(connection_struct *conn, uint16 vuid);
/* The following definitions come from smbd/session.c */
diff --git a/source3/include/smb.h b/source3/include/smb.h
index e2d670fa04..b53735d36d 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -546,16 +546,15 @@ struct share_iterator {
typedef struct connection_struct {
struct connection_struct *next, *prev;
+ struct smbd_server_connection *sconn; /* can be NULL */
unsigned cnum; /* an index passed over the wire */
struct share_params *params;
bool force_user;
struct vuid_cache vuid_cache;
- struct dptr_struct *dirptr;
bool printer;
bool ipc;
bool read_only; /* Attributes for the current user of the share. */
bool admin_user; /* Attributes for the current user of the share. */
- char *dirpath;
char *connectpath;
char *origpath;
diff --git a/source3/lib/bitmap.c b/source3/lib/bitmap.c
index 5e623f474a..f753ffd534 100644
--- a/source3/lib/bitmap.c
+++ b/source3/lib/bitmap.c
@@ -32,7 +32,7 @@ struct bitmap *bitmap_allocate(int n)
bm = SMB_MALLOC_P(struct bitmap);
if (!bm) return NULL;
-
+
bm->n = n;
bm->b = SMB_MALLOC_ARRAY(uint32, (n+31)/32);
if (!bm->b) {
@@ -70,7 +70,7 @@ struct bitmap *bitmap_talloc(TALLOC_CTX *mem_ctx, int n)
bm = TALLOC_P(mem_ctx, struct bitmap);
if (!bm) return NULL;
-
+
bm->n = n;
bm->b = TALLOC_ARRAY(mem_ctx, uint32, (n+31)/32);
if (!bm->b) {
diff --git a/source3/lib/conn_tdb.c b/source3/lib/conn_tdb.c
index 22d85c873d..fc35361cac 100644
--- a/source3/lib/conn_tdb.c
+++ b/source3/lib/conn_tdb.c
@@ -2,17 +2,17 @@
Unix SMB/CIFS implementation.
Low-level connections.tdb access functions
Copyright (C) Volker Lendecke 2007
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 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/>.
*/
diff --git a/source3/lib/ctdbd_conn.c b/source3/lib/ctdbd_conn.c
index 449e049ffa..0af420412b 100644
--- a/source3/lib/ctdbd_conn.c
+++ b/source3/lib/ctdbd_conn.c
@@ -3,17 +3,17 @@
Samba internal messaging functions
Copyright (C) 2007 by Volker Lendecke
Copyright (C) 2007 by Andrew Tridgell
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 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/>.
*/
@@ -36,7 +36,7 @@ struct ctdbd_connection {
uint64 rand_srvid;
struct packet_context *pkt;
struct fd_event *fde;
-
+
void (*release_ip_handler)(const char *ip_addr, void *private_data);
void *release_ip_priv;
};
@@ -339,7 +339,7 @@ static NTSTATUS ctdb_read_req(struct ctdbd_connection *conn, uint32 reqid,
(long long unsigned)msg->srvid));
goto next_pkt;
}
-
+
if ((conn->release_ip_handler != NULL)
&& (msg->srvid == CTDB_SRVID_RELEASE_IP)) {
/* must be dispatched immediately */
@@ -375,7 +375,7 @@ static NTSTATUS ctdb_read_req(struct ctdbd_connection *conn, uint32 reqid,
TALLOC_FREE(hdr);
msg_state->msg_ctx = conn->msg_ctx;
-
+
/*
* We're waiting for a call reply, but an async message has
* crossed. Defer dispatching to the toplevel event loop.
@@ -391,7 +391,7 @@ static NTSTATUS ctdb_read_req(struct ctdbd_connection *conn, uint32 reqid,
TALLOC_FREE(hdr);
goto next_pkt;
}
-
+
goto next_pkt;
}
@@ -541,7 +541,6 @@ static NTSTATUS ctdb_handle_message(uint8_t *buf, size_t length,
TALLOC_FREE(buf);
return NT_STATUS_OK;
-
}
/* only messages to our pid or the broadcast are valid here */
@@ -895,7 +894,7 @@ NTSTATUS ctdbd_migrate(struct ctdbd_connection *conn, uint32 db_id,
NTSTATUS status;
ZERO_STRUCT(req);
-
+
req.hdr.length = offsetof(struct ctdb_req_call, data) + key.dsize;
req.hdr.ctdb_magic = CTDB_MAGIC;
req.hdr.ctdb_version = CTDB_VERSION;
@@ -957,7 +956,7 @@ NTSTATUS ctdbd_fetch(struct ctdbd_connection *conn, uint32 db_id,
NTSTATUS status;
ZERO_STRUCT(req);
-
+
req.hdr.length = offsetof(struct ctdb_req_call, data) + key.dsize;
req.hdr.ctdb_magic = CTDB_MAGIC;
req.hdr.ctdb_version = CTDB_VERSION;
diff --git a/source3/lib/smbldap.c b/source3/lib/smbldap.c
index 4833b96c5f..c96801a72b 100644
--- a/source3/lib/smbldap.c
+++ b/source3/lib/smbldap.c
@@ -1449,7 +1449,7 @@ int smbldap_search_paged(struct smbldap_state *ldap_state,
goto done;
}
- DEBUG(3,("smbldap_search_paged: search was successfull\n"));
+ DEBUG(3,("smbldap_search_paged: search was successful\n"));
rc = ldap_parse_result(ldap_state->ldap_struct, *res, NULL, NULL,
NULL, NULL, &rcontrols, 0);
diff --git a/source3/lib/util_tdb.c b/source3/lib/util_tdb.c
index 5b3d94dabe..1d210a1e57 100644
--- a/source3/lib/util_tdb.c
+++ b/source3/lib/util_tdb.c
@@ -4,17 +4,17 @@
Copyright (C) Andrew Tridgell 1992-1998
Copyright (C) Rafal Szczesniak 2002
Copyright (C) Michael Adam 2007
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 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/>.
*/
@@ -91,7 +91,7 @@ int tdb_lock_bystring_with_timeout(TDB_CONTEXT *tdb, const char *keyval,
int timeout)
{
TDB_DATA key = string_term_tdb_data(keyval);
-
+
return tdb_chainlock_with_timeout(tdb, key, timeout);
}
@@ -102,7 +102,7 @@ int tdb_lock_bystring_with_timeout(TDB_CONTEXT *tdb, const char *keyval,
int tdb_read_lock_bystring_with_timeout(TDB_CONTEXT *tdb, const char *keyval, unsigned int timeout)
{
TDB_DATA key = string_term_tdb_data(keyval);
-
+
return tdb_chainlock_with_timeout_internal(tdb, key, timeout, F_RDLCK);
}
@@ -113,7 +113,7 @@ int tdb_trans_store_bystring(TDB_CONTEXT *tdb, const char *keystr,
TDB_DATA data, int flags)
{
TDB_DATA key = string_term_tdb_data(keystr);
-
+
return tdb_trans_store(tdb, key, data, flags);
}
@@ -202,7 +202,7 @@ static size_t tdb_pack_va(uint8 *buf, int bufsize, const char *fmt, va_list ap)
DEBUG(18,("tdb_pack_va(%s, %d) -> %d\n",
fmt0, bufsize0, (int)PTR_DIFF(buf, buf0)));
-
+
return PTR_DIFF(buf, buf0);
}
diff --git a/source3/lib/winbind_util.c b/source3/lib/winbind_util.c
index df095b9e91..0c904ac569 100644
--- a/source3/lib/winbind_util.c
+++ b/source3/lib/winbind_util.c
@@ -3,17 +3,17 @@
Winbind Utility functions
Copyright (C) Gerald (Jerry) Carter 2007
-
+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 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/>.
*/
@@ -113,7 +113,7 @@ bool winbind_lookup_sid(TALLOC_CTX *mem_ctx, const DOM_SID *sid,
wbcFreeMemory(domain_name);
wbcFreeMemory(account_name);
-
+
if ((domain && !*domain) || (name && !*name)) {
DEBUG(0,("winbind_lookup_sid: talloc() failed!\n"));
return false;
@@ -200,7 +200,7 @@ wbcErr wb_is_trusted_domain(const char *domain)
{
wbcErr result;
struct wbcDomainInfo *info = NULL;
-
+
result = wbcDomainInfo(domain, &info);
if (WBC_ERROR_IS_OK(result)) {
@@ -224,15 +224,15 @@ bool winbind_lookup_rids(TALLOC_CTX *mem_ctx,
struct wbcDomainSid dom_sid;
wbcErr ret;
int i;
-
+
memcpy(&dom_sid, domain_sid, sizeof(struct wbcDomainSid));
-
+
ret = wbcLookupRids(&dom_sid, num_rids, rids,
&dom_name, &namelist, &name_types);
if (ret != WBC_ERR_SUCCESS) {
return false;
}
-
+
*domain_name = talloc_strdup(mem_ctx, dom_name);
*names = TALLOC_ARRAY(mem_ctx, const char*, num_rids);
*types = TALLOC_ARRAY(mem_ctx, enum lsa_SidType, num_rids);
@@ -245,7 +245,7 @@ bool winbind_lookup_rids(TALLOC_CTX *mem_ctx,
wbcFreeMemory(CONST_DISCARD(char*, dom_name));
wbcFreeMemory(namelist);
wbcFreeMemory(name_types);
-
+
return true;
}
@@ -254,9 +254,9 @@ bool winbind_lookup_rids(TALLOC_CTX *mem_ctx,
bool winbind_allocate_uid(uid_t *uid)
{
wbcErr ret;
-
+
ret = wbcAllocateUid(uid);
-
+
return (ret == WBC_ERR_SUCCESS);
}
@@ -265,9 +265,9 @@ bool winbind_allocate_uid(uid_t *uid)
bool winbind_allocate_gid(gid_t *gid)
{
wbcErr ret;
-
+
ret = wbcAllocateGid(gid);
-
+
return (ret == WBC_ERR_SUCCESS);
}
diff --git a/source3/lib/wins_srv.c b/source3/lib/wins_srv.c
index b2c0bf8b87..6676f02e94 100644
--- a/source3/lib/wins_srv.c
+++ b/source3/lib/wins_srv.c
@@ -227,7 +227,7 @@ char **wins_srv_tags(void)
/* yes, this is O(n^2) but n is very small */
for (i=0;list[i];i++) {
struct tagged_ip t_ip;
-
+
parse_ip(&t_ip, list[i]);
/* see if we already have it */
@@ -313,7 +313,7 @@ struct in_addr wins_srv_ip_tag(const char *tag, struct in_addr src_ip)
return t_ip.ip;
}
}
-
+
/* they're all dead - try the first one until they revive */
for (i=0; list[i]; i++) {
parse_ip(&t_ip, list[i]);
diff --git a/source3/librpc/gen_ndr/cli_wbint.c b/source3/librpc/gen_ndr/cli_wbint.c
new file mode 100644
index 0000000000..de6b345a0e
--- /dev/null
+++ b/source3/librpc/gen_ndr/cli_wbint.c
@@ -0,0 +1,1647 @@
+/*
+ * Unix SMB/CIFS implementation.
+ * client auto-generated by pidl. DO NOT MODIFY!
+ */
+
+#include "includes.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct rpccli_wbint_Ping_state {
+ struct wbint_Ping orig;
+ struct wbint_Ping tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_Ping_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_Ping_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ uint32_t _in_data /* [in] */,
+ uint32_t *_out_data /* [out] [ref] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_Ping_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_Ping_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.in_data = _in_data;
+
+ /* Out parameters */
+ state->orig.out.out_data = _out_data;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Ping, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_Ping_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_PING,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_Ping_done, req);
+ return req;
+}
+
+static void rpccli_wbint_Ping_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_Ping_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Ping_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.out_data = *state->tmp.out.out_data;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Ping, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_Ping_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx)
+{
+ struct rpccli_wbint_Ping_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Ping_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_Ping(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ uint32_t in_data /* [in] */,
+ uint32_t *out_data /* [out] [ref] */)
+{
+ struct wbint_Ping r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.in_data = in_data;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Ping, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_PING,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Ping, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *out_data = *r.out.out_data;
+
+ /* Return result */
+ return NT_STATUS_OK;
+}
+
+struct rpccli_wbint_LookupSid_state {
+ struct wbint_LookupSid orig;
+ struct wbint_LookupSid tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_LookupSid_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_LookupSid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ struct dom_sid *_sid /* [in] [ref] */,
+ enum lsa_SidType *_type /* [out] [ref] */,
+ const char **_domain /* [out] [ref,charset(UTF8)] */,
+ const char **_name /* [out] [ref,charset(UTF8)] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_LookupSid_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_LookupSid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.sid = _sid;
+
+ /* Out parameters */
+ state->orig.out.type = _type;
+ state->orig.out.domain = _domain;
+ state->orig.out.name = _name;
+
+ /* Result */
+ ZERO_STRUCT(state->orig.out.result);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupSid, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_LookupSid_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_LOOKUPSID,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_LookupSid_done, req);
+ return req;
+}
+
+static void rpccli_wbint_LookupSid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_LookupSid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_LookupSid_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.type = *state->tmp.out.type;
+ *state->orig.out.domain = *state->tmp.out.domain;
+ *state->orig.out.name = *state->tmp.out.name;
+
+ /* Copy result */
+ state->orig.out.result = state->tmp.out.result;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupSid, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_LookupSid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result)
+{
+ struct rpccli_wbint_LookupSid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_LookupSid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ /* Return result */
+ *result = state->orig.out.result;
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_LookupSid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct dom_sid *sid /* [in] [ref] */,
+ enum lsa_SidType *type /* [out] [ref] */,
+ const char **domain /* [out] [ref,charset(UTF8)] */,
+ const char **name /* [out] [ref,charset(UTF8)] */)
+{
+ struct wbint_LookupSid r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.sid = sid;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupSid, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_LOOKUPSID,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupSid, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *type = *r.out.type;
+ *domain = *r.out.domain;
+ *name = *r.out.name;
+
+ /* Return result */
+ return r.out.result;
+}
+
+struct rpccli_wbint_LookupName_state {
+ struct wbint_LookupName orig;
+ struct wbint_LookupName tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_LookupName_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_LookupName_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_domain /* [in] [ref,charset(UTF8)] */,
+ const char *_name /* [in] [ref,charset(UTF8)] */,
+ uint32_t _flags /* [in] */,
+ enum lsa_SidType *_type /* [out] [ref] */,
+ struct dom_sid *_sid /* [out] [ref] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_LookupName_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_LookupName_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.domain = _domain;
+ state->orig.in.name = _name;
+ state->orig.in.flags = _flags;
+
+ /* Out parameters */
+ state->orig.out.type = _type;
+ state->orig.out.sid = _sid;
+
+ /* Result */
+ ZERO_STRUCT(state->orig.out.result);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupName, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_LookupName_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_LOOKUPNAME,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_LookupName_done, req);
+ return req;
+}
+
+static void rpccli_wbint_LookupName_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_LookupName_state *state = tevent_req_data(
+ req, struct rpccli_wbint_LookupName_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.type = *state->tmp.out.type;
+ *state->orig.out.sid = *state->tmp.out.sid;
+
+ /* Copy result */
+ state->orig.out.result = state->tmp.out.result;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupName, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_LookupName_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result)
+{
+ struct rpccli_wbint_LookupName_state *state = tevent_req_data(
+ req, struct rpccli_wbint_LookupName_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ /* Return result */
+ *result = state->orig.out.result;
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_LookupName(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *domain /* [in] [ref,charset(UTF8)] */,
+ const char *name /* [in] [ref,charset(UTF8)] */,
+ uint32_t flags /* [in] */,
+ enum lsa_SidType *type /* [out] [ref] */,
+ struct dom_sid *sid /* [out] [ref] */)
+{
+ struct wbint_LookupName r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.domain = domain;
+ r.in.name = name;
+ r.in.flags = flags;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupName, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_LOOKUPNAME,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupName, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *type = *r.out.type;
+ *sid = *r.out.sid;
+
+ /* Return result */
+ return r.out.result;
+}
+
+struct rpccli_wbint_Sid2Uid_state {
+ struct wbint_Sid2Uid orig;
+ struct wbint_Sid2Uid tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_Sid2Uid_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_Sid2Uid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_dom_name /* [in] [unique,charset(UTF8)] */,
+ struct dom_sid *_sid /* [in] [ref] */,
+ uint64_t *_uid /* [out] [ref] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_Sid2Uid_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_Sid2Uid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.dom_name = _dom_name;
+ state->orig.in.sid = _sid;
+
+ /* Out parameters */
+ state->orig.out.uid = _uid;
+
+ /* Result */
+ ZERO_STRUCT(state->orig.out.result);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Sid2Uid, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_Sid2Uid_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_SID2UID,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_Sid2Uid_done, req);
+ return req;
+}
+
+static void rpccli_wbint_Sid2Uid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_Sid2Uid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Sid2Uid_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.uid = *state->tmp.out.uid;
+
+ /* Copy result */
+ state->orig.out.result = state->tmp.out.result;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Sid2Uid, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_Sid2Uid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result)
+{
+ struct rpccli_wbint_Sid2Uid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Sid2Uid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ /* Return result */
+ *result = state->orig.out.result;
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_Sid2Uid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *dom_name /* [in] [unique,charset(UTF8)] */,
+ struct dom_sid *sid /* [in] [ref] */,
+ uint64_t *uid /* [out] [ref] */)
+{
+ struct wbint_Sid2Uid r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.dom_name = dom_name;
+ r.in.sid = sid;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Sid2Uid, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_SID2UID,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Sid2Uid, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *uid = *r.out.uid;
+
+ /* Return result */
+ return r.out.result;
+}
+
+struct rpccli_wbint_Sid2Gid_state {
+ struct wbint_Sid2Gid orig;
+ struct wbint_Sid2Gid tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_Sid2Gid_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_Sid2Gid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_dom_name /* [in] [unique,charset(UTF8)] */,
+ struct dom_sid *_sid /* [in] [ref] */,
+ uint64_t *_gid /* [out] [ref] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_Sid2Gid_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_Sid2Gid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.dom_name = _dom_name;
+ state->orig.in.sid = _sid;
+
+ /* Out parameters */
+ state->orig.out.gid = _gid;
+
+ /* Result */
+ ZERO_STRUCT(state->orig.out.result);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Sid2Gid, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_Sid2Gid_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_SID2GID,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_Sid2Gid_done, req);
+ return req;
+}
+
+static void rpccli_wbint_Sid2Gid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_Sid2Gid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Sid2Gid_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.gid = *state->tmp.out.gid;
+
+ /* Copy result */
+ state->orig.out.result = state->tmp.out.result;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Sid2Gid, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_Sid2Gid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result)
+{
+ struct rpccli_wbint_Sid2Gid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Sid2Gid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ /* Return result */
+ *result = state->orig.out.result;
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_Sid2Gid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *dom_name /* [in] [unique,charset(UTF8)] */,
+ struct dom_sid *sid /* [in] [ref] */,
+ uint64_t *gid /* [out] [ref] */)
+{
+ struct wbint_Sid2Gid r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.dom_name = dom_name;
+ r.in.sid = sid;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Sid2Gid, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_SID2GID,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Sid2Gid, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *gid = *r.out.gid;
+
+ /* Return result */
+ return r.out.result;
+}
+
+struct rpccli_wbint_Uid2Sid_state {
+ struct wbint_Uid2Sid orig;
+ struct wbint_Uid2Sid tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_Uid2Sid_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_Uid2Sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_dom_name /* [in] [unique,charset(UTF8)] */,
+ uint64_t _uid /* [in] */,
+ struct dom_sid *_sid /* [out] [ref] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_Uid2Sid_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_Uid2Sid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.dom_name = _dom_name;
+ state->orig.in.uid = _uid;
+
+ /* Out parameters */
+ state->orig.out.sid = _sid;
+
+ /* Result */
+ ZERO_STRUCT(state->orig.out.result);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Uid2Sid, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_Uid2Sid_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_UID2SID,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_Uid2Sid_done, req);
+ return req;
+}
+
+static void rpccli_wbint_Uid2Sid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_Uid2Sid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Uid2Sid_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.sid = *state->tmp.out.sid;
+
+ /* Copy result */
+ state->orig.out.result = state->tmp.out.result;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Uid2Sid, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_Uid2Sid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result)
+{
+ struct rpccli_wbint_Uid2Sid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Uid2Sid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ /* Return result */
+ *result = state->orig.out.result;
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_Uid2Sid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *dom_name /* [in] [unique,charset(UTF8)] */,
+ uint64_t uid /* [in] */,
+ struct dom_sid *sid /* [out] [ref] */)
+{
+ struct wbint_Uid2Sid r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.dom_name = dom_name;
+ r.in.uid = uid;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Uid2Sid, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_UID2SID,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Uid2Sid, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *sid = *r.out.sid;
+
+ /* Return result */
+ return r.out.result;
+}
+
+struct rpccli_wbint_Gid2Sid_state {
+ struct wbint_Gid2Sid orig;
+ struct wbint_Gid2Sid tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_Gid2Sid_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_Gid2Sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_dom_name /* [in] [unique,charset(UTF8)] */,
+ uint64_t _gid /* [in] */,
+ struct dom_sid *_sid /* [out] [ref] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_Gid2Sid_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_Gid2Sid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.dom_name = _dom_name;
+ state->orig.in.gid = _gid;
+
+ /* Out parameters */
+ state->orig.out.sid = _sid;
+
+ /* Result */
+ ZERO_STRUCT(state->orig.out.result);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Gid2Sid, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_Gid2Sid_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_GID2SID,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_Gid2Sid_done, req);
+ return req;
+}
+
+static void rpccli_wbint_Gid2Sid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_Gid2Sid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Gid2Sid_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.sid = *state->tmp.out.sid;
+
+ /* Copy result */
+ state->orig.out.result = state->tmp.out.result;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Gid2Sid, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_Gid2Sid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result)
+{
+ struct rpccli_wbint_Gid2Sid_state *state = tevent_req_data(
+ req, struct rpccli_wbint_Gid2Sid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ /* Return result */
+ *result = state->orig.out.result;
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_Gid2Sid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *dom_name /* [in] [unique,charset(UTF8)] */,
+ uint64_t gid /* [in] */,
+ struct dom_sid *sid /* [out] [ref] */)
+{
+ struct wbint_Gid2Sid r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.dom_name = dom_name;
+ r.in.gid = gid;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Gid2Sid, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_GID2SID,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Gid2Sid, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *sid = *r.out.sid;
+
+ /* Return result */
+ return r.out.result;
+}
+
+struct rpccli_wbint_QueryUser_state {
+ struct wbint_QueryUser orig;
+ struct wbint_QueryUser tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_QueryUser_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_QueryUser_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ struct dom_sid *_sid /* [in] [ref] */,
+ struct wbint_userinfo *_info /* [out] [ref] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_QueryUser_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_QueryUser_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.sid = _sid;
+
+ /* Out parameters */
+ state->orig.out.info = _info;
+
+ /* Result */
+ ZERO_STRUCT(state->orig.out.result);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_QueryUser, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_QueryUser_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_QUERYUSER,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_QueryUser_done, req);
+ return req;
+}
+
+static void rpccli_wbint_QueryUser_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_QueryUser_state *state = tevent_req_data(
+ req, struct rpccli_wbint_QueryUser_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.info = *state->tmp.out.info;
+
+ /* Copy result */
+ state->orig.out.result = state->tmp.out.result;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_QueryUser, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_QueryUser_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result)
+{
+ struct rpccli_wbint_QueryUser_state *state = tevent_req_data(
+ req, struct rpccli_wbint_QueryUser_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ /* Return result */
+ *result = state->orig.out.result;
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_QueryUser(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct dom_sid *sid /* [in] [ref] */,
+ struct wbint_userinfo *info /* [out] [ref] */)
+{
+ struct wbint_QueryUser r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.sid = sid;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_QueryUser, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_QUERYUSER,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_QueryUser, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *info = *r.out.info;
+
+ /* Return result */
+ return r.out.result;
+}
+
+struct rpccli_wbint_LookupUserAliases_state {
+ struct wbint_LookupUserAliases orig;
+ struct wbint_LookupUserAliases tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_LookupUserAliases_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_LookupUserAliases_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ struct wbint_SidArray *_sids /* [in] [ref] */,
+ struct wbint_RidArray *_rids /* [out] [ref] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_LookupUserAliases_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_LookupUserAliases_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.sids = _sids;
+
+ /* Out parameters */
+ state->orig.out.rids = _rids;
+
+ /* Result */
+ ZERO_STRUCT(state->orig.out.result);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupUserAliases, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_LookupUserAliases_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_LOOKUPUSERALIASES,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_LookupUserAliases_done, req);
+ return req;
+}
+
+static void rpccli_wbint_LookupUserAliases_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_LookupUserAliases_state *state = tevent_req_data(
+ req, struct rpccli_wbint_LookupUserAliases_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.rids = *state->tmp.out.rids;
+
+ /* Copy result */
+ state->orig.out.result = state->tmp.out.result;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupUserAliases, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_LookupUserAliases_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result)
+{
+ struct rpccli_wbint_LookupUserAliases_state *state = tevent_req_data(
+ req, struct rpccli_wbint_LookupUserAliases_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ /* Return result */
+ *result = state->orig.out.result;
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_LookupUserAliases(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct wbint_SidArray *sids /* [in] [ref] */,
+ struct wbint_RidArray *rids /* [out] [ref] */)
+{
+ struct wbint_LookupUserAliases r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.sids = sids;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupUserAliases, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_LOOKUPUSERALIASES,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupUserAliases, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *rids = *r.out.rids;
+
+ /* Return result */
+ return r.out.result;
+}
+
+struct rpccli_wbint_LookupUserGroups_state {
+ struct wbint_LookupUserGroups orig;
+ struct wbint_LookupUserGroups tmp;
+ TALLOC_CTX *out_mem_ctx;
+ NTSTATUS (*dispatch_recv)(struct tevent_req *req, TALLOC_CTX *mem_ctx);
+};
+
+static void rpccli_wbint_LookupUserGroups_done(struct tevent_req *subreq);
+
+struct tevent_req *rpccli_wbint_LookupUserGroups_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ struct dom_sid *_sid /* [in] [ref] */,
+ struct wbint_SidArray *_sids /* [out] [ref] */)
+{
+ struct tevent_req *req;
+ struct rpccli_wbint_LookupUserGroups_state *state;
+ struct tevent_req *subreq;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct rpccli_wbint_LookupUserGroups_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->out_mem_ctx = NULL;
+ state->dispatch_recv = cli->dispatch_recv;
+
+ /* In parameters */
+ state->orig.in.sid = _sid;
+
+ /* Out parameters */
+ state->orig.out.sids = _sids;
+
+ /* Result */
+ ZERO_STRUCT(state->orig.out.result);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupUserGroups, &state->orig);
+ }
+
+ state->out_mem_ctx = talloc_named_const(state, 0,
+ "rpccli_wbint_LookupUserGroups_out_memory");
+ if (tevent_req_nomem(state->out_mem_ctx, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ /* make a temporary copy, that we pass to the dispatch function */
+ state->tmp = state->orig;
+
+ subreq = cli->dispatch_send(state, ev, cli,
+ &ndr_table_wbint,
+ NDR_WBINT_LOOKUPUSERGROUPS,
+ &state->tmp);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, rpccli_wbint_LookupUserGroups_done, req);
+ return req;
+}
+
+static void rpccli_wbint_LookupUserGroups_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct rpccli_wbint_LookupUserGroups_state *state = tevent_req_data(
+ req, struct rpccli_wbint_LookupUserGroups_state);
+ NTSTATUS status;
+ TALLOC_CTX *mem_ctx;
+
+ if (state->out_mem_ctx) {
+ mem_ctx = state->out_mem_ctx;
+ } else {
+ mem_ctx = state;
+ }
+
+ status = state->dispatch_recv(subreq, mem_ctx);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /* Copy out parameters */
+ *state->orig.out.sids = *state->tmp.out.sids;
+
+ /* Copy result */
+ state->orig.out.result = state->tmp.out.result;
+
+ /* Reset temporary structure */
+ ZERO_STRUCT(state->tmp);
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupUserGroups, &state->orig);
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS rpccli_wbint_LookupUserGroups_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result)
+{
+ struct rpccli_wbint_LookupUserGroups_state *state = tevent_req_data(
+ req, struct rpccli_wbint_LookupUserGroups_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ tevent_req_received(req);
+ return status;
+ }
+
+ /* Steal possbile out parameters to the callers context */
+ talloc_steal(mem_ctx, state->out_mem_ctx);
+
+ /* Return result */
+ *result = state->orig.out.result;
+
+ tevent_req_received(req);
+ return NT_STATUS_OK;
+}
+
+NTSTATUS rpccli_wbint_LookupUserGroups(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct dom_sid *sid /* [in] [ref] */,
+ struct wbint_SidArray *sids /* [out] [ref] */)
+{
+ struct wbint_LookupUserGroups r;
+ NTSTATUS status;
+
+ /* In parameters */
+ r.in.sid = sid;
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupUserGroups, &r);
+ }
+
+ status = cli->dispatch(cli,
+ mem_ctx,
+ &ndr_table_wbint,
+ NDR_WBINT_LOOKUPUSERGROUPS,
+ &r);
+
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupUserGroups, &r);
+ }
+
+ if (NT_STATUS_IS_ERR(status)) {
+ return status;
+ }
+
+ /* Return variables */
+ *sids = *r.out.sids;
+
+ /* Return result */
+ return r.out.result;
+}
+
diff --git a/source3/librpc/gen_ndr/cli_wbint.h b/source3/librpc/gen_ndr/cli_wbint.h
new file mode 100644
index 0000000000..e9927c1c35
--- /dev/null
+++ b/source3/librpc/gen_ndr/cli_wbint.h
@@ -0,0 +1,141 @@
+#include "librpc/gen_ndr/ndr_wbint.h"
+#ifndef __CLI_WBINT__
+#define __CLI_WBINT__
+struct tevent_req *rpccli_wbint_Ping_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ uint32_t _in_data /* [in] */,
+ uint32_t *_out_data /* [out] [ref] */);
+NTSTATUS rpccli_wbint_Ping_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx);
+NTSTATUS rpccli_wbint_Ping(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ uint32_t in_data /* [in] */,
+ uint32_t *out_data /* [out] [ref] */);
+struct tevent_req *rpccli_wbint_LookupSid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ struct dom_sid *_sid /* [in] [ref] */,
+ enum lsa_SidType *_type /* [out] [ref] */,
+ const char **_domain /* [out] [ref,charset(UTF8)] */,
+ const char **_name /* [out] [ref,charset(UTF8)] */);
+NTSTATUS rpccli_wbint_LookupSid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result);
+NTSTATUS rpccli_wbint_LookupSid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct dom_sid *sid /* [in] [ref] */,
+ enum lsa_SidType *type /* [out] [ref] */,
+ const char **domain /* [out] [ref,charset(UTF8)] */,
+ const char **name /* [out] [ref,charset(UTF8)] */);
+struct tevent_req *rpccli_wbint_LookupName_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_domain /* [in] [ref,charset(UTF8)] */,
+ const char *_name /* [in] [ref,charset(UTF8)] */,
+ uint32_t _flags /* [in] */,
+ enum lsa_SidType *_type /* [out] [ref] */,
+ struct dom_sid *_sid /* [out] [ref] */);
+NTSTATUS rpccli_wbint_LookupName_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result);
+NTSTATUS rpccli_wbint_LookupName(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *domain /* [in] [ref,charset(UTF8)] */,
+ const char *name /* [in] [ref,charset(UTF8)] */,
+ uint32_t flags /* [in] */,
+ enum lsa_SidType *type /* [out] [ref] */,
+ struct dom_sid *sid /* [out] [ref] */);
+struct tevent_req *rpccli_wbint_Sid2Uid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_dom_name /* [in] [unique,charset(UTF8)] */,
+ struct dom_sid *_sid /* [in] [ref] */,
+ uint64_t *_uid /* [out] [ref] */);
+NTSTATUS rpccli_wbint_Sid2Uid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result);
+NTSTATUS rpccli_wbint_Sid2Uid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *dom_name /* [in] [unique,charset(UTF8)] */,
+ struct dom_sid *sid /* [in] [ref] */,
+ uint64_t *uid /* [out] [ref] */);
+struct tevent_req *rpccli_wbint_Sid2Gid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_dom_name /* [in] [unique,charset(UTF8)] */,
+ struct dom_sid *_sid /* [in] [ref] */,
+ uint64_t *_gid /* [out] [ref] */);
+NTSTATUS rpccli_wbint_Sid2Gid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result);
+NTSTATUS rpccli_wbint_Sid2Gid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *dom_name /* [in] [unique,charset(UTF8)] */,
+ struct dom_sid *sid /* [in] [ref] */,
+ uint64_t *gid /* [out] [ref] */);
+struct tevent_req *rpccli_wbint_Uid2Sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_dom_name /* [in] [unique,charset(UTF8)] */,
+ uint64_t _uid /* [in] */,
+ struct dom_sid *_sid /* [out] [ref] */);
+NTSTATUS rpccli_wbint_Uid2Sid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result);
+NTSTATUS rpccli_wbint_Uid2Sid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *dom_name /* [in] [unique,charset(UTF8)] */,
+ uint64_t uid /* [in] */,
+ struct dom_sid *sid /* [out] [ref] */);
+struct tevent_req *rpccli_wbint_Gid2Sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const char *_dom_name /* [in] [unique,charset(UTF8)] */,
+ uint64_t _gid /* [in] */,
+ struct dom_sid *_sid /* [out] [ref] */);
+NTSTATUS rpccli_wbint_Gid2Sid_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result);
+NTSTATUS rpccli_wbint_Gid2Sid(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const char *dom_name /* [in] [unique,charset(UTF8)] */,
+ uint64_t gid /* [in] */,
+ struct dom_sid *sid /* [out] [ref] */);
+struct tevent_req *rpccli_wbint_QueryUser_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ struct dom_sid *_sid /* [in] [ref] */,
+ struct wbint_userinfo *_info /* [out] [ref] */);
+NTSTATUS rpccli_wbint_QueryUser_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result);
+NTSTATUS rpccli_wbint_QueryUser(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct dom_sid *sid /* [in] [ref] */,
+ struct wbint_userinfo *info /* [out] [ref] */);
+struct tevent_req *rpccli_wbint_LookupUserAliases_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ struct wbint_SidArray *_sids /* [in] [ref] */,
+ struct wbint_RidArray *_rids /* [out] [ref] */);
+NTSTATUS rpccli_wbint_LookupUserAliases_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result);
+NTSTATUS rpccli_wbint_LookupUserAliases(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct wbint_SidArray *sids /* [in] [ref] */,
+ struct wbint_RidArray *rids /* [out] [ref] */);
+struct tevent_req *rpccli_wbint_LookupUserGroups_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ struct dom_sid *_sid /* [in] [ref] */,
+ struct wbint_SidArray *_sids /* [out] [ref] */);
+NTSTATUS rpccli_wbint_LookupUserGroups_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx,
+ NTSTATUS *result);
+NTSTATUS rpccli_wbint_LookupUserGroups(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ struct dom_sid *sid /* [in] [ref] */,
+ struct wbint_SidArray *sids /* [out] [ref] */);
+#endif /* __CLI_WBINT__ */
diff --git a/source3/librpc/gen_ndr/ndr_wbint.c b/source3/librpc/gen_ndr/ndr_wbint.c
new file mode 100644
index 0000000000..5a8c1c33d7
--- /dev/null
+++ b/source3/librpc/gen_ndr/ndr_wbint.c
@@ -0,0 +1,1405 @@
+/* parser auto-generated by pidl */
+
+#include "includes.h"
+#include "librpc/gen_ndr/ndr_wbint.h"
+
+#include "librpc/gen_ndr/ndr_lsa.h"
+_PUBLIC_ enum ndr_err_code ndr_push_wbint_userinfo(struct ndr_push *ndr, int ndr_flags, const struct wbint_userinfo *r)
+{
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_align(ndr, 8));
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->acct_name));
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->full_name));
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->homedir));
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->shell));
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->primary_gid));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->user_sid));
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->group_sid));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ if (r->acct_name) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->acct_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->acct_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->acct_name, ndr_charset_length(r->acct_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ if (r->full_name) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->full_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->full_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->full_name, ndr_charset_length(r->full_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ if (r->homedir) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->homedir, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->homedir, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->homedir, ndr_charset_length(r->homedir, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ if (r->shell) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->shell, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->shell, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->shell, ndr_charset_length(r->shell, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_wbint_userinfo(struct ndr_pull *ndr, int ndr_flags, struct wbint_userinfo *r)
+{
+ uint32_t _ptr_acct_name;
+ TALLOC_CTX *_mem_save_acct_name_0;
+ uint32_t _ptr_full_name;
+ TALLOC_CTX *_mem_save_full_name_0;
+ uint32_t _ptr_homedir;
+ TALLOC_CTX *_mem_save_homedir_0;
+ uint32_t _ptr_shell;
+ TALLOC_CTX *_mem_save_shell_0;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_align(ndr, 8));
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_acct_name));
+ if (_ptr_acct_name) {
+ NDR_PULL_ALLOC(ndr, r->acct_name);
+ } else {
+ r->acct_name = NULL;
+ }
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_full_name));
+ if (_ptr_full_name) {
+ NDR_PULL_ALLOC(ndr, r->full_name);
+ } else {
+ r->full_name = NULL;
+ }
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_homedir));
+ if (_ptr_homedir) {
+ NDR_PULL_ALLOC(ndr, r->homedir);
+ } else {
+ r->homedir = NULL;
+ }
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_shell));
+ if (_ptr_shell) {
+ NDR_PULL_ALLOC(ndr, r->shell);
+ } else {
+ r->shell = NULL;
+ }
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->primary_gid));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->user_sid));
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->group_sid));
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ if (r->acct_name) {
+ _mem_save_acct_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->acct_name, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->acct_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->acct_name));
+ if (ndr_get_array_length(ndr, &r->acct_name) > ndr_get_array_size(ndr, &r->acct_name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->acct_name), ndr_get_array_length(ndr, &r->acct_name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->acct_name), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->acct_name, ndr_get_array_length(ndr, &r->acct_name), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_acct_name_0, 0);
+ }
+ if (r->full_name) {
+ _mem_save_full_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->full_name, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->full_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->full_name));
+ if (ndr_get_array_length(ndr, &r->full_name) > ndr_get_array_size(ndr, &r->full_name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->full_name), ndr_get_array_length(ndr, &r->full_name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->full_name), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->full_name, ndr_get_array_length(ndr, &r->full_name), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_full_name_0, 0);
+ }
+ if (r->homedir) {
+ _mem_save_homedir_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->homedir, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->homedir));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->homedir));
+ if (ndr_get_array_length(ndr, &r->homedir) > ndr_get_array_size(ndr, &r->homedir)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->homedir), ndr_get_array_length(ndr, &r->homedir));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->homedir), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->homedir, ndr_get_array_length(ndr, &r->homedir), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_homedir_0, 0);
+ }
+ if (r->shell) {
+ _mem_save_shell_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->shell, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->shell));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->shell));
+ if (ndr_get_array_length(ndr, &r->shell) > ndr_get_array_size(ndr, &r->shell)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->shell), ndr_get_array_length(ndr, &r->shell));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->shell), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->shell, ndr_get_array_length(ndr, &r->shell), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_shell_0, 0);
+ }
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_userinfo(struct ndr_print *ndr, const char *name, const struct wbint_userinfo *r)
+{
+ ndr_print_struct(ndr, name, "wbint_userinfo");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "acct_name", r->acct_name);
+ ndr->depth++;
+ if (r->acct_name) {
+ ndr_print_string(ndr, "acct_name", r->acct_name);
+ }
+ ndr->depth--;
+ ndr_print_ptr(ndr, "full_name", r->full_name);
+ ndr->depth++;
+ if (r->full_name) {
+ ndr_print_string(ndr, "full_name", r->full_name);
+ }
+ ndr->depth--;
+ ndr_print_ptr(ndr, "homedir", r->homedir);
+ ndr->depth++;
+ if (r->homedir) {
+ ndr_print_string(ndr, "homedir", r->homedir);
+ }
+ ndr->depth--;
+ ndr_print_ptr(ndr, "shell", r->shell);
+ ndr->depth++;
+ if (r->shell) {
+ ndr_print_string(ndr, "shell", r->shell);
+ }
+ ndr->depth--;
+ ndr_print_hyper(ndr, "primary_gid", r->primary_gid);
+ ndr_print_dom_sid(ndr, "user_sid", &r->user_sid);
+ ndr_print_dom_sid(ndr, "group_sid", &r->group_sid);
+ ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_wbint_SidArray(struct ndr_push *ndr, int ndr_flags, const struct wbint_SidArray *r)
+{
+ uint32_t cntr_sids_0;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_sids));
+ for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) {
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, &r->sids[cntr_sids_0]));
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_wbint_SidArray(struct ndr_pull *ndr, int ndr_flags, struct wbint_SidArray *r)
+{
+ uint32_t cntr_sids_0;
+ TALLOC_CTX *_mem_save_sids_0;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->sids));
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_sids));
+ NDR_PULL_ALLOC_N(ndr, r->sids, ndr_get_array_size(ndr, &r->sids));
+ _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->sids, 0);
+ for (cntr_sids_0 = 0; cntr_sids_0 < r->num_sids; cntr_sids_0++) {
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, &r->sids[cntr_sids_0]));
+ }
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, 0);
+ if (r->sids) {
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->sids, r->num_sids));
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_SidArray(struct ndr_print *ndr, const char *name, const struct wbint_SidArray *r)
+{
+ uint32_t cntr_sids_0;
+ ndr_print_struct(ndr, name, "wbint_SidArray");
+ ndr->depth++;
+ ndr_print_uint32(ndr, "num_sids", r->num_sids);
+ ndr->print(ndr, "%s: ARRAY(%d)", "sids", (int)r->num_sids);
+ ndr->depth++;
+ for (cntr_sids_0=0;cntr_sids_0<r->num_sids;cntr_sids_0++) {
+ char *idx_0=NULL;
+ if (asprintf(&idx_0, "[%d]", cntr_sids_0) != -1) {
+ ndr_print_dom_sid(ndr, "sids", &r->sids[cntr_sids_0]);
+ free(idx_0);
+ }
+ }
+ ndr->depth--;
+ ndr->depth--;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_push_wbint_RidArray(struct ndr_push *ndr, int ndr_flags, const struct wbint_RidArray *r)
+{
+ uint32_t cntr_rids_0;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
+ NDR_CHECK(ndr_push_align(ndr, 4));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_rids));
+ for (cntr_rids_0 = 0; cntr_rids_0 < r->num_rids; cntr_rids_0++) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->rids[cntr_rids_0]));
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ enum ndr_err_code ndr_pull_wbint_RidArray(struct ndr_pull *ndr, int ndr_flags, struct wbint_RidArray *r)
+{
+ uint32_t cntr_rids_0;
+ TALLOC_CTX *_mem_save_rids_0;
+ if (ndr_flags & NDR_SCALARS) {
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->rids));
+ NDR_CHECK(ndr_pull_align(ndr, 4));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_rids));
+ NDR_PULL_ALLOC_N(ndr, r->rids, ndr_get_array_size(ndr, &r->rids));
+ _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->rids, 0);
+ for (cntr_rids_0 = 0; cntr_rids_0 < r->num_rids; cntr_rids_0++) {
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->rids[cntr_rids_0]));
+ }
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, 0);
+ if (r->rids) {
+ NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->rids, r->num_rids));
+ }
+ }
+ if (ndr_flags & NDR_BUFFERS) {
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_RidArray(struct ndr_print *ndr, const char *name, const struct wbint_RidArray *r)
+{
+ uint32_t cntr_rids_0;
+ ndr_print_struct(ndr, name, "wbint_RidArray");
+ ndr->depth++;
+ ndr_print_uint32(ndr, "num_rids", r->num_rids);
+ ndr->print(ndr, "%s: ARRAY(%d)", "rids", (int)r->num_rids);
+ ndr->depth++;
+ for (cntr_rids_0=0;cntr_rids_0<r->num_rids;cntr_rids_0++) {
+ char *idx_0=NULL;
+ if (asprintf(&idx_0, "[%d]", cntr_rids_0) != -1) {
+ ndr_print_uint32(ndr, "rids", r->rids[cntr_rids_0]);
+ free(idx_0);
+ }
+ }
+ ndr->depth--;
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_Ping(struct ndr_push *ndr, int flags, const struct wbint_Ping *r)
+{
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.out_data == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.out_data));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_Ping(struct ndr_pull *ndr, int flags, struct wbint_Ping *r)
+{
+ TALLOC_CTX *_mem_save_out_data_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.in_data));
+ NDR_PULL_ALLOC(ndr, r->out.out_data);
+ ZERO_STRUCTP(r->out.out_data);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.out_data);
+ }
+ _mem_save_out_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.out_data, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.out_data));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_out_data_0, LIBNDR_FLAG_REF_ALLOC);
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_Ping(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Ping *r)
+{
+ ndr_print_struct(ndr, name, "wbint_Ping");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_Ping");
+ ndr->depth++;
+ ndr_print_uint32(ndr, "in_data", r->in.in_data);
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_Ping");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "out_data", r->out.out_data);
+ ndr->depth++;
+ ndr_print_uint32(ndr, "out_data", *r->out.out_data);
+ ndr->depth--;
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_LookupSid(struct ndr_push *ndr, int flags, const struct wbint_LookupSid *r)
+{
+ if (flags & NDR_IN) {
+ if (r->in.sid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.type == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_lsa_SidType(ndr, NDR_SCALARS, *r->out.type));
+ if (r->out.domain == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.domain));
+ if (*r->out.domain) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.domain, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.domain, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.domain, ndr_charset_length(*r->out.domain, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ if (r->out.name == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.name));
+ if (*r->out.name) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.name, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(*r->out.name, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, *r->out.name, ndr_charset_length(*r->out.name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_LookupSid(struct ndr_pull *ndr, int flags, struct wbint_LookupSid *r)
+{
+ uint32_t _ptr_domain;
+ uint32_t _ptr_name;
+ TALLOC_CTX *_mem_save_sid_0;
+ TALLOC_CTX *_mem_save_type_0;
+ TALLOC_CTX *_mem_save_domain_0;
+ TALLOC_CTX *_mem_save_domain_1;
+ TALLOC_CTX *_mem_save_name_0;
+ TALLOC_CTX *_mem_save_name_1;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->in.sid);
+ }
+ _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_ALLOC(ndr, r->out.type);
+ ZERO_STRUCTP(r->out.type);
+ NDR_PULL_ALLOC(ndr, r->out.domain);
+ ZERO_STRUCTP(r->out.domain);
+ NDR_PULL_ALLOC(ndr, r->out.name);
+ ZERO_STRUCTP(r->out.name);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.type);
+ }
+ _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_lsa_SidType(ndr, NDR_SCALARS, r->out.type));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.domain);
+ }
+ _mem_save_domain_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.domain, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_domain));
+ if (_ptr_domain) {
+ NDR_PULL_ALLOC(ndr, *r->out.domain);
+ } else {
+ *r->out.domain = NULL;
+ }
+ if (*r->out.domain) {
+ _mem_save_domain_1 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, *r->out.domain, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, r->out.domain));
+ NDR_CHECK(ndr_pull_array_length(ndr, r->out.domain));
+ if (ndr_get_array_length(ndr, r->out.domain) > ndr_get_array_size(ndr, r->out.domain)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.domain), ndr_get_array_length(ndr, r->out.domain));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.domain), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.domain, ndr_get_array_length(ndr, r->out.domain), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_1, 0);
+ }
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_domain_0, LIBNDR_FLAG_REF_ALLOC);
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.name);
+ }
+ _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.name, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
+ if (_ptr_name) {
+ NDR_PULL_ALLOC(ndr, *r->out.name);
+ } else {
+ *r->out.name = NULL;
+ }
+ if (*r->out.name) {
+ _mem_save_name_1 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, *r->out.name, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, r->out.name));
+ NDR_CHECK(ndr_pull_array_length(ndr, r->out.name));
+ if (ndr_get_array_length(ndr, r->out.name) > ndr_get_array_size(ndr, r->out.name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, r->out.name), ndr_get_array_length(ndr, r->out.name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, r->out.name), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, r->out.name, ndr_get_array_length(ndr, r->out.name), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_1, 0);
+ }
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_LookupSid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupSid *r)
+{
+ ndr_print_struct(ndr, name, "wbint_LookupSid");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_LookupSid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "sid", r->in.sid);
+ ndr->depth++;
+ ndr_print_dom_sid(ndr, "sid", r->in.sid);
+ ndr->depth--;
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_LookupSid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "type", r->out.type);
+ ndr->depth++;
+ ndr_print_lsa_SidType(ndr, "type", *r->out.type);
+ ndr->depth--;
+ ndr_print_ptr(ndr, "domain", r->out.domain);
+ ndr->depth++;
+ ndr_print_ptr(ndr, "domain", *r->out.domain);
+ ndr->depth++;
+ if (*r->out.domain) {
+ ndr_print_string(ndr, "domain", *r->out.domain);
+ }
+ ndr->depth--;
+ ndr->depth--;
+ ndr_print_ptr(ndr, "name", r->out.name);
+ ndr->depth++;
+ ndr_print_ptr(ndr, "name", *r->out.name);
+ ndr->depth++;
+ if (*r->out.name) {
+ ndr_print_string(ndr, "name", *r->out.name);
+ }
+ ndr->depth--;
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_LookupName(struct ndr_push *ndr, int flags, const struct wbint_LookupName *r)
+{
+ if (flags & NDR_IN) {
+ if (r->in.domain == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.domain, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.domain, ndr_charset_length(r->in.domain, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ if (r->in.name == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.name, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.name, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.name, ndr_charset_length(r->in.name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.flags));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.type == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_lsa_SidType(ndr, NDR_SCALARS, *r->out.type));
+ if (r->out.sid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->out.sid));
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_LookupName(struct ndr_pull *ndr, int flags, struct wbint_LookupName *r)
+{
+ TALLOC_CTX *_mem_save_type_0;
+ TALLOC_CTX *_mem_save_sid_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.domain));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.domain));
+ if (ndr_get_array_length(ndr, &r->in.domain) > ndr_get_array_size(ndr, &r->in.domain)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.domain), ndr_get_array_length(ndr, &r->in.domain));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.domain, ndr_get_array_length(ndr, &r->in.domain), sizeof(uint8_t), CH_UTF8));
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.name));
+ if (ndr_get_array_length(ndr, &r->in.name) > ndr_get_array_size(ndr, &r->in.name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.name), ndr_get_array_length(ndr, &r->in.name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.name), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.name, ndr_get_array_length(ndr, &r->in.name), sizeof(uint8_t), CH_UTF8));
+ NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.flags));
+ NDR_PULL_ALLOC(ndr, r->out.type);
+ ZERO_STRUCTP(r->out.type);
+ NDR_PULL_ALLOC(ndr, r->out.sid);
+ ZERO_STRUCTP(r->out.sid);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.type);
+ }
+ _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_lsa_SidType(ndr, NDR_SCALARS, r->out.type));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.sid);
+ }
+ _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->out.sid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_LookupName(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupName *r)
+{
+ ndr_print_struct(ndr, name, "wbint_LookupName");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_LookupName");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "domain", r->in.domain);
+ ndr->depth++;
+ ndr_print_string(ndr, "domain", r->in.domain);
+ ndr->depth--;
+ ndr_print_ptr(ndr, "name", r->in.name);
+ ndr->depth++;
+ ndr_print_string(ndr, "name", r->in.name);
+ ndr->depth--;
+ ndr_print_uint32(ndr, "flags", r->in.flags);
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_LookupName");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "type", r->out.type);
+ ndr->depth++;
+ ndr_print_lsa_SidType(ndr, "type", *r->out.type);
+ ndr->depth--;
+ ndr_print_ptr(ndr, "sid", r->out.sid);
+ ndr->depth++;
+ ndr_print_dom_sid(ndr, "sid", r->out.sid);
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_Sid2Uid(struct ndr_push *ndr, int flags, const struct wbint_Sid2Uid *r)
+{
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dom_name));
+ if (r->in.dom_name) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dom_name, ndr_charset_length(r->in.dom_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ if (r->in.sid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.uid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, *r->out.uid));
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_Sid2Uid(struct ndr_pull *ndr, int flags, struct wbint_Sid2Uid *r)
+{
+ uint32_t _ptr_dom_name;
+ TALLOC_CTX *_mem_save_dom_name_0;
+ TALLOC_CTX *_mem_save_sid_0;
+ TALLOC_CTX *_mem_save_uid_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dom_name));
+ if (_ptr_dom_name) {
+ NDR_PULL_ALLOC(ndr, r->in.dom_name);
+ } else {
+ r->in.dom_name = NULL;
+ }
+ if (r->in.dom_name) {
+ _mem_save_dom_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.dom_name, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dom_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dom_name));
+ if (ndr_get_array_length(ndr, &r->in.dom_name) > ndr_get_array_size(ndr, &r->in.dom_name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dom_name), ndr_get_array_length(ndr, &r->in.dom_name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dom_name, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_name_0, 0);
+ }
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->in.sid);
+ }
+ _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_ALLOC(ndr, r->out.uid);
+ ZERO_STRUCTP(r->out.uid);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.uid);
+ }
+ _mem_save_uid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.uid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, r->out.uid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_uid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_Sid2Uid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Sid2Uid *r)
+{
+ ndr_print_struct(ndr, name, "wbint_Sid2Uid");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_Sid2Uid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "dom_name", r->in.dom_name);
+ ndr->depth++;
+ if (r->in.dom_name) {
+ ndr_print_string(ndr, "dom_name", r->in.dom_name);
+ }
+ ndr->depth--;
+ ndr_print_ptr(ndr, "sid", r->in.sid);
+ ndr->depth++;
+ ndr_print_dom_sid(ndr, "sid", r->in.sid);
+ ndr->depth--;
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_Sid2Uid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "uid", r->out.uid);
+ ndr->depth++;
+ ndr_print_hyper(ndr, "uid", *r->out.uid);
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_Sid2Gid(struct ndr_push *ndr, int flags, const struct wbint_Sid2Gid *r)
+{
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dom_name));
+ if (r->in.dom_name) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dom_name, ndr_charset_length(r->in.dom_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ if (r->in.sid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.gid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, *r->out.gid));
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_Sid2Gid(struct ndr_pull *ndr, int flags, struct wbint_Sid2Gid *r)
+{
+ uint32_t _ptr_dom_name;
+ TALLOC_CTX *_mem_save_dom_name_0;
+ TALLOC_CTX *_mem_save_sid_0;
+ TALLOC_CTX *_mem_save_gid_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dom_name));
+ if (_ptr_dom_name) {
+ NDR_PULL_ALLOC(ndr, r->in.dom_name);
+ } else {
+ r->in.dom_name = NULL;
+ }
+ if (r->in.dom_name) {
+ _mem_save_dom_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.dom_name, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dom_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dom_name));
+ if (ndr_get_array_length(ndr, &r->in.dom_name) > ndr_get_array_size(ndr, &r->in.dom_name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dom_name), ndr_get_array_length(ndr, &r->in.dom_name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dom_name, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_name_0, 0);
+ }
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->in.sid);
+ }
+ _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_ALLOC(ndr, r->out.gid);
+ ZERO_STRUCTP(r->out.gid);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.gid);
+ }
+ _mem_save_gid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.gid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, r->out.gid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_Sid2Gid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Sid2Gid *r)
+{
+ ndr_print_struct(ndr, name, "wbint_Sid2Gid");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_Sid2Gid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "dom_name", r->in.dom_name);
+ ndr->depth++;
+ if (r->in.dom_name) {
+ ndr_print_string(ndr, "dom_name", r->in.dom_name);
+ }
+ ndr->depth--;
+ ndr_print_ptr(ndr, "sid", r->in.sid);
+ ndr->depth++;
+ ndr_print_dom_sid(ndr, "sid", r->in.sid);
+ ndr->depth--;
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_Sid2Gid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "gid", r->out.gid);
+ ndr->depth++;
+ ndr_print_hyper(ndr, "gid", *r->out.gid);
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_Uid2Sid(struct ndr_push *ndr, int flags, const struct wbint_Uid2Sid *r)
+{
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dom_name));
+ if (r->in.dom_name) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dom_name, ndr_charset_length(r->in.dom_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->in.uid));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.sid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->out.sid));
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_Uid2Sid(struct ndr_pull *ndr, int flags, struct wbint_Uid2Sid *r)
+{
+ uint32_t _ptr_dom_name;
+ TALLOC_CTX *_mem_save_dom_name_0;
+ TALLOC_CTX *_mem_save_sid_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dom_name));
+ if (_ptr_dom_name) {
+ NDR_PULL_ALLOC(ndr, r->in.dom_name);
+ } else {
+ r->in.dom_name = NULL;
+ }
+ if (r->in.dom_name) {
+ _mem_save_dom_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.dom_name, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dom_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dom_name));
+ if (ndr_get_array_length(ndr, &r->in.dom_name) > ndr_get_array_size(ndr, &r->in.dom_name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dom_name), ndr_get_array_length(ndr, &r->in.dom_name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dom_name, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_name_0, 0);
+ }
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->in.uid));
+ NDR_PULL_ALLOC(ndr, r->out.sid);
+ ZERO_STRUCTP(r->out.sid);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.sid);
+ }
+ _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->out.sid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_Uid2Sid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Uid2Sid *r)
+{
+ ndr_print_struct(ndr, name, "wbint_Uid2Sid");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_Uid2Sid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "dom_name", r->in.dom_name);
+ ndr->depth++;
+ if (r->in.dom_name) {
+ ndr_print_string(ndr, "dom_name", r->in.dom_name);
+ }
+ ndr->depth--;
+ ndr_print_hyper(ndr, "uid", r->in.uid);
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_Uid2Sid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "sid", r->out.sid);
+ ndr->depth++;
+ ndr_print_dom_sid(ndr, "sid", r->out.sid);
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_Gid2Sid(struct ndr_push *ndr, int flags, const struct wbint_Gid2Sid *r)
+{
+ if (flags & NDR_IN) {
+ NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.dom_name));
+ if (r->in.dom_name) {
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
+ NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.dom_name, CH_UTF8)));
+ NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.dom_name, ndr_charset_length(r->in.dom_name, CH_UTF8), sizeof(uint8_t), CH_UTF8));
+ }
+ NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->in.gid));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.sid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->out.sid));
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_Gid2Sid(struct ndr_pull *ndr, int flags, struct wbint_Gid2Sid *r)
+{
+ uint32_t _ptr_dom_name;
+ TALLOC_CTX *_mem_save_dom_name_0;
+ TALLOC_CTX *_mem_save_sid_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dom_name));
+ if (_ptr_dom_name) {
+ NDR_PULL_ALLOC(ndr, r->in.dom_name);
+ } else {
+ r->in.dom_name = NULL;
+ }
+ if (r->in.dom_name) {
+ _mem_save_dom_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.dom_name, 0);
+ NDR_CHECK(ndr_pull_array_size(ndr, &r->in.dom_name));
+ NDR_CHECK(ndr_pull_array_length(ndr, &r->in.dom_name));
+ if (ndr_get_array_length(ndr, &r->in.dom_name) > ndr_get_array_size(ndr, &r->in.dom_name)) {
+ return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.dom_name), ndr_get_array_length(ndr, &r->in.dom_name));
+ }
+ NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t)));
+ NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.dom_name, ndr_get_array_length(ndr, &r->in.dom_name), sizeof(uint8_t), CH_UTF8));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dom_name_0, 0);
+ }
+ NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->in.gid));
+ NDR_PULL_ALLOC(ndr, r->out.sid);
+ ZERO_STRUCTP(r->out.sid);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.sid);
+ }
+ _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.sid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->out.sid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_Gid2Sid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Gid2Sid *r)
+{
+ ndr_print_struct(ndr, name, "wbint_Gid2Sid");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_Gid2Sid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "dom_name", r->in.dom_name);
+ ndr->depth++;
+ if (r->in.dom_name) {
+ ndr_print_string(ndr, "dom_name", r->in.dom_name);
+ }
+ ndr->depth--;
+ ndr_print_hyper(ndr, "gid", r->in.gid);
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_Gid2Sid");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "sid", r->out.sid);
+ ndr->depth++;
+ ndr_print_dom_sid(ndr, "sid", r->out.sid);
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_QueryUser(struct ndr_push *ndr, int flags, const struct wbint_QueryUser *r)
+{
+ if (flags & NDR_IN) {
+ if (r->in.sid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.info == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_wbint_userinfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_QueryUser(struct ndr_pull *ndr, int flags, struct wbint_QueryUser *r)
+{
+ TALLOC_CTX *_mem_save_sid_0;
+ TALLOC_CTX *_mem_save_info_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->in.sid);
+ }
+ _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_ALLOC(ndr, r->out.info);
+ ZERO_STRUCTP(r->out.info);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.info);
+ }
+ _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_wbint_userinfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.info));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_QueryUser(struct ndr_print *ndr, const char *name, int flags, const struct wbint_QueryUser *r)
+{
+ ndr_print_struct(ndr, name, "wbint_QueryUser");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_QueryUser");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "sid", r->in.sid);
+ ndr->depth++;
+ ndr_print_dom_sid(ndr, "sid", r->in.sid);
+ ndr->depth--;
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_QueryUser");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "info", r->out.info);
+ ndr->depth++;
+ ndr_print_wbint_userinfo(ndr, "info", r->out.info);
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_LookupUserAliases(struct ndr_push *ndr, int flags, const struct wbint_LookupUserAliases *r)
+{
+ if (flags & NDR_IN) {
+ if (r->in.sids == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_wbint_SidArray(ndr, NDR_SCALARS, r->in.sids));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.rids == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_wbint_RidArray(ndr, NDR_SCALARS, r->out.rids));
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_LookupUserAliases(struct ndr_pull *ndr, int flags, struct wbint_LookupUserAliases *r)
+{
+ TALLOC_CTX *_mem_save_sids_0;
+ TALLOC_CTX *_mem_save_rids_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->in.sids);
+ }
+ _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.sids, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_wbint_SidArray(ndr, NDR_SCALARS, r->in.sids));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_ALLOC(ndr, r->out.rids);
+ ZERO_STRUCTP(r->out.rids);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.rids);
+ }
+ _mem_save_rids_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.rids, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_wbint_RidArray(ndr, NDR_SCALARS, r->out.rids));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_rids_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_LookupUserAliases(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupUserAliases *r)
+{
+ ndr_print_struct(ndr, name, "wbint_LookupUserAliases");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_LookupUserAliases");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "sids", r->in.sids);
+ ndr->depth++;
+ ndr_print_wbint_SidArray(ndr, "sids", r->in.sids);
+ ndr->depth--;
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_LookupUserAliases");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "rids", r->out.rids);
+ ndr->depth++;
+ ndr_print_wbint_RidArray(ndr, "rids", r->out.rids);
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static enum ndr_err_code ndr_push_wbint_LookupUserGroups(struct ndr_push *ndr, int flags, const struct wbint_LookupUserGroups *r)
+{
+ if (flags & NDR_IN) {
+ if (r->in.sid == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ }
+ if (flags & NDR_OUT) {
+ if (r->out.sids == NULL) {
+ return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
+ }
+ NDR_CHECK(ndr_push_wbint_SidArray(ndr, NDR_SCALARS, r->out.sids));
+ NDR_CHECK(ndr_push_NTSTATUS(ndr, NDR_SCALARS, r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+static enum ndr_err_code ndr_pull_wbint_LookupUserGroups(struct ndr_pull *ndr, int flags, struct wbint_LookupUserGroups *r)
+{
+ TALLOC_CTX *_mem_save_sid_0;
+ TALLOC_CTX *_mem_save_sids_0;
+ if (flags & NDR_IN) {
+ ZERO_STRUCT(r->out);
+
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->in.sid);
+ }
+ _mem_save_sid_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->in.sid, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_dom_sid(ndr, NDR_SCALARS, r->in.sid));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sid_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_PULL_ALLOC(ndr, r->out.sids);
+ ZERO_STRUCTP(r->out.sids);
+ }
+ if (flags & NDR_OUT) {
+ if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
+ NDR_PULL_ALLOC(ndr, r->out.sids);
+ }
+ _mem_save_sids_0 = NDR_PULL_GET_MEM_CTX(ndr);
+ NDR_PULL_SET_MEM_CTX(ndr, r->out.sids, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_wbint_SidArray(ndr, NDR_SCALARS, r->out.sids));
+ NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sids_0, LIBNDR_FLAG_REF_ALLOC);
+ NDR_CHECK(ndr_pull_NTSTATUS(ndr, NDR_SCALARS, &r->out.result));
+ }
+ return NDR_ERR_SUCCESS;
+}
+
+_PUBLIC_ void ndr_print_wbint_LookupUserGroups(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupUserGroups *r)
+{
+ ndr_print_struct(ndr, name, "wbint_LookupUserGroups");
+ ndr->depth++;
+ if (flags & NDR_SET_VALUES) {
+ ndr->flags |= LIBNDR_PRINT_SET_VALUES;
+ }
+ if (flags & NDR_IN) {
+ ndr_print_struct(ndr, "in", "wbint_LookupUserGroups");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "sid", r->in.sid);
+ ndr->depth++;
+ ndr_print_dom_sid(ndr, "sid", r->in.sid);
+ ndr->depth--;
+ ndr->depth--;
+ }
+ if (flags & NDR_OUT) {
+ ndr_print_struct(ndr, "out", "wbint_LookupUserGroups");
+ ndr->depth++;
+ ndr_print_ptr(ndr, "sids", r->out.sids);
+ ndr->depth++;
+ ndr_print_wbint_SidArray(ndr, "sids", r->out.sids);
+ ndr->depth--;
+ ndr_print_NTSTATUS(ndr, "result", r->out.result);
+ ndr->depth--;
+ }
+ ndr->depth--;
+}
+
+static const struct ndr_interface_call wbint_calls[] = {
+ {
+ "wbint_Ping",
+ sizeof(struct wbint_Ping),
+ (ndr_push_flags_fn_t) ndr_push_wbint_Ping,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_Ping,
+ (ndr_print_function_t) ndr_print_wbint_Ping,
+ false,
+ },
+ {
+ "wbint_LookupSid",
+ sizeof(struct wbint_LookupSid),
+ (ndr_push_flags_fn_t) ndr_push_wbint_LookupSid,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupSid,
+ (ndr_print_function_t) ndr_print_wbint_LookupSid,
+ false,
+ },
+ {
+ "wbint_LookupName",
+ sizeof(struct wbint_LookupName),
+ (ndr_push_flags_fn_t) ndr_push_wbint_LookupName,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupName,
+ (ndr_print_function_t) ndr_print_wbint_LookupName,
+ false,
+ },
+ {
+ "wbint_Sid2Uid",
+ sizeof(struct wbint_Sid2Uid),
+ (ndr_push_flags_fn_t) ndr_push_wbint_Sid2Uid,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_Sid2Uid,
+ (ndr_print_function_t) ndr_print_wbint_Sid2Uid,
+ false,
+ },
+ {
+ "wbint_Sid2Gid",
+ sizeof(struct wbint_Sid2Gid),
+ (ndr_push_flags_fn_t) ndr_push_wbint_Sid2Gid,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_Sid2Gid,
+ (ndr_print_function_t) ndr_print_wbint_Sid2Gid,
+ false,
+ },
+ {
+ "wbint_Uid2Sid",
+ sizeof(struct wbint_Uid2Sid),
+ (ndr_push_flags_fn_t) ndr_push_wbint_Uid2Sid,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_Uid2Sid,
+ (ndr_print_function_t) ndr_print_wbint_Uid2Sid,
+ false,
+ },
+ {
+ "wbint_Gid2Sid",
+ sizeof(struct wbint_Gid2Sid),
+ (ndr_push_flags_fn_t) ndr_push_wbint_Gid2Sid,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_Gid2Sid,
+ (ndr_print_function_t) ndr_print_wbint_Gid2Sid,
+ false,
+ },
+ {
+ "wbint_QueryUser",
+ sizeof(struct wbint_QueryUser),
+ (ndr_push_flags_fn_t) ndr_push_wbint_QueryUser,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_QueryUser,
+ (ndr_print_function_t) ndr_print_wbint_QueryUser,
+ false,
+ },
+ {
+ "wbint_LookupUserAliases",
+ sizeof(struct wbint_LookupUserAliases),
+ (ndr_push_flags_fn_t) ndr_push_wbint_LookupUserAliases,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupUserAliases,
+ (ndr_print_function_t) ndr_print_wbint_LookupUserAliases,
+ false,
+ },
+ {
+ "wbint_LookupUserGroups",
+ sizeof(struct wbint_LookupUserGroups),
+ (ndr_push_flags_fn_t) ndr_push_wbint_LookupUserGroups,
+ (ndr_pull_flags_fn_t) ndr_pull_wbint_LookupUserGroups,
+ (ndr_print_function_t) ndr_print_wbint_LookupUserGroups,
+ false,
+ },
+ { NULL, 0, NULL, NULL, NULL, false }
+};
+
+static const char * const wbint_endpoint_strings[] = {
+ "ncalrpc:",
+};
+
+static const struct ndr_interface_string_array wbint_endpoints = {
+ .count = 1,
+ .names = wbint_endpoint_strings
+};
+
+static const char * const wbint_authservice_strings[] = {
+ "host",
+};
+
+static const struct ndr_interface_string_array wbint_authservices = {
+ .count = 1,
+ .names = wbint_authservice_strings
+};
+
+
+const struct ndr_interface_table ndr_table_wbint = {
+ .name = "wbint",
+ .syntax_id = {
+ {0xbf09192c,0xed60,0x4928,{0x9d,0xff},{0xd0,0xd7,0xbc,0xb0,0x3e,0xd8}},
+ NDR_WBINT_VERSION
+ },
+ .helpstring = NDR_WBINT_HELPSTRING,
+ .num_calls = 10,
+ .calls = wbint_calls,
+ .endpoints = &wbint_endpoints,
+ .authservices = &wbint_authservices
+};
+
diff --git a/source3/librpc/gen_ndr/ndr_wbint.h b/source3/librpc/gen_ndr/ndr_wbint.h
new file mode 100644
index 0000000000..6fd6b1d74d
--- /dev/null
+++ b/source3/librpc/gen_ndr/ndr_wbint.h
@@ -0,0 +1,54 @@
+/* header auto-generated by pidl */
+
+#include "librpc/ndr/libndr.h"
+#include "librpc/gen_ndr/wbint.h"
+
+#ifndef _HEADER_NDR_wbint
+#define _HEADER_NDR_wbint
+
+#define NDR_WBINT_UUID "bf09192c-ed60-4928-9dff-d0d7bcb03ed8"
+#define NDR_WBINT_VERSION 1.0
+#define NDR_WBINT_NAME "wbint"
+#define NDR_WBINT_HELPSTRING "winbind parent-child protocol"
+extern const struct ndr_interface_table ndr_table_wbint;
+#define NDR_WBINT_PING (0x00)
+
+#define NDR_WBINT_LOOKUPSID (0x01)
+
+#define NDR_WBINT_LOOKUPNAME (0x02)
+
+#define NDR_WBINT_SID2UID (0x03)
+
+#define NDR_WBINT_SID2GID (0x04)
+
+#define NDR_WBINT_UID2SID (0x05)
+
+#define NDR_WBINT_GID2SID (0x06)
+
+#define NDR_WBINT_QUERYUSER (0x07)
+
+#define NDR_WBINT_LOOKUPUSERALIASES (0x08)
+
+#define NDR_WBINT_LOOKUPUSERGROUPS (0x09)
+
+#define NDR_WBINT_CALL_COUNT (10)
+enum ndr_err_code ndr_push_wbint_userinfo(struct ndr_push *ndr, int ndr_flags, const struct wbint_userinfo *r);
+enum ndr_err_code ndr_pull_wbint_userinfo(struct ndr_pull *ndr, int ndr_flags, struct wbint_userinfo *r);
+void ndr_print_wbint_userinfo(struct ndr_print *ndr, const char *name, const struct wbint_userinfo *r);
+enum ndr_err_code ndr_push_wbint_SidArray(struct ndr_push *ndr, int ndr_flags, const struct wbint_SidArray *r);
+enum ndr_err_code ndr_pull_wbint_SidArray(struct ndr_pull *ndr, int ndr_flags, struct wbint_SidArray *r);
+void ndr_print_wbint_SidArray(struct ndr_print *ndr, const char *name, const struct wbint_SidArray *r);
+enum ndr_err_code ndr_push_wbint_RidArray(struct ndr_push *ndr, int ndr_flags, const struct wbint_RidArray *r);
+enum ndr_err_code ndr_pull_wbint_RidArray(struct ndr_pull *ndr, int ndr_flags, struct wbint_RidArray *r);
+void ndr_print_wbint_RidArray(struct ndr_print *ndr, const char *name, const struct wbint_RidArray *r);
+void ndr_print_wbint_Ping(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Ping *r);
+void ndr_print_wbint_LookupSid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupSid *r);
+void ndr_print_wbint_LookupName(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupName *r);
+void ndr_print_wbint_Sid2Uid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Sid2Uid *r);
+void ndr_print_wbint_Sid2Gid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Sid2Gid *r);
+void ndr_print_wbint_Uid2Sid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Uid2Sid *r);
+void ndr_print_wbint_Gid2Sid(struct ndr_print *ndr, const char *name, int flags, const struct wbint_Gid2Sid *r);
+void ndr_print_wbint_QueryUser(struct ndr_print *ndr, const char *name, int flags, const struct wbint_QueryUser *r);
+void ndr_print_wbint_LookupUserAliases(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupUserAliases *r);
+void ndr_print_wbint_LookupUserGroups(struct ndr_print *ndr, const char *name, int flags, const struct wbint_LookupUserGroups *r);
+#endif /* _HEADER_NDR_wbint */
diff --git a/source3/librpc/gen_ndr/srv_wbint.c b/source3/librpc/gen_ndr/srv_wbint.c
new file mode 100644
index 0000000000..95c0619058
--- /dev/null
+++ b/source3/librpc/gen_ndr/srv_wbint.c
@@ -0,0 +1,1000 @@
+/*
+ * Unix SMB/CIFS implementation.
+ * server auto-generated by pidl. DO NOT MODIFY!
+ */
+
+#include "includes.h"
+#include "librpc/gen_ndr/srv_wbint.h"
+
+static bool api_wbint_Ping(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_Ping *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_PING];
+
+ r = talloc(talloc_tos(), struct wbint_Ping);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Ping, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.out_data = talloc_zero(r, uint32_t);
+ if (r->out.out_data == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ _wbint_Ping(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Ping, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+static bool api_wbint_LookupSid(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_LookupSid *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_LOOKUPSID];
+
+ r = talloc(talloc_tos(), struct wbint_LookupSid);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupSid, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.type = talloc_zero(r, enum lsa_SidType);
+ if (r->out.type == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.domain = talloc_zero(r, const char *);
+ if (r->out.domain == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.name = talloc_zero(r, const char *);
+ if (r->out.name == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _wbint_LookupSid(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupSid, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+static bool api_wbint_LookupName(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_LookupName *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_LOOKUPNAME];
+
+ r = talloc(talloc_tos(), struct wbint_LookupName);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupName, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.type = talloc_zero(r, enum lsa_SidType);
+ if (r->out.type == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.sid = talloc_zero(r, struct dom_sid);
+ if (r->out.sid == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _wbint_LookupName(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupName, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+static bool api_wbint_Sid2Uid(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_Sid2Uid *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_SID2UID];
+
+ r = talloc(talloc_tos(), struct wbint_Sid2Uid);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Sid2Uid, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.uid = talloc_zero(r, uint64_t);
+ if (r->out.uid == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _wbint_Sid2Uid(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Sid2Uid, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+static bool api_wbint_Sid2Gid(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_Sid2Gid *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_SID2GID];
+
+ r = talloc(talloc_tos(), struct wbint_Sid2Gid);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Sid2Gid, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.gid = talloc_zero(r, uint64_t);
+ if (r->out.gid == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _wbint_Sid2Gid(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Sid2Gid, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+static bool api_wbint_Uid2Sid(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_Uid2Sid *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_UID2SID];
+
+ r = talloc(talloc_tos(), struct wbint_Uid2Sid);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Uid2Sid, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.sid = talloc_zero(r, struct dom_sid);
+ if (r->out.sid == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _wbint_Uid2Sid(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Uid2Sid, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+static bool api_wbint_Gid2Sid(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_Gid2Sid *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_GID2SID];
+
+ r = talloc(talloc_tos(), struct wbint_Gid2Sid);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_Gid2Sid, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.sid = talloc_zero(r, struct dom_sid);
+ if (r->out.sid == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _wbint_Gid2Sid(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_Gid2Sid, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+static bool api_wbint_QueryUser(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_QueryUser *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_QUERYUSER];
+
+ r = talloc(talloc_tos(), struct wbint_QueryUser);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_QueryUser, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(r, struct wbint_userinfo);
+ if (r->out.info == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _wbint_QueryUser(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_QueryUser, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+static bool api_wbint_LookupUserAliases(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_LookupUserAliases *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_LOOKUPUSERALIASES];
+
+ r = talloc(talloc_tos(), struct wbint_LookupUserAliases);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupUserAliases, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.rids = talloc_zero(r, struct wbint_RidArray);
+ if (r->out.rids == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _wbint_LookupUserAliases(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupUserAliases, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+static bool api_wbint_LookupUserGroups(pipes_struct *p)
+{
+ const struct ndr_interface_call *call;
+ struct ndr_pull *pull;
+ struct ndr_push *push;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+ struct wbint_LookupUserGroups *r;
+
+ call = &ndr_table_wbint.calls[NDR_WBINT_LOOKUPUSERGROUPS];
+
+ r = talloc(talloc_tos(), struct wbint_LookupUserGroups);
+ if (r == NULL) {
+ return false;
+ }
+
+ if (!prs_data_blob(&p->in_data.data, &blob, r)) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull = ndr_pull_init_blob(&blob, r, NULL);
+ if (pull == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = call->ndr_pull(pull, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_IN_DEBUG(wbint_LookupUserGroups, r);
+ }
+
+ ZERO_STRUCT(r->out);
+ r->out.sids = talloc_zero(r, struct wbint_SidArray);
+ if (r->out.sids == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ r->out.result = _wbint_LookupUserGroups(p, r);
+
+ if (p->rng_fault_state) {
+ talloc_free(r);
+ /* Return true here, srv_pipe_hnd.c will take care */
+ return true;
+ }
+
+ if (DEBUGLEVEL >= 10) {
+ NDR_PRINT_OUT_DEBUG(wbint_LookupUserGroups, r);
+ }
+
+ push = ndr_push_init_ctx(r, NULL);
+ if (push == NULL) {
+ talloc_free(r);
+ return false;
+ }
+
+ ndr_err = call->ndr_push(push, NDR_OUT, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ talloc_free(r);
+ return false;
+ }
+
+ blob = ndr_push_blob(push);
+ if (!prs_copy_data_in(&p->out_data.rdata, (const char *)blob.data, (uint32_t)blob.length)) {
+ talloc_free(r);
+ return false;
+ }
+
+ talloc_free(r);
+
+ return true;
+}
+
+
+/* Tables */
+static struct api_struct api_wbint_cmds[] =
+{
+ {"WBINT_PING", NDR_WBINT_PING, api_wbint_Ping},
+ {"WBINT_LOOKUPSID", NDR_WBINT_LOOKUPSID, api_wbint_LookupSid},
+ {"WBINT_LOOKUPNAME", NDR_WBINT_LOOKUPNAME, api_wbint_LookupName},
+ {"WBINT_SID2UID", NDR_WBINT_SID2UID, api_wbint_Sid2Uid},
+ {"WBINT_SID2GID", NDR_WBINT_SID2GID, api_wbint_Sid2Gid},
+ {"WBINT_UID2SID", NDR_WBINT_UID2SID, api_wbint_Uid2Sid},
+ {"WBINT_GID2SID", NDR_WBINT_GID2SID, api_wbint_Gid2Sid},
+ {"WBINT_QUERYUSER", NDR_WBINT_QUERYUSER, api_wbint_QueryUser},
+ {"WBINT_LOOKUPUSERALIASES", NDR_WBINT_LOOKUPUSERALIASES, api_wbint_LookupUserAliases},
+ {"WBINT_LOOKUPUSERGROUPS", NDR_WBINT_LOOKUPUSERGROUPS, api_wbint_LookupUserGroups},
+};
+
+void wbint_get_pipe_fns(struct api_struct **fns, int *n_fns)
+{
+ *fns = api_wbint_cmds;
+ *n_fns = sizeof(api_wbint_cmds) / sizeof(struct api_struct);
+}
+
+NTSTATUS rpc_wbint_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *_r)
+{
+ if (cli->pipes_struct == NULL) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ switch (opnum)
+ {
+ case NDR_WBINT_PING: {
+ struct wbint_Ping *r = (struct wbint_Ping *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.out_data = talloc_zero(mem_ctx, uint32_t);
+ if (r->out.out_data == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ _wbint_Ping(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WBINT_LOOKUPSID: {
+ struct wbint_LookupSid *r = (struct wbint_LookupSid *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.type = talloc_zero(mem_ctx, enum lsa_SidType);
+ if (r->out.type == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.domain = talloc_zero(mem_ctx, const char *);
+ if (r->out.domain == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.name = talloc_zero(mem_ctx, const char *);
+ if (r->out.name == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wbint_LookupSid(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WBINT_LOOKUPNAME: {
+ struct wbint_LookupName *r = (struct wbint_LookupName *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.type = talloc_zero(mem_ctx, enum lsa_SidType);
+ if (r->out.type == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.sid = talloc_zero(mem_ctx, struct dom_sid);
+ if (r->out.sid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wbint_LookupName(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WBINT_SID2UID: {
+ struct wbint_Sid2Uid *r = (struct wbint_Sid2Uid *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.uid = talloc_zero(mem_ctx, uint64_t);
+ if (r->out.uid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wbint_Sid2Uid(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WBINT_SID2GID: {
+ struct wbint_Sid2Gid *r = (struct wbint_Sid2Gid *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.gid = talloc_zero(mem_ctx, uint64_t);
+ if (r->out.gid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wbint_Sid2Gid(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WBINT_UID2SID: {
+ struct wbint_Uid2Sid *r = (struct wbint_Uid2Sid *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.sid = talloc_zero(mem_ctx, struct dom_sid);
+ if (r->out.sid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wbint_Uid2Sid(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WBINT_GID2SID: {
+ struct wbint_Gid2Sid *r = (struct wbint_Gid2Sid *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.sid = talloc_zero(mem_ctx, struct dom_sid);
+ if (r->out.sid == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wbint_Gid2Sid(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WBINT_QUERYUSER: {
+ struct wbint_QueryUser *r = (struct wbint_QueryUser *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.info = talloc_zero(mem_ctx, struct wbint_userinfo);
+ if (r->out.info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wbint_QueryUser(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WBINT_LOOKUPUSERALIASES: {
+ struct wbint_LookupUserAliases *r = (struct wbint_LookupUserAliases *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.rids = talloc_zero(mem_ctx, struct wbint_RidArray);
+ if (r->out.rids == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wbint_LookupUserAliases(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ case NDR_WBINT_LOOKUPUSERGROUPS: {
+ struct wbint_LookupUserGroups *r = (struct wbint_LookupUserGroups *)_r;
+ ZERO_STRUCT(r->out);
+ r->out.sids = talloc_zero(mem_ctx, struct wbint_SidArray);
+ if (r->out.sids == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ r->out.result = _wbint_LookupUserGroups(cli->pipes_struct, r);
+ return NT_STATUS_OK;
+ }
+
+ default:
+ return NT_STATUS_NOT_IMPLEMENTED;
+ }
+}
+
+NTSTATUS rpc_wbint_init(void)
+{
+ return rpc_srv_register(SMB_RPC_INTERFACE_VERSION, "wbint", "wbint", &ndr_table_wbint, api_wbint_cmds, sizeof(api_wbint_cmds) / sizeof(struct api_struct));
+}
diff --git a/source3/librpc/gen_ndr/srv_wbint.h b/source3/librpc/gen_ndr/srv_wbint.h
new file mode 100644
index 0000000000..20ca316375
--- /dev/null
+++ b/source3/librpc/gen_ndr/srv_wbint.h
@@ -0,0 +1,27 @@
+#include "librpc/gen_ndr/ndr_wbint.h"
+#ifndef __SRV_WBINT__
+#define __SRV_WBINT__
+void _wbint_Ping(pipes_struct *p, struct wbint_Ping *r);
+NTSTATUS _wbint_LookupSid(pipes_struct *p, struct wbint_LookupSid *r);
+NTSTATUS _wbint_LookupName(pipes_struct *p, struct wbint_LookupName *r);
+NTSTATUS _wbint_Sid2Uid(pipes_struct *p, struct wbint_Sid2Uid *r);
+NTSTATUS _wbint_Sid2Gid(pipes_struct *p, struct wbint_Sid2Gid *r);
+NTSTATUS _wbint_Uid2Sid(pipes_struct *p, struct wbint_Uid2Sid *r);
+NTSTATUS _wbint_Gid2Sid(pipes_struct *p, struct wbint_Gid2Sid *r);
+NTSTATUS _wbint_QueryUser(pipes_struct *p, struct wbint_QueryUser *r);
+NTSTATUS _wbint_LookupUserAliases(pipes_struct *p, struct wbint_LookupUserAliases *r);
+NTSTATUS _wbint_LookupUserGroups(pipes_struct *p, struct wbint_LookupUserGroups *r);
+void wbint_get_pipe_fns(struct api_struct **fns, int *n_fns);
+NTSTATUS rpc_wbint_dispatch(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx, const struct ndr_interface_table *table, uint32_t opnum, void *r);
+void _wbint_Ping(pipes_struct *p, struct wbint_Ping *r);
+NTSTATUS _wbint_LookupSid(pipes_struct *p, struct wbint_LookupSid *r);
+NTSTATUS _wbint_LookupName(pipes_struct *p, struct wbint_LookupName *r);
+NTSTATUS _wbint_Sid2Uid(pipes_struct *p, struct wbint_Sid2Uid *r);
+NTSTATUS _wbint_Sid2Gid(pipes_struct *p, struct wbint_Sid2Gid *r);
+NTSTATUS _wbint_Uid2Sid(pipes_struct *p, struct wbint_Uid2Sid *r);
+NTSTATUS _wbint_Gid2Sid(pipes_struct *p, struct wbint_Gid2Sid *r);
+NTSTATUS _wbint_QueryUser(pipes_struct *p, struct wbint_QueryUser *r);
+NTSTATUS _wbint_LookupUserAliases(pipes_struct *p, struct wbint_LookupUserAliases *r);
+NTSTATUS _wbint_LookupUserGroups(pipes_struct *p, struct wbint_LookupUserGroups *r);
+NTSTATUS rpc_wbint_init(void);
+#endif /* __SRV_WBINT__ */
diff --git a/source3/librpc/gen_ndr/wbint.h b/source3/librpc/gen_ndr/wbint.h
new file mode 100644
index 0000000000..28382ec346
--- /dev/null
+++ b/source3/librpc/gen_ndr/wbint.h
@@ -0,0 +1,169 @@
+/* header auto-generated by pidl */
+
+#include <stdint.h>
+
+#include "libcli/util/ntstatus.h"
+
+#include "librpc/gen_ndr/lsa.h"
+#ifndef _HEADER_wbint
+#define _HEADER_wbint
+
+struct wbint_userinfo {
+ const char *acct_name;/* [unique,charset(UTF8)] */
+ const char *full_name;/* [unique,charset(UTF8)] */
+ const char *homedir;/* [unique,charset(UTF8)] */
+ const char *shell;/* [unique,charset(UTF8)] */
+ uint64_t primary_gid;
+ struct dom_sid user_sid;
+ struct dom_sid group_sid;
+}/* [public] */;
+
+struct wbint_SidArray {
+ uint32_t num_sids;
+ struct dom_sid *sids;/* [size_is(num_sids)] */
+}/* [public] */;
+
+struct wbint_RidArray {
+ uint32_t num_rids;
+ uint32_t *rids;/* [size_is(num_rids)] */
+}/* [public] */;
+
+
+struct wbint_Ping {
+ struct {
+ uint32_t in_data;
+ } in;
+
+ struct {
+ uint32_t *out_data;/* [ref] */
+ } out;
+
+};
+
+
+struct wbint_LookupSid {
+ struct {
+ struct dom_sid *sid;/* [ref] */
+ } in;
+
+ struct {
+ enum lsa_SidType *type;/* [ref] */
+ const char **domain;/* [ref,charset(UTF8)] */
+ const char **name;/* [ref,charset(UTF8)] */
+ NTSTATUS result;
+ } out;
+
+};
+
+
+struct wbint_LookupName {
+ struct {
+ const char *domain;/* [ref,charset(UTF8)] */
+ const char *name;/* [ref,charset(UTF8)] */
+ uint32_t flags;
+ } in;
+
+ struct {
+ enum lsa_SidType *type;/* [ref] */
+ struct dom_sid *sid;/* [ref] */
+ NTSTATUS result;
+ } out;
+
+};
+
+
+struct wbint_Sid2Uid {
+ struct {
+ const char *dom_name;/* [unique,charset(UTF8)] */
+ struct dom_sid *sid;/* [ref] */
+ } in;
+
+ struct {
+ uint64_t *uid;/* [ref] */
+ NTSTATUS result;
+ } out;
+
+};
+
+
+struct wbint_Sid2Gid {
+ struct {
+ const char *dom_name;/* [unique,charset(UTF8)] */
+ struct dom_sid *sid;/* [ref] */
+ } in;
+
+ struct {
+ uint64_t *gid;/* [ref] */
+ NTSTATUS result;
+ } out;
+
+};
+
+
+struct wbint_Uid2Sid {
+ struct {
+ const char *dom_name;/* [unique,charset(UTF8)] */
+ uint64_t uid;
+ } in;
+
+ struct {
+ struct dom_sid *sid;/* [ref] */
+ NTSTATUS result;
+ } out;
+
+};
+
+
+struct wbint_Gid2Sid {
+ struct {
+ const char *dom_name;/* [unique,charset(UTF8)] */
+ uint64_t gid;
+ } in;
+
+ struct {
+ struct dom_sid *sid;/* [ref] */
+ NTSTATUS result;
+ } out;
+
+};
+
+
+struct wbint_QueryUser {
+ struct {
+ struct dom_sid *sid;/* [ref] */
+ } in;
+
+ struct {
+ struct wbint_userinfo *info;/* [ref] */
+ NTSTATUS result;
+ } out;
+
+};
+
+
+struct wbint_LookupUserAliases {
+ struct {
+ struct wbint_SidArray *sids;/* [ref] */
+ } in;
+
+ struct {
+ struct wbint_RidArray *rids;/* [ref] */
+ NTSTATUS result;
+ } out;
+
+};
+
+
+struct wbint_LookupUserGroups {
+ struct {
+ struct dom_sid *sid;/* [ref] */
+ } in;
+
+ struct {
+ struct wbint_SidArray *sids;/* [ref] */
+ NTSTATUS result;
+ } out;
+
+};
+
+#endif /* _HEADER_wbint */
diff --git a/source3/librpc/idl/wbint.idl b/source3/librpc/idl/wbint.idl
new file mode 100644
index 0000000000..f994126711
--- /dev/null
+++ b/source3/librpc/idl/wbint.idl
@@ -0,0 +1,91 @@
+#include "idl_types.h"
+import "lsa.idl";
+
+[
+ uuid("bf09192c-ed60-4928-9dff-d0d7bcb03ed8"),
+ endpoint("ncalrpc:"),
+ pointer_default(unique),
+ version(1.0),
+ helpstring("winbind parent-child protocol")
+]
+interface wbint
+{
+ void wbint_Ping(
+ [in] uint32 in_data,
+ [out] uint32 *out_data
+ );
+
+ NTSTATUS wbint_LookupSid(
+ [in] dom_sid *sid,
+ [out] lsa_SidType *type,
+ [out,string,charset(UTF8)] char **domain,
+ [out,string,charset(UTF8)] char **name
+ );
+
+ NTSTATUS wbint_LookupName(
+ [in,string,charset(UTF8)] char *domain,
+ [in,string,charset(UTF8)] char *name,
+ [in] uint32 flags,
+ [out] lsa_SidType *type,
+ [out] dom_sid *sid
+ );
+
+ NTSTATUS wbint_Sid2Uid(
+ [in,unique,string,charset(UTF8)] char *dom_name,
+ [in] dom_sid *sid,
+ [out] hyper *uid
+ );
+
+ NTSTATUS wbint_Sid2Gid(
+ [in,unique,string,charset(UTF8)] char *dom_name,
+ [in] dom_sid *sid,
+ [out] hyper *gid
+ );
+
+ NTSTATUS wbint_Uid2Sid(
+ [in,unique,string,charset(UTF8)] char *dom_name,
+ [in] hyper uid,
+ [out] dom_sid *sid
+ );
+
+ NTSTATUS wbint_Gid2Sid(
+ [in,unique,string,charset(UTF8)] char *dom_name,
+ [in] hyper gid,
+ [out] dom_sid *sid
+ );
+
+ typedef [public] struct {
+ [string,charset(UTF8)] char *acct_name;
+ [string,charset(UTF8)] char *full_name;
+ [string,charset(UTF8)] char *homedir;
+ [string,charset(UTF8)] char *shell;
+ hyper primary_gid;
+ dom_sid user_sid;
+ dom_sid group_sid;
+ } wbint_userinfo;
+
+ NTSTATUS wbint_QueryUser(
+ [in] dom_sid *sid,
+ [out] wbint_userinfo *info
+ );
+
+ typedef [public] struct {
+ uint32 num_sids;
+ [size_is(num_sids)] dom_sid sids[];
+ } wbint_SidArray;
+
+ typedef [public] struct {
+ uint32 num_rids;
+ [size_is(num_rids)] uint32 rids[];
+ } wbint_RidArray;
+
+ NTSTATUS wbint_LookupUserAliases(
+ [in] wbint_SidArray *sids,
+ [out] wbint_RidArray *rids
+ );
+
+ NTSTATUS wbint_LookupUserGroups(
+ [in] dom_sid *sid,
+ [out] wbint_SidArray *sids
+ );
+} \ No newline at end of file
diff --git a/source3/libsmb/libsmb_context.c b/source3/libsmb/libsmb_context.c
index 8b22ee5023..78c9a551a6 100644
--- a/source3/libsmb/libsmb_context.c
+++ b/source3/libsmb/libsmb_context.c
@@ -692,22 +692,28 @@ void smbc_set_credentials_with_fallback(SMBCCTX *context,
{
smbc_bool use_kerberos = false;
const char *signing_state = "off";
- struct user_auth_info *auth_info = user_auth_info_init(NULL);
+ struct user_auth_info *auth_info = NULL;
- if (auth_info) {
+ if (! context) {
+
+ return;
+ }
+
+ if (! workgroup || ! *workgroup) {
+ workgroup = smbc_getWorkgroup(context);
}
- if (! context ||
- ! workgroup || ! *workgroup ||
- ! user || ! *user ||
- ! password || ! *password) {
+ if (! user) {
+ user = smbc_getUser(context);
+ }
- return;
+ if (! password) {
+ password = "";
}
auth_info = user_auth_info_init(NULL);
- if (auth_info) {
+ if (! auth_info) {
DEBUG(0, ("smbc_set_credentials_with_fallback: allocation fail\n"));
return;
}
diff --git a/source3/locale/net/de.po b/source3/locale/net/de.po
new file mode 100644
index 0000000000..78b13534d7
--- /dev/null
+++ b/source3/locale/net/de.po
@@ -0,0 +1,4822 @@
+# net message translation (german).
+# Copyright (C) 2009 Kai Blin <kai@samba.org>
+# This file is distributed under the same license as the samba package.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: @PACKAGE@\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-08-06 20:51+0200\n"
+"PO-Revision-Date: 2009-08-06 20:45+0200\n"
+"Last-Translator: Kai Blin <kai@samba.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ../../utils/net.c:103
+msgid "Enter machine password: "
+msgstr "Bitte Maschinenpasswort eingeben: "
+
+#: ../../utils/net.c:107
+msgid "Unable to write the machine account password in the secrets database"
+msgstr ""
+
+#: ../../utils/net.c:111
+msgid "Modified trust account password in secrets database\n"
+msgstr ""
+
+#: ../../utils/net.c:115
+msgid ""
+"Machine account password change requires the -f flag.\n"
+"Do NOT use this function unless you know what it does!\n"
+"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
+#, 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
+#, c-format
+msgid "SID for domain %s is: %s\n"
+msgstr ""
+
+#: ../../utils/net.c:175
+msgid "usage: net setlocalsid S-1-5-21-x-y-z\n"
+msgstr ""
+
+#: ../../utils/net.c:195
+msgid "usage: net setdomainsid S-1-5-21-x-y-z\n"
+msgstr ""
+
+#: ../../utils/net.c:213
+msgid "usage: net getdomainsid\n"
+msgstr ""
+
+#: ../../utils/net.c:238
+msgid "Could not fetch local SID\n"
+msgstr ""
+
+#: ../../utils/net.c:242
+#, c-format
+msgid "SID for local machine %s is: %s\n"
+msgstr ""
+
+#: ../../utils/net.c:246
+msgid "Could not fetch domain SID\n"
+msgstr ""
+
+#: ../../utils/net.c:263
+#, c-format
+msgid "get_maxrid: Could not search %s\n"
+msgstr ""
+
+#: ../../utils/net.c:297
+msgid "usage: net maxrid\n"
+msgstr ""
+
+#: ../../utils/net.c:302
+msgid "can't get current maximum rid\n"
+msgstr ""
+
+#: ../../utils/net.c:306
+#, c-format
+msgid "Currently used maximum rid: %d\n"
+msgstr ""
+
+#: ../../utils/net.c:317
+msgid "Run functions using RPC transport"
+msgstr ""
+
+#: ../../utils/net.c:318
+msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands."
+msgstr ""
+
+#: ../../utils/net.c:325
+msgid "Run functions using RAP transport"
+msgstr ""
+
+#: ../../utils/net.c:326
+msgid " Use 'net help rap' to get more extensive information about 'net rap' commands."
+msgstr ""
+
+#: ../../utils/net.c:333
+msgid "Run functions using ADS transport"
+msgstr ""
+
+#: ../../utils/net.c:334
+msgid " Use 'net help ads' to get more extensive information about 'net ads' commands."
+msgstr ""
+
+#: ../../utils/net.c:343
+msgid "Functions on remote opened files"
+msgstr ""
+
+#: ../../utils/net.c:344
+msgid " Use 'net help file' to get more information about 'net file' commands."
+msgstr ""
+
+#: ../../utils/net.c:351
+msgid "Functions on shares"
+msgstr ""
+
+#: ../../utils/net.c:352
+msgid " Use 'net help share' to get more information about 'net share' commands."
+msgstr ""
+
+#: ../../utils/net.c:359
+msgid "Manage sessions"
+msgstr ""
+
+#: ../../utils/net.c:360
+msgid " Use 'net help session' to get more information about 'net session' commands."
+msgstr ""
+
+#: ../../utils/net.c:367 ../../utils/net_rap.c:1291
+msgid "List servers in workgroup"
+msgstr ""
+
+#: ../../utils/net.c:368
+msgid " Use 'net help server' to get more information about 'net server' commands."
+msgstr ""
+
+#: ../../utils/net.c:375
+msgid "List domains/workgroups on network"
+msgstr ""
+
+#: ../../utils/net.c:376
+msgid " Use 'net help domain' to get more information about 'net domain' commands."
+msgstr ""
+
+#: ../../utils/net.c:383
+msgid "Modify printer queue"
+msgstr ""
+
+#: ../../utils/net.c:384
+msgid " Use 'net help printq' to get more information about 'net printq' commands."
+msgstr ""
+
+#: ../../utils/net.c:391
+msgid "Manage users"
+msgstr ""
+
+#: ../../utils/net.c:392
+msgid " Use 'net help user' to get more information about 'net user' commands."
+msgstr ""
+
+#: ../../utils/net.c:399
+msgid "Manage groups"
+msgstr ""
+
+#: ../../utils/net.c:400
+msgid " Use 'net help group' to get more information about 'net group' commands."
+msgstr ""
+
+#: ../../utils/net.c:407
+msgid "Manage group mappings"
+msgstr ""
+
+#: ../../utils/net.c:408
+msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands."
+msgstr ""
+
+#: ../../utils/net.c:415
+msgid "Functions on the SAM database"
+msgstr ""
+
+#: ../../utils/net.c:416
+msgid " Use 'net help sam' to get more information about 'net sam' commands."
+msgstr ""
+
+#: ../../utils/net.c:423
+msgid "Validate username and password"
+msgstr ""
+
+#: ../../utils/net.c:424
+msgid " Use 'net help validate' to get more information about 'net validate' commands."
+msgstr ""
+
+#: ../../utils/net.c:431
+msgid "Modify group memberships"
+msgstr ""
+
+#: ../../utils/net.c:432
+msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands."
+msgstr ""
+
+#: ../../utils/net.c:438
+msgid "Execute remote command on a remote OS/2 server"
+msgstr ""
+
+#: ../../utils/net.c:439
+msgid " Use 'net help admin' to get more information about 'net admin' commands."
+msgstr ""
+
+#: ../../utils/net.c:445
+msgid "List/modify running services"
+msgstr ""
+
+#: ../../utils/net.c:446
+msgid " Use 'net help service' to get more information about 'net service' commands."
+msgstr ""
+
+#: ../../utils/net.c:453
+msgid "Change user password on target server"
+msgstr ""
+
+#: ../../utils/net.c:454
+msgid " Use 'net help password' to get more information about 'net password' commands."
+msgstr ""
+
+#: ../../utils/net.c:460
+msgid "Change the trust password"
+msgstr ""
+
+#: ../../utils/net.c:461
+msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'."
+msgstr ""
+
+#: ../../utils/net.c:467
+msgid "Change the secret password"
+msgstr ""
+
+#: ../../utils/net.c:468
+msgid ""
+" net [options] changesecretpw\n"
+" Change the ADS domain member machine account password in secrets.tdb.\n"
+" Do NOT use this function unless you know what it does.\n"
+" Requires the -f flag to work."
+msgstr ""
+
+#: ../../utils/net.c:477
+msgid "Show/set time"
+msgstr ""
+
+#: ../../utils/net.c:478
+msgid " Use 'net help time' to get more information about 'net time' commands."
+msgstr ""
+
+#: ../../utils/net.c:484
+msgid "Look up host names/IP addresses"
+msgstr ""
+
+#: ../../utils/net.c:485
+msgid " Use 'net help lookup' to get more information about 'net lookup' commands."
+msgstr ""
+
+#: ../../utils/net.c:491
+msgid "Join a domain/AD"
+msgstr ""
+
+#: ../../utils/net.c:492
+msgid " Use 'net help join' to get more information about 'net join'."
+msgstr ""
+
+#: ../../utils/net.c:498
+msgid "Join/unjoin (remote) machines to/from a domain/AD"
+msgstr ""
+
+#: ../../utils/net.c:499
+msgid " Use 'net help dom' to get more information about 'net dom' commands."
+msgstr ""
+
+#: ../../utils/net.c:505
+msgid "Operate on the cache tdb file"
+msgstr ""
+
+#: ../../utils/net.c:506
+msgid " Use 'net help cache' to get more information about 'net cache' commands."
+msgstr ""
+
+#: ../../utils/net.c:512
+msgid "Get the SID for the local domain"
+msgstr ""
+
+#: ../../utils/net.c:513
+msgid " net getlocalsid"
+msgstr ""
+
+#: ../../utils/net.c:518
+msgid "Set the SID for the local domain"
+msgstr ""
+
+#: ../../utils/net.c:519
+msgid " net setlocalsid S-1-5-21-x-y-z"
+msgstr ""
+
+#: ../../utils/net.c:524
+msgid "Set domain SID on member servers"
+msgstr ""
+
+#: ../../utils/net.c:525
+msgid " net setdomainsid S-1-5-21-x-y-z"
+msgstr ""
+
+#: ../../utils/net.c:530
+msgid "Get domain SID on member servers"
+msgstr ""
+
+#: ../../utils/net.c:531
+msgid " net getdomainsid"
+msgstr ""
+
+#: ../../utils/net.c:536
+msgid "Display the maximul RID currently used"
+msgstr ""
+
+#: ../../utils/net.c:537
+msgid " net maxrid"
+msgstr ""
+
+#: ../../utils/net.c:542
+msgid "IDmap functions"
+msgstr ""
+
+#: ../../utils/net.c:543
+msgid " Use 'net help idmap to get more information about 'net idmap' commands."
+msgstr ""
+
+#: ../../utils/net.c:549
+msgid "Display server status"
+msgstr ""
+
+#: ../../utils/net.c:550
+msgid " Use 'net help status' to get more information about 'net status' commands."
+msgstr ""
+
+#: ../../utils/net.c:556
+msgid "Manage user-modifiable shares"
+msgstr ""
+
+#: ../../utils/net.c:557
+msgid " Use 'net help usershare to get more information about 'net usershare' commands."
+msgstr ""
+
+#: ../../utils/net.c:563
+msgid "Display list of all users with SID"
+msgstr ""
+
+#: ../../utils/net.c:564
+msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'."
+msgstr ""
+
+#: ../../utils/net.c:570
+msgid "Manage Samba registry based configuration"
+msgstr ""
+
+#: ../../utils/net.c:571
+msgid " Use 'net help conf' to get more information about 'net conf' commands."
+msgstr ""
+
+#: ../../utils/net.c:577
+msgid "Manage the Samba registry"
+msgstr ""
+
+#: ../../utils/net.c:578
+msgid " Use 'net help registry' to get more information about 'net registry' commands."
+msgstr ""
+
+#: ../../utils/net.c:584
+msgid "Open a lua interpreter"
+msgstr ""
+
+#: ../../utils/net.c:585
+msgid " Use 'net help lua' to get more information about 'net lua' commands."
+msgstr ""
+
+#: ../../utils/net.c:591
+msgid "Process Win32 *.evt eventlog files"
+msgstr ""
+
+#: ../../utils/net.c:592
+msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands."
+msgstr ""
+
+#: ../../utils/net.c:600
+msgid "Manage AFS tokens"
+msgstr ""
+
+#: ../../utils/net.c:601
+msgid " Use 'net help afs' to get more information about 'net afs' commands."
+msgstr ""
+
+#: ../../utils/net.c:609
+msgid "Print usage information"
+msgstr ""
+
+#: ../../utils/net.c:610
+msgid " Use 'net help help' to list usage information for 'net' commands."
+msgstr ""
+
+#: ../../utils/net.c:639
+msgid "Encrypt SMB transport (UNIX extended servers only)"
+msgstr ""
+
+#: ../../utils/net.c:703
+msgid ""
+"\n"
+"Invalid ip address specified\n"
+msgstr ""
+
+#: ../../utils/net.c:718
+#, c-format
+msgid ""
+"\n"
+"Invalid option %s: %s\n"
+msgstr ""
+"\n"
+"Ungültige Option %s: %s\n"
+
+#: ../../utils/net_ads.c:52 ../../utils/net_ads.c:392
+msgid "CLDAP query failed!\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:56
+#, c-format
+msgid ""
+"Information for Domain Controller: %s\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:59
+msgid "Response Type: "
+msgstr ""
+
+#: ../../utils/net_ads.c:72
+#, c-format
+msgid "GUID: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:74
+#, c-format
+msgid ""
+"Flags:\n"
+"\tIs a PDC: %s\n"
+"\tIs a GC of the forest: %s\n"
+"\tIs an LDAP server: %s\n"
+"\tSupports DS: %s\n"
+"\tIs running a KDC: %s\n"
+"\tIs running time services: %s\n"
+"\tIs the closest DC: %s\n"
+"\tIs writable: %s\n"
+"\tHas a hardware clock: %s\n"
+"\tIs a non-domain NC serviced by LDAP server: %s\n"
+"\tIs NT6 DC that has some secrets: %s\n"
+"\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
+msgid "yes"
+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
+msgid "no"
+msgstr ""
+
+#: ../../utils/net_ads.c:101
+#, c-format
+msgid "Forest:\t\t\t%s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:102
+#, c-format
+msgid "Domain:\t\t\t%s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:103
+#, c-format
+msgid "Domain Controller:\t%s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:105
+#, c-format
+msgid "Pre-Win2k Domain:\t%s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:106
+#, c-format
+msgid "Pre-Win2k Hostname:\t%s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:108
+#, c-format
+msgid "User name:\t%s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:110
+#, c-format
+msgid "Server Site Name :\t\t%s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:111
+#, c-format
+msgid "Client Site Name :\t\t%s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:113
+#, c-format
+msgid "NT Version: %d\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:114
+#, c-format
+msgid "LMNT Token: %.2x\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:115
+#, c-format
+msgid "LM20 Token: %.2x\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:130
+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
+msgid "Didn't find the cldap server!\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:160
+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
+msgid "Didn't find the ldap server!\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:182
+msgid "Failed to get server's current time!\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:187
+#, c-format
+msgid "LDAP server: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:188
+#, c-format
+msgid "LDAP server name: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:189
+#, c-format
+msgid "Realm: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:190
+#, c-format
+msgid "Bind Path: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:191
+#, c-format
+msgid "LDAP port: %d\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:192
+#, c-format
+msgid "Server time: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:195
+#, c-format
+msgid "KDC server: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:196
+#, c-format
+msgid "Server time offset: %d\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:374
+msgid ""
+"Usage:\n"
+"net ads workgroup\n"
+" Print the workgroup name\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:397
+#, c-format
+msgid "Workgroup: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:458
+#, c-format
+msgid "ads_user_add: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:463
+#, c-format
+msgid "ads_user_add: User %s already exists\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:477
+#, c-format
+msgid "Could not add user %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:484 ../../utils/net_ads.c:497
+#, c-format
+msgid "User %s added\n"
+msgstr ""
+
+#. password didn't set, delete account
+#: ../../utils/net_ads.c:503
+#, c-format
+msgid "Could not add user %s. Error setting password %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:551
+#, c-format
+msgid "ads_user_info: failed to escape user %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:569
+#, c-format
+msgid "ads_search: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:575
+msgid "ads_pull_uint32 failed\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:582
+#, c-format
+msgid "ads_domain_sid: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:642
+#, c-format
+msgid "User %s does not exist.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:652
+#, c-format
+msgid "User %s deleted\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:656
+#, c-format
+msgid "Error deleting user %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:669
+msgid "Add an AD user"
+msgstr ""
+
+#: ../../utils/net_ads.c:670
+msgid ""
+"net ads user add\n"
+" Add an AD user"
+msgstr ""
+
+#: ../../utils/net_ads.c:677
+msgid "Display information about an AD user"
+msgstr ""
+
+#: ../../utils/net_ads.c:678
+msgid ""
+"net ads user info\n"
+" Display information about an AD user"
+msgstr ""
+
+#: ../../utils/net_ads.c:685
+msgid "Delete an AD user"
+msgstr ""
+
+#: ../../utils/net_ads.c:686
+msgid ""
+"net ads user delete\n"
+" Delete an AD user"
+msgstr ""
+
+#: ../../utils/net_ads.c:699
+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
+msgid ""
+"\n"
+"User name Comment\n"
+"-----------------------------\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:751
+#, c-format
+msgid "ads_group_add: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:756
+#, c-format
+msgid "ads_group_add: Group %s already exists\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:769
+#, c-format
+msgid "Group %s added\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:772
+#, c-format
+msgid "Could not add group %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:801
+#, c-format
+msgid "Group %s does not exist.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:811
+#, c-format
+msgid "Group %s deleted\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:815
+#, c-format
+msgid "Error deleting group %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:828
+msgid "Add an AD group"
+msgstr ""
+
+#: ../../utils/net_ads.c:829
+msgid ""
+"net ads group add\n"
+" Add an AD group"
+msgstr ""
+
+#: ../../utils/net_ads.c:836
+msgid "Delete an AD group"
+msgstr ""
+
+#: ../../utils/net_ads.c:837
+msgid ""
+"net ads group delete\n"
+" Delete an AD group"
+msgstr ""
+
+#: ../../utils/net_ads.c:850
+msgid ""
+"Usage:\n"
+"net ads group\n"
+" List AD groups\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:862 ../../utils/net_rpc.c:2230
+msgid ""
+"\n"
+"Group name Comment\n"
+"-----------------------------\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:884
+msgid ""
+"Usage:\n"
+"net ads status\n"
+" Display machine account details\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:896
+#, c-format
+msgid "ads_find_machine_acct: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:902
+#, c-format
+msgid "No machine account for '%s' found\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:926
+msgid ""
+"Usage:\n"
+"net ads leave\n"
+" Leave an AD domain\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:933
+msgid "No realm set, are we joined ?\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:938 ../../utils/net_ads.c:1260
+msgid "Could not initialise talloc context.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:948
+msgid "Could not initialise unjoin context.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:968
+#, c-format
+msgid "Failed to leave domain: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:975
+#, c-format
+msgid "Deleted account for '%s' in realm '%s'\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:982
+#, c-format
+msgid "Disabled account for '%s' in realm '%s'\n"
+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
+#, c-format
+msgid "Machine '%s' Left domain '%s'\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1035
+msgid ""
+"Usage:\n"
+"net ads testjoin\n"
+" Test if the existing join is ok\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1044
+#, c-format
+msgid "Join to domain is not valid: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1049
+#, c-format
+msgid "Join is OK\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1060
+msgid "Host is not configured as a member server.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1065 ../../utils/net_rpc.c:436
+#, 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
+#, c-format
+msgid "realm must be set in in %s for ADS join to succeed.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1105
+#, c-format
+msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1212
+msgid ""
+"net ads join [options]\n"
+"Valid options:\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1214
+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
+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"
+" E.g. \"createcomputer=Computers/Servers/Unix\"\n"
+" NB: A backslash '\\' is used as escape at multiple levels and may\n"
+" need to be doubled or even quadrupled. It is not used as a separator.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1221
+msgid " osName=string Set the operatingSystem attribute during the join.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1222
+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"
+" Also, the operatingSystemService attribute is also set when along with\n"
+" the two other attributes.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1254
+msgid "Invalid configuration. Exiting....\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1283
+msgid "Please supply a valid OU path.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1290
+msgid "Please supply a operating system name.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1297
+msgid "Please supply a valid operating system version.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1308
+msgid "Please supply a valid domain name\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1339
+#, c-format
+msgid ""
+"The workgroup in %s does not match the short\n"
+"domain name obtained from the server.\n"
+"Using the name [%s] from the server.\n"
+"You should set \"workgroup = %s\" in %s.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1347
+#, c-format
+msgid "Using short domain name -- %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1350
+#, c-format
+msgid "Joined '%s' to realm '%s'\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1353
+#, c-format
+msgid "Joined '%s' to domain '%s'\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1377 ../../utils/net_ads.c:1433
+msgid "DNS update failed!\n"
+msgstr ""
+
+#. issue an overall failure message at the end.
+#: ../../utils/net_ads.c:1391 ../../utils/net_dom.c:198
+#, c-format
+msgid "Failed to join domain: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1414
+msgid ""
+"Usage:\n"
+"net ads dns register\n"
+" Register hostname with DNS\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1421
+msgid "Could not initialise talloc context\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1439
+msgid "Successfully registered hostname with DNS\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1447
+msgid "DNS update support not enabled at compile time!\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1466
+msgid ""
+"Usage:\n"
+"net ads dns gethostbyname <server> <name>\n"
+" Look up hostname from the AD\n"
+" server\tName server to use\n"
+" name\tName to look up\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1476
+#, c-format
+msgid "do_gethostbyname returned %d\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1488
+msgid "Add host dns entry to AD"
+msgstr ""
+
+#: ../../utils/net_ads.c:1489
+msgid ""
+"net ads dns register\n"
+" Add host dns entry to AD"
+msgstr ""
+
+#: ../../utils/net_ads.c:1496
+msgid "Look up host"
+msgstr ""
+
+#: ../../utils/net_ads.c:1497
+msgid ""
+"net ads dns gethostbyname\n"
+" Look up host"
+msgstr ""
+
+#: ../../utils/net_ads.c:1512
+msgid ""
+"\n"
+"net ads printer search <printer>\n"
+"\tsearch for a printer in the directory\n"
+"\n"
+"net ads printer info <printer> <server>\n"
+"\tlookup info in directory for printer on server\n"
+"\t(note: printer defaults to \"*\", server defaults to local)\n"
+"\n"
+"net ads printer publish <printername>\n"
+"\tpublish printer in directory\n"
+"\t(note: printer name is required)\n"
+"\n"
+"net ads printer remove <printername>\n"
+"\tremove printer from directory\n"
+"\t(note: printer name is required)\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1536
+msgid ""
+"Usage:\n"
+"net ads printer search\n"
+" List printers in the AD\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1549
+#, c-format
+msgid "ads_find_printer: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1556
+msgid "No results found\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1576
+msgid ""
+"Usage:\n"
+"net ads printer info [printername [servername]]\n"
+" Display printer info from AD\n"
+" printername\tPrinter name or wildcard\n"
+" servername\tName of the print server\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1603
+#, c-format
+msgid "Server '%s' not found: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1611 ../../utils/net_ads.c:1794
+#, c-format
+msgid "Printer '%s' not found\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1640
+msgid ""
+"Usage:\n"
+"net ads printer publish <printername> [servername]\n"
+" Publish printer in AD\n"
+" printername\tName of the printer\n"
+" servername\tName of the print server\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1675
+#, c-format
+msgid "Unable to open a connnection to %s to obtain data for %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1688
+#, c-format
+msgid "Could not find machine account for server %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1704 ../../utils/net_ads.c:1713
+msgid "Internal error, out of memory!"
+msgstr ""
+
+#: ../../utils/net_ads.c:1724
+#, c-format
+msgid "Unable to open a connnection to the spoolss pipe on %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1766
+msgid ""
+"Usage:\n"
+"net ads printer remove <printername> [servername]\n"
+" Remove a printer from the AD\n"
+" printername\tName of the printer\n"
+" servername\tName of the print server\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1787
+#, c-format
+msgid "ads_find_printer_on_server: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1806
+#, c-format
+msgid "ads_del_dn: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1822
+msgid "Search for a printer"
+msgstr ""
+
+#: ../../utils/net_ads.c:1823
+msgid ""
+"net ads printer search\n"
+" Search for a printer"
+msgstr ""
+
+#: ../../utils/net_ads.c:1830
+msgid "Display printer information"
+msgstr ""
+
+#: ../../utils/net_ads.c:1831
+msgid ""
+"net ads printer info\n"
+" Display printer information"
+msgstr ""
+
+#: ../../utils/net_ads.c:1838
+msgid "Publish a printer"
+msgstr ""
+
+#: ../../utils/net_ads.c:1839
+msgid ""
+"net ads printer publish\n"
+" Publish a printer"
+msgstr ""
+
+#: ../../utils/net_ads.c:1846
+msgid "Delete a printer"
+msgstr ""
+
+#: ../../utils/net_ads.c:1847
+msgid ""
+"net ads printer remove\n"
+" Delete a printer"
+msgstr ""
+
+#: ../../utils/net_ads.c:1869
+msgid ""
+"Usage:\n"
+"net ads password <username>\n"
+" Change password for user\n"
+" username\tName of user to change password for\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1877
+msgid "You must supply an administrator username/password\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1883
+msgid "ERROR: You must say which username to change password for\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1915
+msgid "Didn't find the kerberos server!\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1923 ../../utils/net_rpc.c:756
+#, fuzzy, c-format
+msgid "Enter new password for %s:"
+msgstr "Bitte Maschinenpasswort eingeben: "
+
+#: ../../utils/net_ads.c:1933 ../../utils/net_ads.c:1982
+#, c-format
+msgid "Password change failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1938
+#, c-format
+msgid "Password change for %s completed.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1952
+msgid ""
+"Usage:\n"
+"net ads changetrustpw\n"
+" Change the machine account's trust password\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1977
+#, c-format
+msgid "Changing password for principal: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1988
+#, c-format
+msgid "Password change for principal %s succeeded.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1991
+msgid "Attempting to update system keytab with new password.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:1993
+msgid "Failed to update system keytab.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2009
+msgid ""
+"\n"
+"net ads search <expression> <attributes...>\n"
+"\n"
+"Perform a raw LDAP search on a ADS server and dump the results.\n"
+"The expression is a standard LDAP search expression, and the\n"
+"attributes are a list of LDAP fields to show in the results.\n"
+"\n"
+"Example: net ads search '(objectCategory=group)' sAMAccountName\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2046 ../../utils/net_ads.c:2107 ../../utils/net_ads.c:2171 ../../utils/net_ads_gpo.c:250
+#, c-format
+msgid "search failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2051 ../../utils/net_ads.c:2176 ../../utils/net_ads_gpo.c:256
+#, c-format
+msgid ""
+"Got %d replies\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2069
+msgid ""
+"\n"
+"net ads dn <dn> <attributes...>\n"
+"\n"
+"perform a raw LDAP search on a ADS server and dump the results\n"
+"The DN standard LDAP DN, and the attributes are a list of LDAP fields \n"
+"to show in the results\n"
+"\n"
+"Example: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' sAMAccountName\n"
+"\n"
+"Note: the DN must be provided properly escaped. See RFC 4514 for details\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2129
+msgid ""
+"\n"
+"net ads sid <sid> <attributes...>\n"
+"\n"
+"perform a raw LDAP search on a ADS server and dump the results\n"
+"The SID is in string format, and the attributes are a list of LDAP fields \n"
+"to show in the results\n"
+"\n"
+"Example: net ads sid 'S-1-5-32' distinguishedName\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2164
+msgid "could not convert sid\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2193
+msgid ""
+"Usage:\n"
+"net ads keytab flush\n"
+" Delete the whole keytab\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2214
+msgid ""
+"Usage:\n"
+"net ads keytab add <principal> [principal ...]\n"
+" Add principals to local keytab\n"
+" principal\tKerberos principal to add to keytab\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2222
+msgid "Processing principals to add...\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2239
+msgid ""
+"Usage:\n"
+"net ads keytab create\n"
+" Create new default keytab\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2258
+msgid ""
+"Usage:\n"
+"net ads keytab list [keytab]\n"
+" List a local keytab\n"
+" keytab\tKeytab to list\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2280
+msgid "Add a service principal"
+msgstr ""
+
+#: ../../utils/net_ads.c:2281
+msgid ""
+"net ads keytab add\n"
+" Add a service principal"
+msgstr ""
+
+#: ../../utils/net_ads.c:2288
+msgid "Create a fresh keytab"
+msgstr ""
+
+#: ../../utils/net_ads.c:2289
+msgid ""
+"net ads keytab create\n"
+" Create a fresh keytab"
+msgstr ""
+
+#: ../../utils/net_ads.c:2296
+msgid "Remove all keytab entries"
+msgstr ""
+
+#: ../../utils/net_ads.c:2297
+msgid ""
+"net ads keytab flush\n"
+" Remove all keytab entries"
+msgstr ""
+
+#: ../../utils/net_ads.c:2304
+msgid "List a keytab"
+msgstr ""
+
+#: ../../utils/net_ads.c:2305
+msgid ""
+"net ads keytab list\n"
+" List a keytab"
+msgstr ""
+
+#: ../../utils/net_ads.c:2312
+msgid ""
+"\n"
+"Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2324
+msgid ""
+"Usage:\n"
+"net ads kerberos renew\n"
+" Renew TGT from existing credential cache\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2332
+#, c-format
+msgid "failed to renew kerberos ticket: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2347
+msgid ""
+"Usage:\n"
+"net ads kerberos pac\n"
+" Dump the Kerberos PAC\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2372
+#, c-format
+msgid "failed to query kerberos PAC: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2381
+#, c-format
+msgid "The Pac: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2397
+msgid ""
+"Usage:\n"
+"net ads kerberos kinit\n"
+" Get Ticket Granting Ticket (TGT) for the user\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2421
+#, c-format
+msgid "failed to kinit password: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads.c:2435
+msgid "Retrieve Ticket Granting Ticket (TGT)"
+msgstr ""
+
+#: ../../utils/net_ads.c:2436
+msgid ""
+"net ads kerberos kinit\n"
+" Receive Ticket Granting Ticket (TGT)"
+msgstr ""
+
+#: ../../utils/net_ads.c:2443
+msgid "Renew Ticket Granting Ticket from credential cache"
+msgstr ""
+
+#: ../../utils/net_ads.c:2444
+msgid ""
+"net ads kerberos renew\n"
+" Renew Ticket Granting Ticket (TGT) from credential cache"
+msgstr ""
+
+#: ../../utils/net_ads.c:2452
+msgid "Dump Kerberos PAC"
+msgstr ""
+
+#: ../../utils/net_ads.c:2453
+msgid ""
+"net ads kerberos pac\n"
+" Dump Kerberos PAC"
+msgstr ""
+
+#: ../../utils/net_ads.c:2469
+msgid "Display details on remote ADS server"
+msgstr ""
+
+#: ../../utils/net_ads.c:2470
+msgid ""
+"net ads info\n"
+" Display details on remote ADS server"
+msgstr ""
+
+#: ../../utils/net_ads.c:2477
+msgid "Join the local machine to ADS realm"
+msgstr ""
+
+#: ../../utils/net_ads.c:2478
+msgid ""
+"net ads join\n"
+" Join the local machine to ADS realm"
+msgstr ""
+
+#: ../../utils/net_ads.c:2485
+msgid "Validate machine account"
+msgstr ""
+
+#: ../../utils/net_ads.c:2486
+msgid ""
+"net ads testjoin\n"
+" Validate machine account"
+msgstr ""
+
+#: ../../utils/net_ads.c:2493
+msgid "Remove the local machine from ADS"
+msgstr ""
+
+#: ../../utils/net_ads.c:2494
+msgid ""
+"net ads leave\n"
+" Remove the local machine from ADS"
+msgstr ""
+
+#: ../../utils/net_ads.c:2501
+msgid "Display machine account details"
+msgstr ""
+
+#: ../../utils/net_ads.c:2502
+msgid ""
+"net ads status\n"
+" Display machine account details"
+msgstr ""
+
+#: ../../utils/net_ads.c:2509
+msgid "List/modify users"
+msgstr ""
+
+#: ../../utils/net_ads.c:2510
+msgid ""
+"net ads user\n"
+" List/modify users"
+msgstr ""
+
+#: ../../utils/net_ads.c:2517
+msgid "List/modify groups"
+msgstr ""
+
+#: ../../utils/net_ads.c:2518
+msgid ""
+"net ads group\n"
+" List/modify groups"
+msgstr ""
+
+#: ../../utils/net_ads.c:2525
+msgid "Issue dynamic DNS update"
+msgstr ""
+
+#: ../../utils/net_ads.c:2526
+msgid ""
+"net ads dns\n"
+" Issue dynamic DNS update"
+msgstr ""
+
+#: ../../utils/net_ads.c:2533
+msgid "Change user passwords"
+msgstr ""
+
+#: ../../utils/net_ads.c:2534
+msgid ""
+"net ads password\n"
+" Change user passwords"
+msgstr ""
+
+#: ../../utils/net_ads.c:2541
+#, fuzzy
+msgid "Change trust account password"
+msgstr "Bitte Maschinenpasswort eingeben: "
+
+#: ../../utils/net_ads.c:2542
+msgid ""
+"net ads changetrustpw\n"
+" Change trust account password"
+msgstr ""
+
+#: ../../utils/net_ads.c:2549
+msgid "List/modify printer entries"
+msgstr ""
+
+#: ../../utils/net_ads.c:2550
+msgid ""
+"net ads printer\n"
+" List/modify printer entries"
+msgstr ""
+
+#: ../../utils/net_ads.c:2557
+msgid "Issue LDAP search using filter"
+msgstr ""
+
+#: ../../utils/net_ads.c:2558
+msgid ""
+"net ads search\n"
+" Issue LDAP search using filter"
+msgstr ""
+
+#: ../../utils/net_ads.c:2565
+msgid "Issue LDAP search by DN"
+msgstr ""
+
+#: ../../utils/net_ads.c:2566
+msgid ""
+"net ads dn\n"
+" Issue LDAP search by DN"
+msgstr ""
+
+#: ../../utils/net_ads.c:2573
+msgid "Issue LDAP search by SID"
+msgstr ""
+
+#: ../../utils/net_ads.c:2574
+msgid ""
+"net ads sid\n"
+" Issue LDAP search by SID"
+msgstr ""
+
+#: ../../utils/net_ads.c:2581
+msgid "Display workgroup name"
+msgstr ""
+
+#: ../../utils/net_ads.c:2582
+msgid ""
+"net ads workgroup\n"
+" Display the workgroup name"
+msgstr ""
+
+#: ../../utils/net_ads.c:2589
+msgid "Perfom CLDAP query on DC"
+msgstr ""
+
+#: ../../utils/net_ads.c:2590
+msgid ""
+"net ads lookup\n"
+" Find the ADS DC using CLDAP lookups"
+msgstr ""
+
+#: ../../utils/net_ads.c:2597
+msgid "Manage local keytab file"
+msgstr ""
+
+#: ../../utils/net_ads.c:2598
+msgid ""
+"net ads keytab\n"
+" Manage local keytab file"
+msgstr ""
+
+#: ../../utils/net_ads.c:2605
+msgid "Manage group policy objects"
+msgstr ""
+
+#: ../../utils/net_ads.c:2606
+msgid ""
+"net ads gpo\n"
+" Manage group policy objects"
+msgstr ""
+
+#: ../../utils/net_ads.c:2613
+msgid "Manage kerberos keytab"
+msgstr ""
+
+#: ../../utils/net_ads.c:2614
+msgid ""
+"net ads kerberos\n"
+" Manage kerberos keytab"
+msgstr ""
+
+#: ../../utils/net_ads.c:2627
+msgid "ADS support not compiled in\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:40
+msgid ""
+"Usage:\n"
+"net ads gpo refresh <username|machinename>\n"
+" Lists all GPOs assigned to an account and downloads them\n"
+" username\tUser to refresh GPOs for\n"
+" machinename\tMachine to refresh GPOs for\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:56
+#, c-format
+msgid "failed to connect AD server: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:62
+#, c-format
+msgid "failed to find samaccount for %s\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:70
+#, c-format
+msgid ""
+"\n"
+"%s: '%s' has dn: '%s'\n"
+"\n"
+msgstr ""
+
+#: ../../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
+msgid "user"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:74
+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
+#, 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
+msgid "finished\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:87
+msgid "* fetching GPO List "
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:96
+msgid "* Refreshing Group Policy Data "
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:107
+msgid "* storing GPO list to registry "
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:122
+msgid "* dumping GPO list\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:151
+msgid "* re-reading GPO list from registry "
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:167
+msgid "* dumping GPO list from registry\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:226
+msgid ""
+"Usage:\n"
+"net ads gpo listall\n"
+" List all GPOs on the DC\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:270
+#, c-format
+msgid "ads_parse_gpo failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:300
+msgid ""
+"Usage:\n"
+"net ads gpo list <username|machinename>\n"
+" Lists all GPOs for machine/user\n"
+" username\tUser to list GPOs for\n"
+" machinename\tMachine to list GPOs for\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:327
+#, c-format
+msgid "%s: '%s' has dn: '%s'\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:451
+msgid ""
+"Usage:\n"
+"net ads gpo linkget <container>\n"
+" Lists gPLink of a containter\n"
+" container\tContainer to get link for\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:470
+#, c-format
+msgid "get link for %s failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:492
+msgid ""
+"Usage:\n"
+"net ads gpo linkadd <linkdn> <gpodn> [options]\n"
+" Link a container to a GPO\n"
+" linkdn\tContainer to link to a GPO\n"
+" gpodn\tGPO to link container to\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:497
+msgid ""
+"note: DNs must be provided properly escaped.\n"
+"See RFC 4514 for details\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:518
+#, c-format
+msgid "link add failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:579
+msgid ""
+"Usage:\n"
+"net ads gpo getgpo <gpo>\n"
+" List speciefied GPO\n"
+" gpo\t\tGPO to list\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:603
+#, c-format
+msgid "get gpo for [%s] failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:634
+msgid "List specified GPO"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:635
+msgid ""
+"net ads gpo getgpo\n"
+" List specified GPO"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:642
+msgid "Link a container to a GPO"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:643
+msgid ""
+"net ads gpo linkadd\n"
+" Link a container to a GPO"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:660
+msgid "Lists gPLink of containter"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:661
+msgid ""
+"net ads gpo linkget\n"
+" Lists gPLink of containter"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:668
+msgid "Lists all GPOs for machine/user"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:669
+msgid ""
+"net ads gpo list\n"
+" Lists all GPOs for machine/user"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:676
+msgid "Lists all GPOs on a DC"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:677
+msgid ""
+"net ads gpo listall\n"
+" Lists all GPOs on a DC"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:684
+msgid "Lists all GPOs assigned to an account and downloads them"
+msgstr ""
+
+#: ../../utils/net_ads_gpo.c:686
+msgid ""
+"net ads gpo refresh\n"
+" Lists all GPOs assigned to an account and downloads them"
+msgstr ""
+
+#: ../../utils/net_afs.c:25
+msgid ""
+" net afs key filename\n"
+"\tImports a OpenAFS KeyFile into our secrets.tdb\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:27
+msgid ""
+" net afs impersonate <user> <cell>\n"
+"\tCreates a token for user@cell\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:38
+msgid "usage: 'net afs key <keyfile> cell'\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:43
+msgid "Could not open secrets.tdb\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:48
+#, c-format
+msgid "Could not open %s\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:53
+msgid "Could not read keyfile\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:58
+msgid "Could not write keyfile to secrets.tdb\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:71
+#, c-format
+msgid "Usage: net afs impersonate <user> <cell>\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:78
+#, c-format
+msgid "Could not create token\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:83
+#, c-format
+msgid "Could not set token into kernel\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:87
+#, c-format
+msgid "Success: %s@%s\n"
+msgstr ""
+
+#: ../../utils/net_afs.c:98
+msgid "Import an OpenAFS keyfile"
+msgstr ""
+
+#: ../../utils/net_afs.c:99
+msgid ""
+"net afs key <filename>\n"
+" Import kefile from <filename>."
+msgstr ""
+
+#: ../../utils/net_afs.c:106
+msgid "Get a user token"
+msgstr ""
+
+#: ../../utils/net_afs.c:107
+msgid ""
+"net afs impersonate <user> <cell>\n"
+" Create token for user@cell"
+msgstr ""
+
+#: ../../utils/net_cache.c:74
+#, c-format
+msgid "Key: %s\t Timeout: %s\t Value: %s %s\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:75
+msgid "(expired)"
+msgstr ""
+
+#: ../../utils/net_cache.c:84
+#, c-format
+msgid "Couldn't delete entry! key = %s\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:158
+msgid ""
+"\n"
+"Usage:\n"
+"net cache add <key string> <data string> <timeout>\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:170
+msgid "Invalid timeout argument.\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:175
+msgid "New cache entry stored successfully.\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:179
+msgid "Entry couldn't be added. Perhaps there's already such a key.\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:195
+msgid ""
+"\n"
+"Usage: net cache del <key string>\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:200
+msgid "Entry deleted.\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:204
+msgid "Couldn't delete specified entry\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:223
+msgid ""
+"\n"
+"Usage: net cache get <key>\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:233
+msgid "Failed to find entry\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:250
+msgid "Usage: net cache search <pattern>\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:272
+msgid ""
+"Usage:\n"
+"net cache list\n"
+" List all cache entries.\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:293 ../../utils/net_cache.c:306
+msgid ""
+"Usage:\n"
+"net cache flush\n"
+" Delete all cache entries.\n"
+msgstr ""
+
+#: ../../utils/net_cache.c:331
+msgid "Add new cache entry"
+msgstr ""
+
+#: ../../utils/net_cache.c:332
+msgid ""
+"net cache add <key string> <data string> <timeout>\n"
+" Add new cache entry.\n"
+" key string\tKey string to add cache data under.\n"
+" data string\tData to store under given key.\n"
+" timeout\tTimeout for cache data."
+msgstr ""
+
+#: ../../utils/net_cache.c:342
+msgid "Delete existing cache entry by key"
+msgstr ""
+
+#: ../../utils/net_cache.c:343
+msgid ""
+"net cache del <key string>\n"
+" Delete existing cache entry by key.\n"
+" key string\tKey string to delete."
+msgstr ""
+
+#: ../../utils/net_cache.c:351
+msgid "Get cache entry by key"
+msgstr ""
+
+#: ../../utils/net_cache.c:352
+msgid ""
+"net cache get <key string>\n"
+" Get cache entry by key.\n"
+" key string\tKey string to look up cache entry for."
+msgstr ""
+
+#: ../../utils/net_cache.c:361
+msgid "Search entry by pattern"
+msgstr ""
+
+#: ../../utils/net_cache.c:362
+msgid ""
+"net cache search <pattern>\n"
+" Search entry by pattern.\n"
+" pattern\tPattern to search for in cache."
+msgstr ""
+
+#: ../../utils/net_cache.c:370
+msgid "List all cache entries"
+msgstr ""
+
+#: ../../utils/net_cache.c:371
+msgid ""
+"net cache list\n"
+" List all cache entries"
+msgstr ""
+
+#: ../../utils/net_cache.c:378
+msgid "Delete all cache entries"
+msgstr ""
+
+#: ../../utils/net_cache.c:379
+msgid ""
+"net cache flush\n"
+" Delete all cache entries"
+msgstr ""
+
+#: ../../utils/net_cache.c:386
+msgid "Move transient cache content to stable storage"
+msgstr ""
+
+#: ../../utils/net_cache.c:387
+msgid ""
+"net cache stabilize\n"
+" Move transient cache content to stable storage"
+msgstr ""
+
+#: ../../utils/net_conf.c:42
+msgid "USAGE: net conf list\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:49
+msgid ""
+"USAGE: net conf import [--test|-T] <filename> [<servicename>]\n"
+"\t[--test|-T] testmode - do not act, just print what would be done\n"
+"\t<servicename> only import service <servicename>, ignore the rest\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:61
+msgid "USAGE: net conf listshares\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:68
+msgid "USAGE: net conf drop\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:75
+msgid "USAGE: net conf showshare <sharename>\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:82
+msgid ""
+"USAGE: net conf addshare <sharename> <path> [writeable={y|N} [guest_ok={y|N} [<comment>]]\n"
+"\t<sharename> the new share name.\n"
+"\t<path> the path on the filesystem to export.\n"
+"\twriteable={y|N} set \"writeable to \"yes\" or \"no\" (default) on this share.\n"
+"\tguest_ok={y|N} set \"guest ok\" to \"yes\" or \"no\" (default) on this share.\n"
+"\t<comment> optional comment for the new share.\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:97
+msgid "USAGE: net conf delshare <sharename>\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:104
+msgid "USAGE: net conf setparm <section> <param> <value>\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:111
+msgid "USAGE: net conf getparm <section> <param>\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:118
+msgid "USAGE: net conf delparm <section> <param>\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:125
+msgid "USAGE: net conf getincludes <section>\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:132
+msgid "USAGE: net conf setincludes <section> [<filename>]*\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:139
+msgid "USAGE: net conf delincludes <section>\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:251
+#, c-format
+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
+msgid "error: out of memory!\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:324
+#, c-format
+msgid "error loading file '%s': %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:330
+msgid ""
+"\n"
+"TEST MODE - would import the following configuration:\n"
+"\n"
+msgstr ""
+
+#: ../../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
+#, c-format
+msgid "error committing transaction: %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:427 ../../utils/net_conf.c:828
+#, c-format
+msgid "error cancelling transaction: %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:484
+#, c-format
+msgid "Error deleting configuration: %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:521
+#, c-format
+msgid "error getting share parameters: %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:630
+#, c-format
+msgid "ERROR: share name %s contains invalid characters (any of %s)\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:638
+msgid "ERROR: 'global' is not a valid share name.\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:643
+#, c-format
+msgid "ERROR: share %s already exists.\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:652
+#, c-format
+msgid "Error: path '%s' is not an absolute path.\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:659
+#, c-format
+msgid ""
+"ERROR: cannot stat path '%s' to ensure this is a directory.\n"
+"Error was '%s'.\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:668
+#, c-format
+msgid "ERROR: path '%s' is not a directory.\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:679
+#, c-format
+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
+#, c-format
+msgid "Error setting parameter %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:748
+#, c-format
+msgid "Error deleting share %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:801
+#, c-format
+msgid "Error creating share '%s': %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:810
+#, c-format
+msgid "Error setting value '%s': %s\n"
+msgstr ""
+
+#: ../../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
+#, c-format
+msgid "Error: given parameter '%s' is not set.\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:883
+#, c-format
+msgid "Error getting value '%s': %s.\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:939
+#, c-format
+msgid "Error deleting value '%s': %s.\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:977
+#, c-format
+msgid "error getting includes: %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:1023
+#, c-format
+msgid "error setting includes: %s\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:1056
+#, c-format
+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
+msgid "Usage:\n"
+msgstr ""
+
+#: ../../utils/net_conf.c:1160
+msgid "Dump the complete configuration in smb.conf like format."
+msgstr ""
+
+#: ../../utils/net_conf.c:1162
+msgid ""
+"net conf list\n"
+" Dump the complete configuration in smb.conf like format."
+msgstr ""
+
+#: ../../utils/net_conf.c:1171
+msgid "Import configuration from file in smb.conf format."
+msgstr ""
+
+#: ../../utils/net_conf.c:1173
+msgid ""
+"net conf import\n"
+" Import configuration from file in smb.conf format."
+msgstr ""
+
+#: ../../utils/net_conf.c:1181
+msgid "List the share names."
+msgstr ""
+
+#: ../../utils/net_conf.c:1182
+msgid ""
+"net conf listshares\n"
+" List the share names."
+msgstr ""
+
+#: ../../utils/net_conf.c:1189
+msgid "Delete the complete configuration."
+msgstr ""
+
+#: ../../utils/net_conf.c:1190
+msgid ""
+"net conf drop\n"
+" Delete the complete configuration."
+msgstr ""
+
+#: ../../utils/net_conf.c:1197
+msgid "Show the definition of a share."
+msgstr ""
+
+#: ../../utils/net_conf.c:1198
+msgid ""
+"net conf showshare\n"
+" Show the definition of a share."
+msgstr ""
+
+#: ../../utils/net_conf.c:1205
+msgid "Create a new share."
+msgstr ""
+
+#: ../../utils/net_conf.c:1206
+msgid ""
+"net conf addshare\n"
+" Create a new share."
+msgstr ""
+
+#: ../../utils/net_conf.c:1213
+msgid "Delete a share."
+msgstr ""
+
+#: ../../utils/net_conf.c:1214
+msgid ""
+"net conf delshare\n"
+" Delete a share."
+msgstr ""
+
+#: ../../utils/net_conf.c:1221
+msgid "Store a parameter."
+msgstr ""
+
+#: ../../utils/net_conf.c:1222
+msgid ""
+"net conf setparm\n"
+" Store a parameter."
+msgstr ""
+
+#: ../../utils/net_conf.c:1229
+msgid "Retrieve the value of a parameter."
+msgstr ""
+
+#: ../../utils/net_conf.c:1230
+msgid ""
+"net conf getparm\n"
+" Retrieve the value of a parameter."
+msgstr ""
+
+#: ../../utils/net_conf.c:1237
+msgid "Delete a parameter."
+msgstr ""
+
+#: ../../utils/net_conf.c:1238
+msgid ""
+"net conf delparm\n"
+" Delete a parameter."
+msgstr ""
+
+#: ../../utils/net_conf.c:1245
+msgid "Show the includes of a share definition."
+msgstr ""
+
+#: ../../utils/net_conf.c:1246
+msgid ""
+"net conf getincludes\n"
+" Show the includes of a share definition."
+msgstr ""
+
+#: ../../utils/net_conf.c:1253
+msgid "Set includes for a share."
+msgstr ""
+
+#: ../../utils/net_conf.c:1254
+msgid ""
+"net conf setincludes\n"
+" Set includes for a share."
+msgstr ""
+
+#: ../../utils/net_conf.c:1261
+msgid "Delete includes from a share definition."
+msgstr ""
+
+#: ../../utils/net_conf.c:1262
+msgid ""
+"net conf setincludes\n"
+" Delete includes from a share definition."
+msgstr ""
+
+#: ../../utils/net_dom.c:25
+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
+msgid ""
+"usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
+" Unjoin a remote machine\n"
+msgstr ""
+
+#: ../../utils/net_dom.c:31
+msgid ""
+"usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
+" Rename joined computer\n"
+msgstr ""
+
+#: ../../utils/net_dom.c:91
+#, c-format
+msgid "Failed to unjoin domain: %s\n"
+msgstr ""
+
+#: ../../utils/net_dom.c:97 ../../utils/net_dom.c:204
+msgid "Shutting down due to a domain membership change"
+msgstr ""
+
+#: ../../utils/net_dom.c:290
+#, c-format
+msgid "Failed to rename machine: "
+msgstr ""
+
+#: ../../utils/net_dom.c:292
+#, c-format
+msgid "Computer is not joined to a Domain\n"
+msgstr ""
+
+#: ../../utils/net_dom.c:301
+msgid "Shutting down due to a computer rename"
+msgstr ""
+
+#: ../../utils/net_dom.c:338
+msgid "Join a remote machine"
+msgstr ""
+
+#: ../../utils/net_dom.c:339
+msgid ""
+"net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
+" Join a remote machine"
+msgstr ""
+
+#: ../../utils/net_dom.c:347
+msgid "Unjoin a remote machine"
+msgstr ""
+
+#: ../../utils/net_dom.c:348
+msgid ""
+"net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
+" Unjoin a remote machine"
+msgstr ""
+
+#: ../../utils/net_dom.c:356
+msgid "Rename a computer that is joined to a domain"
+msgstr ""
+
+#: ../../utils/net_dom.c:357
+msgid ""
+"net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
+" Rename joined computer"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:46
+msgid "usage: net eventlog dump <file.evt>\n"
+msgstr ""
+
+#: ../../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
+#, c-format
+msgid "evt pull failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:102
+msgid "usage: net eventlog import <file> <eventlog>\n"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:116
+#, c-format
+msgid "evt header pull failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:122
+msgid "input file is wrapped, cannot proceed\n"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:138 ../../utils/net_eventlog.c:203
+#, c-format
+msgid "can't open the eventlog TDB (%s)\n"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:158
+#, c-format
+msgid "can't write to the eventlog: %s\n"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:164
+#, c-format
+msgid "wrote %d entries to tdb\n"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:197
+msgid "usage: net eventlog export <file> <eventlog>\n"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:214
+#, c-format
+msgid "failed to save evt file: %s\n"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:243
+msgid "Dump eventlog"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:244
+msgid ""
+"net eventlog dump\n"
+" Dump win32 *.evt eventlog file"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:251
+msgid "Import eventlog"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:252
+msgid ""
+"net eventlog import\n"
+" Import win32 *.evt eventlog file"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:259
+msgid "Export eventlog"
+msgstr ""
+
+#: ../../utils/net_eventlog.c:260
+msgid ""
+"net eventlog export\n"
+" Export win32 *.evt eventlog file"
+msgstr ""
+
+#: ../../utils/net_file.c:27
+msgid ""
+"net [<method>] file [misc. options] [targets]\n"
+"\tlists all open files on file server\n"
+msgstr ""
+
+#: ../../utils/net_file.c:29
+msgid ""
+"net [<method>] file USER <username> [misc. options] [targets]\n"
+"\tlists all files opened by username on file server\n"
+msgstr ""
+
+#: ../../utils/net_file.c:32
+msgid ""
+"net [<method>] file CLOSE <id> [misc. options] [targets]\n"
+"\tcloses specified file on target server\n"
+msgstr ""
+
+#: ../../utils/net_file.c:34
+msgid ""
+"net [rap] file INFO <id> [misc. options] [targets]\n"
+"\tdisplays information about the specified open file\n"
+msgstr ""
+
+#: ../../utils/net_group.c:27
+msgid ""
+"net [<method>] group [misc. options] [targets]\n"
+"\tList user groups\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_group.c:29
+msgid ""
+"net rpc group LIST [global|local|builtin]* [misc. options]\n"
+"\tList specific user groups\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_group.c:31
+msgid ""
+"net [<method>] group DELETE <name> [misc. options] [targets]\n"
+"\tDelete specified group\n"
+msgstr ""
+
+#: ../../utils/net_group.c:34
+msgid ""
+"\n"
+"net [<method>] group ADD <name> [-C comment] [-c container] [misc. options] [targets]\n"
+"\tCreate specified group\n"
+msgstr ""
+
+#: ../../utils/net_group.c:37
+msgid ""
+"\n"
+"net rpc group MEMBERS <name>\n"
+"\tList Group Members\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_group.c:38
+msgid ""
+"\n"
+"net rpc group ADDMEM <group> <member>\n"
+"\tAdd Group Members\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_group.c:40
+msgid ""
+"\n"
+"net rpc group DELMEM <group> <member>\n"
+"\tDelete Group Members\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_group.c:44
+msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n"
+msgstr ""
+
+#: ../../utils/net_group.c:46
+msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n"
+msgstr ""
+
+#: ../../utils/net_group.c:48
+msgid "\t-L or --localgroup\t\tWhen adding groups, create a local group (alias)\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:38
+#, c-format
+msgid "NT Group %s doesn't exist in mapping DB\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:46
+#, c-format
+msgid "converting sid %s from a string failed!\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:65
+#, c-format
+msgid "\tSID : %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:66
+#, c-format
+msgid "\tUnix gid : %u\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:67
+#, c-format
+msgid "\tUnix group: %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:68
+#, c-format
+msgid "\tGroup type: %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:70
+#, c-format
+msgid "\tComment : %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:84
+msgid ""
+"net groupmap list [verbose] [ntgroup=NT group] [sid=SID]\n"
+" verbose\tPrint verbose list\n"
+" ntgroup\tNT group to list\n"
+" 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
+#, 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
+msgid "must supply a name\n"
+msgstr ""
+
+#: ../../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
+#, fuzzy, c-format
+msgid "Bad option: %s\n"
+msgstr ""
+"\n"
+"Ungültige Option %s: %s\n"
+
+#: ../../utils/net_groupmap.c:139
+msgid "Failure to local group SID in the database\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:181
+msgid "net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:195
+#, c-format
+msgid ""
+"Usage\n"
+"%s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:205
+#, c-format
+msgid "RID must be greater than %d\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:235 ../../utils/net_groupmap.c:380
+msgid "must supply a comment string\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:259
+#, c-format
+msgid "unknown group type %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:276
+#, c-format
+msgid "Can't lookup UNIX group %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:282
+#, c-format
+msgid "Unix group %s already mapped to SID %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:289
+msgid "No rid or sid specified, choosing a RID\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:292
+msgid "Could not get new RID\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:297
+#, c-format
+msgid "Got RID %d\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:328
+#, c-format
+msgid "adding entry for group %s failed!\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:332
+#, c-format
+msgid "Successfully added group %s to the mapping db as a %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:349
+msgid "net groupmap modify {ntgroup=<string>|sid=<SID>} [comment=<string>] [unixgroup=<string>] [type=<domain|local>]"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:388
+msgid "must supply a group name\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:434
+msgid "Failed to find local group SID in the database\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:443
+msgid "Can't map to an unknown group type.\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:449
+msgid "You can only change between domain and local groups.\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:466
+#, c-format
+msgid "Unable to lookup UNIX group %s. Make sure the group exists.\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:476
+msgid "Could not update group database\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:480
+#, c-format
+msgid "Updated mapping entry for %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:491
+msgid "net groupmap delete {ntgroup=<string>|sid=<SID>}"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:532
+#, c-format
+msgid "Unable to resolve group %s to a SID\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:539
+#, c-format
+msgid "Failed to remove group %s from the mapping db!\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:544
+#, c-format
+msgid "Sucessfully removed %s from the mapping db\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:557
+msgid "Usage: net groupmap set \"NT Group\" [\"unix group\"] [-C \"comment\"] [-L] [-D]\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:563
+msgid "Can only specify -L or -D, not both\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:573
+#, c-format
+msgid "Could not find unix group %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:594
+#, c-format
+msgid "Could not find group mapping for %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:605
+msgid "Could not allocate new RID\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:622
+#, c-format
+msgid "Could not add mapping entry for %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:633
+#, c-format
+msgid "Can't change type of the BUILTIN group %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:660
+#, c-format
+msgid "Could not update group mapping for %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:674
+msgid ""
+"Usage:\n"
+"net groupmap cleanup\n"
+" Delete all group mappings\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:682
+msgid "Could not list group mappings\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:689
+#, c-format
+msgid "Group %s is not mapped\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:692
+#, c-format
+msgid "Deleting mapping for NT Group %s, sid %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:712
+msgid "Usage: net groupmap addmem alias-sid member-sid\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:717
+#, c-format
+msgid "Could not add sid %s to alias %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:733
+msgid "Usage: net groupmap delmem alias-sid member-sid\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:738
+#, c-format
+msgid "Could not delete sid %s from alias %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:755
+msgid "Usage: net groupmap listmem alias-sid\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:764
+#, c-format
+msgid "Could not list members for sid %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:791
+#, c-format
+msgid "Could not list memberships for sid %s\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:814
+msgid "Usage: net groupmap memberof sid\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:820 ../../utils/net_idmap.c:345
+msgid "talloc_init failed\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:827
+msgid "Could not get domain sid\n"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:850
+msgid "Create a new group mapping"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:851
+msgid ""
+"net groupmap add\n"
+" Create a new group mapping"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:858
+msgid "Update a group mapping"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:859
+msgid ""
+"net groupmap modify\n"
+" Modify an existing group mapping"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:866
+msgid "Remove a group mapping"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:867
+msgid ""
+"net groupmap delete\n"
+" Remove a group mapping"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:874
+msgid "Set group mapping"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:875
+msgid ""
+"net groupmap set\n"
+" Set a group mapping"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:882
+msgid "Remove foreign group mapping entries"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:883
+msgid ""
+"net groupmap cleanup\n"
+" Remove foreign group mapping entries"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:890
+msgid "Add a foreign alias member"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:891
+msgid ""
+"net groupmap addmem\n"
+" Add a foreign alias member"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:898
+msgid "Delete foreign alias member"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:899
+msgid ""
+"net groupmap delmem\n"
+" Delete foreign alias member"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:906
+msgid "List foreign group members"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:907
+msgid ""
+"net groupmap listmem\n"
+" List foreign alias members"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:914
+msgid "List foreign group memberships"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:915
+msgid ""
+"net groupmap memberships\n"
+" List foreign group memberships"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:922
+msgid "List current group map"
+msgstr ""
+
+#: ../../utils/net_groupmap.c:923
+msgid ""
+"net groupmap list\n"
+" List current group map"
+msgstr ""
+
+#: ../../utils/net_help.c:39
+#, c-format
+msgid "net %s usage:\n"
+msgstr ""
+
+#: ../../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
+msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:27 ../../utils/net_join.c:30
+msgid "\trpc\t\t\t\tDCE-RPC\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:28
+msgid "\trap\t\t\t\tRAP (older systems)\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:35
+msgid "Valid targets: choose one (none defaults to localhost)\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:36
+msgid "\t-S or --server=<server>\t\tserver name\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:37
+msgid "\t-I or --ipaddress=<ipaddr>\taddress of target server\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:38
+msgid "\t-w or --workgroup=<wg>\t\ttarget workgroup or domain\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:41
+msgid "Valid miscellaneous options are:\n"
+msgstr ""
+
+#. misc options
+#: ../../utils/net_help_common.c:42
+msgid "\t-p or --port=<port>\t\tconnection port on target\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:43
+msgid "\t-W or --myworkgroup=<wg>\tclient workgroup\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:44
+msgid "\t-d or --debuglevel=<level>\tdebug level (0-10)\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:45
+msgid "\t-n or --myname=<name>\t\tclient name\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:46
+msgid "\t-U or --user=<name>\t\tuser name\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:47
+msgid "\t-s or --configfile=<path>\tpathname of smb.conf file\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:48
+msgid "\t-l or --long\t\t\tDisplay full information\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:49
+msgid "\t-V or --version\t\t\tPrint samba version information\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:50
+msgid "\t-P or --machine-pass\t\tAuthenticate as machine account\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:52
+msgid "\t-e or --encrypt\t\t\tEncrypt SMB transport (UNIX extended servers only)\n"
+msgstr ""
+
+#: ../../utils/net_help_common.c:54
+msgid "\t-k or --kerberos\t\tUse kerberos (active directory) authentication\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:25
+msgid "Out of memory!\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:39
+#, c-format
+msgid "USER HWM %d\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:44
+#, c-format
+msgid "GROUP HWM %d\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:63
+msgid ""
+"Usage:\n"
+"net idmap dump <inputfile>\n"
+" Dump current ID mapping.\n"
+" inputfile\tTDB file to read mappings from.\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:73
+#, c-format
+msgid "Could not open idmap: %s\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:94
+msgid ""
+"Usage:\n"
+"net idmap restore [inputfile]\n"
+" Restore ID mappings from file\n"
+" inputfile\tFile to load ID mappings from. If not given, load data from stdin.\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:104
+msgid "To use net idmap Winbindd must be running.\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:142
+#, c-format
+msgid "Could not set USER HWM: %s\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:151
+#, c-format
+msgid "Could not set GROUP HWM: %s\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:156
+#, c-format
+msgid "ignoring invalid line [%s]\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:163
+#, fuzzy, c-format
+msgid "ignoring invalid sid [%s]: %s\n"
+msgstr ""
+"\n"
+"Ungültige Option %s: %s\n"
+
+#: ../../utils/net_idmap.c:175
+#, c-format
+msgid "Could not set mapping of %s %lu to sid %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:196 ../../utils/net_idmap.c:202
+msgid "Not Implemented yet\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:240
+msgid ""
+"Usage:\n"
+"net idmap secret {<DOMAIN>|alloc} <secret>\n"
+" Set the secret for the specified domain (or alloc module)\n"
+" DOMAIN\tDomain to set secret for.\n"
+" alloc\tSet secret for the alloc module\n"
+" secret\tNew secret to set.\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:271
+msgid "The only currently supported backend is LDAP\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:281
+#, c-format
+msgid "Missing ldap_user_dn option for domain %s\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:292
+msgid "Missing ldap_user_dn option for alloc backend\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:302
+msgid "Failed to store secret\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:307
+msgid "Secret stored\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:313
+msgid ""
+"net idmap dump <inputfile>\n"
+" Dump current id mapping\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:316
+msgid ""
+"net idmap restore\n"
+" Restore entries from stdin\n"
+msgstr ""
+
+#. Deliberately *not* document net idmap delete
+#: ../../utils/net_idmap.c:321
+msgid ""
+"net idmap secret <DOMAIN>|alloc <secret>\n"
+" Set the secret for the specified DOMAIN (or the alloc module)\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:339
+msgid "usage: net idmap aclmapset <tdb> <src-sid> <dst-sid>\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:351
+#, c-format
+msgid "db_open failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:356 ../../utils/net_idmap.c:361
+#, c-format
+msgid "%s is not a valid sid\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:367
+msgid "talloc_strdup failed\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:373
+msgid "could not fetch db record\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:381
+#, c-format
+msgid "could not store record: %s\n"
+msgstr ""
+
+#: ../../utils/net_idmap.c:402
+msgid "Dump the current ID mappings"
+msgstr ""
+
+#: ../../utils/net_idmap.c:403
+msgid ""
+"net idmap dump\n"
+" Dump the current ID mappings"
+msgstr ""
+
+#: ../../utils/net_idmap.c:410
+msgid "Restore entries from stdin"
+msgstr ""
+
+#: ../../utils/net_idmap.c:411
+msgid ""
+"net idmap restore\n"
+" Restore entries from stdin"
+msgstr ""
+
+#: ../../utils/net_idmap.c:418 ../../utils/net_idmap.c:426
+msgid "Not implemented yet"
+msgstr ""
+
+#: ../../utils/net_idmap.c:419
+msgid ""
+"net idmap setmap\n"
+" Not implemented yet"
+msgstr ""
+
+#: ../../utils/net_idmap.c:427
+msgid ""
+"net idmap delete\n"
+" Not implemented yet"
+msgstr ""
+
+#: ../../utils/net_idmap.c:434
+msgid "Set secret for specified domain"
+msgstr ""
+
+#: ../../utils/net_idmap.c:435
+msgid ""
+"net idmap secret {<DOMAIN>|alloc} <secret>\n"
+" Set secret for specified domain or alloc module"
+msgstr ""
+
+#: ../../utils/net_idmap.c:442
+msgid "Set acl map"
+msgstr ""
+
+#: ../../utils/net_idmap.c:443
+msgid ""
+"net idmap aclmapset\n"
+" Set acl map"
+msgstr ""
+
+#: ../../utils/net_join.c:26
+msgid ""
+"\n"
+"net [<method>] join [misc. options]\n"
+"\tjoins this server to a domain\n"
+msgstr ""
+
+#: ../../utils/net_join.c:47
+msgid "ADS join did not work, falling back to RPC...\n"
+msgstr ""
+
+#: ../../utils/net_lookup.c:25
+msgid ""
+" net lookup [host] HOSTNAME[#<type>]\n"
+"\tgives IP for a hostname\n"
+"\n"
+" net lookup ldap [domain]\n"
+"\tgives IP of domain's ldap server\n"
+"\n"
+" net lookup kdc [realm]\n"
+"\tgives IP of realm's kerberos KDC\n"
+"\n"
+" net lookup pdc [domain|realm]\n"
+"\tgives IP of realm's kerberos KDC\n"
+"\n"
+" net lookup dc [domain]\n"
+"\tgives IP of domains Domain Controllers\n"
+"\n"
+" net lookup master [domain|wg]\n"
+"\tgive IP of master browser\n"
+"\n"
+" net lookup name [name]\n"
+"\tLookup name's sid and type\n"
+"\n"
+" net lookup sid [sid]\n"
+"\tGive sid's name and type\n"
+"\n"
+" net lookup dsgetdcname [name] [flags] [sitename]\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_lookup.c:112
+msgid "net_lookup_ldap: talloc_init() failed!\n"
+msgstr ""
+
+#: ../../utils/net_lookup.c:325
+msgid "usage: net lookup name <name>\n"
+msgstr ""
+
+#: ../../utils/net_lookup.c:331 ../../utils/net_lookup.c:358
+#, c-format
+msgid "Could not lookup name %s\n"
+msgstr ""
+
+#: ../../utils/net_lookup.c:347
+msgid "usage: net lookup sid <sid>\n"
+msgstr ""
+
+#: ../../utils/net_lookup.c:352
+#, c-format
+msgid "Could not convert %s to SID\n"
+msgstr ""
+
+#: ../../utils/net_lookup.c:378
+msgid "usage: net lookup dsgetdcname <name> <flags> <sitename>\n"
+msgstr ""
+
+#: ../../utils/net_lookup.c:404
+#, c-format
+msgid "failed with: %s\n"
+msgstr ""
+
+#: ../../utils/net_lookup.c:437
+msgid ""
+"\n"
+"Usage: \n"
+msgstr ""
+
+#: ../../utils/net_lua.c:60
+msgid "connect: Expected IP-Address"
+msgstr ""
+
+#: ../../utils/net_lua.c:65
+msgid "connect: Expected port"
+msgstr ""
+
+#: ../../utils/net_lua.c:84
+#, c-format
+msgid "connect failed: %s"
+msgstr ""
+
+#: ../../utils/net_lua.c:132
+#, c-format
+msgid "socket domain %s unknown"
+msgstr ""
+
+#: ../../utils/net_lua.c:144
+#, c-format
+msgid "socket type %s unknown"
+msgstr ""
+
+#: ../../utils/net_lua.c:155
+#, c-format
+msgid "socket() failed: %s"
+msgstr ""
+
+#: ../../utils/net_lua.c:278
+msgid "evt_reference_thread failed\n"
+msgstr ""
+
+#: ../../utils/net_lua.c:287
+msgid "event_add_timed failed"
+msgstr ""
+
+#: ../../utils/net_lua.c:300
+msgid "event_once called from non-base thread"
+msgstr ""
+
+#: ../../utils/net_lua.c:323
+msgid "event_context_init failed"
+msgstr ""
+
+#: ../../utils/net_lua.c:353
+msgid "lua_newstate failed\n"
+msgstr ""
+
+#: ../../utils/net_lua.c:371
+msgid "luaL_dofile returned an error\n"
+msgstr ""
+
+#: ../../utils/net_lua.c:376
+msgid "luaL_dostring returned an error\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:39
+msgid ""
+"\n"
+"Not implemented\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:61
+#, c-format
+msgid ""
+"File ID %d\n"
+"User name %s\n"
+"Locks 0x%-4.2x\n"
+"Path %s\n"
+"Permissions 0x%x\n"
+msgstr ""
+
+#. list open files
+#: ../../utils/net_rap.c:114
+msgid ""
+"\n"
+"Enumerating open files on remote server:\n"
+"\n"
+"\n"
+"FileId Opened by Perms Locks Path \n"
+"------ --------- ----- ----- ---- \n"
+msgstr ""
+
+#: ../../utils/net_rap.c:120 ../../utils/net_rap.c:180
+msgid ""
+"\n"
+"Operation not supported by server!\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:133
+msgid "Close specified file on server"
+msgstr ""
+
+#: ../../utils/net_rap.c:134
+msgid ""
+"net rap file close\n"
+" Close specified file on server"
+msgstr ""
+
+#: ../../utils/net_rap.c:141
+msgid "List all files opened by username"
+msgstr ""
+
+#: ../../utils/net_rap.c:142
+msgid ""
+"net rap file user\n"
+" List all files opened by username"
+msgstr ""
+
+#: ../../utils/net_rap.c:149
+msgid "Display info about an opened file"
+msgstr ""
+
+#: ../../utils/net_rap.c:150
+msgid ""
+"net rap file info\n"
+" Display info about an opened file"
+msgstr ""
+
+#: ../../utils/net_rap.c:162
+msgid ""
+"net rap file\n"
+" List all open files on rempte server\n"
+msgstr ""
+
+#. list open files
+#: ../../utils/net_rap.c:174
+msgid ""
+"\n"
+"Enumerating open files on remote server:\n"
+"\n"
+"\n"
+"FileId Opened by Perms Locks Path\n"
+"------ --------- ----- ----- ----\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:243
+msgid "Server path not specified\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:273 ../../utils/net_rap.c:281
+msgid "Delete a share from server"
+msgstr ""
+
+#: ../../utils/net_rap.c:274
+msgid ""
+"net rap share delete\n"
+" Delete a share from server"
+msgstr ""
+
+#: ../../utils/net_rap.c:282
+msgid ""
+"net rap share close\n"
+" Delete a share from server\n"
+" Alias for net rap share delete"
+msgstr ""
+
+#: ../../utils/net_rap.c:290
+msgid "Add a share to server"
+msgstr ""
+
+#: ../../utils/net_rap.c:291
+msgid ""
+"net rap share add\n"
+" Add a share to server"
+msgstr ""
+
+#: ../../utils/net_rap.c:303
+msgid ""
+"net rap share\n"
+" List all shares on remote server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:314
+msgid ""
+"\n"
+"Enumerating shared resources (exports) on remote server:\n"
+"\n"
+"\n"
+"Share name Type Description\n"
+"---------- ---- -----------\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:331
+msgid ""
+"\n"
+"net rap session [misc. options] [targets]\n"
+"\tenumerates all active SMB/CIFS sessions on target server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:334
+msgid ""
+"\n"
+"net rap session DELETE <client_name> [misc. options] [targets] \n"
+"\tor\n"
+"net rap session CLOSE <client_name> [misc. options] [targets]\n"
+"\tDeletes (closes) a session from specified client to server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:339
+msgid ""
+"\n"
+"net rap session INFO <client_name>\n"
+"\tEnumerates all open files in specified session\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:369
+#, c-format
+msgid ""
+"User name %-20.20s\n"
+"Computer %-20.20s\n"
+"Guest logon %-20.20s\n"
+"Client Type %-40.40s\n"
+"Sess time %2.2d:%2.2d:%2.2d\n"
+"Idle time %2.2d:%2.2d:%2.2d\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:408
+msgid ""
+"Share name Type # Opens\n"
+"------------------------------------------------------------------------------\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:438
+msgid "Display information about session"
+msgstr ""
+
+#: ../../utils/net_rap.c:439
+msgid ""
+"net rap session info\n"
+" Display information about session"
+msgstr ""
+
+#: ../../utils/net_rap.c:446 ../../utils/net_rap.c:455
+msgid "Close specified session"
+msgstr ""
+
+#: ../../utils/net_rap.c:447
+msgid ""
+"net rap session delete\n"
+" Close specified session\n"
+" Alias for net rap session close"
+msgstr ""
+
+#: ../../utils/net_rap.c:456
+msgid ""
+"net rap session close\n"
+" Close specified session"
+msgstr ""
+
+#: ../../utils/net_rap.c:468
+msgid ""
+"net rap session\n"
+" List all open sessions on remote server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:478
+msgid ""
+"Computer User name Client Type Opens Idle time\n"
+"------------------------------------------------------------------------------\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:506
+msgid ""
+"Usage:\n"
+"net rap server name\n"
+" Get the name of the server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:516
+msgid "cli_get_server_name failed\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:521
+#, c-format
+msgid "Server name = %s\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:535
+msgid ""
+"Usage:\n"
+"net rap server domain\n"
+" Enumerate servers in this domain/workgroup\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:544
+msgid ""
+"\n"
+"Enumerating servers in this domain or workgroup: \n"
+"\n"
+"\tServer name Server description\n"
+"\t------------- ----------------------------\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:561
+msgid "Get the name of the server"
+msgstr ""
+
+#: ../../utils/net_rap.c:562
+msgid ""
+"net rap server name\n"
+" Get the name of the server"
+msgstr ""
+
+#: ../../utils/net_rap.c:569
+msgid "Get the servers in this domain/workgroup"
+msgstr ""
+
+#: ../../utils/net_rap.c:570
+msgid ""
+"net rap server domain\n"
+" Get the servers in this domain/workgroup"
+msgstr ""
+
+#: ../../utils/net_rap.c:584
+msgid ""
+"net rap domain [misc. options] [target]\n"
+"\tlists the domains or workgroups visible on the current network\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:602
+msgid ""
+"\n"
+"Enumerating domains:\n"
+"\n"
+"\tDomain name Server name of Browse Master\n"
+"\t------------- ----------------------------\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:615
+msgid ""
+"net rap printq [misc. options] [targets]\n"
+"\tor\n"
+"net rap printq info [<queue_name>] [misc. options] [targets]\n"
+"\tlists the specified queue and jobs on the target server.\n"
+"\tIf the queue name is not specified, all queues are listed.\n"
+"\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:621
+msgid ""
+"net rap printq delete [<queue name>] [misc. options] [targets]\n"
+"\tdeletes the specified job number on the target server, or the\n"
+"\tprinter queue if no job number is specified\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:635
+#, c-format
+msgid "%-17.17s Queue %5d jobs "
+msgstr ""
+
+#: ../../utils/net_rap.c:640
+msgid "*Printer Active*\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:643
+msgid "*Printer Paused*\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:646
+msgid "*Printer error*\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:649
+msgid "*Delete Pending*\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:652 ../../utils/net_rap.c:678
+msgid "**UNKNOWN STATUS**\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:666
+msgid "Waiting\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:669
+msgid "Held in queue\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:672
+msgid "Spooling\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:675
+msgid "Printing\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:683
+#, c-format
+msgid ""
+"Print queues at \\\\%s\n"
+"\n"
+"Name Job # Size Status\n"
+"\n"
+"-------------------------------------------------------------------------------\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:731
+msgid "Display info about print queues and jobs"
+msgstr ""
+
+#: ../../utils/net_rap.c:732
+msgid ""
+"net rap printq info [queue]\n"
+" Display info about print jobs in queue.\n"
+" If queue is not specified, all queues are listed"
+msgstr ""
+
+#: ../../utils/net_rap.c:741
+msgid "Delete print job(s)"
+msgstr ""
+
+#: ../../utils/net_rap.c:742
+msgid ""
+"net rap printq delete\n"
+" Delete print job(s)"
+msgstr ""
+
+#: ../../utils/net_rap.c:751
+msgid ""
+"net rap printq\n"
+" List the print queue\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:864 ../../utils/net_rpc.c:909
+msgid "Add specified user"
+msgstr ""
+
+#: ../../utils/net_rap.c:865
+msgid ""
+"net rap user add\n"
+" Add specified user"
+msgstr ""
+
+#: ../../utils/net_rap.c:872
+msgid "List domain groups of specified user"
+msgstr ""
+
+#: ../../utils/net_rap.c:873
+msgid ""
+"net rap user info\n"
+" List domain groups of specified user"
+msgstr ""
+
+#: ../../utils/net_rap.c:881 ../../utils/net_rpc.c:925
+msgid "Remove specified user"
+msgstr ""
+
+#: ../../utils/net_rap.c:882
+msgid ""
+"net rap user delete\n"
+" Remove specified user"
+msgstr ""
+
+#: ../../utils/net_rap.c:892
+msgid ""
+"net rap user\n"
+" List all users\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:915
+#, c-format
+msgid "Net user returned: %d\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:983
+msgid "Add specified group"
+msgstr ""
+
+#: ../../utils/net_rap.c:984
+msgid ""
+"net rap group add\n"
+" Add specified group"
+msgstr ""
+
+#: ../../utils/net_rap.c:991
+msgid "Delete specified group"
+msgstr ""
+
+#: ../../utils/net_rap.c:992
+msgid ""
+"net rap group delete\n"
+" Delete specified group"
+msgstr ""
+
+#: ../../utils/net_rap.c:1003
+msgid ""
+"net rap group\n"
+" List all groups\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1012
+msgid ""
+"Group name Comment\n"
+"-----------------------------\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1029
+msgid ""
+"net rap groupmember LIST <group> [misc. options] [targets]\n"
+"\t Enumerate users in a group\n"
+"\n"
+"net rap groupmember DELETE <group> <user> [misc. options] [targets]\n"
+"\t Delete specified user from specified group\n"
+"\n"
+"net rap groupmember ADD <group> <user> [misc. options] [targets]\n"
+"\t Add specified user to specified group\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1096
+msgid "Add specified user to group"
+msgstr ""
+
+#: ../../utils/net_rap.c:1097
+msgid ""
+"net rap groupmember add\n"
+" Add specified user to group"
+msgstr ""
+
+#: ../../utils/net_rap.c:1104
+msgid "List users in group"
+msgstr ""
+
+#: ../../utils/net_rap.c:1105
+msgid ""
+"net rap groupmember list\n"
+" List users in group"
+msgstr ""
+
+#: ../../utils/net_rap.c:1112
+msgid "Remove user from group"
+msgstr ""
+
+#: ../../utils/net_rap.c:1113
+msgid ""
+"net rap groupmember delete\n"
+" Remove user from group"
+msgstr ""
+
+#: ../../utils/net_rap.c:1124
+msgid ""
+"net rap validate <username> [password]\n"
+"\tValidate user and password to check whether they can access target server or domain\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1139
+msgid ""
+"net rap service [misc. options] [targets] \n"
+"\tlists all running service daemons on target server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1141
+msgid ""
+"\n"
+"net rap service START <name> [service startup arguments] [misc. options] [targets]\n"
+"\tStart named service on remote server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1144
+msgid ""
+"\n"
+"net rap service STOP <name> [misc. options] [targets]\n"
+"\n"
+"\tStop named service on remote server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1174
+msgid "Start service on remote server"
+msgstr ""
+
+#: ../../utils/net_rap.c:1175
+msgid ""
+"net rap service start\n"
+" Start service on remote server"
+msgstr ""
+
+#: ../../utils/net_rap.c:1182
+msgid "Stop named serve on remote server"
+msgstr ""
+
+#: ../../utils/net_rap.c:1183
+msgid ""
+"net rap service stop\n"
+" Stop named serve on remote server"
+msgstr ""
+
+#: ../../utils/net_rap.c:1194
+msgid ""
+"net rap service\n"
+" List services on remote server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1204
+msgid ""
+"Service name Comment\n"
+"-----------------------------\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1219
+msgid ""
+"net rap password <user> <oldpwo> <newpw> [misc. options] [target]\n"
+"\tchanges the password for the specified user at target\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1246
+msgid ""
+"net rap admin <remote command> [cmd args [env]] [misc. options] [targets]\n"
+"\texecutes a remote command on an os/2 target server\n"
+msgstr ""
+
+#: ../../utils/net_rap.c:1267
+msgid "List open files"
+msgstr ""
+
+#: ../../utils/net_rap.c:1268
+msgid ""
+"net rap file\n"
+" List open files"
+msgstr ""
+
+#: ../../utils/net_rap.c:1275
+msgid "List shares exported by server"
+msgstr ""
+
+#: ../../utils/net_rap.c:1276
+msgid ""
+"net rap share\n"
+" List shares exported by server"
+msgstr ""
+
+#: ../../utils/net_rap.c:1283
+msgid "List open sessions"
+msgstr ""
+
+#: ../../utils/net_rap.c:1284
+msgid ""
+"net rap session\n"
+" List open sessions"
+msgstr ""
+
+#: ../../utils/net_rap.c:1292
+msgid ""
+"net rap server\n"
+" List servers in domain/workgroup"
+msgstr ""
+
+#: ../../utils/net_rap.c:1299
+msgid "List domains in network"
+msgstr ""
+
+#: ../../utils/net_rap.c:1300
+msgid ""
+"net rap domain\n"
+" List domains in network"
+msgstr ""
+
+#: ../../utils/net_rap.c:1307
+msgid "List printer queues on server"
+msgstr ""
+
+#: ../../utils/net_rap.c:1308
+msgid ""
+"net rap printq\n"
+" List printer queues on server"
+msgstr ""
+
+#: ../../utils/net_rap.c:1315
+msgid "List users"
+msgstr ""
+
+#: ../../utils/net_rap.c:1316
+msgid ""
+"net rap user\n"
+" List users"
+msgstr ""
+
+#: ../../utils/net_rap.c:1323
+msgid "List user groups"
+msgstr ""
+
+#: ../../utils/net_rap.c:1324
+msgid ""
+"net rap group\n"
+" List user groups"
+msgstr ""
+
+#: ../../utils/net_rap.c:1331
+msgid "Check username/password"
+msgstr ""
+
+#: ../../utils/net_rap.c:1332
+msgid ""
+"net rap validate\n"
+" Check username/password"
+msgstr ""
+
+#: ../../utils/net_rap.c:1339
+msgid "List/modify group memberships"
+msgstr ""
+
+#: ../../utils/net_rap.c:1340
+msgid ""
+"net rap groupmember\n"
+" List/modify group memberships"
+msgstr ""
+
+#: ../../utils/net_rap.c:1347
+msgid "Execute commands on remote OS/2"
+msgstr ""
+
+#: ../../utils/net_rap.c:1348
+msgid ""
+"net rap admin\n"
+" Execute commands on remote OS/2"
+msgstr ""
+
+#: ../../utils/net_rap.c:1355
+msgid "Start/stop remote service"
+msgstr ""
+
+#: ../../utils/net_rap.c:1356
+msgid ""
+"net rap service\n"
+" Start/stop remote service"
+msgstr ""
+
+#: ../../utils/net_rap.c:1363 ../../utils/net_rpc.c:933
+msgid "Change user password"
+msgstr ""
+
+#: ../../utils/net_rap.c:1364
+msgid ""
+"net rap password\n"
+" Change user password"
+msgstr ""
+
+#: ../../utils/net_registry.c:94 ../../utils/net_registry.c:197 ../../utils/net_registry.c:250
+#, c-format
+msgid "open_hive failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:101
+#, c-format
+msgid "reg_openkey failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:133
+msgid "Usage: net registry enumerate <path>\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:134
+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
+#, c-format
+msgid "open_key failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:185
+msgid "Usage: net registry createkey <path>\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:186
+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
+msgid "error: zero length key name given\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:205
+#, c-format
+msgid "reg_createkey failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:211
+msgid "createkey did nothing -- huh?\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:214
+#, c-format
+msgid "createkey created %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:217
+#, c-format
+msgid "createkey opened existing %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:238
+msgid "Usage: net registry deletekey <path>\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:239
+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
+#, c-format
+msgid "reg_deletekey failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:279
+msgid "usage: net rpc registry getvalue <key> <valuename>\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:292
+#, c-format
+msgid "reg_queryvalue failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:328
+msgid "usage: net rpc registry setvalue <key> <valuename> <type> [<val>]+\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:334
+#, c-format
+msgid "Too many args for type %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:350
+#, c-format
+msgid "type \"%s\" not implemented\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:362
+#, c-format
+msgid "reg_setvalue failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:383
+msgid "usage: net rpc registry deletevalue <key> <valuename>\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:427
+msgid "Usage: net registry getsd <path>\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:428
+msgid "Example: net registry getsd 'HKLM\\Software\\Samba'\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:445
+#, c-format
+msgid "reg_getkeysecurity failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_registry.c:468
+msgid "Enumerate registry keys and values"
+msgstr ""
+
+#: ../../utils/net_registry.c:469
+msgid ""
+"net registry enumerate\n"
+" Enumerate registry keys and values"
+msgstr ""
+
+#: ../../utils/net_registry.c:476
+msgid "Create a new registry key"
+msgstr ""
+
+#: ../../utils/net_registry.c:477
+msgid ""
+"net registry createkey\n"
+" Create a new registry key"
+msgstr ""
+
+#: ../../utils/net_registry.c:484
+msgid "Delete a registry key"
+msgstr ""
+
+#: ../../utils/net_registry.c:485
+msgid ""
+"net registry deletekey\n"
+" Delete a registry key"
+msgstr ""
+
+#: ../../utils/net_registry.c:492
+msgid "Print a registry value"
+msgstr ""
+
+#: ../../utils/net_registry.c:493
+msgid ""
+"net registry getvalue\n"
+" Print a registry value"
+msgstr ""
+
+#: ../../utils/net_registry.c:500
+msgid "Print a registry value (raw format)"
+msgstr ""
+
+#: ../../utils/net_registry.c:501
+msgid ""
+"net registry getvalueraw\n"
+" Print a registry value (raw format)"
+msgstr ""
+
+#: ../../utils/net_registry.c:508
+msgid "Set a new registry value"
+msgstr ""
+
+#: ../../utils/net_registry.c:509
+msgid ""
+"net registry setvalue\n"
+" Set a new registry value"
+msgstr ""
+
+#: ../../utils/net_registry.c:516
+msgid "Delete a registry value"
+msgstr ""
+
+#: ../../utils/net_registry.c:517
+msgid ""
+"net registry deletevalue\n"
+" Delete a registry value"
+msgstr ""
+
+#: ../../utils/net_registry.c:524
+msgid "Get security descriptor"
+msgstr ""
+
+#: ../../utils/net_registry.c:525
+msgid ""
+"net registry getsd\n"
+" Get security descriptor"
+msgstr ""
+
+#: ../../utils/net_registry_util.c:28
+#, c-format
+msgid "Keyname = %s\n"
+msgstr ""
+
+#: ../../utils/net_registry_util.c:29
+#, c-format
+msgid "Modtime = %s\n"
+msgstr ""
+
+#: ../../utils/net_registry_util.c:32
+msgid "None"
+msgstr ""
+
+#: ../../utils/net_registry_util.c:39
+#, c-format
+msgid "Type = %s\n"
+msgstr ""
+
+#: ../../utils/net_registry_util.c:45 ../../utils/net_registry_util.c:76 ../../utils/net_registry_util.c:82
+msgid "Value = "
+msgstr ""
+
+#: ../../utils/net_registry_util.c:52
+msgid "Value = \""
+msgstr ""
+
+#: ../../utils/net_registry_util.c:64
+#, c-format
+msgid "Value[%3.3d] = \""
+msgstr ""
+
+#: ../../utils/net_registry_util.c:78
+#, c-format
+msgid "%d bytes\n"
+msgstr ""
+
+#: ../../utils/net_registry_util.c:84
+msgid "<unprintable>\n"
+msgstr ""
+
+#: ../../utils/net_registry_util.c:92
+#, c-format
+msgid "Valuename = %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:66
+msgid "Could not initialise lsa pipe\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:74
+#, c-format
+msgid "open_policy failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:84
+#, c-format
+msgid "lsaquery failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:257
+msgid ""
+"Usage:\n"
+"net rpc changetrustpw\n"
+" Change the machine trust password\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:341
+#, c-format
+msgid "Joined domain %s.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:387
+msgid ""
+"Usage:\n"
+"net rpc oldjoin\n"
+" Join a domain the old way\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:396
+msgid "Failed to join domain\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:417
+#, c-format
+msgid ""
+"Usage:\n"
+"net rpc join -U <username>[%%password] <type>\n"
+" Join a domain\n"
+" username\tName of the admin user password\tPassword of the admin user, will prompt if not specified\n"
+" type\tCan be one of the following:\n"
+"\t\tMEMBER\tJoin as member server (default)\n"
+"\t\tBDC\tJoin as BDC\n"
+"\t\tPDC\tJoin as PDC\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:431
+msgid "cannot join as standalone machine\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:486
+#, c-format
+msgid "Could not connect to SAM: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:498
+#, c-format
+msgid "Could not open domain: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:508
+#, c-format
+msgid "Domain Name: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:510
+#, c-format
+msgid "Domain SID: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:511
+#, c-format
+msgid "Sequence number: %llu\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:513
+#, c-format
+msgid "Num users: %u\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:514
+#, c-format
+msgid "Num domain groups: %u\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:515
+#, c-format
+msgid "Num local groups: %u\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:532
+msgid ""
+"Usage:\n"
+"net rpc info\n"
+" Display information about the domain\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:571
+#, c-format
+msgid "Storing SID %s for Domain %s in secrets.tdb\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:592
+msgid ""
+"Usage:\n"
+"net rpc getsid\n"
+" Fetch domain SID into local secrets.tdb\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:649
+#, c-format
+msgid "Failed to add user '%s' with error: %s.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:654
+#, c-format
+msgid "Added user '%s'.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:687
+#, c-format
+msgid "Failed to rename user from %s to %s - %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:691
+#, c-format
+msgid "Renamed user from %s to %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:719
+#, c-format
+msgid "Failed to delete user '%s' with: %s.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:724
+#, c-format
+msgid "Deleted user '%s'.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:770
+#, c-format
+msgid "Failed to set password for '%s' with error: %s.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:813
+#, c-format
+msgid "Failed to get groups for '%s' with error: %s.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:910
+msgid ""
+"net rpc user add\n"
+" Add specified user"
+msgstr ""
+
+#: ../../utils/net_rpc.c:917
+msgid "List domain groups of user"
+msgstr ""
+
+#: ../../utils/net_rpc.c:918
+msgid ""
+"net rpc user info\n"
+" Lis domain groups of user"
+msgstr ""
+
+#: ../../utils/net_rpc.c:926
+msgid ""
+"net rpc user delete\n"
+" Remove specified user"
+msgstr ""
+
+#: ../../utils/net_rpc.c:934
+msgid ""
+"net rpc user password\n"
+" Change user password"
+msgstr ""
+
+#: ../../utils/net_rpc.c:941
+msgid "Rename specified user"
+msgstr ""
+
+#: ../../utils/net_rpc.c:942
+msgid ""
+"net rpc user rename\n"
+" Rename specified user"
+msgstr ""
+
+#: ../../utils/net_rpc.c:961
+msgid ""
+"net rpc user\n"
+" List all users\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1011
+#, c-format
+msgid "usage: %s <username>\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1022
+#, c-format
+msgid "Could not lookup %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1028
+#, c-format
+msgid "%s is a %s, not a user\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1035
+#, c-format
+msgid "%s is not in our domain\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1092
+#, c-format
+msgid "usage: %s show <username>\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1104
+#, c-format
+msgid "user rid: %d, group rid: %d\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1145
+#, c-format
+msgid "usage: %s <username> [new value|NULL]\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1168
+#, c-format
+msgid "%s's %s: [%s]\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1190
+#, 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
+#, c-format
+msgid "usage: %s <username> [yes|no]\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1261
+#, c-format
+msgid "%s's %s flag: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1277
+#, c-format
+msgid "Set %s's %s flag from [%s] to [%s]\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1303
+msgid "Show/Set a user's full name"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1306
+msgid "Show/Set a user's home directory"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1309
+msgid "Show/Set a user's home drive"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1312
+msgid "Show/Set a user's logon script"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1315
+msgid "Show/Set a user's profile path"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1318
+msgid "Show/Set a user's description"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1321
+msgid "Show/Set whether a user is disabled"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1324
+msgid "Show/Set whether a user locked out"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1327
+msgid "Show/Set whether a user does not need a password"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1330
+msgid "Show/Set whether a user's password does not expire"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1345
+msgid "List available users"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1348
+msgid "List the domain groups a user is member of"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1351
+msgid "Show info about a user"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1354
+msgid "Show/Modify a user's fields"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1425
+msgid "Request samr_Connect2 failed\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1436
+msgid "Request open_domain failed\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1449
+#, c-format
+msgid "Lookup of '%s' failed\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1462
+msgid "Request open_group failed"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1474
+#, c-format
+msgid "Unable to query group members of %s"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1481
+#, c-format
+msgid "Domain Group %s (rid: %d) has %d members\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1496
+#, c-format
+msgid "Unable to open group member %d\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1508
+#, c-format
+msgid "Unable to lookup userinfo for group member %d\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1516
+#, c-format
+msgid "Group is primary group of %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1527
+msgid "Unable to delete group because some of it's members have it as primary group\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1538
+#, c-format
+msgid "Remove group member %d..."
+msgstr ""
+
+#: ../../utils/net_rpc.c:1546
+msgid "ok\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1549
+msgid "failed\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1567
+msgid "Request open_alias failed\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1575
+#, 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
+#, c-format
+msgid "Deleted %s '%s'\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1587
+#, c-format
+msgid "Deleting of %s failed: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1624
+#, c-format
+msgid "Failed to add group '%s' with error: %s.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1629
+#, c-format
+msgid "Added group '%s'.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1657
+#, c-format
+msgid "Failed to add alias '%s' with error: %s.\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1662
+#, 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
+#, c-format
+msgid "Could not lookup up group member %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1892
+msgid ""
+"Usage:\n"
+"net rpc group addmem <group> <member>\n"
+" Add a member to a group\n"
+" group\tGroup to add member to\n"
+" member\tMember to add to group\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1902 ../../utils/net_rpc.c:2104
+#, c-format
+msgid "Could not lookup group name %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1912 ../../utils/net_rpc.c:1923
+#, c-format
+msgid "Could not add %s to %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:1929
+#, c-format
+msgid "Can only add members to global or local groups which %s is not\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:2094
+msgid ""
+"Usage:\n"
+"net rpc group delmem <group> <member>\n"
+" Delete a member from a group\n"
+" group\tGroup to delete member from\n"
+" member\tMember to delete from group\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:2114 ../../utils/net_rpc.c:2125
+#, c-format
+msgid "Could not del %s from %s: %s\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:2131
+#, c-format
+msgid "Can only delete members from global or local groups which %s is not\n"
+msgstr ""
+
+#: ../../utils/net_rpc.c:2178
+msgid ""
+"Usage:\n"
+"net rpc group list [global] [local] [builtin]\n"
+" List groups on RPC server\n"
+" global\tList global groups\n"
+" local\tList local groups\n"
+" builtin\tList builtin groups\n"
+" If none of global, local or builtin is specified, all three options are considered set\n"
+msgstr ""
diff --git a/source3/locale/net/genmsg b/source3/locale/net/genmsg
new file mode 100755
index 0000000000..2e0769ecea
--- /dev/null
+++ b/source3/locale/net/genmsg
@@ -0,0 +1,58 @@
+#!/bin/sh
+# Copyright (C) 2003 TAKAHASHI Motonobu <monyo@samba.org>
+# Copyright (C) 2009 Kai Blin <kai@samba.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 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/>.
+#
+add_basedir_to_filelist() {
+ BASEDIR="$1"
+ shift;
+ FILELIST="$@"
+ FULL_LIST=""
+ for file in ${FILELIST}; do
+ FULL_LIST="${FULL_LIST} $BASEDIR/${file}"
+ done
+ echo ${FULL_LIST}
+}
+
+FILES=`add_basedir_to_filelist ../../utils net.c net_ads.c net_ads_gpo.c \
+ net_afs.c net_cache.c net_conf.c net_dom.c net_eventlog.c net_file.c \
+ net_group.c net_groupmap.c net_help.c net_help_common.c net_idmap.c \
+ net_join.c net_lookup.c net_lua.c net_rap.c net_registry.c \
+ net_registry_util.c net_rpc.c net_rpc_audit.c`
+
+LANGS="af ar bg bn bs ca cs cy da de el en_GB en_US es et fi fr gl gu he hi hr
+ hu id it ja ka km ko lo lt mk mr nb nl pa pl pt_BR pt ro ru si sk sl sr
+ sv ta th tr uk vi wa xh zh_CN zh_TW zu"
+XGETTEXT=xgettext
+MSGMERGE=msgmerge
+
+WIDTH=256
+
+${XGETTEXT} --default-domain="net" \
+ --add-comments \
+ --keyword=_ --keyword=N_ \
+ --width=${WIDTH} \
+ ${FILES}
+
+for lang in ${LANGS}; do
+ printf "%s " ${lang}
+ touch ${lang}.po
+ mv ${lang}.po ${lang}.po.old
+ ${MSGMERGE} --width=${WIDTH} ${lang}.po.old net.po -o ${lang}.po
+ rm -rf ${lang}.po.old
+done
+
+rm -rf net.po
+
diff --git a/source3/modules/vfs_default.c b/source3/modules/vfs_default.c
index a4922e7e05..2ee2fd1249 100644
--- a/source3/modules/vfs_default.c
+++ b/source3/modules/vfs_default.c
@@ -780,6 +780,21 @@ static int vfswrap_ntimes(vfs_handle_struct *handle,
goto out;
}
+ if (null_timespec(ft->atime)) {
+ ft->atime= smb_fname->st.st_ex_atime;
+ }
+
+ if (null_timespec(ft->mtime)) {
+ ft->mtime = smb_fname->st.st_ex_mtime;
+ }
+
+ if ((timespec_compare(&ft->atime,
+ &smb_fname->st.st_ex_atime) == 0) &&
+ (timespec_compare(&ft->mtime,
+ &smb_fname->st.st_ex_mtime) == 0)) {
+ return 0;
+ }
+
#if defined(HAVE_UTIMES)
if (ft != NULL) {
struct timeval tv[2];
diff --git a/source3/po/de.msg b/source3/po/de.msg
index 8c51cc093f..31baaf794c 100644
--- a/source3/po/de.msg
+++ b/source3/po/de.msg
@@ -19,7 +19,7 @@ msgid ""
msgstr ""
"Project-Id-Version: swat\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-30 12:18+0200\n"
+"POT-Creation-Date: 2007-06-04 18:15+0200\n"
"PO-Revision-Date: 2007-06-10 11:52+0200\n"
"Last-Translator: Helge Kreutzmann <debian@helgefjell.de>\n"
"Language-Team: German <debian-l10n-german@lists.debian.org>\n"
@@ -27,4014 +27,590 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../web/swat.c:153
+#: ../web/swat.c:139
#, c-format
msgid "ERROR: Can't open %s"
msgstr "FEHLER: Kann %s nicht öffnen"
-#: ../web/swat.c:241
+#: ../web/swat.c:223
msgid "Help"
msgstr "Hilfe"
-#: ../web/swat.c:247 ../web/swat.c:272 ../web/swat.c:293 ../web/swat.c:302 ../web/swat.c:311 ../web/swat.c:317 ../web/swat.c:329 ../web/swat.c:343
+#: ../web/swat.c:229 ../web/swat.c:254 ../web/swat.c:275 ../web/swat.c:285
+#: ../web/swat.c:294 ../web/swat.c:303 ../web/swat.c:309 ../web/swat.c:315
+#: ../web/swat.c:328
msgid "Set Default"
msgstr "Standardwert setzen"
-#: ../web/swat.c:465
+#: ../web/swat.c:450
#, c-format
msgid "failed to open %s for writing"
msgstr "konnte %s nicht zum Schreiben öffnen"
-#: ../web/swat.c:488
+#: ../web/swat.c:473
#, c-format
msgid "Can't reload %s"
msgstr "Kann %s nicht erneut laden"
-#: ../web/swat.c:561
+#: ../web/swat.c:543
#, c-format
msgid "Logged in as <b>%s</b>"
msgstr "Verbunden als <b>%s</b>"
-#: ../web/swat.c:565
+#: ../web/swat.c:547
msgid "Home"
msgstr "Home"
-#: ../web/swat.c:567
+#: ../web/swat.c:549
msgid "Globals"
msgstr "Globals"
-#: ../web/swat.c:568
+#: ../web/swat.c:550
msgid "Shares"
msgstr "Freigaben"
-#: ../web/swat.c:569
+#: ../web/swat.c:551
msgid "Printers"
msgstr "Drucker"
-#: ../web/swat.c:570
+#: ../web/swat.c:552
msgid "Wizard"
msgstr "Assistent"
-#: ../web/swat.c:574
+#: ../web/swat.c:556
msgid "Status"
msgstr "Status"
-#: ../web/swat.c:575
+#: ../web/swat.c:557
msgid "View Config"
msgstr "Zeige Konfiguration"
-#: ../web/swat.c:577
+#: ../web/swat.c:559
msgid "Password Management"
msgstr "Passwortverwaltung"
-#: ../web/swat.c:587
+#: ../web/swat.c:569
msgid "Current View Is"
msgstr "Aktuelle Ansicht lautet"
-#: ../web/swat.c:588 ../web/swat.c:591
+#: ../web/swat.c:570 ../web/swat.c:573
msgid "Basic"
msgstr "Einfache Ansicht"
-#: ../web/swat.c:589 ../web/swat.c:592
+#: ../web/swat.c:571 ../web/swat.c:574
msgid "Advanced"
msgstr "Erweiterte Ansicht"
-#: ../web/swat.c:590
+#: ../web/swat.c:572
msgid "Change View To"
msgstr "Ansicht ändern in"
-#: ../web/swat.c:619
+#: ../web/swat.c:601
msgid "Current Config"
msgstr "Aktuelle Konfiguration"
-#: ../web/swat.c:623
+#: ../web/swat.c:605
msgid "Normal View"
msgstr "Normale Ansicht"
-#: ../web/swat.c:625
+#: ../web/swat.c:607
msgid "Full View"
msgstr "Komplette Ansicht"
#. Here we first set and commit all the parameters that were selected
#. in the previous screen.
-#: ../web/swat.c:644
+#: ../web/swat.c:626
msgid "Wizard Parameter Edit Page"
msgstr "Bearbeitungsseite der Assistenten-Parameter"
-#: ../web/swat.c:673
+#: ../web/swat.c:655
msgid "Note: smb.conf file has been read and rewritten"
msgstr "Hinweis: smb.conf wurde gelesen und überschrieben"
#. Here we go ...
-#: ../web/swat.c:779
+#: ../web/swat.c:763
msgid "Samba Configuration Wizard"
msgstr "Samba-Konfigurationsassistent"
-#: ../web/swat.c:783
-msgid "The \"Rewrite smb.conf file\" button will clear the smb.conf file of all default values and of comments."
-msgstr "Der Knopf »Schreibe smb.conf neu« wird alle Kommentare und Standardwerte aus der smb.conf löschen."
+#: ../web/swat.c:767
+msgid ""
+"The \"Rewrite smb.conf file\" button will clear the smb.conf file of all "
+"default values and of comments."
+msgstr ""
+"Der Knopf »Schreibe smb.conf neu« wird alle Kommentare und Standardwerte "
+"aus der smb.conf löschen."
-#: ../web/swat.c:784
+#: ../web/swat.c:768
msgid "The same will happen if you press the commit button."
msgstr "Das gleiche passiert beim Knopf »übernehmen«."
-#: ../web/swat.c:787
+#: ../web/swat.c:771
msgid "Rewrite smb.conf file"
msgstr "Schreibe smb.conf neu"
-#: ../web/swat.c:788
+#: ../web/swat.c:772
msgid "Commit"
msgstr "Übernehmen"
-#: ../web/swat.c:789
+#: ../web/swat.c:773
msgid "Edit Parameter Values"
msgstr "Bearbeite Parameterwerte"
-#: ../web/swat.c:795
+#: ../web/swat.c:779
msgid "Server Type"
msgstr "Server-Typ"
-#: ../web/swat.c:796
+#: ../web/swat.c:780
msgid "Stand Alone"
msgstr "Einzelserver"
-#: ../web/swat.c:797
+#: ../web/swat.c:781
msgid "Domain Member"
msgstr "Domänenmitglied"
-#: ../web/swat.c:798
+#: ../web/swat.c:782
msgid "Domain Controller"
msgstr "Domänencontroller"
-#: ../web/swat.c:801
+#: ../web/swat.c:785
msgid "Unusual Type in smb.conf - Please Select New Mode"
-msgstr "Ungewöhnlicher Typ in der smb.conf - Bitte wählen Sie einen neuen Modus"
+msgstr ""
+"Ungewöhnlicher Typ in der smb.conf - Bitte wählen Sie einen neuen Modus"
-#: ../web/swat.c:803
+#: ../web/swat.c:787
msgid "Configure WINS As"
msgstr "Konfiguriere WINS als"
-#: ../web/swat.c:804
+#: ../web/swat.c:788
msgid "Not Used"
msgstr "Nicht benutzt"
-#: ../web/swat.c:805
+#: ../web/swat.c:789
msgid "Server for client use"
msgstr "Server für Client-Verwendung"
-#: ../web/swat.c:806
+#: ../web/swat.c:790
msgid "Client of another WINS server"
msgstr "Client eines anderen WINS-Servers"
-#: ../web/swat.c:808
+#: ../web/swat.c:792
msgid "Remote WINS Server"
msgstr "Entfernter WINS-Server:"
-#: ../web/swat.c:819
+#: ../web/swat.c:803
msgid "Error: WINS Server Mode and WINS Support both set in smb.conf"
-msgstr "Fehler: Sowohl WINS-Server-Modus als auch WINS-Unterstützung in smb.conf aktiviert"
+msgstr ""
+"Fehler: Sowohl WINS-Server-Modus als auch WINS-Unterstützung in smb.conf "
+"aktiviert"
-#: ../web/swat.c:820
+#: ../web/swat.c:804
msgid "Please Select desired WINS mode above."
msgstr "Bitte wählen Sie den gewünschten WINS-Modus oben aus."
-#: ../web/swat.c:822
+#: ../web/swat.c:806
msgid "Expose Home Directories"
msgstr "Home-Verzeichnisse freigeben"
-#: ../web/swat.c:837
-msgid "The above configuration options will set multiple parameters and will generally assist with rapid Samba deployment."
-msgstr "Die obigen Konfigurationsoptionen bearbeiten mehrere Parameter und dienen als Hilfe zur schnellen Samba-Einrichtung."
+#: ../web/swat.c:821
+msgid ""
+"The above configuration options will set multiple parameters and will "
+"generally assist with rapid Samba deployment."
+msgstr ""
+"Die obigen Konfigurationsoptionen bearbeiten mehrere Parameter und dienen als "
+"Hilfe zur schnellen Samba-Einrichtung."
-#: ../web/swat.c:850
+#: ../web/swat.c:834
msgid "Global Parameters"
msgstr "Globale Parameter"
-#: ../web/swat.c:878 ../web/swat.c:986 ../web/swat.c:1344
+#: ../web/swat.c:862 ../web/swat.c:966 ../web/swat.c:1318
msgid "Commit Changes"
msgstr "Änderungen speichern"
-#: ../web/swat.c:882 ../web/swat.c:989 ../web/swat.c:1346
+#: ../web/swat.c:866 ../web/swat.c:969 ../web/swat.c:1320
msgid "Reset Values"
msgstr "Werte zurücksetzen"
-#: ../web/swat.c:908
+#: ../web/swat.c:891
msgid "Share Parameters"
msgstr "Parameter der Freigabe"
-#: ../web/swat.c:955
+#: ../web/swat.c:934
msgid "Choose Share"
msgstr "Wähle Freigabe"
-#: ../web/swat.c:971
+#: ../web/swat.c:951
msgid "Delete Share"
msgstr "Lösche Freigabe"
-#: ../web/swat.c:978
+#: ../web/swat.c:958
msgid "Create Share"
msgstr "Erstelle Freigabe"
-#: ../web/swat.c:1014
+#: ../web/swat.c:994
msgid "password change in demo mode rejected"
msgstr "Änderung des Passworts im Demo-Modus nicht möglich"
-#: ../web/swat.c:1028
+#: ../web/swat.c:1007
msgid "Can't setup password database vectors."
msgstr "Kann Passwort-Datenbankvektoren nicht einrichten"
-#: ../web/swat.c:1056
+#: ../web/swat.c:1033
msgid " Must specify \"User Name\" "
msgstr " »Benutzername« muss angegeben werden "
-#: ../web/swat.c:1072
+#: ../web/swat.c:1049
msgid " Must specify \"Old Password\" "
msgstr " »Altes Passwort« muss angegeben werden "
-#: ../web/swat.c:1078
+#: ../web/swat.c:1055
msgid " Must specify \"Remote Machine\" "
msgstr " »Entfernter Server« muss angegeben werden "
-#: ../web/swat.c:1085
+#: ../web/swat.c:1062
msgid " Must specify \"New, and Re-typed Passwords\" "
msgstr " »Neues/wiederholtes Passwort« muss angegeben werden "
-#: ../web/swat.c:1091
+#: ../web/swat.c:1068
msgid " Re-typed password didn't match new password "
msgstr " Das wiederholte Passwort stimmt nicht mit dem neuen Passwort überein"
-#: ../web/swat.c:1124
+#: ../web/swat.c:1101
#, c-format
msgid " The passwd for '%s' has been changed."
msgstr " Das Passwort für '%s' wurde geändert."
-#: ../web/swat.c:1127
+#: ../web/swat.c:1104
#, c-format
msgid " The passwd for '%s' has NOT been changed."
msgstr " Das Passwort für '%s' wurde NICHT geändert."
-#: ../web/swat.c:1152
+#: ../web/swat.c:1129
msgid "Server Password Management"
msgstr "Verwaltung des Server-Passwortes"
#.
#. * Create all the dialog boxes for data collection
#.
-#: ../web/swat.c:1161 ../web/swat.c:1208
+#: ../web/swat.c:1138 ../web/swat.c:1185
msgid "User Name"
msgstr "Benutzername"
-#: ../web/swat.c:1164 ../web/swat.c:1210
+#: ../web/swat.c:1141 ../web/swat.c:1187
msgid "Old Password"
msgstr "Altes Passwort"
-#: ../web/swat.c:1167 ../web/swat.c:1212
+#: ../web/swat.c:1144 ../web/swat.c:1189
msgid "New Password"
msgstr "Neues Passwort"
-#: ../web/swat.c:1169 ../web/swat.c:1214
+#: ../web/swat.c:1146 ../web/swat.c:1191
msgid "Re-type New Password"
msgstr "Wiederhole neues Passwort"
-#: ../web/swat.c:1177 ../web/swat.c:1225
+#: ../web/swat.c:1154 ../web/swat.c:1202
msgid "Change Password"
msgstr "Ändere Passwort"
-#: ../web/swat.c:1180
+#: ../web/swat.c:1157
msgid "Add New User"
msgstr "Füge neuen Benutzer hinzu"
-#: ../web/swat.c:1182
+#: ../web/swat.c:1159
msgid "Delete User"
msgstr "Lösche Benutzer"
-#: ../web/swat.c:1184
+#: ../web/swat.c:1161
msgid "Disable User"
msgstr "Deaktiviere Benutzer"
-#: ../web/swat.c:1186
+#: ../web/swat.c:1163
msgid "Enable User"
msgstr "Aktiviere Benutzer"
-#: ../web/swat.c:1199
+#: ../web/swat.c:1176
msgid "Client/Server Password Management"
msgstr "Client/Server Passwort-Verwaltung"
-#: ../web/swat.c:1216
+#: ../web/swat.c:1193
msgid "Remote Machine"
msgstr "Entfernte Maschine"
-#: ../web/swat.c:1255
+#: ../web/swat.c:1232
msgid "Printer Parameters"
msgstr "Drucker-Parameter"
-#: ../web/swat.c:1257
+#: ../web/swat.c:1234
msgid "Important Note:"
msgstr "Wichtiger Hinweis:"
-#: ../web/swat.c:1258
+#: ../web/swat.c:1235
+#, c-format
msgid "Printer names marked with [*] in the Choose Printer drop-down box "
msgstr "Mit [*] gekennzeichnete Drucker in der »Wähle Drucker«-Auswahlliste "
-#: ../web/swat.c:1259
+#: ../web/swat.c:1236
+#, c-format
msgid "are autoloaded printers from "
msgstr "sind automatisch geladene Drucker aus "
-#: ../web/swat.c:1260
+#: ../web/swat.c:1237
msgid "Printcap Name"
msgstr "Printcap-Name"
-#: ../web/swat.c:1261
+#: ../web/swat.c:1238
msgid "Attempting to delete these printers from SWAT will have no effect."
-msgstr "Der Versuch, diese Drucker von SWAT aus zu löschen, wird keine Auswirkung haben."
+msgstr ""
+"Der Versuch, diese Drucker von SWAT aus zu löschen, wird keine Auswirkung "
+"haben."
-#: ../web/swat.c:1310
+#: ../web/swat.c:1284
msgid "Choose Printer"
msgstr "Wähle Drucker"
-#: ../web/swat.c:1329
+#: ../web/swat.c:1303
msgid "Delete Printer"
msgstr "Lösche Drucker"
-#: ../web/swat.c:1336
+#: ../web/swat.c:1310
msgid "Create Printer"
msgstr "Erstelle Drucker"
-#: ../web/statuspage.c:151
+#: ../web/statuspage.c:139
msgid "RDWR "
msgstr "LESE/SCHREIBE "
-#: ../web/statuspage.c:153
+#: ../web/statuspage.c:141
msgid "WRONLY "
msgstr "NUR SCHREIBE "
-#: ../web/statuspage.c:155
+#: ../web/statuspage.c:143
msgid "RDONLY "
msgstr "NUR LESE "
-#: ../web/statuspage.c:329
+#: ../web/statuspage.c:330
msgid "Server Status"
msgstr "Server-Status"
-#: ../web/statuspage.c:334
+#: ../web/statuspage.c:335
msgid "Auto Refresh"
msgstr "Automatische Aktualisierung"
-#: ../web/statuspage.c:335 ../web/statuspage.c:340
+#: ../web/statuspage.c:336 ../web/statuspage.c:341
msgid "Refresh Interval: "
msgstr "Aktualisierungsintervall: "
-#: ../web/statuspage.c:339
+#: ../web/statuspage.c:340
msgid "Stop Refreshing"
msgstr "Stoppe Aktualisierung"
-#: ../web/statuspage.c:348
+#: ../web/statuspage.c:355
msgid "version:"
msgstr "Version:"
-#: ../web/statuspage.c:351
+#: ../web/statuspage.c:358
msgid "smbd:"
msgstr "smbd:"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:358 ../web/statuspage.c:371 ../web/statuspage.c:385
msgid "running"
msgstr "aktiv"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:358 ../web/statuspage.c:371 ../web/statuspage.c:385
msgid "not running"
msgstr "inaktiv"
-#: ../web/statuspage.c:355
+#: ../web/statuspage.c:362
msgid "Stop smbd"
msgstr "Stoppe smbd"
-#: ../web/statuspage.c:357
+#: ../web/statuspage.c:364
msgid "Start smbd"
msgstr "Starte smbd"
-#: ../web/statuspage.c:359
+#: ../web/statuspage.c:366
msgid "Restart smbd"
msgstr "Starte smbd neu"
-#: ../web/statuspage.c:364
+#: ../web/statuspage.c:371
msgid "nmbd:"
msgstr "nmbd:"
-#: ../web/statuspage.c:368
+#: ../web/statuspage.c:375
msgid "Stop nmbd"
msgstr "Stoppe nmbd"
-#: ../web/statuspage.c:370
+#: ../web/statuspage.c:377
msgid "Start nmbd"
msgstr "Starte nmbd"
-#: ../web/statuspage.c:372
+#: ../web/statuspage.c:379
msgid "Restart nmbd"
msgstr "Starte nmbd neu"
-#: ../web/statuspage.c:378
+#: ../web/statuspage.c:385
msgid "winbindd:"
msgstr "winbindd:"
-#: ../web/statuspage.c:382
+#: ../web/statuspage.c:389
msgid "Stop winbindd"
msgstr "Stoppe winbindd"
-#: ../web/statuspage.c:384
+#: ../web/statuspage.c:391
msgid "Start winbindd"
msgstr "Starte winbindd"
-#: ../web/statuspage.c:386
+#: ../web/statuspage.c:393
msgid "Restart winbindd"
msgstr "Starte winbindd neu"
#. stop, restart all
-#: ../web/statuspage.c:395
+#: ../web/statuspage.c:402
msgid "Stop All"
msgstr "Alle Stoppen"
-#: ../web/statuspage.c:396
+#: ../web/statuspage.c:403
msgid "Restart All"
msgstr "Alle neu starten"
#. start all
-#: ../web/statuspage.c:400
+#: ../web/statuspage.c:407
msgid "Start All"
msgstr "Alle starten"
-#: ../web/statuspage.c:407
+#: ../web/statuspage.c:414
msgid "Active Connections"
msgstr "Aktive Verbindungen"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:416 ../web/statuspage.c:429 ../web/statuspage.c:437
msgid "PID"
msgstr "PID"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422
+#: ../web/statuspage.c:416 ../web/statuspage.c:429
msgid "Client"
msgstr "Client"
-#: ../web/statuspage.c:409
+#: ../web/statuspage.c:416
msgid "IP address"
msgstr "IP-Adresse"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:416 ../web/statuspage.c:429 ../web/statuspage.c:437
msgid "Date"
msgstr "Datum"
-#: ../web/statuspage.c:411
+#: ../web/statuspage.c:418
msgid "Kill"
msgstr "Töten"
-#: ../web/statuspage.c:419
+#: ../web/statuspage.c:426
msgid "Active Shares"
msgstr "Aktive Freigaben"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:429
msgid "Share"
msgstr "Freigabe"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:429
msgid "User"
msgstr "Benutzer"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:429
msgid "Group"
msgstr "Gruppe"
-#: ../web/statuspage.c:428
+#: ../web/statuspage.c:435
msgid "Open Files"
msgstr "Offene Dateien"
-#: ../web/statuspage.c:431
-#, fuzzy
-msgid "UID"
-msgstr "PID"
-
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:437
msgid "Sharing"
msgstr "Freigeben"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:437
msgid "R/W"
msgstr "Lese/Schreibe"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:437
msgid "Oplock"
msgstr "Opportunistische Sperre (Lock)"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:437
msgid "File"
msgstr "Datei"
-#: ../web/statuspage.c:438
+#: ../web/statuspage.c:446
msgid "Show Client in col 1"
msgstr "Zeige Client in Spalte 1"
-#: ../web/statuspage.c:439
+#: ../web/statuspage.c:447
msgid "Show PID in col 1"
msgstr "Zeige PID in Spalte 1"
-#: ../param/loadparm.c:907
+#: ../param/loadparm.c:836
msgid "Base Options"
msgstr "Basisoptionen"
-#: ../param/loadparm.c:1047
+#: ../param/loadparm.c:855
msgid "Security Options"
msgstr "Sicherheitsoptionen"
-#: ../param/loadparm.c:1800
+#: ../param/loadparm.c:945
msgid "Logging Options"
msgstr "Protokollier-Optionen"
-#: ../param/loadparm.c:1929
+#: ../param/loadparm.c:962
msgid "Protocol Options"
msgstr "Protokoll-Optionen"
-#: ../param/loadparm.c:2301
+#: ../param/loadparm.c:1008
msgid "Tuning Options"
msgstr "Optimierungsoptionen"
-#: ../param/loadparm.c:2538
+#: ../param/loadparm.c:1037
msgid "Printing Options"
msgstr "Druckoptionen"
-#: ../param/loadparm.c:2858
+#: ../param/loadparm.c:1075
msgid "Filename Handling"
msgstr "Dateinamen-Verwaltung"
-#: ../param/loadparm.c:3088
+#: ../param/loadparm.c:1105
msgid "Domain Options"
msgstr "Domänen-Optionen"
-#: ../param/loadparm.c:3100
+#: ../param/loadparm.c:1109
msgid "Logon Options"
msgstr "Anmelde-Optionen"
-#: ../param/loadparm.c:3273
+#: ../param/loadparm.c:1130
msgid "Browse Options"
msgstr "Browsing-Optionen"
-#: ../param/loadparm.c:3384
+#: ../param/loadparm.c:1144
msgid "WINS Options"
msgstr "WINS-Optionen"
-#: ../param/loadparm.c:3432
+#: ../param/loadparm.c:1153
msgid "Locking Options"
msgstr "Locking-(Sperr-)Optionen"
-#: ../param/loadparm.c:3552
+#: ../param/loadparm.c:1170
msgid "Ldap Options"
msgstr "LDAP-Optionen"
-#: ../param/loadparm.c:3708
-msgid "EventLog Options"
-msgstr "EventLog-Optionen"
-
-#: ../param/loadparm.c:3720
+#: ../param/loadparm.c:1186
msgid "Miscellaneous Options"
msgstr "Sonstige Optionen"
-#: ../param/loadparm.c:4301
-msgid "VFS module options"
-msgstr "VFS-Modul-Optionen"
+#: ../param/loadparm.c:1191
+#| msgid "Logon Options"
+msgid "EventLog Options"
+msgstr "EventLog-Optionen"
-#: ../param/loadparm.c:4323
-#, fuzzy
-msgid "MSDFS options"
+#: ../param/loadparm.c:1258
+msgid "VFS module options"
msgstr "VFS-Modul-Optionen"
-#: ../param/loadparm.c:4353
+#: ../param/loadparm.c:1268
msgid "Winbind options"
msgstr "Winbind-Optionen"
-
-#: ../utils/net.c:103
-msgid "Enter machine password: "
-msgstr ""
-
-#: ../utils/net.c:107
-msgid "Unable to write the machine account password in the secrets database"
-msgstr ""
-
-#: ../utils/net.c:111
-msgid "Modified trust account password in secrets database\n"
-msgstr ""
-
-#: ../utils/net.c:115
-msgid ""
-"Machine account password change requires the -f flag.\n"
-"Do NOT use this function unless you know what it does!\n"
-"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
-#, 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
-#, c-format
-msgid "SID for domain %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:175
-msgid "usage: net setlocalsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:195
-msgid "usage: net setdomainsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:213
-msgid "usage: net getdomainsid\n"
-msgstr ""
-
-#: ../utils/net.c:238
-msgid "Could not fetch local SID\n"
-msgstr ""
-
-#: ../utils/net.c:242
-#, c-format
-msgid "SID for local machine %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:246
-msgid "Could not fetch domain SID\n"
-msgstr ""
-
-#: ../utils/net.c:263
-#, c-format
-msgid "get_maxrid: Could not search %s\n"
-msgstr ""
-
-#: ../utils/net.c:297
-msgid "usage: net maxrid\n"
-msgstr ""
-
-#: ../utils/net.c:302
-msgid "can't get current maximum rid\n"
-msgstr ""
-
-#: ../utils/net.c:306
-#, c-format
-msgid "Currently used maximum rid: %d\n"
-msgstr ""
-
-#: ../utils/net.c:317
-msgid "Run functions using RPC transport"
-msgstr ""
-
-#: ../utils/net.c:318
-msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands."
-msgstr ""
-
-#: ../utils/net.c:325
-msgid "Run functions using RAP transport"
-msgstr ""
-
-#: ../utils/net.c:326
-msgid " Use 'net help rap' to get more extensive information about 'net rap' commands."
-msgstr ""
-
-#: ../utils/net.c:333
-msgid "Run functions using ADS transport"
-msgstr ""
-
-#: ../utils/net.c:334
-msgid " Use 'net help ads' to get more extensive information about 'net ads' commands."
-msgstr ""
-
-#: ../utils/net.c:343
-msgid "Functions on remote opened files"
-msgstr ""
-
-#: ../utils/net.c:344
-msgid " Use 'net help file' to get more information about 'net file' commands."
-msgstr ""
-
-#: ../utils/net.c:351
-msgid "Functions on shares"
-msgstr ""
-
-#: ../utils/net.c:352
-msgid " Use 'net help share' to get more information about 'net share' commands."
-msgstr ""
-
-#: ../utils/net.c:359
-msgid "Manage sessions"
-msgstr ""
-
-#: ../utils/net.c:360
-msgid " Use 'net help session' to get more information about 'net session' commands."
-msgstr ""
-
-#: ../utils/net.c:367
-msgid "List servers in workgroup"
-msgstr ""
-
-#: ../utils/net.c:368
-msgid " Use 'net help server' to get more information about 'net server' commands."
-msgstr ""
-
-#: ../utils/net.c:375
-msgid "List domains/workgroups on network"
-msgstr ""
-
-#: ../utils/net.c:376
-msgid " Use 'net help domain' to get more information about 'net domain' commands."
-msgstr ""
-
-#: ../utils/net.c:383
-msgid "Modify printer queue"
-msgstr ""
-
-#: ../utils/net.c:384
-msgid " Use 'net help printq' to get more information about 'net printq' commands."
-msgstr ""
-
-#: ../utils/net.c:391
-#, fuzzy
-msgid "Manage users"
-msgstr "Aktiviere Benutzer"
-
-#: ../utils/net.c:392
-msgid " Use 'net help user' to get more information about 'net user' commands."
-msgstr ""
-
-#: ../utils/net.c:399
-msgid "Manage groups"
-msgstr ""
-
-#: ../utils/net.c:400
-msgid " Use 'net help group' to get more information about 'net group' commands."
-msgstr ""
-
-#: ../utils/net.c:407
-msgid "Manage group mappings"
-msgstr ""
-
-#: ../utils/net.c:408
-msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands."
-msgstr ""
-
-#: ../utils/net.c:415
-msgid "Functions on the SAM database"
-msgstr ""
-
-#: ../utils/net.c:416
-msgid " Use 'net help sam' to get more information about 'net sam' commands."
-msgstr ""
-
-#: ../utils/net.c:423
-msgid "Validate username and password"
-msgstr ""
-
-#: ../utils/net.c:424
-msgid " Use 'net help validate' to get more information about 'net validate' commands."
-msgstr ""
-
-#: ../utils/net.c:431
-msgid "Modify group memberships"
-msgstr ""
-
-#: ../utils/net.c:432
-msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands."
-msgstr ""
-
-#: ../utils/net.c:438
-msgid "Execute remote command on a remote OS/2 server"
-msgstr ""
-
-#: ../utils/net.c:439
-msgid " Use 'net help admin' to get more information about 'net admin' commands."
-msgstr ""
-
-#: ../utils/net.c:445
-msgid "List/modify running services"
-msgstr ""
-
-#: ../utils/net.c:446
-msgid " Use 'net help service' to get more information about 'net service' commands."
-msgstr ""
-
-#: ../utils/net.c:453
-#, fuzzy
-msgid "Change user password on target server"
-msgstr "Kann Passwort-Datenbankvektoren nicht einrichten"
-
-#: ../utils/net.c:454
-msgid " Use 'net help password' to get more information about 'net password' commands."
-msgstr ""
-
-#: ../utils/net.c:460
-#, fuzzy
-msgid "Change the trust password"
-msgstr "Ändere Passwort"
-
-#: ../utils/net.c:461
-msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'."
-msgstr ""
-
-#: ../utils/net.c:467
-#, fuzzy
-msgid "Change the secret password"
-msgstr "Ändere Passwort"
-
-#: ../utils/net.c:468
-msgid ""
-" net [options] changesecretpw\n"
-" Change the ADS domain member machine account password in secrets.tdb.\n"
-" Do NOT use this function unless you know what it does.\n"
-" Requires the -f flag to work."
-msgstr ""
-
-#: ../utils/net.c:477
-msgid "Show/set time"
-msgstr ""
-
-#: ../utils/net.c:478
-msgid " Use 'net help time' to get more information about 'net time' commands."
-msgstr ""
-
-#: ../utils/net.c:484
-msgid "Look up host names/IP addresses"
-msgstr ""
-
-#: ../utils/net.c:485
-msgid " Use 'net help lookup' to get more information about 'net lookup' commands."
-msgstr ""
-
-#: ../utils/net.c:491
-msgid "Join a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:492
-msgid " Use 'net help join' to get more information about 'net join'."
-msgstr ""
-
-#: ../utils/net.c:498
-msgid "Join/unjoin (remote) machines to/from a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:499
-msgid " Use 'net help dom' to get more information about 'net dom' commands."
-msgstr ""
-
-#: ../utils/net.c:505
-msgid "Operate on the cache tdb file"
-msgstr ""
-
-#: ../utils/net.c:506
-msgid " Use 'net help cache' to get more information about 'net cache' commands."
-msgstr ""
-
-#: ../utils/net.c:512
-msgid "Get the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:513
-msgid " net getlocalsid"
-msgstr ""
-
-#: ../utils/net.c:518
-msgid "Set the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:519
-msgid " net setlocalsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:524
-msgid "Set domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:525
-msgid " net setdomainsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:530
-msgid "Get domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:531
-msgid " net getdomainsid"
-msgstr ""
-
-#: ../utils/net.c:536
-msgid "Display the maximul RID currently used"
-msgstr ""
-
-#: ../utils/net.c:537
-msgid " net maxrid"
-msgstr ""
-
-#: ../utils/net.c:542
-#, fuzzy
-msgid "IDmap functions"
-msgstr "Domänen-Optionen"
-
-#: ../utils/net.c:543
-msgid " Use 'net help idmap to get more information about 'net idmap' commands."
-msgstr ""
-
-#: ../utils/net.c:549
-#, fuzzy
-msgid "Display server status"
-msgstr "Server-Status"
-
-#: ../utils/net.c:550
-msgid " Use 'net help status' to get more information about 'net status' commands."
-msgstr ""
-
-#: ../utils/net.c:556
-msgid "Manage user-modifiable shares"
-msgstr ""
-
-#: ../utils/net.c:557
-msgid " Use 'net help usershare to get more information about 'net usershare' commands."
-msgstr ""
-
-#: ../utils/net.c:563
-msgid "Display list of all users with SID"
-msgstr ""
-
-#: ../utils/net.c:564
-msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'."
-msgstr ""
-
-#: ../utils/net.c:570
-msgid "Manage Samba registry based configuration"
-msgstr ""
-
-#: ../utils/net.c:571
-msgid " Use 'net help conf' to get more information about 'net conf' commands."
-msgstr ""
-
-#: ../utils/net.c:577
-msgid "Manage the Samba registry"
-msgstr ""
-
-#: ../utils/net.c:578
-msgid " Use 'net help registry' to get more information about 'net registry' commands."
-msgstr ""
-
-#: ../utils/net.c:584
-msgid "Open a lua interpreter"
-msgstr ""
-
-#: ../utils/net.c:585
-msgid " Use 'net help lua' to get more information about 'net lua' commands."
-msgstr ""
-
-#: ../utils/net.c:591
-msgid "Process Win32 *.evt eventlog files"
-msgstr ""
-
-#: ../utils/net.c:592
-msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands."
-msgstr ""
-
-#: ../utils/net.c:600
-msgid "Manage AFS tokens"
-msgstr ""
-
-#: ../utils/net.c:601
-msgid " Use 'net help afs' to get more information about 'net afs' commands."
-msgstr ""
-
-#: ../utils/net.c:609
-msgid "Print usage information"
-msgstr ""
-
-#: ../utils/net.c:610
-msgid " Use 'net help help' to list usage information for 'net' commands."
-msgstr ""
-
-#: ../utils/net.c:639
-msgid "Encrypt SMB transport (UNIX extended servers only)"
-msgstr ""
-
-#: ../utils/net.c:703
-msgid ""
-"\n"
-"Invalid ip address specified\n"
-msgstr ""
-
-#: ../utils/net.c:718
-#, c-format
-msgid ""
-"\n"
-"Invalid option %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:52 ../utils/net_ads.c:392
-msgid "CLDAP query failed!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:56
-#, fuzzy, c-format
-msgid ""
-"Information for Domain Controller: %s\n"
-"\n"
-msgstr "Domänencontroller"
-
-#: ../utils/net_ads.c:59
-msgid "Response Type: "
-msgstr ""
-
-#: ../utils/net_ads.c:72
-#, c-format
-msgid "GUID: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:74
-#, c-format
-msgid ""
-"Flags:\n"
-"\tIs a PDC: %s\n"
-"\tIs a GC of the forest: %s\n"
-"\tIs an LDAP server: %s\n"
-"\tSupports DS: %s\n"
-"\tIs running a KDC: %s\n"
-"\tIs running time services: %s\n"
-"\tIs the closest DC: %s\n"
-"\tIs writable: %s\n"
-"\tHas a hardware clock: %s\n"
-"\tIs a non-domain NC serviced by LDAP server: %s\n"
-"\tIs NT6 DC that has some secrets: %s\n"
-"\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
-msgid "yes"
-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
-msgid "no"
-msgstr ""
-
-#: ../utils/net_ads.c:101
-#, c-format
-msgid "Forest:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:102
-#, c-format
-msgid "Domain:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:103
-#, fuzzy, c-format
-msgid "Domain Controller:\t%s\n"
-msgstr "Domänencontroller"
-
-#: ../utils/net_ads.c:105
-#, c-format
-msgid "Pre-Win2k Domain:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:106
-#, c-format
-msgid "Pre-Win2k Hostname:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:108
-#, fuzzy, c-format
-msgid "User name:\t%s\n"
-msgstr "Benutzername"
-
-#: ../utils/net_ads.c:110
-#, fuzzy, c-format
-msgid "Server Site Name :\t\t%s\n"
-msgstr "Server-Status"
-
-#: ../utils/net_ads.c:111
-#, c-format
-msgid "Client Site Name :\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:113
-#, fuzzy, c-format
-msgid "NT Version: %d\n"
-msgstr "Version:"
-
-#: ../utils/net_ads.c:114
-#, c-format
-msgid "LMNT Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:115
-#, c-format
-msgid "LM20 Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:130
-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
-msgid "Didn't find the cldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:160
-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
-msgid "Didn't find the ldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:182
-msgid "Failed to get server's current time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:187
-#, c-format
-msgid "LDAP server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:188
-#, c-format
-msgid "LDAP server name: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:189
-#, c-format
-msgid "Realm: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:190
-#, c-format
-msgid "Bind Path: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:191
-#, c-format
-msgid "LDAP port: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:192
-#, fuzzy, c-format
-msgid "Server time: %s\n"
-msgstr "Server-Status"
-
-#: ../utils/net_ads.c:195
-#, c-format
-msgid "KDC server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:196
-#, c-format
-msgid "Server time offset: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:374
-msgid ""
-"Usage:\n"
-"net ads workgroup\n"
-" Print the workgroup name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:397
-#, c-format
-msgid "Workgroup: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:458
-#, c-format
-msgid "ads_user_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:463
-#, c-format
-msgid "ads_user_add: User %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:477
-#, c-format
-msgid "Could not add user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:484 ../utils/net_ads.c:497
-#, fuzzy, c-format
-msgid "User %s added\n"
-msgstr "Benutzername"
-
-#. password didn't set, delete account
-#: ../utils/net_ads.c:503
-#, c-format
-msgid "Could not add user %s. Error setting password %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:551
-#, c-format
-msgid "ads_user_info: failed to escape user %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:569
-#, c-format
-msgid "ads_search: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:575
-msgid "ads_pull_uint32 failed\n"
-msgstr ""
-
-#: ../utils/net_ads.c:582
-#, c-format
-msgid "ads_domain_sid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:642
-#, c-format
-msgid "User %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:652
-#, c-format
-msgid "User %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:656
-#, c-format
-msgid "Error deleting user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:669
-#, fuzzy
-msgid "Add an AD user"
-msgstr "Füge neuen Benutzer hinzu"
-
-#: ../utils/net_ads.c:670
-msgid ""
-"net ads user add\n"
-" Add an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:677
-msgid "Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:678
-msgid ""
-"net ads user info\n"
-" Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:685
-#, fuzzy
-msgid "Delete an AD user"
-msgstr "Lösche Benutzer"
-
-#: ../utils/net_ads.c:686
-msgid ""
-"net ads user delete\n"
-" Delete an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:699
-msgid ""
-"Usage:\n"
-"net ads user\n"
-" List AD users\n"
-msgstr ""
-
-#: ../utils/net_ads.c:711
-msgid ""
-"\n"
-"User name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:751
-#, c-format
-msgid "ads_group_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:756
-#, c-format
-msgid "ads_group_add: Group %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:769
-#, c-format
-msgid "Group %s added\n"
-msgstr ""
-
-#: ../utils/net_ads.c:772
-#, c-format
-msgid "Could not add group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:801
-#, c-format
-msgid "Group %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:811
-#, c-format
-msgid "Group %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:815
-#, c-format
-msgid "Error deleting group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:828
-msgid "Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:829
-msgid ""
-"net ads group add\n"
-" Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:836
-#, fuzzy
-msgid "Delete an AD group"
-msgstr "Lösche Freigabe"
-
-#: ../utils/net_ads.c:837
-msgid ""
-"net ads group delete\n"
-" Delete an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:850
-msgid ""
-"Usage:\n"
-"net ads group\n"
-" List AD groups\n"
-msgstr ""
-
-#: ../utils/net_ads.c:862
-msgid ""
-"\n"
-"Group name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:884
-msgid ""
-"Usage:\n"
-"net ads status\n"
-" Display machine account details\n"
-msgstr ""
-
-#: ../utils/net_ads.c:896
-#, c-format
-msgid "ads_find_machine_acct: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:902
-#, c-format
-msgid "No machine account for '%s' found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:926
-msgid ""
-"Usage:\n"
-"net ads leave\n"
-" Leave an AD domain\n"
-msgstr ""
-
-#: ../utils/net_ads.c:933
-msgid "No realm set, are we joined ?\n"
-msgstr ""
-
-#: ../utils/net_ads.c:938 ../utils/net_ads.c:1260
-msgid "Could not initialise talloc context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:948
-msgid "Could not initialise unjoin context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:968
-#, c-format
-msgid "Failed to leave domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:975
-#, c-format
-msgid "Deleted account for '%s' in realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:982
-#, c-format
-msgid "Disabled account for '%s' in realm '%s'\n"
-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
-#, c-format
-msgid "Machine '%s' Left domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1035
-msgid ""
-"Usage:\n"
-"net ads testjoin\n"
-" Test if the existing join is ok\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1044
-#, c-format
-msgid "Join to domain is not valid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1049
-#, c-format
-msgid "Join is OK\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1060
-msgid "Host is not configured as a member server.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1065
-#, 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
-#, c-format
-msgid "realm must be set in in %s for ADS join to succeed.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1105
-#, c-format
-msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1212
-msgid ""
-"net ads join [options]\n"
-"Valid options:\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1214
-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
-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"
-" E.g. \"createcomputer=Computers/Servers/Unix\"\n"
-" NB: A backslash '\\' is used as escape at multiple levels and may\n"
-" need to be doubled or even quadrupled. It is not used as a separator.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1221
-msgid " osName=string Set the operatingSystem attribute during the join.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1222
-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"
-" Also, the operatingSystemService attribute is also set when along with\n"
-" the two other attributes.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1254
-msgid "Invalid configuration. Exiting....\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1283
-msgid "Please supply a valid OU path.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1290
-msgid "Please supply a operating system name.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1297
-msgid "Please supply a valid operating system version.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1308
-msgid "Please supply a valid domain name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1339
-#, c-format
-msgid ""
-"The workgroup in %s does not match the short\n"
-"domain name obtained from the server.\n"
-"Using the name [%s] from the server.\n"
-"You should set \"workgroup = %s\" in %s.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1347
-#, c-format
-msgid "Using short domain name -- %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1350
-#, c-format
-msgid "Joined '%s' to realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1353
-#, c-format
-msgid "Joined '%s' to domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1377 ../utils/net_ads.c:1433
-msgid "DNS update failed!\n"
-msgstr ""
-
-#. issue an overall failure message at the end.
-#: ../utils/net_ads.c:1391 ../utils/net_dom.c:198
-#, c-format
-msgid "Failed to join domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1414
-msgid ""
-"Usage:\n"
-"net ads dns register\n"
-" Register hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1421
-msgid "Could not initialise talloc context\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1439
-msgid "Successfully registered hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1447
-msgid "DNS update support not enabled at compile time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1466
-msgid ""
-"Usage:\n"
-"net ads dns gethostbyname <server> <name>\n"
-" Look up hostname from the AD\n"
-" server\tName server to use\n"
-" name\tName to look up\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1476
-#, c-format
-msgid "do_gethostbyname returned %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1488
-msgid "Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1489
-msgid ""
-"net ads dns register\n"
-" Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1496
-msgid "Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1497
-msgid ""
-"net ads dns gethostbyname\n"
-" Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1512
-msgid ""
-"\n"
-"net ads printer search <printer>\n"
-"\tsearch for a printer in the directory\n"
-"\n"
-"net ads printer info <printer> <server>\n"
-"\tlookup info in directory for printer on server\n"
-"\t(note: printer defaults to \"*\", server defaults to local)\n"
-"\n"
-"net ads printer publish <printername>\n"
-"\tpublish printer in directory\n"
-"\t(note: printer name is required)\n"
-"\n"
-"net ads printer remove <printername>\n"
-"\tremove printer from directory\n"
-"\t(note: printer name is required)\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1536
-msgid ""
-"Usage:\n"
-"net ads printer search\n"
-" List printers in the AD\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1549
-#, c-format
-msgid "ads_find_printer: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1556
-msgid "No results found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1576
-msgid ""
-"Usage:\n"
-"net ads printer info [printername [servername]]\n"
-" Display printer info from AD\n"
-" printername\tPrinter name or wildcard\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1603
-#, c-format
-msgid "Server '%s' not found: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1611 ../utils/net_ads.c:1794
-#, c-format
-msgid "Printer '%s' not found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1640
-msgid ""
-"Usage:\n"
-"net ads printer publish <printername> [servername]\n"
-" Publish printer in AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1675
-#, c-format
-msgid "Unable to open a connnection to %s to obtain data for %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1688
-#, c-format
-msgid "Could not find machine account for server %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1704 ../utils/net_ads.c:1713
-msgid "Internal error, out of memory!"
-msgstr ""
-
-#: ../utils/net_ads.c:1724
-#, c-format
-msgid "Unable to open a connnection to the spoolss pipe on %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1766
-msgid ""
-"Usage:\n"
-"net ads printer remove <printername> [servername]\n"
-" Remove a printer from the AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1787
-#, c-format
-msgid "ads_find_printer_on_server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1806
-#, c-format
-msgid "ads_del_dn: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1822
-msgid "Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1823
-msgid ""
-"net ads printer search\n"
-" Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1830
-msgid "Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1831
-msgid ""
-"net ads printer info\n"
-" Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1838
-msgid "Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1839
-msgid ""
-"net ads printer publish\n"
-" Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1846
-#, fuzzy
-msgid "Delete a printer"
-msgstr "Lösche Drucker"
-
-#: ../utils/net_ads.c:1847
-msgid ""
-"net ads printer remove\n"
-" Delete a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1869
-msgid ""
-"Usage:\n"
-"net ads password <username>\n"
-" Change password for user\n"
-" username\tName of user to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1877
-msgid "You must supply an administrator username/password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1883
-msgid "ERROR: You must say which username to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1915
-msgid "Didn't find the kerberos server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1923
-#, c-format
-msgid "Enter new password for %s:"
-msgstr ""
-
-#: ../utils/net_ads.c:1933 ../utils/net_ads.c:1982
-#, fuzzy, c-format
-msgid "Password change failed: %s\n"
-msgstr "Passwortverwaltung"
-
-#: ../utils/net_ads.c:1938
-#, fuzzy, c-format
-msgid "Password change for %s completed.\n"
-msgstr "Änderung des Passworts im Demo-Modus nicht möglich"
-
-#: ../utils/net_ads.c:1952
-msgid ""
-"Usage:\n"
-"net ads changetrustpw\n"
-" Change the machine account's trust password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1977
-#, c-format
-msgid "Changing password for principal: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1988
-#, c-format
-msgid "Password change for principal %s succeeded.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1991
-msgid "Attempting to update system keytab with new password.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1993
-msgid "Failed to update system keytab.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2009
-msgid ""
-"\n"
-"net ads search <expression> <attributes...>\n"
-"\n"
-"Perform a raw LDAP search on a ADS server and dump the results.\n"
-"The expression is a standard LDAP search expression, and the\n"
-"attributes are a list of LDAP fields to show in the results.\n"
-"\n"
-"Example: net ads search '(objectCategory=group)' sAMAccountName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2046 ../utils/net_ads.c:2107 ../utils/net_ads.c:2171 ../utils/net_ads_gpo.c:250
-#, c-format
-msgid "search failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2051 ../utils/net_ads.c:2176 ../utils/net_ads_gpo.c:256
-#, c-format
-msgid ""
-"Got %d replies\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2069
-msgid ""
-"\n"
-"net ads dn <dn> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The DN standard LDAP DN, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' sAMAccountName\n"
-"\n"
-"Note: the DN must be provided properly escaped. See RFC 4514 for details\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2129
-msgid ""
-"\n"
-"net ads sid <sid> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The SID is in string format, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads sid 'S-1-5-32' distinguishedName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2164
-msgid "could not convert sid\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2193
-msgid ""
-"Usage:\n"
-"net ads keytab flush\n"
-" Delete the whole keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2214
-msgid ""
-"Usage:\n"
-"net ads keytab add <principal> [principal ...]\n"
-" Add principals to local keytab\n"
-" principal\tKerberos principal to add to keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2222
-msgid "Processing principals to add...\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2239
-msgid ""
-"Usage:\n"
-"net ads keytab create\n"
-" Create new default keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2258
-msgid ""
-"Usage:\n"
-"net ads keytab list [keytab]\n"
-" List a local keytab\n"
-" keytab\tKeytab to list\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2280
-msgid "Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2281
-msgid ""
-"net ads keytab add\n"
-" Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2288
-#, fuzzy
-msgid "Create a fresh keytab"
-msgstr "Erstelle Freigabe"
-
-#: ../utils/net_ads.c:2289
-msgid ""
-"net ads keytab create\n"
-" Create a fresh keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2296
-msgid "Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2297
-msgid ""
-"net ads keytab flush\n"
-" Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2304
-msgid "List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2305
-msgid ""
-"net ads keytab list\n"
-" List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2312
-msgid ""
-"\n"
-"Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2324
-msgid ""
-"Usage:\n"
-"net ads kerberos renew\n"
-" Renew TGT from existing credential cache\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2332
-#, c-format
-msgid "failed to renew kerberos ticket: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2347
-msgid ""
-"Usage:\n"
-"net ads kerberos pac\n"
-" Dump the Kerberos PAC\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2372
-#, c-format
-msgid "failed to query kerberos PAC: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2381
-#, c-format
-msgid "The Pac: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2397
-msgid ""
-"Usage:\n"
-"net ads kerberos kinit\n"
-" Get Ticket Granting Ticket (TGT) for the user\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2421
-#, c-format
-msgid "failed to kinit password: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2435
-msgid "Retrieve Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2436
-msgid ""
-"net ads kerberos kinit\n"
-" Receive Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2443
-msgid "Renew Ticket Granting Ticket from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2444
-msgid ""
-"net ads kerberos renew\n"
-" Renew Ticket Granting Ticket (TGT) from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2452
-msgid "Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2453
-msgid ""
-"net ads kerberos pac\n"
-" Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2469
-msgid "Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2470
-msgid ""
-"net ads info\n"
-" Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2477
-msgid "Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2478
-msgid ""
-"net ads join\n"
-" Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2485
-msgid "Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2486
-msgid ""
-"net ads testjoin\n"
-" Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2493
-msgid "Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2494
-msgid ""
-"net ads leave\n"
-" Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2501
-msgid "Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2502
-msgid ""
-"net ads status\n"
-" Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2509
-msgid "List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2510
-msgid ""
-"net ads user\n"
-" List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2517
-msgid "List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2518
-msgid ""
-"net ads group\n"
-" List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2525
-msgid "Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2526
-msgid ""
-"net ads dns\n"
-" Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2533
-#, fuzzy
-msgid "Change user passwords"
-msgstr "Ändere Passwort"
-
-#: ../utils/net_ads.c:2534
-msgid ""
-"net ads password\n"
-" Change user passwords"
-msgstr ""
-
-#: ../utils/net_ads.c:2541
-#, fuzzy
-msgid "Change trust account password"
-msgstr "Ändere Passwort"
-
-#: ../utils/net_ads.c:2542
-msgid ""
-"net ads changetrustpw\n"
-" Change trust account password"
-msgstr ""
-
-#: ../utils/net_ads.c:2549
-msgid "List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2550
-msgid ""
-"net ads printer\n"
-" List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2557
-msgid "Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2558
-msgid ""
-"net ads search\n"
-" Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2565
-msgid "Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2566
-msgid ""
-"net ads dn\n"
-" Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2573
-msgid "Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2574
-msgid ""
-"net ads sid\n"
-" Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2581
-msgid "Display workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2582
-msgid ""
-"net ads workgroup\n"
-" Display the workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2589
-msgid "Perfom CLDAP query on DC"
-msgstr ""
-
-#: ../utils/net_ads.c:2590
-msgid ""
-"net ads lookup\n"
-" Find the ADS DC using CLDAP lookups"
-msgstr ""
-
-#: ../utils/net_ads.c:2597
-msgid "Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2598
-msgid ""
-"net ads keytab\n"
-" Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2605
-msgid "Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2606
-msgid ""
-"net ads gpo\n"
-" Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2613
-msgid "Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2614
-msgid ""
-"net ads kerberos\n"
-" Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2627
-msgid "ADS support not compiled in\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:40
-msgid ""
-"Usage:\n"
-"net ads gpo refresh <username|machinename>\n"
-" Lists all GPOs assigned to an account and downloads them\n"
-" username\tUser to refresh GPOs for\n"
-" machinename\tMachine to refresh GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:56
-#, c-format
-msgid "failed to connect AD server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:62
-#, c-format
-msgid "failed to find samaccount for %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:70
-#, c-format
-msgid ""
-"\n"
-"%s: '%s' has dn: '%s'\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "machine"
-msgstr "Entfernte Maschine"
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "user"
-msgstr "Benutzer"
-
-#: ../utils/net_ads_gpo.c:74
-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
-#, 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
-msgid "finished\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:87
-msgid "* fetching GPO List "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:96
-msgid "* Refreshing Group Policy Data "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:107
-msgid "* storing GPO list to registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:122
-msgid "* dumping GPO list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:151
-msgid "* re-reading GPO list from registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:167
-msgid "* dumping GPO list from registry\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:226
-msgid ""
-"Usage:\n"
-"net ads gpo listall\n"
-" List all GPOs on the DC\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:270
-#, fuzzy, c-format
-msgid "ads_parse_gpo failed: %s\n"
-msgstr "Passwortverwaltung"
-
-#: ../utils/net_ads_gpo.c:300
-msgid ""
-"Usage:\n"
-"net ads gpo list <username|machinename>\n"
-" Lists all GPOs for machine/user\n"
-" username\tUser to list GPOs for\n"
-" machinename\tMachine to list GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:327
-#, c-format
-msgid "%s: '%s' has dn: '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:451
-msgid ""
-"Usage:\n"
-"net ads gpo linkget <container>\n"
-" Lists gPLink of a containter\n"
-" container\tContainer to get link for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:470
-#, c-format
-msgid "get link for %s failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:492
-msgid ""
-"Usage:\n"
-"net ads gpo linkadd <linkdn> <gpodn> [options]\n"
-" Link a container to a GPO\n"
-" linkdn\tContainer to link to a GPO\n"
-" gpodn\tGPO to link container to\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:497
-msgid ""
-"note: DNs must be provided properly escaped.\n"
-"See RFC 4514 for details\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:518
-#, c-format
-msgid "link add failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:579
-msgid ""
-"Usage:\n"
-"net ads gpo getgpo <gpo>\n"
-" List speciefied GPO\n"
-" gpo\t\tGPO to list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:603
-#, c-format
-msgid "get gpo for [%s] failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:634
-msgid "List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:635
-msgid ""
-"net ads gpo getgpo\n"
-" List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:642
-msgid "Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:643
-msgid ""
-"net ads gpo linkadd\n"
-" Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:660
-msgid "Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:661
-msgid ""
-"net ads gpo linkget\n"
-" Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:668
-msgid "Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:669
-msgid ""
-"net ads gpo list\n"
-" Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:676
-msgid "Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:677
-msgid ""
-"net ads gpo listall\n"
-" Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:684
-msgid "Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:686
-msgid ""
-"net ads gpo refresh\n"
-" Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_afs.c:25
-msgid ""
-" net afs key filename\n"
-"\tImports a OpenAFS KeyFile into our secrets.tdb\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:27
-msgid ""
-" net afs impersonate <user> <cell>\n"
-"\tCreates a token for user@cell\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:38
-msgid "usage: 'net afs key <keyfile> cell'\n"
-msgstr ""
-
-#: ../utils/net_afs.c:43
-msgid "Could not open secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:48
-#, c-format
-msgid "Could not open %s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:53
-msgid "Could not read keyfile\n"
-msgstr ""
-
-#: ../utils/net_afs.c:58
-msgid "Could not write keyfile to secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:71
-#, c-format
-msgid "Usage: net afs impersonate <user> <cell>\n"
-msgstr ""
-
-#: ../utils/net_afs.c:78
-#, c-format
-msgid "Could not create token\n"
-msgstr ""
-
-#: ../utils/net_afs.c:83
-#, c-format
-msgid "Could not set token into kernel\n"
-msgstr ""
-
-#: ../utils/net_afs.c:87
-#, c-format
-msgid "Success: %s@%s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:98
-msgid "Import an OpenAFS keyfile"
-msgstr ""
-
-#: ../utils/net_afs.c:99
-msgid ""
-"net afs key <filename>\n"
-" Import kefile from <filename>."
-msgstr ""
-
-#: ../utils/net_afs.c:106
-msgid "Get a user token"
-msgstr ""
-
-#: ../utils/net_afs.c:107
-msgid ""
-"net afs impersonate <user> <cell>\n"
-" Create token for user@cell"
-msgstr ""
-
-#: ../utils/net_cache.c:74
-#, c-format
-msgid "Key: %s\t Timeout: %s\t Value: %s %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:75
-msgid "(expired)"
-msgstr ""
-
-#: ../utils/net_cache.c:84
-#, c-format
-msgid "Couldn't delete entry! key = %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:158
-msgid ""
-"\n"
-"Usage:\n"
-"net cache add <key string> <data string> <timeout>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:170
-msgid "Invalid timeout argument.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:175
-msgid "New cache entry stored successfully.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:179
-msgid "Entry couldn't be added. Perhaps there's already such a key.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:195
-msgid ""
-"\n"
-"Usage: net cache del <key string>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:200
-msgid "Entry deleted.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:204
-msgid "Couldn't delete specified entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:223
-msgid ""
-"\n"
-"Usage: net cache get <key>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:233
-msgid "Failed to find entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:250
-msgid "Usage: net cache search <pattern>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:272
-msgid ""
-"Usage:\n"
-"net cache list\n"
-" List all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:293 ../utils/net_cache.c:306
-msgid ""
-"Usage:\n"
-"net cache flush\n"
-" Delete all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:331
-msgid "Add new cache entry"
-msgstr ""
-
-#: ../utils/net_cache.c:332
-msgid ""
-"net cache add <key string> <data string> <timeout>\n"
-" Add new cache entry.\n"
-" key string\tKey string to add cache data under.\n"
-" data string\tData to store under given key.\n"
-" timeout\tTimeout for cache data."
-msgstr ""
-
-#: ../utils/net_cache.c:342
-msgid "Delete existing cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:343
-msgid ""
-"net cache del <key string>\n"
-" Delete existing cache entry by key.\n"
-" key string\tKey string to delete."
-msgstr ""
-
-#: ../utils/net_cache.c:351
-msgid "Get cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:352
-msgid ""
-"net cache get <key string>\n"
-" Get cache entry by key.\n"
-" key string\tKey string to look up cache entry for."
-msgstr ""
-
-#: ../utils/net_cache.c:361
-msgid "Search entry by pattern"
-msgstr ""
-
-#: ../utils/net_cache.c:362
-msgid ""
-"net cache search <pattern>\n"
-" Search entry by pattern.\n"
-" pattern\tPattern to search for in cache."
-msgstr ""
-
-#: ../utils/net_cache.c:370
-msgid "List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:371
-msgid ""
-"net cache list\n"
-" List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:378
-#, fuzzy
-msgid "Delete all cache entries"
-msgstr "Lösche Drucker"
-
-#: ../utils/net_cache.c:379
-msgid ""
-"net cache flush\n"
-" Delete all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:386
-msgid "Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_cache.c:387
-msgid ""
-"net cache stabilize\n"
-" Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_conf.c:42
-msgid "USAGE: net conf list\n"
-msgstr ""
-
-#: ../utils/net_conf.c:49
-msgid ""
-"USAGE: net conf import [--test|-T] <filename> [<servicename>]\n"
-"\t[--test|-T] testmode - do not act, just print what would be done\n"
-"\t<servicename> only import service <servicename>, ignore the rest\n"
-msgstr ""
-
-#: ../utils/net_conf.c:61
-msgid "USAGE: net conf listshares\n"
-msgstr ""
-
-#: ../utils/net_conf.c:68
-msgid "USAGE: net conf drop\n"
-msgstr ""
-
-#: ../utils/net_conf.c:75
-msgid "USAGE: net conf showshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:82
-msgid ""
-"USAGE: net conf addshare <sharename> <path> [writeable={y|N} [guest_ok={y|N} [<comment>]]\n"
-"\t<sharename> the new share name.\n"
-"\t<path> the path on the filesystem to export.\n"
-"\twriteable={y|N} set \"writeable to \"yes\" or \"no\" (default) on this share.\n"
-"\tguest_ok={y|N} set \"guest ok\" to \"yes\" or \"no\" (default) on this share.\n"
-"\t<comment> optional comment for the new share.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:97
-msgid "USAGE: net conf delshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:104
-msgid "USAGE: net conf setparm <section> <param> <value>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:111
-msgid "USAGE: net conf getparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:118
-msgid "USAGE: net conf delparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:125
-msgid "USAGE: net conf getincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:132
-msgid "USAGE: net conf setincludes <section> [<filename>]*\n"
-msgstr ""
-
-#: ../utils/net_conf.c:139
-msgid "USAGE: net conf delincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:251
-#, c-format
-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
-msgid "error: out of memory!\n"
-msgstr ""
-
-#: ../utils/net_conf.c:324
-#, c-format
-msgid "error loading file '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:330
-msgid ""
-"\n"
-"TEST MODE - would import the following configuration:\n"
-"\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "error committing transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:427 ../utils/net_conf.c:828
-#, c-format
-msgid "error cancelling transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:484
-#, c-format
-msgid "Error deleting configuration: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:521
-#, c-format
-msgid "error getting share parameters: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:630
-#, c-format
-msgid "ERROR: share name %s contains invalid characters (any of %s)\n"
-msgstr ""
-
-#: ../utils/net_conf.c:638
-msgid "ERROR: 'global' is not a valid share name.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:643
-#, c-format
-msgid "ERROR: share %s already exists.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:652
-#, c-format
-msgid "Error: path '%s' is not an absolute path.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:659
-#, c-format
-msgid ""
-"ERROR: cannot stat path '%s' to ensure this is a directory.\n"
-"Error was '%s'.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:668
-#, c-format
-msgid "ERROR: path '%s' is not a directory.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:679
-#, c-format
-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
-#, c-format
-msgid "Error setting parameter %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:748
-#, c-format
-msgid "Error deleting share %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:801
-#, c-format
-msgid "Error creating share '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:810
-#, c-format
-msgid "Error setting value '%s': %s\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "Error: given parameter '%s' is not set.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:883
-#, c-format
-msgid "Error getting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:939
-#, c-format
-msgid "Error deleting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:977
-#, c-format
-msgid "error getting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1023
-#, c-format
-msgid "error setting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1056
-#, c-format
-msgid "error deleting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1136 ../utils/net_help.c:36
-msgid "Usage:\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1160
-msgid "Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1162
-msgid ""
-"net conf list\n"
-" Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1171
-msgid "Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1173
-msgid ""
-"net conf import\n"
-" Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1181
-msgid "List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1182
-msgid ""
-"net conf listshares\n"
-" List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1189
-msgid "Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1190
-msgid ""
-"net conf drop\n"
-" Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1197
-msgid "Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1198
-msgid ""
-"net conf showshare\n"
-" Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1205
-#, fuzzy
-msgid "Create a new share."
-msgstr "Erstelle Freigabe"
-
-#: ../utils/net_conf.c:1206
-msgid ""
-"net conf addshare\n"
-" Create a new share."
-msgstr ""
-
-#: ../utils/net_conf.c:1213
-#, fuzzy
-msgid "Delete a share."
-msgstr "Lösche Freigabe"
-
-#: ../utils/net_conf.c:1214
-msgid ""
-"net conf delshare\n"
-" Delete a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1221
-#, fuzzy
-msgid "Store a parameter."
-msgstr "Parameter der Freigabe"
-
-#: ../utils/net_conf.c:1222
-msgid ""
-"net conf setparm\n"
-" Store a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1229
-msgid "Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1230
-msgid ""
-"net conf getparm\n"
-" Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1237
-#, fuzzy
-msgid "Delete a parameter."
-msgstr "Lösche Drucker"
-
-#: ../utils/net_conf.c:1238
-msgid ""
-"net conf delparm\n"
-" Delete a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1245
-msgid "Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1246
-msgid ""
-"net conf getincludes\n"
-" Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1253
-msgid "Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1254
-msgid ""
-"net conf setincludes\n"
-" Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1261
-msgid "Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1262
-msgid ""
-"net conf setincludes\n"
-" Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_dom.c:25
-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
-msgid ""
-"usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine\n"
-msgstr ""
-
-#: ../utils/net_dom.c:31
-msgid ""
-"usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer\n"
-msgstr ""
-
-#: ../utils/net_dom.c:91
-#, c-format
-msgid "Failed to unjoin domain: %s\n"
-msgstr ""
-
-#: ../utils/net_dom.c:97 ../utils/net_dom.c:204
-msgid "Shutting down due to a domain membership change"
-msgstr ""
-
-#: ../utils/net_dom.c:290
-#, c-format
-msgid "Failed to rename machine: "
-msgstr ""
-
-#: ../utils/net_dom.c:292
-#, c-format
-msgid "Computer is not joined to a Domain\n"
-msgstr ""
-
-#: ../utils/net_dom.c:301
-msgid "Shutting down due to a computer rename"
-msgstr ""
-
-#: ../utils/net_dom.c:338
-#, fuzzy
-msgid "Join a remote machine"
-msgstr "Entfernte Maschine"
-
-#: ../utils/net_dom.c:339
-msgid ""
-"net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Join a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:347
-#, fuzzy
-msgid "Unjoin a remote machine"
-msgstr "Entfernte Maschine"
-
-#: ../utils/net_dom.c:348
-msgid ""
-"net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:356
-msgid "Rename a computer that is joined to a domain"
-msgstr ""
-
-#: ../utils/net_dom.c:357
-msgid ""
-"net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer"
-msgstr ""
-
-#: ../utils/net_eventlog.c:46
-msgid "usage: net eventlog dump <file.evt>\n"
-msgstr ""
-
-#: ../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
-#, fuzzy, c-format
-msgid "evt pull failed: %s\n"
-msgstr "Passwortverwaltung"
-
-#: ../utils/net_eventlog.c:102
-msgid "usage: net eventlog import <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:116
-#, fuzzy, c-format
-msgid "evt header pull failed: %s\n"
-msgstr "Passwortverwaltung"
-
-#: ../utils/net_eventlog.c:122
-msgid "input file is wrapped, cannot proceed\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:138 ../utils/net_eventlog.c:203
-#, c-format
-msgid "can't open the eventlog TDB (%s)\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:158
-#, c-format
-msgid "can't write to the eventlog: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:164
-#, c-format
-msgid "wrote %d entries to tdb\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:197
-msgid "usage: net eventlog export <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:214
-#, c-format
-msgid "failed to save evt file: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:243
-msgid "Dump eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:244
-msgid ""
-"net eventlog dump\n"
-" Dump win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:251
-#, fuzzy
-msgid "Import eventlog"
-msgstr "Wichtiger Hinweis:"
-
-#: ../utils/net_eventlog.c:252
-msgid ""
-"net eventlog import\n"
-" Import win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:259
-msgid "Export eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:260
-msgid ""
-"net eventlog export\n"
-" Export win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_file.c:27
-msgid ""
-"net [<method>] file [misc. options] [targets]\n"
-"\tlists all open files on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:29
-msgid ""
-"net [<method>] file USER <username> [misc. options] [targets]\n"
-"\tlists all files opened by username on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:32
-msgid ""
-"net [<method>] file CLOSE <id> [misc. options] [targets]\n"
-"\tcloses specified file on target server\n"
-msgstr ""
-
-#: ../utils/net_file.c:34
-msgid ""
-"net [rap] file INFO <id> [misc. options] [targets]\n"
-"\tdisplays information about the specified open file\n"
-msgstr ""
-
-#: ../utils/net_group.c:27
-msgid ""
-"net [<method>] group [misc. options] [targets]\n"
-"\tList user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:29
-msgid ""
-"net rpc group LIST [global|local|builtin]* [misc. options]\n"
-"\tList specific user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:31
-msgid ""
-"net [<method>] group DELETE <name> [misc. options] [targets]\n"
-"\tDelete specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:34
-msgid ""
-"\n"
-"net [<method>] group ADD <name> [-C comment] [-c container] [misc. options] [targets]\n"
-"\tCreate specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:37
-msgid ""
-"\n"
-"net rpc group MEMBERS <name>\n"
-"\tList Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:38
-msgid ""
-"\n"
-"net rpc group ADDMEM <group> <member>\n"
-"\tAdd Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:40
-msgid ""
-"\n"
-"net rpc group DELMEM <group> <member>\n"
-"\tDelete Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:44
-msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:46
-msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:48
-msgid "\t-L or --localgroup\t\tWhen adding groups, create a local group (alias)\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:38
-#, c-format
-msgid "NT Group %s doesn't exist in mapping DB\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:46
-#, c-format
-msgid "converting sid %s from a string failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:65
-#, c-format
-msgid "\tSID : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:66
-#, c-format
-msgid "\tUnix gid : %u\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:67
-#, c-format
-msgid "\tUnix group: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:68
-#, c-format
-msgid "\tGroup type: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:70
-#, c-format
-msgid "\tComment : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:84
-msgid ""
-"net groupmap list [verbose] [ntgroup=NT group] [sid=SID]\n"
-" verbose\tPrint verbose list\n"
-" ntgroup\tNT group to list\n"
-" 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
-#, fuzzy, c-format
-msgid ""
-"Usage:\n"
-"%s\n"
-msgstr "Benutzername"
-
-#: ../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
-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
-#, fuzzy, c-format
-msgid "Bad option: %s\n"
-msgstr "Basisoptionen"
-
-#: ../utils/net_groupmap.c:139
-msgid "Failure to local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:181
-msgid "net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:195
-#, fuzzy, c-format
-msgid ""
-"Usage\n"
-"%s\n"
-msgstr "Benutzername"
-
-#: ../utils/net_groupmap.c:205
-#, c-format
-msgid "RID must be greater than %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:235 ../utils/net_groupmap.c:380
-msgid "must supply a comment string\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:259
-#, c-format
-msgid "unknown group type %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:276
-#, c-format
-msgid "Can't lookup UNIX group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:282
-#, c-format
-msgid "Unix group %s already mapped to SID %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:289
-msgid "No rid or sid specified, choosing a RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:292
-msgid "Could not get new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:297
-#, c-format
-msgid "Got RID %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:328
-#, c-format
-msgid "adding entry for group %s failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:332
-#, c-format
-msgid "Successfully added group %s to the mapping db as a %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:349
-msgid "net groupmap modify {ntgroup=<string>|sid=<SID>} [comment=<string>] [unixgroup=<string>] [type=<domain|local>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:388
-msgid "must supply a group name\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:434
-msgid "Failed to find local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:443
-msgid "Can't map to an unknown group type.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:449
-msgid "You can only change between domain and local groups.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:466
-#, c-format
-msgid "Unable to lookup UNIX group %s. Make sure the group exists.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:476
-msgid "Could not update group database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:480
-#, c-format
-msgid "Updated mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:491
-msgid "net groupmap delete {ntgroup=<string>|sid=<SID>}"
-msgstr ""
-
-#: ../utils/net_groupmap.c:532
-#, c-format
-msgid "Unable to resolve group %s to a SID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:539
-#, c-format
-msgid "Failed to remove group %s from the mapping db!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:544
-#, c-format
-msgid "Sucessfully removed %s from the mapping db\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:557
-msgid "Usage: net groupmap set \"NT Group\" [\"unix group\"] [-C \"comment\"] [-L] [-D]\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:563
-msgid "Can only specify -L or -D, not both\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:573
-#, c-format
-msgid "Could not find unix group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:594
-#, c-format
-msgid "Could not find group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:605
-msgid "Could not allocate new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:622
-#, c-format
-msgid "Could not add mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:633
-#, c-format
-msgid "Can't change type of the BUILTIN group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:660
-#, c-format
-msgid "Could not update group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:674
-msgid ""
-"Usage:\n"
-"net groupmap cleanup\n"
-" Delete all group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:682
-msgid "Could not list group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:689
-#, c-format
-msgid "Group %s is not mapped\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:692
-#, c-format
-msgid "Deleting mapping for NT Group %s, sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:712
-msgid "Usage: net groupmap addmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:717
-#, c-format
-msgid "Could not add sid %s to alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:733
-msgid "Usage: net groupmap delmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:738
-#, c-format
-msgid "Could not delete sid %s from alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:755
-msgid "Usage: net groupmap listmem alias-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:764
-#, c-format
-msgid "Could not list members for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:791
-#, c-format
-msgid "Could not list memberships for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:814
-msgid "Usage: net groupmap memberof sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:820 ../utils/net_idmap.c:345
-msgid "talloc_init failed\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:827
-msgid "Could not get domain sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:850
-msgid "Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:851
-msgid ""
-"net groupmap add\n"
-" Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:858
-msgid "Update a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:859
-msgid ""
-"net groupmap modify\n"
-" Modify an existing group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:866
-msgid "Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:867
-msgid ""
-"net groupmap delete\n"
-" Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:874
-msgid "Set group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:875
-msgid ""
-"net groupmap set\n"
-" Set a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:882
-msgid "Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:883
-msgid ""
-"net groupmap cleanup\n"
-" Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:890
-msgid "Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:891
-msgid ""
-"net groupmap addmem\n"
-" Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:898
-msgid "Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:899
-msgid ""
-"net groupmap delmem\n"
-" Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:906
-msgid "List foreign group members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:907
-msgid ""
-"net groupmap listmem\n"
-" List foreign alias members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:914
-msgid "List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:915
-msgid ""
-"net groupmap memberships\n"
-" List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:922
-msgid "List current group map"
-msgstr ""
-
-#: ../utils/net_groupmap.c:923
-msgid ""
-"net groupmap list\n"
-" List current group map"
-msgstr ""
-
-#: ../utils/net_help.c:39
-#, c-format
-msgid "net %s usage:\n"
-msgstr ""
-
-#: ../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
-msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:27 ../utils/net_join.c:30
-msgid "\trpc\t\t\t\tDCE-RPC\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:28
-msgid "\trap\t\t\t\tRAP (older systems)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:35
-msgid "Valid targets: choose one (none defaults to localhost)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:36
-msgid "\t-S or --server=<server>\t\tserver name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:37
-msgid "\t-I or --ipaddress=<ipaddr>\taddress of target server\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:38
-msgid "\t-w or --workgroup=<wg>\t\ttarget workgroup or domain\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:41
-#, fuzzy
-msgid "Valid miscellaneous options are:\n"
-msgstr "Sonstige Optionen"
-
-#. misc options
-#: ../utils/net_help_common.c:42
-msgid "\t-p or --port=<port>\t\tconnection port on target\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:43
-msgid "\t-W or --myworkgroup=<wg>\tclient workgroup\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:44
-msgid "\t-d or --debuglevel=<level>\tdebug level (0-10)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:45
-msgid "\t-n or --myname=<name>\t\tclient name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:46
-msgid "\t-U or --user=<name>\t\tuser name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:47
-msgid "\t-s or --configfile=<path>\tpathname of smb.conf file\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:48
-msgid "\t-l or --long\t\t\tDisplay full information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:49
-msgid "\t-V or --version\t\t\tPrint samba version information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:50
-msgid "\t-P or --machine-pass\t\tAuthenticate as machine account\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:52
-msgid "\t-e or --encrypt\t\t\tEncrypt SMB transport (UNIX extended servers only)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:54
-msgid "\t-k or --kerberos\t\tUse kerberos (active directory) authentication\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:25
-msgid "Out of memory!\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:39
-#, c-format
-msgid "USER HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:44
-#, c-format
-msgid "GROUP HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:63
-msgid ""
-"Usage:\n"
-"net idmap dump <inputfile>\n"
-" Dump current ID mapping.\n"
-" inputfile\tTDB file to read mappings from.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:73
-#, c-format
-msgid "Could not open idmap: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:94
-msgid ""
-"Usage:\n"
-"net idmap restore [inputfile]\n"
-" Restore ID mappings from file\n"
-" inputfile\tFile to load ID mappings from. If not given, load data from stdin.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:104
-msgid "To use net idmap Winbindd must be running.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:142
-#, c-format
-msgid "Could not set USER HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:151
-#, c-format
-msgid "Could not set GROUP HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:156
-#, c-format
-msgid "ignoring invalid line [%s]\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:163
-#, c-format
-msgid "ignoring invalid sid [%s]: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:175
-#, c-format
-msgid "Could not set mapping of %s %lu to sid %s: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:196 ../utils/net_idmap.c:202
-msgid "Not Implemented yet\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:240
-msgid ""
-"Usage:\n"
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set the secret for the specified domain (or alloc module)\n"
-" DOMAIN\tDomain to set secret for.\n"
-" alloc\tSet secret for the alloc module\n"
-" secret\tNew secret to set.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:271
-msgid "The only currently supported backend is LDAP\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:281
-#, c-format
-msgid "Missing ldap_user_dn option for domain %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:292
-msgid "Missing ldap_user_dn option for alloc backend\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:302
-msgid "Failed to store secret\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:307
-msgid "Secret stored\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:313
-msgid ""
-"net idmap dump <inputfile>\n"
-" Dump current id mapping\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:316
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin\n"
-msgstr ""
-
-#. Deliberately *not* document net idmap delete
-#: ../utils/net_idmap.c:321
-msgid ""
-"net idmap secret <DOMAIN>|alloc <secret>\n"
-" Set the secret for the specified DOMAIN (or the alloc module)\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:339
-msgid "usage: net idmap aclmapset <tdb> <src-sid> <dst-sid>\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:351
-#, fuzzy, c-format
-msgid "db_open failed: %s\n"
-msgstr "Passwortverwaltung"
-
-#: ../utils/net_idmap.c:356 ../utils/net_idmap.c:361
-#, c-format
-msgid "%s is not a valid sid\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:367
-msgid "talloc_strdup failed\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:373
-msgid "could not fetch db record\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:381
-#, c-format
-msgid "could not store record: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:402
-msgid "Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:403
-msgid ""
-"net idmap dump\n"
-" Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:410
-msgid "Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:411
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:418 ../utils/net_idmap.c:426
-msgid "Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:419
-msgid ""
-"net idmap setmap\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:427
-msgid ""
-"net idmap delete\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:434
-msgid "Set secret for specified domain"
-msgstr ""
-
-#: ../utils/net_idmap.c:435
-msgid ""
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set secret for specified domain or alloc module"
-msgstr ""
-
-#: ../utils/net_idmap.c:442
-msgid "Set acl map"
-msgstr ""
-
-#: ../utils/net_idmap.c:443
-msgid ""
-"net idmap aclmapset\n"
-" Set acl map"
-msgstr ""
-
-#: ../utils/net_join.c:26
-msgid ""
-"\n"
-"net [<method>] join [misc. options]\n"
-"\tjoins this server to a domain\n"
-msgstr ""
-
-#: ../utils/net_join.c:47
-msgid "ADS join did not work, falling back to RPC...\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:25
-msgid ""
-" net lookup [host] HOSTNAME[#<type>]\n"
-"\tgives IP for a hostname\n"
-"\n"
-" net lookup ldap [domain]\n"
-"\tgives IP of domain's ldap server\n"
-"\n"
-" net lookup kdc [realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup pdc [domain|realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup dc [domain]\n"
-"\tgives IP of domains Domain Controllers\n"
-"\n"
-" net lookup master [domain|wg]\n"
-"\tgive IP of master browser\n"
-"\n"
-" net lookup name [name]\n"
-"\tLookup name's sid and type\n"
-"\n"
-" net lookup sid [sid]\n"
-"\tGive sid's name and type\n"
-"\n"
-" net lookup dsgetdcname [name] [flags] [sitename]\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:112
-msgid "net_lookup_ldap: talloc_init() failed!\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:325
-msgid "usage: net lookup name <name>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:331 ../utils/net_lookup.c:358
-#, c-format
-msgid "Could not lookup name %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:347
-msgid "usage: net lookup sid <sid>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:352
-#, c-format
-msgid "Could not convert %s to SID\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:378
-msgid "usage: net lookup dsgetdcname <name> <flags> <sitename>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:404
-#, c-format
-msgid "failed with: %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:437
-msgid ""
-"\n"
-"Usage: \n"
-msgstr ""
-
-#: ../utils/net_lua.c:60
-msgid "connect: Expected IP-Address"
-msgstr ""
-
-#: ../utils/net_lua.c:65
-msgid "connect: Expected port"
-msgstr ""
-
-#: ../utils/net_lua.c:84
-#, fuzzy, c-format
-msgid "connect failed: %s"
-msgstr "Passwortverwaltung"
-
-#: ../utils/net_lua.c:132
-#, c-format
-msgid "socket domain %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:144
-#, c-format
-msgid "socket type %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:155
-#, fuzzy, c-format
-msgid "socket() failed: %s"
-msgstr "Passwortverwaltung"
-
-#: ../utils/net_lua.c:278
-msgid "evt_reference_thread failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:287
-msgid "event_add_timed failed"
-msgstr ""
-
-#: ../utils/net_lua.c:300
-msgid "event_once called from non-base thread"
-msgstr ""
-
-#: ../utils/net_lua.c:323
-msgid "event_context_init failed"
-msgstr ""
-
-#: ../utils/net_lua.c:353
-msgid "lua_newstate failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:371
-msgid "luaL_dofile returned an error\n"
-msgstr ""
-
-#: ../utils/net_lua.c:376
-msgid "luaL_dostring returned an error\n"
-msgstr ""
diff --git a/source3/po/en.msg b/source3/po/en.msg
index 0704a28c58..01e6b6943b 100644
--- a/source3/po/en.msg
+++ b/source3/po/en.msg
@@ -17,8 +17,7 @@
msgid ""
msgstr ""
"Project-Id-Version: i18n_swat \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-30 12:18+0200\n"
+"POT-Creation-Date: 2003-10-06 05:30+0900\n"
"PO-Revision-Date: 2000-02-08 12:48+09:00\n"
"Last-Translator: TAKAHASHI Motonobu <monyo@samba.org>\n"
"Language-Team: (Samba Team) <samba-technical@samba.org>\n"
@@ -26,3988 +25,568 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: \n"
-#: ../web/swat.c:153
+#: ../web/swat.c:117
#, c-format
msgid "ERROR: Can't open %s"
msgstr ""
-#: ../web/swat.c:241
+#: ../web/swat.c:200
msgid "Help"
msgstr ""
-#: ../web/swat.c:247 ../web/swat.c:272 ../web/swat.c:293 ../web/swat.c:302 ../web/swat.c:311 ../web/swat.c:317 ../web/swat.c:329 ../web/swat.c:343
+#: ../web/swat.c:206 ../web/swat.c:220 ../web/swat.c:235 ../web/swat.c:243 ../web/swat.c:252 ../web/swat.c:261 ../web/swat.c:267 ../web/swat.c:273 ../web/swat.c:286
msgid "Set Default"
msgstr ""
-#: ../web/swat.c:465
+#: ../web/swat.c:408
#, c-format
msgid "failed to open %s for writing"
msgstr ""
-#: ../web/swat.c:488
+#: ../web/swat.c:431
#, c-format
msgid "Can't reload %s"
msgstr ""
-#: ../web/swat.c:561
+#: ../web/swat.c:501
#, c-format
msgid "Logged in as <b>%s</b>"
msgstr ""
-#: ../web/swat.c:565
+#: ../web/swat.c:505
msgid "Home"
msgstr ""
-#: ../web/swat.c:567
+#: ../web/swat.c:507
msgid "Globals"
msgstr ""
-#: ../web/swat.c:568
+#: ../web/swat.c:508
msgid "Shares"
msgstr ""
-#: ../web/swat.c:569
+#: ../web/swat.c:509
msgid "Printers"
msgstr ""
-#: ../web/swat.c:570
+#: ../web/swat.c:510
msgid "Wizard"
msgstr ""
-#: ../web/swat.c:574
+#: ../web/swat.c:513
msgid "Status"
msgstr ""
-#: ../web/swat.c:575
+#: ../web/swat.c:514
msgid "View Config"
msgstr ""
-#: ../web/swat.c:577
+#: ../web/swat.c:516
msgid "Password Management"
msgstr ""
-#: ../web/swat.c:587
+#: ../web/swat.c:526
msgid "Current View Is"
msgstr ""
-#: ../web/swat.c:588 ../web/swat.c:591
+#: ../web/swat.c:527 ../web/swat.c:530
msgid "Basic"
msgstr ""
-#: ../web/swat.c:589 ../web/swat.c:592
+#: ../web/swat.c:528 ../web/swat.c:531
msgid "Advanced"
msgstr ""
-#: ../web/swat.c:590
+#: ../web/swat.c:529
msgid "Change View To"
msgstr ""
-#: ../web/swat.c:619
+#: ../web/swat.c:554
msgid "Current Config"
msgstr ""
-#: ../web/swat.c:623
+#: ../web/swat.c:558
msgid "Normal View"
msgstr ""
-#: ../web/swat.c:625
+#: ../web/swat.c:560
msgid "Full View"
msgstr ""
#. Here we first set and commit all the parameters that were selected
#. in the previous screen.
-#: ../web/swat.c:644
+#: ../web/swat.c:579
msgid "Wizard Parameter Edit Page"
msgstr ""
-#: ../web/swat.c:673
+#: ../web/swat.c:608
msgid "Note: smb.conf file has been read and rewritten"
msgstr ""
#. Here we go ...
-#: ../web/swat.c:779
+#: ../web/swat.c:716
msgid "Samba Configuration Wizard"
msgstr ""
-#: ../web/swat.c:783
+#: ../web/swat.c:720
msgid "The \"Rewrite smb.conf file\" button will clear the smb.conf file of all default values and of comments."
msgstr ""
-#: ../web/swat.c:784
+#: ../web/swat.c:721
msgid "The same will happen if you press the commit button."
msgstr ""
-#: ../web/swat.c:787
+#: ../web/swat.c:724
msgid "Rewrite smb.conf file"
msgstr ""
-#: ../web/swat.c:788
+#: ../web/swat.c:725
msgid "Commit"
msgstr ""
-#: ../web/swat.c:789
+#: ../web/swat.c:726
msgid "Edit Parameter Values"
msgstr ""
-#: ../web/swat.c:795
+#: ../web/swat.c:732
msgid "Server Type"
msgstr ""
-#: ../web/swat.c:796
+#: ../web/swat.c:733
msgid "Stand Alone"
msgstr ""
-#: ../web/swat.c:797
+#: ../web/swat.c:734
msgid "Domain Member"
msgstr ""
-#: ../web/swat.c:798
+#: ../web/swat.c:735
msgid "Domain Controller"
msgstr ""
-#: ../web/swat.c:801
+#: ../web/swat.c:738
msgid "Unusual Type in smb.conf - Please Select New Mode"
msgstr ""
-#: ../web/swat.c:803
+#: ../web/swat.c:740
msgid "Configure WINS As"
msgstr ""
-#: ../web/swat.c:804
+#: ../web/swat.c:741
msgid "Not Used"
msgstr ""
-#: ../web/swat.c:805
+#: ../web/swat.c:742
msgid "Server for client use"
msgstr ""
-#: ../web/swat.c:806
+#: ../web/swat.c:743
msgid "Client of another WINS server"
msgstr ""
-#: ../web/swat.c:808
+#: ../web/swat.c:745
msgid "Remote WINS Server"
msgstr ""
-#: ../web/swat.c:819
+#: ../web/swat.c:756
msgid "Error: WINS Server Mode and WINS Support both set in smb.conf"
msgstr ""
-#: ../web/swat.c:820
+#: ../web/swat.c:757
msgid "Please Select desired WINS mode above."
msgstr ""
-#: ../web/swat.c:822
+#: ../web/swat.c:759
msgid "Expose Home Directories"
msgstr ""
-#: ../web/swat.c:837
+#: ../web/swat.c:774
msgid "The above configuration options will set multiple parameters and will generally assist with rapid Samba deployment."
msgstr ""
-#: ../web/swat.c:850
+#: ../web/swat.c:787
msgid "Global Parameters"
msgstr ""
-#: ../web/swat.c:878 ../web/swat.c:986 ../web/swat.c:1344
+#: ../web/swat.c:815 ../web/swat.c:916 ../web/swat.c:1265
msgid "Commit Changes"
msgstr ""
-#: ../web/swat.c:882 ../web/swat.c:989 ../web/swat.c:1346
+#: ../web/swat.c:819 ../web/swat.c:919 ../web/swat.c:1267
msgid "Reset Values"
msgstr ""
-#: ../web/swat.c:908
+#: ../web/swat.c:844
msgid "Share Parameters"
msgstr ""
-#: ../web/swat.c:955
+#: ../web/swat.c:887
msgid "Choose Share"
msgstr ""
-#: ../web/swat.c:971
+#: ../web/swat.c:901
msgid "Delete Share"
msgstr ""
-#: ../web/swat.c:978
+#: ../web/swat.c:908
msgid "Create Share"
msgstr ""
-#: ../web/swat.c:1014
+#: ../web/swat.c:944
msgid "password change in demo mode rejected"
msgstr ""
-#: ../web/swat.c:1028
+#: ../web/swat.c:957
msgid "Can't setup password database vectors."
msgstr ""
-#: ../web/swat.c:1056
+#: ../web/swat.c:983
msgid " Must specify \"User Name\" "
msgstr ""
-#: ../web/swat.c:1072
+#: ../web/swat.c:999
msgid " Must specify \"Old Password\" "
msgstr ""
-#: ../web/swat.c:1078
+#: ../web/swat.c:1005
msgid " Must specify \"Remote Machine\" "
msgstr ""
-#: ../web/swat.c:1085
+#: ../web/swat.c:1012
msgid " Must specify \"New, and Re-typed Passwords\" "
msgstr ""
-#: ../web/swat.c:1091
+#: ../web/swat.c:1018
msgid " Re-typed password didn't match new password "
msgstr ""
-#: ../web/swat.c:1124
+#: ../web/swat.c:1048
#, c-format
msgid " The passwd for '%s' has been changed."
msgstr ""
-#: ../web/swat.c:1127
+#: ../web/swat.c:1051
#, c-format
msgid " The passwd for '%s' has NOT been changed."
msgstr ""
-#: ../web/swat.c:1152
+#: ../web/swat.c:1076
msgid "Server Password Management"
msgstr ""
#.
#. * Create all the dialog boxes for data collection
#.
-#: ../web/swat.c:1161 ../web/swat.c:1208
+#: ../web/swat.c:1085 ../web/swat.c:1132
msgid "User Name"
msgstr ""
-#: ../web/swat.c:1164 ../web/swat.c:1210
+#: ../web/swat.c:1088 ../web/swat.c:1134
msgid "Old Password"
msgstr ""
-#: ../web/swat.c:1167 ../web/swat.c:1212
+#: ../web/swat.c:1091 ../web/swat.c:1136
msgid "New Password"
msgstr ""
-#: ../web/swat.c:1169 ../web/swat.c:1214
+#: ../web/swat.c:1093 ../web/swat.c:1138
msgid "Re-type New Password"
msgstr ""
-#: ../web/swat.c:1177 ../web/swat.c:1225
+#: ../web/swat.c:1101 ../web/swat.c:1149
msgid "Change Password"
msgstr ""
-#: ../web/swat.c:1180
+#: ../web/swat.c:1104
msgid "Add New User"
msgstr ""
-#: ../web/swat.c:1182
+#: ../web/swat.c:1106
msgid "Delete User"
msgstr ""
-#: ../web/swat.c:1184
+#: ../web/swat.c:1108
msgid "Disable User"
msgstr ""
-#: ../web/swat.c:1186
+#: ../web/swat.c:1110
msgid "Enable User"
msgstr ""
-#: ../web/swat.c:1199
+#: ../web/swat.c:1123
msgid "Client/Server Password Management"
msgstr ""
-#: ../web/swat.c:1216
+#: ../web/swat.c:1140
msgid "Remote Machine"
msgstr ""
-#: ../web/swat.c:1255
+#: ../web/swat.c:1179
msgid "Printer Parameters"
msgstr ""
-#: ../web/swat.c:1257
+#: ../web/swat.c:1181
msgid "Important Note:"
msgstr ""
-#: ../web/swat.c:1258
+#: ../web/swat.c:1182
msgid "Printer names marked with [*] in the Choose Printer drop-down box "
msgstr ""
-#: ../web/swat.c:1259
+#: ../web/swat.c:1183
msgid "are autoloaded printers from "
msgstr ""
-#: ../web/swat.c:1260
+#: ../web/swat.c:1184
msgid "Printcap Name"
msgstr ""
-#: ../web/swat.c:1261
+#: ../web/swat.c:1185
msgid "Attempting to delete these printers from SWAT will have no effect."
msgstr ""
-#: ../web/swat.c:1310
+#: ../web/swat.c:1231
msgid "Choose Printer"
msgstr ""
-#: ../web/swat.c:1329
+#: ../web/swat.c:1250
msgid "Delete Printer"
msgstr ""
-#: ../web/swat.c:1336
+#: ../web/swat.c:1257
msgid "Create Printer"
msgstr ""
-#: ../web/statuspage.c:151
-msgid "RDWR "
+#: ../web/statuspage.c:123
+msgid "RDONLY "
msgstr ""
-#: ../web/statuspage.c:153
+#: ../web/statuspage.c:124
msgid "WRONLY "
msgstr ""
-#: ../web/statuspage.c:155
-msgid "RDONLY "
+#: ../web/statuspage.c:125
+msgid "RDWR "
msgstr ""
-#: ../web/statuspage.c:329
+#: ../web/statuspage.c:309
msgid "Server Status"
msgstr ""
-#: ../web/statuspage.c:334
+#: ../web/statuspage.c:314
msgid "Auto Refresh"
msgstr ""
-#: ../web/statuspage.c:335 ../web/statuspage.c:340
+#: ../web/statuspage.c:315 ../web/statuspage.c:320
msgid "Refresh Interval: "
msgstr ""
-#: ../web/statuspage.c:339
+#: ../web/statuspage.c:319
msgid "Stop Refreshing"
msgstr ""
-#: ../web/statuspage.c:348
+#: ../web/statuspage.c:334
msgid "version:"
msgstr ""
-#: ../web/statuspage.c:351
+#: ../web/statuspage.c:337
msgid "smbd:"
msgstr ""
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "running"
msgstr ""
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "not running"
msgstr ""
-#: ../web/statuspage.c:355
+#: ../web/statuspage.c:341
msgid "Stop smbd"
msgstr ""
-#: ../web/statuspage.c:357
+#: ../web/statuspage.c:343
msgid "Start smbd"
msgstr ""
-#: ../web/statuspage.c:359
+#: ../web/statuspage.c:345
msgid "Restart smbd"
msgstr ""
-#: ../web/statuspage.c:364
+#: ../web/statuspage.c:350
msgid "nmbd:"
msgstr ""
-#: ../web/statuspage.c:368
+#: ../web/statuspage.c:354
msgid "Stop nmbd"
msgstr ""
-#: ../web/statuspage.c:370
+#: ../web/statuspage.c:356
msgid "Start nmbd"
msgstr ""
-#: ../web/statuspage.c:372
+#: ../web/statuspage.c:358
msgid "Restart nmbd"
msgstr ""
-#: ../web/statuspage.c:378
+#: ../web/statuspage.c:364
msgid "winbindd:"
msgstr ""
-#: ../web/statuspage.c:382
+#: ../web/statuspage.c:368
msgid "Stop winbindd"
msgstr ""
-#: ../web/statuspage.c:384
+#: ../web/statuspage.c:370
msgid "Start winbindd"
msgstr ""
-#: ../web/statuspage.c:386
+#: ../web/statuspage.c:372
msgid "Restart winbindd"
msgstr ""
#. stop, restart all
-#: ../web/statuspage.c:395
+#: ../web/statuspage.c:381
msgid "Stop All"
msgstr ""
-#: ../web/statuspage.c:396
+#: ../web/statuspage.c:382
msgid "Restart All"
msgstr ""
#. start all
-#: ../web/statuspage.c:400
+#: ../web/statuspage.c:386
msgid "Start All"
msgstr ""
-#: ../web/statuspage.c:407
+#: ../web/statuspage.c:393
msgid "Active Connections"
msgstr ""
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "PID"
msgstr ""
-#: ../web/statuspage.c:409 ../web/statuspage.c:422
+#: ../web/statuspage.c:395 ../web/statuspage.c:408
msgid "Client"
msgstr ""
-#: ../web/statuspage.c:409
+#: ../web/statuspage.c:395
msgid "IP address"
msgstr ""
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "Date"
msgstr ""
-#: ../web/statuspage.c:411
+#: ../web/statuspage.c:397
msgid "Kill"
msgstr ""
-#: ../web/statuspage.c:419
+#: ../web/statuspage.c:405
msgid "Active Shares"
msgstr ""
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Share"
msgstr ""
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "User"
msgstr ""
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Group"
msgstr ""
-#: ../web/statuspage.c:428
+#: ../web/statuspage.c:414
msgid "Open Files"
msgstr ""
-#: ../web/statuspage.c:431
-msgid "UID"
-msgstr ""
-
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Sharing"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "R/W"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Oplock"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "File"
msgstr ""
-#: ../web/statuspage.c:438
+#: ../web/statuspage.c:425
msgid "Show Client in col 1"
msgstr ""
-#: ../web/statuspage.c:439
+#: ../web/statuspage.c:426
msgid "Show PID in col 1"
msgstr ""
-#: ../param/loadparm.c:907
+#: ../param/loadparm.c:755
msgid "Base Options"
msgstr ""
-#: ../param/loadparm.c:1047
+#: ../param/loadparm.c:775
msgid "Security Options"
msgstr ""
-#: ../param/loadparm.c:1800
+#: ../param/loadparm.c:859
msgid "Logging Options"
msgstr ""
-#: ../param/loadparm.c:1929
+#: ../param/loadparm.c:874
msgid "Protocol Options"
msgstr ""
-#: ../param/loadparm.c:2301
+#: ../param/loadparm.c:911
msgid "Tuning Options"
msgstr ""
-#: ../param/loadparm.c:2538
+#: ../param/loadparm.c:940
msgid "Printing Options"
msgstr ""
-#: ../param/loadparm.c:2858
+#: ../param/loadparm.c:970
msgid "Filename Handling"
msgstr ""
-#: ../param/loadparm.c:3088
+#: ../param/loadparm.c:996
msgid "Domain Options"
msgstr ""
-#: ../param/loadparm.c:3100
+#: ../param/loadparm.c:1000
msgid "Logon Options"
msgstr ""
-#: ../param/loadparm.c:3273
+#: ../param/loadparm.c:1019
msgid "Browse Options"
msgstr ""
-#: ../param/loadparm.c:3384
+#: ../param/loadparm.c:1033
msgid "WINS Options"
msgstr ""
-#: ../param/loadparm.c:3432
+#: ../param/loadparm.c:1043
msgid "Locking Options"
msgstr ""
-#: ../param/loadparm.c:3552
+#: ../param/loadparm.c:1061
msgid "Ldap Options"
msgstr ""
-#: ../param/loadparm.c:3708
-msgid "EventLog Options"
-msgstr ""
-
-#: ../param/loadparm.c:3720
+#: ../param/loadparm.c:1078
msgid "Miscellaneous Options"
msgstr ""
-#: ../param/loadparm.c:4301
+#: ../param/loadparm.c:1138
msgid "VFS module options"
msgstr ""
-#: ../param/loadparm.c:4323
-msgid "MSDFS options"
-msgstr ""
-
-#: ../param/loadparm.c:4353
+#: ../param/loadparm.c:1148
msgid "Winbind options"
msgstr ""
-
-#: ../utils/net.c:103
-msgid "Enter machine password: "
-msgstr ""
-
-#: ../utils/net.c:107
-msgid "Unable to write the machine account password in the secrets database"
-msgstr ""
-
-#: ../utils/net.c:111
-msgid "Modified trust account password in secrets database\n"
-msgstr ""
-
-#: ../utils/net.c:115
-msgid ""
-"Machine account password change requires the -f flag.\n"
-"Do NOT use this function unless you know what it does!\n"
-"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
-#, 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
-#, c-format
-msgid "SID for domain %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:175
-msgid "usage: net setlocalsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:195
-msgid "usage: net setdomainsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:213
-msgid "usage: net getdomainsid\n"
-msgstr ""
-
-#: ../utils/net.c:238
-msgid "Could not fetch local SID\n"
-msgstr ""
-
-#: ../utils/net.c:242
-#, c-format
-msgid "SID for local machine %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:246
-msgid "Could not fetch domain SID\n"
-msgstr ""
-
-#: ../utils/net.c:263
-#, c-format
-msgid "get_maxrid: Could not search %s\n"
-msgstr ""
-
-#: ../utils/net.c:297
-msgid "usage: net maxrid\n"
-msgstr ""
-
-#: ../utils/net.c:302
-msgid "can't get current maximum rid\n"
-msgstr ""
-
-#: ../utils/net.c:306
-#, c-format
-msgid "Currently used maximum rid: %d\n"
-msgstr ""
-
-#: ../utils/net.c:317
-msgid "Run functions using RPC transport"
-msgstr ""
-
-#: ../utils/net.c:318
-msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands."
-msgstr ""
-
-#: ../utils/net.c:325
-msgid "Run functions using RAP transport"
-msgstr ""
-
-#: ../utils/net.c:326
-msgid " Use 'net help rap' to get more extensive information about 'net rap' commands."
-msgstr ""
-
-#: ../utils/net.c:333
-msgid "Run functions using ADS transport"
-msgstr ""
-
-#: ../utils/net.c:334
-msgid " Use 'net help ads' to get more extensive information about 'net ads' commands."
-msgstr ""
-
-#: ../utils/net.c:343
-msgid "Functions on remote opened files"
-msgstr ""
-
-#: ../utils/net.c:344
-msgid " Use 'net help file' to get more information about 'net file' commands."
-msgstr ""
-
-#: ../utils/net.c:351
-msgid "Functions on shares"
-msgstr ""
-
-#: ../utils/net.c:352
-msgid " Use 'net help share' to get more information about 'net share' commands."
-msgstr ""
-
-#: ../utils/net.c:359
-msgid "Manage sessions"
-msgstr ""
-
-#: ../utils/net.c:360
-msgid " Use 'net help session' to get more information about 'net session' commands."
-msgstr ""
-
-#: ../utils/net.c:367
-msgid "List servers in workgroup"
-msgstr ""
-
-#: ../utils/net.c:368
-msgid " Use 'net help server' to get more information about 'net server' commands."
-msgstr ""
-
-#: ../utils/net.c:375
-msgid "List domains/workgroups on network"
-msgstr ""
-
-#: ../utils/net.c:376
-msgid " Use 'net help domain' to get more information about 'net domain' commands."
-msgstr ""
-
-#: ../utils/net.c:383
-msgid "Modify printer queue"
-msgstr ""
-
-#: ../utils/net.c:384
-msgid " Use 'net help printq' to get more information about 'net printq' commands."
-msgstr ""
-
-#: ../utils/net.c:391
-msgid "Manage users"
-msgstr ""
-
-#: ../utils/net.c:392
-msgid " Use 'net help user' to get more information about 'net user' commands."
-msgstr ""
-
-#: ../utils/net.c:399
-msgid "Manage groups"
-msgstr ""
-
-#: ../utils/net.c:400
-msgid " Use 'net help group' to get more information about 'net group' commands."
-msgstr ""
-
-#: ../utils/net.c:407
-msgid "Manage group mappings"
-msgstr ""
-
-#: ../utils/net.c:408
-msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands."
-msgstr ""
-
-#: ../utils/net.c:415
-msgid "Functions on the SAM database"
-msgstr ""
-
-#: ../utils/net.c:416
-msgid " Use 'net help sam' to get more information about 'net sam' commands."
-msgstr ""
-
-#: ../utils/net.c:423
-msgid "Validate username and password"
-msgstr ""
-
-#: ../utils/net.c:424
-msgid " Use 'net help validate' to get more information about 'net validate' commands."
-msgstr ""
-
-#: ../utils/net.c:431
-msgid "Modify group memberships"
-msgstr ""
-
-#: ../utils/net.c:432
-msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands."
-msgstr ""
-
-#: ../utils/net.c:438
-msgid "Execute remote command on a remote OS/2 server"
-msgstr ""
-
-#: ../utils/net.c:439
-msgid " Use 'net help admin' to get more information about 'net admin' commands."
-msgstr ""
-
-#: ../utils/net.c:445
-msgid "List/modify running services"
-msgstr ""
-
-#: ../utils/net.c:446
-msgid " Use 'net help service' to get more information about 'net service' commands."
-msgstr ""
-
-#: ../utils/net.c:453
-msgid "Change user password on target server"
-msgstr ""
-
-#: ../utils/net.c:454
-msgid " Use 'net help password' to get more information about 'net password' commands."
-msgstr ""
-
-#: ../utils/net.c:460
-msgid "Change the trust password"
-msgstr ""
-
-#: ../utils/net.c:461
-msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'."
-msgstr ""
-
-#: ../utils/net.c:467
-msgid "Change the secret password"
-msgstr ""
-
-#: ../utils/net.c:468
-msgid ""
-" net [options] changesecretpw\n"
-" Change the ADS domain member machine account password in secrets.tdb.\n"
-" Do NOT use this function unless you know what it does.\n"
-" Requires the -f flag to work."
-msgstr ""
-
-#: ../utils/net.c:477
-msgid "Show/set time"
-msgstr ""
-
-#: ../utils/net.c:478
-msgid " Use 'net help time' to get more information about 'net time' commands."
-msgstr ""
-
-#: ../utils/net.c:484
-msgid "Look up host names/IP addresses"
-msgstr ""
-
-#: ../utils/net.c:485
-msgid " Use 'net help lookup' to get more information about 'net lookup' commands."
-msgstr ""
-
-#: ../utils/net.c:491
-msgid "Join a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:492
-msgid " Use 'net help join' to get more information about 'net join'."
-msgstr ""
-
-#: ../utils/net.c:498
-msgid "Join/unjoin (remote) machines to/from a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:499
-msgid " Use 'net help dom' to get more information about 'net dom' commands."
-msgstr ""
-
-#: ../utils/net.c:505
-msgid "Operate on the cache tdb file"
-msgstr ""
-
-#: ../utils/net.c:506
-msgid " Use 'net help cache' to get more information about 'net cache' commands."
-msgstr ""
-
-#: ../utils/net.c:512
-msgid "Get the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:513
-msgid " net getlocalsid"
-msgstr ""
-
-#: ../utils/net.c:518
-msgid "Set the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:519
-msgid " net setlocalsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:524
-msgid "Set domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:525
-msgid " net setdomainsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:530
-msgid "Get domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:531
-msgid " net getdomainsid"
-msgstr ""
-
-#: ../utils/net.c:536
-msgid "Display the maximul RID currently used"
-msgstr ""
-
-#: ../utils/net.c:537
-msgid " net maxrid"
-msgstr ""
-
-#: ../utils/net.c:542
-msgid "IDmap functions"
-msgstr ""
-
-#: ../utils/net.c:543
-msgid " Use 'net help idmap to get more information about 'net idmap' commands."
-msgstr ""
-
-#: ../utils/net.c:549
-msgid "Display server status"
-msgstr ""
-
-#: ../utils/net.c:550
-msgid " Use 'net help status' to get more information about 'net status' commands."
-msgstr ""
-
-#: ../utils/net.c:556
-msgid "Manage user-modifiable shares"
-msgstr ""
-
-#: ../utils/net.c:557
-msgid " Use 'net help usershare to get more information about 'net usershare' commands."
-msgstr ""
-
-#: ../utils/net.c:563
-msgid "Display list of all users with SID"
-msgstr ""
-
-#: ../utils/net.c:564
-msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'."
-msgstr ""
-
-#: ../utils/net.c:570
-msgid "Manage Samba registry based configuration"
-msgstr ""
-
-#: ../utils/net.c:571
-msgid " Use 'net help conf' to get more information about 'net conf' commands."
-msgstr ""
-
-#: ../utils/net.c:577
-msgid "Manage the Samba registry"
-msgstr ""
-
-#: ../utils/net.c:578
-msgid " Use 'net help registry' to get more information about 'net registry' commands."
-msgstr ""
-
-#: ../utils/net.c:584
-msgid "Open a lua interpreter"
-msgstr ""
-
-#: ../utils/net.c:585
-msgid " Use 'net help lua' to get more information about 'net lua' commands."
-msgstr ""
-
-#: ../utils/net.c:591
-msgid "Process Win32 *.evt eventlog files"
-msgstr ""
-
-#: ../utils/net.c:592
-msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands."
-msgstr ""
-
-#: ../utils/net.c:600
-msgid "Manage AFS tokens"
-msgstr ""
-
-#: ../utils/net.c:601
-msgid " Use 'net help afs' to get more information about 'net afs' commands."
-msgstr ""
-
-#: ../utils/net.c:609
-msgid "Print usage information"
-msgstr ""
-
-#: ../utils/net.c:610
-msgid " Use 'net help help' to list usage information for 'net' commands."
-msgstr ""
-
-#: ../utils/net.c:639
-msgid "Encrypt SMB transport (UNIX extended servers only)"
-msgstr ""
-
-#: ../utils/net.c:703
-msgid ""
-"\n"
-"Invalid ip address specified\n"
-msgstr ""
-
-#: ../utils/net.c:718
-#, c-format
-msgid ""
-"\n"
-"Invalid option %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:52 ../utils/net_ads.c:392
-msgid "CLDAP query failed!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:56
-#, c-format
-msgid ""
-"Information for Domain Controller: %s\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:59
-msgid "Response Type: "
-msgstr ""
-
-#: ../utils/net_ads.c:72
-#, c-format
-msgid "GUID: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:74
-#, c-format
-msgid ""
-"Flags:\n"
-"\tIs a PDC: %s\n"
-"\tIs a GC of the forest: %s\n"
-"\tIs an LDAP server: %s\n"
-"\tSupports DS: %s\n"
-"\tIs running a KDC: %s\n"
-"\tIs running time services: %s\n"
-"\tIs the closest DC: %s\n"
-"\tIs writable: %s\n"
-"\tHas a hardware clock: %s\n"
-"\tIs a non-domain NC serviced by LDAP server: %s\n"
-"\tIs NT6 DC that has some secrets: %s\n"
-"\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
-msgid "yes"
-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
-msgid "no"
-msgstr ""
-
-#: ../utils/net_ads.c:101
-#, c-format
-msgid "Forest:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:102
-#, c-format
-msgid "Domain:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:103
-#, c-format
-msgid "Domain Controller:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:105
-#, c-format
-msgid "Pre-Win2k Domain:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:106
-#, c-format
-msgid "Pre-Win2k Hostname:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:108
-#, c-format
-msgid "User name:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:110
-#, c-format
-msgid "Server Site Name :\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:111
-#, c-format
-msgid "Client Site Name :\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:113
-#, c-format
-msgid "NT Version: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:114
-#, c-format
-msgid "LMNT Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:115
-#, c-format
-msgid "LM20 Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:130
-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
-msgid "Didn't find the cldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:160
-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
-msgid "Didn't find the ldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:182
-msgid "Failed to get server's current time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:187
-#, c-format
-msgid "LDAP server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:188
-#, c-format
-msgid "LDAP server name: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:189
-#, c-format
-msgid "Realm: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:190
-#, c-format
-msgid "Bind Path: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:191
-#, c-format
-msgid "LDAP port: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:192
-#, c-format
-msgid "Server time: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:195
-#, c-format
-msgid "KDC server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:196
-#, c-format
-msgid "Server time offset: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:374
-msgid ""
-"Usage:\n"
-"net ads workgroup\n"
-" Print the workgroup name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:397
-#, c-format
-msgid "Workgroup: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:458
-#, c-format
-msgid "ads_user_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:463
-#, c-format
-msgid "ads_user_add: User %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:477
-#, c-format
-msgid "Could not add user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:484 ../utils/net_ads.c:497
-#, c-format
-msgid "User %s added\n"
-msgstr ""
-
-#. password didn't set, delete account
-#: ../utils/net_ads.c:503
-#, c-format
-msgid "Could not add user %s. Error setting password %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:551
-#, c-format
-msgid "ads_user_info: failed to escape user %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:569
-#, c-format
-msgid "ads_search: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:575
-msgid "ads_pull_uint32 failed\n"
-msgstr ""
-
-#: ../utils/net_ads.c:582
-#, c-format
-msgid "ads_domain_sid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:642
-#, c-format
-msgid "User %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:652
-#, c-format
-msgid "User %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:656
-#, c-format
-msgid "Error deleting user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:669
-msgid "Add an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:670
-msgid ""
-"net ads user add\n"
-" Add an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:677
-msgid "Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:678
-msgid ""
-"net ads user info\n"
-" Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:685
-msgid "Delete an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:686
-msgid ""
-"net ads user delete\n"
-" Delete an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:699
-msgid ""
-"Usage:\n"
-"net ads user\n"
-" List AD users\n"
-msgstr ""
-
-#: ../utils/net_ads.c:711
-msgid ""
-"\n"
-"User name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:751
-#, c-format
-msgid "ads_group_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:756
-#, c-format
-msgid "ads_group_add: Group %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:769
-#, c-format
-msgid "Group %s added\n"
-msgstr ""
-
-#: ../utils/net_ads.c:772
-#, c-format
-msgid "Could not add group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:801
-#, c-format
-msgid "Group %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:811
-#, c-format
-msgid "Group %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:815
-#, c-format
-msgid "Error deleting group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:828
-msgid "Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:829
-msgid ""
-"net ads group add\n"
-" Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:836
-msgid "Delete an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:837
-msgid ""
-"net ads group delete\n"
-" Delete an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:850
-msgid ""
-"Usage:\n"
-"net ads group\n"
-" List AD groups\n"
-msgstr ""
-
-#: ../utils/net_ads.c:862
-msgid ""
-"\n"
-"Group name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:884
-msgid ""
-"Usage:\n"
-"net ads status\n"
-" Display machine account details\n"
-msgstr ""
-
-#: ../utils/net_ads.c:896
-#, c-format
-msgid "ads_find_machine_acct: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:902
-#, c-format
-msgid "No machine account for '%s' found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:926
-msgid ""
-"Usage:\n"
-"net ads leave\n"
-" Leave an AD domain\n"
-msgstr ""
-
-#: ../utils/net_ads.c:933
-msgid "No realm set, are we joined ?\n"
-msgstr ""
-
-#: ../utils/net_ads.c:938 ../utils/net_ads.c:1260
-msgid "Could not initialise talloc context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:948
-msgid "Could not initialise unjoin context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:968
-#, c-format
-msgid "Failed to leave domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:975
-#, c-format
-msgid "Deleted account for '%s' in realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:982
-#, c-format
-msgid "Disabled account for '%s' in realm '%s'\n"
-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
-#, c-format
-msgid "Machine '%s' Left domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1035
-msgid ""
-"Usage:\n"
-"net ads testjoin\n"
-" Test if the existing join is ok\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1044
-#, c-format
-msgid "Join to domain is not valid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1049
-#, c-format
-msgid "Join is OK\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1060
-msgid "Host is not configured as a member server.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1065
-#, 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
-#, c-format
-msgid "realm must be set in in %s for ADS join to succeed.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1105
-#, c-format
-msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1212
-msgid ""
-"net ads join [options]\n"
-"Valid options:\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1214
-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
-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"
-" E.g. \"createcomputer=Computers/Servers/Unix\"\n"
-" NB: A backslash '\\' is used as escape at multiple levels and may\n"
-" need to be doubled or even quadrupled. It is not used as a separator.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1221
-msgid " osName=string Set the operatingSystem attribute during the join.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1222
-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"
-" Also, the operatingSystemService attribute is also set when along with\n"
-" the two other attributes.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1254
-msgid "Invalid configuration. Exiting....\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1283
-msgid "Please supply a valid OU path.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1290
-msgid "Please supply a operating system name.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1297
-msgid "Please supply a valid operating system version.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1308
-msgid "Please supply a valid domain name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1339
-#, c-format
-msgid ""
-"The workgroup in %s does not match the short\n"
-"domain name obtained from the server.\n"
-"Using the name [%s] from the server.\n"
-"You should set \"workgroup = %s\" in %s.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1347
-#, c-format
-msgid "Using short domain name -- %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1350
-#, c-format
-msgid "Joined '%s' to realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1353
-#, c-format
-msgid "Joined '%s' to domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1377 ../utils/net_ads.c:1433
-msgid "DNS update failed!\n"
-msgstr ""
-
-#. issue an overall failure message at the end.
-#: ../utils/net_ads.c:1391 ../utils/net_dom.c:198
-#, c-format
-msgid "Failed to join domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1414
-msgid ""
-"Usage:\n"
-"net ads dns register\n"
-" Register hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1421
-msgid "Could not initialise talloc context\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1439
-msgid "Successfully registered hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1447
-msgid "DNS update support not enabled at compile time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1466
-msgid ""
-"Usage:\n"
-"net ads dns gethostbyname <server> <name>\n"
-" Look up hostname from the AD\n"
-" server\tName server to use\n"
-" name\tName to look up\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1476
-#, c-format
-msgid "do_gethostbyname returned %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1488
-msgid "Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1489
-msgid ""
-"net ads dns register\n"
-" Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1496
-msgid "Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1497
-msgid ""
-"net ads dns gethostbyname\n"
-" Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1512
-msgid ""
-"\n"
-"net ads printer search <printer>\n"
-"\tsearch for a printer in the directory\n"
-"\n"
-"net ads printer info <printer> <server>\n"
-"\tlookup info in directory for printer on server\n"
-"\t(note: printer defaults to \"*\", server defaults to local)\n"
-"\n"
-"net ads printer publish <printername>\n"
-"\tpublish printer in directory\n"
-"\t(note: printer name is required)\n"
-"\n"
-"net ads printer remove <printername>\n"
-"\tremove printer from directory\n"
-"\t(note: printer name is required)\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1536
-msgid ""
-"Usage:\n"
-"net ads printer search\n"
-" List printers in the AD\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1549
-#, c-format
-msgid "ads_find_printer: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1556
-msgid "No results found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1576
-msgid ""
-"Usage:\n"
-"net ads printer info [printername [servername]]\n"
-" Display printer info from AD\n"
-" printername\tPrinter name or wildcard\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1603
-#, c-format
-msgid "Server '%s' not found: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1611 ../utils/net_ads.c:1794
-#, c-format
-msgid "Printer '%s' not found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1640
-msgid ""
-"Usage:\n"
-"net ads printer publish <printername> [servername]\n"
-" Publish printer in AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1675
-#, c-format
-msgid "Unable to open a connnection to %s to obtain data for %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1688
-#, c-format
-msgid "Could not find machine account for server %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1704 ../utils/net_ads.c:1713
-msgid "Internal error, out of memory!"
-msgstr ""
-
-#: ../utils/net_ads.c:1724
-#, c-format
-msgid "Unable to open a connnection to the spoolss pipe on %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1766
-msgid ""
-"Usage:\n"
-"net ads printer remove <printername> [servername]\n"
-" Remove a printer from the AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1787
-#, c-format
-msgid "ads_find_printer_on_server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1806
-#, c-format
-msgid "ads_del_dn: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1822
-msgid "Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1823
-msgid ""
-"net ads printer search\n"
-" Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1830
-msgid "Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1831
-msgid ""
-"net ads printer info\n"
-" Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1838
-msgid "Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1839
-msgid ""
-"net ads printer publish\n"
-" Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1846
-msgid "Delete a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1847
-msgid ""
-"net ads printer remove\n"
-" Delete a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1869
-msgid ""
-"Usage:\n"
-"net ads password <username>\n"
-" Change password for user\n"
-" username\tName of user to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1877
-msgid "You must supply an administrator username/password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1883
-msgid "ERROR: You must say which username to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1915
-msgid "Didn't find the kerberos server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1923
-#, c-format
-msgid "Enter new password for %s:"
-msgstr ""
-
-#: ../utils/net_ads.c:1933 ../utils/net_ads.c:1982
-#, c-format
-msgid "Password change failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1938
-#, c-format
-msgid "Password change for %s completed.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1952
-msgid ""
-"Usage:\n"
-"net ads changetrustpw\n"
-" Change the machine account's trust password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1977
-#, c-format
-msgid "Changing password for principal: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1988
-#, c-format
-msgid "Password change for principal %s succeeded.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1991
-msgid "Attempting to update system keytab with new password.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1993
-msgid "Failed to update system keytab.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2009
-msgid ""
-"\n"
-"net ads search <expression> <attributes...>\n"
-"\n"
-"Perform a raw LDAP search on a ADS server and dump the results.\n"
-"The expression is a standard LDAP search expression, and the\n"
-"attributes are a list of LDAP fields to show in the results.\n"
-"\n"
-"Example: net ads search '(objectCategory=group)' sAMAccountName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2046 ../utils/net_ads.c:2107 ../utils/net_ads.c:2171 ../utils/net_ads_gpo.c:250
-#, c-format
-msgid "search failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2051 ../utils/net_ads.c:2176 ../utils/net_ads_gpo.c:256
-#, c-format
-msgid ""
-"Got %d replies\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2069
-msgid ""
-"\n"
-"net ads dn <dn> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The DN standard LDAP DN, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' sAMAccountName\n"
-"\n"
-"Note: the DN must be provided properly escaped. See RFC 4514 for details\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2129
-msgid ""
-"\n"
-"net ads sid <sid> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The SID is in string format, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads sid 'S-1-5-32' distinguishedName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2164
-msgid "could not convert sid\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2193
-msgid ""
-"Usage:\n"
-"net ads keytab flush\n"
-" Delete the whole keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2214
-msgid ""
-"Usage:\n"
-"net ads keytab add <principal> [principal ...]\n"
-" Add principals to local keytab\n"
-" principal\tKerberos principal to add to keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2222
-msgid "Processing principals to add...\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2239
-msgid ""
-"Usage:\n"
-"net ads keytab create\n"
-" Create new default keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2258
-msgid ""
-"Usage:\n"
-"net ads keytab list [keytab]\n"
-" List a local keytab\n"
-" keytab\tKeytab to list\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2280
-msgid "Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2281
-msgid ""
-"net ads keytab add\n"
-" Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2288
-msgid "Create a fresh keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2289
-msgid ""
-"net ads keytab create\n"
-" Create a fresh keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2296
-msgid "Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2297
-msgid ""
-"net ads keytab flush\n"
-" Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2304
-msgid "List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2305
-msgid ""
-"net ads keytab list\n"
-" List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2312
-msgid ""
-"\n"
-"Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2324
-msgid ""
-"Usage:\n"
-"net ads kerberos renew\n"
-" Renew TGT from existing credential cache\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2332
-#, c-format
-msgid "failed to renew kerberos ticket: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2347
-msgid ""
-"Usage:\n"
-"net ads kerberos pac\n"
-" Dump the Kerberos PAC\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2372
-#, c-format
-msgid "failed to query kerberos PAC: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2381
-#, c-format
-msgid "The Pac: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2397
-msgid ""
-"Usage:\n"
-"net ads kerberos kinit\n"
-" Get Ticket Granting Ticket (TGT) for the user\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2421
-#, c-format
-msgid "failed to kinit password: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2435
-msgid "Retrieve Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2436
-msgid ""
-"net ads kerberos kinit\n"
-" Receive Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2443
-msgid "Renew Ticket Granting Ticket from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2444
-msgid ""
-"net ads kerberos renew\n"
-" Renew Ticket Granting Ticket (TGT) from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2452
-msgid "Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2453
-msgid ""
-"net ads kerberos pac\n"
-" Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2469
-msgid "Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2470
-msgid ""
-"net ads info\n"
-" Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2477
-msgid "Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2478
-msgid ""
-"net ads join\n"
-" Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2485
-msgid "Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2486
-msgid ""
-"net ads testjoin\n"
-" Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2493
-msgid "Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2494
-msgid ""
-"net ads leave\n"
-" Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2501
-msgid "Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2502
-msgid ""
-"net ads status\n"
-" Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2509
-msgid "List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2510
-msgid ""
-"net ads user\n"
-" List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2517
-msgid "List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2518
-msgid ""
-"net ads group\n"
-" List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2525
-msgid "Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2526
-msgid ""
-"net ads dns\n"
-" Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2533
-msgid "Change user passwords"
-msgstr ""
-
-#: ../utils/net_ads.c:2534
-msgid ""
-"net ads password\n"
-" Change user passwords"
-msgstr ""
-
-#: ../utils/net_ads.c:2541
-msgid "Change trust account password"
-msgstr ""
-
-#: ../utils/net_ads.c:2542
-msgid ""
-"net ads changetrustpw\n"
-" Change trust account password"
-msgstr ""
-
-#: ../utils/net_ads.c:2549
-msgid "List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2550
-msgid ""
-"net ads printer\n"
-" List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2557
-msgid "Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2558
-msgid ""
-"net ads search\n"
-" Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2565
-msgid "Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2566
-msgid ""
-"net ads dn\n"
-" Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2573
-msgid "Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2574
-msgid ""
-"net ads sid\n"
-" Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2581
-msgid "Display workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2582
-msgid ""
-"net ads workgroup\n"
-" Display the workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2589
-msgid "Perfom CLDAP query on DC"
-msgstr ""
-
-#: ../utils/net_ads.c:2590
-msgid ""
-"net ads lookup\n"
-" Find the ADS DC using CLDAP lookups"
-msgstr ""
-
-#: ../utils/net_ads.c:2597
-msgid "Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2598
-msgid ""
-"net ads keytab\n"
-" Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2605
-msgid "Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2606
-msgid ""
-"net ads gpo\n"
-" Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2613
-msgid "Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2614
-msgid ""
-"net ads kerberos\n"
-" Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2627
-msgid "ADS support not compiled in\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:40
-msgid ""
-"Usage:\n"
-"net ads gpo refresh <username|machinename>\n"
-" Lists all GPOs assigned to an account and downloads them\n"
-" username\tUser to refresh GPOs for\n"
-" machinename\tMachine to refresh GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:56
-#, c-format
-msgid "failed to connect AD server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:62
-#, c-format
-msgid "failed to find samaccount for %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:70
-#, c-format
-msgid ""
-"\n"
-"%s: '%s' has dn: '%s'\n"
-"\n"
-msgstr ""
-
-#: ../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
-msgid "user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:74
-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
-#, 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
-msgid "finished\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:87
-msgid "* fetching GPO List "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:96
-msgid "* Refreshing Group Policy Data "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:107
-msgid "* storing GPO list to registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:122
-msgid "* dumping GPO list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:151
-msgid "* re-reading GPO list from registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:167
-msgid "* dumping GPO list from registry\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:226
-msgid ""
-"Usage:\n"
-"net ads gpo listall\n"
-" List all GPOs on the DC\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:270
-#, c-format
-msgid "ads_parse_gpo failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:300
-msgid ""
-"Usage:\n"
-"net ads gpo list <username|machinename>\n"
-" Lists all GPOs for machine/user\n"
-" username\tUser to list GPOs for\n"
-" machinename\tMachine to list GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:327
-#, c-format
-msgid "%s: '%s' has dn: '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:451
-msgid ""
-"Usage:\n"
-"net ads gpo linkget <container>\n"
-" Lists gPLink of a containter\n"
-" container\tContainer to get link for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:470
-#, c-format
-msgid "get link for %s failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:492
-msgid ""
-"Usage:\n"
-"net ads gpo linkadd <linkdn> <gpodn> [options]\n"
-" Link a container to a GPO\n"
-" linkdn\tContainer to link to a GPO\n"
-" gpodn\tGPO to link container to\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:497
-msgid ""
-"note: DNs must be provided properly escaped.\n"
-"See RFC 4514 for details\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:518
-#, c-format
-msgid "link add failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:579
-msgid ""
-"Usage:\n"
-"net ads gpo getgpo <gpo>\n"
-" List speciefied GPO\n"
-" gpo\t\tGPO to list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:603
-#, c-format
-msgid "get gpo for [%s] failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:634
-msgid "List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:635
-msgid ""
-"net ads gpo getgpo\n"
-" List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:642
-msgid "Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:643
-msgid ""
-"net ads gpo linkadd\n"
-" Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:660
-msgid "Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:661
-msgid ""
-"net ads gpo linkget\n"
-" Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:668
-msgid "Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:669
-msgid ""
-"net ads gpo list\n"
-" Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:676
-msgid "Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:677
-msgid ""
-"net ads gpo listall\n"
-" Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:684
-msgid "Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:686
-msgid ""
-"net ads gpo refresh\n"
-" Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_afs.c:25
-msgid ""
-" net afs key filename\n"
-"\tImports a OpenAFS KeyFile into our secrets.tdb\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:27
-msgid ""
-" net afs impersonate <user> <cell>\n"
-"\tCreates a token for user@cell\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:38
-msgid "usage: 'net afs key <keyfile> cell'\n"
-msgstr ""
-
-#: ../utils/net_afs.c:43
-msgid "Could not open secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:48
-#, c-format
-msgid "Could not open %s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:53
-msgid "Could not read keyfile\n"
-msgstr ""
-
-#: ../utils/net_afs.c:58
-msgid "Could not write keyfile to secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:71
-#, c-format
-msgid "Usage: net afs impersonate <user> <cell>\n"
-msgstr ""
-
-#: ../utils/net_afs.c:78
-#, c-format
-msgid "Could not create token\n"
-msgstr ""
-
-#: ../utils/net_afs.c:83
-#, c-format
-msgid "Could not set token into kernel\n"
-msgstr ""
-
-#: ../utils/net_afs.c:87
-#, c-format
-msgid "Success: %s@%s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:98
-msgid "Import an OpenAFS keyfile"
-msgstr ""
-
-#: ../utils/net_afs.c:99
-msgid ""
-"net afs key <filename>\n"
-" Import kefile from <filename>."
-msgstr ""
-
-#: ../utils/net_afs.c:106
-msgid "Get a user token"
-msgstr ""
-
-#: ../utils/net_afs.c:107
-msgid ""
-"net afs impersonate <user> <cell>\n"
-" Create token for user@cell"
-msgstr ""
-
-#: ../utils/net_cache.c:74
-#, c-format
-msgid "Key: %s\t Timeout: %s\t Value: %s %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:75
-msgid "(expired)"
-msgstr ""
-
-#: ../utils/net_cache.c:84
-#, c-format
-msgid "Couldn't delete entry! key = %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:158
-msgid ""
-"\n"
-"Usage:\n"
-"net cache add <key string> <data string> <timeout>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:170
-msgid "Invalid timeout argument.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:175
-msgid "New cache entry stored successfully.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:179
-msgid "Entry couldn't be added. Perhaps there's already such a key.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:195
-msgid ""
-"\n"
-"Usage: net cache del <key string>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:200
-msgid "Entry deleted.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:204
-msgid "Couldn't delete specified entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:223
-msgid ""
-"\n"
-"Usage: net cache get <key>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:233
-msgid "Failed to find entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:250
-msgid "Usage: net cache search <pattern>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:272
-msgid ""
-"Usage:\n"
-"net cache list\n"
-" List all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:293 ../utils/net_cache.c:306
-msgid ""
-"Usage:\n"
-"net cache flush\n"
-" Delete all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:331
-msgid "Add new cache entry"
-msgstr ""
-
-#: ../utils/net_cache.c:332
-msgid ""
-"net cache add <key string> <data string> <timeout>\n"
-" Add new cache entry.\n"
-" key string\tKey string to add cache data under.\n"
-" data string\tData to store under given key.\n"
-" timeout\tTimeout for cache data."
-msgstr ""
-
-#: ../utils/net_cache.c:342
-msgid "Delete existing cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:343
-msgid ""
-"net cache del <key string>\n"
-" Delete existing cache entry by key.\n"
-" key string\tKey string to delete."
-msgstr ""
-
-#: ../utils/net_cache.c:351
-msgid "Get cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:352
-msgid ""
-"net cache get <key string>\n"
-" Get cache entry by key.\n"
-" key string\tKey string to look up cache entry for."
-msgstr ""
-
-#: ../utils/net_cache.c:361
-msgid "Search entry by pattern"
-msgstr ""
-
-#: ../utils/net_cache.c:362
-msgid ""
-"net cache search <pattern>\n"
-" Search entry by pattern.\n"
-" pattern\tPattern to search for in cache."
-msgstr ""
-
-#: ../utils/net_cache.c:370
-msgid "List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:371
-msgid ""
-"net cache list\n"
-" List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:378
-msgid "Delete all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:379
-msgid ""
-"net cache flush\n"
-" Delete all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:386
-msgid "Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_cache.c:387
-msgid ""
-"net cache stabilize\n"
-" Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_conf.c:42
-msgid "USAGE: net conf list\n"
-msgstr ""
-
-#: ../utils/net_conf.c:49
-msgid ""
-"USAGE: net conf import [--test|-T] <filename> [<servicename>]\n"
-"\t[--test|-T] testmode - do not act, just print what would be done\n"
-"\t<servicename> only import service <servicename>, ignore the rest\n"
-msgstr ""
-
-#: ../utils/net_conf.c:61
-msgid "USAGE: net conf listshares\n"
-msgstr ""
-
-#: ../utils/net_conf.c:68
-msgid "USAGE: net conf drop\n"
-msgstr ""
-
-#: ../utils/net_conf.c:75
-msgid "USAGE: net conf showshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:82
-msgid ""
-"USAGE: net conf addshare <sharename> <path> [writeable={y|N} [guest_ok={y|N} [<comment>]]\n"
-"\t<sharename> the new share name.\n"
-"\t<path> the path on the filesystem to export.\n"
-"\twriteable={y|N} set \"writeable to \"yes\" or \"no\" (default) on this share.\n"
-"\tguest_ok={y|N} set \"guest ok\" to \"yes\" or \"no\" (default) on this share.\n"
-"\t<comment> optional comment for the new share.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:97
-msgid "USAGE: net conf delshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:104
-msgid "USAGE: net conf setparm <section> <param> <value>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:111
-msgid "USAGE: net conf getparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:118
-msgid "USAGE: net conf delparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:125
-msgid "USAGE: net conf getincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:132
-msgid "USAGE: net conf setincludes <section> [<filename>]*\n"
-msgstr ""
-
-#: ../utils/net_conf.c:139
-msgid "USAGE: net conf delincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:251
-#, c-format
-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
-msgid "error: out of memory!\n"
-msgstr ""
-
-#: ../utils/net_conf.c:324
-#, c-format
-msgid "error loading file '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:330
-msgid ""
-"\n"
-"TEST MODE - would import the following configuration:\n"
-"\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "error committing transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:427 ../utils/net_conf.c:828
-#, c-format
-msgid "error cancelling transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:484
-#, c-format
-msgid "Error deleting configuration: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:521
-#, c-format
-msgid "error getting share parameters: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:630
-#, c-format
-msgid "ERROR: share name %s contains invalid characters (any of %s)\n"
-msgstr ""
-
-#: ../utils/net_conf.c:638
-msgid "ERROR: 'global' is not a valid share name.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:643
-#, c-format
-msgid "ERROR: share %s already exists.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:652
-#, c-format
-msgid "Error: path '%s' is not an absolute path.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:659
-#, c-format
-msgid ""
-"ERROR: cannot stat path '%s' to ensure this is a directory.\n"
-"Error was '%s'.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:668
-#, c-format
-msgid "ERROR: path '%s' is not a directory.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:679
-#, c-format
-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
-#, c-format
-msgid "Error setting parameter %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:748
-#, c-format
-msgid "Error deleting share %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:801
-#, c-format
-msgid "Error creating share '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:810
-#, c-format
-msgid "Error setting value '%s': %s\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "Error: given parameter '%s' is not set.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:883
-#, c-format
-msgid "Error getting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:939
-#, c-format
-msgid "Error deleting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:977
-#, c-format
-msgid "error getting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1023
-#, c-format
-msgid "error setting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1056
-#, c-format
-msgid "error deleting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1136 ../utils/net_help.c:36
-msgid "Usage:\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1160
-msgid "Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1162
-msgid ""
-"net conf list\n"
-" Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1171
-msgid "Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1173
-msgid ""
-"net conf import\n"
-" Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1181
-msgid "List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1182
-msgid ""
-"net conf listshares\n"
-" List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1189
-msgid "Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1190
-msgid ""
-"net conf drop\n"
-" Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1197
-msgid "Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1198
-msgid ""
-"net conf showshare\n"
-" Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1205
-msgid "Create a new share."
-msgstr ""
-
-#: ../utils/net_conf.c:1206
-msgid ""
-"net conf addshare\n"
-" Create a new share."
-msgstr ""
-
-#: ../utils/net_conf.c:1213
-msgid "Delete a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1214
-msgid ""
-"net conf delshare\n"
-" Delete a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1221
-msgid "Store a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1222
-msgid ""
-"net conf setparm\n"
-" Store a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1229
-msgid "Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1230
-msgid ""
-"net conf getparm\n"
-" Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1237
-msgid "Delete a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1238
-msgid ""
-"net conf delparm\n"
-" Delete a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1245
-msgid "Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1246
-msgid ""
-"net conf getincludes\n"
-" Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1253
-msgid "Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1254
-msgid ""
-"net conf setincludes\n"
-" Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1261
-msgid "Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1262
-msgid ""
-"net conf setincludes\n"
-" Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_dom.c:25
-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
-msgid ""
-"usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine\n"
-msgstr ""
-
-#: ../utils/net_dom.c:31
-msgid ""
-"usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer\n"
-msgstr ""
-
-#: ../utils/net_dom.c:91
-#, c-format
-msgid "Failed to unjoin domain: %s\n"
-msgstr ""
-
-#: ../utils/net_dom.c:97 ../utils/net_dom.c:204
-msgid "Shutting down due to a domain membership change"
-msgstr ""
-
-#: ../utils/net_dom.c:290
-#, c-format
-msgid "Failed to rename machine: "
-msgstr ""
-
-#: ../utils/net_dom.c:292
-#, c-format
-msgid "Computer is not joined to a Domain\n"
-msgstr ""
-
-#: ../utils/net_dom.c:301
-msgid "Shutting down due to a computer rename"
-msgstr ""
-
-#: ../utils/net_dom.c:338
-msgid "Join a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:339
-msgid ""
-"net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Join a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:347
-msgid "Unjoin a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:348
-msgid ""
-"net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:356
-msgid "Rename a computer that is joined to a domain"
-msgstr ""
-
-#: ../utils/net_dom.c:357
-msgid ""
-"net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer"
-msgstr ""
-
-#: ../utils/net_eventlog.c:46
-msgid "usage: net eventlog dump <file.evt>\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "evt pull failed: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:102
-msgid "usage: net eventlog import <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:116
-#, c-format
-msgid "evt header pull failed: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:122
-msgid "input file is wrapped, cannot proceed\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:138 ../utils/net_eventlog.c:203
-#, c-format
-msgid "can't open the eventlog TDB (%s)\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:158
-#, c-format
-msgid "can't write to the eventlog: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:164
-#, c-format
-msgid "wrote %d entries to tdb\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:197
-msgid "usage: net eventlog export <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:214
-#, c-format
-msgid "failed to save evt file: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:243
-msgid "Dump eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:244
-msgid ""
-"net eventlog dump\n"
-" Dump win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:251
-msgid "Import eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:252
-msgid ""
-"net eventlog import\n"
-" Import win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:259
-msgid "Export eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:260
-msgid ""
-"net eventlog export\n"
-" Export win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_file.c:27
-msgid ""
-"net [<method>] file [misc. options] [targets]\n"
-"\tlists all open files on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:29
-msgid ""
-"net [<method>] file USER <username> [misc. options] [targets]\n"
-"\tlists all files opened by username on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:32
-msgid ""
-"net [<method>] file CLOSE <id> [misc. options] [targets]\n"
-"\tcloses specified file on target server\n"
-msgstr ""
-
-#: ../utils/net_file.c:34
-msgid ""
-"net [rap] file INFO <id> [misc. options] [targets]\n"
-"\tdisplays information about the specified open file\n"
-msgstr ""
-
-#: ../utils/net_group.c:27
-msgid ""
-"net [<method>] group [misc. options] [targets]\n"
-"\tList user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:29
-msgid ""
-"net rpc group LIST [global|local|builtin]* [misc. options]\n"
-"\tList specific user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:31
-msgid ""
-"net [<method>] group DELETE <name> [misc. options] [targets]\n"
-"\tDelete specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:34
-msgid ""
-"\n"
-"net [<method>] group ADD <name> [-C comment] [-c container] [misc. options] [targets]\n"
-"\tCreate specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:37
-msgid ""
-"\n"
-"net rpc group MEMBERS <name>\n"
-"\tList Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:38
-msgid ""
-"\n"
-"net rpc group ADDMEM <group> <member>\n"
-"\tAdd Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:40
-msgid ""
-"\n"
-"net rpc group DELMEM <group> <member>\n"
-"\tDelete Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:44
-msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:46
-msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:48
-msgid "\t-L or --localgroup\t\tWhen adding groups, create a local group (alias)\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:38
-#, c-format
-msgid "NT Group %s doesn't exist in mapping DB\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:46
-#, c-format
-msgid "converting sid %s from a string failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:65
-#, c-format
-msgid "\tSID : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:66
-#, c-format
-msgid "\tUnix gid : %u\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:67
-#, c-format
-msgid "\tUnix group: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:68
-#, c-format
-msgid "\tGroup type: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:70
-#, c-format
-msgid "\tComment : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:84
-msgid ""
-"net groupmap list [verbose] [ntgroup=NT group] [sid=SID]\n"
-" verbose\tPrint verbose list\n"
-" ntgroup\tNT group to list\n"
-" 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
-#, 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
-msgid "must supply a name\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "Bad option: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:139
-msgid "Failure to local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:181
-msgid "net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:195
-#, c-format
-msgid ""
-"Usage\n"
-"%s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:205
-#, c-format
-msgid "RID must be greater than %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:235 ../utils/net_groupmap.c:380
-msgid "must supply a comment string\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:259
-#, c-format
-msgid "unknown group type %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:276
-#, c-format
-msgid "Can't lookup UNIX group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:282
-#, c-format
-msgid "Unix group %s already mapped to SID %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:289
-msgid "No rid or sid specified, choosing a RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:292
-msgid "Could not get new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:297
-#, c-format
-msgid "Got RID %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:328
-#, c-format
-msgid "adding entry for group %s failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:332
-#, c-format
-msgid "Successfully added group %s to the mapping db as a %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:349
-msgid "net groupmap modify {ntgroup=<string>|sid=<SID>} [comment=<string>] [unixgroup=<string>] [type=<domain|local>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:388
-msgid "must supply a group name\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:434
-msgid "Failed to find local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:443
-msgid "Can't map to an unknown group type.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:449
-msgid "You can only change between domain and local groups.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:466
-#, c-format
-msgid "Unable to lookup UNIX group %s. Make sure the group exists.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:476
-msgid "Could not update group database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:480
-#, c-format
-msgid "Updated mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:491
-msgid "net groupmap delete {ntgroup=<string>|sid=<SID>}"
-msgstr ""
-
-#: ../utils/net_groupmap.c:532
-#, c-format
-msgid "Unable to resolve group %s to a SID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:539
-#, c-format
-msgid "Failed to remove group %s from the mapping db!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:544
-#, c-format
-msgid "Sucessfully removed %s from the mapping db\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:557
-msgid "Usage: net groupmap set \"NT Group\" [\"unix group\"] [-C \"comment\"] [-L] [-D]\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:563
-msgid "Can only specify -L or -D, not both\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:573
-#, c-format
-msgid "Could not find unix group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:594
-#, c-format
-msgid "Could not find group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:605
-msgid "Could not allocate new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:622
-#, c-format
-msgid "Could not add mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:633
-#, c-format
-msgid "Can't change type of the BUILTIN group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:660
-#, c-format
-msgid "Could not update group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:674
-msgid ""
-"Usage:\n"
-"net groupmap cleanup\n"
-" Delete all group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:682
-msgid "Could not list group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:689
-#, c-format
-msgid "Group %s is not mapped\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:692
-#, c-format
-msgid "Deleting mapping for NT Group %s, sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:712
-msgid "Usage: net groupmap addmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:717
-#, c-format
-msgid "Could not add sid %s to alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:733
-msgid "Usage: net groupmap delmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:738
-#, c-format
-msgid "Could not delete sid %s from alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:755
-msgid "Usage: net groupmap listmem alias-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:764
-#, c-format
-msgid "Could not list members for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:791
-#, c-format
-msgid "Could not list memberships for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:814
-msgid "Usage: net groupmap memberof sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:820 ../utils/net_idmap.c:345
-msgid "talloc_init failed\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:827
-msgid "Could not get domain sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:850
-msgid "Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:851
-msgid ""
-"net groupmap add\n"
-" Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:858
-msgid "Update a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:859
-msgid ""
-"net groupmap modify\n"
-" Modify an existing group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:866
-msgid "Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:867
-msgid ""
-"net groupmap delete\n"
-" Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:874
-msgid "Set group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:875
-msgid ""
-"net groupmap set\n"
-" Set a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:882
-msgid "Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:883
-msgid ""
-"net groupmap cleanup\n"
-" Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:890
-msgid "Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:891
-msgid ""
-"net groupmap addmem\n"
-" Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:898
-msgid "Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:899
-msgid ""
-"net groupmap delmem\n"
-" Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:906
-msgid "List foreign group members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:907
-msgid ""
-"net groupmap listmem\n"
-" List foreign alias members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:914
-msgid "List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:915
-msgid ""
-"net groupmap memberships\n"
-" List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:922
-msgid "List current group map"
-msgstr ""
-
-#: ../utils/net_groupmap.c:923
-msgid ""
-"net groupmap list\n"
-" List current group map"
-msgstr ""
-
-#: ../utils/net_help.c:39
-#, c-format
-msgid "net %s usage:\n"
-msgstr ""
-
-#: ../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
-msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:27 ../utils/net_join.c:30
-msgid "\trpc\t\t\t\tDCE-RPC\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:28
-msgid "\trap\t\t\t\tRAP (older systems)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:35
-msgid "Valid targets: choose one (none defaults to localhost)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:36
-msgid "\t-S or --server=<server>\t\tserver name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:37
-msgid "\t-I or --ipaddress=<ipaddr>\taddress of target server\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:38
-msgid "\t-w or --workgroup=<wg>\t\ttarget workgroup or domain\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:41
-msgid "Valid miscellaneous options are:\n"
-msgstr ""
-
-#. misc options
-#: ../utils/net_help_common.c:42
-msgid "\t-p or --port=<port>\t\tconnection port on target\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:43
-msgid "\t-W or --myworkgroup=<wg>\tclient workgroup\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:44
-msgid "\t-d or --debuglevel=<level>\tdebug level (0-10)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:45
-msgid "\t-n or --myname=<name>\t\tclient name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:46
-msgid "\t-U or --user=<name>\t\tuser name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:47
-msgid "\t-s or --configfile=<path>\tpathname of smb.conf file\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:48
-msgid "\t-l or --long\t\t\tDisplay full information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:49
-msgid "\t-V or --version\t\t\tPrint samba version information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:50
-msgid "\t-P or --machine-pass\t\tAuthenticate as machine account\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:52
-msgid "\t-e or --encrypt\t\t\tEncrypt SMB transport (UNIX extended servers only)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:54
-msgid "\t-k or --kerberos\t\tUse kerberos (active directory) authentication\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:25
-msgid "Out of memory!\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:39
-#, c-format
-msgid "USER HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:44
-#, c-format
-msgid "GROUP HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:63
-msgid ""
-"Usage:\n"
-"net idmap dump <inputfile>\n"
-" Dump current ID mapping.\n"
-" inputfile\tTDB file to read mappings from.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:73
-#, c-format
-msgid "Could not open idmap: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:94
-msgid ""
-"Usage:\n"
-"net idmap restore [inputfile]\n"
-" Restore ID mappings from file\n"
-" inputfile\tFile to load ID mappings from. If not given, load data from stdin.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:104
-msgid "To use net idmap Winbindd must be running.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:142
-#, c-format
-msgid "Could not set USER HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:151
-#, c-format
-msgid "Could not set GROUP HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:156
-#, c-format
-msgid "ignoring invalid line [%s]\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:163
-#, c-format
-msgid "ignoring invalid sid [%s]: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:175
-#, c-format
-msgid "Could not set mapping of %s %lu to sid %s: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:196 ../utils/net_idmap.c:202
-msgid "Not Implemented yet\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:240
-msgid ""
-"Usage:\n"
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set the secret for the specified domain (or alloc module)\n"
-" DOMAIN\tDomain to set secret for.\n"
-" alloc\tSet secret for the alloc module\n"
-" secret\tNew secret to set.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:271
-msgid "The only currently supported backend is LDAP\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:281
-#, c-format
-msgid "Missing ldap_user_dn option for domain %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:292
-msgid "Missing ldap_user_dn option for alloc backend\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:302
-msgid "Failed to store secret\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:307
-msgid "Secret stored\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:313
-msgid ""
-"net idmap dump <inputfile>\n"
-" Dump current id mapping\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:316
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin\n"
-msgstr ""
-
-#. Deliberately *not* document net idmap delete
-#: ../utils/net_idmap.c:321
-msgid ""
-"net idmap secret <DOMAIN>|alloc <secret>\n"
-" Set the secret for the specified DOMAIN (or the alloc module)\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:339
-msgid "usage: net idmap aclmapset <tdb> <src-sid> <dst-sid>\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:351
-#, c-format
-msgid "db_open failed: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:356 ../utils/net_idmap.c:361
-#, c-format
-msgid "%s is not a valid sid\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:367
-msgid "talloc_strdup failed\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:373
-msgid "could not fetch db record\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:381
-#, c-format
-msgid "could not store record: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:402
-msgid "Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:403
-msgid ""
-"net idmap dump\n"
-" Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:410
-msgid "Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:411
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:418 ../utils/net_idmap.c:426
-msgid "Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:419
-msgid ""
-"net idmap setmap\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:427
-msgid ""
-"net idmap delete\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:434
-msgid "Set secret for specified domain"
-msgstr ""
-
-#: ../utils/net_idmap.c:435
-msgid ""
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set secret for specified domain or alloc module"
-msgstr ""
-
-#: ../utils/net_idmap.c:442
-msgid "Set acl map"
-msgstr ""
-
-#: ../utils/net_idmap.c:443
-msgid ""
-"net idmap aclmapset\n"
-" Set acl map"
-msgstr ""
-
-#: ../utils/net_join.c:26
-msgid ""
-"\n"
-"net [<method>] join [misc. options]\n"
-"\tjoins this server to a domain\n"
-msgstr ""
-
-#: ../utils/net_join.c:47
-msgid "ADS join did not work, falling back to RPC...\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:25
-msgid ""
-" net lookup [host] HOSTNAME[#<type>]\n"
-"\tgives IP for a hostname\n"
-"\n"
-" net lookup ldap [domain]\n"
-"\tgives IP of domain's ldap server\n"
-"\n"
-" net lookup kdc [realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup pdc [domain|realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup dc [domain]\n"
-"\tgives IP of domains Domain Controllers\n"
-"\n"
-" net lookup master [domain|wg]\n"
-"\tgive IP of master browser\n"
-"\n"
-" net lookup name [name]\n"
-"\tLookup name's sid and type\n"
-"\n"
-" net lookup sid [sid]\n"
-"\tGive sid's name and type\n"
-"\n"
-" net lookup dsgetdcname [name] [flags] [sitename]\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:112
-msgid "net_lookup_ldap: talloc_init() failed!\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:325
-msgid "usage: net lookup name <name>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:331 ../utils/net_lookup.c:358
-#, c-format
-msgid "Could not lookup name %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:347
-msgid "usage: net lookup sid <sid>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:352
-#, c-format
-msgid "Could not convert %s to SID\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:378
-msgid "usage: net lookup dsgetdcname <name> <flags> <sitename>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:404
-#, c-format
-msgid "failed with: %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:437
-msgid ""
-"\n"
-"Usage: \n"
-msgstr ""
-
-#: ../utils/net_lua.c:60
-msgid "connect: Expected IP-Address"
-msgstr ""
-
-#: ../utils/net_lua.c:65
-msgid "connect: Expected port"
-msgstr ""
-
-#: ../utils/net_lua.c:84
-#, c-format
-msgid "connect failed: %s"
-msgstr ""
-
-#: ../utils/net_lua.c:132
-#, c-format
-msgid "socket domain %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:144
-#, c-format
-msgid "socket type %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:155
-#, c-format
-msgid "socket() failed: %s"
-msgstr ""
-
-#: ../utils/net_lua.c:278
-msgid "evt_reference_thread failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:287
-msgid "event_add_timed failed"
-msgstr ""
-
-#: ../utils/net_lua.c:300
-msgid "event_once called from non-base thread"
-msgstr ""
-
-#: ../utils/net_lua.c:323
-msgid "event_context_init failed"
-msgstr ""
-
-#: ../utils/net_lua.c:353
-msgid "lua_newstate failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:371
-msgid "luaL_dofile returned an error\n"
-msgstr ""
-
-#: ../utils/net_lua.c:376
-msgid "luaL_dostring returned an error\n"
-msgstr ""
diff --git a/source3/po/fr.msg b/source3/po/fr.msg
index 817187a12c..aac900223e 100644
--- a/source3/po/fr.msg
+++ b/source3/po/fr.msg
@@ -17,8 +17,7 @@
msgid ""
msgstr ""
"Project-Id-Version: i18n_swat \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-30 12:18+0200\n"
+"POT-Creation-Date: 2003-10-06 05:30+0900\n"
"PO-Revision-Date: 2000-02-08 14:45+0100\n"
"Last-Translator: François Le Lay <fanch@tuxfamily.org>\n"
"Language-Team: (Samba Team) <samba-technical@samba.org>\n"
@@ -26,4013 +25,568 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: \n"
-#: ../web/swat.c:153
+#: ../web/swat.c:117
#, c-format
msgid "ERROR: Can't open %s"
msgstr ""
-#: ../web/swat.c:241
+#: ../web/swat.c:200
msgid "Help"
msgstr "Aide"
-#: ../web/swat.c:247 ../web/swat.c:272 ../web/swat.c:293 ../web/swat.c:302 ../web/swat.c:311 ../web/swat.c:317 ../web/swat.c:329 ../web/swat.c:343
+#: ../web/swat.c:206 ../web/swat.c:220 ../web/swat.c:235 ../web/swat.c:243 ../web/swat.c:252 ../web/swat.c:261 ../web/swat.c:267 ../web/swat.c:273 ../web/swat.c:286
msgid "Set Default"
msgstr "Définir par défaut"
-#: ../web/swat.c:465
+#: ../web/swat.c:408
#, c-format
msgid "failed to open %s for writing"
msgstr ""
-#: ../web/swat.c:488
+#: ../web/swat.c:431
#, c-format
msgid "Can't reload %s"
msgstr ""
-#: ../web/swat.c:561
+#: ../web/swat.c:501
#, c-format
msgid "Logged in as <b>%s</b>"
msgstr "Connecté en tant que <b>%s</b>"
-#: ../web/swat.c:565
+#: ../web/swat.c:505
msgid "Home"
msgstr "Home"
-#: ../web/swat.c:567
+#: ../web/swat.c:507
msgid "Globals"
msgstr "Paramètres Généraux"
-#: ../web/swat.c:568
+#: ../web/swat.c:508
msgid "Shares"
msgstr "Partages"
-#: ../web/swat.c:569
+#: ../web/swat.c:509
msgid "Printers"
msgstr "Imprimantes"
-#: ../web/swat.c:570
+#: ../web/swat.c:510
msgid "Wizard"
msgstr ""
-#: ../web/swat.c:574
+#: ../web/swat.c:513
msgid "Status"
msgstr "Statut"
-#: ../web/swat.c:575
+#: ../web/swat.c:514
msgid "View Config"
msgstr "Voir Configuration"
-#: ../web/swat.c:577
+#: ../web/swat.c:516
msgid "Password Management"
msgstr "Gestion des mots de passe"
-#: ../web/swat.c:587
+#: ../web/swat.c:526
msgid "Current View Is"
msgstr "Configuration Actuelle"
-#: ../web/swat.c:588 ../web/swat.c:591
+#: ../web/swat.c:527 ../web/swat.c:530
msgid "Basic"
msgstr "Vue Basique"
-#: ../web/swat.c:589 ../web/swat.c:592
+#: ../web/swat.c:528 ../web/swat.c:531
msgid "Advanced"
msgstr "Vue Détaillée"
-#: ../web/swat.c:590
+#: ../web/swat.c:529
msgid "Change View To"
msgstr "Modifier le mot de passe"
-#: ../web/swat.c:619
+#: ../web/swat.c:554
msgid "Current Config"
msgstr "Configuration Actuelle"
-#: ../web/swat.c:623
+#: ../web/swat.c:558
msgid "Normal View"
msgstr "Vue Normale"
-#: ../web/swat.c:625
+#: ../web/swat.c:560
msgid "Full View"
msgstr "Vue Complète"
#. Here we first set and commit all the parameters that were selected
#. in the previous screen.
-#: ../web/swat.c:644
+#: ../web/swat.c:579
msgid "Wizard Parameter Edit Page"
msgstr ""
-#: ../web/swat.c:673
+#: ../web/swat.c:608
msgid "Note: smb.conf file has been read and rewritten"
msgstr ""
#. Here we go ...
-#: ../web/swat.c:779
+#: ../web/swat.c:716
msgid "Samba Configuration Wizard"
msgstr ""
-#: ../web/swat.c:783
+#: ../web/swat.c:720
msgid "The \"Rewrite smb.conf file\" button will clear the smb.conf file of all default values and of comments."
msgstr ""
-#: ../web/swat.c:784
+#: ../web/swat.c:721
msgid "The same will happen if you press the commit button."
msgstr ""
-#: ../web/swat.c:787
+#: ../web/swat.c:724
msgid "Rewrite smb.conf file"
msgstr ""
-#: ../web/swat.c:788
+#: ../web/swat.c:725
msgid "Commit"
msgstr "commentaire"
-#: ../web/swat.c:789
+#: ../web/swat.c:726
msgid "Edit Parameter Values"
msgstr "Paramètres Imprimantes"
-#: ../web/swat.c:795
+#: ../web/swat.c:732
msgid "Server Type"
msgstr ""
-#: ../web/swat.c:796
+#: ../web/swat.c:733
msgid "Stand Alone"
msgstr ""
-#: ../web/swat.c:797
+#: ../web/swat.c:734
msgid "Domain Member"
msgstr "master de domaine"
-#: ../web/swat.c:798
+#: ../web/swat.c:735
msgid "Domain Controller"
msgstr "master de domaine"
-#: ../web/swat.c:801
+#: ../web/swat.c:738
msgid "Unusual Type in smb.conf - Please Select New Mode"
msgstr ""
-#: ../web/swat.c:803
+#: ../web/swat.c:740
msgid "Configure WINS As"
msgstr ""
-#: ../web/swat.c:804
+#: ../web/swat.c:741
msgid "Not Used"
msgstr "ne pas descendre"
-#: ../web/swat.c:805
+#: ../web/swat.c:742
msgid "Server for client use"
msgstr ""
-#: ../web/swat.c:806
+#: ../web/swat.c:743
msgid "Client of another WINS server"
msgstr ""
-#: ../web/swat.c:808
+#: ../web/swat.c:745
msgid "Remote WINS Server"
msgstr ""
-#: ../web/swat.c:819
+#: ../web/swat.c:756
msgid "Error: WINS Server Mode and WINS Support both set in smb.conf"
msgstr ""
-#: ../web/swat.c:820
+#: ../web/swat.c:757
msgid "Please Select desired WINS mode above."
msgstr ""
-#: ../web/swat.c:822
+#: ../web/swat.c:759
msgid "Expose Home Directories"
msgstr ""
-#: ../web/swat.c:837
+#: ../web/swat.c:774
msgid "The above configuration options will set multiple parameters and will generally assist with rapid Samba deployment."
msgstr ""
-#: ../web/swat.c:850
+#: ../web/swat.c:787
msgid "Global Parameters"
msgstr "Variables Globales"
-#: ../web/swat.c:878 ../web/swat.c:986 ../web/swat.c:1344
+#: ../web/swat.c:815 ../web/swat.c:916 ../web/swat.c:1265
msgid "Commit Changes"
msgstr "Sauver les modifications"
-#: ../web/swat.c:882 ../web/swat.c:989 ../web/swat.c:1346
+#: ../web/swat.c:819 ../web/swat.c:919 ../web/swat.c:1267
msgid "Reset Values"
msgstr "Réinitialiser Valeurs"
-#: ../web/swat.c:908
+#: ../web/swat.c:844
msgid "Share Parameters"
msgstr "Paramètres de partage"
-#: ../web/swat.c:955
+#: ../web/swat.c:887
msgid "Choose Share"
msgstr "Choisir un partage"
-#: ../web/swat.c:971
+#: ../web/swat.c:901
msgid "Delete Share"
msgstr "Supprimer un partage"
-#: ../web/swat.c:978
+#: ../web/swat.c:908
msgid "Create Share"
msgstr "Créer un partage"
-#: ../web/swat.c:1014
+#: ../web/swat.c:944
msgid "password change in demo mode rejected"
msgstr "changement de mot de passe en mode démo rejeté"
-#: ../web/swat.c:1028
+#: ../web/swat.c:957
msgid "Can't setup password database vectors."
msgstr ""
-#: ../web/swat.c:1056
+#: ../web/swat.c:983
msgid " Must specify \"User Name\" "
msgstr " Le champ \"Nom d'utilisateur\" doit être spécifié"
-#: ../web/swat.c:1072
+#: ../web/swat.c:999
msgid " Must specify \"Old Password\" "
msgstr " Le champ \"Ancien mot de passe\" doît être spécifié"
-#: ../web/swat.c:1078
+#: ../web/swat.c:1005
msgid " Must specify \"Remote Machine\" "
msgstr " Le champ \"Machine Distante\" doît être spécifié"
-#: ../web/swat.c:1085
+#: ../web/swat.c:1012
msgid " Must specify \"New, and Re-typed Passwords\" "
msgstr "Les champs \"Nouveau mot de passe\" et \"Confirmation du nouveau mot de passe\" doivent être spécifiés \n"
-#: ../web/swat.c:1091
+#: ../web/swat.c:1018
msgid " Re-typed password didn't match new password "
msgstr " Echec de la confirmation du nouveau mot de passe"
-#: ../web/swat.c:1124
+#: ../web/swat.c:1048
#, c-format
msgid " The passwd for '%s' has been changed."
msgstr " Le mot de passe de '%s' a été modifié. "
-#: ../web/swat.c:1127
+#: ../web/swat.c:1051
#, c-format
msgid " The passwd for '%s' has NOT been changed."
msgstr " Le mot de passe de '%s' n'a PAS été modifié. \n"
-#: ../web/swat.c:1152
+#: ../web/swat.c:1076
msgid "Server Password Management"
msgstr "Gestion des mots de passe serveur"
#.
#. * Create all the dialog boxes for data collection
#.
-#: ../web/swat.c:1161 ../web/swat.c:1208
+#: ../web/swat.c:1085 ../web/swat.c:1132
msgid "User Name"
msgstr " Nom d'utilisateur : "
-#: ../web/swat.c:1164 ../web/swat.c:1210
+#: ../web/swat.c:1088 ../web/swat.c:1134
msgid "Old Password"
msgstr " Ancien mot de passe : "
-#: ../web/swat.c:1167 ../web/swat.c:1212
+#: ../web/swat.c:1091 ../web/swat.c:1136
msgid "New Password"
msgstr " Nouveau mot de passe : "
-#: ../web/swat.c:1169 ../web/swat.c:1214
+#: ../web/swat.c:1093 ../web/swat.c:1138
msgid "Re-type New Password"
msgstr " Confirmation du nouveau mot de passe : "
-#: ../web/swat.c:1177 ../web/swat.c:1225
+#: ../web/swat.c:1101 ../web/swat.c:1149
msgid "Change Password"
msgstr "Modifier le mot de passe"
-#: ../web/swat.c:1180
+#: ../web/swat.c:1104
msgid "Add New User"
msgstr "Nouvel Utilisateur"
-#: ../web/swat.c:1182
+#: ../web/swat.c:1106
msgid "Delete User"
msgstr "Supprimer Utilisateur"
-#: ../web/swat.c:1184
+#: ../web/swat.c:1108
msgid "Disable User"
msgstr "Désactiver Utilisateur"
-#: ../web/swat.c:1186
+#: ../web/swat.c:1110
msgid "Enable User"
msgstr "Activer Utilisateur"
-#: ../web/swat.c:1199
+#: ../web/swat.c:1123
msgid "Client/Server Password Management"
msgstr "Gestion des mots de passe Client/Serveur"
-#: ../web/swat.c:1216
+#: ../web/swat.c:1140
msgid "Remote Machine"
msgstr " Machine distante : "
-#: ../web/swat.c:1255
+#: ../web/swat.c:1179
msgid "Printer Parameters"
msgstr "Paramètres Imprimantes"
-#: ../web/swat.c:1257
+#: ../web/swat.c:1181
msgid "Important Note:"
msgstr "Note Importante:"
-#: ../web/swat.c:1258
+#: ../web/swat.c:1182
msgid "Printer names marked with [*] in the Choose Printer drop-down box "
msgstr "Les Noms d'imprimantes marqués du signe [*] dans le menu déroulant Choisir Imprimante"
-#: ../web/swat.c:1259
+#: ../web/swat.c:1183
msgid "are autoloaded printers from "
msgstr "désignent des imprimantes automatiquement chargées depuis le "
-#: ../web/swat.c:1260
+#: ../web/swat.c:1184
msgid "Printcap Name"
msgstr "Nom Printcap"
-#: ../web/swat.c:1261
+#: ../web/swat.c:1185
msgid "Attempting to delete these printers from SWAT will have no effect."
msgstr "Essayer de supprimer ces imprimantes depuis SWAT n'aura aucun effet."
-#: ../web/swat.c:1310
+#: ../web/swat.c:1231
msgid "Choose Printer"
msgstr "Choisir Imprimante"
-#: ../web/swat.c:1329
+#: ../web/swat.c:1250
msgid "Delete Printer"
msgstr "Supprimer Imprimante"
-#: ../web/swat.c:1336
+#: ../web/swat.c:1257
msgid "Create Printer"
msgstr "Créer Imprimante"
-#: ../web/statuspage.c:151
-msgid "RDWR "
+#: ../web/statuspage.c:123
+msgid "RDONLY "
msgstr ""
-#: ../web/statuspage.c:153
+#: ../web/statuspage.c:124
msgid "WRONLY "
msgstr ""
-#: ../web/statuspage.c:155
-msgid "RDONLY "
+#: ../web/statuspage.c:125
+msgid "RDWR "
msgstr ""
-#: ../web/statuspage.c:329
+#: ../web/statuspage.c:309
msgid "Server Status"
msgstr "Statut du Serveur"
-#: ../web/statuspage.c:334
+#: ../web/statuspage.c:314
msgid "Auto Refresh"
msgstr "Rafraîchissement Automatique"
-#: ../web/statuspage.c:335 ../web/statuspage.c:340
+#: ../web/statuspage.c:315 ../web/statuspage.c:320
msgid "Refresh Interval: "
msgstr "Intervalle de rafraîchissement: "
-#: ../web/statuspage.c:339
+#: ../web/statuspage.c:319
msgid "Stop Refreshing"
msgstr "Stopper Rafraîchissement"
-#: ../web/statuspage.c:348
+#: ../web/statuspage.c:334
msgid "version:"
msgstr "version:"
-#: ../web/statuspage.c:351
+#: ../web/statuspage.c:337
msgid "smbd:"
msgstr ""
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "running"
msgstr "actif"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "not running"
msgstr "non actif"
-#: ../web/statuspage.c:355
+#: ../web/statuspage.c:341
msgid "Stop smbd"
msgstr "Stopper smbd"
-#: ../web/statuspage.c:357
+#: ../web/statuspage.c:343
msgid "Start smbd"
msgstr "Lancer smbd"
-#: ../web/statuspage.c:359
+#: ../web/statuspage.c:345
msgid "Restart smbd"
msgstr "Relancer smbd"
-#: ../web/statuspage.c:364
+#: ../web/statuspage.c:350
msgid "nmbd:"
msgstr ""
-#: ../web/statuspage.c:368
+#: ../web/statuspage.c:354
msgid "Stop nmbd"
msgstr "Stopper nmbd"
-#: ../web/statuspage.c:370
+#: ../web/statuspage.c:356
msgid "Start nmbd"
msgstr "Lancer nmbd"
-#: ../web/statuspage.c:372
+#: ../web/statuspage.c:358
msgid "Restart nmbd"
msgstr "Relancer nmbd"
-#: ../web/statuspage.c:378
+#: ../web/statuspage.c:364
msgid "winbindd:"
msgstr ""
-#: ../web/statuspage.c:382
+#: ../web/statuspage.c:368
msgid "Stop winbindd"
msgstr "Stopper nmbd"
-#: ../web/statuspage.c:384
+#: ../web/statuspage.c:370
msgid "Start winbindd"
msgstr "Lancer nmbd"
-#: ../web/statuspage.c:386
+#: ../web/statuspage.c:372
msgid "Restart winbindd"
msgstr "Relancer nmbd"
#. stop, restart all
-#: ../web/statuspage.c:395
+#: ../web/statuspage.c:381
msgid "Stop All"
msgstr ""
-#: ../web/statuspage.c:396
+#: ../web/statuspage.c:382
msgid "Restart All"
msgstr "Relancer nmbd"
#. start all
-#: ../web/statuspage.c:400
+#: ../web/statuspage.c:386
msgid "Start All"
msgstr "Lancer nmbd"
-#: ../web/statuspage.c:407
+#: ../web/statuspage.c:393
msgid "Active Connections"
msgstr "Connections Actives"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "PID"
msgstr ""
-#: ../web/statuspage.c:409 ../web/statuspage.c:422
+#: ../web/statuspage.c:395 ../web/statuspage.c:408
msgid "Client"
msgstr ""
-#: ../web/statuspage.c:409
+#: ../web/statuspage.c:395
msgid "IP address"
msgstr "adresse IP"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "Date"
msgstr "Date"
-#: ../web/statuspage.c:411
+#: ../web/statuspage.c:397
msgid "Kill"
msgstr "Terminer"
-#: ../web/statuspage.c:419
+#: ../web/statuspage.c:405
msgid "Active Shares"
msgstr "Partages Actifs"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Share"
msgstr "Partager"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "User"
msgstr "Utilisateur"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Group"
msgstr "Groupe"
-#: ../web/statuspage.c:428
+#: ../web/statuspage.c:414
msgid "Open Files"
msgstr "Fichiers Ouverts"
-#: ../web/statuspage.c:431
-msgid "UID"
-msgstr ""
-
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Sharing"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "R/W"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Oplock"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "File"
msgstr "Fichier"
-#: ../web/statuspage.c:438
+#: ../web/statuspage.c:425
msgid "Show Client in col 1"
msgstr ""
-#: ../web/statuspage.c:439
+#: ../web/statuspage.c:426
msgid "Show PID in col 1"
msgstr ""
-#: ../param/loadparm.c:907
+#: ../param/loadparm.c:755
msgid "Base Options"
msgstr "Options de base"
-#: ../param/loadparm.c:1047
+#: ../param/loadparm.c:775
msgid "Security Options"
msgstr "Options de Sécurité"
-#: ../param/loadparm.c:1800
+#: ../param/loadparm.c:859
msgid "Logging Options"
msgstr "Options de Logging"
-#: ../param/loadparm.c:1929
+#: ../param/loadparm.c:874
msgid "Protocol Options"
msgstr "Options de Protocole"
-#: ../param/loadparm.c:2301
+#: ../param/loadparm.c:911
msgid "Tuning Options"
msgstr "Options de réglage"
-#: ../param/loadparm.c:2538
+#: ../param/loadparm.c:940
msgid "Printing Options"
msgstr "Options d'impression"
-#: ../param/loadparm.c:2858
+#: ../param/loadparm.c:970
msgid "Filename Handling"
msgstr "Gestion des noms de fichier"
-#: ../param/loadparm.c:3088
+#: ../param/loadparm.c:996
msgid "Domain Options"
msgstr "Options de Domaine"
-#: ../param/loadparm.c:3100
+#: ../param/loadparm.c:1000
msgid "Logon Options"
msgstr "Options de Logon"
-#: ../param/loadparm.c:3273
+#: ../param/loadparm.c:1019
msgid "Browse Options"
msgstr "Options de Navigation"
-#: ../param/loadparm.c:3384
+#: ../param/loadparm.c:1033
msgid "WINS Options"
msgstr "Options WINS"
-#: ../param/loadparm.c:3432
+#: ../param/loadparm.c:1043
msgid "Locking Options"
msgstr "Options de Verrouillage"
-#: ../param/loadparm.c:3552
+#: ../param/loadparm.c:1061
msgid "Ldap Options"
msgstr "Options Ldap"
-#: ../param/loadparm.c:3708
-#, fuzzy
-msgid "EventLog Options"
-msgstr "Options de Logon"
-
-#: ../param/loadparm.c:3720
+#: ../param/loadparm.c:1078
msgid "Miscellaneous Options"
msgstr "Options Diverses"
-#: ../param/loadparm.c:4301
+#: ../param/loadparm.c:1138
msgid "VFS module options"
msgstr "Options VFS"
-#: ../param/loadparm.c:4323
-#, fuzzy
-msgid "MSDFS options"
-msgstr "Options VFS"
-
-#: ../param/loadparm.c:4353
+#: ../param/loadparm.c:1148
msgid "Winbind options"
msgstr "Options Winbind"
-
-#: ../utils/net.c:103
-msgid "Enter machine password: "
-msgstr ""
-
-#: ../utils/net.c:107
-msgid "Unable to write the machine account password in the secrets database"
-msgstr ""
-
-#: ../utils/net.c:111
-msgid "Modified trust account password in secrets database\n"
-msgstr ""
-
-#: ../utils/net.c:115
-msgid ""
-"Machine account password change requires the -f flag.\n"
-"Do NOT use this function unless you know what it does!\n"
-"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
-#, 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
-#, c-format
-msgid "SID for domain %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:175
-msgid "usage: net setlocalsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:195
-msgid "usage: net setdomainsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:213
-msgid "usage: net getdomainsid\n"
-msgstr ""
-
-#: ../utils/net.c:238
-msgid "Could not fetch local SID\n"
-msgstr ""
-
-#: ../utils/net.c:242
-#, c-format
-msgid "SID for local machine %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:246
-msgid "Could not fetch domain SID\n"
-msgstr ""
-
-#: ../utils/net.c:263
-#, c-format
-msgid "get_maxrid: Could not search %s\n"
-msgstr ""
-
-#: ../utils/net.c:297
-msgid "usage: net maxrid\n"
-msgstr ""
-
-#: ../utils/net.c:302
-msgid "can't get current maximum rid\n"
-msgstr ""
-
-#: ../utils/net.c:306
-#, c-format
-msgid "Currently used maximum rid: %d\n"
-msgstr ""
-
-#: ../utils/net.c:317
-msgid "Run functions using RPC transport"
-msgstr ""
-
-#: ../utils/net.c:318
-msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands."
-msgstr ""
-
-#: ../utils/net.c:325
-msgid "Run functions using RAP transport"
-msgstr ""
-
-#: ../utils/net.c:326
-msgid " Use 'net help rap' to get more extensive information about 'net rap' commands."
-msgstr ""
-
-#: ../utils/net.c:333
-msgid "Run functions using ADS transport"
-msgstr ""
-
-#: ../utils/net.c:334
-msgid " Use 'net help ads' to get more extensive information about 'net ads' commands."
-msgstr ""
-
-#: ../utils/net.c:343
-msgid "Functions on remote opened files"
-msgstr ""
-
-#: ../utils/net.c:344
-msgid " Use 'net help file' to get more information about 'net file' commands."
-msgstr ""
-
-#: ../utils/net.c:351
-msgid "Functions on shares"
-msgstr ""
-
-#: ../utils/net.c:352
-msgid " Use 'net help share' to get more information about 'net share' commands."
-msgstr ""
-
-#: ../utils/net.c:359
-msgid "Manage sessions"
-msgstr ""
-
-#: ../utils/net.c:360
-msgid " Use 'net help session' to get more information about 'net session' commands."
-msgstr ""
-
-#: ../utils/net.c:367
-msgid "List servers in workgroup"
-msgstr ""
-
-#: ../utils/net.c:368
-msgid " Use 'net help server' to get more information about 'net server' commands."
-msgstr ""
-
-#: ../utils/net.c:375
-msgid "List domains/workgroups on network"
-msgstr ""
-
-#: ../utils/net.c:376
-msgid " Use 'net help domain' to get more information about 'net domain' commands."
-msgstr ""
-
-#: ../utils/net.c:383
-msgid "Modify printer queue"
-msgstr ""
-
-#: ../utils/net.c:384
-msgid " Use 'net help printq' to get more information about 'net printq' commands."
-msgstr ""
-
-#: ../utils/net.c:391
-#, fuzzy
-msgid "Manage users"
-msgstr "Activer Utilisateur"
-
-#: ../utils/net.c:392
-msgid " Use 'net help user' to get more information about 'net user' commands."
-msgstr ""
-
-#: ../utils/net.c:399
-msgid "Manage groups"
-msgstr ""
-
-#: ../utils/net.c:400
-msgid " Use 'net help group' to get more information about 'net group' commands."
-msgstr ""
-
-#: ../utils/net.c:407
-msgid "Manage group mappings"
-msgstr ""
-
-#: ../utils/net.c:408
-msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands."
-msgstr ""
-
-#: ../utils/net.c:415
-msgid "Functions on the SAM database"
-msgstr ""
-
-#: ../utils/net.c:416
-msgid " Use 'net help sam' to get more information about 'net sam' commands."
-msgstr ""
-
-#: ../utils/net.c:423
-msgid "Validate username and password"
-msgstr ""
-
-#: ../utils/net.c:424
-msgid " Use 'net help validate' to get more information about 'net validate' commands."
-msgstr ""
-
-#: ../utils/net.c:431
-msgid "Modify group memberships"
-msgstr ""
-
-#: ../utils/net.c:432
-msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands."
-msgstr ""
-
-#: ../utils/net.c:438
-msgid "Execute remote command on a remote OS/2 server"
-msgstr ""
-
-#: ../utils/net.c:439
-msgid " Use 'net help admin' to get more information about 'net admin' commands."
-msgstr ""
-
-#: ../utils/net.c:445
-msgid "List/modify running services"
-msgstr ""
-
-#: ../utils/net.c:446
-msgid " Use 'net help service' to get more information about 'net service' commands."
-msgstr ""
-
-#: ../utils/net.c:453
-msgid "Change user password on target server"
-msgstr ""
-
-#: ../utils/net.c:454
-msgid " Use 'net help password' to get more information about 'net password' commands."
-msgstr ""
-
-#: ../utils/net.c:460
-#, fuzzy
-msgid "Change the trust password"
-msgstr "Modifier le mot de passe"
-
-#: ../utils/net.c:461
-msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'."
-msgstr ""
-
-#: ../utils/net.c:467
-#, fuzzy
-msgid "Change the secret password"
-msgstr "Modifier le mot de passe"
-
-#: ../utils/net.c:468
-msgid ""
-" net [options] changesecretpw\n"
-" Change the ADS domain member machine account password in secrets.tdb.\n"
-" Do NOT use this function unless you know what it does.\n"
-" Requires the -f flag to work."
-msgstr ""
-
-#: ../utils/net.c:477
-msgid "Show/set time"
-msgstr ""
-
-#: ../utils/net.c:478
-msgid " Use 'net help time' to get more information about 'net time' commands."
-msgstr ""
-
-#: ../utils/net.c:484
-msgid "Look up host names/IP addresses"
-msgstr ""
-
-#: ../utils/net.c:485
-msgid " Use 'net help lookup' to get more information about 'net lookup' commands."
-msgstr ""
-
-#: ../utils/net.c:491
-msgid "Join a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:492
-msgid " Use 'net help join' to get more information about 'net join'."
-msgstr ""
-
-#: ../utils/net.c:498
-msgid "Join/unjoin (remote) machines to/from a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:499
-msgid " Use 'net help dom' to get more information about 'net dom' commands."
-msgstr ""
-
-#: ../utils/net.c:505
-msgid "Operate on the cache tdb file"
-msgstr ""
-
-#: ../utils/net.c:506
-msgid " Use 'net help cache' to get more information about 'net cache' commands."
-msgstr ""
-
-#: ../utils/net.c:512
-msgid "Get the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:513
-msgid " net getlocalsid"
-msgstr ""
-
-#: ../utils/net.c:518
-msgid "Set the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:519
-msgid " net setlocalsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:524
-msgid "Set domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:525
-msgid " net setdomainsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:530
-msgid "Get domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:531
-msgid " net getdomainsid"
-msgstr ""
-
-#: ../utils/net.c:536
-msgid "Display the maximul RID currently used"
-msgstr ""
-
-#: ../utils/net.c:537
-msgid " net maxrid"
-msgstr ""
-
-#: ../utils/net.c:542
-#, fuzzy
-msgid "IDmap functions"
-msgstr "Options de Domaine"
-
-#: ../utils/net.c:543
-msgid " Use 'net help idmap to get more information about 'net idmap' commands."
-msgstr ""
-
-#: ../utils/net.c:549
-#, fuzzy
-msgid "Display server status"
-msgstr "Statut du Serveur"
-
-#: ../utils/net.c:550
-msgid " Use 'net help status' to get more information about 'net status' commands."
-msgstr ""
-
-#: ../utils/net.c:556
-msgid "Manage user-modifiable shares"
-msgstr ""
-
-#: ../utils/net.c:557
-msgid " Use 'net help usershare to get more information about 'net usershare' commands."
-msgstr ""
-
-#: ../utils/net.c:563
-msgid "Display list of all users with SID"
-msgstr ""
-
-#: ../utils/net.c:564
-msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'."
-msgstr ""
-
-#: ../utils/net.c:570
-msgid "Manage Samba registry based configuration"
-msgstr ""
-
-#: ../utils/net.c:571
-msgid " Use 'net help conf' to get more information about 'net conf' commands."
-msgstr ""
-
-#: ../utils/net.c:577
-msgid "Manage the Samba registry"
-msgstr ""
-
-#: ../utils/net.c:578
-msgid " Use 'net help registry' to get more information about 'net registry' commands."
-msgstr ""
-
-#: ../utils/net.c:584
-msgid "Open a lua interpreter"
-msgstr ""
-
-#: ../utils/net.c:585
-msgid " Use 'net help lua' to get more information about 'net lua' commands."
-msgstr ""
-
-#: ../utils/net.c:591
-msgid "Process Win32 *.evt eventlog files"
-msgstr ""
-
-#: ../utils/net.c:592
-msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands."
-msgstr ""
-
-#: ../utils/net.c:600
-msgid "Manage AFS tokens"
-msgstr ""
-
-#: ../utils/net.c:601
-msgid " Use 'net help afs' to get more information about 'net afs' commands."
-msgstr ""
-
-#: ../utils/net.c:609
-msgid "Print usage information"
-msgstr ""
-
-#: ../utils/net.c:610
-msgid " Use 'net help help' to list usage information for 'net' commands."
-msgstr ""
-
-#: ../utils/net.c:639
-msgid "Encrypt SMB transport (UNIX extended servers only)"
-msgstr ""
-
-#: ../utils/net.c:703
-msgid ""
-"\n"
-"Invalid ip address specified\n"
-msgstr ""
-
-#: ../utils/net.c:718
-#, c-format
-msgid ""
-"\n"
-"Invalid option %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:52 ../utils/net_ads.c:392
-msgid "CLDAP query failed!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:56
-#, fuzzy, c-format
-msgid ""
-"Information for Domain Controller: %s\n"
-"\n"
-msgstr "master de domaine"
-
-#: ../utils/net_ads.c:59
-msgid "Response Type: "
-msgstr ""
-
-#: ../utils/net_ads.c:72
-#, c-format
-msgid "GUID: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:74
-#, c-format
-msgid ""
-"Flags:\n"
-"\tIs a PDC: %s\n"
-"\tIs a GC of the forest: %s\n"
-"\tIs an LDAP server: %s\n"
-"\tSupports DS: %s\n"
-"\tIs running a KDC: %s\n"
-"\tIs running time services: %s\n"
-"\tIs the closest DC: %s\n"
-"\tIs writable: %s\n"
-"\tHas a hardware clock: %s\n"
-"\tIs a non-domain NC serviced by LDAP server: %s\n"
-"\tIs NT6 DC that has some secrets: %s\n"
-"\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
-msgid "yes"
-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
-msgid "no"
-msgstr ""
-
-#: ../utils/net_ads.c:101
-#, c-format
-msgid "Forest:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:102
-#, c-format
-msgid "Domain:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:103
-#, fuzzy, c-format
-msgid "Domain Controller:\t%s\n"
-msgstr "master de domaine"
-
-#: ../utils/net_ads.c:105
-#, c-format
-msgid "Pre-Win2k Domain:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:106
-#, c-format
-msgid "Pre-Win2k Hostname:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:108
-#, fuzzy, c-format
-msgid "User name:\t%s\n"
-msgstr " Nom d'utilisateur : "
-
-#: ../utils/net_ads.c:110
-#, fuzzy, c-format
-msgid "Server Site Name :\t\t%s\n"
-msgstr "Statut du Serveur"
-
-#: ../utils/net_ads.c:111
-#, c-format
-msgid "Client Site Name :\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:113
-#, fuzzy, c-format
-msgid "NT Version: %d\n"
-msgstr "version:"
-
-#: ../utils/net_ads.c:114
-#, c-format
-msgid "LMNT Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:115
-#, c-format
-msgid "LM20 Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:130
-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
-msgid "Didn't find the cldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:160
-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
-msgid "Didn't find the ldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:182
-msgid "Failed to get server's current time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:187
-#, c-format
-msgid "LDAP server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:188
-#, c-format
-msgid "LDAP server name: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:189
-#, c-format
-msgid "Realm: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:190
-#, c-format
-msgid "Bind Path: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:191
-#, c-format
-msgid "LDAP port: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:192
-#, fuzzy, c-format
-msgid "Server time: %s\n"
-msgstr "Statut du Serveur"
-
-#: ../utils/net_ads.c:195
-#, c-format
-msgid "KDC server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:196
-#, c-format
-msgid "Server time offset: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:374
-msgid ""
-"Usage:\n"
-"net ads workgroup\n"
-" Print the workgroup name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:397
-#, c-format
-msgid "Workgroup: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:458
-#, c-format
-msgid "ads_user_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:463
-#, c-format
-msgid "ads_user_add: User %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:477
-#, c-format
-msgid "Could not add user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:484 ../utils/net_ads.c:497
-#, fuzzy, c-format
-msgid "User %s added\n"
-msgstr " Nom d'utilisateur : "
-
-#. password didn't set, delete account
-#: ../utils/net_ads.c:503
-#, c-format
-msgid "Could not add user %s. Error setting password %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:551
-#, c-format
-msgid "ads_user_info: failed to escape user %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:569
-#, c-format
-msgid "ads_search: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:575
-msgid "ads_pull_uint32 failed\n"
-msgstr ""
-
-#: ../utils/net_ads.c:582
-#, c-format
-msgid "ads_domain_sid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:642
-#, c-format
-msgid "User %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:652
-#, c-format
-msgid "User %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:656
-#, c-format
-msgid "Error deleting user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:669
-#, fuzzy
-msgid "Add an AD user"
-msgstr "Nouvel Utilisateur"
-
-#: ../utils/net_ads.c:670
-msgid ""
-"net ads user add\n"
-" Add an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:677
-msgid "Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:678
-msgid ""
-"net ads user info\n"
-" Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:685
-#, fuzzy
-msgid "Delete an AD user"
-msgstr "Supprimer Utilisateur"
-
-#: ../utils/net_ads.c:686
-msgid ""
-"net ads user delete\n"
-" Delete an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:699
-msgid ""
-"Usage:\n"
-"net ads user\n"
-" List AD users\n"
-msgstr ""
-
-#: ../utils/net_ads.c:711
-msgid ""
-"\n"
-"User name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:751
-#, c-format
-msgid "ads_group_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:756
-#, c-format
-msgid "ads_group_add: Group %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:769
-#, c-format
-msgid "Group %s added\n"
-msgstr ""
-
-#: ../utils/net_ads.c:772
-#, c-format
-msgid "Could not add group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:801
-#, c-format
-msgid "Group %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:811
-#, c-format
-msgid "Group %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:815
-#, c-format
-msgid "Error deleting group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:828
-msgid "Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:829
-msgid ""
-"net ads group add\n"
-" Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:836
-#, fuzzy
-msgid "Delete an AD group"
-msgstr "Supprimer un partage"
-
-#: ../utils/net_ads.c:837
-msgid ""
-"net ads group delete\n"
-" Delete an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:850
-msgid ""
-"Usage:\n"
-"net ads group\n"
-" List AD groups\n"
-msgstr ""
-
-#: ../utils/net_ads.c:862
-msgid ""
-"\n"
-"Group name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:884
-msgid ""
-"Usage:\n"
-"net ads status\n"
-" Display machine account details\n"
-msgstr ""
-
-#: ../utils/net_ads.c:896
-#, c-format
-msgid "ads_find_machine_acct: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:902
-#, c-format
-msgid "No machine account for '%s' found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:926
-msgid ""
-"Usage:\n"
-"net ads leave\n"
-" Leave an AD domain\n"
-msgstr ""
-
-#: ../utils/net_ads.c:933
-msgid "No realm set, are we joined ?\n"
-msgstr ""
-
-#: ../utils/net_ads.c:938 ../utils/net_ads.c:1260
-msgid "Could not initialise talloc context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:948
-msgid "Could not initialise unjoin context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:968
-#, c-format
-msgid "Failed to leave domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:975
-#, c-format
-msgid "Deleted account for '%s' in realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:982
-#, c-format
-msgid "Disabled account for '%s' in realm '%s'\n"
-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
-#, c-format
-msgid "Machine '%s' Left domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1035
-msgid ""
-"Usage:\n"
-"net ads testjoin\n"
-" Test if the existing join is ok\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1044
-#, c-format
-msgid "Join to domain is not valid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1049
-#, c-format
-msgid "Join is OK\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1060
-msgid "Host is not configured as a member server.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1065
-#, 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
-#, c-format
-msgid "realm must be set in in %s for ADS join to succeed.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1105
-#, c-format
-msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1212
-msgid ""
-"net ads join [options]\n"
-"Valid options:\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1214
-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
-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"
-" E.g. \"createcomputer=Computers/Servers/Unix\"\n"
-" NB: A backslash '\\' is used as escape at multiple levels and may\n"
-" need to be doubled or even quadrupled. It is not used as a separator.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1221
-msgid " osName=string Set the operatingSystem attribute during the join.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1222
-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"
-" Also, the operatingSystemService attribute is also set when along with\n"
-" the two other attributes.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1254
-msgid "Invalid configuration. Exiting....\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1283
-msgid "Please supply a valid OU path.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1290
-msgid "Please supply a operating system name.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1297
-msgid "Please supply a valid operating system version.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1308
-msgid "Please supply a valid domain name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1339
-#, c-format
-msgid ""
-"The workgroup in %s does not match the short\n"
-"domain name obtained from the server.\n"
-"Using the name [%s] from the server.\n"
-"You should set \"workgroup = %s\" in %s.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1347
-#, c-format
-msgid "Using short domain name -- %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1350
-#, c-format
-msgid "Joined '%s' to realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1353
-#, c-format
-msgid "Joined '%s' to domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1377 ../utils/net_ads.c:1433
-msgid "DNS update failed!\n"
-msgstr ""
-
-#. issue an overall failure message at the end.
-#: ../utils/net_ads.c:1391 ../utils/net_dom.c:198
-#, c-format
-msgid "Failed to join domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1414
-msgid ""
-"Usage:\n"
-"net ads dns register\n"
-" Register hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1421
-msgid "Could not initialise talloc context\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1439
-msgid "Successfully registered hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1447
-msgid "DNS update support not enabled at compile time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1466
-msgid ""
-"Usage:\n"
-"net ads dns gethostbyname <server> <name>\n"
-" Look up hostname from the AD\n"
-" server\tName server to use\n"
-" name\tName to look up\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1476
-#, c-format
-msgid "do_gethostbyname returned %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1488
-msgid "Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1489
-msgid ""
-"net ads dns register\n"
-" Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1496
-msgid "Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1497
-msgid ""
-"net ads dns gethostbyname\n"
-" Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1512
-msgid ""
-"\n"
-"net ads printer search <printer>\n"
-"\tsearch for a printer in the directory\n"
-"\n"
-"net ads printer info <printer> <server>\n"
-"\tlookup info in directory for printer on server\n"
-"\t(note: printer defaults to \"*\", server defaults to local)\n"
-"\n"
-"net ads printer publish <printername>\n"
-"\tpublish printer in directory\n"
-"\t(note: printer name is required)\n"
-"\n"
-"net ads printer remove <printername>\n"
-"\tremove printer from directory\n"
-"\t(note: printer name is required)\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1536
-msgid ""
-"Usage:\n"
-"net ads printer search\n"
-" List printers in the AD\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1549
-#, c-format
-msgid "ads_find_printer: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1556
-msgid "No results found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1576
-msgid ""
-"Usage:\n"
-"net ads printer info [printername [servername]]\n"
-" Display printer info from AD\n"
-" printername\tPrinter name or wildcard\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1603
-#, c-format
-msgid "Server '%s' not found: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1611 ../utils/net_ads.c:1794
-#, c-format
-msgid "Printer '%s' not found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1640
-msgid ""
-"Usage:\n"
-"net ads printer publish <printername> [servername]\n"
-" Publish printer in AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1675
-#, c-format
-msgid "Unable to open a connnection to %s to obtain data for %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1688
-#, c-format
-msgid "Could not find machine account for server %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1704 ../utils/net_ads.c:1713
-msgid "Internal error, out of memory!"
-msgstr ""
-
-#: ../utils/net_ads.c:1724
-#, c-format
-msgid "Unable to open a connnection to the spoolss pipe on %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1766
-msgid ""
-"Usage:\n"
-"net ads printer remove <printername> [servername]\n"
-" Remove a printer from the AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1787
-#, c-format
-msgid "ads_find_printer_on_server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1806
-#, c-format
-msgid "ads_del_dn: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1822
-msgid "Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1823
-msgid ""
-"net ads printer search\n"
-" Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1830
-msgid "Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1831
-msgid ""
-"net ads printer info\n"
-" Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1838
-msgid "Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1839
-msgid ""
-"net ads printer publish\n"
-" Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1846
-#, fuzzy
-msgid "Delete a printer"
-msgstr "Supprimer Imprimante"
-
-#: ../utils/net_ads.c:1847
-msgid ""
-"net ads printer remove\n"
-" Delete a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1869
-msgid ""
-"Usage:\n"
-"net ads password <username>\n"
-" Change password for user\n"
-" username\tName of user to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1877
-msgid "You must supply an administrator username/password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1883
-msgid "ERROR: You must say which username to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1915
-msgid "Didn't find the kerberos server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1923
-#, c-format
-msgid "Enter new password for %s:"
-msgstr ""
-
-#: ../utils/net_ads.c:1933 ../utils/net_ads.c:1982
-#, fuzzy, c-format
-msgid "Password change failed: %s\n"
-msgstr "Gestion des mots de passe"
-
-#: ../utils/net_ads.c:1938
-#, fuzzy, c-format
-msgid "Password change for %s completed.\n"
-msgstr "changement de mot de passe en mode démo rejeté"
-
-#: ../utils/net_ads.c:1952
-msgid ""
-"Usage:\n"
-"net ads changetrustpw\n"
-" Change the machine account's trust password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1977
-#, c-format
-msgid "Changing password for principal: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1988
-#, c-format
-msgid "Password change for principal %s succeeded.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1991
-msgid "Attempting to update system keytab with new password.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1993
-msgid "Failed to update system keytab.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2009
-msgid ""
-"\n"
-"net ads search <expression> <attributes...>\n"
-"\n"
-"Perform a raw LDAP search on a ADS server and dump the results.\n"
-"The expression is a standard LDAP search expression, and the\n"
-"attributes are a list of LDAP fields to show in the results.\n"
-"\n"
-"Example: net ads search '(objectCategory=group)' sAMAccountName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2046 ../utils/net_ads.c:2107 ../utils/net_ads.c:2171 ../utils/net_ads_gpo.c:250
-#, c-format
-msgid "search failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2051 ../utils/net_ads.c:2176 ../utils/net_ads_gpo.c:256
-#, c-format
-msgid ""
-"Got %d replies\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2069
-msgid ""
-"\n"
-"net ads dn <dn> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The DN standard LDAP DN, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' sAMAccountName\n"
-"\n"
-"Note: the DN must be provided properly escaped. See RFC 4514 for details\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2129
-msgid ""
-"\n"
-"net ads sid <sid> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The SID is in string format, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads sid 'S-1-5-32' distinguishedName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2164
-msgid "could not convert sid\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2193
-msgid ""
-"Usage:\n"
-"net ads keytab flush\n"
-" Delete the whole keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2214
-msgid ""
-"Usage:\n"
-"net ads keytab add <principal> [principal ...]\n"
-" Add principals to local keytab\n"
-" principal\tKerberos principal to add to keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2222
-msgid "Processing principals to add...\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2239
-msgid ""
-"Usage:\n"
-"net ads keytab create\n"
-" Create new default keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2258
-msgid ""
-"Usage:\n"
-"net ads keytab list [keytab]\n"
-" List a local keytab\n"
-" keytab\tKeytab to list\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2280
-msgid "Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2281
-msgid ""
-"net ads keytab add\n"
-" Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2288
-#, fuzzy
-msgid "Create a fresh keytab"
-msgstr "Créer un partage"
-
-#: ../utils/net_ads.c:2289
-msgid ""
-"net ads keytab create\n"
-" Create a fresh keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2296
-msgid "Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2297
-msgid ""
-"net ads keytab flush\n"
-" Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2304
-msgid "List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2305
-msgid ""
-"net ads keytab list\n"
-" List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2312
-msgid ""
-"\n"
-"Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2324
-msgid ""
-"Usage:\n"
-"net ads kerberos renew\n"
-" Renew TGT from existing credential cache\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2332
-#, c-format
-msgid "failed to renew kerberos ticket: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2347
-msgid ""
-"Usage:\n"
-"net ads kerberos pac\n"
-" Dump the Kerberos PAC\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2372
-#, c-format
-msgid "failed to query kerberos PAC: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2381
-#, c-format
-msgid "The Pac: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2397
-msgid ""
-"Usage:\n"
-"net ads kerberos kinit\n"
-" Get Ticket Granting Ticket (TGT) for the user\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2421
-#, c-format
-msgid "failed to kinit password: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2435
-msgid "Retrieve Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2436
-msgid ""
-"net ads kerberos kinit\n"
-" Receive Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2443
-msgid "Renew Ticket Granting Ticket from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2444
-msgid ""
-"net ads kerberos renew\n"
-" Renew Ticket Granting Ticket (TGT) from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2452
-msgid "Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2453
-msgid ""
-"net ads kerberos pac\n"
-" Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2469
-msgid "Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2470
-msgid ""
-"net ads info\n"
-" Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2477
-msgid "Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2478
-msgid ""
-"net ads join\n"
-" Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2485
-msgid "Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2486
-msgid ""
-"net ads testjoin\n"
-" Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2493
-msgid "Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2494
-msgid ""
-"net ads leave\n"
-" Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2501
-msgid "Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2502
-msgid ""
-"net ads status\n"
-" Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2509
-msgid "List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2510
-msgid ""
-"net ads user\n"
-" List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2517
-msgid "List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2518
-msgid ""
-"net ads group\n"
-" List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2525
-msgid "Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2526
-msgid ""
-"net ads dns\n"
-" Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2533
-#, fuzzy
-msgid "Change user passwords"
-msgstr "Modifier le mot de passe"
-
-#: ../utils/net_ads.c:2534
-msgid ""
-"net ads password\n"
-" Change user passwords"
-msgstr ""
-
-#: ../utils/net_ads.c:2541
-#, fuzzy
-msgid "Change trust account password"
-msgstr "Modifier le mot de passe"
-
-#: ../utils/net_ads.c:2542
-msgid ""
-"net ads changetrustpw\n"
-" Change trust account password"
-msgstr ""
-
-#: ../utils/net_ads.c:2549
-msgid "List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2550
-msgid ""
-"net ads printer\n"
-" List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2557
-msgid "Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2558
-msgid ""
-"net ads search\n"
-" Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2565
-msgid "Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2566
-msgid ""
-"net ads dn\n"
-" Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2573
-msgid "Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2574
-msgid ""
-"net ads sid\n"
-" Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2581
-msgid "Display workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2582
-msgid ""
-"net ads workgroup\n"
-" Display the workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2589
-msgid "Perfom CLDAP query on DC"
-msgstr ""
-
-#: ../utils/net_ads.c:2590
-msgid ""
-"net ads lookup\n"
-" Find the ADS DC using CLDAP lookups"
-msgstr ""
-
-#: ../utils/net_ads.c:2597
-msgid "Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2598
-msgid ""
-"net ads keytab\n"
-" Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2605
-msgid "Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2606
-msgid ""
-"net ads gpo\n"
-" Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2613
-msgid "Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2614
-msgid ""
-"net ads kerberos\n"
-" Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2627
-msgid "ADS support not compiled in\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:40
-msgid ""
-"Usage:\n"
-"net ads gpo refresh <username|machinename>\n"
-" Lists all GPOs assigned to an account and downloads them\n"
-" username\tUser to refresh GPOs for\n"
-" machinename\tMachine to refresh GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:56
-#, c-format
-msgid "failed to connect AD server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:62
-#, c-format
-msgid "failed to find samaccount for %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:70
-#, c-format
-msgid ""
-"\n"
-"%s: '%s' has dn: '%s'\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "machine"
-msgstr " Machine distante : "
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "user"
-msgstr "Utilisateur"
-
-#: ../utils/net_ads_gpo.c:74
-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
-#, 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
-msgid "finished\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:87
-msgid "* fetching GPO List "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:96
-msgid "* Refreshing Group Policy Data "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:107
-msgid "* storing GPO list to registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:122
-msgid "* dumping GPO list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:151
-msgid "* re-reading GPO list from registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:167
-msgid "* dumping GPO list from registry\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:226
-msgid ""
-"Usage:\n"
-"net ads gpo listall\n"
-" List all GPOs on the DC\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:270
-#, fuzzy, c-format
-msgid "ads_parse_gpo failed: %s\n"
-msgstr "Gestion des mots de passe"
-
-#: ../utils/net_ads_gpo.c:300
-msgid ""
-"Usage:\n"
-"net ads gpo list <username|machinename>\n"
-" Lists all GPOs for machine/user\n"
-" username\tUser to list GPOs for\n"
-" machinename\tMachine to list GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:327
-#, c-format
-msgid "%s: '%s' has dn: '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:451
-msgid ""
-"Usage:\n"
-"net ads gpo linkget <container>\n"
-" Lists gPLink of a containter\n"
-" container\tContainer to get link for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:470
-#, c-format
-msgid "get link for %s failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:492
-msgid ""
-"Usage:\n"
-"net ads gpo linkadd <linkdn> <gpodn> [options]\n"
-" Link a container to a GPO\n"
-" linkdn\tContainer to link to a GPO\n"
-" gpodn\tGPO to link container to\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:497
-msgid ""
-"note: DNs must be provided properly escaped.\n"
-"See RFC 4514 for details\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:518
-#, c-format
-msgid "link add failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:579
-msgid ""
-"Usage:\n"
-"net ads gpo getgpo <gpo>\n"
-" List speciefied GPO\n"
-" gpo\t\tGPO to list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:603
-#, c-format
-msgid "get gpo for [%s] failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:634
-msgid "List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:635
-msgid ""
-"net ads gpo getgpo\n"
-" List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:642
-msgid "Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:643
-msgid ""
-"net ads gpo linkadd\n"
-" Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:660
-msgid "Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:661
-msgid ""
-"net ads gpo linkget\n"
-" Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:668
-msgid "Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:669
-msgid ""
-"net ads gpo list\n"
-" Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:676
-msgid "Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:677
-msgid ""
-"net ads gpo listall\n"
-" Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:684
-msgid "Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:686
-msgid ""
-"net ads gpo refresh\n"
-" Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_afs.c:25
-msgid ""
-" net afs key filename\n"
-"\tImports a OpenAFS KeyFile into our secrets.tdb\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:27
-msgid ""
-" net afs impersonate <user> <cell>\n"
-"\tCreates a token for user@cell\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:38
-msgid "usage: 'net afs key <keyfile> cell'\n"
-msgstr ""
-
-#: ../utils/net_afs.c:43
-msgid "Could not open secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:48
-#, c-format
-msgid "Could not open %s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:53
-msgid "Could not read keyfile\n"
-msgstr ""
-
-#: ../utils/net_afs.c:58
-msgid "Could not write keyfile to secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:71
-#, c-format
-msgid "Usage: net afs impersonate <user> <cell>\n"
-msgstr ""
-
-#: ../utils/net_afs.c:78
-#, c-format
-msgid "Could not create token\n"
-msgstr ""
-
-#: ../utils/net_afs.c:83
-#, c-format
-msgid "Could not set token into kernel\n"
-msgstr ""
-
-#: ../utils/net_afs.c:87
-#, c-format
-msgid "Success: %s@%s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:98
-msgid "Import an OpenAFS keyfile"
-msgstr ""
-
-#: ../utils/net_afs.c:99
-msgid ""
-"net afs key <filename>\n"
-" Import kefile from <filename>."
-msgstr ""
-
-#: ../utils/net_afs.c:106
-msgid "Get a user token"
-msgstr ""
-
-#: ../utils/net_afs.c:107
-msgid ""
-"net afs impersonate <user> <cell>\n"
-" Create token for user@cell"
-msgstr ""
-
-#: ../utils/net_cache.c:74
-#, c-format
-msgid "Key: %s\t Timeout: %s\t Value: %s %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:75
-msgid "(expired)"
-msgstr ""
-
-#: ../utils/net_cache.c:84
-#, c-format
-msgid "Couldn't delete entry! key = %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:158
-msgid ""
-"\n"
-"Usage:\n"
-"net cache add <key string> <data string> <timeout>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:170
-msgid "Invalid timeout argument.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:175
-msgid "New cache entry stored successfully.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:179
-msgid "Entry couldn't be added. Perhaps there's already such a key.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:195
-msgid ""
-"\n"
-"Usage: net cache del <key string>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:200
-msgid "Entry deleted.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:204
-msgid "Couldn't delete specified entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:223
-msgid ""
-"\n"
-"Usage: net cache get <key>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:233
-msgid "Failed to find entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:250
-msgid "Usage: net cache search <pattern>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:272
-msgid ""
-"Usage:\n"
-"net cache list\n"
-" List all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:293 ../utils/net_cache.c:306
-msgid ""
-"Usage:\n"
-"net cache flush\n"
-" Delete all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:331
-msgid "Add new cache entry"
-msgstr ""
-
-#: ../utils/net_cache.c:332
-msgid ""
-"net cache add <key string> <data string> <timeout>\n"
-" Add new cache entry.\n"
-" key string\tKey string to add cache data under.\n"
-" data string\tData to store under given key.\n"
-" timeout\tTimeout for cache data."
-msgstr ""
-
-#: ../utils/net_cache.c:342
-msgid "Delete existing cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:343
-msgid ""
-"net cache del <key string>\n"
-" Delete existing cache entry by key.\n"
-" key string\tKey string to delete."
-msgstr ""
-
-#: ../utils/net_cache.c:351
-msgid "Get cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:352
-msgid ""
-"net cache get <key string>\n"
-" Get cache entry by key.\n"
-" key string\tKey string to look up cache entry for."
-msgstr ""
-
-#: ../utils/net_cache.c:361
-msgid "Search entry by pattern"
-msgstr ""
-
-#: ../utils/net_cache.c:362
-msgid ""
-"net cache search <pattern>\n"
-" Search entry by pattern.\n"
-" pattern\tPattern to search for in cache."
-msgstr ""
-
-#: ../utils/net_cache.c:370
-msgid "List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:371
-msgid ""
-"net cache list\n"
-" List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:378
-#, fuzzy
-msgid "Delete all cache entries"
-msgstr "Supprimer Imprimante"
-
-#: ../utils/net_cache.c:379
-msgid ""
-"net cache flush\n"
-" Delete all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:386
-msgid "Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_cache.c:387
-msgid ""
-"net cache stabilize\n"
-" Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_conf.c:42
-msgid "USAGE: net conf list\n"
-msgstr ""
-
-#: ../utils/net_conf.c:49
-msgid ""
-"USAGE: net conf import [--test|-T] <filename> [<servicename>]\n"
-"\t[--test|-T] testmode - do not act, just print what would be done\n"
-"\t<servicename> only import service <servicename>, ignore the rest\n"
-msgstr ""
-
-#: ../utils/net_conf.c:61
-msgid "USAGE: net conf listshares\n"
-msgstr ""
-
-#: ../utils/net_conf.c:68
-msgid "USAGE: net conf drop\n"
-msgstr ""
-
-#: ../utils/net_conf.c:75
-msgid "USAGE: net conf showshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:82
-msgid ""
-"USAGE: net conf addshare <sharename> <path> [writeable={y|N} [guest_ok={y|N} [<comment>]]\n"
-"\t<sharename> the new share name.\n"
-"\t<path> the path on the filesystem to export.\n"
-"\twriteable={y|N} set \"writeable to \"yes\" or \"no\" (default) on this share.\n"
-"\tguest_ok={y|N} set \"guest ok\" to \"yes\" or \"no\" (default) on this share.\n"
-"\t<comment> optional comment for the new share.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:97
-msgid "USAGE: net conf delshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:104
-msgid "USAGE: net conf setparm <section> <param> <value>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:111
-msgid "USAGE: net conf getparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:118
-msgid "USAGE: net conf delparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:125
-msgid "USAGE: net conf getincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:132
-msgid "USAGE: net conf setincludes <section> [<filename>]*\n"
-msgstr ""
-
-#: ../utils/net_conf.c:139
-msgid "USAGE: net conf delincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:251
-#, c-format
-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
-msgid "error: out of memory!\n"
-msgstr ""
-
-#: ../utils/net_conf.c:324
-#, c-format
-msgid "error loading file '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:330
-msgid ""
-"\n"
-"TEST MODE - would import the following configuration:\n"
-"\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "error committing transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:427 ../utils/net_conf.c:828
-#, c-format
-msgid "error cancelling transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:484
-#, c-format
-msgid "Error deleting configuration: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:521
-#, c-format
-msgid "error getting share parameters: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:630
-#, c-format
-msgid "ERROR: share name %s contains invalid characters (any of %s)\n"
-msgstr ""
-
-#: ../utils/net_conf.c:638
-msgid "ERROR: 'global' is not a valid share name.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:643
-#, c-format
-msgid "ERROR: share %s already exists.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:652
-#, c-format
-msgid "Error: path '%s' is not an absolute path.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:659
-#, c-format
-msgid ""
-"ERROR: cannot stat path '%s' to ensure this is a directory.\n"
-"Error was '%s'.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:668
-#, c-format
-msgid "ERROR: path '%s' is not a directory.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:679
-#, c-format
-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
-#, c-format
-msgid "Error setting parameter %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:748
-#, c-format
-msgid "Error deleting share %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:801
-#, c-format
-msgid "Error creating share '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:810
-#, c-format
-msgid "Error setting value '%s': %s\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "Error: given parameter '%s' is not set.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:883
-#, c-format
-msgid "Error getting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:939
-#, c-format
-msgid "Error deleting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:977
-#, c-format
-msgid "error getting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1023
-#, c-format
-msgid "error setting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1056
-#, c-format
-msgid "error deleting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1136 ../utils/net_help.c:36
-msgid "Usage:\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1160
-msgid "Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1162
-msgid ""
-"net conf list\n"
-" Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1171
-msgid "Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1173
-msgid ""
-"net conf import\n"
-" Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1181
-msgid "List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1182
-msgid ""
-"net conf listshares\n"
-" List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1189
-msgid "Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1190
-msgid ""
-"net conf drop\n"
-" Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1197
-msgid "Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1198
-msgid ""
-"net conf showshare\n"
-" Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1205
-#, fuzzy
-msgid "Create a new share."
-msgstr "Créer un partage"
-
-#: ../utils/net_conf.c:1206
-msgid ""
-"net conf addshare\n"
-" Create a new share."
-msgstr ""
-
-#: ../utils/net_conf.c:1213
-#, fuzzy
-msgid "Delete a share."
-msgstr "Supprimer un partage"
-
-#: ../utils/net_conf.c:1214
-msgid ""
-"net conf delshare\n"
-" Delete a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1221
-#, fuzzy
-msgid "Store a parameter."
-msgstr "Paramètres de partage"
-
-#: ../utils/net_conf.c:1222
-msgid ""
-"net conf setparm\n"
-" Store a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1229
-msgid "Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1230
-msgid ""
-"net conf getparm\n"
-" Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1237
-#, fuzzy
-msgid "Delete a parameter."
-msgstr "Supprimer Imprimante"
-
-#: ../utils/net_conf.c:1238
-msgid ""
-"net conf delparm\n"
-" Delete a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1245
-msgid "Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1246
-msgid ""
-"net conf getincludes\n"
-" Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1253
-msgid "Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1254
-msgid ""
-"net conf setincludes\n"
-" Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1261
-msgid "Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1262
-msgid ""
-"net conf setincludes\n"
-" Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_dom.c:25
-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
-msgid ""
-"usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine\n"
-msgstr ""
-
-#: ../utils/net_dom.c:31
-msgid ""
-"usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer\n"
-msgstr ""
-
-#: ../utils/net_dom.c:91
-#, c-format
-msgid "Failed to unjoin domain: %s\n"
-msgstr ""
-
-#: ../utils/net_dom.c:97 ../utils/net_dom.c:204
-msgid "Shutting down due to a domain membership change"
-msgstr ""
-
-#: ../utils/net_dom.c:290
-#, c-format
-msgid "Failed to rename machine: "
-msgstr ""
-
-#: ../utils/net_dom.c:292
-#, c-format
-msgid "Computer is not joined to a Domain\n"
-msgstr ""
-
-#: ../utils/net_dom.c:301
-msgid "Shutting down due to a computer rename"
-msgstr ""
-
-#: ../utils/net_dom.c:338
-#, fuzzy
-msgid "Join a remote machine"
-msgstr " Machine distante : "
-
-#: ../utils/net_dom.c:339
-msgid ""
-"net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Join a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:347
-#, fuzzy
-msgid "Unjoin a remote machine"
-msgstr " Machine distante : "
-
-#: ../utils/net_dom.c:348
-msgid ""
-"net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:356
-msgid "Rename a computer that is joined to a domain"
-msgstr ""
-
-#: ../utils/net_dom.c:357
-msgid ""
-"net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer"
-msgstr ""
-
-#: ../utils/net_eventlog.c:46
-msgid "usage: net eventlog dump <file.evt>\n"
-msgstr ""
-
-#: ../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
-#, fuzzy, c-format
-msgid "evt pull failed: %s\n"
-msgstr "Gestion des mots de passe"
-
-#: ../utils/net_eventlog.c:102
-msgid "usage: net eventlog import <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:116
-#, fuzzy, c-format
-msgid "evt header pull failed: %s\n"
-msgstr "Gestion des mots de passe"
-
-#: ../utils/net_eventlog.c:122
-msgid "input file is wrapped, cannot proceed\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:138 ../utils/net_eventlog.c:203
-#, c-format
-msgid "can't open the eventlog TDB (%s)\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:158
-#, c-format
-msgid "can't write to the eventlog: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:164
-#, c-format
-msgid "wrote %d entries to tdb\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:197
-msgid "usage: net eventlog export <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:214
-#, c-format
-msgid "failed to save evt file: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:243
-msgid "Dump eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:244
-msgid ""
-"net eventlog dump\n"
-" Dump win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:251
-#, fuzzy
-msgid "Import eventlog"
-msgstr "Note Importante:"
-
-#: ../utils/net_eventlog.c:252
-msgid ""
-"net eventlog import\n"
-" Import win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:259
-msgid "Export eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:260
-msgid ""
-"net eventlog export\n"
-" Export win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_file.c:27
-msgid ""
-"net [<method>] file [misc. options] [targets]\n"
-"\tlists all open files on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:29
-msgid ""
-"net [<method>] file USER <username> [misc. options] [targets]\n"
-"\tlists all files opened by username on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:32
-msgid ""
-"net [<method>] file CLOSE <id> [misc. options] [targets]\n"
-"\tcloses specified file on target server\n"
-msgstr ""
-
-#: ../utils/net_file.c:34
-msgid ""
-"net [rap] file INFO <id> [misc. options] [targets]\n"
-"\tdisplays information about the specified open file\n"
-msgstr ""
-
-#: ../utils/net_group.c:27
-msgid ""
-"net [<method>] group [misc. options] [targets]\n"
-"\tList user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:29
-msgid ""
-"net rpc group LIST [global|local|builtin]* [misc. options]\n"
-"\tList specific user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:31
-msgid ""
-"net [<method>] group DELETE <name> [misc. options] [targets]\n"
-"\tDelete specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:34
-msgid ""
-"\n"
-"net [<method>] group ADD <name> [-C comment] [-c container] [misc. options] [targets]\n"
-"\tCreate specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:37
-msgid ""
-"\n"
-"net rpc group MEMBERS <name>\n"
-"\tList Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:38
-msgid ""
-"\n"
-"net rpc group ADDMEM <group> <member>\n"
-"\tAdd Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:40
-msgid ""
-"\n"
-"net rpc group DELMEM <group> <member>\n"
-"\tDelete Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:44
-msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:46
-msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:48
-msgid "\t-L or --localgroup\t\tWhen adding groups, create a local group (alias)\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:38
-#, c-format
-msgid "NT Group %s doesn't exist in mapping DB\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:46
-#, c-format
-msgid "converting sid %s from a string failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:65
-#, c-format
-msgid "\tSID : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:66
-#, c-format
-msgid "\tUnix gid : %u\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:67
-#, c-format
-msgid "\tUnix group: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:68
-#, c-format
-msgid "\tGroup type: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:70
-#, c-format
-msgid "\tComment : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:84
-msgid ""
-"net groupmap list [verbose] [ntgroup=NT group] [sid=SID]\n"
-" verbose\tPrint verbose list\n"
-" ntgroup\tNT group to list\n"
-" 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
-#, fuzzy, c-format
-msgid ""
-"Usage:\n"
-"%s\n"
-msgstr " Nom d'utilisateur : "
-
-#: ../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
-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
-#, fuzzy, c-format
-msgid "Bad option: %s\n"
-msgstr "Options de base"
-
-#: ../utils/net_groupmap.c:139
-msgid "Failure to local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:181
-msgid "net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:195
-#, fuzzy, c-format
-msgid ""
-"Usage\n"
-"%s\n"
-msgstr " Nom d'utilisateur : "
-
-#: ../utils/net_groupmap.c:205
-#, c-format
-msgid "RID must be greater than %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:235 ../utils/net_groupmap.c:380
-msgid "must supply a comment string\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:259
-#, c-format
-msgid "unknown group type %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:276
-#, c-format
-msgid "Can't lookup UNIX group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:282
-#, c-format
-msgid "Unix group %s already mapped to SID %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:289
-msgid "No rid or sid specified, choosing a RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:292
-msgid "Could not get new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:297
-#, c-format
-msgid "Got RID %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:328
-#, c-format
-msgid "adding entry for group %s failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:332
-#, c-format
-msgid "Successfully added group %s to the mapping db as a %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:349
-msgid "net groupmap modify {ntgroup=<string>|sid=<SID>} [comment=<string>] [unixgroup=<string>] [type=<domain|local>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:388
-msgid "must supply a group name\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:434
-msgid "Failed to find local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:443
-msgid "Can't map to an unknown group type.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:449
-msgid "You can only change between domain and local groups.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:466
-#, c-format
-msgid "Unable to lookup UNIX group %s. Make sure the group exists.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:476
-msgid "Could not update group database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:480
-#, c-format
-msgid "Updated mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:491
-msgid "net groupmap delete {ntgroup=<string>|sid=<SID>}"
-msgstr ""
-
-#: ../utils/net_groupmap.c:532
-#, c-format
-msgid "Unable to resolve group %s to a SID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:539
-#, c-format
-msgid "Failed to remove group %s from the mapping db!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:544
-#, c-format
-msgid "Sucessfully removed %s from the mapping db\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:557
-msgid "Usage: net groupmap set \"NT Group\" [\"unix group\"] [-C \"comment\"] [-L] [-D]\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:563
-msgid "Can only specify -L or -D, not both\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:573
-#, c-format
-msgid "Could not find unix group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:594
-#, c-format
-msgid "Could not find group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:605
-msgid "Could not allocate new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:622
-#, c-format
-msgid "Could not add mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:633
-#, c-format
-msgid "Can't change type of the BUILTIN group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:660
-#, c-format
-msgid "Could not update group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:674
-msgid ""
-"Usage:\n"
-"net groupmap cleanup\n"
-" Delete all group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:682
-msgid "Could not list group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:689
-#, c-format
-msgid "Group %s is not mapped\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:692
-#, c-format
-msgid "Deleting mapping for NT Group %s, sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:712
-msgid "Usage: net groupmap addmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:717
-#, c-format
-msgid "Could not add sid %s to alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:733
-msgid "Usage: net groupmap delmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:738
-#, c-format
-msgid "Could not delete sid %s from alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:755
-msgid "Usage: net groupmap listmem alias-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:764
-#, c-format
-msgid "Could not list members for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:791
-#, c-format
-msgid "Could not list memberships for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:814
-msgid "Usage: net groupmap memberof sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:820 ../utils/net_idmap.c:345
-msgid "talloc_init failed\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:827
-msgid "Could not get domain sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:850
-msgid "Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:851
-msgid ""
-"net groupmap add\n"
-" Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:858
-msgid "Update a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:859
-msgid ""
-"net groupmap modify\n"
-" Modify an existing group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:866
-msgid "Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:867
-msgid ""
-"net groupmap delete\n"
-" Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:874
-msgid "Set group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:875
-msgid ""
-"net groupmap set\n"
-" Set a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:882
-msgid "Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:883
-msgid ""
-"net groupmap cleanup\n"
-" Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:890
-msgid "Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:891
-msgid ""
-"net groupmap addmem\n"
-" Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:898
-msgid "Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:899
-msgid ""
-"net groupmap delmem\n"
-" Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:906
-msgid "List foreign group members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:907
-msgid ""
-"net groupmap listmem\n"
-" List foreign alias members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:914
-msgid "List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:915
-msgid ""
-"net groupmap memberships\n"
-" List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:922
-msgid "List current group map"
-msgstr ""
-
-#: ../utils/net_groupmap.c:923
-msgid ""
-"net groupmap list\n"
-" List current group map"
-msgstr ""
-
-#: ../utils/net_help.c:39
-#, c-format
-msgid "net %s usage:\n"
-msgstr ""
-
-#: ../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
-msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:27 ../utils/net_join.c:30
-msgid "\trpc\t\t\t\tDCE-RPC\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:28
-msgid "\trap\t\t\t\tRAP (older systems)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:35
-msgid "Valid targets: choose one (none defaults to localhost)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:36
-msgid "\t-S or --server=<server>\t\tserver name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:37
-msgid "\t-I or --ipaddress=<ipaddr>\taddress of target server\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:38
-msgid "\t-w or --workgroup=<wg>\t\ttarget workgroup or domain\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:41
-#, fuzzy
-msgid "Valid miscellaneous options are:\n"
-msgstr "Options Diverses"
-
-#. misc options
-#: ../utils/net_help_common.c:42
-msgid "\t-p or --port=<port>\t\tconnection port on target\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:43
-msgid "\t-W or --myworkgroup=<wg>\tclient workgroup\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:44
-msgid "\t-d or --debuglevel=<level>\tdebug level (0-10)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:45
-msgid "\t-n or --myname=<name>\t\tclient name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:46
-msgid "\t-U or --user=<name>\t\tuser name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:47
-msgid "\t-s or --configfile=<path>\tpathname of smb.conf file\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:48
-msgid "\t-l or --long\t\t\tDisplay full information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:49
-msgid "\t-V or --version\t\t\tPrint samba version information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:50
-msgid "\t-P or --machine-pass\t\tAuthenticate as machine account\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:52
-msgid "\t-e or --encrypt\t\t\tEncrypt SMB transport (UNIX extended servers only)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:54
-msgid "\t-k or --kerberos\t\tUse kerberos (active directory) authentication\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:25
-msgid "Out of memory!\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:39
-#, c-format
-msgid "USER HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:44
-#, c-format
-msgid "GROUP HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:63
-msgid ""
-"Usage:\n"
-"net idmap dump <inputfile>\n"
-" Dump current ID mapping.\n"
-" inputfile\tTDB file to read mappings from.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:73
-#, c-format
-msgid "Could not open idmap: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:94
-msgid ""
-"Usage:\n"
-"net idmap restore [inputfile]\n"
-" Restore ID mappings from file\n"
-" inputfile\tFile to load ID mappings from. If not given, load data from stdin.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:104
-msgid "To use net idmap Winbindd must be running.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:142
-#, c-format
-msgid "Could not set USER HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:151
-#, c-format
-msgid "Could not set GROUP HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:156
-#, c-format
-msgid "ignoring invalid line [%s]\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:163
-#, c-format
-msgid "ignoring invalid sid [%s]: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:175
-#, c-format
-msgid "Could not set mapping of %s %lu to sid %s: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:196 ../utils/net_idmap.c:202
-msgid "Not Implemented yet\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:240
-msgid ""
-"Usage:\n"
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set the secret for the specified domain (or alloc module)\n"
-" DOMAIN\tDomain to set secret for.\n"
-" alloc\tSet secret for the alloc module\n"
-" secret\tNew secret to set.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:271
-msgid "The only currently supported backend is LDAP\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:281
-#, c-format
-msgid "Missing ldap_user_dn option for domain %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:292
-msgid "Missing ldap_user_dn option for alloc backend\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:302
-msgid "Failed to store secret\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:307
-msgid "Secret stored\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:313
-msgid ""
-"net idmap dump <inputfile>\n"
-" Dump current id mapping\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:316
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin\n"
-msgstr ""
-
-#. Deliberately *not* document net idmap delete
-#: ../utils/net_idmap.c:321
-msgid ""
-"net idmap secret <DOMAIN>|alloc <secret>\n"
-" Set the secret for the specified DOMAIN (or the alloc module)\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:339
-msgid "usage: net idmap aclmapset <tdb> <src-sid> <dst-sid>\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:351
-#, fuzzy, c-format
-msgid "db_open failed: %s\n"
-msgstr "Gestion des mots de passe"
-
-#: ../utils/net_idmap.c:356 ../utils/net_idmap.c:361
-#, c-format
-msgid "%s is not a valid sid\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:367
-msgid "talloc_strdup failed\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:373
-msgid "could not fetch db record\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:381
-#, c-format
-msgid "could not store record: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:402
-msgid "Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:403
-msgid ""
-"net idmap dump\n"
-" Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:410
-msgid "Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:411
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:418 ../utils/net_idmap.c:426
-msgid "Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:419
-msgid ""
-"net idmap setmap\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:427
-msgid ""
-"net idmap delete\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:434
-msgid "Set secret for specified domain"
-msgstr ""
-
-#: ../utils/net_idmap.c:435
-msgid ""
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set secret for specified domain or alloc module"
-msgstr ""
-
-#: ../utils/net_idmap.c:442
-msgid "Set acl map"
-msgstr ""
-
-#: ../utils/net_idmap.c:443
-msgid ""
-"net idmap aclmapset\n"
-" Set acl map"
-msgstr ""
-
-#: ../utils/net_join.c:26
-msgid ""
-"\n"
-"net [<method>] join [misc. options]\n"
-"\tjoins this server to a domain\n"
-msgstr ""
-
-#: ../utils/net_join.c:47
-msgid "ADS join did not work, falling back to RPC...\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:25
-msgid ""
-" net lookup [host] HOSTNAME[#<type>]\n"
-"\tgives IP for a hostname\n"
-"\n"
-" net lookup ldap [domain]\n"
-"\tgives IP of domain's ldap server\n"
-"\n"
-" net lookup kdc [realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup pdc [domain|realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup dc [domain]\n"
-"\tgives IP of domains Domain Controllers\n"
-"\n"
-" net lookup master [domain|wg]\n"
-"\tgive IP of master browser\n"
-"\n"
-" net lookup name [name]\n"
-"\tLookup name's sid and type\n"
-"\n"
-" net lookup sid [sid]\n"
-"\tGive sid's name and type\n"
-"\n"
-" net lookup dsgetdcname [name] [flags] [sitename]\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:112
-msgid "net_lookup_ldap: talloc_init() failed!\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:325
-msgid "usage: net lookup name <name>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:331 ../utils/net_lookup.c:358
-#, c-format
-msgid "Could not lookup name %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:347
-msgid "usage: net lookup sid <sid>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:352
-#, c-format
-msgid "Could not convert %s to SID\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:378
-msgid "usage: net lookup dsgetdcname <name> <flags> <sitename>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:404
-#, c-format
-msgid "failed with: %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:437
-msgid ""
-"\n"
-"Usage: \n"
-msgstr ""
-
-#: ../utils/net_lua.c:60
-msgid "connect: Expected IP-Address"
-msgstr ""
-
-#: ../utils/net_lua.c:65
-msgid "connect: Expected port"
-msgstr ""
-
-#: ../utils/net_lua.c:84
-#, fuzzy, c-format
-msgid "connect failed: %s"
-msgstr "Gestion des mots de passe"
-
-#: ../utils/net_lua.c:132
-#, c-format
-msgid "socket domain %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:144
-#, c-format
-msgid "socket type %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:155
-#, fuzzy, c-format
-msgid "socket() failed: %s"
-msgstr "Gestion des mots de passe"
-
-#: ../utils/net_lua.c:278
-msgid "evt_reference_thread failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:287
-msgid "event_add_timed failed"
-msgstr ""
-
-#: ../utils/net_lua.c:300
-msgid "event_once called from non-base thread"
-msgstr ""
-
-#: ../utils/net_lua.c:323
-msgid "event_context_init failed"
-msgstr ""
-
-#: ../utils/net_lua.c:353
-msgid "lua_newstate failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:371
-msgid "luaL_dofile returned an error\n"
-msgstr ""
-
-#: ../utils/net_lua.c:376
-msgid "luaL_dostring returned an error\n"
-msgstr ""
diff --git a/source3/po/genmsg b/source3/po/genmsg
index 3dfc7e05c7..9e9b53b3c8 100755
--- a/source3/po/genmsg
+++ b/source3/po/genmsg
@@ -15,23 +15,8 @@
# You should have received a copy of the GNU General Public License
# along with this program; if not, see <http://www.gnu.org/licenses/>.
#
-add_basedir_to_filelist() {
- BASEDIR="$1"
- shift;
- FILELIST="$@"
- FULL_LIST=""
- for file in ${FILELIST}; do
- FULL_LIST="${FULL_LIST} $BASEDIR/${file}"
- done
- echo ${FULL_LIST}
-}
-NET_FILES=`add_basedir_to_filelist ../utils net.c net_ads.c net_ads_gpo.c \
- net_afs.c net_cache.c net_conf.c net_dom.c net_eventlog.c \
- net_file.c net_group.c net_groupmap.c net_help.c net_help_common.c \
- net_idmap.c net_join.c net_lookup.c net_lua.c`
-
-FILES="../web/swat.c ../web/statuspage.c ../param/loadparm.c ${NET_FILES}"
+FILES='../web/swat.c ../web/statuspage.c ../param/loadparm.c'
LANGS='en ja tr pl fr de it ru'
XGETTEXT=xgettext
diff --git a/source3/po/it.msg b/source3/po/it.msg
index e157732fb6..90c3ed5672 100644
--- a/source3/po/it.msg
+++ b/source3/po/it.msg
@@ -17,8 +17,7 @@
msgid ""
msgstr ""
"Project-Id-Version: i18n_swat \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-30 12:18+0200\n"
+"POT-Creation-Date: 2003-10-06 05:30+0900\n"
"PO-Revision-Date: 2000-02-08 14:45+0100\n"
"Last-Translator: Simo Sorce <idra@samba.org>\n"
"Language-Team: (Samba Team) <samba-technical@samba.org>\n"
@@ -26,4013 +25,568 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: \n"
-#: ../web/swat.c:153
+#: ../web/swat.c:117
#, c-format
msgid "ERROR: Can't open %s"
msgstr ""
-#: ../web/swat.c:241
+#: ../web/swat.c:200
msgid "Help"
msgstr "Aiuto"
-#: ../web/swat.c:247 ../web/swat.c:272 ../web/swat.c:293 ../web/swat.c:302 ../web/swat.c:311 ../web/swat.c:317 ../web/swat.c:329 ../web/swat.c:343
+#: ../web/swat.c:206 ../web/swat.c:220 ../web/swat.c:235 ../web/swat.c:243 ../web/swat.c:252 ../web/swat.c:261 ../web/swat.c:267 ../web/swat.c:273 ../web/swat.c:286
msgid "Set Default"
msgstr "Imposta Default"
-#: ../web/swat.c:465
+#: ../web/swat.c:408
#, c-format
msgid "failed to open %s for writing"
msgstr ""
-#: ../web/swat.c:488
+#: ../web/swat.c:431
#, c-format
msgid "Can't reload %s"
msgstr ""
-#: ../web/swat.c:561
+#: ../web/swat.c:501
#, c-format
msgid "Logged in as <b>%s</b>"
msgstr "Connesso come <b>%s</b><p>\n"
-#: ../web/swat.c:565
+#: ../web/swat.c:505
msgid "Home"
msgstr "Home"
-#: ../web/swat.c:567
+#: ../web/swat.c:507
msgid "Globals"
msgstr "Globali"
-#: ../web/swat.c:568
+#: ../web/swat.c:508
msgid "Shares"
msgstr "Condivisioni"
-#: ../web/swat.c:569
+#: ../web/swat.c:509
msgid "Printers"
msgstr "Stampanti"
-#: ../web/swat.c:570
+#: ../web/swat.c:510
msgid "Wizard"
msgstr ""
-#: ../web/swat.c:574
+#: ../web/swat.c:513
msgid "Status"
msgstr "Stato"
-#: ../web/swat.c:575
+#: ../web/swat.c:514
msgid "View Config"
msgstr "Visualizza Configurazione"
-#: ../web/swat.c:577
+#: ../web/swat.c:516
msgid "Password Management"
msgstr "Gestione Password"
-#: ../web/swat.c:587
+#: ../web/swat.c:526
msgid "Current View Is"
msgstr "Configurazione Attuale"
-#: ../web/swat.c:588 ../web/swat.c:591
+#: ../web/swat.c:527 ../web/swat.c:530
msgid "Basic"
msgstr "Vista Semplice"
-#: ../web/swat.c:589 ../web/swat.c:592
+#: ../web/swat.c:528 ../web/swat.c:531
msgid "Advanced"
msgstr "Vista Avanzata"
-#: ../web/swat.c:590
+#: ../web/swat.c:529
msgid "Change View To"
msgstr "Cambia Password"
-#: ../web/swat.c:619
+#: ../web/swat.c:554
msgid "Current Config"
msgstr "Configurazione Attuale"
-#: ../web/swat.c:623
+#: ../web/swat.c:558
msgid "Normal View"
msgstr "Vista Normale"
-#: ../web/swat.c:625
+#: ../web/swat.c:560
msgid "Full View"
msgstr "Vista Completa"
#. Here we first set and commit all the parameters that were selected
#. in the previous screen.
-#: ../web/swat.c:644
+#: ../web/swat.c:579
msgid "Wizard Parameter Edit Page"
msgstr ""
-#: ../web/swat.c:673
+#: ../web/swat.c:608
msgid "Note: smb.conf file has been read and rewritten"
msgstr ""
#. Here we go ...
-#: ../web/swat.c:779
+#: ../web/swat.c:716
msgid "Samba Configuration Wizard"
msgstr ""
-#: ../web/swat.c:783
+#: ../web/swat.c:720
msgid "The \"Rewrite smb.conf file\" button will clear the smb.conf file of all default values and of comments."
msgstr ""
-#: ../web/swat.c:784
+#: ../web/swat.c:721
msgid "The same will happen if you press the commit button."
msgstr ""
-#: ../web/swat.c:787
+#: ../web/swat.c:724
msgid "Rewrite smb.conf file"
msgstr ""
-#: ../web/swat.c:788
+#: ../web/swat.c:725
msgid "Commit"
msgstr "commento"
-#: ../web/swat.c:789
+#: ../web/swat.c:726
msgid "Edit Parameter Values"
msgstr "Parametri Stampante"
-#: ../web/swat.c:795
+#: ../web/swat.c:732
msgid "Server Type"
msgstr ""
-#: ../web/swat.c:796
+#: ../web/swat.c:733
msgid "Stand Alone"
msgstr ""
-#: ../web/swat.c:797
+#: ../web/swat.c:734
msgid "Domain Member"
msgstr "master dominio"
-#: ../web/swat.c:798
+#: ../web/swat.c:735
msgid "Domain Controller"
msgstr "master dominio"
-#: ../web/swat.c:801
+#: ../web/swat.c:738
msgid "Unusual Type in smb.conf - Please Select New Mode"
msgstr ""
-#: ../web/swat.c:803
+#: ../web/swat.c:740
msgid "Configure WINS As"
msgstr ""
-#: ../web/swat.c:804
+#: ../web/swat.c:741
msgid "Not Used"
msgstr "non discendere"
-#: ../web/swat.c:805
+#: ../web/swat.c:742
msgid "Server for client use"
msgstr ""
-#: ../web/swat.c:806
+#: ../web/swat.c:743
msgid "Client of another WINS server"
msgstr ""
-#: ../web/swat.c:808
+#: ../web/swat.c:745
msgid "Remote WINS Server"
msgstr ""
-#: ../web/swat.c:819
+#: ../web/swat.c:756
msgid "Error: WINS Server Mode and WINS Support both set in smb.conf"
msgstr ""
-#: ../web/swat.c:820
+#: ../web/swat.c:757
msgid "Please Select desired WINS mode above."
msgstr ""
-#: ../web/swat.c:822
+#: ../web/swat.c:759
msgid "Expose Home Directories"
msgstr ""
-#: ../web/swat.c:837
+#: ../web/swat.c:774
msgid "The above configuration options will set multiple parameters and will generally assist with rapid Samba deployment."
msgstr ""
-#: ../web/swat.c:850
+#: ../web/swat.c:787
msgid "Global Parameters"
msgstr "Variabili Globali"
-#: ../web/swat.c:878 ../web/swat.c:986 ../web/swat.c:1344
+#: ../web/swat.c:815 ../web/swat.c:916 ../web/swat.c:1265
msgid "Commit Changes"
msgstr "Salva Modifiche"
-#: ../web/swat.c:882 ../web/swat.c:989 ../web/swat.c:1346
+#: ../web/swat.c:819 ../web/swat.c:919 ../web/swat.c:1267
msgid "Reset Values"
msgstr "Resetta Valori"
-#: ../web/swat.c:908
+#: ../web/swat.c:844
msgid "Share Parameters"
msgstr "Parametri Condivisioni"
-#: ../web/swat.c:955
+#: ../web/swat.c:887
msgid "Choose Share"
msgstr "Scegli Condivisione"
-#: ../web/swat.c:971
+#: ../web/swat.c:901
msgid "Delete Share"
msgstr "Cancella Condivisione"
-#: ../web/swat.c:978
+#: ../web/swat.c:908
msgid "Create Share"
msgstr "Crea Condivisione"
-#: ../web/swat.c:1014
+#: ../web/swat.c:944
msgid "password change in demo mode rejected"
msgstr "cambio password in modalita' demo rigettata"
-#: ../web/swat.c:1028
+#: ../web/swat.c:957
msgid "Can't setup password database vectors."
msgstr ""
-#: ../web/swat.c:1056
+#: ../web/swat.c:983
msgid " Must specify \"User Name\" "
msgstr " \"Nome Utente\" deve essere specificato "
-#: ../web/swat.c:1072
+#: ../web/swat.c:999
msgid " Must specify \"Old Password\" "
msgstr " \"Vecchia Password\" deve essere specificato "
-#: ../web/swat.c:1078
+#: ../web/swat.c:1005
msgid " Must specify \"Remote Machine\" "
msgstr " \"Macchina Remota\" deve essere specificato "
-#: ../web/swat.c:1085
+#: ../web/swat.c:1012
msgid " Must specify \"New, and Re-typed Passwords\" "
msgstr " \"Nuova/Conferma Password\" devono essere specificati "
-#: ../web/swat.c:1091
+#: ../web/swat.c:1018
msgid " Re-typed password didn't match new password "
msgstr " la password di conferma non e' uguale alla nuova password "
-#: ../web/swat.c:1124
+#: ../web/swat.c:1048
#, c-format
msgid " The passwd for '%s' has been changed."
msgstr " La password per '%s' e' stata cambiata."
-#: ../web/swat.c:1127
+#: ../web/swat.c:1051
#, c-format
msgid " The passwd for '%s' has NOT been changed."
msgstr " La password per '%s' non e' stata cambianta."
-#: ../web/swat.c:1152
+#: ../web/swat.c:1076
msgid "Server Password Management"
msgstr "Gestione Password del Server"
#.
#. * Create all the dialog boxes for data collection
#.
-#: ../web/swat.c:1161 ../web/swat.c:1208
+#: ../web/swat.c:1085 ../web/swat.c:1132
msgid "User Name"
msgstr " Nome Utente"
-#: ../web/swat.c:1164 ../web/swat.c:1210
+#: ../web/swat.c:1088 ../web/swat.c:1134
msgid "Old Password"
msgstr " Vecchia Password"
-#: ../web/swat.c:1167 ../web/swat.c:1212
+#: ../web/swat.c:1091 ../web/swat.c:1136
msgid "New Password"
msgstr " Nuova Password"
-#: ../web/swat.c:1169 ../web/swat.c:1214
+#: ../web/swat.c:1093 ../web/swat.c:1138
msgid "Re-type New Password"
msgstr " Conferma nuova Password"
-#: ../web/swat.c:1177 ../web/swat.c:1225
+#: ../web/swat.c:1101 ../web/swat.c:1149
msgid "Change Password"
msgstr "Cambia Password"
-#: ../web/swat.c:1180
+#: ../web/swat.c:1104
msgid "Add New User"
msgstr "Aggiungi Nuovo Utente"
-#: ../web/swat.c:1182
+#: ../web/swat.c:1106
msgid "Delete User"
msgstr "Cancella Utente"
-#: ../web/swat.c:1184
+#: ../web/swat.c:1108
msgid "Disable User"
msgstr "Disabilita Utente"
-#: ../web/swat.c:1186
+#: ../web/swat.c:1110
msgid "Enable User"
msgstr "Abilita Utente"
-#: ../web/swat.c:1199
+#: ../web/swat.c:1123
msgid "Client/Server Password Management"
msgstr "Gestione Password Client/Server"
-#: ../web/swat.c:1216
+#: ../web/swat.c:1140
msgid "Remote Machine"
msgstr " Macchina Remota"
-#: ../web/swat.c:1255
+#: ../web/swat.c:1179
msgid "Printer Parameters"
msgstr "Parametri Stampante"
-#: ../web/swat.c:1257
+#: ../web/swat.c:1181
msgid "Important Note:"
msgstr "Nota Importante:"
-#: ../web/swat.c:1258
+#: ../web/swat.c:1182
msgid "Printer names marked with [*] in the Choose Printer drop-down box "
msgstr "nomi di stampante marcati con [*] nel riquadro a scomparsa Scegli Stampante"
-#: ../web/swat.c:1259
+#: ../web/swat.c:1183
msgid "are autoloaded printers from "
msgstr "sono stampanti caricate automaticamente da "
-#: ../web/swat.c:1260
+#: ../web/swat.c:1184
msgid "Printcap Name"
msgstr "Nome Printcap"
-#: ../web/swat.c:1261
+#: ../web/swat.c:1185
msgid "Attempting to delete these printers from SWAT will have no effect."
msgstr "Il tentativo di cancellare queste stampanti da sWAT non avara' effetto.\n"
-#: ../web/swat.c:1310
+#: ../web/swat.c:1231
msgid "Choose Printer"
msgstr "Scegli Stampante"
-#: ../web/swat.c:1329
+#: ../web/swat.c:1250
msgid "Delete Printer"
msgstr "Cancella Stampante"
-#: ../web/swat.c:1336
+#: ../web/swat.c:1257
msgid "Create Printer"
msgstr "Crea Stampante"
-#: ../web/statuspage.c:151
-msgid "RDWR "
+#: ../web/statuspage.c:123
+msgid "RDONLY "
msgstr ""
-#: ../web/statuspage.c:153
+#: ../web/statuspage.c:124
msgid "WRONLY "
msgstr ""
-#: ../web/statuspage.c:155
-msgid "RDONLY "
+#: ../web/statuspage.c:125
+msgid "RDWR "
msgstr ""
-#: ../web/statuspage.c:329
+#: ../web/statuspage.c:309
msgid "Server Status"
msgstr "Stato del Server"
-#: ../web/statuspage.c:334
+#: ../web/statuspage.c:314
msgid "Auto Refresh"
msgstr "Rinfresco Automatico"
-#: ../web/statuspage.c:335 ../web/statuspage.c:340
+#: ../web/statuspage.c:315 ../web/statuspage.c:320
msgid "Refresh Interval: "
msgstr "Intervallo Rinfresco: "
-#: ../web/statuspage.c:339
+#: ../web/statuspage.c:319
msgid "Stop Refreshing"
msgstr "Ferma Rinfresco"
-#: ../web/statuspage.c:348
+#: ../web/statuspage.c:334
msgid "version:"
msgstr "versione:"
-#: ../web/statuspage.c:351
+#: ../web/statuspage.c:337
msgid "smbd:"
msgstr ""
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "running"
msgstr "attivo"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "not running"
msgstr "non attivo"
-#: ../web/statuspage.c:355
+#: ../web/statuspage.c:341
msgid "Stop smbd"
msgstr "Ferma smbd"
-#: ../web/statuspage.c:357
+#: ../web/statuspage.c:343
msgid "Start smbd"
msgstr "Lancia smbd"
-#: ../web/statuspage.c:359
+#: ../web/statuspage.c:345
msgid "Restart smbd"
msgstr "Rilancia smbd"
-#: ../web/statuspage.c:364
+#: ../web/statuspage.c:350
msgid "nmbd:"
msgstr ""
-#: ../web/statuspage.c:368
+#: ../web/statuspage.c:354
msgid "Stop nmbd"
msgstr "Ferma nmbd"
-#: ../web/statuspage.c:370
+#: ../web/statuspage.c:356
msgid "Start nmbd"
msgstr "Lancia nmbd"
-#: ../web/statuspage.c:372
+#: ../web/statuspage.c:358
msgid "Restart nmbd"
msgstr "Rilancia nmbd"
-#: ../web/statuspage.c:378
+#: ../web/statuspage.c:364
msgid "winbindd:"
msgstr ""
-#: ../web/statuspage.c:382
+#: ../web/statuspage.c:368
msgid "Stop winbindd"
msgstr "Ferma nmbd"
-#: ../web/statuspage.c:384
+#: ../web/statuspage.c:370
msgid "Start winbindd"
msgstr "Lancia nmbd"
-#: ../web/statuspage.c:386
+#: ../web/statuspage.c:372
msgid "Restart winbindd"
msgstr "Rilancia nmbd"
#. stop, restart all
-#: ../web/statuspage.c:395
+#: ../web/statuspage.c:381
msgid "Stop All"
msgstr ""
-#: ../web/statuspage.c:396
+#: ../web/statuspage.c:382
msgid "Restart All"
msgstr "Rilancia nmbd"
#. start all
-#: ../web/statuspage.c:400
+#: ../web/statuspage.c:386
msgid "Start All"
msgstr "Lancia nmbd"
-#: ../web/statuspage.c:407
+#: ../web/statuspage.c:393
msgid "Active Connections"
msgstr "Connessioni Attive"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "PID"
msgstr ""
-#: ../web/statuspage.c:409 ../web/statuspage.c:422
+#: ../web/statuspage.c:395 ../web/statuspage.c:408
msgid "Client"
msgstr ""
-#: ../web/statuspage.c:409
+#: ../web/statuspage.c:395
msgid "IP address"
msgstr "indirizzo IP"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "Date"
msgstr "Data"
-#: ../web/statuspage.c:411
+#: ../web/statuspage.c:397
msgid "Kill"
msgstr "Termina"
-#: ../web/statuspage.c:419
+#: ../web/statuspage.c:405
msgid "Active Shares"
msgstr "Condivisioni Attive"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Share"
msgstr "Condivisione"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "User"
msgstr "Utente"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Group"
msgstr "Gruppo"
-#: ../web/statuspage.c:428
+#: ../web/statuspage.c:414
msgid "Open Files"
msgstr "File Aperti"
-#: ../web/statuspage.c:431
-msgid "UID"
-msgstr ""
-
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Sharing"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "R/W"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Oplock"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "File"
msgstr ""
-#: ../web/statuspage.c:438
+#: ../web/statuspage.c:425
msgid "Show Client in col 1"
msgstr ""
-#: ../web/statuspage.c:439
+#: ../web/statuspage.c:426
msgid "Show PID in col 1"
msgstr ""
-#: ../param/loadparm.c:907
+#: ../param/loadparm.c:755
msgid "Base Options"
msgstr "Opzioni Basilari"
-#: ../param/loadparm.c:1047
+#: ../param/loadparm.c:775
msgid "Security Options"
msgstr "Opzioni di Sicurezza"
-#: ../param/loadparm.c:1800
+#: ../param/loadparm.c:859
msgid "Logging Options"
msgstr "Opzioni di Log"
-#: ../param/loadparm.c:1929
+#: ../param/loadparm.c:874
msgid "Protocol Options"
msgstr "Opzioni Protocollo"
-#: ../param/loadparm.c:2301
+#: ../param/loadparm.c:911
msgid "Tuning Options"
msgstr "Opzioni Tuning"
-#: ../param/loadparm.c:2538
+#: ../param/loadparm.c:940
msgid "Printing Options"
msgstr "Opzioni di Stampa"
-#: ../param/loadparm.c:2858
+#: ../param/loadparm.c:970
msgid "Filename Handling"
msgstr "Gestione Nomi File"
-#: ../param/loadparm.c:3088
+#: ../param/loadparm.c:996
msgid "Domain Options"
msgstr "Opzioni Dominio"
-#: ../param/loadparm.c:3100
+#: ../param/loadparm.c:1000
msgid "Logon Options"
msgstr "Opzioni di Logon"
-#: ../param/loadparm.c:3273
+#: ../param/loadparm.c:1019
msgid "Browse Options"
msgstr "Opzioni Browsing"
-#: ../param/loadparm.c:3384
+#: ../param/loadparm.c:1033
msgid "WINS Options"
msgstr "opzioni WINS"
-#: ../param/loadparm.c:3432
+#: ../param/loadparm.c:1043
msgid "Locking Options"
msgstr "Opzioni Locking"
-#: ../param/loadparm.c:3552
+#: ../param/loadparm.c:1061
msgid "Ldap Options"
msgstr "Opzioni Ldap"
-#: ../param/loadparm.c:3708
-#, fuzzy
-msgid "EventLog Options"
-msgstr "Opzioni di Logon"
-
-#: ../param/loadparm.c:3720
+#: ../param/loadparm.c:1078
msgid "Miscellaneous Options"
msgstr "Opzioni Generiche"
-#: ../param/loadparm.c:4301
+#: ../param/loadparm.c:1138
msgid "VFS module options"
msgstr "Opzioni VFS"
-#: ../param/loadparm.c:4323
-#, fuzzy
-msgid "MSDFS options"
-msgstr "Opzioni VFS"
-
-#: ../param/loadparm.c:4353
+#: ../param/loadparm.c:1148
msgid "Winbind options"
msgstr "Opzioni Winbind"
-
-#: ../utils/net.c:103
-msgid "Enter machine password: "
-msgstr ""
-
-#: ../utils/net.c:107
-msgid "Unable to write the machine account password in the secrets database"
-msgstr ""
-
-#: ../utils/net.c:111
-msgid "Modified trust account password in secrets database\n"
-msgstr ""
-
-#: ../utils/net.c:115
-msgid ""
-"Machine account password change requires the -f flag.\n"
-"Do NOT use this function unless you know what it does!\n"
-"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
-#, 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
-#, c-format
-msgid "SID for domain %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:175
-msgid "usage: net setlocalsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:195
-msgid "usage: net setdomainsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:213
-msgid "usage: net getdomainsid\n"
-msgstr ""
-
-#: ../utils/net.c:238
-msgid "Could not fetch local SID\n"
-msgstr ""
-
-#: ../utils/net.c:242
-#, c-format
-msgid "SID for local machine %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:246
-msgid "Could not fetch domain SID\n"
-msgstr ""
-
-#: ../utils/net.c:263
-#, c-format
-msgid "get_maxrid: Could not search %s\n"
-msgstr ""
-
-#: ../utils/net.c:297
-msgid "usage: net maxrid\n"
-msgstr ""
-
-#: ../utils/net.c:302
-msgid "can't get current maximum rid\n"
-msgstr ""
-
-#: ../utils/net.c:306
-#, c-format
-msgid "Currently used maximum rid: %d\n"
-msgstr ""
-
-#: ../utils/net.c:317
-msgid "Run functions using RPC transport"
-msgstr ""
-
-#: ../utils/net.c:318
-msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands."
-msgstr ""
-
-#: ../utils/net.c:325
-msgid "Run functions using RAP transport"
-msgstr ""
-
-#: ../utils/net.c:326
-msgid " Use 'net help rap' to get more extensive information about 'net rap' commands."
-msgstr ""
-
-#: ../utils/net.c:333
-msgid "Run functions using ADS transport"
-msgstr ""
-
-#: ../utils/net.c:334
-msgid " Use 'net help ads' to get more extensive information about 'net ads' commands."
-msgstr ""
-
-#: ../utils/net.c:343
-msgid "Functions on remote opened files"
-msgstr ""
-
-#: ../utils/net.c:344
-msgid " Use 'net help file' to get more information about 'net file' commands."
-msgstr ""
-
-#: ../utils/net.c:351
-msgid "Functions on shares"
-msgstr ""
-
-#: ../utils/net.c:352
-msgid " Use 'net help share' to get more information about 'net share' commands."
-msgstr ""
-
-#: ../utils/net.c:359
-msgid "Manage sessions"
-msgstr ""
-
-#: ../utils/net.c:360
-msgid " Use 'net help session' to get more information about 'net session' commands."
-msgstr ""
-
-#: ../utils/net.c:367
-msgid "List servers in workgroup"
-msgstr ""
-
-#: ../utils/net.c:368
-msgid " Use 'net help server' to get more information about 'net server' commands."
-msgstr ""
-
-#: ../utils/net.c:375
-msgid "List domains/workgroups on network"
-msgstr ""
-
-#: ../utils/net.c:376
-msgid " Use 'net help domain' to get more information about 'net domain' commands."
-msgstr ""
-
-#: ../utils/net.c:383
-msgid "Modify printer queue"
-msgstr ""
-
-#: ../utils/net.c:384
-msgid " Use 'net help printq' to get more information about 'net printq' commands."
-msgstr ""
-
-#: ../utils/net.c:391
-#, fuzzy
-msgid "Manage users"
-msgstr "Abilita Utente"
-
-#: ../utils/net.c:392
-msgid " Use 'net help user' to get more information about 'net user' commands."
-msgstr ""
-
-#: ../utils/net.c:399
-msgid "Manage groups"
-msgstr ""
-
-#: ../utils/net.c:400
-msgid " Use 'net help group' to get more information about 'net group' commands."
-msgstr ""
-
-#: ../utils/net.c:407
-msgid "Manage group mappings"
-msgstr ""
-
-#: ../utils/net.c:408
-msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands."
-msgstr ""
-
-#: ../utils/net.c:415
-msgid "Functions on the SAM database"
-msgstr ""
-
-#: ../utils/net.c:416
-msgid " Use 'net help sam' to get more information about 'net sam' commands."
-msgstr ""
-
-#: ../utils/net.c:423
-msgid "Validate username and password"
-msgstr ""
-
-#: ../utils/net.c:424
-msgid " Use 'net help validate' to get more information about 'net validate' commands."
-msgstr ""
-
-#: ../utils/net.c:431
-msgid "Modify group memberships"
-msgstr ""
-
-#: ../utils/net.c:432
-msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands."
-msgstr ""
-
-#: ../utils/net.c:438
-msgid "Execute remote command on a remote OS/2 server"
-msgstr ""
-
-#: ../utils/net.c:439
-msgid " Use 'net help admin' to get more information about 'net admin' commands."
-msgstr ""
-
-#: ../utils/net.c:445
-msgid "List/modify running services"
-msgstr ""
-
-#: ../utils/net.c:446
-msgid " Use 'net help service' to get more information about 'net service' commands."
-msgstr ""
-
-#: ../utils/net.c:453
-msgid "Change user password on target server"
-msgstr ""
-
-#: ../utils/net.c:454
-msgid " Use 'net help password' to get more information about 'net password' commands."
-msgstr ""
-
-#: ../utils/net.c:460
-#, fuzzy
-msgid "Change the trust password"
-msgstr "Cambia Password"
-
-#: ../utils/net.c:461
-msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'."
-msgstr ""
-
-#: ../utils/net.c:467
-#, fuzzy
-msgid "Change the secret password"
-msgstr "Cambia Password"
-
-#: ../utils/net.c:468
-msgid ""
-" net [options] changesecretpw\n"
-" Change the ADS domain member machine account password in secrets.tdb.\n"
-" Do NOT use this function unless you know what it does.\n"
-" Requires the -f flag to work."
-msgstr ""
-
-#: ../utils/net.c:477
-msgid "Show/set time"
-msgstr ""
-
-#: ../utils/net.c:478
-msgid " Use 'net help time' to get more information about 'net time' commands."
-msgstr ""
-
-#: ../utils/net.c:484
-msgid "Look up host names/IP addresses"
-msgstr ""
-
-#: ../utils/net.c:485
-msgid " Use 'net help lookup' to get more information about 'net lookup' commands."
-msgstr ""
-
-#: ../utils/net.c:491
-msgid "Join a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:492
-msgid " Use 'net help join' to get more information about 'net join'."
-msgstr ""
-
-#: ../utils/net.c:498
-msgid "Join/unjoin (remote) machines to/from a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:499
-msgid " Use 'net help dom' to get more information about 'net dom' commands."
-msgstr ""
-
-#: ../utils/net.c:505
-msgid "Operate on the cache tdb file"
-msgstr ""
-
-#: ../utils/net.c:506
-msgid " Use 'net help cache' to get more information about 'net cache' commands."
-msgstr ""
-
-#: ../utils/net.c:512
-msgid "Get the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:513
-msgid " net getlocalsid"
-msgstr ""
-
-#: ../utils/net.c:518
-msgid "Set the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:519
-msgid " net setlocalsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:524
-msgid "Set domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:525
-msgid " net setdomainsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:530
-msgid "Get domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:531
-msgid " net getdomainsid"
-msgstr ""
-
-#: ../utils/net.c:536
-msgid "Display the maximul RID currently used"
-msgstr ""
-
-#: ../utils/net.c:537
-msgid " net maxrid"
-msgstr ""
-
-#: ../utils/net.c:542
-#, fuzzy
-msgid "IDmap functions"
-msgstr "Opzioni Dominio"
-
-#: ../utils/net.c:543
-msgid " Use 'net help idmap to get more information about 'net idmap' commands."
-msgstr ""
-
-#: ../utils/net.c:549
-#, fuzzy
-msgid "Display server status"
-msgstr "Stato del Server"
-
-#: ../utils/net.c:550
-msgid " Use 'net help status' to get more information about 'net status' commands."
-msgstr ""
-
-#: ../utils/net.c:556
-msgid "Manage user-modifiable shares"
-msgstr ""
-
-#: ../utils/net.c:557
-msgid " Use 'net help usershare to get more information about 'net usershare' commands."
-msgstr ""
-
-#: ../utils/net.c:563
-msgid "Display list of all users with SID"
-msgstr ""
-
-#: ../utils/net.c:564
-msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'."
-msgstr ""
-
-#: ../utils/net.c:570
-msgid "Manage Samba registry based configuration"
-msgstr ""
-
-#: ../utils/net.c:571
-msgid " Use 'net help conf' to get more information about 'net conf' commands."
-msgstr ""
-
-#: ../utils/net.c:577
-msgid "Manage the Samba registry"
-msgstr ""
-
-#: ../utils/net.c:578
-msgid " Use 'net help registry' to get more information about 'net registry' commands."
-msgstr ""
-
-#: ../utils/net.c:584
-msgid "Open a lua interpreter"
-msgstr ""
-
-#: ../utils/net.c:585
-msgid " Use 'net help lua' to get more information about 'net lua' commands."
-msgstr ""
-
-#: ../utils/net.c:591
-msgid "Process Win32 *.evt eventlog files"
-msgstr ""
-
-#: ../utils/net.c:592
-msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands."
-msgstr ""
-
-#: ../utils/net.c:600
-msgid "Manage AFS tokens"
-msgstr ""
-
-#: ../utils/net.c:601
-msgid " Use 'net help afs' to get more information about 'net afs' commands."
-msgstr ""
-
-#: ../utils/net.c:609
-msgid "Print usage information"
-msgstr ""
-
-#: ../utils/net.c:610
-msgid " Use 'net help help' to list usage information for 'net' commands."
-msgstr ""
-
-#: ../utils/net.c:639
-msgid "Encrypt SMB transport (UNIX extended servers only)"
-msgstr ""
-
-#: ../utils/net.c:703
-msgid ""
-"\n"
-"Invalid ip address specified\n"
-msgstr ""
-
-#: ../utils/net.c:718
-#, c-format
-msgid ""
-"\n"
-"Invalid option %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:52 ../utils/net_ads.c:392
-msgid "CLDAP query failed!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:56
-#, fuzzy, c-format
-msgid ""
-"Information for Domain Controller: %s\n"
-"\n"
-msgstr "master dominio"
-
-#: ../utils/net_ads.c:59
-msgid "Response Type: "
-msgstr ""
-
-#: ../utils/net_ads.c:72
-#, c-format
-msgid "GUID: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:74
-#, c-format
-msgid ""
-"Flags:\n"
-"\tIs a PDC: %s\n"
-"\tIs a GC of the forest: %s\n"
-"\tIs an LDAP server: %s\n"
-"\tSupports DS: %s\n"
-"\tIs running a KDC: %s\n"
-"\tIs running time services: %s\n"
-"\tIs the closest DC: %s\n"
-"\tIs writable: %s\n"
-"\tHas a hardware clock: %s\n"
-"\tIs a non-domain NC serviced by LDAP server: %s\n"
-"\tIs NT6 DC that has some secrets: %s\n"
-"\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
-msgid "yes"
-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
-msgid "no"
-msgstr ""
-
-#: ../utils/net_ads.c:101
-#, c-format
-msgid "Forest:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:102
-#, c-format
-msgid "Domain:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:103
-#, fuzzy, c-format
-msgid "Domain Controller:\t%s\n"
-msgstr "master dominio"
-
-#: ../utils/net_ads.c:105
-#, c-format
-msgid "Pre-Win2k Domain:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:106
-#, c-format
-msgid "Pre-Win2k Hostname:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:108
-#, fuzzy, c-format
-msgid "User name:\t%s\n"
-msgstr " Nome Utente"
-
-#: ../utils/net_ads.c:110
-#, fuzzy, c-format
-msgid "Server Site Name :\t\t%s\n"
-msgstr "Stato del Server"
-
-#: ../utils/net_ads.c:111
-#, c-format
-msgid "Client Site Name :\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:113
-#, fuzzy, c-format
-msgid "NT Version: %d\n"
-msgstr "versione:"
-
-#: ../utils/net_ads.c:114
-#, c-format
-msgid "LMNT Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:115
-#, c-format
-msgid "LM20 Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:130
-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
-msgid "Didn't find the cldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:160
-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
-msgid "Didn't find the ldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:182
-msgid "Failed to get server's current time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:187
-#, c-format
-msgid "LDAP server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:188
-#, c-format
-msgid "LDAP server name: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:189
-#, c-format
-msgid "Realm: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:190
-#, c-format
-msgid "Bind Path: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:191
-#, c-format
-msgid "LDAP port: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:192
-#, fuzzy, c-format
-msgid "Server time: %s\n"
-msgstr "Stato del Server"
-
-#: ../utils/net_ads.c:195
-#, c-format
-msgid "KDC server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:196
-#, c-format
-msgid "Server time offset: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:374
-msgid ""
-"Usage:\n"
-"net ads workgroup\n"
-" Print the workgroup name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:397
-#, c-format
-msgid "Workgroup: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:458
-#, c-format
-msgid "ads_user_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:463
-#, c-format
-msgid "ads_user_add: User %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:477
-#, c-format
-msgid "Could not add user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:484 ../utils/net_ads.c:497
-#, fuzzy, c-format
-msgid "User %s added\n"
-msgstr " Nome Utente"
-
-#. password didn't set, delete account
-#: ../utils/net_ads.c:503
-#, c-format
-msgid "Could not add user %s. Error setting password %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:551
-#, c-format
-msgid "ads_user_info: failed to escape user %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:569
-#, c-format
-msgid "ads_search: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:575
-msgid "ads_pull_uint32 failed\n"
-msgstr ""
-
-#: ../utils/net_ads.c:582
-#, c-format
-msgid "ads_domain_sid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:642
-#, c-format
-msgid "User %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:652
-#, c-format
-msgid "User %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:656
-#, c-format
-msgid "Error deleting user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:669
-#, fuzzy
-msgid "Add an AD user"
-msgstr "Aggiungi Nuovo Utente"
-
-#: ../utils/net_ads.c:670
-msgid ""
-"net ads user add\n"
-" Add an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:677
-msgid "Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:678
-msgid ""
-"net ads user info\n"
-" Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:685
-#, fuzzy
-msgid "Delete an AD user"
-msgstr "Cancella Utente"
-
-#: ../utils/net_ads.c:686
-msgid ""
-"net ads user delete\n"
-" Delete an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:699
-msgid ""
-"Usage:\n"
-"net ads user\n"
-" List AD users\n"
-msgstr ""
-
-#: ../utils/net_ads.c:711
-msgid ""
-"\n"
-"User name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:751
-#, c-format
-msgid "ads_group_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:756
-#, c-format
-msgid "ads_group_add: Group %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:769
-#, c-format
-msgid "Group %s added\n"
-msgstr ""
-
-#: ../utils/net_ads.c:772
-#, c-format
-msgid "Could not add group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:801
-#, c-format
-msgid "Group %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:811
-#, c-format
-msgid "Group %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:815
-#, c-format
-msgid "Error deleting group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:828
-msgid "Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:829
-msgid ""
-"net ads group add\n"
-" Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:836
-#, fuzzy
-msgid "Delete an AD group"
-msgstr "Cancella Condivisione"
-
-#: ../utils/net_ads.c:837
-msgid ""
-"net ads group delete\n"
-" Delete an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:850
-msgid ""
-"Usage:\n"
-"net ads group\n"
-" List AD groups\n"
-msgstr ""
-
-#: ../utils/net_ads.c:862
-msgid ""
-"\n"
-"Group name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:884
-msgid ""
-"Usage:\n"
-"net ads status\n"
-" Display machine account details\n"
-msgstr ""
-
-#: ../utils/net_ads.c:896
-#, c-format
-msgid "ads_find_machine_acct: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:902
-#, c-format
-msgid "No machine account for '%s' found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:926
-msgid ""
-"Usage:\n"
-"net ads leave\n"
-" Leave an AD domain\n"
-msgstr ""
-
-#: ../utils/net_ads.c:933
-msgid "No realm set, are we joined ?\n"
-msgstr ""
-
-#: ../utils/net_ads.c:938 ../utils/net_ads.c:1260
-msgid "Could not initialise talloc context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:948
-msgid "Could not initialise unjoin context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:968
-#, c-format
-msgid "Failed to leave domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:975
-#, c-format
-msgid "Deleted account for '%s' in realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:982
-#, c-format
-msgid "Disabled account for '%s' in realm '%s'\n"
-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
-#, c-format
-msgid "Machine '%s' Left domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1035
-msgid ""
-"Usage:\n"
-"net ads testjoin\n"
-" Test if the existing join is ok\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1044
-#, c-format
-msgid "Join to domain is not valid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1049
-#, c-format
-msgid "Join is OK\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1060
-msgid "Host is not configured as a member server.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1065
-#, 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
-#, c-format
-msgid "realm must be set in in %s for ADS join to succeed.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1105
-#, c-format
-msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1212
-msgid ""
-"net ads join [options]\n"
-"Valid options:\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1214
-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
-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"
-" E.g. \"createcomputer=Computers/Servers/Unix\"\n"
-" NB: A backslash '\\' is used as escape at multiple levels and may\n"
-" need to be doubled or even quadrupled. It is not used as a separator.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1221
-msgid " osName=string Set the operatingSystem attribute during the join.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1222
-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"
-" Also, the operatingSystemService attribute is also set when along with\n"
-" the two other attributes.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1254
-msgid "Invalid configuration. Exiting....\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1283
-msgid "Please supply a valid OU path.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1290
-msgid "Please supply a operating system name.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1297
-msgid "Please supply a valid operating system version.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1308
-msgid "Please supply a valid domain name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1339
-#, c-format
-msgid ""
-"The workgroup in %s does not match the short\n"
-"domain name obtained from the server.\n"
-"Using the name [%s] from the server.\n"
-"You should set \"workgroup = %s\" in %s.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1347
-#, c-format
-msgid "Using short domain name -- %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1350
-#, c-format
-msgid "Joined '%s' to realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1353
-#, c-format
-msgid "Joined '%s' to domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1377 ../utils/net_ads.c:1433
-msgid "DNS update failed!\n"
-msgstr ""
-
-#. issue an overall failure message at the end.
-#: ../utils/net_ads.c:1391 ../utils/net_dom.c:198
-#, c-format
-msgid "Failed to join domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1414
-msgid ""
-"Usage:\n"
-"net ads dns register\n"
-" Register hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1421
-msgid "Could not initialise talloc context\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1439
-msgid "Successfully registered hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1447
-msgid "DNS update support not enabled at compile time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1466
-msgid ""
-"Usage:\n"
-"net ads dns gethostbyname <server> <name>\n"
-" Look up hostname from the AD\n"
-" server\tName server to use\n"
-" name\tName to look up\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1476
-#, c-format
-msgid "do_gethostbyname returned %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1488
-msgid "Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1489
-msgid ""
-"net ads dns register\n"
-" Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1496
-msgid "Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1497
-msgid ""
-"net ads dns gethostbyname\n"
-" Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1512
-msgid ""
-"\n"
-"net ads printer search <printer>\n"
-"\tsearch for a printer in the directory\n"
-"\n"
-"net ads printer info <printer> <server>\n"
-"\tlookup info in directory for printer on server\n"
-"\t(note: printer defaults to \"*\", server defaults to local)\n"
-"\n"
-"net ads printer publish <printername>\n"
-"\tpublish printer in directory\n"
-"\t(note: printer name is required)\n"
-"\n"
-"net ads printer remove <printername>\n"
-"\tremove printer from directory\n"
-"\t(note: printer name is required)\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1536
-msgid ""
-"Usage:\n"
-"net ads printer search\n"
-" List printers in the AD\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1549
-#, c-format
-msgid "ads_find_printer: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1556
-msgid "No results found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1576
-msgid ""
-"Usage:\n"
-"net ads printer info [printername [servername]]\n"
-" Display printer info from AD\n"
-" printername\tPrinter name or wildcard\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1603
-#, c-format
-msgid "Server '%s' not found: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1611 ../utils/net_ads.c:1794
-#, c-format
-msgid "Printer '%s' not found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1640
-msgid ""
-"Usage:\n"
-"net ads printer publish <printername> [servername]\n"
-" Publish printer in AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1675
-#, c-format
-msgid "Unable to open a connnection to %s to obtain data for %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1688
-#, c-format
-msgid "Could not find machine account for server %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1704 ../utils/net_ads.c:1713
-msgid "Internal error, out of memory!"
-msgstr ""
-
-#: ../utils/net_ads.c:1724
-#, c-format
-msgid "Unable to open a connnection to the spoolss pipe on %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1766
-msgid ""
-"Usage:\n"
-"net ads printer remove <printername> [servername]\n"
-" Remove a printer from the AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1787
-#, c-format
-msgid "ads_find_printer_on_server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1806
-#, c-format
-msgid "ads_del_dn: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1822
-msgid "Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1823
-msgid ""
-"net ads printer search\n"
-" Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1830
-msgid "Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1831
-msgid ""
-"net ads printer info\n"
-" Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1838
-msgid "Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1839
-msgid ""
-"net ads printer publish\n"
-" Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1846
-#, fuzzy
-msgid "Delete a printer"
-msgstr "Cancella Stampante"
-
-#: ../utils/net_ads.c:1847
-msgid ""
-"net ads printer remove\n"
-" Delete a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1869
-msgid ""
-"Usage:\n"
-"net ads password <username>\n"
-" Change password for user\n"
-" username\tName of user to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1877
-msgid "You must supply an administrator username/password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1883
-msgid "ERROR: You must say which username to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1915
-msgid "Didn't find the kerberos server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1923
-#, c-format
-msgid "Enter new password for %s:"
-msgstr ""
-
-#: ../utils/net_ads.c:1933 ../utils/net_ads.c:1982
-#, fuzzy, c-format
-msgid "Password change failed: %s\n"
-msgstr "Gestione Password"
-
-#: ../utils/net_ads.c:1938
-#, fuzzy, c-format
-msgid "Password change for %s completed.\n"
-msgstr "cambio password in modalita' demo rigettata"
-
-#: ../utils/net_ads.c:1952
-msgid ""
-"Usage:\n"
-"net ads changetrustpw\n"
-" Change the machine account's trust password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1977
-#, c-format
-msgid "Changing password for principal: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1988
-#, c-format
-msgid "Password change for principal %s succeeded.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1991
-msgid "Attempting to update system keytab with new password.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1993
-msgid "Failed to update system keytab.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2009
-msgid ""
-"\n"
-"net ads search <expression> <attributes...>\n"
-"\n"
-"Perform a raw LDAP search on a ADS server and dump the results.\n"
-"The expression is a standard LDAP search expression, and the\n"
-"attributes are a list of LDAP fields to show in the results.\n"
-"\n"
-"Example: net ads search '(objectCategory=group)' sAMAccountName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2046 ../utils/net_ads.c:2107 ../utils/net_ads.c:2171 ../utils/net_ads_gpo.c:250
-#, c-format
-msgid "search failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2051 ../utils/net_ads.c:2176 ../utils/net_ads_gpo.c:256
-#, c-format
-msgid ""
-"Got %d replies\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2069
-msgid ""
-"\n"
-"net ads dn <dn> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The DN standard LDAP DN, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' sAMAccountName\n"
-"\n"
-"Note: the DN must be provided properly escaped. See RFC 4514 for details\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2129
-msgid ""
-"\n"
-"net ads sid <sid> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The SID is in string format, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads sid 'S-1-5-32' distinguishedName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2164
-msgid "could not convert sid\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2193
-msgid ""
-"Usage:\n"
-"net ads keytab flush\n"
-" Delete the whole keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2214
-msgid ""
-"Usage:\n"
-"net ads keytab add <principal> [principal ...]\n"
-" Add principals to local keytab\n"
-" principal\tKerberos principal to add to keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2222
-msgid "Processing principals to add...\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2239
-msgid ""
-"Usage:\n"
-"net ads keytab create\n"
-" Create new default keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2258
-msgid ""
-"Usage:\n"
-"net ads keytab list [keytab]\n"
-" List a local keytab\n"
-" keytab\tKeytab to list\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2280
-msgid "Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2281
-msgid ""
-"net ads keytab add\n"
-" Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2288
-#, fuzzy
-msgid "Create a fresh keytab"
-msgstr "Crea Condivisione"
-
-#: ../utils/net_ads.c:2289
-msgid ""
-"net ads keytab create\n"
-" Create a fresh keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2296
-msgid "Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2297
-msgid ""
-"net ads keytab flush\n"
-" Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2304
-msgid "List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2305
-msgid ""
-"net ads keytab list\n"
-" List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2312
-msgid ""
-"\n"
-"Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2324
-msgid ""
-"Usage:\n"
-"net ads kerberos renew\n"
-" Renew TGT from existing credential cache\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2332
-#, c-format
-msgid "failed to renew kerberos ticket: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2347
-msgid ""
-"Usage:\n"
-"net ads kerberos pac\n"
-" Dump the Kerberos PAC\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2372
-#, c-format
-msgid "failed to query kerberos PAC: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2381
-#, c-format
-msgid "The Pac: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2397
-msgid ""
-"Usage:\n"
-"net ads kerberos kinit\n"
-" Get Ticket Granting Ticket (TGT) for the user\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2421
-#, c-format
-msgid "failed to kinit password: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2435
-msgid "Retrieve Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2436
-msgid ""
-"net ads kerberos kinit\n"
-" Receive Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2443
-msgid "Renew Ticket Granting Ticket from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2444
-msgid ""
-"net ads kerberos renew\n"
-" Renew Ticket Granting Ticket (TGT) from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2452
-msgid "Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2453
-msgid ""
-"net ads kerberos pac\n"
-" Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2469
-msgid "Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2470
-msgid ""
-"net ads info\n"
-" Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2477
-msgid "Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2478
-msgid ""
-"net ads join\n"
-" Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2485
-msgid "Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2486
-msgid ""
-"net ads testjoin\n"
-" Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2493
-msgid "Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2494
-msgid ""
-"net ads leave\n"
-" Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2501
-msgid "Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2502
-msgid ""
-"net ads status\n"
-" Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2509
-msgid "List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2510
-msgid ""
-"net ads user\n"
-" List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2517
-msgid "List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2518
-msgid ""
-"net ads group\n"
-" List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2525
-msgid "Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2526
-msgid ""
-"net ads dns\n"
-" Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2533
-#, fuzzy
-msgid "Change user passwords"
-msgstr "Cambia Password"
-
-#: ../utils/net_ads.c:2534
-msgid ""
-"net ads password\n"
-" Change user passwords"
-msgstr ""
-
-#: ../utils/net_ads.c:2541
-#, fuzzy
-msgid "Change trust account password"
-msgstr "Cambia Password"
-
-#: ../utils/net_ads.c:2542
-msgid ""
-"net ads changetrustpw\n"
-" Change trust account password"
-msgstr ""
-
-#: ../utils/net_ads.c:2549
-msgid "List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2550
-msgid ""
-"net ads printer\n"
-" List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2557
-msgid "Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2558
-msgid ""
-"net ads search\n"
-" Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2565
-msgid "Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2566
-msgid ""
-"net ads dn\n"
-" Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2573
-msgid "Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2574
-msgid ""
-"net ads sid\n"
-" Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2581
-msgid "Display workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2582
-msgid ""
-"net ads workgroup\n"
-" Display the workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2589
-msgid "Perfom CLDAP query on DC"
-msgstr ""
-
-#: ../utils/net_ads.c:2590
-msgid ""
-"net ads lookup\n"
-" Find the ADS DC using CLDAP lookups"
-msgstr ""
-
-#: ../utils/net_ads.c:2597
-msgid "Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2598
-msgid ""
-"net ads keytab\n"
-" Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2605
-msgid "Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2606
-msgid ""
-"net ads gpo\n"
-" Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2613
-msgid "Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2614
-msgid ""
-"net ads kerberos\n"
-" Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2627
-msgid "ADS support not compiled in\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:40
-msgid ""
-"Usage:\n"
-"net ads gpo refresh <username|machinename>\n"
-" Lists all GPOs assigned to an account and downloads them\n"
-" username\tUser to refresh GPOs for\n"
-" machinename\tMachine to refresh GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:56
-#, c-format
-msgid "failed to connect AD server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:62
-#, c-format
-msgid "failed to find samaccount for %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:70
-#, c-format
-msgid ""
-"\n"
-"%s: '%s' has dn: '%s'\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "machine"
-msgstr " Macchina Remota"
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "user"
-msgstr "Utente"
-
-#: ../utils/net_ads_gpo.c:74
-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
-#, 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
-msgid "finished\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:87
-msgid "* fetching GPO List "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:96
-msgid "* Refreshing Group Policy Data "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:107
-msgid "* storing GPO list to registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:122
-msgid "* dumping GPO list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:151
-msgid "* re-reading GPO list from registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:167
-msgid "* dumping GPO list from registry\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:226
-msgid ""
-"Usage:\n"
-"net ads gpo listall\n"
-" List all GPOs on the DC\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:270
-#, fuzzy, c-format
-msgid "ads_parse_gpo failed: %s\n"
-msgstr "Gestione Password"
-
-#: ../utils/net_ads_gpo.c:300
-msgid ""
-"Usage:\n"
-"net ads gpo list <username|machinename>\n"
-" Lists all GPOs for machine/user\n"
-" username\tUser to list GPOs for\n"
-" machinename\tMachine to list GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:327
-#, c-format
-msgid "%s: '%s' has dn: '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:451
-msgid ""
-"Usage:\n"
-"net ads gpo linkget <container>\n"
-" Lists gPLink of a containter\n"
-" container\tContainer to get link for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:470
-#, c-format
-msgid "get link for %s failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:492
-msgid ""
-"Usage:\n"
-"net ads gpo linkadd <linkdn> <gpodn> [options]\n"
-" Link a container to a GPO\n"
-" linkdn\tContainer to link to a GPO\n"
-" gpodn\tGPO to link container to\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:497
-msgid ""
-"note: DNs must be provided properly escaped.\n"
-"See RFC 4514 for details\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:518
-#, c-format
-msgid "link add failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:579
-msgid ""
-"Usage:\n"
-"net ads gpo getgpo <gpo>\n"
-" List speciefied GPO\n"
-" gpo\t\tGPO to list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:603
-#, c-format
-msgid "get gpo for [%s] failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:634
-msgid "List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:635
-msgid ""
-"net ads gpo getgpo\n"
-" List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:642
-msgid "Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:643
-msgid ""
-"net ads gpo linkadd\n"
-" Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:660
-msgid "Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:661
-msgid ""
-"net ads gpo linkget\n"
-" Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:668
-msgid "Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:669
-msgid ""
-"net ads gpo list\n"
-" Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:676
-msgid "Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:677
-msgid ""
-"net ads gpo listall\n"
-" Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:684
-msgid "Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:686
-msgid ""
-"net ads gpo refresh\n"
-" Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_afs.c:25
-msgid ""
-" net afs key filename\n"
-"\tImports a OpenAFS KeyFile into our secrets.tdb\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:27
-msgid ""
-" net afs impersonate <user> <cell>\n"
-"\tCreates a token for user@cell\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:38
-msgid "usage: 'net afs key <keyfile> cell'\n"
-msgstr ""
-
-#: ../utils/net_afs.c:43
-msgid "Could not open secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:48
-#, c-format
-msgid "Could not open %s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:53
-msgid "Could not read keyfile\n"
-msgstr ""
-
-#: ../utils/net_afs.c:58
-msgid "Could not write keyfile to secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:71
-#, c-format
-msgid "Usage: net afs impersonate <user> <cell>\n"
-msgstr ""
-
-#: ../utils/net_afs.c:78
-#, c-format
-msgid "Could not create token\n"
-msgstr ""
-
-#: ../utils/net_afs.c:83
-#, c-format
-msgid "Could not set token into kernel\n"
-msgstr ""
-
-#: ../utils/net_afs.c:87
-#, c-format
-msgid "Success: %s@%s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:98
-msgid "Import an OpenAFS keyfile"
-msgstr ""
-
-#: ../utils/net_afs.c:99
-msgid ""
-"net afs key <filename>\n"
-" Import kefile from <filename>."
-msgstr ""
-
-#: ../utils/net_afs.c:106
-msgid "Get a user token"
-msgstr ""
-
-#: ../utils/net_afs.c:107
-msgid ""
-"net afs impersonate <user> <cell>\n"
-" Create token for user@cell"
-msgstr ""
-
-#: ../utils/net_cache.c:74
-#, c-format
-msgid "Key: %s\t Timeout: %s\t Value: %s %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:75
-msgid "(expired)"
-msgstr ""
-
-#: ../utils/net_cache.c:84
-#, c-format
-msgid "Couldn't delete entry! key = %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:158
-msgid ""
-"\n"
-"Usage:\n"
-"net cache add <key string> <data string> <timeout>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:170
-msgid "Invalid timeout argument.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:175
-msgid "New cache entry stored successfully.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:179
-msgid "Entry couldn't be added. Perhaps there's already such a key.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:195
-msgid ""
-"\n"
-"Usage: net cache del <key string>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:200
-msgid "Entry deleted.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:204
-msgid "Couldn't delete specified entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:223
-msgid ""
-"\n"
-"Usage: net cache get <key>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:233
-msgid "Failed to find entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:250
-msgid "Usage: net cache search <pattern>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:272
-msgid ""
-"Usage:\n"
-"net cache list\n"
-" List all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:293 ../utils/net_cache.c:306
-msgid ""
-"Usage:\n"
-"net cache flush\n"
-" Delete all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:331
-msgid "Add new cache entry"
-msgstr ""
-
-#: ../utils/net_cache.c:332
-msgid ""
-"net cache add <key string> <data string> <timeout>\n"
-" Add new cache entry.\n"
-" key string\tKey string to add cache data under.\n"
-" data string\tData to store under given key.\n"
-" timeout\tTimeout for cache data."
-msgstr ""
-
-#: ../utils/net_cache.c:342
-msgid "Delete existing cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:343
-msgid ""
-"net cache del <key string>\n"
-" Delete existing cache entry by key.\n"
-" key string\tKey string to delete."
-msgstr ""
-
-#: ../utils/net_cache.c:351
-msgid "Get cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:352
-msgid ""
-"net cache get <key string>\n"
-" Get cache entry by key.\n"
-" key string\tKey string to look up cache entry for."
-msgstr ""
-
-#: ../utils/net_cache.c:361
-msgid "Search entry by pattern"
-msgstr ""
-
-#: ../utils/net_cache.c:362
-msgid ""
-"net cache search <pattern>\n"
-" Search entry by pattern.\n"
-" pattern\tPattern to search for in cache."
-msgstr ""
-
-#: ../utils/net_cache.c:370
-msgid "List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:371
-msgid ""
-"net cache list\n"
-" List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:378
-#, fuzzy
-msgid "Delete all cache entries"
-msgstr "Cancella Stampante"
-
-#: ../utils/net_cache.c:379
-msgid ""
-"net cache flush\n"
-" Delete all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:386
-msgid "Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_cache.c:387
-msgid ""
-"net cache stabilize\n"
-" Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_conf.c:42
-msgid "USAGE: net conf list\n"
-msgstr ""
-
-#: ../utils/net_conf.c:49
-msgid ""
-"USAGE: net conf import [--test|-T] <filename> [<servicename>]\n"
-"\t[--test|-T] testmode - do not act, just print what would be done\n"
-"\t<servicename> only import service <servicename>, ignore the rest\n"
-msgstr ""
-
-#: ../utils/net_conf.c:61
-msgid "USAGE: net conf listshares\n"
-msgstr ""
-
-#: ../utils/net_conf.c:68
-msgid "USAGE: net conf drop\n"
-msgstr ""
-
-#: ../utils/net_conf.c:75
-msgid "USAGE: net conf showshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:82
-msgid ""
-"USAGE: net conf addshare <sharename> <path> [writeable={y|N} [guest_ok={y|N} [<comment>]]\n"
-"\t<sharename> the new share name.\n"
-"\t<path> the path on the filesystem to export.\n"
-"\twriteable={y|N} set \"writeable to \"yes\" or \"no\" (default) on this share.\n"
-"\tguest_ok={y|N} set \"guest ok\" to \"yes\" or \"no\" (default) on this share.\n"
-"\t<comment> optional comment for the new share.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:97
-msgid "USAGE: net conf delshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:104
-msgid "USAGE: net conf setparm <section> <param> <value>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:111
-msgid "USAGE: net conf getparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:118
-msgid "USAGE: net conf delparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:125
-msgid "USAGE: net conf getincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:132
-msgid "USAGE: net conf setincludes <section> [<filename>]*\n"
-msgstr ""
-
-#: ../utils/net_conf.c:139
-msgid "USAGE: net conf delincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:251
-#, c-format
-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
-msgid "error: out of memory!\n"
-msgstr ""
-
-#: ../utils/net_conf.c:324
-#, c-format
-msgid "error loading file '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:330
-msgid ""
-"\n"
-"TEST MODE - would import the following configuration:\n"
-"\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "error committing transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:427 ../utils/net_conf.c:828
-#, c-format
-msgid "error cancelling transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:484
-#, c-format
-msgid "Error deleting configuration: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:521
-#, c-format
-msgid "error getting share parameters: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:630
-#, c-format
-msgid "ERROR: share name %s contains invalid characters (any of %s)\n"
-msgstr ""
-
-#: ../utils/net_conf.c:638
-msgid "ERROR: 'global' is not a valid share name.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:643
-#, c-format
-msgid "ERROR: share %s already exists.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:652
-#, c-format
-msgid "Error: path '%s' is not an absolute path.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:659
-#, c-format
-msgid ""
-"ERROR: cannot stat path '%s' to ensure this is a directory.\n"
-"Error was '%s'.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:668
-#, c-format
-msgid "ERROR: path '%s' is not a directory.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:679
-#, c-format
-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
-#, c-format
-msgid "Error setting parameter %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:748
-#, c-format
-msgid "Error deleting share %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:801
-#, c-format
-msgid "Error creating share '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:810
-#, c-format
-msgid "Error setting value '%s': %s\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "Error: given parameter '%s' is not set.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:883
-#, c-format
-msgid "Error getting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:939
-#, c-format
-msgid "Error deleting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:977
-#, c-format
-msgid "error getting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1023
-#, c-format
-msgid "error setting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1056
-#, c-format
-msgid "error deleting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1136 ../utils/net_help.c:36
-msgid "Usage:\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1160
-msgid "Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1162
-msgid ""
-"net conf list\n"
-" Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1171
-msgid "Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1173
-msgid ""
-"net conf import\n"
-" Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1181
-msgid "List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1182
-msgid ""
-"net conf listshares\n"
-" List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1189
-msgid "Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1190
-msgid ""
-"net conf drop\n"
-" Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1197
-msgid "Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1198
-msgid ""
-"net conf showshare\n"
-" Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1205
-#, fuzzy
-msgid "Create a new share."
-msgstr "Crea Condivisione"
-
-#: ../utils/net_conf.c:1206
-msgid ""
-"net conf addshare\n"
-" Create a new share."
-msgstr ""
-
-#: ../utils/net_conf.c:1213
-#, fuzzy
-msgid "Delete a share."
-msgstr "Cancella Condivisione"
-
-#: ../utils/net_conf.c:1214
-msgid ""
-"net conf delshare\n"
-" Delete a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1221
-#, fuzzy
-msgid "Store a parameter."
-msgstr "Parametri Condivisioni"
-
-#: ../utils/net_conf.c:1222
-msgid ""
-"net conf setparm\n"
-" Store a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1229
-msgid "Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1230
-msgid ""
-"net conf getparm\n"
-" Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1237
-#, fuzzy
-msgid "Delete a parameter."
-msgstr "Cancella Stampante"
-
-#: ../utils/net_conf.c:1238
-msgid ""
-"net conf delparm\n"
-" Delete a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1245
-msgid "Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1246
-msgid ""
-"net conf getincludes\n"
-" Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1253
-msgid "Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1254
-msgid ""
-"net conf setincludes\n"
-" Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1261
-msgid "Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1262
-msgid ""
-"net conf setincludes\n"
-" Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_dom.c:25
-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
-msgid ""
-"usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine\n"
-msgstr ""
-
-#: ../utils/net_dom.c:31
-msgid ""
-"usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer\n"
-msgstr ""
-
-#: ../utils/net_dom.c:91
-#, c-format
-msgid "Failed to unjoin domain: %s\n"
-msgstr ""
-
-#: ../utils/net_dom.c:97 ../utils/net_dom.c:204
-msgid "Shutting down due to a domain membership change"
-msgstr ""
-
-#: ../utils/net_dom.c:290
-#, c-format
-msgid "Failed to rename machine: "
-msgstr ""
-
-#: ../utils/net_dom.c:292
-#, c-format
-msgid "Computer is not joined to a Domain\n"
-msgstr ""
-
-#: ../utils/net_dom.c:301
-msgid "Shutting down due to a computer rename"
-msgstr ""
-
-#: ../utils/net_dom.c:338
-#, fuzzy
-msgid "Join a remote machine"
-msgstr " Macchina Remota"
-
-#: ../utils/net_dom.c:339
-msgid ""
-"net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Join a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:347
-#, fuzzy
-msgid "Unjoin a remote machine"
-msgstr " Macchina Remota"
-
-#: ../utils/net_dom.c:348
-msgid ""
-"net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:356
-msgid "Rename a computer that is joined to a domain"
-msgstr ""
-
-#: ../utils/net_dom.c:357
-msgid ""
-"net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer"
-msgstr ""
-
-#: ../utils/net_eventlog.c:46
-msgid "usage: net eventlog dump <file.evt>\n"
-msgstr ""
-
-#: ../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
-#, fuzzy, c-format
-msgid "evt pull failed: %s\n"
-msgstr "Gestione Password"
-
-#: ../utils/net_eventlog.c:102
-msgid "usage: net eventlog import <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:116
-#, fuzzy, c-format
-msgid "evt header pull failed: %s\n"
-msgstr "Gestione Password"
-
-#: ../utils/net_eventlog.c:122
-msgid "input file is wrapped, cannot proceed\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:138 ../utils/net_eventlog.c:203
-#, c-format
-msgid "can't open the eventlog TDB (%s)\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:158
-#, c-format
-msgid "can't write to the eventlog: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:164
-#, c-format
-msgid "wrote %d entries to tdb\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:197
-msgid "usage: net eventlog export <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:214
-#, c-format
-msgid "failed to save evt file: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:243
-msgid "Dump eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:244
-msgid ""
-"net eventlog dump\n"
-" Dump win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:251
-#, fuzzy
-msgid "Import eventlog"
-msgstr "Nota Importante:"
-
-#: ../utils/net_eventlog.c:252
-msgid ""
-"net eventlog import\n"
-" Import win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:259
-msgid "Export eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:260
-msgid ""
-"net eventlog export\n"
-" Export win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_file.c:27
-msgid ""
-"net [<method>] file [misc. options] [targets]\n"
-"\tlists all open files on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:29
-msgid ""
-"net [<method>] file USER <username> [misc. options] [targets]\n"
-"\tlists all files opened by username on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:32
-msgid ""
-"net [<method>] file CLOSE <id> [misc. options] [targets]\n"
-"\tcloses specified file on target server\n"
-msgstr ""
-
-#: ../utils/net_file.c:34
-msgid ""
-"net [rap] file INFO <id> [misc. options] [targets]\n"
-"\tdisplays information about the specified open file\n"
-msgstr ""
-
-#: ../utils/net_group.c:27
-msgid ""
-"net [<method>] group [misc. options] [targets]\n"
-"\tList user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:29
-msgid ""
-"net rpc group LIST [global|local|builtin]* [misc. options]\n"
-"\tList specific user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:31
-msgid ""
-"net [<method>] group DELETE <name> [misc. options] [targets]\n"
-"\tDelete specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:34
-msgid ""
-"\n"
-"net [<method>] group ADD <name> [-C comment] [-c container] [misc. options] [targets]\n"
-"\tCreate specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:37
-msgid ""
-"\n"
-"net rpc group MEMBERS <name>\n"
-"\tList Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:38
-msgid ""
-"\n"
-"net rpc group ADDMEM <group> <member>\n"
-"\tAdd Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:40
-msgid ""
-"\n"
-"net rpc group DELMEM <group> <member>\n"
-"\tDelete Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:44
-msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:46
-msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:48
-msgid "\t-L or --localgroup\t\tWhen adding groups, create a local group (alias)\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:38
-#, c-format
-msgid "NT Group %s doesn't exist in mapping DB\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:46
-#, c-format
-msgid "converting sid %s from a string failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:65
-#, c-format
-msgid "\tSID : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:66
-#, c-format
-msgid "\tUnix gid : %u\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:67
-#, c-format
-msgid "\tUnix group: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:68
-#, c-format
-msgid "\tGroup type: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:70
-#, c-format
-msgid "\tComment : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:84
-msgid ""
-"net groupmap list [verbose] [ntgroup=NT group] [sid=SID]\n"
-" verbose\tPrint verbose list\n"
-" ntgroup\tNT group to list\n"
-" 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
-#, fuzzy, c-format
-msgid ""
-"Usage:\n"
-"%s\n"
-msgstr " Nome Utente"
-
-#: ../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
-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
-#, fuzzy, c-format
-msgid "Bad option: %s\n"
-msgstr "Opzioni Basilari"
-
-#: ../utils/net_groupmap.c:139
-msgid "Failure to local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:181
-msgid "net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:195
-#, fuzzy, c-format
-msgid ""
-"Usage\n"
-"%s\n"
-msgstr " Nome Utente"
-
-#: ../utils/net_groupmap.c:205
-#, c-format
-msgid "RID must be greater than %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:235 ../utils/net_groupmap.c:380
-msgid "must supply a comment string\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:259
-#, c-format
-msgid "unknown group type %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:276
-#, c-format
-msgid "Can't lookup UNIX group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:282
-#, c-format
-msgid "Unix group %s already mapped to SID %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:289
-msgid "No rid or sid specified, choosing a RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:292
-msgid "Could not get new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:297
-#, c-format
-msgid "Got RID %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:328
-#, c-format
-msgid "adding entry for group %s failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:332
-#, c-format
-msgid "Successfully added group %s to the mapping db as a %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:349
-msgid "net groupmap modify {ntgroup=<string>|sid=<SID>} [comment=<string>] [unixgroup=<string>] [type=<domain|local>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:388
-msgid "must supply a group name\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:434
-msgid "Failed to find local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:443
-msgid "Can't map to an unknown group type.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:449
-msgid "You can only change between domain and local groups.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:466
-#, c-format
-msgid "Unable to lookup UNIX group %s. Make sure the group exists.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:476
-msgid "Could not update group database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:480
-#, c-format
-msgid "Updated mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:491
-msgid "net groupmap delete {ntgroup=<string>|sid=<SID>}"
-msgstr ""
-
-#: ../utils/net_groupmap.c:532
-#, c-format
-msgid "Unable to resolve group %s to a SID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:539
-#, c-format
-msgid "Failed to remove group %s from the mapping db!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:544
-#, c-format
-msgid "Sucessfully removed %s from the mapping db\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:557
-msgid "Usage: net groupmap set \"NT Group\" [\"unix group\"] [-C \"comment\"] [-L] [-D]\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:563
-msgid "Can only specify -L or -D, not both\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:573
-#, c-format
-msgid "Could not find unix group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:594
-#, c-format
-msgid "Could not find group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:605
-msgid "Could not allocate new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:622
-#, c-format
-msgid "Could not add mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:633
-#, c-format
-msgid "Can't change type of the BUILTIN group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:660
-#, c-format
-msgid "Could not update group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:674
-msgid ""
-"Usage:\n"
-"net groupmap cleanup\n"
-" Delete all group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:682
-msgid "Could not list group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:689
-#, c-format
-msgid "Group %s is not mapped\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:692
-#, c-format
-msgid "Deleting mapping for NT Group %s, sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:712
-msgid "Usage: net groupmap addmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:717
-#, c-format
-msgid "Could not add sid %s to alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:733
-msgid "Usage: net groupmap delmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:738
-#, c-format
-msgid "Could not delete sid %s from alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:755
-msgid "Usage: net groupmap listmem alias-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:764
-#, c-format
-msgid "Could not list members for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:791
-#, c-format
-msgid "Could not list memberships for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:814
-msgid "Usage: net groupmap memberof sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:820 ../utils/net_idmap.c:345
-msgid "talloc_init failed\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:827
-msgid "Could not get domain sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:850
-msgid "Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:851
-msgid ""
-"net groupmap add\n"
-" Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:858
-msgid "Update a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:859
-msgid ""
-"net groupmap modify\n"
-" Modify an existing group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:866
-msgid "Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:867
-msgid ""
-"net groupmap delete\n"
-" Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:874
-msgid "Set group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:875
-msgid ""
-"net groupmap set\n"
-" Set a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:882
-msgid "Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:883
-msgid ""
-"net groupmap cleanup\n"
-" Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:890
-msgid "Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:891
-msgid ""
-"net groupmap addmem\n"
-" Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:898
-msgid "Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:899
-msgid ""
-"net groupmap delmem\n"
-" Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:906
-msgid "List foreign group members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:907
-msgid ""
-"net groupmap listmem\n"
-" List foreign alias members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:914
-msgid "List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:915
-msgid ""
-"net groupmap memberships\n"
-" List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:922
-msgid "List current group map"
-msgstr ""
-
-#: ../utils/net_groupmap.c:923
-msgid ""
-"net groupmap list\n"
-" List current group map"
-msgstr ""
-
-#: ../utils/net_help.c:39
-#, c-format
-msgid "net %s usage:\n"
-msgstr ""
-
-#: ../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
-msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:27 ../utils/net_join.c:30
-msgid "\trpc\t\t\t\tDCE-RPC\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:28
-msgid "\trap\t\t\t\tRAP (older systems)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:35
-msgid "Valid targets: choose one (none defaults to localhost)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:36
-msgid "\t-S or --server=<server>\t\tserver name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:37
-msgid "\t-I or --ipaddress=<ipaddr>\taddress of target server\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:38
-msgid "\t-w or --workgroup=<wg>\t\ttarget workgroup or domain\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:41
-#, fuzzy
-msgid "Valid miscellaneous options are:\n"
-msgstr "Opzioni Generiche"
-
-#. misc options
-#: ../utils/net_help_common.c:42
-msgid "\t-p or --port=<port>\t\tconnection port on target\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:43
-msgid "\t-W or --myworkgroup=<wg>\tclient workgroup\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:44
-msgid "\t-d or --debuglevel=<level>\tdebug level (0-10)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:45
-msgid "\t-n or --myname=<name>\t\tclient name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:46
-msgid "\t-U or --user=<name>\t\tuser name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:47
-msgid "\t-s or --configfile=<path>\tpathname of smb.conf file\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:48
-msgid "\t-l or --long\t\t\tDisplay full information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:49
-msgid "\t-V or --version\t\t\tPrint samba version information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:50
-msgid "\t-P or --machine-pass\t\tAuthenticate as machine account\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:52
-msgid "\t-e or --encrypt\t\t\tEncrypt SMB transport (UNIX extended servers only)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:54
-msgid "\t-k or --kerberos\t\tUse kerberos (active directory) authentication\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:25
-msgid "Out of memory!\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:39
-#, c-format
-msgid "USER HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:44
-#, c-format
-msgid "GROUP HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:63
-msgid ""
-"Usage:\n"
-"net idmap dump <inputfile>\n"
-" Dump current ID mapping.\n"
-" inputfile\tTDB file to read mappings from.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:73
-#, c-format
-msgid "Could not open idmap: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:94
-msgid ""
-"Usage:\n"
-"net idmap restore [inputfile]\n"
-" Restore ID mappings from file\n"
-" inputfile\tFile to load ID mappings from. If not given, load data from stdin.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:104
-msgid "To use net idmap Winbindd must be running.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:142
-#, c-format
-msgid "Could not set USER HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:151
-#, c-format
-msgid "Could not set GROUP HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:156
-#, c-format
-msgid "ignoring invalid line [%s]\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:163
-#, c-format
-msgid "ignoring invalid sid [%s]: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:175
-#, c-format
-msgid "Could not set mapping of %s %lu to sid %s: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:196 ../utils/net_idmap.c:202
-msgid "Not Implemented yet\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:240
-msgid ""
-"Usage:\n"
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set the secret for the specified domain (or alloc module)\n"
-" DOMAIN\tDomain to set secret for.\n"
-" alloc\tSet secret for the alloc module\n"
-" secret\tNew secret to set.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:271
-msgid "The only currently supported backend is LDAP\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:281
-#, c-format
-msgid "Missing ldap_user_dn option for domain %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:292
-msgid "Missing ldap_user_dn option for alloc backend\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:302
-msgid "Failed to store secret\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:307
-msgid "Secret stored\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:313
-msgid ""
-"net idmap dump <inputfile>\n"
-" Dump current id mapping\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:316
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin\n"
-msgstr ""
-
-#. Deliberately *not* document net idmap delete
-#: ../utils/net_idmap.c:321
-msgid ""
-"net idmap secret <DOMAIN>|alloc <secret>\n"
-" Set the secret for the specified DOMAIN (or the alloc module)\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:339
-msgid "usage: net idmap aclmapset <tdb> <src-sid> <dst-sid>\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:351
-#, fuzzy, c-format
-msgid "db_open failed: %s\n"
-msgstr "Gestione Password"
-
-#: ../utils/net_idmap.c:356 ../utils/net_idmap.c:361
-#, c-format
-msgid "%s is not a valid sid\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:367
-msgid "talloc_strdup failed\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:373
-msgid "could not fetch db record\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:381
-#, c-format
-msgid "could not store record: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:402
-msgid "Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:403
-msgid ""
-"net idmap dump\n"
-" Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:410
-msgid "Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:411
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:418 ../utils/net_idmap.c:426
-msgid "Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:419
-msgid ""
-"net idmap setmap\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:427
-msgid ""
-"net idmap delete\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:434
-msgid "Set secret for specified domain"
-msgstr ""
-
-#: ../utils/net_idmap.c:435
-msgid ""
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set secret for specified domain or alloc module"
-msgstr ""
-
-#: ../utils/net_idmap.c:442
-msgid "Set acl map"
-msgstr ""
-
-#: ../utils/net_idmap.c:443
-msgid ""
-"net idmap aclmapset\n"
-" Set acl map"
-msgstr ""
-
-#: ../utils/net_join.c:26
-msgid ""
-"\n"
-"net [<method>] join [misc. options]\n"
-"\tjoins this server to a domain\n"
-msgstr ""
-
-#: ../utils/net_join.c:47
-msgid "ADS join did not work, falling back to RPC...\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:25
-msgid ""
-" net lookup [host] HOSTNAME[#<type>]\n"
-"\tgives IP for a hostname\n"
-"\n"
-" net lookup ldap [domain]\n"
-"\tgives IP of domain's ldap server\n"
-"\n"
-" net lookup kdc [realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup pdc [domain|realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup dc [domain]\n"
-"\tgives IP of domains Domain Controllers\n"
-"\n"
-" net lookup master [domain|wg]\n"
-"\tgive IP of master browser\n"
-"\n"
-" net lookup name [name]\n"
-"\tLookup name's sid and type\n"
-"\n"
-" net lookup sid [sid]\n"
-"\tGive sid's name and type\n"
-"\n"
-" net lookup dsgetdcname [name] [flags] [sitename]\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:112
-msgid "net_lookup_ldap: talloc_init() failed!\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:325
-msgid "usage: net lookup name <name>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:331 ../utils/net_lookup.c:358
-#, c-format
-msgid "Could not lookup name %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:347
-msgid "usage: net lookup sid <sid>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:352
-#, c-format
-msgid "Could not convert %s to SID\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:378
-msgid "usage: net lookup dsgetdcname <name> <flags> <sitename>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:404
-#, c-format
-msgid "failed with: %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:437
-msgid ""
-"\n"
-"Usage: \n"
-msgstr ""
-
-#: ../utils/net_lua.c:60
-msgid "connect: Expected IP-Address"
-msgstr ""
-
-#: ../utils/net_lua.c:65
-msgid "connect: Expected port"
-msgstr ""
-
-#: ../utils/net_lua.c:84
-#, fuzzy, c-format
-msgid "connect failed: %s"
-msgstr "Gestione Password"
-
-#: ../utils/net_lua.c:132
-#, c-format
-msgid "socket domain %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:144
-#, c-format
-msgid "socket type %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:155
-#, fuzzy, c-format
-msgid "socket() failed: %s"
-msgstr "Gestione Password"
-
-#: ../utils/net_lua.c:278
-msgid "evt_reference_thread failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:287
-msgid "event_add_timed failed"
-msgstr ""
-
-#: ../utils/net_lua.c:300
-msgid "event_once called from non-base thread"
-msgstr ""
-
-#: ../utils/net_lua.c:323
-msgid "event_context_init failed"
-msgstr ""
-
-#: ../utils/net_lua.c:353
-msgid "lua_newstate failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:371
-msgid "luaL_dofile returned an error\n"
-msgstr ""
-
-#: ../utils/net_lua.c:376
-msgid "luaL_dostring returned an error\n"
-msgstr ""
diff --git a/source3/po/ja.msg b/source3/po/ja.msg
index e3cc5ad5f1..52ec57105f 100644
--- a/source3/po/ja.msg
+++ b/source3/po/ja.msg
@@ -18,8 +18,7 @@
msgid ""
msgstr ""
"Project-Id-Version: i18n-swat\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-30 12:18+0200\n"
+"POT-Creation-Date: 2003-10-06 05:30+0900\n"
"PO-Revision-Date: 2003-09-23 04:38+900\n"
"Last-Translator: TAKAHASHI Motonobu <monyo@samba.org>\n"
"Language-Team: Samba Users Group Japan <sugj-tech@samba.gr.jp>\n"
@@ -27,4015 +26,569 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: ../web/swat.c:153
+#: ../web/swat.c:117
#, c-format
msgid "ERROR: Can't open %s"
msgstr "%s をオープンできません"
-#: ../web/swat.c:241
+#: ../web/swat.c:200
msgid "Help"
msgstr "ヘルプ"
-#: ../web/swat.c:247 ../web/swat.c:272 ../web/swat.c:293 ../web/swat.c:302 ../web/swat.c:311 ../web/swat.c:317 ../web/swat.c:329 ../web/swat.c:343
+#: ../web/swat.c:206 ../web/swat.c:220 ../web/swat.c:235 ../web/swat.c:243 ../web/swat.c:252 ../web/swat.c:261 ../web/swat.c:267 ../web/swat.c:273 ../web/swat.c:286
msgid "Set Default"
msgstr "デフォルト値"
-#: ../web/swat.c:465
+#: ../web/swat.c:408
#, c-format
msgid "failed to open %s for writing"
msgstr "%s を書き込み用にオープンできません"
-#: ../web/swat.c:488
+#: ../web/swat.c:431
#, c-format
msgid "Can't reload %s"
msgstr "%s を再読み込みできません\n"
# msgid "Logged in as <b>%s</b><p>\n"
-#: ../web/swat.c:561
+#: ../web/swat.c:501
#, c-format
msgid "Logged in as <b>%s</b>"
msgstr "<b>%s</b>としてログイン"
-#: ../web/swat.c:565
+#: ../web/swat.c:505
msgid "Home"
msgstr "ホーム"
-#: ../web/swat.c:567
+#: ../web/swat.c:507
msgid "Globals"
msgstr "グローバル"
-#: ../web/swat.c:568
+#: ../web/swat.c:508
msgid "Shares"
msgstr "ファイル共有"
-#: ../web/swat.c:569
+#: ../web/swat.c:509
msgid "Printers"
msgstr "印刷共有"
-#: ../web/swat.c:570
+#: ../web/swat.c:510
msgid "Wizard"
msgstr "ウィザード"
-#: ../web/swat.c:574
+#: ../web/swat.c:513
msgid "Status"
msgstr "サーバの状態"
-#: ../web/swat.c:575
+#: ../web/swat.c:514
msgid "View Config"
msgstr "現在の設定"
-#: ../web/swat.c:577
+#: ../web/swat.c:516
msgid "Password Management"
msgstr "パスワード管理"
-#: ../web/swat.c:587
+#: ../web/swat.c:526
msgid "Current View Is"
msgstr "現在の表示モード"
-#: ../web/swat.c:588 ../web/swat.c:591
+#: ../web/swat.c:527 ../web/swat.c:530
msgid "Basic"
msgstr "標準表示"
-#: ../web/swat.c:589 ../web/swat.c:592
+#: ../web/swat.c:528 ../web/swat.c:531
msgid "Advanced"
msgstr "詳細表示"
-#: ../web/swat.c:590
+#: ../web/swat.c:529
msgid "Change View To"
msgstr "表示モードの変更"
-#: ../web/swat.c:619
+#: ../web/swat.c:554
msgid "Current Config"
msgstr "現在の設定"
-#: ../web/swat.c:623
+#: ../web/swat.c:558
msgid "Normal View"
msgstr "標準表示"
-#: ../web/swat.c:625
+#: ../web/swat.c:560
msgid "Full View"
msgstr "完全表示"
#. Here we first set and commit all the parameters that were selected
#. in the previous screen.
-#: ../web/swat.c:644
+#: ../web/swat.c:579
msgid "Wizard Parameter Edit Page"
msgstr "ウィザードによるパラメータ編集ページ"
-#: ../web/swat.c:673
+#: ../web/swat.c:608
msgid "Note: smb.conf file has been read and rewritten"
msgstr "smb.conf ファイルが書き換えられました。"
#. Here we go ...
-#: ../web/swat.c:779
+#: ../web/swat.c:716
msgid "Samba Configuration Wizard"
msgstr "Samba 設定ウィザード"
-#: ../web/swat.c:783
+#: ../web/swat.c:720
msgid "The \"Rewrite smb.conf file\" button will clear the smb.conf file of all default values and of comments."
msgstr "「smb.conf の書換」ボタンを押すと smb.conf ファイル中のすべてのデフォルト値やコメントは削除されます。"
-#: ../web/swat.c:784
+#: ../web/swat.c:721
msgid "The same will happen if you press the commit button."
msgstr "「commit」ボタンを押した場合にも同様の変更が行なわれます。"
-#: ../web/swat.c:787
+#: ../web/swat.c:724
msgid "Rewrite smb.conf file"
msgstr "smb.conf の書換"
-#: ../web/swat.c:788
+#: ../web/swat.c:725
msgid "Commit"
msgstr "設定を反映"
-#: ../web/swat.c:789
+#: ../web/swat.c:726
msgid "Edit Parameter Values"
msgstr "各パラメータの編集"
-#: ../web/swat.c:795
+#: ../web/swat.c:732
msgid "Server Type"
msgstr "サーバタイプ"
-#: ../web/swat.c:796
+#: ../web/swat.c:733
msgid "Stand Alone"
msgstr "スタンドアロン"
-#: ../web/swat.c:797
+#: ../web/swat.c:734
msgid "Domain Member"
msgstr "ドメインメンバ"
-#: ../web/swat.c:798
+#: ../web/swat.c:735
msgid "Domain Controller"
msgstr "ドメインコントローラ"
-#: ../web/swat.c:801
+#: ../web/swat.c:738
msgid "Unusual Type in smb.conf - Please Select New Mode"
msgstr "通常の形式ではない - 新しいモードを選択のこと"
-#: ../web/swat.c:803
+#: ../web/swat.c:740
msgid "Configure WINS As"
msgstr "WINS"
-#: ../web/swat.c:804
+#: ../web/swat.c:741
msgid "Not Used"
msgstr "使わない"
-#: ../web/swat.c:805
+#: ../web/swat.c:742
msgid "Server for client use"
msgstr "サーバとして構成"
-#: ../web/swat.c:806
+#: ../web/swat.c:743
msgid "Client of another WINS server"
msgstr "別の WINS サーバのクライアントとして構成"
-#: ../web/swat.c:808
+#: ../web/swat.c:745
msgid "Remote WINS Server"
msgstr "別の WINS サーバ"
-#: ../web/swat.c:819
+#: ../web/swat.c:756
msgid "Error: WINS Server Mode and WINS Support both set in smb.conf"
msgstr "エラー: wins server と wins support の両パラメータが smb.conf で指定されています"
-#: ../web/swat.c:820
+#: ../web/swat.c:757
msgid "Please Select desired WINS mode above."
msgstr "いずれかの WINS モードを選択してください。"
-#: ../web/swat.c:822
+#: ../web/swat.c:759
msgid "Expose Home Directories"
msgstr "ホームディレクトリの公開"
-#: ../web/swat.c:837
+#: ../web/swat.c:774
msgid "The above configuration options will set multiple parameters and will generally assist with rapid Samba deployment."
msgstr "上記の設定オプションにより、複数のパラメータが同期して設定されるため、 Samba の運用を迅速に開始する上での助けとなるでしょう。"
-#: ../web/swat.c:850
+#: ../web/swat.c:787
msgid "Global Parameters"
msgstr "Global パラメータ"
-#: ../web/swat.c:878 ../web/swat.c:986 ../web/swat.c:1344
+#: ../web/swat.c:815 ../web/swat.c:916 ../web/swat.c:1265
msgid "Commit Changes"
msgstr "変更を反映"
-#: ../web/swat.c:882 ../web/swat.c:989 ../web/swat.c:1346
+#: ../web/swat.c:819 ../web/swat.c:919 ../web/swat.c:1267
msgid "Reset Values"
msgstr "変更を取消"
-#: ../web/swat.c:908
+#: ../web/swat.c:844
msgid "Share Parameters"
msgstr "ファイル共有 パラメータ"
-#: ../web/swat.c:955
+#: ../web/swat.c:887
msgid "Choose Share"
msgstr "ファイル共有の選択"
-#: ../web/swat.c:971
+#: ../web/swat.c:901
msgid "Delete Share"
msgstr "ファイル共有の削除"
-#: ../web/swat.c:978
+#: ../web/swat.c:908
msgid "Create Share"
msgstr "ファイル共有の作成"
-#: ../web/swat.c:1014
+#: ../web/swat.c:944
msgid "password change in demo mode rejected"
msgstr "デモ・モードでのパスワード変更はできません"
-#: ../web/swat.c:1028
+#: ../web/swat.c:957
msgid "Can't setup password database vectors."
msgstr "パスワード・データベースが見つけられません"
-#: ../web/swat.c:1056
+#: ../web/swat.c:983
msgid " Must specify \"User Name\" "
msgstr "「ユーザ名」欄に入力してください"
-#: ../web/swat.c:1072
+#: ../web/swat.c:999
msgid " Must specify \"Old Password\" "
msgstr "「旧パスワード」欄に入力してください"
-#: ../web/swat.c:1078
+#: ../web/swat.c:1005
msgid " Must specify \"Remote Machine\" "
msgstr "「リモートマシン」欄に入力してください"
-#: ../web/swat.c:1085
+#: ../web/swat.c:1012
msgid " Must specify \"New, and Re-typed Passwords\" "
msgstr "「新パスワード」欄と「新パスワードの再入力」欄に入力してください"
-#: ../web/swat.c:1091
+#: ../web/swat.c:1018
msgid " Re-typed password didn't match new password "
msgstr "「新パスワードの再入力」欄の入力内容が「新パスワード」欄の入力と一致していません。"
-#: ../web/swat.c:1124
+#: ../web/swat.c:1048
#, c-format
msgid " The passwd for '%s' has been changed."
msgstr " %s のパスワードは変更されました。"
-#: ../web/swat.c:1127
+#: ../web/swat.c:1051
#, c-format
msgid " The passwd for '%s' has NOT been changed."
msgstr " '%s' のパスワードは変更されませんでした。"
-#: ../web/swat.c:1152
+#: ../web/swat.c:1076
msgid "Server Password Management"
msgstr "ローカルマシンのパスワード管理"
#.
#. * Create all the dialog boxes for data collection
#.
-#: ../web/swat.c:1161 ../web/swat.c:1208
+#: ../web/swat.c:1085 ../web/swat.c:1132
msgid "User Name"
msgstr "ユーザ名"
-#: ../web/swat.c:1164 ../web/swat.c:1210
+#: ../web/swat.c:1088 ../web/swat.c:1134
msgid "Old Password"
msgstr "旧パスワード"
-#: ../web/swat.c:1167 ../web/swat.c:1212
+#: ../web/swat.c:1091 ../web/swat.c:1136
msgid "New Password"
msgstr "新パスワード"
-#: ../web/swat.c:1169 ../web/swat.c:1214
+#: ../web/swat.c:1093 ../web/swat.c:1138
msgid "Re-type New Password"
msgstr "新パスワードの再入力"
-#: ../web/swat.c:1177 ../web/swat.c:1225
+#: ../web/swat.c:1101 ../web/swat.c:1149
msgid "Change Password"
msgstr "パスワード変更"
-#: ../web/swat.c:1180
+#: ../web/swat.c:1104
msgid "Add New User"
msgstr "新規ユーザ追加"
-#: ../web/swat.c:1182
+#: ../web/swat.c:1106
msgid "Delete User"
msgstr "ユーザの削除"
-#: ../web/swat.c:1184
+#: ../web/swat.c:1108
msgid "Disable User"
msgstr "ユーザの無効化"
-#: ../web/swat.c:1186
+#: ../web/swat.c:1110
msgid "Enable User"
msgstr "ユーザの有効化"
-#: ../web/swat.c:1199
+#: ../web/swat.c:1123
msgid "Client/Server Password Management"
msgstr "リモートマシンのパスワード管理"
-#: ../web/swat.c:1216
+#: ../web/swat.c:1140
msgid "Remote Machine"
msgstr "リモートマシン"
-#: ../web/swat.c:1255
+#: ../web/swat.c:1179
msgid "Printer Parameters"
msgstr "印刷共有 パラメータ"
-#: ../web/swat.c:1257
+#: ../web/swat.c:1181
msgid "Important Note:"
msgstr "*注"
-#: ../web/swat.c:1258
+#: ../web/swat.c:1182
msgid "Printer names marked with [*] in the Choose Printer drop-down box "
msgstr "名前の先頭に [*] がついたプリンタ"
-#: ../web/swat.c:1259
+#: ../web/swat.c:1183
msgid "are autoloaded printers from "
msgstr "は"
-#: ../web/swat.c:1260
+#: ../web/swat.c:1184
msgid "Printcap Name"
msgstr "printcap name パラメータ"
-#: ../web/swat.c:1261
+#: ../web/swat.c:1185
msgid "Attempting to delete these printers from SWAT will have no effect."
msgstr "から自動設定されたものですから、削除することはできません。"
-#: ../web/swat.c:1310
+#: ../web/swat.c:1231
msgid "Choose Printer"
msgstr "印刷共有の選択"
-#: ../web/swat.c:1329
+#: ../web/swat.c:1250
msgid "Delete Printer"
msgstr "印刷共有の削除"
-#: ../web/swat.c:1336
+#: ../web/swat.c:1257
msgid "Create Printer"
msgstr "印刷共有の作成"
-#: ../web/statuspage.c:151
-msgid "RDWR "
-msgstr "参照/更新 "
+#: ../web/statuspage.c:123
+msgid "RDONLY "
+msgstr "参照のみ "
-#: ../web/statuspage.c:153
+#: ../web/statuspage.c:124
msgid "WRONLY "
msgstr "更新のみ "
-#: ../web/statuspage.c:155
-msgid "RDONLY "
-msgstr "参照のみ "
+#: ../web/statuspage.c:125
+msgid "RDWR "
+msgstr "参照/更新 "
-#: ../web/statuspage.c:329
+#: ../web/statuspage.c:309
msgid "Server Status"
msgstr "サーバの状態"
-#: ../web/statuspage.c:334
+#: ../web/statuspage.c:314
msgid "Auto Refresh"
msgstr "自動更新の開始"
-#: ../web/statuspage.c:335 ../web/statuspage.c:340
+#: ../web/statuspage.c:315 ../web/statuspage.c:320
msgid "Refresh Interval: "
msgstr "更新間隔: "
-#: ../web/statuspage.c:339
+#: ../web/statuspage.c:319
msgid "Stop Refreshing"
msgstr "自動更新の停止"
-#: ../web/statuspage.c:348
+#: ../web/statuspage.c:334
msgid "version:"
msgstr "バージョン"
-#: ../web/statuspage.c:351
+#: ../web/statuspage.c:337
msgid "smbd:"
msgstr ""
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "running"
msgstr "実行中"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "not running"
msgstr "停止中"
-#: ../web/statuspage.c:355
+#: ../web/statuspage.c:341
msgid "Stop smbd"
msgstr "smbd の停止"
-#: ../web/statuspage.c:357
+#: ../web/statuspage.c:343
msgid "Start smbd"
msgstr "smbd の起動"
-#: ../web/statuspage.c:359
+#: ../web/statuspage.c:345
msgid "Restart smbd"
msgstr "smbd の再起動"
-#: ../web/statuspage.c:364
+#: ../web/statuspage.c:350
msgid "nmbd:"
msgstr ""
-#: ../web/statuspage.c:368
+#: ../web/statuspage.c:354
msgid "Stop nmbd"
msgstr "nmbd の停止"
-#: ../web/statuspage.c:370
+#: ../web/statuspage.c:356
msgid "Start nmbd"
msgstr "nmbd の起動"
-#: ../web/statuspage.c:372
+#: ../web/statuspage.c:358
msgid "Restart nmbd"
msgstr "nmbd の再起動"
-#: ../web/statuspage.c:378
+#: ../web/statuspage.c:364
msgid "winbindd:"
msgstr ""
-#: ../web/statuspage.c:382
+#: ../web/statuspage.c:368
msgid "Stop winbindd"
msgstr "winbindd の停止"
-#: ../web/statuspage.c:384
+#: ../web/statuspage.c:370
msgid "Start winbindd"
msgstr "winbindd の起動"
-#: ../web/statuspage.c:386
+#: ../web/statuspage.c:372
msgid "Restart winbindd"
msgstr "winbindd の再起動"
#. stop, restart all
-#: ../web/statuspage.c:395
+#: ../web/statuspage.c:381
msgid "Stop All"
msgstr "すべて停止"
-#: ../web/statuspage.c:396
+#: ../web/statuspage.c:382
msgid "Restart All"
msgstr "すべて再起動"
#. start all
-#: ../web/statuspage.c:400
+#: ../web/statuspage.c:386
msgid "Start All"
msgstr "すべて起動"
-#: ../web/statuspage.c:407
+#: ../web/statuspage.c:393
msgid "Active Connections"
msgstr "接続中のクライアント"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "PID"
msgstr ""
-#: ../web/statuspage.c:409 ../web/statuspage.c:422
+#: ../web/statuspage.c:395 ../web/statuspage.c:408
msgid "Client"
msgstr "クライアント"
-#: ../web/statuspage.c:409
+#: ../web/statuspage.c:395
msgid "IP address"
msgstr "IPアドレス"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "Date"
msgstr "日付"
-#: ../web/statuspage.c:411
+#: ../web/statuspage.c:397
msgid "Kill"
msgstr "切断"
-#: ../web/statuspage.c:419
+#: ../web/statuspage.c:405
msgid "Active Shares"
msgstr "接続中の共有"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Share"
msgstr "共有名"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "User"
msgstr "ユーザ"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Group"
msgstr "グループ"
-#: ../web/statuspage.c:428
+#: ../web/statuspage.c:414
msgid "Open Files"
msgstr "使用中のファイル"
-#: ../web/statuspage.c:431
-msgid "UID"
-msgstr ""
-
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Sharing"
msgstr "排他モード"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "R/W"
msgstr "参照/更新"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Oplock"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "File"
msgstr "ファイル名"
-#: ../web/statuspage.c:438
+#: ../web/statuspage.c:425
msgid "Show Client in col 1"
msgstr "クライアント名を先頭に表示"
-#: ../web/statuspage.c:439
+#: ../web/statuspage.c:426
msgid "Show PID in col 1"
msgstr "PIDを先頭に表示"
-#: ../param/loadparm.c:907
+#: ../param/loadparm.c:755
msgid "Base Options"
msgstr "基本 オプション"
-#: ../param/loadparm.c:1047
+#: ../param/loadparm.c:775
msgid "Security Options"
msgstr "セキュリティ オプション"
-#: ../param/loadparm.c:1800
+#: ../param/loadparm.c:859
msgid "Logging Options"
msgstr "ロギング オプション"
-#: ../param/loadparm.c:1929
+#: ../param/loadparm.c:874
msgid "Protocol Options"
msgstr "プロトコル オプション"
-#: ../param/loadparm.c:2301
+#: ../param/loadparm.c:911
msgid "Tuning Options"
msgstr "チューニング オプション"
-#: ../param/loadparm.c:2538
+#: ../param/loadparm.c:940
msgid "Printing Options"
msgstr "印刷 オプション"
-#: ../param/loadparm.c:2858
+#: ../param/loadparm.c:970
msgid "Filename Handling"
msgstr "ファイル名の取扱"
-#: ../param/loadparm.c:3088
+#: ../param/loadparm.c:996
msgid "Domain Options"
msgstr "ドメイン オプション"
-#: ../param/loadparm.c:3100
+#: ../param/loadparm.c:1000
msgid "Logon Options"
msgstr "ログオン オプション"
-#: ../param/loadparm.c:3273
+#: ../param/loadparm.c:1019
msgid "Browse Options"
msgstr "ブラウジング オプション"
-#: ../param/loadparm.c:3384
+#: ../param/loadparm.c:1033
msgid "WINS Options"
msgstr "WINS オプション"
-#: ../param/loadparm.c:3432
+#: ../param/loadparm.c:1043
msgid "Locking Options"
msgstr "ロッキング オプション"
-#: ../param/loadparm.c:3552
+#: ../param/loadparm.c:1061
msgid "Ldap Options"
msgstr "LDAP オプション"
-#: ../param/loadparm.c:3708
-#, fuzzy
-msgid "EventLog Options"
-msgstr "ログオン オプション"
-
-#: ../param/loadparm.c:3720
+#: ../param/loadparm.c:1078
msgid "Miscellaneous Options"
msgstr "その他のオプション"
-#: ../param/loadparm.c:4301
+#: ../param/loadparm.c:1138
msgid "VFS module options"
msgstr "VFS オプション"
-#: ../param/loadparm.c:4323
-#, fuzzy
-msgid "MSDFS options"
-msgstr "VFS オプション"
-
-#: ../param/loadparm.c:4353
+#: ../param/loadparm.c:1148
msgid "Winbind options"
msgstr "Winbind オプション"
-
-#: ../utils/net.c:103
-msgid "Enter machine password: "
-msgstr ""
-
-#: ../utils/net.c:107
-msgid "Unable to write the machine account password in the secrets database"
-msgstr ""
-
-#: ../utils/net.c:111
-msgid "Modified trust account password in secrets database\n"
-msgstr ""
-
-#: ../utils/net.c:115
-msgid ""
-"Machine account password change requires the -f flag.\n"
-"Do NOT use this function unless you know what it does!\n"
-"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
-#, 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
-#, c-format
-msgid "SID for domain %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:175
-msgid "usage: net setlocalsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:195
-msgid "usage: net setdomainsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:213
-msgid "usage: net getdomainsid\n"
-msgstr ""
-
-#: ../utils/net.c:238
-msgid "Could not fetch local SID\n"
-msgstr ""
-
-#: ../utils/net.c:242
-#, c-format
-msgid "SID for local machine %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:246
-msgid "Could not fetch domain SID\n"
-msgstr ""
-
-#: ../utils/net.c:263
-#, c-format
-msgid "get_maxrid: Could not search %s\n"
-msgstr ""
-
-#: ../utils/net.c:297
-msgid "usage: net maxrid\n"
-msgstr ""
-
-#: ../utils/net.c:302
-msgid "can't get current maximum rid\n"
-msgstr ""
-
-#: ../utils/net.c:306
-#, c-format
-msgid "Currently used maximum rid: %d\n"
-msgstr ""
-
-#: ../utils/net.c:317
-msgid "Run functions using RPC transport"
-msgstr ""
-
-#: ../utils/net.c:318
-msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands."
-msgstr ""
-
-#: ../utils/net.c:325
-msgid "Run functions using RAP transport"
-msgstr ""
-
-#: ../utils/net.c:326
-msgid " Use 'net help rap' to get more extensive information about 'net rap' commands."
-msgstr ""
-
-#: ../utils/net.c:333
-msgid "Run functions using ADS transport"
-msgstr ""
-
-#: ../utils/net.c:334
-msgid " Use 'net help ads' to get more extensive information about 'net ads' commands."
-msgstr ""
-
-#: ../utils/net.c:343
-msgid "Functions on remote opened files"
-msgstr ""
-
-#: ../utils/net.c:344
-msgid " Use 'net help file' to get more information about 'net file' commands."
-msgstr ""
-
-#: ../utils/net.c:351
-msgid "Functions on shares"
-msgstr ""
-
-#: ../utils/net.c:352
-msgid " Use 'net help share' to get more information about 'net share' commands."
-msgstr ""
-
-#: ../utils/net.c:359
-msgid "Manage sessions"
-msgstr ""
-
-#: ../utils/net.c:360
-msgid " Use 'net help session' to get more information about 'net session' commands."
-msgstr ""
-
-#: ../utils/net.c:367
-msgid "List servers in workgroup"
-msgstr ""
-
-#: ../utils/net.c:368
-msgid " Use 'net help server' to get more information about 'net server' commands."
-msgstr ""
-
-#: ../utils/net.c:375
-msgid "List domains/workgroups on network"
-msgstr ""
-
-#: ../utils/net.c:376
-msgid " Use 'net help domain' to get more information about 'net domain' commands."
-msgstr ""
-
-#: ../utils/net.c:383
-msgid "Modify printer queue"
-msgstr ""
-
-#: ../utils/net.c:384
-msgid " Use 'net help printq' to get more information about 'net printq' commands."
-msgstr ""
-
-#: ../utils/net.c:391
-#, fuzzy
-msgid "Manage users"
-msgstr "ユーザの有効化"
-
-#: ../utils/net.c:392
-msgid " Use 'net help user' to get more information about 'net user' commands."
-msgstr ""
-
-#: ../utils/net.c:399
-msgid "Manage groups"
-msgstr ""
-
-#: ../utils/net.c:400
-msgid " Use 'net help group' to get more information about 'net group' commands."
-msgstr ""
-
-#: ../utils/net.c:407
-msgid "Manage group mappings"
-msgstr ""
-
-#: ../utils/net.c:408
-msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands."
-msgstr ""
-
-#: ../utils/net.c:415
-msgid "Functions on the SAM database"
-msgstr ""
-
-#: ../utils/net.c:416
-msgid " Use 'net help sam' to get more information about 'net sam' commands."
-msgstr ""
-
-#: ../utils/net.c:423
-msgid "Validate username and password"
-msgstr ""
-
-#: ../utils/net.c:424
-msgid " Use 'net help validate' to get more information about 'net validate' commands."
-msgstr ""
-
-#: ../utils/net.c:431
-msgid "Modify group memberships"
-msgstr ""
-
-#: ../utils/net.c:432
-msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands."
-msgstr ""
-
-#: ../utils/net.c:438
-msgid "Execute remote command on a remote OS/2 server"
-msgstr ""
-
-#: ../utils/net.c:439
-msgid " Use 'net help admin' to get more information about 'net admin' commands."
-msgstr ""
-
-#: ../utils/net.c:445
-msgid "List/modify running services"
-msgstr ""
-
-#: ../utils/net.c:446
-msgid " Use 'net help service' to get more information about 'net service' commands."
-msgstr ""
-
-#: ../utils/net.c:453
-#, fuzzy
-msgid "Change user password on target server"
-msgstr "パスワード・データベースが見つけられません"
-
-#: ../utils/net.c:454
-msgid " Use 'net help password' to get more information about 'net password' commands."
-msgstr ""
-
-#: ../utils/net.c:460
-#, fuzzy
-msgid "Change the trust password"
-msgstr "パスワード変更"
-
-#: ../utils/net.c:461
-msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'."
-msgstr ""
-
-#: ../utils/net.c:467
-#, fuzzy
-msgid "Change the secret password"
-msgstr "パスワード変更"
-
-#: ../utils/net.c:468
-msgid ""
-" net [options] changesecretpw\n"
-" Change the ADS domain member machine account password in secrets.tdb.\n"
-" Do NOT use this function unless you know what it does.\n"
-" Requires the -f flag to work."
-msgstr ""
-
-#: ../utils/net.c:477
-msgid "Show/set time"
-msgstr ""
-
-#: ../utils/net.c:478
-msgid " Use 'net help time' to get more information about 'net time' commands."
-msgstr ""
-
-#: ../utils/net.c:484
-msgid "Look up host names/IP addresses"
-msgstr ""
-
-#: ../utils/net.c:485
-msgid " Use 'net help lookup' to get more information about 'net lookup' commands."
-msgstr ""
-
-#: ../utils/net.c:491
-msgid "Join a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:492
-msgid " Use 'net help join' to get more information about 'net join'."
-msgstr ""
-
-#: ../utils/net.c:498
-msgid "Join/unjoin (remote) machines to/from a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:499
-msgid " Use 'net help dom' to get more information about 'net dom' commands."
-msgstr ""
-
-#: ../utils/net.c:505
-msgid "Operate on the cache tdb file"
-msgstr ""
-
-#: ../utils/net.c:506
-msgid " Use 'net help cache' to get more information about 'net cache' commands."
-msgstr ""
-
-#: ../utils/net.c:512
-msgid "Get the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:513
-msgid " net getlocalsid"
-msgstr ""
-
-#: ../utils/net.c:518
-msgid "Set the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:519
-msgid " net setlocalsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:524
-msgid "Set domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:525
-msgid " net setdomainsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:530
-msgid "Get domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:531
-msgid " net getdomainsid"
-msgstr ""
-
-#: ../utils/net.c:536
-msgid "Display the maximul RID currently used"
-msgstr ""
-
-#: ../utils/net.c:537
-msgid " net maxrid"
-msgstr ""
-
-#: ../utils/net.c:542
-#, fuzzy
-msgid "IDmap functions"
-msgstr "ドメイン オプション"
-
-#: ../utils/net.c:543
-msgid " Use 'net help idmap to get more information about 'net idmap' commands."
-msgstr ""
-
-#: ../utils/net.c:549
-#, fuzzy
-msgid "Display server status"
-msgstr "サーバの状態"
-
-#: ../utils/net.c:550
-msgid " Use 'net help status' to get more information about 'net status' commands."
-msgstr ""
-
-#: ../utils/net.c:556
-msgid "Manage user-modifiable shares"
-msgstr ""
-
-#: ../utils/net.c:557
-msgid " Use 'net help usershare to get more information about 'net usershare' commands."
-msgstr ""
-
-#: ../utils/net.c:563
-msgid "Display list of all users with SID"
-msgstr ""
-
-#: ../utils/net.c:564
-msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'."
-msgstr ""
-
-#: ../utils/net.c:570
-msgid "Manage Samba registry based configuration"
-msgstr ""
-
-#: ../utils/net.c:571
-msgid " Use 'net help conf' to get more information about 'net conf' commands."
-msgstr ""
-
-#: ../utils/net.c:577
-msgid "Manage the Samba registry"
-msgstr ""
-
-#: ../utils/net.c:578
-msgid " Use 'net help registry' to get more information about 'net registry' commands."
-msgstr ""
-
-#: ../utils/net.c:584
-msgid "Open a lua interpreter"
-msgstr ""
-
-#: ../utils/net.c:585
-msgid " Use 'net help lua' to get more information about 'net lua' commands."
-msgstr ""
-
-#: ../utils/net.c:591
-msgid "Process Win32 *.evt eventlog files"
-msgstr ""
-
-#: ../utils/net.c:592
-msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands."
-msgstr ""
-
-#: ../utils/net.c:600
-msgid "Manage AFS tokens"
-msgstr ""
-
-#: ../utils/net.c:601
-msgid " Use 'net help afs' to get more information about 'net afs' commands."
-msgstr ""
-
-#: ../utils/net.c:609
-msgid "Print usage information"
-msgstr ""
-
-#: ../utils/net.c:610
-msgid " Use 'net help help' to list usage information for 'net' commands."
-msgstr ""
-
-#: ../utils/net.c:639
-msgid "Encrypt SMB transport (UNIX extended servers only)"
-msgstr ""
-
-#: ../utils/net.c:703
-msgid ""
-"\n"
-"Invalid ip address specified\n"
-msgstr ""
-
-#: ../utils/net.c:718
-#, c-format
-msgid ""
-"\n"
-"Invalid option %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:52 ../utils/net_ads.c:392
-msgid "CLDAP query failed!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:56
-#, fuzzy, c-format
-msgid ""
-"Information for Domain Controller: %s\n"
-"\n"
-msgstr "ドメインコントローラ"
-
-#: ../utils/net_ads.c:59
-msgid "Response Type: "
-msgstr ""
-
-#: ../utils/net_ads.c:72
-#, c-format
-msgid "GUID: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:74
-#, c-format
-msgid ""
-"Flags:\n"
-"\tIs a PDC: %s\n"
-"\tIs a GC of the forest: %s\n"
-"\tIs an LDAP server: %s\n"
-"\tSupports DS: %s\n"
-"\tIs running a KDC: %s\n"
-"\tIs running time services: %s\n"
-"\tIs the closest DC: %s\n"
-"\tIs writable: %s\n"
-"\tHas a hardware clock: %s\n"
-"\tIs a non-domain NC serviced by LDAP server: %s\n"
-"\tIs NT6 DC that has some secrets: %s\n"
-"\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
-msgid "yes"
-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
-msgid "no"
-msgstr ""
-
-#: ../utils/net_ads.c:101
-#, c-format
-msgid "Forest:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:102
-#, c-format
-msgid "Domain:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:103
-#, fuzzy, c-format
-msgid "Domain Controller:\t%s\n"
-msgstr "ドメインコントローラ"
-
-#: ../utils/net_ads.c:105
-#, c-format
-msgid "Pre-Win2k Domain:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:106
-#, c-format
-msgid "Pre-Win2k Hostname:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:108
-#, fuzzy, c-format
-msgid "User name:\t%s\n"
-msgstr "ユーザ名"
-
-#: ../utils/net_ads.c:110
-#, fuzzy, c-format
-msgid "Server Site Name :\t\t%s\n"
-msgstr "サーバの状態"
-
-#: ../utils/net_ads.c:111
-#, c-format
-msgid "Client Site Name :\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:113
-#, fuzzy, c-format
-msgid "NT Version: %d\n"
-msgstr "バージョン"
-
-#: ../utils/net_ads.c:114
-#, c-format
-msgid "LMNT Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:115
-#, c-format
-msgid "LM20 Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:130
-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
-msgid "Didn't find the cldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:160
-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
-msgid "Didn't find the ldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:182
-msgid "Failed to get server's current time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:187
-#, c-format
-msgid "LDAP server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:188
-#, c-format
-msgid "LDAP server name: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:189
-#, c-format
-msgid "Realm: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:190
-#, c-format
-msgid "Bind Path: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:191
-#, c-format
-msgid "LDAP port: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:192
-#, fuzzy, c-format
-msgid "Server time: %s\n"
-msgstr "サーバの状態"
-
-#: ../utils/net_ads.c:195
-#, c-format
-msgid "KDC server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:196
-#, c-format
-msgid "Server time offset: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:374
-msgid ""
-"Usage:\n"
-"net ads workgroup\n"
-" Print the workgroup name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:397
-#, c-format
-msgid "Workgroup: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:458
-#, c-format
-msgid "ads_user_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:463
-#, c-format
-msgid "ads_user_add: User %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:477
-#, c-format
-msgid "Could not add user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:484 ../utils/net_ads.c:497
-#, fuzzy, c-format
-msgid "User %s added\n"
-msgstr "ユーザ名"
-
-#. password didn't set, delete account
-#: ../utils/net_ads.c:503
-#, c-format
-msgid "Could not add user %s. Error setting password %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:551
-#, c-format
-msgid "ads_user_info: failed to escape user %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:569
-#, c-format
-msgid "ads_search: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:575
-msgid "ads_pull_uint32 failed\n"
-msgstr ""
-
-#: ../utils/net_ads.c:582
-#, c-format
-msgid "ads_domain_sid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:642
-#, c-format
-msgid "User %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:652
-#, c-format
-msgid "User %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:656
-#, c-format
-msgid "Error deleting user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:669
-#, fuzzy
-msgid "Add an AD user"
-msgstr "新規ユーザ追加"
-
-#: ../utils/net_ads.c:670
-msgid ""
-"net ads user add\n"
-" Add an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:677
-msgid "Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:678
-msgid ""
-"net ads user info\n"
-" Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:685
-#, fuzzy
-msgid "Delete an AD user"
-msgstr "ユーザの削除"
-
-#: ../utils/net_ads.c:686
-msgid ""
-"net ads user delete\n"
-" Delete an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:699
-msgid ""
-"Usage:\n"
-"net ads user\n"
-" List AD users\n"
-msgstr ""
-
-#: ../utils/net_ads.c:711
-msgid ""
-"\n"
-"User name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:751
-#, c-format
-msgid "ads_group_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:756
-#, c-format
-msgid "ads_group_add: Group %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:769
-#, c-format
-msgid "Group %s added\n"
-msgstr ""
-
-#: ../utils/net_ads.c:772
-#, c-format
-msgid "Could not add group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:801
-#, c-format
-msgid "Group %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:811
-#, c-format
-msgid "Group %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:815
-#, c-format
-msgid "Error deleting group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:828
-msgid "Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:829
-msgid ""
-"net ads group add\n"
-" Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:836
-#, fuzzy
-msgid "Delete an AD group"
-msgstr "ファイル共有の削除"
-
-#: ../utils/net_ads.c:837
-msgid ""
-"net ads group delete\n"
-" Delete an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:850
-msgid ""
-"Usage:\n"
-"net ads group\n"
-" List AD groups\n"
-msgstr ""
-
-#: ../utils/net_ads.c:862
-msgid ""
-"\n"
-"Group name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:884
-msgid ""
-"Usage:\n"
-"net ads status\n"
-" Display machine account details\n"
-msgstr ""
-
-#: ../utils/net_ads.c:896
-#, c-format
-msgid "ads_find_machine_acct: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:902
-#, c-format
-msgid "No machine account for '%s' found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:926
-msgid ""
-"Usage:\n"
-"net ads leave\n"
-" Leave an AD domain\n"
-msgstr ""
-
-#: ../utils/net_ads.c:933
-msgid "No realm set, are we joined ?\n"
-msgstr ""
-
-#: ../utils/net_ads.c:938 ../utils/net_ads.c:1260
-msgid "Could not initialise talloc context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:948
-msgid "Could not initialise unjoin context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:968
-#, c-format
-msgid "Failed to leave domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:975
-#, c-format
-msgid "Deleted account for '%s' in realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:982
-#, c-format
-msgid "Disabled account for '%s' in realm '%s'\n"
-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
-#, c-format
-msgid "Machine '%s' Left domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1035
-msgid ""
-"Usage:\n"
-"net ads testjoin\n"
-" Test if the existing join is ok\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1044
-#, c-format
-msgid "Join to domain is not valid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1049
-#, c-format
-msgid "Join is OK\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1060
-msgid "Host is not configured as a member server.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1065
-#, 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
-#, c-format
-msgid "realm must be set in in %s for ADS join to succeed.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1105
-#, c-format
-msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1212
-msgid ""
-"net ads join [options]\n"
-"Valid options:\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1214
-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
-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"
-" E.g. \"createcomputer=Computers/Servers/Unix\"\n"
-" NB: A backslash '\\' is used as escape at multiple levels and may\n"
-" need to be doubled or even quadrupled. It is not used as a separator.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1221
-msgid " osName=string Set the operatingSystem attribute during the join.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1222
-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"
-" Also, the operatingSystemService attribute is also set when along with\n"
-" the two other attributes.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1254
-msgid "Invalid configuration. Exiting....\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1283
-msgid "Please supply a valid OU path.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1290
-msgid "Please supply a operating system name.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1297
-msgid "Please supply a valid operating system version.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1308
-msgid "Please supply a valid domain name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1339
-#, c-format
-msgid ""
-"The workgroup in %s does not match the short\n"
-"domain name obtained from the server.\n"
-"Using the name [%s] from the server.\n"
-"You should set \"workgroup = %s\" in %s.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1347
-#, c-format
-msgid "Using short domain name -- %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1350
-#, c-format
-msgid "Joined '%s' to realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1353
-#, c-format
-msgid "Joined '%s' to domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1377 ../utils/net_ads.c:1433
-msgid "DNS update failed!\n"
-msgstr ""
-
-#. issue an overall failure message at the end.
-#: ../utils/net_ads.c:1391 ../utils/net_dom.c:198
-#, c-format
-msgid "Failed to join domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1414
-msgid ""
-"Usage:\n"
-"net ads dns register\n"
-" Register hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1421
-msgid "Could not initialise talloc context\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1439
-msgid "Successfully registered hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1447
-msgid "DNS update support not enabled at compile time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1466
-msgid ""
-"Usage:\n"
-"net ads dns gethostbyname <server> <name>\n"
-" Look up hostname from the AD\n"
-" server\tName server to use\n"
-" name\tName to look up\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1476
-#, c-format
-msgid "do_gethostbyname returned %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1488
-msgid "Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1489
-msgid ""
-"net ads dns register\n"
-" Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1496
-msgid "Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1497
-msgid ""
-"net ads dns gethostbyname\n"
-" Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1512
-msgid ""
-"\n"
-"net ads printer search <printer>\n"
-"\tsearch for a printer in the directory\n"
-"\n"
-"net ads printer info <printer> <server>\n"
-"\tlookup info in directory for printer on server\n"
-"\t(note: printer defaults to \"*\", server defaults to local)\n"
-"\n"
-"net ads printer publish <printername>\n"
-"\tpublish printer in directory\n"
-"\t(note: printer name is required)\n"
-"\n"
-"net ads printer remove <printername>\n"
-"\tremove printer from directory\n"
-"\t(note: printer name is required)\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1536
-msgid ""
-"Usage:\n"
-"net ads printer search\n"
-" List printers in the AD\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1549
-#, c-format
-msgid "ads_find_printer: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1556
-msgid "No results found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1576
-msgid ""
-"Usage:\n"
-"net ads printer info [printername [servername]]\n"
-" Display printer info from AD\n"
-" printername\tPrinter name or wildcard\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1603
-#, c-format
-msgid "Server '%s' not found: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1611 ../utils/net_ads.c:1794
-#, c-format
-msgid "Printer '%s' not found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1640
-msgid ""
-"Usage:\n"
-"net ads printer publish <printername> [servername]\n"
-" Publish printer in AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1675
-#, c-format
-msgid "Unable to open a connnection to %s to obtain data for %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1688
-#, c-format
-msgid "Could not find machine account for server %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1704 ../utils/net_ads.c:1713
-msgid "Internal error, out of memory!"
-msgstr ""
-
-#: ../utils/net_ads.c:1724
-#, c-format
-msgid "Unable to open a connnection to the spoolss pipe on %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1766
-msgid ""
-"Usage:\n"
-"net ads printer remove <printername> [servername]\n"
-" Remove a printer from the AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1787
-#, c-format
-msgid "ads_find_printer_on_server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1806
-#, c-format
-msgid "ads_del_dn: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1822
-msgid "Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1823
-msgid ""
-"net ads printer search\n"
-" Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1830
-msgid "Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1831
-msgid ""
-"net ads printer info\n"
-" Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1838
-msgid "Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1839
-msgid ""
-"net ads printer publish\n"
-" Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1846
-#, fuzzy
-msgid "Delete a printer"
-msgstr "印刷共有の削除"
-
-#: ../utils/net_ads.c:1847
-msgid ""
-"net ads printer remove\n"
-" Delete a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1869
-msgid ""
-"Usage:\n"
-"net ads password <username>\n"
-" Change password for user\n"
-" username\tName of user to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1877
-msgid "You must supply an administrator username/password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1883
-msgid "ERROR: You must say which username to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1915
-msgid "Didn't find the kerberos server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1923
-#, c-format
-msgid "Enter new password for %s:"
-msgstr ""
-
-#: ../utils/net_ads.c:1933 ../utils/net_ads.c:1982
-#, fuzzy, c-format
-msgid "Password change failed: %s\n"
-msgstr "パスワード管理"
-
-#: ../utils/net_ads.c:1938
-#, fuzzy, c-format
-msgid "Password change for %s completed.\n"
-msgstr "デモ・モードでのパスワード変更はできません"
-
-#: ../utils/net_ads.c:1952
-msgid ""
-"Usage:\n"
-"net ads changetrustpw\n"
-" Change the machine account's trust password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1977
-#, c-format
-msgid "Changing password for principal: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1988
-#, c-format
-msgid "Password change for principal %s succeeded.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1991
-msgid "Attempting to update system keytab with new password.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1993
-msgid "Failed to update system keytab.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2009
-msgid ""
-"\n"
-"net ads search <expression> <attributes...>\n"
-"\n"
-"Perform a raw LDAP search on a ADS server and dump the results.\n"
-"The expression is a standard LDAP search expression, and the\n"
-"attributes are a list of LDAP fields to show in the results.\n"
-"\n"
-"Example: net ads search '(objectCategory=group)' sAMAccountName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2046 ../utils/net_ads.c:2107 ../utils/net_ads.c:2171 ../utils/net_ads_gpo.c:250
-#, c-format
-msgid "search failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2051 ../utils/net_ads.c:2176 ../utils/net_ads_gpo.c:256
-#, c-format
-msgid ""
-"Got %d replies\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2069
-msgid ""
-"\n"
-"net ads dn <dn> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The DN standard LDAP DN, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' sAMAccountName\n"
-"\n"
-"Note: the DN must be provided properly escaped. See RFC 4514 for details\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2129
-msgid ""
-"\n"
-"net ads sid <sid> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The SID is in string format, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads sid 'S-1-5-32' distinguishedName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2164
-msgid "could not convert sid\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2193
-msgid ""
-"Usage:\n"
-"net ads keytab flush\n"
-" Delete the whole keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2214
-msgid ""
-"Usage:\n"
-"net ads keytab add <principal> [principal ...]\n"
-" Add principals to local keytab\n"
-" principal\tKerberos principal to add to keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2222
-msgid "Processing principals to add...\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2239
-msgid ""
-"Usage:\n"
-"net ads keytab create\n"
-" Create new default keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2258
-msgid ""
-"Usage:\n"
-"net ads keytab list [keytab]\n"
-" List a local keytab\n"
-" keytab\tKeytab to list\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2280
-msgid "Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2281
-msgid ""
-"net ads keytab add\n"
-" Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2288
-#, fuzzy
-msgid "Create a fresh keytab"
-msgstr "ファイル共有の作成"
-
-#: ../utils/net_ads.c:2289
-msgid ""
-"net ads keytab create\n"
-" Create a fresh keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2296
-msgid "Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2297
-msgid ""
-"net ads keytab flush\n"
-" Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2304
-msgid "List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2305
-msgid ""
-"net ads keytab list\n"
-" List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2312
-msgid ""
-"\n"
-"Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2324
-msgid ""
-"Usage:\n"
-"net ads kerberos renew\n"
-" Renew TGT from existing credential cache\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2332
-#, c-format
-msgid "failed to renew kerberos ticket: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2347
-msgid ""
-"Usage:\n"
-"net ads kerberos pac\n"
-" Dump the Kerberos PAC\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2372
-#, c-format
-msgid "failed to query kerberos PAC: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2381
-#, c-format
-msgid "The Pac: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2397
-msgid ""
-"Usage:\n"
-"net ads kerberos kinit\n"
-" Get Ticket Granting Ticket (TGT) for the user\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2421
-#, c-format
-msgid "failed to kinit password: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2435
-msgid "Retrieve Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2436
-msgid ""
-"net ads kerberos kinit\n"
-" Receive Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2443
-msgid "Renew Ticket Granting Ticket from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2444
-msgid ""
-"net ads kerberos renew\n"
-" Renew Ticket Granting Ticket (TGT) from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2452
-msgid "Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2453
-msgid ""
-"net ads kerberos pac\n"
-" Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2469
-msgid "Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2470
-msgid ""
-"net ads info\n"
-" Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2477
-msgid "Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2478
-msgid ""
-"net ads join\n"
-" Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2485
-msgid "Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2486
-msgid ""
-"net ads testjoin\n"
-" Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2493
-msgid "Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2494
-msgid ""
-"net ads leave\n"
-" Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2501
-msgid "Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2502
-msgid ""
-"net ads status\n"
-" Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2509
-msgid "List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2510
-msgid ""
-"net ads user\n"
-" List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2517
-msgid "List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2518
-msgid ""
-"net ads group\n"
-" List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2525
-msgid "Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2526
-msgid ""
-"net ads dns\n"
-" Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2533
-#, fuzzy
-msgid "Change user passwords"
-msgstr "パスワード変更"
-
-#: ../utils/net_ads.c:2534
-msgid ""
-"net ads password\n"
-" Change user passwords"
-msgstr ""
-
-#: ../utils/net_ads.c:2541
-#, fuzzy
-msgid "Change trust account password"
-msgstr "パスワード変更"
-
-#: ../utils/net_ads.c:2542
-msgid ""
-"net ads changetrustpw\n"
-" Change trust account password"
-msgstr ""
-
-#: ../utils/net_ads.c:2549
-msgid "List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2550
-msgid ""
-"net ads printer\n"
-" List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2557
-msgid "Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2558
-msgid ""
-"net ads search\n"
-" Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2565
-msgid "Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2566
-msgid ""
-"net ads dn\n"
-" Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2573
-msgid "Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2574
-msgid ""
-"net ads sid\n"
-" Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2581
-msgid "Display workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2582
-msgid ""
-"net ads workgroup\n"
-" Display the workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2589
-msgid "Perfom CLDAP query on DC"
-msgstr ""
-
-#: ../utils/net_ads.c:2590
-msgid ""
-"net ads lookup\n"
-" Find the ADS DC using CLDAP lookups"
-msgstr ""
-
-#: ../utils/net_ads.c:2597
-msgid "Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2598
-msgid ""
-"net ads keytab\n"
-" Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2605
-msgid "Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2606
-msgid ""
-"net ads gpo\n"
-" Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2613
-msgid "Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2614
-msgid ""
-"net ads kerberos\n"
-" Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2627
-msgid "ADS support not compiled in\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:40
-msgid ""
-"Usage:\n"
-"net ads gpo refresh <username|machinename>\n"
-" Lists all GPOs assigned to an account and downloads them\n"
-" username\tUser to refresh GPOs for\n"
-" machinename\tMachine to refresh GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:56
-#, c-format
-msgid "failed to connect AD server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:62
-#, c-format
-msgid "failed to find samaccount for %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:70
-#, c-format
-msgid ""
-"\n"
-"%s: '%s' has dn: '%s'\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "machine"
-msgstr "リモートマシン"
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "user"
-msgstr "ユーザ"
-
-#: ../utils/net_ads_gpo.c:74
-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
-#, 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
-msgid "finished\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:87
-msgid "* fetching GPO List "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:96
-msgid "* Refreshing Group Policy Data "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:107
-msgid "* storing GPO list to registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:122
-msgid "* dumping GPO list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:151
-msgid "* re-reading GPO list from registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:167
-msgid "* dumping GPO list from registry\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:226
-msgid ""
-"Usage:\n"
-"net ads gpo listall\n"
-" List all GPOs on the DC\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:270
-#, fuzzy, c-format
-msgid "ads_parse_gpo failed: %s\n"
-msgstr "パスワード管理"
-
-#: ../utils/net_ads_gpo.c:300
-msgid ""
-"Usage:\n"
-"net ads gpo list <username|machinename>\n"
-" Lists all GPOs for machine/user\n"
-" username\tUser to list GPOs for\n"
-" machinename\tMachine to list GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:327
-#, c-format
-msgid "%s: '%s' has dn: '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:451
-msgid ""
-"Usage:\n"
-"net ads gpo linkget <container>\n"
-" Lists gPLink of a containter\n"
-" container\tContainer to get link for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:470
-#, c-format
-msgid "get link for %s failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:492
-msgid ""
-"Usage:\n"
-"net ads gpo linkadd <linkdn> <gpodn> [options]\n"
-" Link a container to a GPO\n"
-" linkdn\tContainer to link to a GPO\n"
-" gpodn\tGPO to link container to\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:497
-msgid ""
-"note: DNs must be provided properly escaped.\n"
-"See RFC 4514 for details\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:518
-#, c-format
-msgid "link add failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:579
-msgid ""
-"Usage:\n"
-"net ads gpo getgpo <gpo>\n"
-" List speciefied GPO\n"
-" gpo\t\tGPO to list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:603
-#, c-format
-msgid "get gpo for [%s] failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:634
-msgid "List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:635
-msgid ""
-"net ads gpo getgpo\n"
-" List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:642
-msgid "Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:643
-msgid ""
-"net ads gpo linkadd\n"
-" Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:660
-msgid "Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:661
-msgid ""
-"net ads gpo linkget\n"
-" Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:668
-msgid "Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:669
-msgid ""
-"net ads gpo list\n"
-" Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:676
-msgid "Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:677
-msgid ""
-"net ads gpo listall\n"
-" Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:684
-msgid "Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:686
-msgid ""
-"net ads gpo refresh\n"
-" Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_afs.c:25
-msgid ""
-" net afs key filename\n"
-"\tImports a OpenAFS KeyFile into our secrets.tdb\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:27
-msgid ""
-" net afs impersonate <user> <cell>\n"
-"\tCreates a token for user@cell\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:38
-msgid "usage: 'net afs key <keyfile> cell'\n"
-msgstr ""
-
-#: ../utils/net_afs.c:43
-msgid "Could not open secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:48
-#, c-format
-msgid "Could not open %s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:53
-msgid "Could not read keyfile\n"
-msgstr ""
-
-#: ../utils/net_afs.c:58
-msgid "Could not write keyfile to secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:71
-#, c-format
-msgid "Usage: net afs impersonate <user> <cell>\n"
-msgstr ""
-
-#: ../utils/net_afs.c:78
-#, c-format
-msgid "Could not create token\n"
-msgstr ""
-
-#: ../utils/net_afs.c:83
-#, c-format
-msgid "Could not set token into kernel\n"
-msgstr ""
-
-#: ../utils/net_afs.c:87
-#, c-format
-msgid "Success: %s@%s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:98
-msgid "Import an OpenAFS keyfile"
-msgstr ""
-
-#: ../utils/net_afs.c:99
-msgid ""
-"net afs key <filename>\n"
-" Import kefile from <filename>."
-msgstr ""
-
-#: ../utils/net_afs.c:106
-msgid "Get a user token"
-msgstr ""
-
-#: ../utils/net_afs.c:107
-msgid ""
-"net afs impersonate <user> <cell>\n"
-" Create token for user@cell"
-msgstr ""
-
-#: ../utils/net_cache.c:74
-#, c-format
-msgid "Key: %s\t Timeout: %s\t Value: %s %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:75
-msgid "(expired)"
-msgstr ""
-
-#: ../utils/net_cache.c:84
-#, c-format
-msgid "Couldn't delete entry! key = %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:158
-msgid ""
-"\n"
-"Usage:\n"
-"net cache add <key string> <data string> <timeout>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:170
-msgid "Invalid timeout argument.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:175
-msgid "New cache entry stored successfully.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:179
-msgid "Entry couldn't be added. Perhaps there's already such a key.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:195
-msgid ""
-"\n"
-"Usage: net cache del <key string>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:200
-msgid "Entry deleted.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:204
-msgid "Couldn't delete specified entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:223
-msgid ""
-"\n"
-"Usage: net cache get <key>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:233
-msgid "Failed to find entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:250
-msgid "Usage: net cache search <pattern>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:272
-msgid ""
-"Usage:\n"
-"net cache list\n"
-" List all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:293 ../utils/net_cache.c:306
-msgid ""
-"Usage:\n"
-"net cache flush\n"
-" Delete all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:331
-msgid "Add new cache entry"
-msgstr ""
-
-#: ../utils/net_cache.c:332
-msgid ""
-"net cache add <key string> <data string> <timeout>\n"
-" Add new cache entry.\n"
-" key string\tKey string to add cache data under.\n"
-" data string\tData to store under given key.\n"
-" timeout\tTimeout for cache data."
-msgstr ""
-
-#: ../utils/net_cache.c:342
-msgid "Delete existing cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:343
-msgid ""
-"net cache del <key string>\n"
-" Delete existing cache entry by key.\n"
-" key string\tKey string to delete."
-msgstr ""
-
-#: ../utils/net_cache.c:351
-msgid "Get cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:352
-msgid ""
-"net cache get <key string>\n"
-" Get cache entry by key.\n"
-" key string\tKey string to look up cache entry for."
-msgstr ""
-
-#: ../utils/net_cache.c:361
-msgid "Search entry by pattern"
-msgstr ""
-
-#: ../utils/net_cache.c:362
-msgid ""
-"net cache search <pattern>\n"
-" Search entry by pattern.\n"
-" pattern\tPattern to search for in cache."
-msgstr ""
-
-#: ../utils/net_cache.c:370
-msgid "List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:371
-msgid ""
-"net cache list\n"
-" List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:378
-#, fuzzy
-msgid "Delete all cache entries"
-msgstr "印刷共有の削除"
-
-#: ../utils/net_cache.c:379
-msgid ""
-"net cache flush\n"
-" Delete all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:386
-msgid "Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_cache.c:387
-msgid ""
-"net cache stabilize\n"
-" Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_conf.c:42
-msgid "USAGE: net conf list\n"
-msgstr ""
-
-#: ../utils/net_conf.c:49
-msgid ""
-"USAGE: net conf import [--test|-T] <filename> [<servicename>]\n"
-"\t[--test|-T] testmode - do not act, just print what would be done\n"
-"\t<servicename> only import service <servicename>, ignore the rest\n"
-msgstr ""
-
-#: ../utils/net_conf.c:61
-msgid "USAGE: net conf listshares\n"
-msgstr ""
-
-#: ../utils/net_conf.c:68
-msgid "USAGE: net conf drop\n"
-msgstr ""
-
-#: ../utils/net_conf.c:75
-msgid "USAGE: net conf showshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:82
-msgid ""
-"USAGE: net conf addshare <sharename> <path> [writeable={y|N} [guest_ok={y|N} [<comment>]]\n"
-"\t<sharename> the new share name.\n"
-"\t<path> the path on the filesystem to export.\n"
-"\twriteable={y|N} set \"writeable to \"yes\" or \"no\" (default) on this share.\n"
-"\tguest_ok={y|N} set \"guest ok\" to \"yes\" or \"no\" (default) on this share.\n"
-"\t<comment> optional comment for the new share.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:97
-msgid "USAGE: net conf delshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:104
-msgid "USAGE: net conf setparm <section> <param> <value>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:111
-msgid "USAGE: net conf getparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:118
-msgid "USAGE: net conf delparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:125
-msgid "USAGE: net conf getincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:132
-msgid "USAGE: net conf setincludes <section> [<filename>]*\n"
-msgstr ""
-
-#: ../utils/net_conf.c:139
-msgid "USAGE: net conf delincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:251
-#, c-format
-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
-msgid "error: out of memory!\n"
-msgstr ""
-
-#: ../utils/net_conf.c:324
-#, c-format
-msgid "error loading file '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:330
-msgid ""
-"\n"
-"TEST MODE - would import the following configuration:\n"
-"\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "error committing transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:427 ../utils/net_conf.c:828
-#, c-format
-msgid "error cancelling transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:484
-#, c-format
-msgid "Error deleting configuration: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:521
-#, c-format
-msgid "error getting share parameters: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:630
-#, c-format
-msgid "ERROR: share name %s contains invalid characters (any of %s)\n"
-msgstr ""
-
-#: ../utils/net_conf.c:638
-msgid "ERROR: 'global' is not a valid share name.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:643
-#, c-format
-msgid "ERROR: share %s already exists.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:652
-#, c-format
-msgid "Error: path '%s' is not an absolute path.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:659
-#, c-format
-msgid ""
-"ERROR: cannot stat path '%s' to ensure this is a directory.\n"
-"Error was '%s'.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:668
-#, c-format
-msgid "ERROR: path '%s' is not a directory.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:679
-#, c-format
-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
-#, c-format
-msgid "Error setting parameter %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:748
-#, c-format
-msgid "Error deleting share %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:801
-#, c-format
-msgid "Error creating share '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:810
-#, c-format
-msgid "Error setting value '%s': %s\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "Error: given parameter '%s' is not set.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:883
-#, c-format
-msgid "Error getting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:939
-#, c-format
-msgid "Error deleting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:977
-#, c-format
-msgid "error getting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1023
-#, c-format
-msgid "error setting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1056
-#, c-format
-msgid "error deleting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1136 ../utils/net_help.c:36
-msgid "Usage:\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1160
-msgid "Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1162
-msgid ""
-"net conf list\n"
-" Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1171
-msgid "Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1173
-msgid ""
-"net conf import\n"
-" Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1181
-msgid "List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1182
-msgid ""
-"net conf listshares\n"
-" List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1189
-msgid "Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1190
-msgid ""
-"net conf drop\n"
-" Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1197
-msgid "Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1198
-msgid ""
-"net conf showshare\n"
-" Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1205
-#, fuzzy
-msgid "Create a new share."
-msgstr "ファイル共有の作成"
-
-#: ../utils/net_conf.c:1206
-msgid ""
-"net conf addshare\n"
-" Create a new share."
-msgstr ""
-
-#: ../utils/net_conf.c:1213
-#, fuzzy
-msgid "Delete a share."
-msgstr "ファイル共有の削除"
-
-#: ../utils/net_conf.c:1214
-msgid ""
-"net conf delshare\n"
-" Delete a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1221
-#, fuzzy
-msgid "Store a parameter."
-msgstr "ファイル共有 パラメータ"
-
-#: ../utils/net_conf.c:1222
-msgid ""
-"net conf setparm\n"
-" Store a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1229
-msgid "Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1230
-msgid ""
-"net conf getparm\n"
-" Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1237
-#, fuzzy
-msgid "Delete a parameter."
-msgstr "印刷共有の削除"
-
-#: ../utils/net_conf.c:1238
-msgid ""
-"net conf delparm\n"
-" Delete a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1245
-msgid "Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1246
-msgid ""
-"net conf getincludes\n"
-" Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1253
-msgid "Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1254
-msgid ""
-"net conf setincludes\n"
-" Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1261
-msgid "Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1262
-msgid ""
-"net conf setincludes\n"
-" Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_dom.c:25
-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
-msgid ""
-"usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine\n"
-msgstr ""
-
-#: ../utils/net_dom.c:31
-msgid ""
-"usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer\n"
-msgstr ""
-
-#: ../utils/net_dom.c:91
-#, c-format
-msgid "Failed to unjoin domain: %s\n"
-msgstr ""
-
-#: ../utils/net_dom.c:97 ../utils/net_dom.c:204
-msgid "Shutting down due to a domain membership change"
-msgstr ""
-
-#: ../utils/net_dom.c:290
-#, c-format
-msgid "Failed to rename machine: "
-msgstr ""
-
-#: ../utils/net_dom.c:292
-#, c-format
-msgid "Computer is not joined to a Domain\n"
-msgstr ""
-
-#: ../utils/net_dom.c:301
-msgid "Shutting down due to a computer rename"
-msgstr ""
-
-#: ../utils/net_dom.c:338
-#, fuzzy
-msgid "Join a remote machine"
-msgstr "リモートマシン"
-
-#: ../utils/net_dom.c:339
-msgid ""
-"net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Join a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:347
-#, fuzzy
-msgid "Unjoin a remote machine"
-msgstr "リモートマシン"
-
-#: ../utils/net_dom.c:348
-msgid ""
-"net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:356
-msgid "Rename a computer that is joined to a domain"
-msgstr ""
-
-#: ../utils/net_dom.c:357
-msgid ""
-"net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer"
-msgstr ""
-
-#: ../utils/net_eventlog.c:46
-msgid "usage: net eventlog dump <file.evt>\n"
-msgstr ""
-
-#: ../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
-#, fuzzy, c-format
-msgid "evt pull failed: %s\n"
-msgstr "パスワード管理"
-
-#: ../utils/net_eventlog.c:102
-msgid "usage: net eventlog import <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:116
-#, fuzzy, c-format
-msgid "evt header pull failed: %s\n"
-msgstr "パスワード管理"
-
-#: ../utils/net_eventlog.c:122
-msgid "input file is wrapped, cannot proceed\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:138 ../utils/net_eventlog.c:203
-#, c-format
-msgid "can't open the eventlog TDB (%s)\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:158
-#, c-format
-msgid "can't write to the eventlog: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:164
-#, c-format
-msgid "wrote %d entries to tdb\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:197
-msgid "usage: net eventlog export <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:214
-#, c-format
-msgid "failed to save evt file: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:243
-msgid "Dump eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:244
-msgid ""
-"net eventlog dump\n"
-" Dump win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:251
-#, fuzzy
-msgid "Import eventlog"
-msgstr "*注"
-
-#: ../utils/net_eventlog.c:252
-msgid ""
-"net eventlog import\n"
-" Import win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:259
-msgid "Export eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:260
-msgid ""
-"net eventlog export\n"
-" Export win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_file.c:27
-msgid ""
-"net [<method>] file [misc. options] [targets]\n"
-"\tlists all open files on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:29
-msgid ""
-"net [<method>] file USER <username> [misc. options] [targets]\n"
-"\tlists all files opened by username on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:32
-msgid ""
-"net [<method>] file CLOSE <id> [misc. options] [targets]\n"
-"\tcloses specified file on target server\n"
-msgstr ""
-
-#: ../utils/net_file.c:34
-msgid ""
-"net [rap] file INFO <id> [misc. options] [targets]\n"
-"\tdisplays information about the specified open file\n"
-msgstr ""
-
-#: ../utils/net_group.c:27
-msgid ""
-"net [<method>] group [misc. options] [targets]\n"
-"\tList user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:29
-msgid ""
-"net rpc group LIST [global|local|builtin]* [misc. options]\n"
-"\tList specific user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:31
-msgid ""
-"net [<method>] group DELETE <name> [misc. options] [targets]\n"
-"\tDelete specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:34
-msgid ""
-"\n"
-"net [<method>] group ADD <name> [-C comment] [-c container] [misc. options] [targets]\n"
-"\tCreate specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:37
-msgid ""
-"\n"
-"net rpc group MEMBERS <name>\n"
-"\tList Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:38
-msgid ""
-"\n"
-"net rpc group ADDMEM <group> <member>\n"
-"\tAdd Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:40
-msgid ""
-"\n"
-"net rpc group DELMEM <group> <member>\n"
-"\tDelete Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:44
-msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:46
-msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:48
-msgid "\t-L or --localgroup\t\tWhen adding groups, create a local group (alias)\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:38
-#, c-format
-msgid "NT Group %s doesn't exist in mapping DB\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:46
-#, c-format
-msgid "converting sid %s from a string failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:65
-#, c-format
-msgid "\tSID : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:66
-#, c-format
-msgid "\tUnix gid : %u\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:67
-#, c-format
-msgid "\tUnix group: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:68
-#, c-format
-msgid "\tGroup type: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:70
-#, c-format
-msgid "\tComment : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:84
-msgid ""
-"net groupmap list [verbose] [ntgroup=NT group] [sid=SID]\n"
-" verbose\tPrint verbose list\n"
-" ntgroup\tNT group to list\n"
-" 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
-#, fuzzy, 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
-msgid "must supply a name\n"
-msgstr ""
-
-#: ../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
-#, fuzzy, c-format
-msgid "Bad option: %s\n"
-msgstr "基本 オプション"
-
-#: ../utils/net_groupmap.c:139
-msgid "Failure to local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:181
-msgid "net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:195
-#, fuzzy, c-format
-msgid ""
-"Usage\n"
-"%s\n"
-msgstr "ユーザ名"
-
-#: ../utils/net_groupmap.c:205
-#, c-format
-msgid "RID must be greater than %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:235 ../utils/net_groupmap.c:380
-msgid "must supply a comment string\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:259
-#, c-format
-msgid "unknown group type %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:276
-#, c-format
-msgid "Can't lookup UNIX group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:282
-#, c-format
-msgid "Unix group %s already mapped to SID %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:289
-msgid "No rid or sid specified, choosing a RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:292
-msgid "Could not get new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:297
-#, c-format
-msgid "Got RID %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:328
-#, c-format
-msgid "adding entry for group %s failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:332
-#, c-format
-msgid "Successfully added group %s to the mapping db as a %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:349
-msgid "net groupmap modify {ntgroup=<string>|sid=<SID>} [comment=<string>] [unixgroup=<string>] [type=<domain|local>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:388
-msgid "must supply a group name\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:434
-msgid "Failed to find local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:443
-msgid "Can't map to an unknown group type.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:449
-msgid "You can only change between domain and local groups.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:466
-#, c-format
-msgid "Unable to lookup UNIX group %s. Make sure the group exists.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:476
-msgid "Could not update group database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:480
-#, c-format
-msgid "Updated mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:491
-msgid "net groupmap delete {ntgroup=<string>|sid=<SID>}"
-msgstr ""
-
-#: ../utils/net_groupmap.c:532
-#, c-format
-msgid "Unable to resolve group %s to a SID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:539
-#, c-format
-msgid "Failed to remove group %s from the mapping db!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:544
-#, c-format
-msgid "Sucessfully removed %s from the mapping db\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:557
-msgid "Usage: net groupmap set \"NT Group\" [\"unix group\"] [-C \"comment\"] [-L] [-D]\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:563
-msgid "Can only specify -L or -D, not both\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:573
-#, c-format
-msgid "Could not find unix group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:594
-#, c-format
-msgid "Could not find group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:605
-msgid "Could not allocate new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:622
-#, c-format
-msgid "Could not add mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:633
-#, c-format
-msgid "Can't change type of the BUILTIN group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:660
-#, c-format
-msgid "Could not update group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:674
-msgid ""
-"Usage:\n"
-"net groupmap cleanup\n"
-" Delete all group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:682
-msgid "Could not list group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:689
-#, c-format
-msgid "Group %s is not mapped\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:692
-#, c-format
-msgid "Deleting mapping for NT Group %s, sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:712
-msgid "Usage: net groupmap addmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:717
-#, c-format
-msgid "Could not add sid %s to alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:733
-msgid "Usage: net groupmap delmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:738
-#, c-format
-msgid "Could not delete sid %s from alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:755
-msgid "Usage: net groupmap listmem alias-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:764
-#, c-format
-msgid "Could not list members for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:791
-#, c-format
-msgid "Could not list memberships for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:814
-msgid "Usage: net groupmap memberof sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:820 ../utils/net_idmap.c:345
-msgid "talloc_init failed\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:827
-msgid "Could not get domain sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:850
-msgid "Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:851
-msgid ""
-"net groupmap add\n"
-" Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:858
-msgid "Update a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:859
-msgid ""
-"net groupmap modify\n"
-" Modify an existing group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:866
-msgid "Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:867
-msgid ""
-"net groupmap delete\n"
-" Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:874
-msgid "Set group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:875
-msgid ""
-"net groupmap set\n"
-" Set a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:882
-msgid "Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:883
-msgid ""
-"net groupmap cleanup\n"
-" Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:890
-msgid "Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:891
-msgid ""
-"net groupmap addmem\n"
-" Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:898
-msgid "Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:899
-msgid ""
-"net groupmap delmem\n"
-" Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:906
-msgid "List foreign group members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:907
-msgid ""
-"net groupmap listmem\n"
-" List foreign alias members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:914
-msgid "List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:915
-msgid ""
-"net groupmap memberships\n"
-" List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:922
-msgid "List current group map"
-msgstr ""
-
-#: ../utils/net_groupmap.c:923
-msgid ""
-"net groupmap list\n"
-" List current group map"
-msgstr ""
-
-#: ../utils/net_help.c:39
-#, c-format
-msgid "net %s usage:\n"
-msgstr ""
-
-#: ../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
-msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:27 ../utils/net_join.c:30
-msgid "\trpc\t\t\t\tDCE-RPC\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:28
-msgid "\trap\t\t\t\tRAP (older systems)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:35
-msgid "Valid targets: choose one (none defaults to localhost)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:36
-msgid "\t-S or --server=<server>\t\tserver name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:37
-msgid "\t-I or --ipaddress=<ipaddr>\taddress of target server\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:38
-msgid "\t-w or --workgroup=<wg>\t\ttarget workgroup or domain\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:41
-#, fuzzy
-msgid "Valid miscellaneous options are:\n"
-msgstr "その他のオプション"
-
-#. misc options
-#: ../utils/net_help_common.c:42
-msgid "\t-p or --port=<port>\t\tconnection port on target\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:43
-msgid "\t-W or --myworkgroup=<wg>\tclient workgroup\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:44
-msgid "\t-d or --debuglevel=<level>\tdebug level (0-10)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:45
-msgid "\t-n or --myname=<name>\t\tclient name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:46
-msgid "\t-U or --user=<name>\t\tuser name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:47
-msgid "\t-s or --configfile=<path>\tpathname of smb.conf file\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:48
-msgid "\t-l or --long\t\t\tDisplay full information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:49
-msgid "\t-V or --version\t\t\tPrint samba version information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:50
-msgid "\t-P or --machine-pass\t\tAuthenticate as machine account\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:52
-msgid "\t-e or --encrypt\t\t\tEncrypt SMB transport (UNIX extended servers only)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:54
-msgid "\t-k or --kerberos\t\tUse kerberos (active directory) authentication\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:25
-msgid "Out of memory!\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:39
-#, c-format
-msgid "USER HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:44
-#, c-format
-msgid "GROUP HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:63
-msgid ""
-"Usage:\n"
-"net idmap dump <inputfile>\n"
-" Dump current ID mapping.\n"
-" inputfile\tTDB file to read mappings from.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:73
-#, c-format
-msgid "Could not open idmap: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:94
-msgid ""
-"Usage:\n"
-"net idmap restore [inputfile]\n"
-" Restore ID mappings from file\n"
-" inputfile\tFile to load ID mappings from. If not given, load data from stdin.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:104
-msgid "To use net idmap Winbindd must be running.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:142
-#, c-format
-msgid "Could not set USER HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:151
-#, c-format
-msgid "Could not set GROUP HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:156
-#, c-format
-msgid "ignoring invalid line [%s]\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:163
-#, c-format
-msgid "ignoring invalid sid [%s]: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:175
-#, c-format
-msgid "Could not set mapping of %s %lu to sid %s: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:196 ../utils/net_idmap.c:202
-msgid "Not Implemented yet\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:240
-msgid ""
-"Usage:\n"
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set the secret for the specified domain (or alloc module)\n"
-" DOMAIN\tDomain to set secret for.\n"
-" alloc\tSet secret for the alloc module\n"
-" secret\tNew secret to set.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:271
-msgid "The only currently supported backend is LDAP\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:281
-#, c-format
-msgid "Missing ldap_user_dn option for domain %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:292
-msgid "Missing ldap_user_dn option for alloc backend\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:302
-msgid "Failed to store secret\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:307
-msgid "Secret stored\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:313
-msgid ""
-"net idmap dump <inputfile>\n"
-" Dump current id mapping\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:316
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin\n"
-msgstr ""
-
-#. Deliberately *not* document net idmap delete
-#: ../utils/net_idmap.c:321
-msgid ""
-"net idmap secret <DOMAIN>|alloc <secret>\n"
-" Set the secret for the specified DOMAIN (or the alloc module)\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:339
-msgid "usage: net idmap aclmapset <tdb> <src-sid> <dst-sid>\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:351
-#, fuzzy, c-format
-msgid "db_open failed: %s\n"
-msgstr "パスワード管理"
-
-#: ../utils/net_idmap.c:356 ../utils/net_idmap.c:361
-#, c-format
-msgid "%s is not a valid sid\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:367
-msgid "talloc_strdup failed\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:373
-msgid "could not fetch db record\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:381
-#, c-format
-msgid "could not store record: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:402
-msgid "Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:403
-msgid ""
-"net idmap dump\n"
-" Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:410
-msgid "Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:411
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:418 ../utils/net_idmap.c:426
-msgid "Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:419
-msgid ""
-"net idmap setmap\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:427
-msgid ""
-"net idmap delete\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:434
-msgid "Set secret for specified domain"
-msgstr ""
-
-#: ../utils/net_idmap.c:435
-msgid ""
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set secret for specified domain or alloc module"
-msgstr ""
-
-#: ../utils/net_idmap.c:442
-msgid "Set acl map"
-msgstr ""
-
-#: ../utils/net_idmap.c:443
-msgid ""
-"net idmap aclmapset\n"
-" Set acl map"
-msgstr ""
-
-#: ../utils/net_join.c:26
-msgid ""
-"\n"
-"net [<method>] join [misc. options]\n"
-"\tjoins this server to a domain\n"
-msgstr ""
-
-#: ../utils/net_join.c:47
-msgid "ADS join did not work, falling back to RPC...\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:25
-msgid ""
-" net lookup [host] HOSTNAME[#<type>]\n"
-"\tgives IP for a hostname\n"
-"\n"
-" net lookup ldap [domain]\n"
-"\tgives IP of domain's ldap server\n"
-"\n"
-" net lookup kdc [realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup pdc [domain|realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup dc [domain]\n"
-"\tgives IP of domains Domain Controllers\n"
-"\n"
-" net lookup master [domain|wg]\n"
-"\tgive IP of master browser\n"
-"\n"
-" net lookup name [name]\n"
-"\tLookup name's sid and type\n"
-"\n"
-" net lookup sid [sid]\n"
-"\tGive sid's name and type\n"
-"\n"
-" net lookup dsgetdcname [name] [flags] [sitename]\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:112
-msgid "net_lookup_ldap: talloc_init() failed!\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:325
-msgid "usage: net lookup name <name>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:331 ../utils/net_lookup.c:358
-#, c-format
-msgid "Could not lookup name %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:347
-msgid "usage: net lookup sid <sid>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:352
-#, c-format
-msgid "Could not convert %s to SID\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:378
-msgid "usage: net lookup dsgetdcname <name> <flags> <sitename>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:404
-#, c-format
-msgid "failed with: %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:437
-msgid ""
-"\n"
-"Usage: \n"
-msgstr ""
-
-#: ../utils/net_lua.c:60
-msgid "connect: Expected IP-Address"
-msgstr ""
-
-#: ../utils/net_lua.c:65
-msgid "connect: Expected port"
-msgstr ""
-
-#: ../utils/net_lua.c:84
-#, fuzzy, c-format
-msgid "connect failed: %s"
-msgstr "パスワード管理"
-
-#: ../utils/net_lua.c:132
-#, c-format
-msgid "socket domain %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:144
-#, c-format
-msgid "socket type %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:155
-#, fuzzy, c-format
-msgid "socket() failed: %s"
-msgstr "パスワード管理"
-
-#: ../utils/net_lua.c:278
-msgid "evt_reference_thread failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:287
-msgid "event_add_timed failed"
-msgstr ""
-
-#: ../utils/net_lua.c:300
-msgid "event_once called from non-base thread"
-msgstr ""
-
-#: ../utils/net_lua.c:323
-msgid "event_context_init failed"
-msgstr ""
-
-#: ../utils/net_lua.c:353
-msgid "lua_newstate failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:371
-msgid "luaL_dofile returned an error\n"
-msgstr ""
-
-#: ../utils/net_lua.c:376
-msgid "luaL_dostring returned an error\n"
-msgstr ""
diff --git a/source3/po/pl.msg b/source3/po/pl.msg
index f818c6698d..aca5de6eb3 100644
--- a/source3/po/pl.msg
+++ b/source3/po/pl.msg
@@ -17,8 +17,7 @@
msgid ""
msgstr ""
"Project-Id-Version: i18n_swat \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-30 12:18+0200\n"
+"POT-Creation-Date: 2003-10-06 05:30+0900\n"
"PO-Revision-Date: 2001-08-15 22:45+02:00\n"
"Last-Translator: Rafal Szczesniak <mimir@spin.ict.pwr.wroc.pl>\n"
"Language-Team: pl\n"
@@ -26,4013 +25,568 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
-#: ../web/swat.c:153
+#: ../web/swat.c:117
#, c-format
msgid "ERROR: Can't open %s"
msgstr ""
-#: ../web/swat.c:241
+#: ../web/swat.c:200
msgid "Help"
msgstr "Pomoc"
-#: ../web/swat.c:247 ../web/swat.c:272 ../web/swat.c:293 ../web/swat.c:302 ../web/swat.c:311 ../web/swat.c:317 ../web/swat.c:329 ../web/swat.c:343
+#: ../web/swat.c:206 ../web/swat.c:220 ../web/swat.c:235 ../web/swat.c:243 ../web/swat.c:252 ../web/swat.c:261 ../web/swat.c:267 ../web/swat.c:273 ../web/swat.c:286
msgid "Set Default"
msgstr "Ustaw domyślnie"
-#: ../web/swat.c:465
+#: ../web/swat.c:408
#, c-format
msgid "failed to open %s for writing"
msgstr ""
-#: ../web/swat.c:488
+#: ../web/swat.c:431
#, c-format
msgid "Can't reload %s"
msgstr ""
-#: ../web/swat.c:561
+#: ../web/swat.c:501
#, c-format
msgid "Logged in as <b>%s</b>"
msgstr "Zalogowany jako <b>%s</b><p>\n"
-#: ../web/swat.c:565
+#: ../web/swat.c:505
msgid "Home"
msgstr "Strona domowa"
-#: ../web/swat.c:567
+#: ../web/swat.c:507
msgid "Globals"
msgstr "Ustawienia globalne"
-#: ../web/swat.c:568
+#: ../web/swat.c:508
msgid "Shares"
msgstr "Współudziały"
-#: ../web/swat.c:569
+#: ../web/swat.c:509
msgid "Printers"
msgstr "Drukarki"
-#: ../web/swat.c:570
+#: ../web/swat.c:510
msgid "Wizard"
msgstr ""
-#: ../web/swat.c:574
+#: ../web/swat.c:513
msgid "Status"
msgstr "Status"
-#: ../web/swat.c:575
+#: ../web/swat.c:514
msgid "View Config"
msgstr "Przejrzyj Konfigurację"
-#: ../web/swat.c:577
+#: ../web/swat.c:516
msgid "Password Management"
msgstr "Zarządzanie Hasłami"
-#: ../web/swat.c:587
+#: ../web/swat.c:526
msgid "Current View Is"
msgstr "Bieżąca Konfiguracja"
-#: ../web/swat.c:588 ../web/swat.c:591
+#: ../web/swat.c:527 ../web/swat.c:530
msgid "Basic"
msgstr "Widok Podstawowy"
-#: ../web/swat.c:589 ../web/swat.c:592
+#: ../web/swat.c:528 ../web/swat.c:531
msgid "Advanced"
msgstr "Widok Zaawansowany"
-#: ../web/swat.c:590
+#: ../web/swat.c:529
msgid "Change View To"
msgstr "Zmień Hasło"
-#: ../web/swat.c:619
+#: ../web/swat.c:554
msgid "Current Config"
msgstr "Bieżąca Konfiguracja"
-#: ../web/swat.c:623
+#: ../web/swat.c:558
msgid "Normal View"
msgstr "Normalny Widok"
-#: ../web/swat.c:625
+#: ../web/swat.c:560
msgid "Full View"
msgstr "Pełny Widok"
#. Here we first set and commit all the parameters that were selected
#. in the previous screen.
-#: ../web/swat.c:644
+#: ../web/swat.c:579
msgid "Wizard Parameter Edit Page"
msgstr ""
-#: ../web/swat.c:673
+#: ../web/swat.c:608
msgid "Note: smb.conf file has been read and rewritten"
msgstr ""
#. Here we go ...
-#: ../web/swat.c:779
+#: ../web/swat.c:716
msgid "Samba Configuration Wizard"
msgstr ""
-#: ../web/swat.c:783
+#: ../web/swat.c:720
msgid "The \"Rewrite smb.conf file\" button will clear the smb.conf file of all default values and of comments."
msgstr ""
-#: ../web/swat.c:784
+#: ../web/swat.c:721
msgid "The same will happen if you press the commit button."
msgstr ""
-#: ../web/swat.c:787
+#: ../web/swat.c:724
msgid "Rewrite smb.conf file"
msgstr ""
-#: ../web/swat.c:788
+#: ../web/swat.c:725
msgid "Commit"
msgstr "Potwierdź Zmiany"
-#: ../web/swat.c:789
+#: ../web/swat.c:726
msgid "Edit Parameter Values"
msgstr "Parametry Drukarki"
-#: ../web/swat.c:795
+#: ../web/swat.c:732
msgid "Server Type"
msgstr ""
-#: ../web/swat.c:796
+#: ../web/swat.c:733
msgid "Stand Alone"
msgstr "Uruchom nmbd"
-#: ../web/swat.c:797
+#: ../web/swat.c:734
msgid "Domain Member"
msgstr ""
-#: ../web/swat.c:798
+#: ../web/swat.c:735
msgid "Domain Controller"
msgstr ""
-#: ../web/swat.c:801
+#: ../web/swat.c:738
msgid "Unusual Type in smb.conf - Please Select New Mode"
msgstr ""
-#: ../web/swat.c:803
+#: ../web/swat.c:740
msgid "Configure WINS As"
msgstr ""
-#: ../web/swat.c:804
+#: ../web/swat.c:741
msgid "Not Used"
msgstr ""
-#: ../web/swat.c:805
+#: ../web/swat.c:742
msgid "Server for client use"
msgstr ""
-#: ../web/swat.c:806
+#: ../web/swat.c:743
msgid "Client of another WINS server"
msgstr ""
-#: ../web/swat.c:808
+#: ../web/swat.c:745
msgid "Remote WINS Server"
msgstr ""
-#: ../web/swat.c:819
+#: ../web/swat.c:756
msgid "Error: WINS Server Mode and WINS Support both set in smb.conf"
msgstr ""
-#: ../web/swat.c:820
+#: ../web/swat.c:757
msgid "Please Select desired WINS mode above."
msgstr ""
-#: ../web/swat.c:822
+#: ../web/swat.c:759
msgid "Expose Home Directories"
msgstr ""
-#: ../web/swat.c:837
+#: ../web/swat.c:774
msgid "The above configuration options will set multiple parameters and will generally assist with rapid Samba deployment."
msgstr ""
-#: ../web/swat.c:850
+#: ../web/swat.c:787
msgid "Global Parameters"
msgstr "Zmienne Globalne"
-#: ../web/swat.c:878 ../web/swat.c:986 ../web/swat.c:1344
+#: ../web/swat.c:815 ../web/swat.c:916 ../web/swat.c:1265
msgid "Commit Changes"
msgstr "Potwierdź Zmiany"
-#: ../web/swat.c:882 ../web/swat.c:989 ../web/swat.c:1346
+#: ../web/swat.c:819 ../web/swat.c:919 ../web/swat.c:1267
msgid "Reset Values"
msgstr "Zresetuj Wartości"
-#: ../web/swat.c:908
+#: ../web/swat.c:844
msgid "Share Parameters"
msgstr "Parametry Współudziału"
-#: ../web/swat.c:955
+#: ../web/swat.c:887
msgid "Choose Share"
msgstr "Wybierz Współudział"
-#: ../web/swat.c:971
+#: ../web/swat.c:901
msgid "Delete Share"
msgstr "Usuń Współudział"
-#: ../web/swat.c:978
+#: ../web/swat.c:908
msgid "Create Share"
msgstr "Utwórz Współudział"
-#: ../web/swat.c:1014
+#: ../web/swat.c:944
msgid "password change in demo mode rejected"
msgstr "zmiana hasła w trybie demo odrzucona\n"
-#: ../web/swat.c:1028
+#: ../web/swat.c:957
msgid "Can't setup password database vectors."
msgstr ""
-#: ../web/swat.c:1056
+#: ../web/swat.c:983
msgid " Must specify \"User Name\" "
msgstr " Musisz podać \"Nazwę Użytkownika\" \n"
-#: ../web/swat.c:1072
+#: ../web/swat.c:999
msgid " Must specify \"Old Password\" "
msgstr " Musisz podać \"Stare Hasło\" \n"
-#: ../web/swat.c:1078
+#: ../web/swat.c:1005
msgid " Must specify \"Remote Machine\" "
msgstr " Musisz podać \"Zdalną Maszynę\" \n"
-#: ../web/swat.c:1085
+#: ../web/swat.c:1012
msgid " Must specify \"New, and Re-typed Passwords\" "
msgstr " Musisz podać \"Nowe Hasło, i ponownie wpisane Nowe Hasło\" \n"
-#: ../web/swat.c:1091
+#: ../web/swat.c:1018
msgid " Re-typed password didn't match new password "
msgstr " Ponownie wpisane hasło nie pasuje do nowego hasła\n"
-#: ../web/swat.c:1124
+#: ../web/swat.c:1048
#, c-format
msgid " The passwd for '%s' has been changed."
msgstr " Hasło dla '%s' zostało zmienione. \n"
-#: ../web/swat.c:1127
+#: ../web/swat.c:1051
#, c-format
msgid " The passwd for '%s' has NOT been changed."
msgstr " Hasło dla '%s' NIE zostało zmienione. \n"
-#: ../web/swat.c:1152
+#: ../web/swat.c:1076
msgid "Server Password Management"
msgstr "Zarządzanie Hasłami na Serwerze"
#.
#. * Create all the dialog boxes for data collection
#.
-#: ../web/swat.c:1161 ../web/swat.c:1208
+#: ../web/swat.c:1085 ../web/swat.c:1132
msgid "User Name"
msgstr " Nazwa Użytkownika"
-#: ../web/swat.c:1164 ../web/swat.c:1210
+#: ../web/swat.c:1088 ../web/swat.c:1134
msgid "Old Password"
msgstr " Stare Hasło"
-#: ../web/swat.c:1167 ../web/swat.c:1212
+#: ../web/swat.c:1091 ../web/swat.c:1136
msgid "New Password"
msgstr " Nowe Hasło"
-#: ../web/swat.c:1169 ../web/swat.c:1214
+#: ../web/swat.c:1093 ../web/swat.c:1138
msgid "Re-type New Password"
msgstr " Ponownie wpisz Nowe Hasło"
-#: ../web/swat.c:1177 ../web/swat.c:1225
+#: ../web/swat.c:1101 ../web/swat.c:1149
msgid "Change Password"
msgstr "Zmień Hasło"
-#: ../web/swat.c:1180
+#: ../web/swat.c:1104
msgid "Add New User"
msgstr "Dodaj Nowego Użytkownika"
-#: ../web/swat.c:1182
+#: ../web/swat.c:1106
msgid "Delete User"
msgstr "Usuń Użytkownika"
-#: ../web/swat.c:1184
+#: ../web/swat.c:1108
msgid "Disable User"
msgstr "Zablokuj Użytkownika"
-#: ../web/swat.c:1186
+#: ../web/swat.c:1110
msgid "Enable User"
msgstr "Odblokuj Użytkownika"
-#: ../web/swat.c:1199
+#: ../web/swat.c:1123
msgid "Client/Server Password Management"
msgstr "Zarządzanie Hasłami Klient/Serwer"
-#: ../web/swat.c:1216
+#: ../web/swat.c:1140
msgid "Remote Machine"
msgstr " Zdalna Maszyna"
-#: ../web/swat.c:1255
+#: ../web/swat.c:1179
msgid "Printer Parameters"
msgstr "Parametry Drukarki"
-#: ../web/swat.c:1257
+#: ../web/swat.c:1181
msgid "Important Note:"
msgstr "Ważna Informacja:"
-#: ../web/swat.c:1258
+#: ../web/swat.c:1182
msgid "Printer names marked with [*] in the Choose Printer drop-down box "
msgstr "Nazwy Drukarek zaznaczone [*] w rozwijanym polu Wybierz Drukarkę "
-#: ../web/swat.c:1259
+#: ../web/swat.c:1183
msgid "are autoloaded printers from "
msgstr "są drukarkami automatycznie ładowanymi z "
-#: ../web/swat.c:1260
+#: ../web/swat.c:1184
msgid "Printcap Name"
msgstr "Nazwa Printcap"
-#: ../web/swat.c:1261
+#: ../web/swat.c:1185
msgid "Attempting to delete these printers from SWAT will have no effect."
msgstr "Próby usunięcia tych drukarek ze SWAT nie przyniosą efektu.\n"
-#: ../web/swat.c:1310
+#: ../web/swat.c:1231
msgid "Choose Printer"
msgstr "Wybierz Drukarkę"
-#: ../web/swat.c:1329
+#: ../web/swat.c:1250
msgid "Delete Printer"
msgstr "Usuń Drukarkę"
-#: ../web/swat.c:1336
+#: ../web/swat.c:1257
msgid "Create Printer"
msgstr "Utwórz Drukarkę"
-#: ../web/statuspage.c:151
-msgid "RDWR "
+#: ../web/statuspage.c:123
+msgid "RDONLY "
msgstr ""
-#: ../web/statuspage.c:153
+#: ../web/statuspage.c:124
msgid "WRONLY "
msgstr ""
-#: ../web/statuspage.c:155
-msgid "RDONLY "
+#: ../web/statuspage.c:125
+msgid "RDWR "
msgstr ""
-#: ../web/statuspage.c:329
+#: ../web/statuspage.c:309
msgid "Server Status"
msgstr "Status Serwera"
-#: ../web/statuspage.c:334
+#: ../web/statuspage.c:314
msgid "Auto Refresh"
msgstr "Automatyczne Odświeżanie"
-#: ../web/statuspage.c:335 ../web/statuspage.c:340
+#: ../web/statuspage.c:315 ../web/statuspage.c:320
msgid "Refresh Interval: "
msgstr "Interwał Odświeżania: "
-#: ../web/statuspage.c:339
+#: ../web/statuspage.c:319
msgid "Stop Refreshing"
msgstr "Zatrzymaj Odświeżanie"
-#: ../web/statuspage.c:348
+#: ../web/statuspage.c:334
msgid "version:"
msgstr "wersja:"
-#: ../web/statuspage.c:351
+#: ../web/statuspage.c:337
msgid "smbd:"
msgstr ""
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "running"
msgstr "działa"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "not running"
msgstr "nie działa"
-#: ../web/statuspage.c:355
+#: ../web/statuspage.c:341
msgid "Stop smbd"
msgstr "Zatrzymaj smbd"
-#: ../web/statuspage.c:357
+#: ../web/statuspage.c:343
msgid "Start smbd"
msgstr "Uruchom smbd"
-#: ../web/statuspage.c:359
+#: ../web/statuspage.c:345
msgid "Restart smbd"
msgstr "Zrestartuj smbd"
-#: ../web/statuspage.c:364
+#: ../web/statuspage.c:350
msgid "nmbd:"
msgstr ""
-#: ../web/statuspage.c:368
+#: ../web/statuspage.c:354
msgid "Stop nmbd"
msgstr "Zatrzymaj nmbd"
-#: ../web/statuspage.c:370
+#: ../web/statuspage.c:356
msgid "Start nmbd"
msgstr "Uruchom nmbd"
-#: ../web/statuspage.c:372
+#: ../web/statuspage.c:358
msgid "Restart nmbd"
msgstr "Zrestartuj nmbd"
-#: ../web/statuspage.c:378
+#: ../web/statuspage.c:364
msgid "winbindd:"
msgstr ""
-#: ../web/statuspage.c:382
+#: ../web/statuspage.c:368
msgid "Stop winbindd"
msgstr "Zatrzymaj nmbd"
-#: ../web/statuspage.c:384
+#: ../web/statuspage.c:370
msgid "Start winbindd"
msgstr "Uruchom nmbd"
-#: ../web/statuspage.c:386
+#: ../web/statuspage.c:372
msgid "Restart winbindd"
msgstr "Zrestartuj nmbd"
#. stop, restart all
-#: ../web/statuspage.c:395
+#: ../web/statuspage.c:381
msgid "Stop All"
msgstr ""
-#: ../web/statuspage.c:396
+#: ../web/statuspage.c:382
msgid "Restart All"
msgstr "Zrestartuj nmbd"
#. start all
-#: ../web/statuspage.c:400
+#: ../web/statuspage.c:386
msgid "Start All"
msgstr "Uruchom nmbd"
-#: ../web/statuspage.c:407
+#: ../web/statuspage.c:393
msgid "Active Connections"
msgstr "Aktywne Połączenia"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "PID"
msgstr ""
-#: ../web/statuspage.c:409 ../web/statuspage.c:422
+#: ../web/statuspage.c:395 ../web/statuspage.c:408
msgid "Client"
msgstr "Klient"
-#: ../web/statuspage.c:409
+#: ../web/statuspage.c:395
msgid "IP address"
msgstr "adres IP"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "Date"
msgstr "Data"
-#: ../web/statuspage.c:411
+#: ../web/statuspage.c:397
msgid "Kill"
msgstr "Zatrzymaj"
-#: ../web/statuspage.c:419
+#: ../web/statuspage.c:405
msgid "Active Shares"
msgstr "Aktywne Współudziały"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Share"
msgstr "Współudział"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "User"
msgstr "Użytkownik"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Group"
msgstr "Grupa"
-#: ../web/statuspage.c:428
+#: ../web/statuspage.c:414
msgid "Open Files"
msgstr "Otwarte Pliki"
-#: ../web/statuspage.c:431
-msgid "UID"
-msgstr ""
-
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Sharing"
msgstr "Współdzielenie"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "R/W"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Oplock"
msgstr ""
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "File"
msgstr "Plik"
-#: ../web/statuspage.c:438
+#: ../web/statuspage.c:425
msgid "Show Client in col 1"
msgstr ""
-#: ../web/statuspage.c:439
+#: ../web/statuspage.c:426
msgid "Show PID in col 1"
msgstr ""
-#: ../param/loadparm.c:907
+#: ../param/loadparm.c:755
msgid "Base Options"
msgstr "Bazowe Opcje"
-#: ../param/loadparm.c:1047
+#: ../param/loadparm.c:775
msgid "Security Options"
msgstr "Opcje Zabezpieczeń"
-#: ../param/loadparm.c:1800
+#: ../param/loadparm.c:859
msgid "Logging Options"
msgstr "Opcje Blokowania"
-#: ../param/loadparm.c:1929
+#: ../param/loadparm.c:874
msgid "Protocol Options"
msgstr "Opcje Protokołu"
-#: ../param/loadparm.c:2301
+#: ../param/loadparm.c:911
msgid "Tuning Options"
msgstr "Opcje Dostrajające"
-#: ../param/loadparm.c:2538
+#: ../param/loadparm.c:940
msgid "Printing Options"
msgstr "Opcje Drukowania"
-#: ../param/loadparm.c:2858
+#: ../param/loadparm.c:970
msgid "Filename Handling"
msgstr "Obsługa Nazw Plików"
-#: ../param/loadparm.c:3088
+#: ../param/loadparm.c:996
msgid "Domain Options"
msgstr "Opcje Domeny"
-#: ../param/loadparm.c:3100
+#: ../param/loadparm.c:1000
msgid "Logon Options"
msgstr "Opcje Logowania"
-#: ../param/loadparm.c:3273
+#: ../param/loadparm.c:1019
msgid "Browse Options"
msgstr "Opcje Przeglądania"
-#: ../param/loadparm.c:3384
+#: ../param/loadparm.c:1033
msgid "WINS Options"
msgstr "Opcje WINS"
-#: ../param/loadparm.c:3432
+#: ../param/loadparm.c:1043
msgid "Locking Options"
msgstr "Opcje Blokowania"
-#: ../param/loadparm.c:3552
+#: ../param/loadparm.c:1061
msgid "Ldap Options"
msgstr "Opcje Ldap"
-#: ../param/loadparm.c:3708
-#, fuzzy
-msgid "EventLog Options"
-msgstr "Opcje Logowania"
-
-#: ../param/loadparm.c:3720
+#: ../param/loadparm.c:1078
msgid "Miscellaneous Options"
msgstr "Pozostałe Opcje"
-#: ../param/loadparm.c:4301
+#: ../param/loadparm.c:1138
msgid "VFS module options"
msgstr "Opcje WINS"
-#: ../param/loadparm.c:4323
-#, fuzzy
-msgid "MSDFS options"
-msgstr "Opcje WINS"
-
-#: ../param/loadparm.c:4353
+#: ../param/loadparm.c:1148
msgid "Winbind options"
msgstr "Opcje Drukowania"
-
-#: ../utils/net.c:103
-msgid "Enter machine password: "
-msgstr ""
-
-#: ../utils/net.c:107
-msgid "Unable to write the machine account password in the secrets database"
-msgstr ""
-
-#: ../utils/net.c:111
-msgid "Modified trust account password in secrets database\n"
-msgstr ""
-
-#: ../utils/net.c:115
-msgid ""
-"Machine account password change requires the -f flag.\n"
-"Do NOT use this function unless you know what it does!\n"
-"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
-#, 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
-#, c-format
-msgid "SID for domain %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:175
-msgid "usage: net setlocalsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:195
-msgid "usage: net setdomainsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:213
-msgid "usage: net getdomainsid\n"
-msgstr ""
-
-#: ../utils/net.c:238
-msgid "Could not fetch local SID\n"
-msgstr ""
-
-#: ../utils/net.c:242
-#, c-format
-msgid "SID for local machine %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:246
-msgid "Could not fetch domain SID\n"
-msgstr ""
-
-#: ../utils/net.c:263
-#, c-format
-msgid "get_maxrid: Could not search %s\n"
-msgstr ""
-
-#: ../utils/net.c:297
-msgid "usage: net maxrid\n"
-msgstr ""
-
-#: ../utils/net.c:302
-msgid "can't get current maximum rid\n"
-msgstr ""
-
-#: ../utils/net.c:306
-#, c-format
-msgid "Currently used maximum rid: %d\n"
-msgstr ""
-
-#: ../utils/net.c:317
-msgid "Run functions using RPC transport"
-msgstr ""
-
-#: ../utils/net.c:318
-msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands."
-msgstr ""
-
-#: ../utils/net.c:325
-msgid "Run functions using RAP transport"
-msgstr ""
-
-#: ../utils/net.c:326
-msgid " Use 'net help rap' to get more extensive information about 'net rap' commands."
-msgstr ""
-
-#: ../utils/net.c:333
-msgid "Run functions using ADS transport"
-msgstr ""
-
-#: ../utils/net.c:334
-msgid " Use 'net help ads' to get more extensive information about 'net ads' commands."
-msgstr ""
-
-#: ../utils/net.c:343
-msgid "Functions on remote opened files"
-msgstr ""
-
-#: ../utils/net.c:344
-msgid " Use 'net help file' to get more information about 'net file' commands."
-msgstr ""
-
-#: ../utils/net.c:351
-msgid "Functions on shares"
-msgstr ""
-
-#: ../utils/net.c:352
-msgid " Use 'net help share' to get more information about 'net share' commands."
-msgstr ""
-
-#: ../utils/net.c:359
-msgid "Manage sessions"
-msgstr ""
-
-#: ../utils/net.c:360
-msgid " Use 'net help session' to get more information about 'net session' commands."
-msgstr ""
-
-#: ../utils/net.c:367
-msgid "List servers in workgroup"
-msgstr ""
-
-#: ../utils/net.c:368
-msgid " Use 'net help server' to get more information about 'net server' commands."
-msgstr ""
-
-#: ../utils/net.c:375
-msgid "List domains/workgroups on network"
-msgstr ""
-
-#: ../utils/net.c:376
-msgid " Use 'net help domain' to get more information about 'net domain' commands."
-msgstr ""
-
-#: ../utils/net.c:383
-msgid "Modify printer queue"
-msgstr ""
-
-#: ../utils/net.c:384
-msgid " Use 'net help printq' to get more information about 'net printq' commands."
-msgstr ""
-
-#: ../utils/net.c:391
-#, fuzzy
-msgid "Manage users"
-msgstr "Odblokuj Użytkownika"
-
-#: ../utils/net.c:392
-msgid " Use 'net help user' to get more information about 'net user' commands."
-msgstr ""
-
-#: ../utils/net.c:399
-msgid "Manage groups"
-msgstr ""
-
-#: ../utils/net.c:400
-msgid " Use 'net help group' to get more information about 'net group' commands."
-msgstr ""
-
-#: ../utils/net.c:407
-msgid "Manage group mappings"
-msgstr ""
-
-#: ../utils/net.c:408
-msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands."
-msgstr ""
-
-#: ../utils/net.c:415
-msgid "Functions on the SAM database"
-msgstr ""
-
-#: ../utils/net.c:416
-msgid " Use 'net help sam' to get more information about 'net sam' commands."
-msgstr ""
-
-#: ../utils/net.c:423
-msgid "Validate username and password"
-msgstr ""
-
-#: ../utils/net.c:424
-msgid " Use 'net help validate' to get more information about 'net validate' commands."
-msgstr ""
-
-#: ../utils/net.c:431
-msgid "Modify group memberships"
-msgstr ""
-
-#: ../utils/net.c:432
-msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands."
-msgstr ""
-
-#: ../utils/net.c:438
-msgid "Execute remote command on a remote OS/2 server"
-msgstr ""
-
-#: ../utils/net.c:439
-msgid " Use 'net help admin' to get more information about 'net admin' commands."
-msgstr ""
-
-#: ../utils/net.c:445
-msgid "List/modify running services"
-msgstr ""
-
-#: ../utils/net.c:446
-msgid " Use 'net help service' to get more information about 'net service' commands."
-msgstr ""
-
-#: ../utils/net.c:453
-msgid "Change user password on target server"
-msgstr ""
-
-#: ../utils/net.c:454
-msgid " Use 'net help password' to get more information about 'net password' commands."
-msgstr ""
-
-#: ../utils/net.c:460
-#, fuzzy
-msgid "Change the trust password"
-msgstr "Zmień Hasło"
-
-#: ../utils/net.c:461
-msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'."
-msgstr ""
-
-#: ../utils/net.c:467
-#, fuzzy
-msgid "Change the secret password"
-msgstr "Zmień Hasło"
-
-#: ../utils/net.c:468
-msgid ""
-" net [options] changesecretpw\n"
-" Change the ADS domain member machine account password in secrets.tdb.\n"
-" Do NOT use this function unless you know what it does.\n"
-" Requires the -f flag to work."
-msgstr ""
-
-#: ../utils/net.c:477
-msgid "Show/set time"
-msgstr ""
-
-#: ../utils/net.c:478
-msgid " Use 'net help time' to get more information about 'net time' commands."
-msgstr ""
-
-#: ../utils/net.c:484
-msgid "Look up host names/IP addresses"
-msgstr ""
-
-#: ../utils/net.c:485
-msgid " Use 'net help lookup' to get more information about 'net lookup' commands."
-msgstr ""
-
-#: ../utils/net.c:491
-msgid "Join a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:492
-msgid " Use 'net help join' to get more information about 'net join'."
-msgstr ""
-
-#: ../utils/net.c:498
-msgid "Join/unjoin (remote) machines to/from a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:499
-msgid " Use 'net help dom' to get more information about 'net dom' commands."
-msgstr ""
-
-#: ../utils/net.c:505
-msgid "Operate on the cache tdb file"
-msgstr ""
-
-#: ../utils/net.c:506
-msgid " Use 'net help cache' to get more information about 'net cache' commands."
-msgstr ""
-
-#: ../utils/net.c:512
-msgid "Get the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:513
-msgid " net getlocalsid"
-msgstr ""
-
-#: ../utils/net.c:518
-msgid "Set the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:519
-msgid " net setlocalsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:524
-msgid "Set domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:525
-msgid " net setdomainsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:530
-msgid "Get domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:531
-msgid " net getdomainsid"
-msgstr ""
-
-#: ../utils/net.c:536
-msgid "Display the maximul RID currently used"
-msgstr ""
-
-#: ../utils/net.c:537
-msgid " net maxrid"
-msgstr ""
-
-#: ../utils/net.c:542
-#, fuzzy
-msgid "IDmap functions"
-msgstr "Opcje Domeny"
-
-#: ../utils/net.c:543
-msgid " Use 'net help idmap to get more information about 'net idmap' commands."
-msgstr ""
-
-#: ../utils/net.c:549
-#, fuzzy
-msgid "Display server status"
-msgstr "Status Serwera"
-
-#: ../utils/net.c:550
-msgid " Use 'net help status' to get more information about 'net status' commands."
-msgstr ""
-
-#: ../utils/net.c:556
-msgid "Manage user-modifiable shares"
-msgstr ""
-
-#: ../utils/net.c:557
-msgid " Use 'net help usershare to get more information about 'net usershare' commands."
-msgstr ""
-
-#: ../utils/net.c:563
-msgid "Display list of all users with SID"
-msgstr ""
-
-#: ../utils/net.c:564
-msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'."
-msgstr ""
-
-#: ../utils/net.c:570
-msgid "Manage Samba registry based configuration"
-msgstr ""
-
-#: ../utils/net.c:571
-msgid " Use 'net help conf' to get more information about 'net conf' commands."
-msgstr ""
-
-#: ../utils/net.c:577
-msgid "Manage the Samba registry"
-msgstr ""
-
-#: ../utils/net.c:578
-msgid " Use 'net help registry' to get more information about 'net registry' commands."
-msgstr ""
-
-#: ../utils/net.c:584
-msgid "Open a lua interpreter"
-msgstr ""
-
-#: ../utils/net.c:585
-msgid " Use 'net help lua' to get more information about 'net lua' commands."
-msgstr ""
-
-#: ../utils/net.c:591
-msgid "Process Win32 *.evt eventlog files"
-msgstr ""
-
-#: ../utils/net.c:592
-msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands."
-msgstr ""
-
-#: ../utils/net.c:600
-msgid "Manage AFS tokens"
-msgstr ""
-
-#: ../utils/net.c:601
-msgid " Use 'net help afs' to get more information about 'net afs' commands."
-msgstr ""
-
-#: ../utils/net.c:609
-msgid "Print usage information"
-msgstr ""
-
-#: ../utils/net.c:610
-msgid " Use 'net help help' to list usage information for 'net' commands."
-msgstr ""
-
-#: ../utils/net.c:639
-msgid "Encrypt SMB transport (UNIX extended servers only)"
-msgstr ""
-
-#: ../utils/net.c:703
-msgid ""
-"\n"
-"Invalid ip address specified\n"
-msgstr ""
-
-#: ../utils/net.c:718
-#, c-format
-msgid ""
-"\n"
-"Invalid option %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:52 ../utils/net_ads.c:392
-msgid "CLDAP query failed!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:56
-#, c-format
-msgid ""
-"Information for Domain Controller: %s\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:59
-msgid "Response Type: "
-msgstr ""
-
-#: ../utils/net_ads.c:72
-#, c-format
-msgid "GUID: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:74
-#, c-format
-msgid ""
-"Flags:\n"
-"\tIs a PDC: %s\n"
-"\tIs a GC of the forest: %s\n"
-"\tIs an LDAP server: %s\n"
-"\tSupports DS: %s\n"
-"\tIs running a KDC: %s\n"
-"\tIs running time services: %s\n"
-"\tIs the closest DC: %s\n"
-"\tIs writable: %s\n"
-"\tHas a hardware clock: %s\n"
-"\tIs a non-domain NC serviced by LDAP server: %s\n"
-"\tIs NT6 DC that has some secrets: %s\n"
-"\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
-msgid "yes"
-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
-msgid "no"
-msgstr ""
-
-#: ../utils/net_ads.c:101
-#, c-format
-msgid "Forest:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:102
-#, c-format
-msgid "Domain:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:103
-#, c-format
-msgid "Domain Controller:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:105
-#, c-format
-msgid "Pre-Win2k Domain:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:106
-#, c-format
-msgid "Pre-Win2k Hostname:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:108
-#, fuzzy, c-format
-msgid "User name:\t%s\n"
-msgstr " Nazwa Użytkownika"
-
-#: ../utils/net_ads.c:110
-#, fuzzy, c-format
-msgid "Server Site Name :\t\t%s\n"
-msgstr "Status Serwera"
-
-#: ../utils/net_ads.c:111
-#, c-format
-msgid "Client Site Name :\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:113
-#, fuzzy, c-format
-msgid "NT Version: %d\n"
-msgstr "wersja:"
-
-#: ../utils/net_ads.c:114
-#, c-format
-msgid "LMNT Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:115
-#, c-format
-msgid "LM20 Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:130
-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
-msgid "Didn't find the cldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:160
-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
-msgid "Didn't find the ldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:182
-msgid "Failed to get server's current time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:187
-#, c-format
-msgid "LDAP server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:188
-#, c-format
-msgid "LDAP server name: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:189
-#, c-format
-msgid "Realm: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:190
-#, c-format
-msgid "Bind Path: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:191
-#, c-format
-msgid "LDAP port: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:192
-#, fuzzy, c-format
-msgid "Server time: %s\n"
-msgstr "Status Serwera"
-
-#: ../utils/net_ads.c:195
-#, c-format
-msgid "KDC server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:196
-#, c-format
-msgid "Server time offset: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:374
-msgid ""
-"Usage:\n"
-"net ads workgroup\n"
-" Print the workgroup name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:397
-#, c-format
-msgid "Workgroup: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:458
-#, c-format
-msgid "ads_user_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:463
-#, c-format
-msgid "ads_user_add: User %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:477
-#, c-format
-msgid "Could not add user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:484 ../utils/net_ads.c:497
-#, fuzzy, c-format
-msgid "User %s added\n"
-msgstr " Nazwa Użytkownika"
-
-#. password didn't set, delete account
-#: ../utils/net_ads.c:503
-#, c-format
-msgid "Could not add user %s. Error setting password %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:551
-#, c-format
-msgid "ads_user_info: failed to escape user %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:569
-#, c-format
-msgid "ads_search: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:575
-msgid "ads_pull_uint32 failed\n"
-msgstr ""
-
-#: ../utils/net_ads.c:582
-#, c-format
-msgid "ads_domain_sid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:642
-#, c-format
-msgid "User %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:652
-#, c-format
-msgid "User %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:656
-#, c-format
-msgid "Error deleting user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:669
-#, fuzzy
-msgid "Add an AD user"
-msgstr "Dodaj Nowego Użytkownika"
-
-#: ../utils/net_ads.c:670
-msgid ""
-"net ads user add\n"
-" Add an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:677
-msgid "Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:678
-msgid ""
-"net ads user info\n"
-" Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:685
-#, fuzzy
-msgid "Delete an AD user"
-msgstr "Usuń Użytkownika"
-
-#: ../utils/net_ads.c:686
-msgid ""
-"net ads user delete\n"
-" Delete an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:699
-msgid ""
-"Usage:\n"
-"net ads user\n"
-" List AD users\n"
-msgstr ""
-
-#: ../utils/net_ads.c:711
-msgid ""
-"\n"
-"User name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:751
-#, c-format
-msgid "ads_group_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:756
-#, c-format
-msgid "ads_group_add: Group %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:769
-#, c-format
-msgid "Group %s added\n"
-msgstr ""
-
-#: ../utils/net_ads.c:772
-#, c-format
-msgid "Could not add group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:801
-#, c-format
-msgid "Group %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:811
-#, c-format
-msgid "Group %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:815
-#, c-format
-msgid "Error deleting group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:828
-msgid "Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:829
-msgid ""
-"net ads group add\n"
-" Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:836
-#, fuzzy
-msgid "Delete an AD group"
-msgstr "Usuń Współudział"
-
-#: ../utils/net_ads.c:837
-msgid ""
-"net ads group delete\n"
-" Delete an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:850
-msgid ""
-"Usage:\n"
-"net ads group\n"
-" List AD groups\n"
-msgstr ""
-
-#: ../utils/net_ads.c:862
-msgid ""
-"\n"
-"Group name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:884
-msgid ""
-"Usage:\n"
-"net ads status\n"
-" Display machine account details\n"
-msgstr ""
-
-#: ../utils/net_ads.c:896
-#, c-format
-msgid "ads_find_machine_acct: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:902
-#, c-format
-msgid "No machine account for '%s' found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:926
-msgid ""
-"Usage:\n"
-"net ads leave\n"
-" Leave an AD domain\n"
-msgstr ""
-
-#: ../utils/net_ads.c:933
-msgid "No realm set, are we joined ?\n"
-msgstr ""
-
-#: ../utils/net_ads.c:938 ../utils/net_ads.c:1260
-msgid "Could not initialise talloc context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:948
-msgid "Could not initialise unjoin context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:968
-#, c-format
-msgid "Failed to leave domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:975
-#, c-format
-msgid "Deleted account for '%s' in realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:982
-#, c-format
-msgid "Disabled account for '%s' in realm '%s'\n"
-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
-#, c-format
-msgid "Machine '%s' Left domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1035
-msgid ""
-"Usage:\n"
-"net ads testjoin\n"
-" Test if the existing join is ok\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1044
-#, c-format
-msgid "Join to domain is not valid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1049
-#, c-format
-msgid "Join is OK\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1060
-msgid "Host is not configured as a member server.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1065
-#, 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
-#, c-format
-msgid "realm must be set in in %s for ADS join to succeed.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1105
-#, c-format
-msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1212
-msgid ""
-"net ads join [options]\n"
-"Valid options:\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1214
-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
-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"
-" E.g. \"createcomputer=Computers/Servers/Unix\"\n"
-" NB: A backslash '\\' is used as escape at multiple levels and may\n"
-" need to be doubled or even quadrupled. It is not used as a separator.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1221
-msgid " osName=string Set the operatingSystem attribute during the join.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1222
-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"
-" Also, the operatingSystemService attribute is also set when along with\n"
-" the two other attributes.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1254
-msgid "Invalid configuration. Exiting....\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1283
-msgid "Please supply a valid OU path.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1290
-msgid "Please supply a operating system name.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1297
-msgid "Please supply a valid operating system version.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1308
-msgid "Please supply a valid domain name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1339
-#, c-format
-msgid ""
-"The workgroup in %s does not match the short\n"
-"domain name obtained from the server.\n"
-"Using the name [%s] from the server.\n"
-"You should set \"workgroup = %s\" in %s.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1347
-#, c-format
-msgid "Using short domain name -- %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1350
-#, c-format
-msgid "Joined '%s' to realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1353
-#, c-format
-msgid "Joined '%s' to domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1377 ../utils/net_ads.c:1433
-msgid "DNS update failed!\n"
-msgstr ""
-
-#. issue an overall failure message at the end.
-#: ../utils/net_ads.c:1391 ../utils/net_dom.c:198
-#, c-format
-msgid "Failed to join domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1414
-msgid ""
-"Usage:\n"
-"net ads dns register\n"
-" Register hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1421
-msgid "Could not initialise talloc context\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1439
-msgid "Successfully registered hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1447
-msgid "DNS update support not enabled at compile time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1466
-msgid ""
-"Usage:\n"
-"net ads dns gethostbyname <server> <name>\n"
-" Look up hostname from the AD\n"
-" server\tName server to use\n"
-" name\tName to look up\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1476
-#, c-format
-msgid "do_gethostbyname returned %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1488
-msgid "Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1489
-msgid ""
-"net ads dns register\n"
-" Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1496
-msgid "Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1497
-msgid ""
-"net ads dns gethostbyname\n"
-" Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1512
-msgid ""
-"\n"
-"net ads printer search <printer>\n"
-"\tsearch for a printer in the directory\n"
-"\n"
-"net ads printer info <printer> <server>\n"
-"\tlookup info in directory for printer on server\n"
-"\t(note: printer defaults to \"*\", server defaults to local)\n"
-"\n"
-"net ads printer publish <printername>\n"
-"\tpublish printer in directory\n"
-"\t(note: printer name is required)\n"
-"\n"
-"net ads printer remove <printername>\n"
-"\tremove printer from directory\n"
-"\t(note: printer name is required)\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1536
-msgid ""
-"Usage:\n"
-"net ads printer search\n"
-" List printers in the AD\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1549
-#, c-format
-msgid "ads_find_printer: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1556
-msgid "No results found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1576
-msgid ""
-"Usage:\n"
-"net ads printer info [printername [servername]]\n"
-" Display printer info from AD\n"
-" printername\tPrinter name or wildcard\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1603
-#, c-format
-msgid "Server '%s' not found: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1611 ../utils/net_ads.c:1794
-#, c-format
-msgid "Printer '%s' not found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1640
-msgid ""
-"Usage:\n"
-"net ads printer publish <printername> [servername]\n"
-" Publish printer in AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1675
-#, c-format
-msgid "Unable to open a connnection to %s to obtain data for %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1688
-#, c-format
-msgid "Could not find machine account for server %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1704 ../utils/net_ads.c:1713
-msgid "Internal error, out of memory!"
-msgstr ""
-
-#: ../utils/net_ads.c:1724
-#, c-format
-msgid "Unable to open a connnection to the spoolss pipe on %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1766
-msgid ""
-"Usage:\n"
-"net ads printer remove <printername> [servername]\n"
-" Remove a printer from the AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1787
-#, c-format
-msgid "ads_find_printer_on_server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1806
-#, c-format
-msgid "ads_del_dn: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1822
-msgid "Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1823
-msgid ""
-"net ads printer search\n"
-" Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1830
-msgid "Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1831
-msgid ""
-"net ads printer info\n"
-" Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1838
-msgid "Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1839
-msgid ""
-"net ads printer publish\n"
-" Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1846
-#, fuzzy
-msgid "Delete a printer"
-msgstr "Usuń Drukarkę"
-
-#: ../utils/net_ads.c:1847
-msgid ""
-"net ads printer remove\n"
-" Delete a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1869
-msgid ""
-"Usage:\n"
-"net ads password <username>\n"
-" Change password for user\n"
-" username\tName of user to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1877
-msgid "You must supply an administrator username/password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1883
-msgid "ERROR: You must say which username to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1915
-msgid "Didn't find the kerberos server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1923
-#, c-format
-msgid "Enter new password for %s:"
-msgstr ""
-
-#: ../utils/net_ads.c:1933 ../utils/net_ads.c:1982
-#, fuzzy, c-format
-msgid "Password change failed: %s\n"
-msgstr "Zarządzanie Hasłami"
-
-#: ../utils/net_ads.c:1938
-#, fuzzy, c-format
-msgid "Password change for %s completed.\n"
-msgstr "zmiana hasła w trybie demo odrzucona\n"
-
-#: ../utils/net_ads.c:1952
-msgid ""
-"Usage:\n"
-"net ads changetrustpw\n"
-" Change the machine account's trust password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1977
-#, c-format
-msgid "Changing password for principal: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1988
-#, c-format
-msgid "Password change for principal %s succeeded.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1991
-msgid "Attempting to update system keytab with new password.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1993
-msgid "Failed to update system keytab.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2009
-msgid ""
-"\n"
-"net ads search <expression> <attributes...>\n"
-"\n"
-"Perform a raw LDAP search on a ADS server and dump the results.\n"
-"The expression is a standard LDAP search expression, and the\n"
-"attributes are a list of LDAP fields to show in the results.\n"
-"\n"
-"Example: net ads search '(objectCategory=group)' sAMAccountName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2046 ../utils/net_ads.c:2107 ../utils/net_ads.c:2171 ../utils/net_ads_gpo.c:250
-#, c-format
-msgid "search failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2051 ../utils/net_ads.c:2176 ../utils/net_ads_gpo.c:256
-#, c-format
-msgid ""
-"Got %d replies\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2069
-msgid ""
-"\n"
-"net ads dn <dn> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The DN standard LDAP DN, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' sAMAccountName\n"
-"\n"
-"Note: the DN must be provided properly escaped. See RFC 4514 for details\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2129
-msgid ""
-"\n"
-"net ads sid <sid> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The SID is in string format, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads sid 'S-1-5-32' distinguishedName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2164
-msgid "could not convert sid\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2193
-msgid ""
-"Usage:\n"
-"net ads keytab flush\n"
-" Delete the whole keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2214
-msgid ""
-"Usage:\n"
-"net ads keytab add <principal> [principal ...]\n"
-" Add principals to local keytab\n"
-" principal\tKerberos principal to add to keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2222
-msgid "Processing principals to add...\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2239
-msgid ""
-"Usage:\n"
-"net ads keytab create\n"
-" Create new default keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2258
-msgid ""
-"Usage:\n"
-"net ads keytab list [keytab]\n"
-" List a local keytab\n"
-" keytab\tKeytab to list\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2280
-msgid "Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2281
-msgid ""
-"net ads keytab add\n"
-" Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2288
-#, fuzzy
-msgid "Create a fresh keytab"
-msgstr "Utwórz Współudział"
-
-#: ../utils/net_ads.c:2289
-msgid ""
-"net ads keytab create\n"
-" Create a fresh keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2296
-msgid "Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2297
-msgid ""
-"net ads keytab flush\n"
-" Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2304
-msgid "List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2305
-msgid ""
-"net ads keytab list\n"
-" List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2312
-msgid ""
-"\n"
-"Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2324
-msgid ""
-"Usage:\n"
-"net ads kerberos renew\n"
-" Renew TGT from existing credential cache\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2332
-#, c-format
-msgid "failed to renew kerberos ticket: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2347
-msgid ""
-"Usage:\n"
-"net ads kerberos pac\n"
-" Dump the Kerberos PAC\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2372
-#, c-format
-msgid "failed to query kerberos PAC: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2381
-#, c-format
-msgid "The Pac: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2397
-msgid ""
-"Usage:\n"
-"net ads kerberos kinit\n"
-" Get Ticket Granting Ticket (TGT) for the user\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2421
-#, c-format
-msgid "failed to kinit password: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2435
-msgid "Retrieve Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2436
-msgid ""
-"net ads kerberos kinit\n"
-" Receive Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2443
-msgid "Renew Ticket Granting Ticket from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2444
-msgid ""
-"net ads kerberos renew\n"
-" Renew Ticket Granting Ticket (TGT) from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2452
-msgid "Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2453
-msgid ""
-"net ads kerberos pac\n"
-" Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2469
-msgid "Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2470
-msgid ""
-"net ads info\n"
-" Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2477
-msgid "Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2478
-msgid ""
-"net ads join\n"
-" Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2485
-msgid "Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2486
-msgid ""
-"net ads testjoin\n"
-" Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2493
-msgid "Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2494
-msgid ""
-"net ads leave\n"
-" Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2501
-msgid "Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2502
-msgid ""
-"net ads status\n"
-" Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2509
-msgid "List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2510
-msgid ""
-"net ads user\n"
-" List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2517
-msgid "List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2518
-msgid ""
-"net ads group\n"
-" List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2525
-msgid "Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2526
-msgid ""
-"net ads dns\n"
-" Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2533
-#, fuzzy
-msgid "Change user passwords"
-msgstr "Zmień Hasło"
-
-#: ../utils/net_ads.c:2534
-msgid ""
-"net ads password\n"
-" Change user passwords"
-msgstr ""
-
-#: ../utils/net_ads.c:2541
-#, fuzzy
-msgid "Change trust account password"
-msgstr "Zmień Hasło"
-
-#: ../utils/net_ads.c:2542
-msgid ""
-"net ads changetrustpw\n"
-" Change trust account password"
-msgstr ""
-
-#: ../utils/net_ads.c:2549
-msgid "List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2550
-msgid ""
-"net ads printer\n"
-" List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2557
-msgid "Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2558
-msgid ""
-"net ads search\n"
-" Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2565
-msgid "Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2566
-msgid ""
-"net ads dn\n"
-" Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2573
-msgid "Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2574
-msgid ""
-"net ads sid\n"
-" Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2581
-msgid "Display workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2582
-msgid ""
-"net ads workgroup\n"
-" Display the workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2589
-msgid "Perfom CLDAP query on DC"
-msgstr ""
-
-#: ../utils/net_ads.c:2590
-msgid ""
-"net ads lookup\n"
-" Find the ADS DC using CLDAP lookups"
-msgstr ""
-
-#: ../utils/net_ads.c:2597
-msgid "Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2598
-msgid ""
-"net ads keytab\n"
-" Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2605
-msgid "Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2606
-msgid ""
-"net ads gpo\n"
-" Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2613
-msgid "Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2614
-msgid ""
-"net ads kerberos\n"
-" Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2627
-msgid "ADS support not compiled in\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:40
-msgid ""
-"Usage:\n"
-"net ads gpo refresh <username|machinename>\n"
-" Lists all GPOs assigned to an account and downloads them\n"
-" username\tUser to refresh GPOs for\n"
-" machinename\tMachine to refresh GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:56
-#, c-format
-msgid "failed to connect AD server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:62
-#, c-format
-msgid "failed to find samaccount for %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:70
-#, c-format
-msgid ""
-"\n"
-"%s: '%s' has dn: '%s'\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "machine"
-msgstr " Zdalna Maszyna"
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "user"
-msgstr "Użytkownik"
-
-#: ../utils/net_ads_gpo.c:74
-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
-#, 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
-msgid "finished\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:87
-msgid "* fetching GPO List "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:96
-msgid "* Refreshing Group Policy Data "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:107
-msgid "* storing GPO list to registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:122
-msgid "* dumping GPO list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:151
-msgid "* re-reading GPO list from registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:167
-msgid "* dumping GPO list from registry\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:226
-msgid ""
-"Usage:\n"
-"net ads gpo listall\n"
-" List all GPOs on the DC\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:270
-#, fuzzy, c-format
-msgid "ads_parse_gpo failed: %s\n"
-msgstr "Zarządzanie Hasłami"
-
-#: ../utils/net_ads_gpo.c:300
-msgid ""
-"Usage:\n"
-"net ads gpo list <username|machinename>\n"
-" Lists all GPOs for machine/user\n"
-" username\tUser to list GPOs for\n"
-" machinename\tMachine to list GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:327
-#, c-format
-msgid "%s: '%s' has dn: '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:451
-msgid ""
-"Usage:\n"
-"net ads gpo linkget <container>\n"
-" Lists gPLink of a containter\n"
-" container\tContainer to get link for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:470
-#, c-format
-msgid "get link for %s failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:492
-msgid ""
-"Usage:\n"
-"net ads gpo linkadd <linkdn> <gpodn> [options]\n"
-" Link a container to a GPO\n"
-" linkdn\tContainer to link to a GPO\n"
-" gpodn\tGPO to link container to\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:497
-msgid ""
-"note: DNs must be provided properly escaped.\n"
-"See RFC 4514 for details\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:518
-#, c-format
-msgid "link add failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:579
-msgid ""
-"Usage:\n"
-"net ads gpo getgpo <gpo>\n"
-" List speciefied GPO\n"
-" gpo\t\tGPO to list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:603
-#, c-format
-msgid "get gpo for [%s] failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:634
-msgid "List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:635
-msgid ""
-"net ads gpo getgpo\n"
-" List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:642
-msgid "Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:643
-msgid ""
-"net ads gpo linkadd\n"
-" Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:660
-msgid "Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:661
-msgid ""
-"net ads gpo linkget\n"
-" Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:668
-msgid "Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:669
-msgid ""
-"net ads gpo list\n"
-" Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:676
-msgid "Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:677
-msgid ""
-"net ads gpo listall\n"
-" Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:684
-msgid "Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:686
-msgid ""
-"net ads gpo refresh\n"
-" Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_afs.c:25
-msgid ""
-" net afs key filename\n"
-"\tImports a OpenAFS KeyFile into our secrets.tdb\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:27
-msgid ""
-" net afs impersonate <user> <cell>\n"
-"\tCreates a token for user@cell\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:38
-msgid "usage: 'net afs key <keyfile> cell'\n"
-msgstr ""
-
-#: ../utils/net_afs.c:43
-msgid "Could not open secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:48
-#, c-format
-msgid "Could not open %s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:53
-msgid "Could not read keyfile\n"
-msgstr ""
-
-#: ../utils/net_afs.c:58
-msgid "Could not write keyfile to secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:71
-#, c-format
-msgid "Usage: net afs impersonate <user> <cell>\n"
-msgstr ""
-
-#: ../utils/net_afs.c:78
-#, c-format
-msgid "Could not create token\n"
-msgstr ""
-
-#: ../utils/net_afs.c:83
-#, c-format
-msgid "Could not set token into kernel\n"
-msgstr ""
-
-#: ../utils/net_afs.c:87
-#, c-format
-msgid "Success: %s@%s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:98
-msgid "Import an OpenAFS keyfile"
-msgstr ""
-
-#: ../utils/net_afs.c:99
-msgid ""
-"net afs key <filename>\n"
-" Import kefile from <filename>."
-msgstr ""
-
-#: ../utils/net_afs.c:106
-msgid "Get a user token"
-msgstr ""
-
-#: ../utils/net_afs.c:107
-msgid ""
-"net afs impersonate <user> <cell>\n"
-" Create token for user@cell"
-msgstr ""
-
-#: ../utils/net_cache.c:74
-#, c-format
-msgid "Key: %s\t Timeout: %s\t Value: %s %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:75
-msgid "(expired)"
-msgstr ""
-
-#: ../utils/net_cache.c:84
-#, c-format
-msgid "Couldn't delete entry! key = %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:158
-msgid ""
-"\n"
-"Usage:\n"
-"net cache add <key string> <data string> <timeout>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:170
-msgid "Invalid timeout argument.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:175
-msgid "New cache entry stored successfully.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:179
-msgid "Entry couldn't be added. Perhaps there's already such a key.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:195
-msgid ""
-"\n"
-"Usage: net cache del <key string>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:200
-msgid "Entry deleted.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:204
-msgid "Couldn't delete specified entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:223
-msgid ""
-"\n"
-"Usage: net cache get <key>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:233
-msgid "Failed to find entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:250
-msgid "Usage: net cache search <pattern>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:272
-msgid ""
-"Usage:\n"
-"net cache list\n"
-" List all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:293 ../utils/net_cache.c:306
-msgid ""
-"Usage:\n"
-"net cache flush\n"
-" Delete all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:331
-msgid "Add new cache entry"
-msgstr ""
-
-#: ../utils/net_cache.c:332
-msgid ""
-"net cache add <key string> <data string> <timeout>\n"
-" Add new cache entry.\n"
-" key string\tKey string to add cache data under.\n"
-" data string\tData to store under given key.\n"
-" timeout\tTimeout for cache data."
-msgstr ""
-
-#: ../utils/net_cache.c:342
-msgid "Delete existing cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:343
-msgid ""
-"net cache del <key string>\n"
-" Delete existing cache entry by key.\n"
-" key string\tKey string to delete."
-msgstr ""
-
-#: ../utils/net_cache.c:351
-msgid "Get cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:352
-msgid ""
-"net cache get <key string>\n"
-" Get cache entry by key.\n"
-" key string\tKey string to look up cache entry for."
-msgstr ""
-
-#: ../utils/net_cache.c:361
-msgid "Search entry by pattern"
-msgstr ""
-
-#: ../utils/net_cache.c:362
-msgid ""
-"net cache search <pattern>\n"
-" Search entry by pattern.\n"
-" pattern\tPattern to search for in cache."
-msgstr ""
-
-#: ../utils/net_cache.c:370
-msgid "List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:371
-msgid ""
-"net cache list\n"
-" List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:378
-#, fuzzy
-msgid "Delete all cache entries"
-msgstr "Usuń Drukarkę"
-
-#: ../utils/net_cache.c:379
-msgid ""
-"net cache flush\n"
-" Delete all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:386
-msgid "Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_cache.c:387
-msgid ""
-"net cache stabilize\n"
-" Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_conf.c:42
-msgid "USAGE: net conf list\n"
-msgstr ""
-
-#: ../utils/net_conf.c:49
-msgid ""
-"USAGE: net conf import [--test|-T] <filename> [<servicename>]\n"
-"\t[--test|-T] testmode - do not act, just print what would be done\n"
-"\t<servicename> only import service <servicename>, ignore the rest\n"
-msgstr ""
-
-#: ../utils/net_conf.c:61
-msgid "USAGE: net conf listshares\n"
-msgstr ""
-
-#: ../utils/net_conf.c:68
-msgid "USAGE: net conf drop\n"
-msgstr ""
-
-#: ../utils/net_conf.c:75
-msgid "USAGE: net conf showshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:82
-msgid ""
-"USAGE: net conf addshare <sharename> <path> [writeable={y|N} [guest_ok={y|N} [<comment>]]\n"
-"\t<sharename> the new share name.\n"
-"\t<path> the path on the filesystem to export.\n"
-"\twriteable={y|N} set \"writeable to \"yes\" or \"no\" (default) on this share.\n"
-"\tguest_ok={y|N} set \"guest ok\" to \"yes\" or \"no\" (default) on this share.\n"
-"\t<comment> optional comment for the new share.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:97
-msgid "USAGE: net conf delshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:104
-msgid "USAGE: net conf setparm <section> <param> <value>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:111
-msgid "USAGE: net conf getparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:118
-msgid "USAGE: net conf delparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:125
-msgid "USAGE: net conf getincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:132
-msgid "USAGE: net conf setincludes <section> [<filename>]*\n"
-msgstr ""
-
-#: ../utils/net_conf.c:139
-msgid "USAGE: net conf delincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:251
-#, c-format
-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
-msgid "error: out of memory!\n"
-msgstr ""
-
-#: ../utils/net_conf.c:324
-#, c-format
-msgid "error loading file '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:330
-msgid ""
-"\n"
-"TEST MODE - would import the following configuration:\n"
-"\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "error committing transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:427 ../utils/net_conf.c:828
-#, c-format
-msgid "error cancelling transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:484
-#, c-format
-msgid "Error deleting configuration: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:521
-#, c-format
-msgid "error getting share parameters: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:630
-#, c-format
-msgid "ERROR: share name %s contains invalid characters (any of %s)\n"
-msgstr ""
-
-#: ../utils/net_conf.c:638
-msgid "ERROR: 'global' is not a valid share name.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:643
-#, c-format
-msgid "ERROR: share %s already exists.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:652
-#, c-format
-msgid "Error: path '%s' is not an absolute path.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:659
-#, c-format
-msgid ""
-"ERROR: cannot stat path '%s' to ensure this is a directory.\n"
-"Error was '%s'.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:668
-#, c-format
-msgid "ERROR: path '%s' is not a directory.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:679
-#, c-format
-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
-#, c-format
-msgid "Error setting parameter %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:748
-#, c-format
-msgid "Error deleting share %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:801
-#, c-format
-msgid "Error creating share '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:810
-#, c-format
-msgid "Error setting value '%s': %s\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "Error: given parameter '%s' is not set.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:883
-#, c-format
-msgid "Error getting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:939
-#, c-format
-msgid "Error deleting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:977
-#, c-format
-msgid "error getting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1023
-#, c-format
-msgid "error setting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1056
-#, c-format
-msgid "error deleting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1136 ../utils/net_help.c:36
-msgid "Usage:\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1160
-msgid "Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1162
-msgid ""
-"net conf list\n"
-" Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1171
-msgid "Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1173
-msgid ""
-"net conf import\n"
-" Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1181
-msgid "List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1182
-msgid ""
-"net conf listshares\n"
-" List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1189
-msgid "Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1190
-msgid ""
-"net conf drop\n"
-" Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1197
-msgid "Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1198
-msgid ""
-"net conf showshare\n"
-" Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1205
-#, fuzzy
-msgid "Create a new share."
-msgstr "Utwórz Współudział"
-
-#: ../utils/net_conf.c:1206
-msgid ""
-"net conf addshare\n"
-" Create a new share."
-msgstr ""
-
-#: ../utils/net_conf.c:1213
-#, fuzzy
-msgid "Delete a share."
-msgstr "Usuń Współudział"
-
-#: ../utils/net_conf.c:1214
-msgid ""
-"net conf delshare\n"
-" Delete a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1221
-#, fuzzy
-msgid "Store a parameter."
-msgstr "Parametry Współudziału"
-
-#: ../utils/net_conf.c:1222
-msgid ""
-"net conf setparm\n"
-" Store a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1229
-msgid "Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1230
-msgid ""
-"net conf getparm\n"
-" Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1237
-#, fuzzy
-msgid "Delete a parameter."
-msgstr "Usuń Drukarkę"
-
-#: ../utils/net_conf.c:1238
-msgid ""
-"net conf delparm\n"
-" Delete a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1245
-msgid "Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1246
-msgid ""
-"net conf getincludes\n"
-" Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1253
-msgid "Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1254
-msgid ""
-"net conf setincludes\n"
-" Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1261
-msgid "Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1262
-msgid ""
-"net conf setincludes\n"
-" Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_dom.c:25
-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
-msgid ""
-"usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine\n"
-msgstr ""
-
-#: ../utils/net_dom.c:31
-msgid ""
-"usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer\n"
-msgstr ""
-
-#: ../utils/net_dom.c:91
-#, c-format
-msgid "Failed to unjoin domain: %s\n"
-msgstr ""
-
-#: ../utils/net_dom.c:97 ../utils/net_dom.c:204
-msgid "Shutting down due to a domain membership change"
-msgstr ""
-
-#: ../utils/net_dom.c:290
-#, c-format
-msgid "Failed to rename machine: "
-msgstr ""
-
-#: ../utils/net_dom.c:292
-#, c-format
-msgid "Computer is not joined to a Domain\n"
-msgstr ""
-
-#: ../utils/net_dom.c:301
-msgid "Shutting down due to a computer rename"
-msgstr ""
-
-#: ../utils/net_dom.c:338
-#, fuzzy
-msgid "Join a remote machine"
-msgstr " Zdalna Maszyna"
-
-#: ../utils/net_dom.c:339
-msgid ""
-"net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Join a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:347
-#, fuzzy
-msgid "Unjoin a remote machine"
-msgstr " Zdalna Maszyna"
-
-#: ../utils/net_dom.c:348
-msgid ""
-"net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:356
-msgid "Rename a computer that is joined to a domain"
-msgstr ""
-
-#: ../utils/net_dom.c:357
-msgid ""
-"net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer"
-msgstr ""
-
-#: ../utils/net_eventlog.c:46
-msgid "usage: net eventlog dump <file.evt>\n"
-msgstr ""
-
-#: ../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
-#, fuzzy, c-format
-msgid "evt pull failed: %s\n"
-msgstr "Zarządzanie Hasłami"
-
-#: ../utils/net_eventlog.c:102
-msgid "usage: net eventlog import <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:116
-#, fuzzy, c-format
-msgid "evt header pull failed: %s\n"
-msgstr "Zarządzanie Hasłami"
-
-#: ../utils/net_eventlog.c:122
-msgid "input file is wrapped, cannot proceed\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:138 ../utils/net_eventlog.c:203
-#, c-format
-msgid "can't open the eventlog TDB (%s)\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:158
-#, c-format
-msgid "can't write to the eventlog: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:164
-#, c-format
-msgid "wrote %d entries to tdb\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:197
-msgid "usage: net eventlog export <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:214
-#, c-format
-msgid "failed to save evt file: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:243
-msgid "Dump eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:244
-msgid ""
-"net eventlog dump\n"
-" Dump win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:251
-#, fuzzy
-msgid "Import eventlog"
-msgstr "Ważna Informacja:"
-
-#: ../utils/net_eventlog.c:252
-msgid ""
-"net eventlog import\n"
-" Import win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:259
-msgid "Export eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:260
-msgid ""
-"net eventlog export\n"
-" Export win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_file.c:27
-msgid ""
-"net [<method>] file [misc. options] [targets]\n"
-"\tlists all open files on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:29
-msgid ""
-"net [<method>] file USER <username> [misc. options] [targets]\n"
-"\tlists all files opened by username on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:32
-msgid ""
-"net [<method>] file CLOSE <id> [misc. options] [targets]\n"
-"\tcloses specified file on target server\n"
-msgstr ""
-
-#: ../utils/net_file.c:34
-msgid ""
-"net [rap] file INFO <id> [misc. options] [targets]\n"
-"\tdisplays information about the specified open file\n"
-msgstr ""
-
-#: ../utils/net_group.c:27
-msgid ""
-"net [<method>] group [misc. options] [targets]\n"
-"\tList user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:29
-msgid ""
-"net rpc group LIST [global|local|builtin]* [misc. options]\n"
-"\tList specific user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:31
-msgid ""
-"net [<method>] group DELETE <name> [misc. options] [targets]\n"
-"\tDelete specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:34
-msgid ""
-"\n"
-"net [<method>] group ADD <name> [-C comment] [-c container] [misc. options] [targets]\n"
-"\tCreate specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:37
-msgid ""
-"\n"
-"net rpc group MEMBERS <name>\n"
-"\tList Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:38
-msgid ""
-"\n"
-"net rpc group ADDMEM <group> <member>\n"
-"\tAdd Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:40
-msgid ""
-"\n"
-"net rpc group DELMEM <group> <member>\n"
-"\tDelete Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:44
-msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:46
-msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:48
-msgid "\t-L or --localgroup\t\tWhen adding groups, create a local group (alias)\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:38
-#, c-format
-msgid "NT Group %s doesn't exist in mapping DB\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:46
-#, c-format
-msgid "converting sid %s from a string failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:65
-#, c-format
-msgid "\tSID : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:66
-#, c-format
-msgid "\tUnix gid : %u\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:67
-#, c-format
-msgid "\tUnix group: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:68
-#, c-format
-msgid "\tGroup type: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:70
-#, c-format
-msgid "\tComment : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:84
-msgid ""
-"net groupmap list [verbose] [ntgroup=NT group] [sid=SID]\n"
-" verbose\tPrint verbose list\n"
-" ntgroup\tNT group to list\n"
-" 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
-#, fuzzy, c-format
-msgid ""
-"Usage:\n"
-"%s\n"
-msgstr " Nazwa Użytkownika"
-
-#: ../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
-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
-#, fuzzy, c-format
-msgid "Bad option: %s\n"
-msgstr "Bazowe Opcje"
-
-#: ../utils/net_groupmap.c:139
-msgid "Failure to local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:181
-msgid "net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:195
-#, fuzzy, c-format
-msgid ""
-"Usage\n"
-"%s\n"
-msgstr " Nazwa Użytkownika"
-
-#: ../utils/net_groupmap.c:205
-#, c-format
-msgid "RID must be greater than %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:235 ../utils/net_groupmap.c:380
-msgid "must supply a comment string\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:259
-#, c-format
-msgid "unknown group type %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:276
-#, c-format
-msgid "Can't lookup UNIX group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:282
-#, c-format
-msgid "Unix group %s already mapped to SID %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:289
-msgid "No rid or sid specified, choosing a RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:292
-msgid "Could not get new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:297
-#, c-format
-msgid "Got RID %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:328
-#, c-format
-msgid "adding entry for group %s failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:332
-#, c-format
-msgid "Successfully added group %s to the mapping db as a %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:349
-msgid "net groupmap modify {ntgroup=<string>|sid=<SID>} [comment=<string>] [unixgroup=<string>] [type=<domain|local>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:388
-msgid "must supply a group name\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:434
-msgid "Failed to find local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:443
-msgid "Can't map to an unknown group type.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:449
-msgid "You can only change between domain and local groups.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:466
-#, c-format
-msgid "Unable to lookup UNIX group %s. Make sure the group exists.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:476
-msgid "Could not update group database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:480
-#, c-format
-msgid "Updated mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:491
-msgid "net groupmap delete {ntgroup=<string>|sid=<SID>}"
-msgstr ""
-
-#: ../utils/net_groupmap.c:532
-#, c-format
-msgid "Unable to resolve group %s to a SID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:539
-#, c-format
-msgid "Failed to remove group %s from the mapping db!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:544
-#, c-format
-msgid "Sucessfully removed %s from the mapping db\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:557
-msgid "Usage: net groupmap set \"NT Group\" [\"unix group\"] [-C \"comment\"] [-L] [-D]\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:563
-msgid "Can only specify -L or -D, not both\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:573
-#, c-format
-msgid "Could not find unix group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:594
-#, c-format
-msgid "Could not find group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:605
-msgid "Could not allocate new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:622
-#, c-format
-msgid "Could not add mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:633
-#, c-format
-msgid "Can't change type of the BUILTIN group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:660
-#, c-format
-msgid "Could not update group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:674
-msgid ""
-"Usage:\n"
-"net groupmap cleanup\n"
-" Delete all group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:682
-msgid "Could not list group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:689
-#, c-format
-msgid "Group %s is not mapped\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:692
-#, c-format
-msgid "Deleting mapping for NT Group %s, sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:712
-msgid "Usage: net groupmap addmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:717
-#, c-format
-msgid "Could not add sid %s to alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:733
-msgid "Usage: net groupmap delmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:738
-#, c-format
-msgid "Could not delete sid %s from alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:755
-msgid "Usage: net groupmap listmem alias-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:764
-#, c-format
-msgid "Could not list members for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:791
-#, c-format
-msgid "Could not list memberships for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:814
-msgid "Usage: net groupmap memberof sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:820 ../utils/net_idmap.c:345
-msgid "talloc_init failed\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:827
-msgid "Could not get domain sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:850
-msgid "Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:851
-msgid ""
-"net groupmap add\n"
-" Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:858
-msgid "Update a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:859
-msgid ""
-"net groupmap modify\n"
-" Modify an existing group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:866
-msgid "Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:867
-msgid ""
-"net groupmap delete\n"
-" Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:874
-msgid "Set group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:875
-msgid ""
-"net groupmap set\n"
-" Set a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:882
-msgid "Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:883
-msgid ""
-"net groupmap cleanup\n"
-" Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:890
-msgid "Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:891
-msgid ""
-"net groupmap addmem\n"
-" Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:898
-msgid "Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:899
-msgid ""
-"net groupmap delmem\n"
-" Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:906
-msgid "List foreign group members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:907
-msgid ""
-"net groupmap listmem\n"
-" List foreign alias members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:914
-msgid "List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:915
-msgid ""
-"net groupmap memberships\n"
-" List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:922
-msgid "List current group map"
-msgstr ""
-
-#: ../utils/net_groupmap.c:923
-msgid ""
-"net groupmap list\n"
-" List current group map"
-msgstr ""
-
-#: ../utils/net_help.c:39
-#, c-format
-msgid "net %s usage:\n"
-msgstr ""
-
-#: ../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
-msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:27 ../utils/net_join.c:30
-msgid "\trpc\t\t\t\tDCE-RPC\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:28
-msgid "\trap\t\t\t\tRAP (older systems)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:35
-msgid "Valid targets: choose one (none defaults to localhost)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:36
-msgid "\t-S or --server=<server>\t\tserver name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:37
-msgid "\t-I or --ipaddress=<ipaddr>\taddress of target server\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:38
-msgid "\t-w or --workgroup=<wg>\t\ttarget workgroup or domain\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:41
-#, fuzzy
-msgid "Valid miscellaneous options are:\n"
-msgstr "Pozostałe Opcje"
-
-#. misc options
-#: ../utils/net_help_common.c:42
-msgid "\t-p or --port=<port>\t\tconnection port on target\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:43
-msgid "\t-W or --myworkgroup=<wg>\tclient workgroup\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:44
-msgid "\t-d or --debuglevel=<level>\tdebug level (0-10)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:45
-msgid "\t-n or --myname=<name>\t\tclient name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:46
-msgid "\t-U or --user=<name>\t\tuser name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:47
-msgid "\t-s or --configfile=<path>\tpathname of smb.conf file\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:48
-msgid "\t-l or --long\t\t\tDisplay full information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:49
-msgid "\t-V or --version\t\t\tPrint samba version information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:50
-msgid "\t-P or --machine-pass\t\tAuthenticate as machine account\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:52
-msgid "\t-e or --encrypt\t\t\tEncrypt SMB transport (UNIX extended servers only)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:54
-msgid "\t-k or --kerberos\t\tUse kerberos (active directory) authentication\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:25
-msgid "Out of memory!\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:39
-#, c-format
-msgid "USER HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:44
-#, c-format
-msgid "GROUP HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:63
-msgid ""
-"Usage:\n"
-"net idmap dump <inputfile>\n"
-" Dump current ID mapping.\n"
-" inputfile\tTDB file to read mappings from.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:73
-#, c-format
-msgid "Could not open idmap: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:94
-msgid ""
-"Usage:\n"
-"net idmap restore [inputfile]\n"
-" Restore ID mappings from file\n"
-" inputfile\tFile to load ID mappings from. If not given, load data from stdin.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:104
-msgid "To use net idmap Winbindd must be running.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:142
-#, c-format
-msgid "Could not set USER HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:151
-#, c-format
-msgid "Could not set GROUP HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:156
-#, c-format
-msgid "ignoring invalid line [%s]\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:163
-#, c-format
-msgid "ignoring invalid sid [%s]: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:175
-#, c-format
-msgid "Could not set mapping of %s %lu to sid %s: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:196 ../utils/net_idmap.c:202
-msgid "Not Implemented yet\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:240
-msgid ""
-"Usage:\n"
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set the secret for the specified domain (or alloc module)\n"
-" DOMAIN\tDomain to set secret for.\n"
-" alloc\tSet secret for the alloc module\n"
-" secret\tNew secret to set.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:271
-msgid "The only currently supported backend is LDAP\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:281
-#, c-format
-msgid "Missing ldap_user_dn option for domain %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:292
-msgid "Missing ldap_user_dn option for alloc backend\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:302
-msgid "Failed to store secret\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:307
-msgid "Secret stored\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:313
-msgid ""
-"net idmap dump <inputfile>\n"
-" Dump current id mapping\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:316
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin\n"
-msgstr ""
-
-#. Deliberately *not* document net idmap delete
-#: ../utils/net_idmap.c:321
-msgid ""
-"net idmap secret <DOMAIN>|alloc <secret>\n"
-" Set the secret for the specified DOMAIN (or the alloc module)\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:339
-msgid "usage: net idmap aclmapset <tdb> <src-sid> <dst-sid>\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:351
-#, fuzzy, c-format
-msgid "db_open failed: %s\n"
-msgstr "Zarządzanie Hasłami"
-
-#: ../utils/net_idmap.c:356 ../utils/net_idmap.c:361
-#, c-format
-msgid "%s is not a valid sid\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:367
-msgid "talloc_strdup failed\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:373
-msgid "could not fetch db record\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:381
-#, c-format
-msgid "could not store record: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:402
-msgid "Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:403
-msgid ""
-"net idmap dump\n"
-" Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:410
-msgid "Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:411
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:418 ../utils/net_idmap.c:426
-msgid "Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:419
-msgid ""
-"net idmap setmap\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:427
-msgid ""
-"net idmap delete\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:434
-msgid "Set secret for specified domain"
-msgstr ""
-
-#: ../utils/net_idmap.c:435
-msgid ""
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set secret for specified domain or alloc module"
-msgstr ""
-
-#: ../utils/net_idmap.c:442
-msgid "Set acl map"
-msgstr ""
-
-#: ../utils/net_idmap.c:443
-msgid ""
-"net idmap aclmapset\n"
-" Set acl map"
-msgstr ""
-
-#: ../utils/net_join.c:26
-msgid ""
-"\n"
-"net [<method>] join [misc. options]\n"
-"\tjoins this server to a domain\n"
-msgstr ""
-
-#: ../utils/net_join.c:47
-msgid "ADS join did not work, falling back to RPC...\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:25
-msgid ""
-" net lookup [host] HOSTNAME[#<type>]\n"
-"\tgives IP for a hostname\n"
-"\n"
-" net lookup ldap [domain]\n"
-"\tgives IP of domain's ldap server\n"
-"\n"
-" net lookup kdc [realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup pdc [domain|realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup dc [domain]\n"
-"\tgives IP of domains Domain Controllers\n"
-"\n"
-" net lookup master [domain|wg]\n"
-"\tgive IP of master browser\n"
-"\n"
-" net lookup name [name]\n"
-"\tLookup name's sid and type\n"
-"\n"
-" net lookup sid [sid]\n"
-"\tGive sid's name and type\n"
-"\n"
-" net lookup dsgetdcname [name] [flags] [sitename]\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:112
-msgid "net_lookup_ldap: talloc_init() failed!\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:325
-msgid "usage: net lookup name <name>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:331 ../utils/net_lookup.c:358
-#, c-format
-msgid "Could not lookup name %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:347
-msgid "usage: net lookup sid <sid>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:352
-#, c-format
-msgid "Could not convert %s to SID\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:378
-msgid "usage: net lookup dsgetdcname <name> <flags> <sitename>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:404
-#, c-format
-msgid "failed with: %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:437
-msgid ""
-"\n"
-"Usage: \n"
-msgstr ""
-
-#: ../utils/net_lua.c:60
-msgid "connect: Expected IP-Address"
-msgstr ""
-
-#: ../utils/net_lua.c:65
-msgid "connect: Expected port"
-msgstr ""
-
-#: ../utils/net_lua.c:84
-#, fuzzy, c-format
-msgid "connect failed: %s"
-msgstr "Zarządzanie Hasłami"
-
-#: ../utils/net_lua.c:132
-#, c-format
-msgid "socket domain %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:144
-#, c-format
-msgid "socket type %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:155
-#, fuzzy, c-format
-msgid "socket() failed: %s"
-msgstr "Zarządzanie Hasłami"
-
-#: ../utils/net_lua.c:278
-msgid "evt_reference_thread failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:287
-msgid "event_add_timed failed"
-msgstr ""
-
-#: ../utils/net_lua.c:300
-msgid "event_once called from non-base thread"
-msgstr ""
-
-#: ../utils/net_lua.c:323
-msgid "event_context_init failed"
-msgstr ""
-
-#: ../utils/net_lua.c:353
-msgid "lua_newstate failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:371
-msgid "luaL_dofile returned an error\n"
-msgstr ""
-
-#: ../utils/net_lua.c:376
-msgid "luaL_dostring returned an error\n"
-msgstr ""
diff --git a/source3/po/ru.msg b/source3/po/ru.msg
index 4de02a6636..d859406ccb 100644
--- a/source3/po/ru.msg
+++ b/source3/po/ru.msg
@@ -18,7 +18,7 @@ msgid ""
msgstr ""
"Project-Id-Version: swat\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-30 12:18+0200\n"
+"POT-Creation-Date: 2007-06-04 18:15+0200\n"
"PO-Revision-Date: 2007-06-27 22:00+0400\n"
"Last-Translator: Yuri Kozlov <kozlov.y@gmail.com>\n"
"Language-Team: Russian <debian-l10n-russian@lists.debian.org>\n"
@@ -28,4014 +28,579 @@ msgstr ""
"X-Generator: KBabel 1.11.4\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-#: ../web/swat.c:153
+#: ../web/swat.c:139
#, c-format
msgid "ERROR: Can't open %s"
msgstr "ОШИБКА: Не удалось открыть %s"
-#: ../web/swat.c:241
+#: ../web/swat.c:223
msgid "Help"
msgstr "Справка"
-#: ../web/swat.c:247 ../web/swat.c:272 ../web/swat.c:293 ../web/swat.c:302 ../web/swat.c:311 ../web/swat.c:317 ../web/swat.c:329 ../web/swat.c:343
+#: ../web/swat.c:229 ../web/swat.c:254 ../web/swat.c:275 ../web/swat.c:285 ../web/swat.c:294 ../web/swat.c:303 ../web/swat.c:309 ../web/swat.c:315 ../web/swat.c:328
msgid "Set Default"
msgstr "Установить по умолчанию"
-#: ../web/swat.c:465
+#: ../web/swat.c:450
#, c-format
msgid "failed to open %s for writing"
msgstr "не удалось открыть %s для записи"
-#: ../web/swat.c:488
+#: ../web/swat.c:473
#, c-format
msgid "Can't reload %s"
msgstr "Невозможно перезагрузить %s"
-#: ../web/swat.c:561
+#: ../web/swat.c:543
#, c-format
msgid "Logged in as <b>%s</b>"
msgstr "Осуществлён вход под именем <b>%s</b>"
-#: ../web/swat.c:565
+#: ../web/swat.c:547
msgid "Home"
msgstr "Главная"
-#: ../web/swat.c:567
+#: ../web/swat.c:549
msgid "Globals"
msgstr "Глобальные"
-#: ../web/swat.c:568
+#: ../web/swat.c:550
msgid "Shares"
msgstr "Ресурсы"
-#: ../web/swat.c:569
+#: ../web/swat.c:551
msgid "Printers"
msgstr "Принтеры"
-#: ../web/swat.c:570
+#: ../web/swat.c:552
msgid "Wizard"
msgstr "Помощник"
-#: ../web/swat.c:574
+#: ../web/swat.c:556
msgid "Status"
msgstr "Состояние"
-#: ../web/swat.c:575
+#: ../web/swat.c:557
msgid "View Config"
msgstr "Настройки"
-#: ../web/swat.c:577
+#: ../web/swat.c:559
msgid "Password Management"
msgstr "Пароли"
-#: ../web/swat.c:587
+#: ../web/swat.c:569
msgid "Current View Is"
msgstr "Текущий вид"
-#: ../web/swat.c:588 ../web/swat.c:591
+#: ../web/swat.c:570 ../web/swat.c:573
msgid "Basic"
msgstr "Простой"
-#: ../web/swat.c:589 ../web/swat.c:592
+#: ../web/swat.c:571 ../web/swat.c:574
msgid "Advanced"
msgstr "Сложный"
-#: ../web/swat.c:590
+#: ../web/swat.c:572
msgid "Change View To"
msgstr "Сменить вид на"
-#: ../web/swat.c:619
+#: ../web/swat.c:601
msgid "Current Config"
msgstr "Текущий файл конфигурации"
-#: ../web/swat.c:623
+#: ../web/swat.c:605
msgid "Normal View"
msgstr "Обычный вид"
-#: ../web/swat.c:625
+#: ../web/swat.c:607
msgid "Full View"
msgstr "Полный вид"
#. Here we first set and commit all the parameters that were selected
#. in the previous screen.
-#: ../web/swat.c:644
+#: ../web/swat.c:626
msgid "Wizard Parameter Edit Page"
msgstr "Страница редактирования параметров помощника"
-#: ../web/swat.c:673
+#: ../web/swat.c:655
msgid "Note: smb.conf file has been read and rewritten"
msgstr "Замечание: файл smb.conf был прочитан и перезаписан"
#. Here we go ...
-#: ../web/swat.c:779
+#: ../web/swat.c:763
msgid "Samba Configuration Wizard"
msgstr "Помощник настройки Samba"
-#: ../web/swat.c:783
+#: ../web/swat.c:767
msgid "The \"Rewrite smb.conf file\" button will clear the smb.conf file of all default values and of comments."
-msgstr "По кнопке \"Перезаписать файл smb.conf\" в файл smb.conf записываются все значения по умолчанию с комментариями."
+msgstr ""
+"По кнопке \"Перезаписать файл smb.conf\" в файл smb.conf записываются все "
+"значения по умолчанию с комментариями."
-#: ../web/swat.c:784
+#: ../web/swat.c:768
msgid "The same will happen if you press the commit button."
msgstr "То же самое произойдёт при нажатии кнопки сохранения."
-#: ../web/swat.c:787
+#: ../web/swat.c:771
msgid "Rewrite smb.conf file"
msgstr "Перезаписать файл smb.conf"
-#: ../web/swat.c:788
+#: ../web/swat.c:772
msgid "Commit"
msgstr "Сохранить"
-#: ../web/swat.c:789
+#: ../web/swat.c:773
msgid "Edit Parameter Values"
msgstr "Редактировать значения параметров"
-#: ../web/swat.c:795
+#: ../web/swat.c:779
msgid "Server Type"
msgstr "Тип сервера"
-#: ../web/swat.c:796
+#: ../web/swat.c:780
msgid "Stand Alone"
msgstr "Независимый"
-#: ../web/swat.c:797
+#: ../web/swat.c:781
msgid "Domain Member"
msgstr "Член домена"
-#: ../web/swat.c:798
+#: ../web/swat.c:782
msgid "Domain Controller"
msgstr "Контроллер домена"
-#: ../web/swat.c:801
+#: ../web/swat.c:785
msgid "Unusual Type in smb.conf - Please Select New Mode"
msgstr "Необычный тип в smb.conf - Выберите новый режим"
-#: ../web/swat.c:803
+#: ../web/swat.c:787
msgid "Configure WINS As"
msgstr "Настроить WINS как"
-#: ../web/swat.c:804
+#: ../web/swat.c:788
msgid "Not Used"
msgstr "Не использовать"
-#: ../web/swat.c:805
+#: ../web/swat.c:789
msgid "Server for client use"
msgstr "Сервер для клиентов"
-#: ../web/swat.c:806
+#: ../web/swat.c:790
msgid "Client of another WINS server"
msgstr "Клиент другого сервера WINS"
-#: ../web/swat.c:808
+#: ../web/swat.c:792
msgid "Remote WINS Server"
msgstr "Удалённый сервер WINS"
-#: ../web/swat.c:819
+#: ../web/swat.c:803
msgid "Error: WINS Server Mode and WINS Support both set in smb.conf"
msgstr "Ошибка: в smb.conf установлены одновременно режим сервера WINS и поддержка WINS"
-#: ../web/swat.c:820
+#: ../web/swat.c:804
msgid "Please Select desired WINS mode above."
msgstr "Выберите желаемый режим WINS."
-#: ../web/swat.c:822
+#: ../web/swat.c:806
msgid "Expose Home Directories"
msgstr "Сделать доступными домашние каталоги"
-#: ../web/swat.c:837
+#: ../web/swat.c:821
msgid "The above configuration options will set multiple parameters and will generally assist with rapid Samba deployment."
-msgstr "Выбор параметров выше приводит к автоматической настройке большего числа параметров, и помогает в сокращении времени развёртывания Samba."
+msgstr ""
+"Выбор параметров выше приводит к автоматической настройке большего числа "
+"параметров, и помогает в сокращении времени развёртывания Samba."
-#: ../web/swat.c:850
+#: ../web/swat.c:834
msgid "Global Parameters"
msgstr "Глобальные параметры"
-#: ../web/swat.c:878 ../web/swat.c:986 ../web/swat.c:1344
+#: ../web/swat.c:862 ../web/swat.c:966 ../web/swat.c:1318
msgid "Commit Changes"
msgstr "Сохранить изменения"
-#: ../web/swat.c:882 ../web/swat.c:989 ../web/swat.c:1346
+#: ../web/swat.c:866 ../web/swat.c:969 ../web/swat.c:1320
msgid "Reset Values"
msgstr "Реинициализировать значения"
-#: ../web/swat.c:908
+#: ../web/swat.c:891
msgid "Share Parameters"
msgstr "Параметры общих ресурсов"
-#: ../web/swat.c:955
+#: ../web/swat.c:934
msgid "Choose Share"
msgstr "Выбрать ресурс"
-#: ../web/swat.c:971
+#: ../web/swat.c:951
msgid "Delete Share"
msgstr "Удалить ресурс"
-#: ../web/swat.c:978
+#: ../web/swat.c:958
msgid "Create Share"
msgstr "Создать ресурс"
-#: ../web/swat.c:1014
+#: ../web/swat.c:994
msgid "password change in demo mode rejected"
msgstr "смена пароля в демо-режиме не работает"
-#: ../web/swat.c:1028
+#: ../web/swat.c:1007
msgid "Can't setup password database vectors."
msgstr "Не удалось настроить векторы базы данных паролей."
-#: ../web/swat.c:1056
+#: ../web/swat.c:1033
msgid " Must specify \"User Name\" "
msgstr " Должно быть указано \"Имя пользователя\" "
-#: ../web/swat.c:1072
+#: ../web/swat.c:1049
msgid " Must specify \"Old Password\" "
msgstr " Должен быть указан \"Старый пароль\" "
-#: ../web/swat.c:1078
+#: ../web/swat.c:1055
msgid " Must specify \"Remote Machine\" "
msgstr " Должна быть указана \"Удалённая машина\" "
-#: ../web/swat.c:1085
+#: ../web/swat.c:1062
msgid " Must specify \"New, and Re-typed Passwords\" "
msgstr " Должен быть указан \"Новый пароль, введённый дважды\" "
-#: ../web/swat.c:1091
+#: ../web/swat.c:1068
msgid " Re-typed password didn't match new password "
msgstr " Повторно набранный новый пароль не совпадает с новым паролем "
-#: ../web/swat.c:1124
+#: ../web/swat.c:1101
#, c-format
msgid " The passwd for '%s' has been changed."
msgstr " Был изменён пароль для '%s'."
-#: ../web/swat.c:1127
+#: ../web/swat.c:1104
#, c-format
msgid " The passwd for '%s' has NOT been changed."
msgstr " Пароль для '%s' НЕ был изменён."
-#: ../web/swat.c:1152
+#: ../web/swat.c:1129
msgid "Server Password Management"
msgstr "Управление паролями сервера"
#.
#. * Create all the dialog boxes for data collection
#.
-#: ../web/swat.c:1161 ../web/swat.c:1208
+#: ../web/swat.c:1138 ../web/swat.c:1185
msgid "User Name"
msgstr "Имя пользователя"
-#: ../web/swat.c:1164 ../web/swat.c:1210
+#: ../web/swat.c:1141 ../web/swat.c:1187
msgid "Old Password"
msgstr "Старый пароль"
-#: ../web/swat.c:1167 ../web/swat.c:1212
+#: ../web/swat.c:1144 ../web/swat.c:1189
msgid "New Password"
msgstr "Новый пароль"
-#: ../web/swat.c:1169 ../web/swat.c:1214
+#: ../web/swat.c:1146 ../web/swat.c:1191
msgid "Re-type New Password"
msgstr "Новый пароль ещё раз"
-#: ../web/swat.c:1177 ../web/swat.c:1225
+#: ../web/swat.c:1154 ../web/swat.c:1202
msgid "Change Password"
msgstr "Сменить пароль"
-#: ../web/swat.c:1180
+#: ../web/swat.c:1157
msgid "Add New User"
msgstr "Добавить нового пользователя"
-#: ../web/swat.c:1182
+#: ../web/swat.c:1159
msgid "Delete User"
msgstr "Удалить пользователя"
-#: ../web/swat.c:1184
+#: ../web/swat.c:1161
msgid "Disable User"
msgstr "Заблокировать пользователя"
-#: ../web/swat.c:1186
+#: ../web/swat.c:1163
msgid "Enable User"
msgstr "Разблокировать пользователя"
-#: ../web/swat.c:1199
+#: ../web/swat.c:1176
msgid "Client/Server Password Management"
msgstr "Управление паролями в режиме клиент/сервер"
-#: ../web/swat.c:1216
+#: ../web/swat.c:1193
msgid "Remote Machine"
msgstr "Удалённая машина"
-#: ../web/swat.c:1255
+#: ../web/swat.c:1232
msgid "Printer Parameters"
msgstr "Параметры принтера"
-#: ../web/swat.c:1257
+#: ../web/swat.c:1234
msgid "Important Note:"
msgstr "Важное замечание:"
-#: ../web/swat.c:1258
+#: ../web/swat.c:1235
+#, c-format
msgid "Printer names marked with [*] in the Choose Printer drop-down box "
msgstr "Имена принтеров, помеченные [*] в выпадающем списке принтеров, "
-#: ../web/swat.c:1259
+#: ../web/swat.c:1236
+#, c-format
msgid "are autoloaded printers from "
msgstr "были автоматически загружены согласно параметру "
-#: ../web/swat.c:1260
+#: ../web/swat.c:1237
msgid "Printcap Name"
msgstr "Printcap Name"
-#: ../web/swat.c:1261
+#: ../web/swat.c:1238
msgid "Attempting to delete these printers from SWAT will have no effect."
msgstr ". Попытка удалить эти принтеры из SWAT ни к чему не приведёт."
-#: ../web/swat.c:1310
+#: ../web/swat.c:1284
msgid "Choose Printer"
msgstr "Выбрать принтер"
-#: ../web/swat.c:1329
+#: ../web/swat.c:1303
msgid "Delete Printer"
msgstr "Удалить принтер"
-#: ../web/swat.c:1336
+#: ../web/swat.c:1310
msgid "Create Printer"
msgstr "Создать принтер"
-#: ../web/statuspage.c:151
+#: ../web/statuspage.c:139
msgid "RDWR "
msgstr "RDWR "
-#: ../web/statuspage.c:153
+#: ../web/statuspage.c:141
msgid "WRONLY "
msgstr "WRONLY "
-#: ../web/statuspage.c:155
+#: ../web/statuspage.c:143
msgid "RDONLY "
msgstr "RDONLY "
-#: ../web/statuspage.c:329
+#: ../web/statuspage.c:330
msgid "Server Status"
msgstr "Состояние сервера"
-#: ../web/statuspage.c:334
+#: ../web/statuspage.c:335
msgid "Auto Refresh"
msgstr "Включить автообновление"
-#: ../web/statuspage.c:335 ../web/statuspage.c:340
+#: ../web/statuspage.c:336 ../web/statuspage.c:341
msgid "Refresh Interval: "
msgstr "Интервал автообновления: "
-#: ../web/statuspage.c:339
+#: ../web/statuspage.c:340
msgid "Stop Refreshing"
msgstr "Выключить автообновление"
-#: ../web/statuspage.c:348
+#: ../web/statuspage.c:355
msgid "version:"
msgstr "версия:"
-#: ../web/statuspage.c:351
+#: ../web/statuspage.c:358
msgid "smbd:"
msgstr "smbd:"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:358 ../web/statuspage.c:371 ../web/statuspage.c:385
msgid "running"
msgstr "работает"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:358 ../web/statuspage.c:371 ../web/statuspage.c:385
msgid "not running"
msgstr "не работает"
-#: ../web/statuspage.c:355
+#: ../web/statuspage.c:362
msgid "Stop smbd"
msgstr "Остановить smbd"
-#: ../web/statuspage.c:357
+#: ../web/statuspage.c:364
msgid "Start smbd"
msgstr "Запустить smbd"
-#: ../web/statuspage.c:359
+#: ../web/statuspage.c:366
msgid "Restart smbd"
msgstr "Перезапустить smbd"
-#: ../web/statuspage.c:364
+#: ../web/statuspage.c:371
msgid "nmbd:"
msgstr "nmbd:"
-#: ../web/statuspage.c:368
+#: ../web/statuspage.c:375
msgid "Stop nmbd"
msgstr "Остановить nmbd"
-#: ../web/statuspage.c:370
+#: ../web/statuspage.c:377
msgid "Start nmbd"
msgstr "Запустить nmbd"
-#: ../web/statuspage.c:372
+#: ../web/statuspage.c:379
msgid "Restart nmbd"
msgstr "Перезапустить nmbd"
-#: ../web/statuspage.c:378
+#: ../web/statuspage.c:385
msgid "winbindd:"
msgstr "winbindd:"
-#: ../web/statuspage.c:382
+#: ../web/statuspage.c:389
msgid "Stop winbindd"
msgstr "Остановить winbindd"
-#: ../web/statuspage.c:384
+#: ../web/statuspage.c:391
msgid "Start winbindd"
msgstr "Запустить winbindd"
-#: ../web/statuspage.c:386
+#: ../web/statuspage.c:393
msgid "Restart winbindd"
msgstr "Перезапустить winbindd"
#. stop, restart all
-#: ../web/statuspage.c:395
+#: ../web/statuspage.c:402
msgid "Stop All"
msgstr "Остановить всё"
-#: ../web/statuspage.c:396
+#: ../web/statuspage.c:403
msgid "Restart All"
msgstr "Перезапустить всё"
#. start all
-#: ../web/statuspage.c:400
+#: ../web/statuspage.c:407
msgid "Start All"
msgstr "Запустить всё"
-#: ../web/statuspage.c:407
+#: ../web/statuspage.c:414
msgid "Active Connections"
msgstr "Активные подключения"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:416 ../web/statuspage.c:429 ../web/statuspage.c:437
msgid "PID"
msgstr "PID"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422
+#: ../web/statuspage.c:416 ../web/statuspage.c:429
msgid "Client"
msgstr "Клиент"
-#: ../web/statuspage.c:409
+#: ../web/statuspage.c:416
msgid "IP address"
msgstr "IP-адрес"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:416 ../web/statuspage.c:429 ../web/statuspage.c:437
msgid "Date"
msgstr "Дата"
-#: ../web/statuspage.c:411
+#: ../web/statuspage.c:418
msgid "Kill"
msgstr "Отключить"
-#: ../web/statuspage.c:419
+#: ../web/statuspage.c:426
msgid "Active Shares"
msgstr "Активные ресурсы"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:429
msgid "Share"
msgstr "Ресурс"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:429
msgid "User"
msgstr "Пользователь"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:429
msgid "Group"
msgstr "Группа"
-#: ../web/statuspage.c:428
+#: ../web/statuspage.c:435
msgid "Open Files"
msgstr "Открытые файлы"
-#: ../web/statuspage.c:431
-#, fuzzy
-msgid "UID"
-msgstr "PID"
-
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:437
msgid "Sharing"
msgstr "Ресурс"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:437
msgid "R/W"
msgstr "R/W"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:437
msgid "Oplock"
msgstr "Oplock"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:437
msgid "File"
msgstr "Файл"
-#: ../web/statuspage.c:438
+#: ../web/statuspage.c:446
msgid "Show Client in col 1"
msgstr "Показать клиента в колонке 1"
-#: ../web/statuspage.c:439
+#: ../web/statuspage.c:447
msgid "Show PID in col 1"
msgstr "Показать PID в колонке 1"
-#: ../param/loadparm.c:907
+#: ../param/loadparm.c:836
msgid "Base Options"
msgstr "Основные параметры"
-#: ../param/loadparm.c:1047
+#: ../param/loadparm.c:855
msgid "Security Options"
msgstr "Параметры безопасности"
-#: ../param/loadparm.c:1800
+#: ../param/loadparm.c:945
msgid "Logging Options"
msgstr "Параметры журнала"
-#: ../param/loadparm.c:1929
+#: ../param/loadparm.c:962
msgid "Protocol Options"
msgstr "Параметры протокола"
-#: ../param/loadparm.c:2301
+#: ../param/loadparm.c:1008
msgid "Tuning Options"
msgstr "Параметры детальной настройки"
-#: ../param/loadparm.c:2538
+#: ../param/loadparm.c:1037
msgid "Printing Options"
msgstr "Параметры печати"
-#: ../param/loadparm.c:2858
+#: ../param/loadparm.c:1075
msgid "Filename Handling"
msgstr "Обработка имён файлов"
-#: ../param/loadparm.c:3088
+#: ../param/loadparm.c:1105
msgid "Domain Options"
msgstr "Параметры домена"
-#: ../param/loadparm.c:3100
+#: ../param/loadparm.c:1109
msgid "Logon Options"
msgstr "Параметры входа"
-#: ../param/loadparm.c:3273
+#: ../param/loadparm.c:1130
msgid "Browse Options"
msgstr "Параметры обзора"
-#: ../param/loadparm.c:3384
+#: ../param/loadparm.c:1144
msgid "WINS Options"
msgstr "Параметры WINS"
-#: ../param/loadparm.c:3432
+#: ../param/loadparm.c:1153
msgid "Locking Options"
msgstr "Параметры блокировки"
-#: ../param/loadparm.c:3552
+#: ../param/loadparm.c:1170
msgid "Ldap Options"
msgstr "Параметры Ldap"
-#: ../param/loadparm.c:3708
-msgid "EventLog Options"
-msgstr "Параметры EventLog"
-
-#: ../param/loadparm.c:3720
+#: ../param/loadparm.c:1186
msgid "Miscellaneous Options"
msgstr "Различные параметры"
-#: ../param/loadparm.c:4301
-msgid "VFS module options"
-msgstr "Параметры модуля VFS"
+#: ../param/loadparm.c:1191
+msgid "EventLog Options"
+msgstr "Параметры EventLog"
-#: ../param/loadparm.c:4323
-#, fuzzy
-msgid "MSDFS options"
+#: ../param/loadparm.c:1258
+msgid "VFS module options"
msgstr "Параметры модуля VFS"
-#: ../param/loadparm.c:4353
+#: ../param/loadparm.c:1268
msgid "Winbind options"
msgstr "Параметры Winbind"
-#: ../utils/net.c:103
-msgid "Enter machine password: "
-msgstr ""
-
-#: ../utils/net.c:107
-msgid "Unable to write the machine account password in the secrets database"
-msgstr ""
-
-#: ../utils/net.c:111
-msgid "Modified trust account password in secrets database\n"
-msgstr ""
-
-#: ../utils/net.c:115
-msgid ""
-"Machine account password change requires the -f flag.\n"
-"Do NOT use this function unless you know what it does!\n"
-"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
-#, 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
-#, c-format
-msgid "SID for domain %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:175
-msgid "usage: net setlocalsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:195
-msgid "usage: net setdomainsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:213
-msgid "usage: net getdomainsid\n"
-msgstr ""
-
-#: ../utils/net.c:238
-msgid "Could not fetch local SID\n"
-msgstr ""
-
-#: ../utils/net.c:242
-#, c-format
-msgid "SID for local machine %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:246
-msgid "Could not fetch domain SID\n"
-msgstr ""
-
-#: ../utils/net.c:263
-#, c-format
-msgid "get_maxrid: Could not search %s\n"
-msgstr ""
-
-#: ../utils/net.c:297
-msgid "usage: net maxrid\n"
-msgstr ""
-
-#: ../utils/net.c:302
-msgid "can't get current maximum rid\n"
-msgstr ""
-
-#: ../utils/net.c:306
-#, c-format
-msgid "Currently used maximum rid: %d\n"
-msgstr ""
-
-#: ../utils/net.c:317
-msgid "Run functions using RPC transport"
-msgstr ""
-
-#: ../utils/net.c:318
-msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands."
-msgstr ""
-
-#: ../utils/net.c:325
-msgid "Run functions using RAP transport"
-msgstr ""
-
-#: ../utils/net.c:326
-msgid " Use 'net help rap' to get more extensive information about 'net rap' commands."
-msgstr ""
-
-#: ../utils/net.c:333
-msgid "Run functions using ADS transport"
-msgstr ""
-
-#: ../utils/net.c:334
-msgid " Use 'net help ads' to get more extensive information about 'net ads' commands."
-msgstr ""
-
-#: ../utils/net.c:343
-msgid "Functions on remote opened files"
-msgstr ""
-
-#: ../utils/net.c:344
-msgid " Use 'net help file' to get more information about 'net file' commands."
-msgstr ""
-
-#: ../utils/net.c:351
-msgid "Functions on shares"
-msgstr ""
-
-#: ../utils/net.c:352
-msgid " Use 'net help share' to get more information about 'net share' commands."
-msgstr ""
-
-#: ../utils/net.c:359
-msgid "Manage sessions"
-msgstr ""
-
-#: ../utils/net.c:360
-msgid " Use 'net help session' to get more information about 'net session' commands."
-msgstr ""
-
-#: ../utils/net.c:367
-msgid "List servers in workgroup"
-msgstr ""
-
-#: ../utils/net.c:368
-msgid " Use 'net help server' to get more information about 'net server' commands."
-msgstr ""
-
-#: ../utils/net.c:375
-msgid "List domains/workgroups on network"
-msgstr ""
-
-#: ../utils/net.c:376
-msgid " Use 'net help domain' to get more information about 'net domain' commands."
-msgstr ""
-
-#: ../utils/net.c:383
-msgid "Modify printer queue"
-msgstr ""
-
-#: ../utils/net.c:384
-msgid " Use 'net help printq' to get more information about 'net printq' commands."
-msgstr ""
-
-#: ../utils/net.c:391
-#, fuzzy
-msgid "Manage users"
-msgstr "Разблокировать пользователя"
-
-#: ../utils/net.c:392
-msgid " Use 'net help user' to get more information about 'net user' commands."
-msgstr ""
-
-#: ../utils/net.c:399
-msgid "Manage groups"
-msgstr ""
-
-#: ../utils/net.c:400
-msgid " Use 'net help group' to get more information about 'net group' commands."
-msgstr ""
-
-#: ../utils/net.c:407
-msgid "Manage group mappings"
-msgstr ""
-
-#: ../utils/net.c:408
-msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands."
-msgstr ""
-
-#: ../utils/net.c:415
-msgid "Functions on the SAM database"
-msgstr ""
-
-#: ../utils/net.c:416
-msgid " Use 'net help sam' to get more information about 'net sam' commands."
-msgstr ""
-
-#: ../utils/net.c:423
-msgid "Validate username and password"
-msgstr ""
-
-#: ../utils/net.c:424
-msgid " Use 'net help validate' to get more information about 'net validate' commands."
-msgstr ""
-
-#: ../utils/net.c:431
-msgid "Modify group memberships"
-msgstr ""
-
-#: ../utils/net.c:432
-msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands."
-msgstr ""
-
-#: ../utils/net.c:438
-msgid "Execute remote command on a remote OS/2 server"
-msgstr ""
-
-#: ../utils/net.c:439
-msgid " Use 'net help admin' to get more information about 'net admin' commands."
-msgstr ""
-
-#: ../utils/net.c:445
-msgid "List/modify running services"
-msgstr ""
-
-#: ../utils/net.c:446
-msgid " Use 'net help service' to get more information about 'net service' commands."
-msgstr ""
-
-#: ../utils/net.c:453
-#, fuzzy
-msgid "Change user password on target server"
-msgstr "Не удалось настроить векторы базы данных паролей."
-
-#: ../utils/net.c:454
-msgid " Use 'net help password' to get more information about 'net password' commands."
-msgstr ""
-
-#: ../utils/net.c:460
-#, fuzzy
-msgid "Change the trust password"
-msgstr "Сменить пароль"
-
-#: ../utils/net.c:461
-msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'."
-msgstr ""
-
-#: ../utils/net.c:467
-#, fuzzy
-msgid "Change the secret password"
-msgstr "Сменить пароль"
-
-#: ../utils/net.c:468
-msgid ""
-" net [options] changesecretpw\n"
-" Change the ADS domain member machine account password in secrets.tdb.\n"
-" Do NOT use this function unless you know what it does.\n"
-" Requires the -f flag to work."
-msgstr ""
-
-#: ../utils/net.c:477
-msgid "Show/set time"
-msgstr ""
-
-#: ../utils/net.c:478
-msgid " Use 'net help time' to get more information about 'net time' commands."
-msgstr ""
-
-#: ../utils/net.c:484
-msgid "Look up host names/IP addresses"
-msgstr ""
-
-#: ../utils/net.c:485
-msgid " Use 'net help lookup' to get more information about 'net lookup' commands."
-msgstr ""
-
-#: ../utils/net.c:491
-msgid "Join a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:492
-msgid " Use 'net help join' to get more information about 'net join'."
-msgstr ""
-
-#: ../utils/net.c:498
-msgid "Join/unjoin (remote) machines to/from a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:499
-msgid " Use 'net help dom' to get more information about 'net dom' commands."
-msgstr ""
-
-#: ../utils/net.c:505
-msgid "Operate on the cache tdb file"
-msgstr ""
-
-#: ../utils/net.c:506
-msgid " Use 'net help cache' to get more information about 'net cache' commands."
-msgstr ""
-
-#: ../utils/net.c:512
-msgid "Get the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:513
-msgid " net getlocalsid"
-msgstr ""
-
-#: ../utils/net.c:518
-msgid "Set the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:519
-msgid " net setlocalsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:524
-msgid "Set domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:525
-msgid " net setdomainsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:530
-msgid "Get domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:531
-msgid " net getdomainsid"
-msgstr ""
-
-#: ../utils/net.c:536
-msgid "Display the maximul RID currently used"
-msgstr ""
-
-#: ../utils/net.c:537
-msgid " net maxrid"
-msgstr ""
-
-#: ../utils/net.c:542
-#, fuzzy
-msgid "IDmap functions"
-msgstr "Параметры домена"
-
-#: ../utils/net.c:543
-msgid " Use 'net help idmap to get more information about 'net idmap' commands."
-msgstr ""
-
-#: ../utils/net.c:549
-#, fuzzy
-msgid "Display server status"
-msgstr "Состояние сервера"
-
-#: ../utils/net.c:550
-msgid " Use 'net help status' to get more information about 'net status' commands."
-msgstr ""
-
-#: ../utils/net.c:556
-msgid "Manage user-modifiable shares"
-msgstr ""
-
-#: ../utils/net.c:557
-msgid " Use 'net help usershare to get more information about 'net usershare' commands."
-msgstr ""
-
-#: ../utils/net.c:563
-msgid "Display list of all users with SID"
-msgstr ""
-
-#: ../utils/net.c:564
-msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'."
-msgstr ""
-
-#: ../utils/net.c:570
-msgid "Manage Samba registry based configuration"
-msgstr ""
-
-#: ../utils/net.c:571
-msgid " Use 'net help conf' to get more information about 'net conf' commands."
-msgstr ""
-
-#: ../utils/net.c:577
-msgid "Manage the Samba registry"
-msgstr ""
-
-#: ../utils/net.c:578
-msgid " Use 'net help registry' to get more information about 'net registry' commands."
-msgstr ""
-
-#: ../utils/net.c:584
-msgid "Open a lua interpreter"
-msgstr ""
-
-#: ../utils/net.c:585
-msgid " Use 'net help lua' to get more information about 'net lua' commands."
-msgstr ""
-
-#: ../utils/net.c:591
-msgid "Process Win32 *.evt eventlog files"
-msgstr ""
-
-#: ../utils/net.c:592
-msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands."
-msgstr ""
-
-#: ../utils/net.c:600
-msgid "Manage AFS tokens"
-msgstr ""
-
-#: ../utils/net.c:601
-msgid " Use 'net help afs' to get more information about 'net afs' commands."
-msgstr ""
-
-#: ../utils/net.c:609
-msgid "Print usage information"
-msgstr ""
-
-#: ../utils/net.c:610
-msgid " Use 'net help help' to list usage information for 'net' commands."
-msgstr ""
-
-#: ../utils/net.c:639
-msgid "Encrypt SMB transport (UNIX extended servers only)"
-msgstr ""
-
-#: ../utils/net.c:703
-msgid ""
-"\n"
-"Invalid ip address specified\n"
-msgstr ""
-
-#: ../utils/net.c:718
-#, c-format
-msgid ""
-"\n"
-"Invalid option %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:52 ../utils/net_ads.c:392
-msgid "CLDAP query failed!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:56
-#, fuzzy, c-format
-msgid ""
-"Information for Domain Controller: %s\n"
-"\n"
-msgstr "Контроллер домена"
-
-#: ../utils/net_ads.c:59
-msgid "Response Type: "
-msgstr ""
-
-#: ../utils/net_ads.c:72
-#, c-format
-msgid "GUID: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:74
-#, c-format
-msgid ""
-"Flags:\n"
-"\tIs a PDC: %s\n"
-"\tIs a GC of the forest: %s\n"
-"\tIs an LDAP server: %s\n"
-"\tSupports DS: %s\n"
-"\tIs running a KDC: %s\n"
-"\tIs running time services: %s\n"
-"\tIs the closest DC: %s\n"
-"\tIs writable: %s\n"
-"\tHas a hardware clock: %s\n"
-"\tIs a non-domain NC serviced by LDAP server: %s\n"
-"\tIs NT6 DC that has some secrets: %s\n"
-"\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
-msgid "yes"
-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
-msgid "no"
-msgstr ""
-
-#: ../utils/net_ads.c:101
-#, c-format
-msgid "Forest:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:102
-#, c-format
-msgid "Domain:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:103
-#, fuzzy, c-format
-msgid "Domain Controller:\t%s\n"
-msgstr "Контроллер домена"
-
-#: ../utils/net_ads.c:105
-#, c-format
-msgid "Pre-Win2k Domain:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:106
-#, c-format
-msgid "Pre-Win2k Hostname:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:108
-#, fuzzy, c-format
-msgid "User name:\t%s\n"
-msgstr "Имя пользователя"
-
-#: ../utils/net_ads.c:110
-#, fuzzy, c-format
-msgid "Server Site Name :\t\t%s\n"
-msgstr "Состояние сервера"
-
-#: ../utils/net_ads.c:111
-#, c-format
-msgid "Client Site Name :\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:113
-#, fuzzy, c-format
-msgid "NT Version: %d\n"
-msgstr "версия:"
-
-#: ../utils/net_ads.c:114
-#, c-format
-msgid "LMNT Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:115
-#, c-format
-msgid "LM20 Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:130
-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
-msgid "Didn't find the cldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:160
-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
-msgid "Didn't find the ldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:182
-msgid "Failed to get server's current time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:187
-#, c-format
-msgid "LDAP server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:188
-#, c-format
-msgid "LDAP server name: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:189
-#, c-format
-msgid "Realm: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:190
-#, c-format
-msgid "Bind Path: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:191
-#, c-format
-msgid "LDAP port: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:192
-#, fuzzy, c-format
-msgid "Server time: %s\n"
-msgstr "Состояние сервера"
-
-#: ../utils/net_ads.c:195
-#, c-format
-msgid "KDC server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:196
-#, c-format
-msgid "Server time offset: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:374
-msgid ""
-"Usage:\n"
-"net ads workgroup\n"
-" Print the workgroup name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:397
-#, c-format
-msgid "Workgroup: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:458
-#, c-format
-msgid "ads_user_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:463
-#, c-format
-msgid "ads_user_add: User %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:477
-#, c-format
-msgid "Could not add user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:484 ../utils/net_ads.c:497
-#, fuzzy, c-format
-msgid "User %s added\n"
-msgstr "Имя пользователя"
-
-#. password didn't set, delete account
-#: ../utils/net_ads.c:503
-#, c-format
-msgid "Could not add user %s. Error setting password %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:551
-#, c-format
-msgid "ads_user_info: failed to escape user %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:569
-#, c-format
-msgid "ads_search: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:575
-msgid "ads_pull_uint32 failed\n"
-msgstr ""
-
-#: ../utils/net_ads.c:582
-#, c-format
-msgid "ads_domain_sid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:642
-#, c-format
-msgid "User %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:652
-#, c-format
-msgid "User %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:656
-#, c-format
-msgid "Error deleting user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:669
-#, fuzzy
-msgid "Add an AD user"
-msgstr "Добавить нового пользователя"
-
-#: ../utils/net_ads.c:670
-msgid ""
-"net ads user add\n"
-" Add an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:677
-msgid "Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:678
-msgid ""
-"net ads user info\n"
-" Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:685
-#, fuzzy
-msgid "Delete an AD user"
-msgstr "Удалить пользователя"
-
-#: ../utils/net_ads.c:686
-msgid ""
-"net ads user delete\n"
-" Delete an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:699
-msgid ""
-"Usage:\n"
-"net ads user\n"
-" List AD users\n"
-msgstr ""
-
-#: ../utils/net_ads.c:711
-msgid ""
-"\n"
-"User name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:751
-#, c-format
-msgid "ads_group_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:756
-#, c-format
-msgid "ads_group_add: Group %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:769
-#, c-format
-msgid "Group %s added\n"
-msgstr ""
-
-#: ../utils/net_ads.c:772
-#, c-format
-msgid "Could not add group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:801
-#, c-format
-msgid "Group %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:811
-#, c-format
-msgid "Group %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:815
-#, c-format
-msgid "Error deleting group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:828
-msgid "Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:829
-msgid ""
-"net ads group add\n"
-" Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:836
-#, fuzzy
-msgid "Delete an AD group"
-msgstr "Удалить ресурс"
-
-#: ../utils/net_ads.c:837
-msgid ""
-"net ads group delete\n"
-" Delete an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:850
-msgid ""
-"Usage:\n"
-"net ads group\n"
-" List AD groups\n"
-msgstr ""
-
-#: ../utils/net_ads.c:862
-msgid ""
-"\n"
-"Group name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:884
-msgid ""
-"Usage:\n"
-"net ads status\n"
-" Display machine account details\n"
-msgstr ""
-
-#: ../utils/net_ads.c:896
-#, c-format
-msgid "ads_find_machine_acct: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:902
-#, c-format
-msgid "No machine account for '%s' found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:926
-msgid ""
-"Usage:\n"
-"net ads leave\n"
-" Leave an AD domain\n"
-msgstr ""
-
-#: ../utils/net_ads.c:933
-msgid "No realm set, are we joined ?\n"
-msgstr ""
-
-#: ../utils/net_ads.c:938 ../utils/net_ads.c:1260
-msgid "Could not initialise talloc context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:948
-msgid "Could not initialise unjoin context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:968
-#, c-format
-msgid "Failed to leave domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:975
-#, c-format
-msgid "Deleted account for '%s' in realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:982
-#, c-format
-msgid "Disabled account for '%s' in realm '%s'\n"
-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
-#, c-format
-msgid "Machine '%s' Left domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1035
-msgid ""
-"Usage:\n"
-"net ads testjoin\n"
-" Test if the existing join is ok\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1044
-#, c-format
-msgid "Join to domain is not valid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1049
-#, c-format
-msgid "Join is OK\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1060
-msgid "Host is not configured as a member server.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1065
-#, 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
-#, c-format
-msgid "realm must be set in in %s for ADS join to succeed.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1105
-#, c-format
-msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1212
-msgid ""
-"net ads join [options]\n"
-"Valid options:\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1214
-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
-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"
-" E.g. \"createcomputer=Computers/Servers/Unix\"\n"
-" NB: A backslash '\\' is used as escape at multiple levels and may\n"
-" need to be doubled or even quadrupled. It is not used as a separator.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1221
-msgid " osName=string Set the operatingSystem attribute during the join.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1222
-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"
-" Also, the operatingSystemService attribute is also set when along with\n"
-" the two other attributes.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1254
-msgid "Invalid configuration. Exiting....\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1283
-msgid "Please supply a valid OU path.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1290
-msgid "Please supply a operating system name.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1297
-msgid "Please supply a valid operating system version.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1308
-msgid "Please supply a valid domain name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1339
-#, c-format
-msgid ""
-"The workgroup in %s does not match the short\n"
-"domain name obtained from the server.\n"
-"Using the name [%s] from the server.\n"
-"You should set \"workgroup = %s\" in %s.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1347
-#, c-format
-msgid "Using short domain name -- %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1350
-#, c-format
-msgid "Joined '%s' to realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1353
-#, c-format
-msgid "Joined '%s' to domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1377 ../utils/net_ads.c:1433
-msgid "DNS update failed!\n"
-msgstr ""
-
-#. issue an overall failure message at the end.
-#: ../utils/net_ads.c:1391 ../utils/net_dom.c:198
-#, c-format
-msgid "Failed to join domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1414
-msgid ""
-"Usage:\n"
-"net ads dns register\n"
-" Register hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1421
-msgid "Could not initialise talloc context\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1439
-msgid "Successfully registered hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1447
-msgid "DNS update support not enabled at compile time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1466
-msgid ""
-"Usage:\n"
-"net ads dns gethostbyname <server> <name>\n"
-" Look up hostname from the AD\n"
-" server\tName server to use\n"
-" name\tName to look up\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1476
-#, c-format
-msgid "do_gethostbyname returned %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1488
-msgid "Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1489
-msgid ""
-"net ads dns register\n"
-" Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1496
-msgid "Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1497
-msgid ""
-"net ads dns gethostbyname\n"
-" Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1512
-msgid ""
-"\n"
-"net ads printer search <printer>\n"
-"\tsearch for a printer in the directory\n"
-"\n"
-"net ads printer info <printer> <server>\n"
-"\tlookup info in directory for printer on server\n"
-"\t(note: printer defaults to \"*\", server defaults to local)\n"
-"\n"
-"net ads printer publish <printername>\n"
-"\tpublish printer in directory\n"
-"\t(note: printer name is required)\n"
-"\n"
-"net ads printer remove <printername>\n"
-"\tremove printer from directory\n"
-"\t(note: printer name is required)\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1536
-msgid ""
-"Usage:\n"
-"net ads printer search\n"
-" List printers in the AD\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1549
-#, c-format
-msgid "ads_find_printer: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1556
-msgid "No results found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1576
-msgid ""
-"Usage:\n"
-"net ads printer info [printername [servername]]\n"
-" Display printer info from AD\n"
-" printername\tPrinter name or wildcard\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1603
-#, c-format
-msgid "Server '%s' not found: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1611 ../utils/net_ads.c:1794
-#, c-format
-msgid "Printer '%s' not found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1640
-msgid ""
-"Usage:\n"
-"net ads printer publish <printername> [servername]\n"
-" Publish printer in AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1675
-#, c-format
-msgid "Unable to open a connnection to %s to obtain data for %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1688
-#, c-format
-msgid "Could not find machine account for server %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1704 ../utils/net_ads.c:1713
-msgid "Internal error, out of memory!"
-msgstr ""
-
-#: ../utils/net_ads.c:1724
-#, c-format
-msgid "Unable to open a connnection to the spoolss pipe on %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1766
-msgid ""
-"Usage:\n"
-"net ads printer remove <printername> [servername]\n"
-" Remove a printer from the AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1787
-#, c-format
-msgid "ads_find_printer_on_server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1806
-#, c-format
-msgid "ads_del_dn: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1822
-msgid "Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1823
-msgid ""
-"net ads printer search\n"
-" Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1830
-msgid "Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1831
-msgid ""
-"net ads printer info\n"
-" Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1838
-msgid "Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1839
-msgid ""
-"net ads printer publish\n"
-" Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1846
-#, fuzzy
-msgid "Delete a printer"
-msgstr "Удалить принтер"
-
-#: ../utils/net_ads.c:1847
-msgid ""
-"net ads printer remove\n"
-" Delete a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1869
-msgid ""
-"Usage:\n"
-"net ads password <username>\n"
-" Change password for user\n"
-" username\tName of user to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1877
-msgid "You must supply an administrator username/password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1883
-msgid "ERROR: You must say which username to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1915
-msgid "Didn't find the kerberos server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1923
-#, c-format
-msgid "Enter new password for %s:"
-msgstr ""
-
-#: ../utils/net_ads.c:1933 ../utils/net_ads.c:1982
-#, fuzzy, c-format
-msgid "Password change failed: %s\n"
-msgstr "Пароли"
-
-#: ../utils/net_ads.c:1938
-#, fuzzy, c-format
-msgid "Password change for %s completed.\n"
-msgstr "смена пароля в демо-режиме не работает"
-
-#: ../utils/net_ads.c:1952
-msgid ""
-"Usage:\n"
-"net ads changetrustpw\n"
-" Change the machine account's trust password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1977
-#, c-format
-msgid "Changing password for principal: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1988
-#, c-format
-msgid "Password change for principal %s succeeded.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1991
-msgid "Attempting to update system keytab with new password.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1993
-msgid "Failed to update system keytab.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2009
-msgid ""
-"\n"
-"net ads search <expression> <attributes...>\n"
-"\n"
-"Perform a raw LDAP search on a ADS server and dump the results.\n"
-"The expression is a standard LDAP search expression, and the\n"
-"attributes are a list of LDAP fields to show in the results.\n"
-"\n"
-"Example: net ads search '(objectCategory=group)' sAMAccountName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2046 ../utils/net_ads.c:2107 ../utils/net_ads.c:2171 ../utils/net_ads_gpo.c:250
-#, c-format
-msgid "search failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2051 ../utils/net_ads.c:2176 ../utils/net_ads_gpo.c:256
-#, c-format
-msgid ""
-"Got %d replies\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2069
-msgid ""
-"\n"
-"net ads dn <dn> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The DN standard LDAP DN, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' sAMAccountName\n"
-"\n"
-"Note: the DN must be provided properly escaped. See RFC 4514 for details\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2129
-msgid ""
-"\n"
-"net ads sid <sid> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The SID is in string format, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads sid 'S-1-5-32' distinguishedName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2164
-msgid "could not convert sid\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2193
-msgid ""
-"Usage:\n"
-"net ads keytab flush\n"
-" Delete the whole keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2214
-msgid ""
-"Usage:\n"
-"net ads keytab add <principal> [principal ...]\n"
-" Add principals to local keytab\n"
-" principal\tKerberos principal to add to keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2222
-msgid "Processing principals to add...\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2239
-msgid ""
-"Usage:\n"
-"net ads keytab create\n"
-" Create new default keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2258
-msgid ""
-"Usage:\n"
-"net ads keytab list [keytab]\n"
-" List a local keytab\n"
-" keytab\tKeytab to list\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2280
-msgid "Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2281
-msgid ""
-"net ads keytab add\n"
-" Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2288
-#, fuzzy
-msgid "Create a fresh keytab"
-msgstr "Создать ресурс"
-
-#: ../utils/net_ads.c:2289
-msgid ""
-"net ads keytab create\n"
-" Create a fresh keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2296
-msgid "Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2297
-msgid ""
-"net ads keytab flush\n"
-" Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2304
-msgid "List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2305
-msgid ""
-"net ads keytab list\n"
-" List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2312
-msgid ""
-"\n"
-"Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2324
-msgid ""
-"Usage:\n"
-"net ads kerberos renew\n"
-" Renew TGT from existing credential cache\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2332
-#, c-format
-msgid "failed to renew kerberos ticket: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2347
-msgid ""
-"Usage:\n"
-"net ads kerberos pac\n"
-" Dump the Kerberos PAC\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2372
-#, c-format
-msgid "failed to query kerberos PAC: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2381
-#, c-format
-msgid "The Pac: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2397
-msgid ""
-"Usage:\n"
-"net ads kerberos kinit\n"
-" Get Ticket Granting Ticket (TGT) for the user\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2421
-#, c-format
-msgid "failed to kinit password: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2435
-msgid "Retrieve Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2436
-msgid ""
-"net ads kerberos kinit\n"
-" Receive Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2443
-msgid "Renew Ticket Granting Ticket from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2444
-msgid ""
-"net ads kerberos renew\n"
-" Renew Ticket Granting Ticket (TGT) from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2452
-msgid "Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2453
-msgid ""
-"net ads kerberos pac\n"
-" Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2469
-msgid "Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2470
-msgid ""
-"net ads info\n"
-" Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2477
-msgid "Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2478
-msgid ""
-"net ads join\n"
-" Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2485
-msgid "Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2486
-msgid ""
-"net ads testjoin\n"
-" Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2493
-msgid "Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2494
-msgid ""
-"net ads leave\n"
-" Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2501
-msgid "Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2502
-msgid ""
-"net ads status\n"
-" Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2509
-msgid "List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2510
-msgid ""
-"net ads user\n"
-" List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2517
-msgid "List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2518
-msgid ""
-"net ads group\n"
-" List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2525
-msgid "Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2526
-msgid ""
-"net ads dns\n"
-" Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2533
-#, fuzzy
-msgid "Change user passwords"
-msgstr "Сменить пароль"
-
-#: ../utils/net_ads.c:2534
-msgid ""
-"net ads password\n"
-" Change user passwords"
-msgstr ""
-
-#: ../utils/net_ads.c:2541
-#, fuzzy
-msgid "Change trust account password"
-msgstr "Сменить пароль"
-
-#: ../utils/net_ads.c:2542
-msgid ""
-"net ads changetrustpw\n"
-" Change trust account password"
-msgstr ""
-
-#: ../utils/net_ads.c:2549
-msgid "List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2550
-msgid ""
-"net ads printer\n"
-" List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2557
-msgid "Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2558
-msgid ""
-"net ads search\n"
-" Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2565
-msgid "Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2566
-msgid ""
-"net ads dn\n"
-" Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2573
-msgid "Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2574
-msgid ""
-"net ads sid\n"
-" Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2581
-msgid "Display workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2582
-msgid ""
-"net ads workgroup\n"
-" Display the workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2589
-msgid "Perfom CLDAP query on DC"
-msgstr ""
-
-#: ../utils/net_ads.c:2590
-msgid ""
-"net ads lookup\n"
-" Find the ADS DC using CLDAP lookups"
-msgstr ""
-
-#: ../utils/net_ads.c:2597
-msgid "Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2598
-msgid ""
-"net ads keytab\n"
-" Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2605
-msgid "Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2606
-msgid ""
-"net ads gpo\n"
-" Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2613
-msgid "Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2614
-msgid ""
-"net ads kerberos\n"
-" Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2627
-msgid "ADS support not compiled in\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:40
-msgid ""
-"Usage:\n"
-"net ads gpo refresh <username|machinename>\n"
-" Lists all GPOs assigned to an account and downloads them\n"
-" username\tUser to refresh GPOs for\n"
-" machinename\tMachine to refresh GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:56
-#, c-format
-msgid "failed to connect AD server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:62
-#, c-format
-msgid "failed to find samaccount for %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:70
-#, c-format
-msgid ""
-"\n"
-"%s: '%s' has dn: '%s'\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "machine"
-msgstr "Удалённая машина"
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "user"
-msgstr "Пользователь"
-
-#: ../utils/net_ads_gpo.c:74
-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
-#, 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
-msgid "finished\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:87
-msgid "* fetching GPO List "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:96
-msgid "* Refreshing Group Policy Data "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:107
-msgid "* storing GPO list to registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:122
-msgid "* dumping GPO list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:151
-msgid "* re-reading GPO list from registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:167
-msgid "* dumping GPO list from registry\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:226
-msgid ""
-"Usage:\n"
-"net ads gpo listall\n"
-" List all GPOs on the DC\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:270
-#, fuzzy, c-format
-msgid "ads_parse_gpo failed: %s\n"
-msgstr "Пароли"
-
-#: ../utils/net_ads_gpo.c:300
-msgid ""
-"Usage:\n"
-"net ads gpo list <username|machinename>\n"
-" Lists all GPOs for machine/user\n"
-" username\tUser to list GPOs for\n"
-" machinename\tMachine to list GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:327
-#, c-format
-msgid "%s: '%s' has dn: '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:451
-msgid ""
-"Usage:\n"
-"net ads gpo linkget <container>\n"
-" Lists gPLink of a containter\n"
-" container\tContainer to get link for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:470
-#, c-format
-msgid "get link for %s failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:492
-msgid ""
-"Usage:\n"
-"net ads gpo linkadd <linkdn> <gpodn> [options]\n"
-" Link a container to a GPO\n"
-" linkdn\tContainer to link to a GPO\n"
-" gpodn\tGPO to link container to\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:497
-msgid ""
-"note: DNs must be provided properly escaped.\n"
-"See RFC 4514 for details\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:518
-#, c-format
-msgid "link add failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:579
-msgid ""
-"Usage:\n"
-"net ads gpo getgpo <gpo>\n"
-" List speciefied GPO\n"
-" gpo\t\tGPO to list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:603
-#, c-format
-msgid "get gpo for [%s] failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:634
-msgid "List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:635
-msgid ""
-"net ads gpo getgpo\n"
-" List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:642
-msgid "Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:643
-msgid ""
-"net ads gpo linkadd\n"
-" Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:660
-msgid "Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:661
-msgid ""
-"net ads gpo linkget\n"
-" Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:668
-msgid "Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:669
-msgid ""
-"net ads gpo list\n"
-" Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:676
-msgid "Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:677
-msgid ""
-"net ads gpo listall\n"
-" Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:684
-msgid "Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:686
-msgid ""
-"net ads gpo refresh\n"
-" Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_afs.c:25
-msgid ""
-" net afs key filename\n"
-"\tImports a OpenAFS KeyFile into our secrets.tdb\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:27
-msgid ""
-" net afs impersonate <user> <cell>\n"
-"\tCreates a token for user@cell\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:38
-msgid "usage: 'net afs key <keyfile> cell'\n"
-msgstr ""
-
-#: ../utils/net_afs.c:43
-msgid "Could not open secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:48
-#, c-format
-msgid "Could not open %s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:53
-msgid "Could not read keyfile\n"
-msgstr ""
-
-#: ../utils/net_afs.c:58
-msgid "Could not write keyfile to secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:71
-#, c-format
-msgid "Usage: net afs impersonate <user> <cell>\n"
-msgstr ""
-
-#: ../utils/net_afs.c:78
-#, c-format
-msgid "Could not create token\n"
-msgstr ""
-
-#: ../utils/net_afs.c:83
-#, c-format
-msgid "Could not set token into kernel\n"
-msgstr ""
-
-#: ../utils/net_afs.c:87
-#, c-format
-msgid "Success: %s@%s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:98
-msgid "Import an OpenAFS keyfile"
-msgstr ""
-
-#: ../utils/net_afs.c:99
-msgid ""
-"net afs key <filename>\n"
-" Import kefile from <filename>."
-msgstr ""
-
-#: ../utils/net_afs.c:106
-msgid "Get a user token"
-msgstr ""
-
-#: ../utils/net_afs.c:107
-msgid ""
-"net afs impersonate <user> <cell>\n"
-" Create token for user@cell"
-msgstr ""
-
-#: ../utils/net_cache.c:74
-#, c-format
-msgid "Key: %s\t Timeout: %s\t Value: %s %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:75
-msgid "(expired)"
-msgstr ""
-
-#: ../utils/net_cache.c:84
-#, c-format
-msgid "Couldn't delete entry! key = %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:158
-msgid ""
-"\n"
-"Usage:\n"
-"net cache add <key string> <data string> <timeout>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:170
-msgid "Invalid timeout argument.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:175
-msgid "New cache entry stored successfully.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:179
-msgid "Entry couldn't be added. Perhaps there's already such a key.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:195
-msgid ""
-"\n"
-"Usage: net cache del <key string>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:200
-msgid "Entry deleted.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:204
-msgid "Couldn't delete specified entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:223
-msgid ""
-"\n"
-"Usage: net cache get <key>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:233
-msgid "Failed to find entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:250
-msgid "Usage: net cache search <pattern>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:272
-msgid ""
-"Usage:\n"
-"net cache list\n"
-" List all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:293 ../utils/net_cache.c:306
-msgid ""
-"Usage:\n"
-"net cache flush\n"
-" Delete all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:331
-msgid "Add new cache entry"
-msgstr ""
-
-#: ../utils/net_cache.c:332
-msgid ""
-"net cache add <key string> <data string> <timeout>\n"
-" Add new cache entry.\n"
-" key string\tKey string to add cache data under.\n"
-" data string\tData to store under given key.\n"
-" timeout\tTimeout for cache data."
-msgstr ""
-
-#: ../utils/net_cache.c:342
-msgid "Delete existing cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:343
-msgid ""
-"net cache del <key string>\n"
-" Delete existing cache entry by key.\n"
-" key string\tKey string to delete."
-msgstr ""
-
-#: ../utils/net_cache.c:351
-msgid "Get cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:352
-msgid ""
-"net cache get <key string>\n"
-" Get cache entry by key.\n"
-" key string\tKey string to look up cache entry for."
-msgstr ""
-
-#: ../utils/net_cache.c:361
-msgid "Search entry by pattern"
-msgstr ""
-
-#: ../utils/net_cache.c:362
-msgid ""
-"net cache search <pattern>\n"
-" Search entry by pattern.\n"
-" pattern\tPattern to search for in cache."
-msgstr ""
-
-#: ../utils/net_cache.c:370
-msgid "List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:371
-msgid ""
-"net cache list\n"
-" List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:378
-#, fuzzy
-msgid "Delete all cache entries"
-msgstr "Удалить принтер"
-
-#: ../utils/net_cache.c:379
-msgid ""
-"net cache flush\n"
-" Delete all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:386
-msgid "Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_cache.c:387
-msgid ""
-"net cache stabilize\n"
-" Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_conf.c:42
-msgid "USAGE: net conf list\n"
-msgstr ""
-
-#: ../utils/net_conf.c:49
-msgid ""
-"USAGE: net conf import [--test|-T] <filename> [<servicename>]\n"
-"\t[--test|-T] testmode - do not act, just print what would be done\n"
-"\t<servicename> only import service <servicename>, ignore the rest\n"
-msgstr ""
-
-#: ../utils/net_conf.c:61
-msgid "USAGE: net conf listshares\n"
-msgstr ""
-
-#: ../utils/net_conf.c:68
-msgid "USAGE: net conf drop\n"
-msgstr ""
-
-#: ../utils/net_conf.c:75
-msgid "USAGE: net conf showshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:82
-msgid ""
-"USAGE: net conf addshare <sharename> <path> [writeable={y|N} [guest_ok={y|N} [<comment>]]\n"
-"\t<sharename> the new share name.\n"
-"\t<path> the path on the filesystem to export.\n"
-"\twriteable={y|N} set \"writeable to \"yes\" or \"no\" (default) on this share.\n"
-"\tguest_ok={y|N} set \"guest ok\" to \"yes\" or \"no\" (default) on this share.\n"
-"\t<comment> optional comment for the new share.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:97
-msgid "USAGE: net conf delshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:104
-msgid "USAGE: net conf setparm <section> <param> <value>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:111
-msgid "USAGE: net conf getparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:118
-msgid "USAGE: net conf delparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:125
-msgid "USAGE: net conf getincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:132
-msgid "USAGE: net conf setincludes <section> [<filename>]*\n"
-msgstr ""
-
-#: ../utils/net_conf.c:139
-msgid "USAGE: net conf delincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:251
-#, c-format
-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
-msgid "error: out of memory!\n"
-msgstr ""
-
-#: ../utils/net_conf.c:324
-#, c-format
-msgid "error loading file '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:330
-msgid ""
-"\n"
-"TEST MODE - would import the following configuration:\n"
-"\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "error committing transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:427 ../utils/net_conf.c:828
-#, c-format
-msgid "error cancelling transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:484
-#, c-format
-msgid "Error deleting configuration: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:521
-#, c-format
-msgid "error getting share parameters: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:630
-#, c-format
-msgid "ERROR: share name %s contains invalid characters (any of %s)\n"
-msgstr ""
-
-#: ../utils/net_conf.c:638
-msgid "ERROR: 'global' is not a valid share name.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:643
-#, c-format
-msgid "ERROR: share %s already exists.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:652
-#, c-format
-msgid "Error: path '%s' is not an absolute path.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:659
-#, c-format
-msgid ""
-"ERROR: cannot stat path '%s' to ensure this is a directory.\n"
-"Error was '%s'.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:668
-#, c-format
-msgid "ERROR: path '%s' is not a directory.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:679
-#, c-format
-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
-#, c-format
-msgid "Error setting parameter %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:748
-#, c-format
-msgid "Error deleting share %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:801
-#, c-format
-msgid "Error creating share '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:810
-#, c-format
-msgid "Error setting value '%s': %s\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "Error: given parameter '%s' is not set.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:883
-#, c-format
-msgid "Error getting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:939
-#, c-format
-msgid "Error deleting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:977
-#, c-format
-msgid "error getting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1023
-#, c-format
-msgid "error setting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1056
-#, c-format
-msgid "error deleting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1136 ../utils/net_help.c:36
-msgid "Usage:\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1160
-msgid "Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1162
-msgid ""
-"net conf list\n"
-" Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1171
-msgid "Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1173
-msgid ""
-"net conf import\n"
-" Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1181
-msgid "List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1182
-msgid ""
-"net conf listshares\n"
-" List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1189
-msgid "Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1190
-msgid ""
-"net conf drop\n"
-" Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1197
-msgid "Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1198
-msgid ""
-"net conf showshare\n"
-" Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1205
-#, fuzzy
-msgid "Create a new share."
-msgstr "Создать ресурс"
-
-#: ../utils/net_conf.c:1206
-msgid ""
-"net conf addshare\n"
-" Create a new share."
-msgstr ""
-
-#: ../utils/net_conf.c:1213
-#, fuzzy
-msgid "Delete a share."
-msgstr "Удалить ресурс"
-
-#: ../utils/net_conf.c:1214
-msgid ""
-"net conf delshare\n"
-" Delete a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1221
-#, fuzzy
-msgid "Store a parameter."
-msgstr "Параметры общих ресурсов"
-
-#: ../utils/net_conf.c:1222
-msgid ""
-"net conf setparm\n"
-" Store a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1229
-msgid "Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1230
-msgid ""
-"net conf getparm\n"
-" Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1237
-#, fuzzy
-msgid "Delete a parameter."
-msgstr "Удалить принтер"
-
-#: ../utils/net_conf.c:1238
-msgid ""
-"net conf delparm\n"
-" Delete a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1245
-msgid "Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1246
-msgid ""
-"net conf getincludes\n"
-" Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1253
-msgid "Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1254
-msgid ""
-"net conf setincludes\n"
-" Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1261
-msgid "Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1262
-msgid ""
-"net conf setincludes\n"
-" Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_dom.c:25
-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
-msgid ""
-"usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine\n"
-msgstr ""
-
-#: ../utils/net_dom.c:31
-msgid ""
-"usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer\n"
-msgstr ""
-
-#: ../utils/net_dom.c:91
-#, c-format
-msgid "Failed to unjoin domain: %s\n"
-msgstr ""
-
-#: ../utils/net_dom.c:97 ../utils/net_dom.c:204
-msgid "Shutting down due to a domain membership change"
-msgstr ""
-
-#: ../utils/net_dom.c:290
-#, c-format
-msgid "Failed to rename machine: "
-msgstr ""
-
-#: ../utils/net_dom.c:292
-#, c-format
-msgid "Computer is not joined to a Domain\n"
-msgstr ""
-
-#: ../utils/net_dom.c:301
-msgid "Shutting down due to a computer rename"
-msgstr ""
-
-#: ../utils/net_dom.c:338
-#, fuzzy
-msgid "Join a remote machine"
-msgstr "Удалённая машина"
-
-#: ../utils/net_dom.c:339
-msgid ""
-"net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Join a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:347
-#, fuzzy
-msgid "Unjoin a remote machine"
-msgstr "Удалённая машина"
-
-#: ../utils/net_dom.c:348
-msgid ""
-"net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:356
-msgid "Rename a computer that is joined to a domain"
-msgstr ""
-
-#: ../utils/net_dom.c:357
-msgid ""
-"net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer"
-msgstr ""
-
-#: ../utils/net_eventlog.c:46
-msgid "usage: net eventlog dump <file.evt>\n"
-msgstr ""
-
-#: ../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
-#, fuzzy, c-format
-msgid "evt pull failed: %s\n"
-msgstr "Пароли"
-
-#: ../utils/net_eventlog.c:102
-msgid "usage: net eventlog import <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:116
-#, fuzzy, c-format
-msgid "evt header pull failed: %s\n"
-msgstr "Пароли"
-
-#: ../utils/net_eventlog.c:122
-msgid "input file is wrapped, cannot proceed\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:138 ../utils/net_eventlog.c:203
-#, c-format
-msgid "can't open the eventlog TDB (%s)\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:158
-#, c-format
-msgid "can't write to the eventlog: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:164
-#, c-format
-msgid "wrote %d entries to tdb\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:197
-msgid "usage: net eventlog export <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:214
-#, c-format
-msgid "failed to save evt file: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:243
-msgid "Dump eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:244
-msgid ""
-"net eventlog dump\n"
-" Dump win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:251
-#, fuzzy
-msgid "Import eventlog"
-msgstr "Важное замечание:"
-
-#: ../utils/net_eventlog.c:252
-msgid ""
-"net eventlog import\n"
-" Import win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:259
-msgid "Export eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:260
-msgid ""
-"net eventlog export\n"
-" Export win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_file.c:27
-msgid ""
-"net [<method>] file [misc. options] [targets]\n"
-"\tlists all open files on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:29
-msgid ""
-"net [<method>] file USER <username> [misc. options] [targets]\n"
-"\tlists all files opened by username on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:32
-msgid ""
-"net [<method>] file CLOSE <id> [misc. options] [targets]\n"
-"\tcloses specified file on target server\n"
-msgstr ""
-
-#: ../utils/net_file.c:34
-msgid ""
-"net [rap] file INFO <id> [misc. options] [targets]\n"
-"\tdisplays information about the specified open file\n"
-msgstr ""
-
-#: ../utils/net_group.c:27
-msgid ""
-"net [<method>] group [misc. options] [targets]\n"
-"\tList user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:29
-msgid ""
-"net rpc group LIST [global|local|builtin]* [misc. options]\n"
-"\tList specific user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:31
-msgid ""
-"net [<method>] group DELETE <name> [misc. options] [targets]\n"
-"\tDelete specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:34
-msgid ""
-"\n"
-"net [<method>] group ADD <name> [-C comment] [-c container] [misc. options] [targets]\n"
-"\tCreate specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:37
-msgid ""
-"\n"
-"net rpc group MEMBERS <name>\n"
-"\tList Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:38
-msgid ""
-"\n"
-"net rpc group ADDMEM <group> <member>\n"
-"\tAdd Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:40
-msgid ""
-"\n"
-"net rpc group DELMEM <group> <member>\n"
-"\tDelete Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:44
-msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:46
-msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:48
-msgid "\t-L or --localgroup\t\tWhen adding groups, create a local group (alias)\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:38
-#, c-format
-msgid "NT Group %s doesn't exist in mapping DB\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:46
-#, c-format
-msgid "converting sid %s from a string failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:65
-#, c-format
-msgid "\tSID : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:66
-#, c-format
-msgid "\tUnix gid : %u\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:67
-#, c-format
-msgid "\tUnix group: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:68
-#, c-format
-msgid "\tGroup type: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:70
-#, c-format
-msgid "\tComment : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:84
-msgid ""
-"net groupmap list [verbose] [ntgroup=NT group] [sid=SID]\n"
-" verbose\tPrint verbose list\n"
-" ntgroup\tNT group to list\n"
-" 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
-#, fuzzy, 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
-msgid "must supply a name\n"
-msgstr ""
-
-#: ../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
-#, fuzzy, c-format
-msgid "Bad option: %s\n"
-msgstr "Основные параметры"
-
-#: ../utils/net_groupmap.c:139
-msgid "Failure to local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:181
-msgid "net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:195
-#, fuzzy, c-format
-msgid ""
-"Usage\n"
-"%s\n"
-msgstr "Имя пользователя"
-
-#: ../utils/net_groupmap.c:205
-#, c-format
-msgid "RID must be greater than %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:235 ../utils/net_groupmap.c:380
-msgid "must supply a comment string\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:259
-#, c-format
-msgid "unknown group type %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:276
-#, c-format
-msgid "Can't lookup UNIX group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:282
-#, c-format
-msgid "Unix group %s already mapped to SID %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:289
-msgid "No rid or sid specified, choosing a RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:292
-msgid "Could not get new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:297
-#, c-format
-msgid "Got RID %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:328
-#, c-format
-msgid "adding entry for group %s failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:332
-#, c-format
-msgid "Successfully added group %s to the mapping db as a %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:349
-msgid "net groupmap modify {ntgroup=<string>|sid=<SID>} [comment=<string>] [unixgroup=<string>] [type=<domain|local>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:388
-msgid "must supply a group name\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:434
-msgid "Failed to find local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:443
-msgid "Can't map to an unknown group type.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:449
-msgid "You can only change between domain and local groups.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:466
-#, c-format
-msgid "Unable to lookup UNIX group %s. Make sure the group exists.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:476
-msgid "Could not update group database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:480
-#, c-format
-msgid "Updated mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:491
-msgid "net groupmap delete {ntgroup=<string>|sid=<SID>}"
-msgstr ""
-
-#: ../utils/net_groupmap.c:532
-#, c-format
-msgid "Unable to resolve group %s to a SID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:539
-#, c-format
-msgid "Failed to remove group %s from the mapping db!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:544
-#, c-format
-msgid "Sucessfully removed %s from the mapping db\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:557
-msgid "Usage: net groupmap set \"NT Group\" [\"unix group\"] [-C \"comment\"] [-L] [-D]\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:563
-msgid "Can only specify -L or -D, not both\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:573
-#, c-format
-msgid "Could not find unix group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:594
-#, c-format
-msgid "Could not find group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:605
-msgid "Could not allocate new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:622
-#, c-format
-msgid "Could not add mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:633
-#, c-format
-msgid "Can't change type of the BUILTIN group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:660
-#, c-format
-msgid "Could not update group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:674
-msgid ""
-"Usage:\n"
-"net groupmap cleanup\n"
-" Delete all group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:682
-msgid "Could not list group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:689
-#, c-format
-msgid "Group %s is not mapped\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:692
-#, c-format
-msgid "Deleting mapping for NT Group %s, sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:712
-msgid "Usage: net groupmap addmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:717
-#, c-format
-msgid "Could not add sid %s to alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:733
-msgid "Usage: net groupmap delmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:738
-#, c-format
-msgid "Could not delete sid %s from alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:755
-msgid "Usage: net groupmap listmem alias-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:764
-#, c-format
-msgid "Could not list members for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:791
-#, c-format
-msgid "Could not list memberships for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:814
-msgid "Usage: net groupmap memberof sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:820 ../utils/net_idmap.c:345
-msgid "talloc_init failed\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:827
-msgid "Could not get domain sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:850
-msgid "Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:851
-msgid ""
-"net groupmap add\n"
-" Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:858
-msgid "Update a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:859
-msgid ""
-"net groupmap modify\n"
-" Modify an existing group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:866
-msgid "Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:867
-msgid ""
-"net groupmap delete\n"
-" Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:874
-msgid "Set group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:875
-msgid ""
-"net groupmap set\n"
-" Set a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:882
-msgid "Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:883
-msgid ""
-"net groupmap cleanup\n"
-" Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:890
-msgid "Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:891
-msgid ""
-"net groupmap addmem\n"
-" Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:898
-msgid "Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:899
-msgid ""
-"net groupmap delmem\n"
-" Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:906
-msgid "List foreign group members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:907
-msgid ""
-"net groupmap listmem\n"
-" List foreign alias members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:914
-msgid "List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:915
-msgid ""
-"net groupmap memberships\n"
-" List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:922
-msgid "List current group map"
-msgstr ""
-
-#: ../utils/net_groupmap.c:923
-msgid ""
-"net groupmap list\n"
-" List current group map"
-msgstr ""
-
-#: ../utils/net_help.c:39
-#, c-format
-msgid "net %s usage:\n"
-msgstr ""
-
-#: ../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
-msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:27 ../utils/net_join.c:30
-msgid "\trpc\t\t\t\tDCE-RPC\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:28
-msgid "\trap\t\t\t\tRAP (older systems)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:35
-msgid "Valid targets: choose one (none defaults to localhost)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:36
-msgid "\t-S or --server=<server>\t\tserver name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:37
-msgid "\t-I or --ipaddress=<ipaddr>\taddress of target server\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:38
-msgid "\t-w or --workgroup=<wg>\t\ttarget workgroup or domain\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:41
-#, fuzzy
-msgid "Valid miscellaneous options are:\n"
-msgstr "Различные параметры"
-
-#. misc options
-#: ../utils/net_help_common.c:42
-msgid "\t-p or --port=<port>\t\tconnection port on target\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:43
-msgid "\t-W or --myworkgroup=<wg>\tclient workgroup\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:44
-msgid "\t-d or --debuglevel=<level>\tdebug level (0-10)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:45
-msgid "\t-n or --myname=<name>\t\tclient name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:46
-msgid "\t-U or --user=<name>\t\tuser name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:47
-msgid "\t-s or --configfile=<path>\tpathname of smb.conf file\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:48
-msgid "\t-l or --long\t\t\tDisplay full information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:49
-msgid "\t-V or --version\t\t\tPrint samba version information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:50
-msgid "\t-P or --machine-pass\t\tAuthenticate as machine account\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:52
-msgid "\t-e or --encrypt\t\t\tEncrypt SMB transport (UNIX extended servers only)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:54
-msgid "\t-k or --kerberos\t\tUse kerberos (active directory) authentication\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:25
-msgid "Out of memory!\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:39
-#, c-format
-msgid "USER HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:44
-#, c-format
-msgid "GROUP HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:63
-msgid ""
-"Usage:\n"
-"net idmap dump <inputfile>\n"
-" Dump current ID mapping.\n"
-" inputfile\tTDB file to read mappings from.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:73
-#, c-format
-msgid "Could not open idmap: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:94
-msgid ""
-"Usage:\n"
-"net idmap restore [inputfile]\n"
-" Restore ID mappings from file\n"
-" inputfile\tFile to load ID mappings from. If not given, load data from stdin.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:104
-msgid "To use net idmap Winbindd must be running.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:142
-#, c-format
-msgid "Could not set USER HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:151
-#, c-format
-msgid "Could not set GROUP HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:156
-#, c-format
-msgid "ignoring invalid line [%s]\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:163
-#, c-format
-msgid "ignoring invalid sid [%s]: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:175
-#, c-format
-msgid "Could not set mapping of %s %lu to sid %s: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:196 ../utils/net_idmap.c:202
-msgid "Not Implemented yet\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:240
-msgid ""
-"Usage:\n"
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set the secret for the specified domain (or alloc module)\n"
-" DOMAIN\tDomain to set secret for.\n"
-" alloc\tSet secret for the alloc module\n"
-" secret\tNew secret to set.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:271
-msgid "The only currently supported backend is LDAP\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:281
-#, c-format
-msgid "Missing ldap_user_dn option for domain %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:292
-msgid "Missing ldap_user_dn option for alloc backend\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:302
-msgid "Failed to store secret\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:307
-msgid "Secret stored\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:313
-msgid ""
-"net idmap dump <inputfile>\n"
-" Dump current id mapping\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:316
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin\n"
-msgstr ""
-
-#. Deliberately *not* document net idmap delete
-#: ../utils/net_idmap.c:321
-msgid ""
-"net idmap secret <DOMAIN>|alloc <secret>\n"
-" Set the secret for the specified DOMAIN (or the alloc module)\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:339
-msgid "usage: net idmap aclmapset <tdb> <src-sid> <dst-sid>\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:351
-#, fuzzy, c-format
-msgid "db_open failed: %s\n"
-msgstr "Пароли"
-
-#: ../utils/net_idmap.c:356 ../utils/net_idmap.c:361
-#, c-format
-msgid "%s is not a valid sid\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:367
-msgid "talloc_strdup failed\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:373
-msgid "could not fetch db record\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:381
-#, c-format
-msgid "could not store record: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:402
-msgid "Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:403
-msgid ""
-"net idmap dump\n"
-" Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:410
-msgid "Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:411
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:418 ../utils/net_idmap.c:426
-msgid "Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:419
-msgid ""
-"net idmap setmap\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:427
-msgid ""
-"net idmap delete\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:434
-msgid "Set secret for specified domain"
-msgstr ""
-
-#: ../utils/net_idmap.c:435
-msgid ""
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set secret for specified domain or alloc module"
-msgstr ""
-
-#: ../utils/net_idmap.c:442
-msgid "Set acl map"
-msgstr ""
-
-#: ../utils/net_idmap.c:443
-msgid ""
-"net idmap aclmapset\n"
-" Set acl map"
-msgstr ""
-
-#: ../utils/net_join.c:26
-msgid ""
-"\n"
-"net [<method>] join [misc. options]\n"
-"\tjoins this server to a domain\n"
-msgstr ""
-
-#: ../utils/net_join.c:47
-msgid "ADS join did not work, falling back to RPC...\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:25
-msgid ""
-" net lookup [host] HOSTNAME[#<type>]\n"
-"\tgives IP for a hostname\n"
-"\n"
-" net lookup ldap [domain]\n"
-"\tgives IP of domain's ldap server\n"
-"\n"
-" net lookup kdc [realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup pdc [domain|realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup dc [domain]\n"
-"\tgives IP of domains Domain Controllers\n"
-"\n"
-" net lookup master [domain|wg]\n"
-"\tgive IP of master browser\n"
-"\n"
-" net lookup name [name]\n"
-"\tLookup name's sid and type\n"
-"\n"
-" net lookup sid [sid]\n"
-"\tGive sid's name and type\n"
-"\n"
-" net lookup dsgetdcname [name] [flags] [sitename]\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:112
-msgid "net_lookup_ldap: talloc_init() failed!\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:325
-msgid "usage: net lookup name <name>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:331 ../utils/net_lookup.c:358
-#, c-format
-msgid "Could not lookup name %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:347
-msgid "usage: net lookup sid <sid>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:352
-#, c-format
-msgid "Could not convert %s to SID\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:378
-msgid "usage: net lookup dsgetdcname <name> <flags> <sitename>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:404
-#, c-format
-msgid "failed with: %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:437
-msgid ""
-"\n"
-"Usage: \n"
-msgstr ""
-
-#: ../utils/net_lua.c:60
-msgid "connect: Expected IP-Address"
-msgstr ""
-
-#: ../utils/net_lua.c:65
-msgid "connect: Expected port"
-msgstr ""
-
-#: ../utils/net_lua.c:84
-#, fuzzy, c-format
-msgid "connect failed: %s"
-msgstr "Пароли"
-
-#: ../utils/net_lua.c:132
-#, c-format
-msgid "socket domain %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:144
-#, c-format
-msgid "socket type %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:155
-#, fuzzy, c-format
-msgid "socket() failed: %s"
-msgstr "Пароли"
-
-#: ../utils/net_lua.c:278
-msgid "evt_reference_thread failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:287
-msgid "event_add_timed failed"
-msgstr ""
-
-#: ../utils/net_lua.c:300
-msgid "event_once called from non-base thread"
-msgstr ""
-
-#: ../utils/net_lua.c:323
-msgid "event_context_init failed"
-msgstr ""
-
-#: ../utils/net_lua.c:353
-msgid "lua_newstate failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:371
-msgid "luaL_dofile returned an error\n"
-msgstr ""
-
-#: ../utils/net_lua.c:376
-msgid "luaL_dostring returned an error\n"
-msgstr ""
diff --git a/source3/po/tr.msg b/source3/po/tr.msg
index 44a3e00045..03b489d033 100644
--- a/source3/po/tr.msg
+++ b/source3/po/tr.msg
@@ -17,8 +17,7 @@
msgid ""
msgstr ""
"Project-Id-Version: i18n_swat \n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-07-30 12:18+0200\n"
+"POT-Creation-Date: 2003-10-06 05:30+0900\n"
"PO-Revision-Date: 2001-09-20 22:51EEST\n"
"Last-Translator: Deniz Akkus Kanca <deniz@arayan.com>\n"
"Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -27,4014 +26,568 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: KBabel 0.9.1\n"
-#: ../web/swat.c:153
+#: ../web/swat.c:117
#, c-format
msgid "ERROR: Can't open %s"
msgstr ""
-#: ../web/swat.c:241
+#: ../web/swat.c:200
msgid "Help"
msgstr "Yardım"
-#: ../web/swat.c:247 ../web/swat.c:272 ../web/swat.c:293 ../web/swat.c:302 ../web/swat.c:311 ../web/swat.c:317 ../web/swat.c:329 ../web/swat.c:343
+#: ../web/swat.c:206 ../web/swat.c:220 ../web/swat.c:235 ../web/swat.c:243 ../web/swat.c:252 ../web/swat.c:261 ../web/swat.c:267 ../web/swat.c:273 ../web/swat.c:286
msgid "Set Default"
msgstr "Öntanımlıya Ayarla"
-#: ../web/swat.c:465
+#: ../web/swat.c:408
#, c-format
msgid "failed to open %s for writing"
msgstr ""
-#: ../web/swat.c:488
+#: ../web/swat.c:431
#, c-format
msgid "Can't reload %s"
msgstr ""
-#: ../web/swat.c:561
+#: ../web/swat.c:501
#, c-format
msgid "Logged in as <b>%s</b>"
msgstr "<b>%s</b> kimliği ile oturum açılmış"
-#: ../web/swat.c:565
+#: ../web/swat.c:505
msgid "Home"
msgstr "Ev"
-#: ../web/swat.c:567
+#: ../web/swat.c:507
msgid "Globals"
msgstr "Evrenseller"
-#: ../web/swat.c:568
+#: ../web/swat.c:508
msgid "Shares"
msgstr "Paylaşımlar"
-#: ../web/swat.c:569
+#: ../web/swat.c:509
msgid "Printers"
msgstr "Yazıcılar"
-#: ../web/swat.c:570
+#: ../web/swat.c:510
msgid "Wizard"
msgstr ""
-#: ../web/swat.c:574
+#: ../web/swat.c:513
msgid "Status"
msgstr "Durum"
-#: ../web/swat.c:575
+#: ../web/swat.c:514
msgid "View Config"
msgstr "Ayarlara Gözat"
-#: ../web/swat.c:577
+#: ../web/swat.c:516
msgid "Password Management"
msgstr "Şifre Yönetimi"
-#: ../web/swat.c:587
+#: ../web/swat.c:526
msgid "Current View Is"
msgstr "Şimdiki Ayarlar"
-#: ../web/swat.c:588 ../web/swat.c:591
+#: ../web/swat.c:527 ../web/swat.c:530
msgid "Basic"
msgstr "Temel Görünüm"
-#: ../web/swat.c:589 ../web/swat.c:592
+#: ../web/swat.c:528 ../web/swat.c:531
msgid "Advanced"
msgstr "Gelişmiş Görünüm"
-#: ../web/swat.c:590
+#: ../web/swat.c:529
msgid "Change View To"
msgstr "Şifre Değiştir"
-#: ../web/swat.c:619
+#: ../web/swat.c:554
msgid "Current Config"
msgstr "Şimdiki Ayarlar"
-#: ../web/swat.c:623
+#: ../web/swat.c:558
msgid "Normal View"
msgstr "Normal Görünüm"
-#: ../web/swat.c:625
+#: ../web/swat.c:560
msgid "Full View"
msgstr "Tam Görünüm"
#. Here we first set and commit all the parameters that were selected
#. in the previous screen.
-#: ../web/swat.c:644
+#: ../web/swat.c:579
msgid "Wizard Parameter Edit Page"
msgstr ""
-#: ../web/swat.c:673
+#: ../web/swat.c:608
msgid "Note: smb.conf file has been read and rewritten"
msgstr ""
#. Here we go ...
-#: ../web/swat.c:779
+#: ../web/swat.c:716
msgid "Samba Configuration Wizard"
msgstr ""
-#: ../web/swat.c:783
+#: ../web/swat.c:720
msgid "The \"Rewrite smb.conf file\" button will clear the smb.conf file of all default values and of comments."
msgstr ""
-#: ../web/swat.c:784
+#: ../web/swat.c:721
msgid "The same will happen if you press the commit button."
msgstr ""
-#: ../web/swat.c:787
+#: ../web/swat.c:724
msgid "Rewrite smb.conf file"
msgstr ""
-#: ../web/swat.c:788
+#: ../web/swat.c:725
msgid "Commit"
msgstr "açıklama"
-#: ../web/swat.c:789
+#: ../web/swat.c:726
msgid "Edit Parameter Values"
msgstr "Yazıcı Bilgileri"
-#: ../web/swat.c:795
+#: ../web/swat.c:732
msgid "Server Type"
msgstr ""
-#: ../web/swat.c:796
+#: ../web/swat.c:733
msgid "Stand Alone"
msgstr "Nmbd'yi çalıştır"
-#: ../web/swat.c:797
+#: ../web/swat.c:734
msgid "Domain Member"
msgstr "alan sunucusu"
-#: ../web/swat.c:798
+#: ../web/swat.c:735
msgid "Domain Controller"
msgstr "alan sunucusu"
-#: ../web/swat.c:801
+#: ../web/swat.c:738
msgid "Unusual Type in smb.conf - Please Select New Mode"
msgstr ""
-#: ../web/swat.c:803
+#: ../web/swat.c:740
msgid "Configure WINS As"
msgstr ""
-#: ../web/swat.c:804
+#: ../web/swat.c:741
msgid "Not Used"
msgstr "dont descend"
-#: ../web/swat.c:805
+#: ../web/swat.c:742
msgid "Server for client use"
msgstr ""
-#: ../web/swat.c:806
+#: ../web/swat.c:743
msgid "Client of another WINS server"
msgstr ""
-#: ../web/swat.c:808
+#: ../web/swat.c:745
msgid "Remote WINS Server"
msgstr ""
-#: ../web/swat.c:819
+#: ../web/swat.c:756
msgid "Error: WINS Server Mode and WINS Support both set in smb.conf"
msgstr ""
-#: ../web/swat.c:820
+#: ../web/swat.c:757
msgid "Please Select desired WINS mode above."
msgstr ""
-#: ../web/swat.c:822
+#: ../web/swat.c:759
msgid "Expose Home Directories"
msgstr ""
-#: ../web/swat.c:837
+#: ../web/swat.c:774
msgid "The above configuration options will set multiple parameters and will generally assist with rapid Samba deployment."
msgstr ""
-#: ../web/swat.c:850
+#: ../web/swat.c:787
msgid "Global Parameters"
msgstr "Genel Değişkenler"
-#: ../web/swat.c:878 ../web/swat.c:986 ../web/swat.c:1344
+#: ../web/swat.c:815 ../web/swat.c:916 ../web/swat.c:1265
msgid "Commit Changes"
msgstr "Değişiklikleri Kaydet"
-#: ../web/swat.c:882 ../web/swat.c:989 ../web/swat.c:1346
+#: ../web/swat.c:819 ../web/swat.c:919 ../web/swat.c:1267
msgid "Reset Values"
msgstr "Değerleri İlk Haline Getir"
-#: ../web/swat.c:908
+#: ../web/swat.c:844
msgid "Share Parameters"
msgstr "Paylaşım Parametreleri"
-#: ../web/swat.c:955
+#: ../web/swat.c:887
msgid "Choose Share"
msgstr "Paylaşım Seçin"
-#: ../web/swat.c:971
+#: ../web/swat.c:901
msgid "Delete Share"
msgstr "Paylaşım Kaldır"
-#: ../web/swat.c:978
+#: ../web/swat.c:908
msgid "Create Share"
msgstr "Paylaşım Oluştur"
-#: ../web/swat.c:1014
+#: ../web/swat.c:944
msgid "password change in demo mode rejected"
msgstr "demo kipinde şifre değişikliği kabul edilmedi\n"
-#: ../web/swat.c:1028
+#: ../web/swat.c:957
msgid "Can't setup password database vectors."
msgstr ""
-#: ../web/swat.c:1056
+#: ../web/swat.c:983
msgid " Must specify \"User Name\" "
msgstr " \"Kullanıcı Adı\" belirtilmeli \n"
-#: ../web/swat.c:1072
+#: ../web/swat.c:999
msgid " Must specify \"Old Password\" "
msgstr " \"Eski Şifre\" belirtilmeli \n"
-#: ../web/swat.c:1078
+#: ../web/swat.c:1005
msgid " Must specify \"Remote Machine\" "
msgstr " \"Uzak Makina\" belirtilmeli \n"
-#: ../web/swat.c:1085
+#: ../web/swat.c:1012
msgid " Must specify \"New, and Re-typed Passwords\" "
msgstr " \"Yeni ve Tekrar Girilmiş Şifreler\" belirtilmeli \n"
-#: ../web/swat.c:1091
+#: ../web/swat.c:1018
msgid " Re-typed password didn't match new password "
msgstr " Tekrar girilen şifre yeni şifre ile eşleşmedi\n"
-#: ../web/swat.c:1124
+#: ../web/swat.c:1048
#, c-format
msgid " The passwd for '%s' has been changed."
msgstr " '%s' için şifre değiştirildi."
-#: ../web/swat.c:1127
+#: ../web/swat.c:1051
#, c-format
msgid " The passwd for '%s' has NOT been changed."
msgstr " '%s' için şifre DEĞİŞTİRİLMEDİ."
-#: ../web/swat.c:1152
+#: ../web/swat.c:1076
msgid "Server Password Management"
msgstr "Sunucu Şifre Yönetimi"
#.
#. * Create all the dialog boxes for data collection
#.
-#: ../web/swat.c:1161 ../web/swat.c:1208
+#: ../web/swat.c:1085 ../web/swat.c:1132
msgid "User Name"
msgstr " Kullanıcı Adı"
-#: ../web/swat.c:1164 ../web/swat.c:1210
+#: ../web/swat.c:1088 ../web/swat.c:1134
msgid "Old Password"
msgstr " Eski Şifre"
-#: ../web/swat.c:1167 ../web/swat.c:1212
+#: ../web/swat.c:1091 ../web/swat.c:1136
msgid "New Password"
msgstr " Yeni Şifre"
-#: ../web/swat.c:1169 ../web/swat.c:1214
+#: ../web/swat.c:1093 ../web/swat.c:1138
msgid "Re-type New Password"
msgstr " Yeni Şifre Tekrarı"
-#: ../web/swat.c:1177 ../web/swat.c:1225
+#: ../web/swat.c:1101 ../web/swat.c:1149
msgid "Change Password"
msgstr "Şifre Değiştir"
-#: ../web/swat.c:1180
+#: ../web/swat.c:1104
msgid "Add New User"
msgstr "Kull. Ekle"
-#: ../web/swat.c:1182
+#: ../web/swat.c:1106
msgid "Delete User"
msgstr "Kull. Sil"
-#: ../web/swat.c:1184
+#: ../web/swat.c:1108
msgid "Disable User"
msgstr "Kull. Etkisizleştir"
-#: ../web/swat.c:1186
+#: ../web/swat.c:1110
msgid "Enable User"
msgstr "Kull. Etkinleştir"
-#: ../web/swat.c:1199
+#: ../web/swat.c:1123
msgid "Client/Server Password Management"
msgstr "İstemci/Sunucu Şifre Yönetimi"
-#: ../web/swat.c:1216
+#: ../web/swat.c:1140
msgid "Remote Machine"
msgstr " Uzak Makina"
-#: ../web/swat.c:1255
+#: ../web/swat.c:1179
msgid "Printer Parameters"
msgstr "Yazıcı Bilgileri"
-#: ../web/swat.c:1257
+#: ../web/swat.c:1181
msgid "Important Note:"
msgstr "Önemli Not:"
-#: ../web/swat.c:1258
+#: ../web/swat.c:1182
msgid "Printer names marked with [*] in the Choose Printer drop-down box "
msgstr "Yazıcı Seç kutusunda [*] ile işaretlenmiş yazıcı isimleri "
-#: ../web/swat.c:1259
+#: ../web/swat.c:1183
msgid "are autoloaded printers from "
msgstr "otomatik yüklenen yazıcılar "
-#: ../web/swat.c:1260
+#: ../web/swat.c:1184
msgid "Printcap Name"
msgstr "Printcap Adı"
-#: ../web/swat.c:1261
+#: ../web/swat.c:1185
msgid "Attempting to delete these printers from SWAT will have no effect."
msgstr "Bu yazıcıları SWAT'dan silmek etkisiz olacaktır.\n"
-#: ../web/swat.c:1310
+#: ../web/swat.c:1231
msgid "Choose Printer"
msgstr "Yazıcı Seç"
-#: ../web/swat.c:1329
+#: ../web/swat.c:1250
msgid "Delete Printer"
msgstr "Yazıcı Sil"
-#: ../web/swat.c:1336
+#: ../web/swat.c:1257
msgid "Create Printer"
msgstr "Yazıcı Oluştur"
-#: ../web/statuspage.c:151
-msgid "RDWR "
-msgstr "O/Y "
+#: ../web/statuspage.c:123
+msgid "RDONLY "
+msgstr "SALTOKUNUR "
-#: ../web/statuspage.c:153
+#: ../web/statuspage.c:124
msgid "WRONLY "
msgstr "SALTYAZILIR "
-#: ../web/statuspage.c:155
-msgid "RDONLY "
-msgstr "SALTOKUNUR "
+#: ../web/statuspage.c:125
+msgid "RDWR "
+msgstr "O/Y "
-#: ../web/statuspage.c:329
+#: ../web/statuspage.c:309
msgid "Server Status"
msgstr "Sunucu Durumu"
-#: ../web/statuspage.c:334
+#: ../web/statuspage.c:314
msgid "Auto Refresh"
msgstr "Oto Tazele"
-#: ../web/statuspage.c:335 ../web/statuspage.c:340
+#: ../web/statuspage.c:315 ../web/statuspage.c:320
msgid "Refresh Interval: "
msgstr "Tazeleme Aralığı: "
-#: ../web/statuspage.c:339
+#: ../web/statuspage.c:319
msgid "Stop Refreshing"
msgstr "Tazelemeyi Durdur"
-#: ../web/statuspage.c:348
+#: ../web/statuspage.c:334
msgid "version:"
msgstr "sürüm:"
-#: ../web/statuspage.c:351
+#: ../web/statuspage.c:337
msgid "smbd:"
msgstr "smbd:"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "running"
msgstr "çalışıyor"
-#: ../web/statuspage.c:351 ../web/statuspage.c:364 ../web/statuspage.c:378
+#: ../web/statuspage.c:337 ../web/statuspage.c:350 ../web/statuspage.c:364
msgid "not running"
msgstr "çalışmıyor"
-#: ../web/statuspage.c:355
+#: ../web/statuspage.c:341
msgid "Stop smbd"
msgstr "Smbd'yi durdur"
-#: ../web/statuspage.c:357
+#: ../web/statuspage.c:343
msgid "Start smbd"
msgstr "Smbd'yi çalıştır"
-#: ../web/statuspage.c:359
+#: ../web/statuspage.c:345
msgid "Restart smbd"
msgstr "Smbd'yi yeniden çalıştır"
-#: ../web/statuspage.c:364
+#: ../web/statuspage.c:350
msgid "nmbd:"
msgstr "nmbd:"
-#: ../web/statuspage.c:368
+#: ../web/statuspage.c:354
msgid "Stop nmbd"
msgstr "Nmbd'yi durdur"
-#: ../web/statuspage.c:370
+#: ../web/statuspage.c:356
msgid "Start nmbd"
msgstr "Nmbd'yi çalıştır"
-#: ../web/statuspage.c:372
+#: ../web/statuspage.c:358
msgid "Restart nmbd"
msgstr "Nmbd'yi yeniden çalıştır"
-#: ../web/statuspage.c:378
+#: ../web/statuspage.c:364
msgid "winbindd:"
msgstr "winbind uid"
-#: ../web/statuspage.c:382
+#: ../web/statuspage.c:368
msgid "Stop winbindd"
msgstr "Nmbd'yi durdur"
-#: ../web/statuspage.c:384
+#: ../web/statuspage.c:370
msgid "Start winbindd"
msgstr "Nmbd'yi çalıştır"
-#: ../web/statuspage.c:386
+#: ../web/statuspage.c:372
msgid "Restart winbindd"
msgstr "Nmbd'yi yeniden çalıştır"
#. stop, restart all
-#: ../web/statuspage.c:395
+#: ../web/statuspage.c:381
msgid "Stop All"
msgstr ""
-#: ../web/statuspage.c:396
+#: ../web/statuspage.c:382
msgid "Restart All"
msgstr "Nmbd'yi yeniden çalıştır"
#. start all
-#: ../web/statuspage.c:400
+#: ../web/statuspage.c:386
msgid "Start All"
msgstr "Nmbd'yi çalıştır"
-#: ../web/statuspage.c:407
+#: ../web/statuspage.c:393
msgid "Active Connections"
msgstr "Aktif Bağlantılar"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "PID"
msgstr "PID"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422
+#: ../web/statuspage.c:395 ../web/statuspage.c:408
msgid "Client"
msgstr "İstemci"
-#: ../web/statuspage.c:409
+#: ../web/statuspage.c:395
msgid "IP address"
msgstr "IP numarası"
-#: ../web/statuspage.c:409 ../web/statuspage.c:422 ../web/statuspage.c:431
+#: ../web/statuspage.c:395 ../web/statuspage.c:408 ../web/statuspage.c:416
msgid "Date"
msgstr "Tarih"
-#: ../web/statuspage.c:411
+#: ../web/statuspage.c:397
msgid "Kill"
msgstr "Kapat"
-#: ../web/statuspage.c:419
+#: ../web/statuspage.c:405
msgid "Active Shares"
msgstr "Aktif Paylaşımlar"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Share"
msgstr "Paylaşım"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "User"
msgstr "Kullanıcı"
-#: ../web/statuspage.c:422
+#: ../web/statuspage.c:408
msgid "Group"
msgstr "Grup"
-#: ../web/statuspage.c:428
+#: ../web/statuspage.c:414
msgid "Open Files"
msgstr "Açık Dosyalar"
-#: ../web/statuspage.c:431
-#, fuzzy
-msgid "UID"
-msgstr "PID"
-
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Sharing"
msgstr "Paylaşılıyor"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "R/W"
msgstr "O/Y"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "Oplock"
msgstr "Oplock"
-#: ../web/statuspage.c:431
+#: ../web/statuspage.c:416
msgid "File"
msgstr "Dosya"
-#: ../web/statuspage.c:438
+#: ../web/statuspage.c:425
msgid "Show Client in col 1"
msgstr ""
-#: ../web/statuspage.c:439
+#: ../web/statuspage.c:426
msgid "Show PID in col 1"
msgstr ""
-#: ../param/loadparm.c:907
+#: ../param/loadparm.c:755
msgid "Base Options"
msgstr "Temel Seçenekler"
-#: ../param/loadparm.c:1047
+#: ../param/loadparm.c:775
msgid "Security Options"
msgstr "Güvenlik Seçenekleri"
-#: ../param/loadparm.c:1800
+#: ../param/loadparm.c:859
msgid "Logging Options"
msgstr "Günlük Kaydı Seçenekleri"
-#: ../param/loadparm.c:1929
+#: ../param/loadparm.c:874
msgid "Protocol Options"
msgstr "Protokol Seçenekleri"
-#: ../param/loadparm.c:2301
+#: ../param/loadparm.c:911
msgid "Tuning Options"
msgstr "Ayar Seçenekleri"
-#: ../param/loadparm.c:2538
+#: ../param/loadparm.c:940
msgid "Printing Options"
msgstr "Yazdırma Seçenekleri"
-#: ../param/loadparm.c:2858
+#: ../param/loadparm.c:970
msgid "Filename Handling"
msgstr "Dosyaadı İşlenmesi"
-#: ../param/loadparm.c:3088
+#: ../param/loadparm.c:996
msgid "Domain Options"
msgstr "Alan Seçenekleri"
-#: ../param/loadparm.c:3100
+#: ../param/loadparm.c:1000
msgid "Logon Options"
msgstr "Sistem Giriş Seçenekleri"
-#: ../param/loadparm.c:3273
+#: ../param/loadparm.c:1019
msgid "Browse Options"
msgstr "Gözatma Seçenekleri"
-#: ../param/loadparm.c:3384
+#: ../param/loadparm.c:1033
msgid "WINS Options"
msgstr "WINS Seçenekleri"
-#: ../param/loadparm.c:3432
+#: ../param/loadparm.c:1043
msgid "Locking Options"
msgstr "Kilitleme Seçenekleri"
-#: ../param/loadparm.c:3552
+#: ../param/loadparm.c:1061
msgid "Ldap Options"
msgstr "Ldap Seçenekleri"
-#: ../param/loadparm.c:3708
-#, fuzzy
-msgid "EventLog Options"
-msgstr "Sistem Giriş Seçenekleri"
-
-#: ../param/loadparm.c:3720
+#: ../param/loadparm.c:1078
msgid "Miscellaneous Options"
msgstr "Diğer Seçenekler"
-#: ../param/loadparm.c:4301
+#: ../param/loadparm.c:1138
msgid "VFS module options"
msgstr "VFS Seçenekleri"
-#: ../param/loadparm.c:4323
-#, fuzzy
-msgid "MSDFS options"
-msgstr "VFS Seçenekleri"
-
-#: ../param/loadparm.c:4353
+#: ../param/loadparm.c:1148
msgid "Winbind options"
msgstr "Winbind seçenekleri"
-
-#: ../utils/net.c:103
-msgid "Enter machine password: "
-msgstr ""
-
-#: ../utils/net.c:107
-msgid "Unable to write the machine account password in the secrets database"
-msgstr ""
-
-#: ../utils/net.c:111
-msgid "Modified trust account password in secrets database\n"
-msgstr ""
-
-#: ../utils/net.c:115
-msgid ""
-"Machine account password change requires the -f flag.\n"
-"Do NOT use this function unless you know what it does!\n"
-"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
-#, 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
-#, c-format
-msgid "SID for domain %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:175
-msgid "usage: net setlocalsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:195
-msgid "usage: net setdomainsid S-1-5-21-x-y-z\n"
-msgstr ""
-
-#: ../utils/net.c:213
-msgid "usage: net getdomainsid\n"
-msgstr ""
-
-#: ../utils/net.c:238
-msgid "Could not fetch local SID\n"
-msgstr ""
-
-#: ../utils/net.c:242
-#, c-format
-msgid "SID for local machine %s is: %s\n"
-msgstr ""
-
-#: ../utils/net.c:246
-msgid "Could not fetch domain SID\n"
-msgstr ""
-
-#: ../utils/net.c:263
-#, c-format
-msgid "get_maxrid: Could not search %s\n"
-msgstr ""
-
-#: ../utils/net.c:297
-msgid "usage: net maxrid\n"
-msgstr ""
-
-#: ../utils/net.c:302
-msgid "can't get current maximum rid\n"
-msgstr ""
-
-#: ../utils/net.c:306
-#, c-format
-msgid "Currently used maximum rid: %d\n"
-msgstr ""
-
-#: ../utils/net.c:317
-msgid "Run functions using RPC transport"
-msgstr ""
-
-#: ../utils/net.c:318
-msgid " Use 'net help rpc' to get more extensive information about 'net rpc' commands."
-msgstr ""
-
-#: ../utils/net.c:325
-msgid "Run functions using RAP transport"
-msgstr ""
-
-#: ../utils/net.c:326
-msgid " Use 'net help rap' to get more extensive information about 'net rap' commands."
-msgstr ""
-
-#: ../utils/net.c:333
-msgid "Run functions using ADS transport"
-msgstr ""
-
-#: ../utils/net.c:334
-msgid " Use 'net help ads' to get more extensive information about 'net ads' commands."
-msgstr ""
-
-#: ../utils/net.c:343
-msgid "Functions on remote opened files"
-msgstr ""
-
-#: ../utils/net.c:344
-msgid " Use 'net help file' to get more information about 'net file' commands."
-msgstr ""
-
-#: ../utils/net.c:351
-msgid "Functions on shares"
-msgstr ""
-
-#: ../utils/net.c:352
-msgid " Use 'net help share' to get more information about 'net share' commands."
-msgstr ""
-
-#: ../utils/net.c:359
-msgid "Manage sessions"
-msgstr ""
-
-#: ../utils/net.c:360
-msgid " Use 'net help session' to get more information about 'net session' commands."
-msgstr ""
-
-#: ../utils/net.c:367
-msgid "List servers in workgroup"
-msgstr ""
-
-#: ../utils/net.c:368
-msgid " Use 'net help server' to get more information about 'net server' commands."
-msgstr ""
-
-#: ../utils/net.c:375
-msgid "List domains/workgroups on network"
-msgstr ""
-
-#: ../utils/net.c:376
-msgid " Use 'net help domain' to get more information about 'net domain' commands."
-msgstr ""
-
-#: ../utils/net.c:383
-msgid "Modify printer queue"
-msgstr ""
-
-#: ../utils/net.c:384
-msgid " Use 'net help printq' to get more information about 'net printq' commands."
-msgstr ""
-
-#: ../utils/net.c:391
-#, fuzzy
-msgid "Manage users"
-msgstr "Kull. Etkinleştir"
-
-#: ../utils/net.c:392
-msgid " Use 'net help user' to get more information about 'net user' commands."
-msgstr ""
-
-#: ../utils/net.c:399
-msgid "Manage groups"
-msgstr ""
-
-#: ../utils/net.c:400
-msgid " Use 'net help group' to get more information about 'net group' commands."
-msgstr ""
-
-#: ../utils/net.c:407
-msgid "Manage group mappings"
-msgstr ""
-
-#: ../utils/net.c:408
-msgid " Use 'net help groupmap' to get more information about 'net groupmap' commands."
-msgstr ""
-
-#: ../utils/net.c:415
-msgid "Functions on the SAM database"
-msgstr ""
-
-#: ../utils/net.c:416
-msgid " Use 'net help sam' to get more information about 'net sam' commands."
-msgstr ""
-
-#: ../utils/net.c:423
-msgid "Validate username and password"
-msgstr ""
-
-#: ../utils/net.c:424
-msgid " Use 'net help validate' to get more information about 'net validate' commands."
-msgstr ""
-
-#: ../utils/net.c:431
-msgid "Modify group memberships"
-msgstr ""
-
-#: ../utils/net.c:432
-msgid " Use 'net help groupmember' to get more information about 'net groupmember' commands."
-msgstr ""
-
-#: ../utils/net.c:438
-msgid "Execute remote command on a remote OS/2 server"
-msgstr ""
-
-#: ../utils/net.c:439
-msgid " Use 'net help admin' to get more information about 'net admin' commands."
-msgstr ""
-
-#: ../utils/net.c:445
-msgid "List/modify running services"
-msgstr ""
-
-#: ../utils/net.c:446
-msgid " Use 'net help service' to get more information about 'net service' commands."
-msgstr ""
-
-#: ../utils/net.c:453
-msgid "Change user password on target server"
-msgstr ""
-
-#: ../utils/net.c:454
-msgid " Use 'net help password' to get more information about 'net password' commands."
-msgstr ""
-
-#: ../utils/net.c:460
-#, fuzzy
-msgid "Change the trust password"
-msgstr "Şifre Değiştir"
-
-#: ../utils/net.c:461
-msgid " Use 'net help changetrustpw' to get more information about 'net changetrustpw'."
-msgstr ""
-
-#: ../utils/net.c:467
-#, fuzzy
-msgid "Change the secret password"
-msgstr "Şifre Değiştir"
-
-#: ../utils/net.c:468
-msgid ""
-" net [options] changesecretpw\n"
-" Change the ADS domain member machine account password in secrets.tdb.\n"
-" Do NOT use this function unless you know what it does.\n"
-" Requires the -f flag to work."
-msgstr ""
-
-#: ../utils/net.c:477
-msgid "Show/set time"
-msgstr ""
-
-#: ../utils/net.c:478
-msgid " Use 'net help time' to get more information about 'net time' commands."
-msgstr ""
-
-#: ../utils/net.c:484
-msgid "Look up host names/IP addresses"
-msgstr ""
-
-#: ../utils/net.c:485
-msgid " Use 'net help lookup' to get more information about 'net lookup' commands."
-msgstr ""
-
-#: ../utils/net.c:491
-msgid "Join a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:492
-msgid " Use 'net help join' to get more information about 'net join'."
-msgstr ""
-
-#: ../utils/net.c:498
-msgid "Join/unjoin (remote) machines to/from a domain/AD"
-msgstr ""
-
-#: ../utils/net.c:499
-msgid " Use 'net help dom' to get more information about 'net dom' commands."
-msgstr ""
-
-#: ../utils/net.c:505
-msgid "Operate on the cache tdb file"
-msgstr ""
-
-#: ../utils/net.c:506
-msgid " Use 'net help cache' to get more information about 'net cache' commands."
-msgstr ""
-
-#: ../utils/net.c:512
-msgid "Get the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:513
-msgid " net getlocalsid"
-msgstr ""
-
-#: ../utils/net.c:518
-msgid "Set the SID for the local domain"
-msgstr ""
-
-#: ../utils/net.c:519
-msgid " net setlocalsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:524
-msgid "Set domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:525
-msgid " net setdomainsid S-1-5-21-x-y-z"
-msgstr ""
-
-#: ../utils/net.c:530
-msgid "Get domain SID on member servers"
-msgstr ""
-
-#: ../utils/net.c:531
-msgid " net getdomainsid"
-msgstr ""
-
-#: ../utils/net.c:536
-msgid "Display the maximul RID currently used"
-msgstr ""
-
-#: ../utils/net.c:537
-msgid " net maxrid"
-msgstr ""
-
-#: ../utils/net.c:542
-#, fuzzy
-msgid "IDmap functions"
-msgstr "Alan Seçenekleri"
-
-#: ../utils/net.c:543
-msgid " Use 'net help idmap to get more information about 'net idmap' commands."
-msgstr ""
-
-#: ../utils/net.c:549
-#, fuzzy
-msgid "Display server status"
-msgstr "Sunucu Durumu"
-
-#: ../utils/net.c:550
-msgid " Use 'net help status' to get more information about 'net status' commands."
-msgstr ""
-
-#: ../utils/net.c:556
-msgid "Manage user-modifiable shares"
-msgstr ""
-
-#: ../utils/net.c:557
-msgid " Use 'net help usershare to get more information about 'net usershare' commands."
-msgstr ""
-
-#: ../utils/net.c:563
-msgid "Display list of all users with SID"
-msgstr ""
-
-#: ../utils/net.c:564
-msgid " Use 'net help usersidlist' to get more information about 'net usersidlist'."
-msgstr ""
-
-#: ../utils/net.c:570
-msgid "Manage Samba registry based configuration"
-msgstr ""
-
-#: ../utils/net.c:571
-msgid " Use 'net help conf' to get more information about 'net conf' commands."
-msgstr ""
-
-#: ../utils/net.c:577
-msgid "Manage the Samba registry"
-msgstr ""
-
-#: ../utils/net.c:578
-msgid " Use 'net help registry' to get more information about 'net registry' commands."
-msgstr ""
-
-#: ../utils/net.c:584
-msgid "Open a lua interpreter"
-msgstr ""
-
-#: ../utils/net.c:585
-msgid " Use 'net help lua' to get more information about 'net lua' commands."
-msgstr ""
-
-#: ../utils/net.c:591
-msgid "Process Win32 *.evt eventlog files"
-msgstr ""
-
-#: ../utils/net.c:592
-msgid " Use 'net help eventlog' to get more information about 'net eventlog' commands."
-msgstr ""
-
-#: ../utils/net.c:600
-msgid "Manage AFS tokens"
-msgstr ""
-
-#: ../utils/net.c:601
-msgid " Use 'net help afs' to get more information about 'net afs' commands."
-msgstr ""
-
-#: ../utils/net.c:609
-msgid "Print usage information"
-msgstr ""
-
-#: ../utils/net.c:610
-msgid " Use 'net help help' to list usage information for 'net' commands."
-msgstr ""
-
-#: ../utils/net.c:639
-msgid "Encrypt SMB transport (UNIX extended servers only)"
-msgstr ""
-
-#: ../utils/net.c:703
-msgid ""
-"\n"
-"Invalid ip address specified\n"
-msgstr ""
-
-#: ../utils/net.c:718
-#, c-format
-msgid ""
-"\n"
-"Invalid option %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:52 ../utils/net_ads.c:392
-msgid "CLDAP query failed!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:56
-#, fuzzy, c-format
-msgid ""
-"Information for Domain Controller: %s\n"
-"\n"
-msgstr "alan sunucusu"
-
-#: ../utils/net_ads.c:59
-msgid "Response Type: "
-msgstr ""
-
-#: ../utils/net_ads.c:72
-#, c-format
-msgid "GUID: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:74
-#, c-format
-msgid ""
-"Flags:\n"
-"\tIs a PDC: %s\n"
-"\tIs a GC of the forest: %s\n"
-"\tIs an LDAP server: %s\n"
-"\tSupports DS: %s\n"
-"\tIs running a KDC: %s\n"
-"\tIs running time services: %s\n"
-"\tIs the closest DC: %s\n"
-"\tIs writable: %s\n"
-"\tHas a hardware clock: %s\n"
-"\tIs a non-domain NC serviced by LDAP server: %s\n"
-"\tIs NT6 DC that has some secrets: %s\n"
-"\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
-msgid "yes"
-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
-msgid "no"
-msgstr ""
-
-#: ../utils/net_ads.c:101
-#, c-format
-msgid "Forest:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:102
-#, c-format
-msgid "Domain:\t\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:103
-#, fuzzy, c-format
-msgid "Domain Controller:\t%s\n"
-msgstr "alan sunucusu"
-
-#: ../utils/net_ads.c:105
-#, c-format
-msgid "Pre-Win2k Domain:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:106
-#, c-format
-msgid "Pre-Win2k Hostname:\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:108
-#, fuzzy, c-format
-msgid "User name:\t%s\n"
-msgstr " Kullanıcı Adı"
-
-#: ../utils/net_ads.c:110
-#, fuzzy, c-format
-msgid "Server Site Name :\t\t%s\n"
-msgstr "Sunucu Durumu"
-
-#: ../utils/net_ads.c:111
-#, c-format
-msgid "Client Site Name :\t\t%s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:113
-#, fuzzy, c-format
-msgid "NT Version: %d\n"
-msgstr "sürüm:"
-
-#: ../utils/net_ads.c:114
-#, c-format
-msgid "LMNT Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:115
-#, c-format
-msgid "LM20 Token: %.2x\n"
-msgstr ""
-
-#: ../utils/net_ads.c:130
-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
-msgid "Didn't find the cldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:160
-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
-msgid "Didn't find the ldap server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:182
-msgid "Failed to get server's current time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:187
-#, c-format
-msgid "LDAP server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:188
-#, c-format
-msgid "LDAP server name: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:189
-#, c-format
-msgid "Realm: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:190
-#, c-format
-msgid "Bind Path: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:191
-#, c-format
-msgid "LDAP port: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:192
-#, fuzzy, c-format
-msgid "Server time: %s\n"
-msgstr "Sunucu Durumu"
-
-#: ../utils/net_ads.c:195
-#, c-format
-msgid "KDC server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:196
-#, c-format
-msgid "Server time offset: %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:374
-msgid ""
-"Usage:\n"
-"net ads workgroup\n"
-" Print the workgroup name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:397
-#, c-format
-msgid "Workgroup: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:458
-#, c-format
-msgid "ads_user_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:463
-#, c-format
-msgid "ads_user_add: User %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:477
-#, c-format
-msgid "Could not add user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:484 ../utils/net_ads.c:497
-#, fuzzy, c-format
-msgid "User %s added\n"
-msgstr " Kullanıcı Adı"
-
-#. password didn't set, delete account
-#: ../utils/net_ads.c:503
-#, c-format
-msgid "Could not add user %s. Error setting password %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:551
-#, c-format
-msgid "ads_user_info: failed to escape user %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:569
-#, c-format
-msgid "ads_search: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:575
-msgid "ads_pull_uint32 failed\n"
-msgstr ""
-
-#: ../utils/net_ads.c:582
-#, c-format
-msgid "ads_domain_sid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:642
-#, c-format
-msgid "User %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:652
-#, c-format
-msgid "User %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:656
-#, c-format
-msgid "Error deleting user %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:669
-#, fuzzy
-msgid "Add an AD user"
-msgstr "Kull. Ekle"
-
-#: ../utils/net_ads.c:670
-msgid ""
-"net ads user add\n"
-" Add an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:677
-msgid "Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:678
-msgid ""
-"net ads user info\n"
-" Display information about an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:685
-#, fuzzy
-msgid "Delete an AD user"
-msgstr "Kull. Sil"
-
-#: ../utils/net_ads.c:686
-msgid ""
-"net ads user delete\n"
-" Delete an AD user"
-msgstr ""
-
-#: ../utils/net_ads.c:699
-msgid ""
-"Usage:\n"
-"net ads user\n"
-" List AD users\n"
-msgstr ""
-
-#: ../utils/net_ads.c:711
-msgid ""
-"\n"
-"User name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:751
-#, c-format
-msgid "ads_group_add: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:756
-#, c-format
-msgid "ads_group_add: Group %s already exists\n"
-msgstr ""
-
-#: ../utils/net_ads.c:769
-#, c-format
-msgid "Group %s added\n"
-msgstr ""
-
-#: ../utils/net_ads.c:772
-#, c-format
-msgid "Could not add group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:801
-#, c-format
-msgid "Group %s does not exist.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:811
-#, c-format
-msgid "Group %s deleted\n"
-msgstr ""
-
-#: ../utils/net_ads.c:815
-#, c-format
-msgid "Error deleting group %s: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:828
-msgid "Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:829
-msgid ""
-"net ads group add\n"
-" Add an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:836
-#, fuzzy
-msgid "Delete an AD group"
-msgstr "Paylaşım Kaldır"
-
-#: ../utils/net_ads.c:837
-msgid ""
-"net ads group delete\n"
-" Delete an AD group"
-msgstr ""
-
-#: ../utils/net_ads.c:850
-msgid ""
-"Usage:\n"
-"net ads group\n"
-" List AD groups\n"
-msgstr ""
-
-#: ../utils/net_ads.c:862
-msgid ""
-"\n"
-"Group name Comment\n"
-"-----------------------------\n"
-msgstr ""
-
-#: ../utils/net_ads.c:884
-msgid ""
-"Usage:\n"
-"net ads status\n"
-" Display machine account details\n"
-msgstr ""
-
-#: ../utils/net_ads.c:896
-#, c-format
-msgid "ads_find_machine_acct: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:902
-#, c-format
-msgid "No machine account for '%s' found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:926
-msgid ""
-"Usage:\n"
-"net ads leave\n"
-" Leave an AD domain\n"
-msgstr ""
-
-#: ../utils/net_ads.c:933
-msgid "No realm set, are we joined ?\n"
-msgstr ""
-
-#: ../utils/net_ads.c:938 ../utils/net_ads.c:1260
-msgid "Could not initialise talloc context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:948
-msgid "Could not initialise unjoin context.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:968
-#, c-format
-msgid "Failed to leave domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:975
-#, c-format
-msgid "Deleted account for '%s' in realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:982
-#, c-format
-msgid "Disabled account for '%s' in realm '%s'\n"
-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
-#, c-format
-msgid "Machine '%s' Left domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1035
-msgid ""
-"Usage:\n"
-"net ads testjoin\n"
-" Test if the existing join is ok\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1044
-#, c-format
-msgid "Join to domain is not valid: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1049
-#, c-format
-msgid "Join is OK\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1060
-msgid "Host is not configured as a member server.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1065
-#, 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
-#, c-format
-msgid "realm must be set in in %s for ADS join to succeed.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1105
-#, c-format
-msgid "No DNS domain configured for %s. Unable to perform DNS Update.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1212
-msgid ""
-"net ads join [options]\n"
-"Valid options:\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1214
-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
-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"
-" E.g. \"createcomputer=Computers/Servers/Unix\"\n"
-" NB: A backslash '\\' is used as escape at multiple levels and may\n"
-" need to be doubled or even quadrupled. It is not used as a separator.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1221
-msgid " osName=string Set the operatingSystem attribute during the join.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1222
-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"
-" Also, the operatingSystemService attribute is also set when along with\n"
-" the two other attributes.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1254
-msgid "Invalid configuration. Exiting....\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1283
-msgid "Please supply a valid OU path.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1290
-msgid "Please supply a operating system name.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1297
-msgid "Please supply a valid operating system version.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1308
-msgid "Please supply a valid domain name\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1339
-#, c-format
-msgid ""
-"The workgroup in %s does not match the short\n"
-"domain name obtained from the server.\n"
-"Using the name [%s] from the server.\n"
-"You should set \"workgroup = %s\" in %s.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1347
-#, c-format
-msgid "Using short domain name -- %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1350
-#, c-format
-msgid "Joined '%s' to realm '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1353
-#, c-format
-msgid "Joined '%s' to domain '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1377 ../utils/net_ads.c:1433
-msgid "DNS update failed!\n"
-msgstr ""
-
-#. issue an overall failure message at the end.
-#: ../utils/net_ads.c:1391 ../utils/net_dom.c:198
-#, c-format
-msgid "Failed to join domain: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1414
-msgid ""
-"Usage:\n"
-"net ads dns register\n"
-" Register hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1421
-msgid "Could not initialise talloc context\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1439
-msgid "Successfully registered hostname with DNS\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1447
-msgid "DNS update support not enabled at compile time!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1466
-msgid ""
-"Usage:\n"
-"net ads dns gethostbyname <server> <name>\n"
-" Look up hostname from the AD\n"
-" server\tName server to use\n"
-" name\tName to look up\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1476
-#, c-format
-msgid "do_gethostbyname returned %d\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1488
-msgid "Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1489
-msgid ""
-"net ads dns register\n"
-" Add host dns entry to AD"
-msgstr ""
-
-#: ../utils/net_ads.c:1496
-msgid "Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1497
-msgid ""
-"net ads dns gethostbyname\n"
-" Look up host"
-msgstr ""
-
-#: ../utils/net_ads.c:1512
-msgid ""
-"\n"
-"net ads printer search <printer>\n"
-"\tsearch for a printer in the directory\n"
-"\n"
-"net ads printer info <printer> <server>\n"
-"\tlookup info in directory for printer on server\n"
-"\t(note: printer defaults to \"*\", server defaults to local)\n"
-"\n"
-"net ads printer publish <printername>\n"
-"\tpublish printer in directory\n"
-"\t(note: printer name is required)\n"
-"\n"
-"net ads printer remove <printername>\n"
-"\tremove printer from directory\n"
-"\t(note: printer name is required)\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1536
-msgid ""
-"Usage:\n"
-"net ads printer search\n"
-" List printers in the AD\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1549
-#, c-format
-msgid "ads_find_printer: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1556
-msgid "No results found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1576
-msgid ""
-"Usage:\n"
-"net ads printer info [printername [servername]]\n"
-" Display printer info from AD\n"
-" printername\tPrinter name or wildcard\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1603
-#, c-format
-msgid "Server '%s' not found: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1611 ../utils/net_ads.c:1794
-#, c-format
-msgid "Printer '%s' not found\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1640
-msgid ""
-"Usage:\n"
-"net ads printer publish <printername> [servername]\n"
-" Publish printer in AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1675
-#, c-format
-msgid "Unable to open a connnection to %s to obtain data for %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1688
-#, c-format
-msgid "Could not find machine account for server %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1704 ../utils/net_ads.c:1713
-msgid "Internal error, out of memory!"
-msgstr ""
-
-#: ../utils/net_ads.c:1724
-#, c-format
-msgid "Unable to open a connnection to the spoolss pipe on %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1766
-msgid ""
-"Usage:\n"
-"net ads printer remove <printername> [servername]\n"
-" Remove a printer from the AD\n"
-" printername\tName of the printer\n"
-" servername\tName of the print server\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1787
-#, c-format
-msgid "ads_find_printer_on_server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1806
-#, c-format
-msgid "ads_del_dn: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1822
-msgid "Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1823
-msgid ""
-"net ads printer search\n"
-" Search for a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1830
-msgid "Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1831
-msgid ""
-"net ads printer info\n"
-" Display printer information"
-msgstr ""
-
-#: ../utils/net_ads.c:1838
-msgid "Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1839
-msgid ""
-"net ads printer publish\n"
-" Publish a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1846
-#, fuzzy
-msgid "Delete a printer"
-msgstr "Yazıcı Sil"
-
-#: ../utils/net_ads.c:1847
-msgid ""
-"net ads printer remove\n"
-" Delete a printer"
-msgstr ""
-
-#: ../utils/net_ads.c:1869
-msgid ""
-"Usage:\n"
-"net ads password <username>\n"
-" Change password for user\n"
-" username\tName of user to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1877
-msgid "You must supply an administrator username/password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1883
-msgid "ERROR: You must say which username to change password for\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1915
-msgid "Didn't find the kerberos server!\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1923
-#, c-format
-msgid "Enter new password for %s:"
-msgstr ""
-
-#: ../utils/net_ads.c:1933 ../utils/net_ads.c:1982
-#, fuzzy, c-format
-msgid "Password change failed: %s\n"
-msgstr "Şifre Yönetimi"
-
-#: ../utils/net_ads.c:1938
-#, fuzzy, c-format
-msgid "Password change for %s completed.\n"
-msgstr "demo kipinde şifre değişikliği kabul edilmedi\n"
-
-#: ../utils/net_ads.c:1952
-msgid ""
-"Usage:\n"
-"net ads changetrustpw\n"
-" Change the machine account's trust password\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1977
-#, c-format
-msgid "Changing password for principal: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1988
-#, c-format
-msgid "Password change for principal %s succeeded.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1991
-msgid "Attempting to update system keytab with new password.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:1993
-msgid "Failed to update system keytab.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2009
-msgid ""
-"\n"
-"net ads search <expression> <attributes...>\n"
-"\n"
-"Perform a raw LDAP search on a ADS server and dump the results.\n"
-"The expression is a standard LDAP search expression, and the\n"
-"attributes are a list of LDAP fields to show in the results.\n"
-"\n"
-"Example: net ads search '(objectCategory=group)' sAMAccountName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2046 ../utils/net_ads.c:2107 ../utils/net_ads.c:2171 ../utils/net_ads_gpo.c:250
-#, c-format
-msgid "search failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2051 ../utils/net_ads.c:2176 ../utils/net_ads_gpo.c:256
-#, c-format
-msgid ""
-"Got %d replies\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2069
-msgid ""
-"\n"
-"net ads dn <dn> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The DN standard LDAP DN, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads dn 'CN=administrator,CN=Users,DC=my,DC=domain' sAMAccountName\n"
-"\n"
-"Note: the DN must be provided properly escaped. See RFC 4514 for details\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2129
-msgid ""
-"\n"
-"net ads sid <sid> <attributes...>\n"
-"\n"
-"perform a raw LDAP search on a ADS server and dump the results\n"
-"The SID is in string format, and the attributes are a list of LDAP fields \n"
-"to show in the results\n"
-"\n"
-"Example: net ads sid 'S-1-5-32' distinguishedName\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2164
-msgid "could not convert sid\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2193
-msgid ""
-"Usage:\n"
-"net ads keytab flush\n"
-" Delete the whole keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2214
-msgid ""
-"Usage:\n"
-"net ads keytab add <principal> [principal ...]\n"
-" Add principals to local keytab\n"
-" principal\tKerberos principal to add to keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2222
-msgid "Processing principals to add...\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2239
-msgid ""
-"Usage:\n"
-"net ads keytab create\n"
-" Create new default keytab\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2258
-msgid ""
-"Usage:\n"
-"net ads keytab list [keytab]\n"
-" List a local keytab\n"
-" keytab\tKeytab to list\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2280
-msgid "Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2281
-msgid ""
-"net ads keytab add\n"
-" Add a service principal"
-msgstr ""
-
-#: ../utils/net_ads.c:2288
-#, fuzzy
-msgid "Create a fresh keytab"
-msgstr "Paylaşım Oluştur"
-
-#: ../utils/net_ads.c:2289
-msgid ""
-"net ads keytab create\n"
-" Create a fresh keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2296
-msgid "Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2297
-msgid ""
-"net ads keytab flush\n"
-" Remove all keytab entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2304
-msgid "List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2305
-msgid ""
-"net ads keytab list\n"
-" List a keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2312
-msgid ""
-"\n"
-"Warning: \"kerberos method\" must be set to a keytab method to use keytab functions.\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2324
-msgid ""
-"Usage:\n"
-"net ads kerberos renew\n"
-" Renew TGT from existing credential cache\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2332
-#, c-format
-msgid "failed to renew kerberos ticket: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2347
-msgid ""
-"Usage:\n"
-"net ads kerberos pac\n"
-" Dump the Kerberos PAC\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2372
-#, c-format
-msgid "failed to query kerberos PAC: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2381
-#, c-format
-msgid "The Pac: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2397
-msgid ""
-"Usage:\n"
-"net ads kerberos kinit\n"
-" Get Ticket Granting Ticket (TGT) for the user\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2421
-#, c-format
-msgid "failed to kinit password: %s\n"
-msgstr ""
-
-#: ../utils/net_ads.c:2435
-msgid "Retrieve Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2436
-msgid ""
-"net ads kerberos kinit\n"
-" Receive Ticket Granting Ticket (TGT)"
-msgstr ""
-
-#: ../utils/net_ads.c:2443
-msgid "Renew Ticket Granting Ticket from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2444
-msgid ""
-"net ads kerberos renew\n"
-" Renew Ticket Granting Ticket (TGT) from credential cache"
-msgstr ""
-
-#: ../utils/net_ads.c:2452
-msgid "Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2453
-msgid ""
-"net ads kerberos pac\n"
-" Dump Kerberos PAC"
-msgstr ""
-
-#: ../utils/net_ads.c:2469
-msgid "Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2470
-msgid ""
-"net ads info\n"
-" Display details on remote ADS server"
-msgstr ""
-
-#: ../utils/net_ads.c:2477
-msgid "Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2478
-msgid ""
-"net ads join\n"
-" Join the local machine to ADS realm"
-msgstr ""
-
-#: ../utils/net_ads.c:2485
-msgid "Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2486
-msgid ""
-"net ads testjoin\n"
-" Validate machine account"
-msgstr ""
-
-#: ../utils/net_ads.c:2493
-msgid "Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2494
-msgid ""
-"net ads leave\n"
-" Remove the local machine from ADS"
-msgstr ""
-
-#: ../utils/net_ads.c:2501
-msgid "Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2502
-msgid ""
-"net ads status\n"
-" Display machine account details"
-msgstr ""
-
-#: ../utils/net_ads.c:2509
-msgid "List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2510
-msgid ""
-"net ads user\n"
-" List/modify users"
-msgstr ""
-
-#: ../utils/net_ads.c:2517
-msgid "List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2518
-msgid ""
-"net ads group\n"
-" List/modify groups"
-msgstr ""
-
-#: ../utils/net_ads.c:2525
-msgid "Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2526
-msgid ""
-"net ads dns\n"
-" Issue dynamic DNS update"
-msgstr ""
-
-#: ../utils/net_ads.c:2533
-#, fuzzy
-msgid "Change user passwords"
-msgstr "Şifre Değiştir"
-
-#: ../utils/net_ads.c:2534
-msgid ""
-"net ads password\n"
-" Change user passwords"
-msgstr ""
-
-#: ../utils/net_ads.c:2541
-#, fuzzy
-msgid "Change trust account password"
-msgstr "Şifre Değiştir"
-
-#: ../utils/net_ads.c:2542
-msgid ""
-"net ads changetrustpw\n"
-" Change trust account password"
-msgstr ""
-
-#: ../utils/net_ads.c:2549
-msgid "List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2550
-msgid ""
-"net ads printer\n"
-" List/modify printer entries"
-msgstr ""
-
-#: ../utils/net_ads.c:2557
-msgid "Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2558
-msgid ""
-"net ads search\n"
-" Issue LDAP search using filter"
-msgstr ""
-
-#: ../utils/net_ads.c:2565
-msgid "Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2566
-msgid ""
-"net ads dn\n"
-" Issue LDAP search by DN"
-msgstr ""
-
-#: ../utils/net_ads.c:2573
-msgid "Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2574
-msgid ""
-"net ads sid\n"
-" Issue LDAP search by SID"
-msgstr ""
-
-#: ../utils/net_ads.c:2581
-msgid "Display workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2582
-msgid ""
-"net ads workgroup\n"
-" Display the workgroup name"
-msgstr ""
-
-#: ../utils/net_ads.c:2589
-msgid "Perfom CLDAP query on DC"
-msgstr ""
-
-#: ../utils/net_ads.c:2590
-msgid ""
-"net ads lookup\n"
-" Find the ADS DC using CLDAP lookups"
-msgstr ""
-
-#: ../utils/net_ads.c:2597
-msgid "Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2598
-msgid ""
-"net ads keytab\n"
-" Manage local keytab file"
-msgstr ""
-
-#: ../utils/net_ads.c:2605
-msgid "Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2606
-msgid ""
-"net ads gpo\n"
-" Manage group policy objects"
-msgstr ""
-
-#: ../utils/net_ads.c:2613
-msgid "Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2614
-msgid ""
-"net ads kerberos\n"
-" Manage kerberos keytab"
-msgstr ""
-
-#: ../utils/net_ads.c:2627
-msgid "ADS support not compiled in\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:40
-msgid ""
-"Usage:\n"
-"net ads gpo refresh <username|machinename>\n"
-" Lists all GPOs assigned to an account and downloads them\n"
-" username\tUser to refresh GPOs for\n"
-" machinename\tMachine to refresh GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:56
-#, c-format
-msgid "failed to connect AD server: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:62
-#, c-format
-msgid "failed to find samaccount for %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:70
-#, c-format
-msgid ""
-"\n"
-"%s: '%s' has dn: '%s'\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "machine"
-msgstr " Uzak Makina"
-
-#: ../utils/net_ads_gpo.c:71 ../utils/net_ads_gpo.c:328
-#, fuzzy
-msgid "user"
-msgstr "Kullanıcı"
-
-#: ../utils/net_ads_gpo.c:74
-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
-#, 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
-msgid "finished\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:87
-msgid "* fetching GPO List "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:96
-msgid "* Refreshing Group Policy Data "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:107
-msgid "* storing GPO list to registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:122
-msgid "* dumping GPO list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:151
-msgid "* re-reading GPO list from registry "
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:167
-msgid "* dumping GPO list from registry\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:226
-msgid ""
-"Usage:\n"
-"net ads gpo listall\n"
-" List all GPOs on the DC\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:270
-#, fuzzy, c-format
-msgid "ads_parse_gpo failed: %s\n"
-msgstr "Şifre Yönetimi"
-
-#: ../utils/net_ads_gpo.c:300
-msgid ""
-"Usage:\n"
-"net ads gpo list <username|machinename>\n"
-" Lists all GPOs for machine/user\n"
-" username\tUser to list GPOs for\n"
-" machinename\tMachine to list GPOs for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:327
-#, c-format
-msgid "%s: '%s' has dn: '%s'\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:451
-msgid ""
-"Usage:\n"
-"net ads gpo linkget <container>\n"
-" Lists gPLink of a containter\n"
-" container\tContainer to get link for\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:470
-#, c-format
-msgid "get link for %s failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:492
-msgid ""
-"Usage:\n"
-"net ads gpo linkadd <linkdn> <gpodn> [options]\n"
-" Link a container to a GPO\n"
-" linkdn\tContainer to link to a GPO\n"
-" gpodn\tGPO to link container to\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:497
-msgid ""
-"note: DNs must be provided properly escaped.\n"
-"See RFC 4514 for details\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:518
-#, c-format
-msgid "link add failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:579
-msgid ""
-"Usage:\n"
-"net ads gpo getgpo <gpo>\n"
-" List speciefied GPO\n"
-" gpo\t\tGPO to list\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:603
-#, c-format
-msgid "get gpo for [%s] failed: %s\n"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:634
-msgid "List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:635
-msgid ""
-"net ads gpo getgpo\n"
-" List specified GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:642
-msgid "Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:643
-msgid ""
-"net ads gpo linkadd\n"
-" Link a container to a GPO"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:660
-msgid "Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:661
-msgid ""
-"net ads gpo linkget\n"
-" Lists gPLink of containter"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:668
-msgid "Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:669
-msgid ""
-"net ads gpo list\n"
-" Lists all GPOs for machine/user"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:676
-msgid "Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:677
-msgid ""
-"net ads gpo listall\n"
-" Lists all GPOs on a DC"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:684
-msgid "Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_ads_gpo.c:686
-msgid ""
-"net ads gpo refresh\n"
-" Lists all GPOs assigned to an account and downloads them"
-msgstr ""
-
-#: ../utils/net_afs.c:25
-msgid ""
-" net afs key filename\n"
-"\tImports a OpenAFS KeyFile into our secrets.tdb\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:27
-msgid ""
-" net afs impersonate <user> <cell>\n"
-"\tCreates a token for user@cell\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_afs.c:38
-msgid "usage: 'net afs key <keyfile> cell'\n"
-msgstr ""
-
-#: ../utils/net_afs.c:43
-msgid "Could not open secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:48
-#, c-format
-msgid "Could not open %s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:53
-msgid "Could not read keyfile\n"
-msgstr ""
-
-#: ../utils/net_afs.c:58
-msgid "Could not write keyfile to secrets.tdb\n"
-msgstr ""
-
-#: ../utils/net_afs.c:71
-#, c-format
-msgid "Usage: net afs impersonate <user> <cell>\n"
-msgstr ""
-
-#: ../utils/net_afs.c:78
-#, c-format
-msgid "Could not create token\n"
-msgstr ""
-
-#: ../utils/net_afs.c:83
-#, c-format
-msgid "Could not set token into kernel\n"
-msgstr ""
-
-#: ../utils/net_afs.c:87
-#, c-format
-msgid "Success: %s@%s\n"
-msgstr ""
-
-#: ../utils/net_afs.c:98
-msgid "Import an OpenAFS keyfile"
-msgstr ""
-
-#: ../utils/net_afs.c:99
-msgid ""
-"net afs key <filename>\n"
-" Import kefile from <filename>."
-msgstr ""
-
-#: ../utils/net_afs.c:106
-msgid "Get a user token"
-msgstr ""
-
-#: ../utils/net_afs.c:107
-msgid ""
-"net afs impersonate <user> <cell>\n"
-" Create token for user@cell"
-msgstr ""
-
-#: ../utils/net_cache.c:74
-#, c-format
-msgid "Key: %s\t Timeout: %s\t Value: %s %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:75
-msgid "(expired)"
-msgstr ""
-
-#: ../utils/net_cache.c:84
-#, c-format
-msgid "Couldn't delete entry! key = %s\n"
-msgstr ""
-
-#: ../utils/net_cache.c:158
-msgid ""
-"\n"
-"Usage:\n"
-"net cache add <key string> <data string> <timeout>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:170
-msgid "Invalid timeout argument.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:175
-msgid "New cache entry stored successfully.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:179
-msgid "Entry couldn't be added. Perhaps there's already such a key.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:195
-msgid ""
-"\n"
-"Usage: net cache del <key string>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:200
-msgid "Entry deleted.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:204
-msgid "Couldn't delete specified entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:223
-msgid ""
-"\n"
-"Usage: net cache get <key>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:233
-msgid "Failed to find entry\n"
-msgstr ""
-
-#: ../utils/net_cache.c:250
-msgid "Usage: net cache search <pattern>\n"
-msgstr ""
-
-#: ../utils/net_cache.c:272
-msgid ""
-"Usage:\n"
-"net cache list\n"
-" List all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:293 ../utils/net_cache.c:306
-msgid ""
-"Usage:\n"
-"net cache flush\n"
-" Delete all cache entries.\n"
-msgstr ""
-
-#: ../utils/net_cache.c:331
-msgid "Add new cache entry"
-msgstr ""
-
-#: ../utils/net_cache.c:332
-msgid ""
-"net cache add <key string> <data string> <timeout>\n"
-" Add new cache entry.\n"
-" key string\tKey string to add cache data under.\n"
-" data string\tData to store under given key.\n"
-" timeout\tTimeout for cache data."
-msgstr ""
-
-#: ../utils/net_cache.c:342
-msgid "Delete existing cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:343
-msgid ""
-"net cache del <key string>\n"
-" Delete existing cache entry by key.\n"
-" key string\tKey string to delete."
-msgstr ""
-
-#: ../utils/net_cache.c:351
-msgid "Get cache entry by key"
-msgstr ""
-
-#: ../utils/net_cache.c:352
-msgid ""
-"net cache get <key string>\n"
-" Get cache entry by key.\n"
-" key string\tKey string to look up cache entry for."
-msgstr ""
-
-#: ../utils/net_cache.c:361
-msgid "Search entry by pattern"
-msgstr ""
-
-#: ../utils/net_cache.c:362
-msgid ""
-"net cache search <pattern>\n"
-" Search entry by pattern.\n"
-" pattern\tPattern to search for in cache."
-msgstr ""
-
-#: ../utils/net_cache.c:370
-msgid "List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:371
-msgid ""
-"net cache list\n"
-" List all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:378
-#, fuzzy
-msgid "Delete all cache entries"
-msgstr "Yazıcı Sil"
-
-#: ../utils/net_cache.c:379
-msgid ""
-"net cache flush\n"
-" Delete all cache entries"
-msgstr ""
-
-#: ../utils/net_cache.c:386
-msgid "Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_cache.c:387
-msgid ""
-"net cache stabilize\n"
-" Move transient cache content to stable storage"
-msgstr ""
-
-#: ../utils/net_conf.c:42
-msgid "USAGE: net conf list\n"
-msgstr ""
-
-#: ../utils/net_conf.c:49
-msgid ""
-"USAGE: net conf import [--test|-T] <filename> [<servicename>]\n"
-"\t[--test|-T] testmode - do not act, just print what would be done\n"
-"\t<servicename> only import service <servicename>, ignore the rest\n"
-msgstr ""
-
-#: ../utils/net_conf.c:61
-msgid "USAGE: net conf listshares\n"
-msgstr ""
-
-#: ../utils/net_conf.c:68
-msgid "USAGE: net conf drop\n"
-msgstr ""
-
-#: ../utils/net_conf.c:75
-msgid "USAGE: net conf showshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:82
-msgid ""
-"USAGE: net conf addshare <sharename> <path> [writeable={y|N} [guest_ok={y|N} [<comment>]]\n"
-"\t<sharename> the new share name.\n"
-"\t<path> the path on the filesystem to export.\n"
-"\twriteable={y|N} set \"writeable to \"yes\" or \"no\" (default) on this share.\n"
-"\tguest_ok={y|N} set \"guest ok\" to \"yes\" or \"no\" (default) on this share.\n"
-"\t<comment> optional comment for the new share.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:97
-msgid "USAGE: net conf delshare <sharename>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:104
-msgid "USAGE: net conf setparm <section> <param> <value>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:111
-msgid "USAGE: net conf getparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:118
-msgid "USAGE: net conf delparm <section> <param>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:125
-msgid "USAGE: net conf getincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:132
-msgid "USAGE: net conf setincludes <section> [<filename>]*\n"
-msgstr ""
-
-#: ../utils/net_conf.c:139
-msgid "USAGE: net conf delincludes <section>\n"
-msgstr ""
-
-#: ../utils/net_conf.c:251
-#, c-format
-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
-msgid "error: out of memory!\n"
-msgstr ""
-
-#: ../utils/net_conf.c:324
-#, c-format
-msgid "error loading file '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:330
-msgid ""
-"\n"
-"TEST MODE - would import the following configuration:\n"
-"\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "error committing transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:427 ../utils/net_conf.c:828
-#, c-format
-msgid "error cancelling transaction: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:484
-#, c-format
-msgid "Error deleting configuration: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:521
-#, c-format
-msgid "error getting share parameters: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:630
-#, c-format
-msgid "ERROR: share name %s contains invalid characters (any of %s)\n"
-msgstr ""
-
-#: ../utils/net_conf.c:638
-msgid "ERROR: 'global' is not a valid share name.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:643
-#, c-format
-msgid "ERROR: share %s already exists.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:652
-#, c-format
-msgid "Error: path '%s' is not an absolute path.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:659
-#, c-format
-msgid ""
-"ERROR: cannot stat path '%s' to ensure this is a directory.\n"
-"Error was '%s'.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:668
-#, c-format
-msgid "ERROR: path '%s' is not a directory.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:679
-#, c-format
-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
-#, c-format
-msgid "Error setting parameter %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:748
-#, c-format
-msgid "Error deleting share %s: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:801
-#, c-format
-msgid "Error creating share '%s': %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:810
-#, c-format
-msgid "Error setting value '%s': %s\n"
-msgstr ""
-
-#: ../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
-#, c-format
-msgid "Error: given parameter '%s' is not set.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:883
-#, c-format
-msgid "Error getting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:939
-#, c-format
-msgid "Error deleting value '%s': %s.\n"
-msgstr ""
-
-#: ../utils/net_conf.c:977
-#, c-format
-msgid "error getting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1023
-#, c-format
-msgid "error setting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1056
-#, c-format
-msgid "error deleting includes: %s\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1136 ../utils/net_help.c:36
-msgid "Usage:\n"
-msgstr ""
-
-#: ../utils/net_conf.c:1160
-msgid "Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1162
-msgid ""
-"net conf list\n"
-" Dump the complete configuration in smb.conf like format."
-msgstr ""
-
-#: ../utils/net_conf.c:1171
-msgid "Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1173
-msgid ""
-"net conf import\n"
-" Import configuration from file in smb.conf format."
-msgstr ""
-
-#: ../utils/net_conf.c:1181
-msgid "List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1182
-msgid ""
-"net conf listshares\n"
-" List the share names."
-msgstr ""
-
-#: ../utils/net_conf.c:1189
-msgid "Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1190
-msgid ""
-"net conf drop\n"
-" Delete the complete configuration."
-msgstr ""
-
-#: ../utils/net_conf.c:1197
-msgid "Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1198
-msgid ""
-"net conf showshare\n"
-" Show the definition of a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1205
-#, fuzzy
-msgid "Create a new share."
-msgstr "Paylaşım Oluştur"
-
-#: ../utils/net_conf.c:1206
-msgid ""
-"net conf addshare\n"
-" Create a new share."
-msgstr ""
-
-#: ../utils/net_conf.c:1213
-#, fuzzy
-msgid "Delete a share."
-msgstr "Paylaşım Kaldır"
-
-#: ../utils/net_conf.c:1214
-msgid ""
-"net conf delshare\n"
-" Delete a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1221
-#, fuzzy
-msgid "Store a parameter."
-msgstr "Paylaşım Parametreleri"
-
-#: ../utils/net_conf.c:1222
-msgid ""
-"net conf setparm\n"
-" Store a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1229
-msgid "Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1230
-msgid ""
-"net conf getparm\n"
-" Retrieve the value of a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1237
-#, fuzzy
-msgid "Delete a parameter."
-msgstr "Yazıcı Sil"
-
-#: ../utils/net_conf.c:1238
-msgid ""
-"net conf delparm\n"
-" Delete a parameter."
-msgstr ""
-
-#: ../utils/net_conf.c:1245
-msgid "Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1246
-msgid ""
-"net conf getincludes\n"
-" Show the includes of a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1253
-msgid "Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1254
-msgid ""
-"net conf setincludes\n"
-" Set includes for a share."
-msgstr ""
-
-#: ../utils/net_conf.c:1261
-msgid "Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_conf.c:1262
-msgid ""
-"net conf setincludes\n"
-" Delete includes from a share definition."
-msgstr ""
-
-#: ../utils/net_dom.c:25
-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
-msgid ""
-"usage: net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine\n"
-msgstr ""
-
-#: ../utils/net_dom.c:31
-msgid ""
-"usage: net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer\n"
-msgstr ""
-
-#: ../utils/net_dom.c:91
-#, c-format
-msgid "Failed to unjoin domain: %s\n"
-msgstr ""
-
-#: ../utils/net_dom.c:97 ../utils/net_dom.c:204
-msgid "Shutting down due to a domain membership change"
-msgstr ""
-
-#: ../utils/net_dom.c:290
-#, c-format
-msgid "Failed to rename machine: "
-msgstr ""
-
-#: ../utils/net_dom.c:292
-#, c-format
-msgid "Computer is not joined to a Domain\n"
-msgstr ""
-
-#: ../utils/net_dom.c:301
-msgid "Shutting down due to a computer rename"
-msgstr ""
-
-#: ../utils/net_dom.c:338
-#, fuzzy
-msgid "Join a remote machine"
-msgstr " Uzak Makina"
-
-#: ../utils/net_dom.c:339
-msgid ""
-"net dom join <domain=DOMAIN> <ou=OU> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Join a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:347
-#, fuzzy
-msgid "Unjoin a remote machine"
-msgstr " Uzak Makina"
-
-#: ../utils/net_dom.c:348
-msgid ""
-"net dom unjoin <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Unjoin a remote machine"
-msgstr ""
-
-#: ../utils/net_dom.c:356
-msgid "Rename a computer that is joined to a domain"
-msgstr ""
-
-#: ../utils/net_dom.c:357
-msgid ""
-"net dom renamecomputer <newname=NEWNAME> <account=ACCOUNT> <password=PASSWORD> <reboot>\n"
-" Rename joined computer"
-msgstr ""
-
-#: ../utils/net_eventlog.c:46
-msgid "usage: net eventlog dump <file.evt>\n"
-msgstr ""
-
-#: ../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
-#, fuzzy, c-format
-msgid "evt pull failed: %s\n"
-msgstr "Şifre Yönetimi"
-
-#: ../utils/net_eventlog.c:102
-msgid "usage: net eventlog import <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:116
-#, fuzzy, c-format
-msgid "evt header pull failed: %s\n"
-msgstr "Şifre Yönetimi"
-
-#: ../utils/net_eventlog.c:122
-msgid "input file is wrapped, cannot proceed\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:138 ../utils/net_eventlog.c:203
-#, c-format
-msgid "can't open the eventlog TDB (%s)\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:158
-#, c-format
-msgid "can't write to the eventlog: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:164
-#, c-format
-msgid "wrote %d entries to tdb\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:197
-msgid "usage: net eventlog export <file> <eventlog>\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:214
-#, c-format
-msgid "failed to save evt file: %s\n"
-msgstr ""
-
-#: ../utils/net_eventlog.c:243
-msgid "Dump eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:244
-msgid ""
-"net eventlog dump\n"
-" Dump win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:251
-#, fuzzy
-msgid "Import eventlog"
-msgstr "Önemli Not:"
-
-#: ../utils/net_eventlog.c:252
-msgid ""
-"net eventlog import\n"
-" Import win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_eventlog.c:259
-msgid "Export eventlog"
-msgstr ""
-
-#: ../utils/net_eventlog.c:260
-msgid ""
-"net eventlog export\n"
-" Export win32 *.evt eventlog file"
-msgstr ""
-
-#: ../utils/net_file.c:27
-msgid ""
-"net [<method>] file [misc. options] [targets]\n"
-"\tlists all open files on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:29
-msgid ""
-"net [<method>] file USER <username> [misc. options] [targets]\n"
-"\tlists all files opened by username on file server\n"
-msgstr ""
-
-#: ../utils/net_file.c:32
-msgid ""
-"net [<method>] file CLOSE <id> [misc. options] [targets]\n"
-"\tcloses specified file on target server\n"
-msgstr ""
-
-#: ../utils/net_file.c:34
-msgid ""
-"net [rap] file INFO <id> [misc. options] [targets]\n"
-"\tdisplays information about the specified open file\n"
-msgstr ""
-
-#: ../utils/net_group.c:27
-msgid ""
-"net [<method>] group [misc. options] [targets]\n"
-"\tList user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:29
-msgid ""
-"net rpc group LIST [global|local|builtin]* [misc. options]\n"
-"\tList specific user groups\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:31
-msgid ""
-"net [<method>] group DELETE <name> [misc. options] [targets]\n"
-"\tDelete specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:34
-msgid ""
-"\n"
-"net [<method>] group ADD <name> [-C comment] [-c container] [misc. options] [targets]\n"
-"\tCreate specified group\n"
-msgstr ""
-
-#: ../utils/net_group.c:37
-msgid ""
-"\n"
-"net rpc group MEMBERS <name>\n"
-"\tList Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:38
-msgid ""
-"\n"
-"net rpc group ADDMEM <group> <member>\n"
-"\tAdd Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:40
-msgid ""
-"\n"
-"net rpc group DELMEM <group> <member>\n"
-"\tDelete Group Members\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_group.c:44
-msgid "\t-C or --comment=<comment>\tdescriptive comment (for add only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:46
-msgid "\t-c or --container=<container>\tLDAP container, defaults to cn=Users (for add in ADS only)\n"
-msgstr ""
-
-#: ../utils/net_group.c:48
-msgid "\t-L or --localgroup\t\tWhen adding groups, create a local group (alias)\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:38
-#, c-format
-msgid "NT Group %s doesn't exist in mapping DB\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:46
-#, c-format
-msgid "converting sid %s from a string failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:65
-#, c-format
-msgid "\tSID : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:66
-#, c-format
-msgid "\tUnix gid : %u\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:67
-#, c-format
-msgid "\tUnix group: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:68
-#, c-format
-msgid "\tGroup type: %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:70
-#, c-format
-msgid "\tComment : %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:84
-msgid ""
-"net groupmap list [verbose] [ntgroup=NT group] [sid=SID]\n"
-" verbose\tPrint verbose list\n"
-" ntgroup\tNT group to list\n"
-" 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
-#, fuzzy, c-format
-msgid ""
-"Usage:\n"
-"%s\n"
-msgstr " Kullanıcı Adı"
-
-#: ../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
-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
-#, fuzzy, c-format
-msgid "Bad option: %s\n"
-msgstr "Temel Seçenekler"
-
-#: ../utils/net_groupmap.c:139
-msgid "Failure to local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:181
-msgid "net groupmap add {rid=<int>|sid=<string>} unixgroup=<string> [type=<domain|local|builtin>] [ntgroup=<string>] [comment=<string>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:195
-#, fuzzy, c-format
-msgid ""
-"Usage\n"
-"%s\n"
-msgstr " Kullanıcı Adı"
-
-#: ../utils/net_groupmap.c:205
-#, c-format
-msgid "RID must be greater than %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:235 ../utils/net_groupmap.c:380
-msgid "must supply a comment string\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:259
-#, c-format
-msgid "unknown group type %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:276
-#, c-format
-msgid "Can't lookup UNIX group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:282
-#, c-format
-msgid "Unix group %s already mapped to SID %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:289
-msgid "No rid or sid specified, choosing a RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:292
-msgid "Could not get new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:297
-#, c-format
-msgid "Got RID %d\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:328
-#, c-format
-msgid "adding entry for group %s failed!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:332
-#, c-format
-msgid "Successfully added group %s to the mapping db as a %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:349
-msgid "net groupmap modify {ntgroup=<string>|sid=<SID>} [comment=<string>] [unixgroup=<string>] [type=<domain|local>]"
-msgstr ""
-
-#: ../utils/net_groupmap.c:388
-msgid "must supply a group name\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:434
-msgid "Failed to find local group SID in the database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:443
-msgid "Can't map to an unknown group type.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:449
-msgid "You can only change between domain and local groups.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:466
-#, c-format
-msgid "Unable to lookup UNIX group %s. Make sure the group exists.\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:476
-msgid "Could not update group database\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:480
-#, c-format
-msgid "Updated mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:491
-msgid "net groupmap delete {ntgroup=<string>|sid=<SID>}"
-msgstr ""
-
-#: ../utils/net_groupmap.c:532
-#, c-format
-msgid "Unable to resolve group %s to a SID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:539
-#, c-format
-msgid "Failed to remove group %s from the mapping db!\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:544
-#, c-format
-msgid "Sucessfully removed %s from the mapping db\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:557
-msgid "Usage: net groupmap set \"NT Group\" [\"unix group\"] [-C \"comment\"] [-L] [-D]\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:563
-msgid "Can only specify -L or -D, not both\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:573
-#, c-format
-msgid "Could not find unix group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:594
-#, c-format
-msgid "Could not find group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:605
-msgid "Could not allocate new RID\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:622
-#, c-format
-msgid "Could not add mapping entry for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:633
-#, c-format
-msgid "Can't change type of the BUILTIN group %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:660
-#, c-format
-msgid "Could not update group mapping for %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:674
-msgid ""
-"Usage:\n"
-"net groupmap cleanup\n"
-" Delete all group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:682
-msgid "Could not list group mappings\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:689
-#, c-format
-msgid "Group %s is not mapped\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:692
-#, c-format
-msgid "Deleting mapping for NT Group %s, sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:712
-msgid "Usage: net groupmap addmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:717
-#, c-format
-msgid "Could not add sid %s to alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:733
-msgid "Usage: net groupmap delmem alias-sid member-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:738
-#, c-format
-msgid "Could not delete sid %s from alias %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:755
-msgid "Usage: net groupmap listmem alias-sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:764
-#, c-format
-msgid "Could not list members for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:791
-#, c-format
-msgid "Could not list memberships for sid %s\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:814
-msgid "Usage: net groupmap memberof sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:820 ../utils/net_idmap.c:345
-msgid "talloc_init failed\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:827
-msgid "Could not get domain sid\n"
-msgstr ""
-
-#: ../utils/net_groupmap.c:850
-msgid "Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:851
-msgid ""
-"net groupmap add\n"
-" Create a new group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:858
-msgid "Update a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:859
-msgid ""
-"net groupmap modify\n"
-" Modify an existing group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:866
-msgid "Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:867
-msgid ""
-"net groupmap delete\n"
-" Remove a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:874
-msgid "Set group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:875
-msgid ""
-"net groupmap set\n"
-" Set a group mapping"
-msgstr ""
-
-#: ../utils/net_groupmap.c:882
-msgid "Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:883
-msgid ""
-"net groupmap cleanup\n"
-" Remove foreign group mapping entries"
-msgstr ""
-
-#: ../utils/net_groupmap.c:890
-msgid "Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:891
-msgid ""
-"net groupmap addmem\n"
-" Add a foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:898
-msgid "Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:899
-msgid ""
-"net groupmap delmem\n"
-" Delete foreign alias member"
-msgstr ""
-
-#: ../utils/net_groupmap.c:906
-msgid "List foreign group members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:907
-msgid ""
-"net groupmap listmem\n"
-" List foreign alias members"
-msgstr ""
-
-#: ../utils/net_groupmap.c:914
-msgid "List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:915
-msgid ""
-"net groupmap memberships\n"
-" List foreign group memberships"
-msgstr ""
-
-#: ../utils/net_groupmap.c:922
-msgid "List current group map"
-msgstr ""
-
-#: ../utils/net_groupmap.c:923
-msgid ""
-"net groupmap list\n"
-" List current group map"
-msgstr ""
-
-#: ../utils/net_help.c:39
-#, c-format
-msgid "net %s usage:\n"
-msgstr ""
-
-#: ../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
-msgid "\tads\t\t\t\tActive Directory (LDAP/Kerberos)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:27 ../utils/net_join.c:30
-msgid "\trpc\t\t\t\tDCE-RPC\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:28
-msgid "\trap\t\t\t\tRAP (older systems)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:35
-msgid "Valid targets: choose one (none defaults to localhost)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:36
-msgid "\t-S or --server=<server>\t\tserver name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:37
-msgid "\t-I or --ipaddress=<ipaddr>\taddress of target server\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:38
-msgid "\t-w or --workgroup=<wg>\t\ttarget workgroup or domain\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:41
-#, fuzzy
-msgid "Valid miscellaneous options are:\n"
-msgstr "Diğer Seçenekler"
-
-#. misc options
-#: ../utils/net_help_common.c:42
-msgid "\t-p or --port=<port>\t\tconnection port on target\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:43
-msgid "\t-W or --myworkgroup=<wg>\tclient workgroup\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:44
-msgid "\t-d or --debuglevel=<level>\tdebug level (0-10)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:45
-msgid "\t-n or --myname=<name>\t\tclient name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:46
-msgid "\t-U or --user=<name>\t\tuser name\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:47
-msgid "\t-s or --configfile=<path>\tpathname of smb.conf file\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:48
-msgid "\t-l or --long\t\t\tDisplay full information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:49
-msgid "\t-V or --version\t\t\tPrint samba version information\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:50
-msgid "\t-P or --machine-pass\t\tAuthenticate as machine account\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:52
-msgid "\t-e or --encrypt\t\t\tEncrypt SMB transport (UNIX extended servers only)\n"
-msgstr ""
-
-#: ../utils/net_help_common.c:54
-msgid "\t-k or --kerberos\t\tUse kerberos (active directory) authentication\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:25
-msgid "Out of memory!\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:39
-#, c-format
-msgid "USER HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:44
-#, c-format
-msgid "GROUP HWM %d\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:63
-msgid ""
-"Usage:\n"
-"net idmap dump <inputfile>\n"
-" Dump current ID mapping.\n"
-" inputfile\tTDB file to read mappings from.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:73
-#, c-format
-msgid "Could not open idmap: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:94
-msgid ""
-"Usage:\n"
-"net idmap restore [inputfile]\n"
-" Restore ID mappings from file\n"
-" inputfile\tFile to load ID mappings from. If not given, load data from stdin.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:104
-msgid "To use net idmap Winbindd must be running.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:142
-#, c-format
-msgid "Could not set USER HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:151
-#, c-format
-msgid "Could not set GROUP HWM: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:156
-#, c-format
-msgid "ignoring invalid line [%s]\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:163
-#, c-format
-msgid "ignoring invalid sid [%s]: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:175
-#, c-format
-msgid "Could not set mapping of %s %lu to sid %s: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:196 ../utils/net_idmap.c:202
-msgid "Not Implemented yet\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:240
-msgid ""
-"Usage:\n"
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set the secret for the specified domain (or alloc module)\n"
-" DOMAIN\tDomain to set secret for.\n"
-" alloc\tSet secret for the alloc module\n"
-" secret\tNew secret to set.\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:271
-msgid "The only currently supported backend is LDAP\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:281
-#, c-format
-msgid "Missing ldap_user_dn option for domain %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:292
-msgid "Missing ldap_user_dn option for alloc backend\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:302
-msgid "Failed to store secret\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:307
-msgid "Secret stored\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:313
-msgid ""
-"net idmap dump <inputfile>\n"
-" Dump current id mapping\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:316
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin\n"
-msgstr ""
-
-#. Deliberately *not* document net idmap delete
-#: ../utils/net_idmap.c:321
-msgid ""
-"net idmap secret <DOMAIN>|alloc <secret>\n"
-" Set the secret for the specified DOMAIN (or the alloc module)\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:339
-msgid "usage: net idmap aclmapset <tdb> <src-sid> <dst-sid>\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:351
-#, fuzzy, c-format
-msgid "db_open failed: %s\n"
-msgstr "Şifre Yönetimi"
-
-#: ../utils/net_idmap.c:356 ../utils/net_idmap.c:361
-#, c-format
-msgid "%s is not a valid sid\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:367
-msgid "talloc_strdup failed\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:373
-msgid "could not fetch db record\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:381
-#, c-format
-msgid "could not store record: %s\n"
-msgstr ""
-
-#: ../utils/net_idmap.c:402
-msgid "Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:403
-msgid ""
-"net idmap dump\n"
-" Dump the current ID mappings"
-msgstr ""
-
-#: ../utils/net_idmap.c:410
-msgid "Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:411
-msgid ""
-"net idmap restore\n"
-" Restore entries from stdin"
-msgstr ""
-
-#: ../utils/net_idmap.c:418 ../utils/net_idmap.c:426
-msgid "Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:419
-msgid ""
-"net idmap setmap\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:427
-msgid ""
-"net idmap delete\n"
-" Not implemented yet"
-msgstr ""
-
-#: ../utils/net_idmap.c:434
-msgid "Set secret for specified domain"
-msgstr ""
-
-#: ../utils/net_idmap.c:435
-msgid ""
-"net idmap secret {<DOMAIN>|alloc} <secret>\n"
-" Set secret for specified domain or alloc module"
-msgstr ""
-
-#: ../utils/net_idmap.c:442
-msgid "Set acl map"
-msgstr ""
-
-#: ../utils/net_idmap.c:443
-msgid ""
-"net idmap aclmapset\n"
-" Set acl map"
-msgstr ""
-
-#: ../utils/net_join.c:26
-msgid ""
-"\n"
-"net [<method>] join [misc. options]\n"
-"\tjoins this server to a domain\n"
-msgstr ""
-
-#: ../utils/net_join.c:47
-msgid "ADS join did not work, falling back to RPC...\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:25
-msgid ""
-" net lookup [host] HOSTNAME[#<type>]\n"
-"\tgives IP for a hostname\n"
-"\n"
-" net lookup ldap [domain]\n"
-"\tgives IP of domain's ldap server\n"
-"\n"
-" net lookup kdc [realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup pdc [domain|realm]\n"
-"\tgives IP of realm's kerberos KDC\n"
-"\n"
-" net lookup dc [domain]\n"
-"\tgives IP of domains Domain Controllers\n"
-"\n"
-" net lookup master [domain|wg]\n"
-"\tgive IP of master browser\n"
-"\n"
-" net lookup name [name]\n"
-"\tLookup name's sid and type\n"
-"\n"
-" net lookup sid [sid]\n"
-"\tGive sid's name and type\n"
-"\n"
-" net lookup dsgetdcname [name] [flags] [sitename]\n"
-"\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:112
-msgid "net_lookup_ldap: talloc_init() failed!\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:325
-msgid "usage: net lookup name <name>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:331 ../utils/net_lookup.c:358
-#, c-format
-msgid "Could not lookup name %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:347
-msgid "usage: net lookup sid <sid>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:352
-#, c-format
-msgid "Could not convert %s to SID\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:378
-msgid "usage: net lookup dsgetdcname <name> <flags> <sitename>\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:404
-#, c-format
-msgid "failed with: %s\n"
-msgstr ""
-
-#: ../utils/net_lookup.c:437
-msgid ""
-"\n"
-"Usage: \n"
-msgstr ""
-
-#: ../utils/net_lua.c:60
-msgid "connect: Expected IP-Address"
-msgstr ""
-
-#: ../utils/net_lua.c:65
-msgid "connect: Expected port"
-msgstr ""
-
-#: ../utils/net_lua.c:84
-#, fuzzy, c-format
-msgid "connect failed: %s"
-msgstr "Şifre Yönetimi"
-
-#: ../utils/net_lua.c:132
-#, c-format
-msgid "socket domain %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:144
-#, c-format
-msgid "socket type %s unknown"
-msgstr ""
-
-#: ../utils/net_lua.c:155
-#, fuzzy, c-format
-msgid "socket() failed: %s"
-msgstr "Şifre Yönetimi"
-
-#: ../utils/net_lua.c:278
-msgid "evt_reference_thread failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:287
-msgid "event_add_timed failed"
-msgstr ""
-
-#: ../utils/net_lua.c:300
-msgid "event_once called from non-base thread"
-msgstr ""
-
-#: ../utils/net_lua.c:323
-msgid "event_context_init failed"
-msgstr ""
-
-#: ../utils/net_lua.c:353
-msgid "lua_newstate failed\n"
-msgstr ""
-
-#: ../utils/net_lua.c:371
-msgid "luaL_dofile returned an error\n"
-msgstr ""
-
-#: ../utils/net_lua.c:376
-msgid "luaL_dostring returned an error\n"
-msgstr ""
diff --git a/source3/printing/nt_printing.c b/source3/printing/nt_printing.c
index 26b8d9d81d..b2815c221d 100644
--- a/source3/printing/nt_printing.c
+++ b/source3/printing/nt_printing.c
@@ -1590,7 +1590,7 @@ static uint32 get_correct_cversion(struct pipes_struct *p,
}
if (conn != NULL) {
vfs_ChDir(conn, oldcwd);
- conn_free_internal(conn);
+ conn_free(conn);
}
if (cversion != -1) {
*perr = WERR_OK;
@@ -2072,7 +2072,7 @@ WERROR move_driver_to_download_area(struct pipes_struct *p,
if (conn != NULL) {
vfs_ChDir(conn, oldcwd);
- conn_free_internal(conn);
+ conn_free(conn);
}
if (W_ERROR_EQUAL(*perr, WERR_OK)) {
@@ -5267,7 +5267,7 @@ static bool delete_driver_files(struct pipes_struct *rpc_pipe,
done:
if (conn != NULL) {
vfs_ChDir(conn, oldcwd);
- conn_free_internal(conn);
+ conn_free(conn);
}
return ret;
}
diff --git a/source3/rpc_server/srv_srvsvc_nt.c b/source3/rpc_server/srv_srvsvc_nt.c
index 15b2290805..01ffcd837a 100644
--- a/source3/rpc_server/srv_srvsvc_nt.c
+++ b/source3/rpc_server/srv_srvsvc_nt.c
@@ -2133,7 +2133,7 @@ WERROR _srvsvc_NetGetFileSecurity(pipes_struct *p,
close_file(NULL, fsp, NORMAL_CLOSE);
vfs_ChDir(conn, oldcwd);
- conn_free_internal(conn);
+ conn_free(conn);
werr = WERR_OK;
goto done;
@@ -2148,7 +2148,7 @@ error_exit:
}
if (conn) {
- conn_free_internal(conn);
+ conn_free(conn);
}
done:
@@ -2267,7 +2267,7 @@ WERROR _srvsvc_NetSetFileSecurity(pipes_struct *p,
close_file(NULL, fsp, NORMAL_CLOSE);
vfs_ChDir(conn, oldcwd);
- conn_free_internal(conn);
+ conn_free(conn);
werr = WERR_OK;
goto done;
@@ -2282,7 +2282,7 @@ error_exit:
}
if (conn) {
- conn_free_internal(conn);
+ conn_free(conn);
}
done:
diff --git a/source3/rpc_server/srv_wkssvc_nt.c b/source3/rpc_server/srv_wkssvc_nt.c
index acc1fb3b03..ab09e8632f 100644
--- a/source3/rpc_server/srv_wkssvc_nt.c
+++ b/source3/rpc_server/srv_wkssvc_nt.c
@@ -306,7 +306,7 @@ WERROR _wkssvc_NetrJoinDomain2(pipes_struct *p,
if (!user_has_privileges(token, &se_machine_account) &&
!nt_token_check_domain_rid(token, DOMAIN_GROUP_RID_ADMINS) &&
- !nt_token_check_domain_rid(token, BUILTIN_ALIAS_RID_ADMINS)) {
+ !nt_token_check_sid(&global_sid_Builtin_Administrators, token)) {
DEBUG(5,("_wkssvc_NetrJoinDomain2: account doesn't have "
"sufficient privileges\n"));
return WERR_ACCESS_DENIED;
@@ -377,7 +377,7 @@ WERROR _wkssvc_NetrUnjoinDomain2(pipes_struct *p,
if (!user_has_privileges(token, &se_machine_account) &&
!nt_token_check_domain_rid(token, DOMAIN_GROUP_RID_ADMINS) &&
- !nt_token_check_domain_rid(token, BUILTIN_ALIAS_RID_ADMINS)) {
+ !nt_token_check_sid(&global_sid_Builtin_Administrators, token)) {
DEBUG(5,("_wkssvc_NetrUnjoinDomain2: account doesn't have "
"sufficient privileges\n"));
return WERR_ACCESS_DENIED;
diff --git a/source3/samba4.mk b/source3/samba4.mk
index 653ae25464..a8cebf5a39 100644
--- a/source3/samba4.mk
+++ b/source3/samba4.mk
@@ -88,6 +88,7 @@ libcmdlinesrcdir := $(samba4srcdir)/lib/cmdline
poptsrcdir := $(samba4srcdir)/../lib/popt
socketwrappersrcdir := $(samba4srcdir)/../lib/socket_wrapper
nsswrappersrcdir := $(samba4srcdir)/../lib/nss_wrapper
+uidwrappersrcdir := $(samba4srcdir)/../lib/uid_wrapper
libstreamsrcdir := $(samba4srcdir)/lib/stream
libutilsrcdir := $(samba4srcdir)/../lib/util
libtdrsrcdir := ../lib/tdr
diff --git a/source3/smbd/conn.c b/source3/smbd/conn.c
index af6e0919a4..959fcd7754 100644
--- a/source3/smbd/conn.c
+++ b/source3/smbd/conn.c
@@ -101,6 +101,7 @@ connection_struct *conn_new(struct smbd_server_connection *sconn)
TALLOC_FREE(conn);
return NULL;
}
+ conn->sconn = sconn;
return conn;
}
@@ -154,6 +155,7 @@ find_again:
TALLOC_FREE(conn);
return NULL;
}
+ conn->sconn = sconn;
conn->cnum = i;
conn->force_group_gid = (gid_t)-1;
@@ -161,7 +163,6 @@ find_again:
sconn->smb1.tcons.num_open++;
- string_set(&conn->dirpath,"");
string_set(&conn->connectpath,"");
string_set(&conn->origpath,"");
@@ -181,7 +182,7 @@ bool conn_close_all(struct smbd_server_connection *sconn)
for (conn=sconn->smb1.tcons.Connections;conn;conn=next) {
next=conn->next;
set_current_service(conn, 0, True);
- close_cnum(sconn, conn, conn->vuid);
+ close_cnum(conn, conn->vuid);
ret = true;
}
return ret;
@@ -255,9 +256,9 @@ void conn_clear_vuid_caches(struct smbd_server_connection *sconn,uint16_t vuid)
Free a conn structure - internal part.
****************************************************************************/
-void conn_free_internal(connection_struct *conn)
+static void conn_free_internal(connection_struct *conn)
{
- vfs_handle_struct *handle = NULL, *thandle = NULL;
+ vfs_handle_struct *handle = NULL, *thandle = NULL;
struct trans_state *state = NULL;
/* Free vfs_connection_struct */
@@ -282,7 +283,6 @@ void conn_free_internal(connection_struct *conn)
free_namearray(conn->veto_oplock_list);
free_namearray(conn->aio_write_behind_list);
- string_free(&conn->dirpath);
string_free(&conn->connectpath);
string_free(&conn->origpath);
@@ -294,19 +294,24 @@ void conn_free_internal(connection_struct *conn)
Free a conn structure.
****************************************************************************/
-void conn_free(struct smbd_server_connection *sconn, connection_struct *conn)
+void conn_free(connection_struct *conn)
{
- if (sconn->allow_smb2) {
+ if (conn->sconn == NULL) {
+ conn_free_internal(conn);
+ return;
+ }
+
+ if (conn->sconn->allow_smb2) {
conn_free_internal(conn);
return;
}
- DLIST_REMOVE(sconn->smb1.tcons.Connections, conn);
+ DLIST_REMOVE(conn->sconn->smb1.tcons.Connections, conn);
- bitmap_clear(sconn->smb1.tcons.bmap, conn->cnum);
+ bitmap_clear(conn->sconn->smb1.tcons.bmap, conn->cnum);
- SMB_ASSERT(sconn->smb1.tcons.num_open > 0);
- sconn->smb1.tcons.num_open--;
+ SMB_ASSERT(conn->sconn->smb1.tcons.num_open > 0);
+ conn->sconn->smb1.tcons.num_open--;
conn_free_internal(conn);
}
@@ -340,7 +345,7 @@ void msg_force_tdis(struct messaging_context *msg,
if (strequal(lp_servicename(SNUM(conn)), sharename)) {
DEBUG(1,("Forcing close of share %s cnum=%d\n",
sharename, conn->cnum));
- close_cnum(sconn, conn, (uint16)-1);
+ close_cnum(conn, (uint16)-1);
}
}
}
diff --git a/source3/smbd/dir.c b/source3/smbd/dir.c
index 642fb09362..73c4cbb3e7 100644
--- a/source3/smbd/dir.c
+++ b/source3/smbd/dir.c
@@ -115,15 +115,19 @@ bool make_dir_struct(TALLOC_CTX *ctx,
Initialise the dir bitmap.
****************************************************************************/
-void init_dptrs(void)
+bool init_dptrs(struct smbd_server_connection *sconn)
{
- if (dptr_bmap)
- return;
+ if (sconn->smb1.searches.dptr_bmap) {
+ return true;
+ }
+
+ sconn->smb1.searches.dptr_bmap = bitmap_allocate(MAX_DIRECTORY_HANDLES);
- dptr_bmap = bitmap_allocate(MAX_DIRECTORY_HANDLES);
+ if (sconn->smb1.searches.dptr_bmap == NULL) {
+ return false;
+ }
- if (!dptr_bmap)
- exit_server("out of memory in init_dptrs");
+ return true;
}
/****************************************************************************
@@ -142,14 +146,14 @@ static void dptr_idle(struct dptr_struct *dptr)
Idle the oldest dptr.
****************************************************************************/
-static void dptr_idleoldest(void)
+static void dptr_idleoldest(struct smbd_server_connection *sconn)
{
struct dptr_struct *dptr;
/*
* Go to the end of the list.
*/
- for(dptr = dirptrs; dptr && dptr->next; dptr = dptr->next)
+ for(dptr = sconn->smb1.searches.dirptrs; dptr && dptr->next; dptr = dptr->next)
;
if(!dptr) {
@@ -173,15 +177,16 @@ static void dptr_idleoldest(void)
Get the struct dptr_struct for a dir index.
****************************************************************************/
-static struct dptr_struct *dptr_get(int key, bool forclose)
+static struct dptr_struct *dptr_get(struct smbd_server_connection *sconn,
+ int key, bool forclose)
{
struct dptr_struct *dptr;
- for(dptr = dirptrs; dptr; dptr = dptr->next) {
+ for(dptr = sconn->smb1.searches.dirptrs; dptr; dptr = dptr->next) {
if(dptr->dnum == key) {
if (!forclose && !dptr->dir_hnd) {
- if (dirhandles_open >= MAX_OPEN_DIRECTORIES)
- dptr_idleoldest();
+ if (sconn->smb1.searches.dirhandles_open >= MAX_OPEN_DIRECTORIES)
+ dptr_idleoldest(sconn);
DEBUG(4,("dptr_get: Reopening dptr key %d\n",key));
if (!(dptr->dir_hnd = OpenDir(
NULL, dptr->conn, dptr->path,
@@ -191,7 +196,7 @@ static struct dptr_struct *dptr_get(int key, bool forclose)
return False;
}
}
- DLIST_PROMOTE(dirptrs,dptr);
+ DLIST_PROMOTE(sconn->smb1.searches.dirptrs,dptr);
return dptr;
}
}
@@ -202,9 +207,9 @@ static struct dptr_struct *dptr_get(int key, bool forclose)
Get the dir path for a dir index.
****************************************************************************/
-char *dptr_path(int key)
+char *dptr_path(struct smbd_server_connection *sconn, int key)
{
- struct dptr_struct *dptr = dptr_get(key, False);
+ struct dptr_struct *dptr = dptr_get(sconn, key, false);
if (dptr)
return(dptr->path);
return(NULL);
@@ -214,9 +219,9 @@ char *dptr_path(int key)
Get the dir wcard for a dir index.
****************************************************************************/
-char *dptr_wcard(int key)
+char *dptr_wcard(struct smbd_server_connection *sconn, int key)
{
- struct dptr_struct *dptr = dptr_get(key, False);
+ struct dptr_struct *dptr = dptr_get(sconn, key, false);
if (dptr)
return(dptr->wcard);
return(NULL);
@@ -226,9 +231,9 @@ char *dptr_wcard(int key)
Get the dir attrib for a dir index.
****************************************************************************/
-uint16 dptr_attr(int key)
+uint16 dptr_attr(struct smbd_server_connection *sconn, int key)
{
- struct dptr_struct *dptr = dptr_get(key, False);
+ struct dptr_struct *dptr = dptr_get(sconn, key, false);
if (dptr)
return(dptr->attr);
return(0);
@@ -240,22 +245,29 @@ uint16 dptr_attr(int key)
static void dptr_close_internal(struct dptr_struct *dptr)
{
+ struct smbd_server_connection *sconn = dptr->conn->sconn;
+
DEBUG(4,("closing dptr key %d\n",dptr->dnum));
- DLIST_REMOVE(dirptrs, dptr);
+ if (sconn == NULL) {
+ goto done;
+ }
+
+ DLIST_REMOVE(sconn->smb1.searches.dirptrs, dptr);
/*
* Free the dnum in the bitmap. Remember the dnum value is always
* biased by one with respect to the bitmap.
*/
- if(bitmap_query( dptr_bmap, dptr->dnum - 1) != True) {
+ if(bitmap_query(sconn->smb1.searches.dptr_bmap, dptr->dnum - 1) != true) {
DEBUG(0,("dptr_close_internal : Error - closing dnum = %d and bitmap not set !\n",
dptr->dnum ));
}
- bitmap_clear(dptr_bmap, dptr->dnum - 1);
+ bitmap_clear(sconn->smb1.searches.dptr_bmap, dptr->dnum - 1);
+done:
TALLOC_FREE(dptr->dir_hnd);
/* Lanman 2 specific code */
@@ -268,7 +280,7 @@ static void dptr_close_internal(struct dptr_struct *dptr)
Close a dptr given a key.
****************************************************************************/
-void dptr_close(int *key)
+void dptr_close(struct smbd_server_connection *sconn, int *key)
{
struct dptr_struct *dptr;
@@ -278,7 +290,7 @@ void dptr_close(int *key)
/* OS/2 seems to use -1 to indicate "close all directories" */
if (*key == -1) {
struct dptr_struct *next;
- for(dptr = dirptrs; dptr; dptr = next) {
+ for(dptr = sconn->smb1.searches.dirptrs; dptr; dptr = next) {
next = dptr->next;
dptr_close_internal(dptr);
}
@@ -286,7 +298,7 @@ void dptr_close(int *key)
return;
}
- dptr = dptr_get(*key, True);
+ dptr = dptr_get(sconn, *key, true);
if (!dptr) {
DEBUG(0,("Invalid key %d given to dptr_close\n", *key));
@@ -305,10 +317,17 @@ void dptr_close(int *key)
void dptr_closecnum(connection_struct *conn)
{
struct dptr_struct *dptr, *next;
- for(dptr = dirptrs; dptr; dptr = next) {
+ struct smbd_server_connection *sconn = conn->sconn;
+
+ if (sconn == NULL) {
+ return;
+ }
+
+ for(dptr = sconn->smb1.searches.dirptrs; dptr; dptr = next) {
next = dptr->next;
- if (dptr->conn == conn)
+ if (dptr->conn == conn) {
dptr_close_internal(dptr);
+ }
}
}
@@ -319,9 +338,16 @@ void dptr_closecnum(connection_struct *conn)
void dptr_idlecnum(connection_struct *conn)
{
struct dptr_struct *dptr;
- for(dptr = dirptrs; dptr; dptr = dptr->next) {
- if (dptr->conn == conn && dptr->dir_hnd)
+ struct smbd_server_connection *sconn = conn->sconn;
+
+ if (sconn == NULL) {
+ return;
+ }
+
+ for(dptr = sconn->smb1.searches.dirptrs; dptr; dptr = dptr->next) {
+ if (dptr->conn == conn && dptr->dir_hnd) {
dptr_idle(dptr);
+ }
}
}
@@ -329,10 +355,11 @@ void dptr_idlecnum(connection_struct *conn)
Close a dptr that matches a given path, only if it matches the spid also.
****************************************************************************/
-void dptr_closepath(char *path,uint16 spid)
+void dptr_closepath(struct smbd_server_connection *sconn,
+ char *path,uint16 spid)
{
struct dptr_struct *dptr, *next;
- for(dptr = dirptrs; dptr; dptr = next) {
+ for(dptr = sconn->smb1.searches.dirptrs; dptr; dptr = next) {
next = dptr->next;
if (spid == dptr->spid && strequal(dptr->path,path))
dptr_close_internal(dptr);
@@ -345,14 +372,15 @@ void dptr_closepath(char *path,uint16 spid)
finished with that one.
****************************************************************************/
-static void dptr_close_oldest(bool old)
+static void dptr_close_oldest(struct smbd_server_connection *sconn,
+ bool old)
{
struct dptr_struct *dptr;
/*
* Go to the end of the list.
*/
- for(dptr = dirptrs; dptr && dptr->next; dptr = dptr->next)
+ for(dptr = sconn->smb1.searches.dirptrs; dptr && dptr->next; dptr = dptr->next)
;
if(!dptr) {
@@ -387,12 +415,18 @@ static void dptr_close_oldest(bool old)
NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle, bool expect_close,uint16 spid,
const char *wcard, bool wcard_has_wild, uint32 attr, struct dptr_struct **dptr_ret)
{
+ struct smbd_server_connection *sconn = conn->sconn;
struct dptr_struct *dptr = NULL;
struct smb_Dir *dir_hnd;
NTSTATUS status;
DEBUG(5,("dptr_create dir=%s\n", path));
+ if (sconn == NULL) {
+ DEBUG(0,("dptr_create: called with fake connection_struct\n"));
+ return NT_STATUS_INTERNAL_ERROR;
+ }
+
if (!wcard) {
return NT_STATUS_INVALID_PARAMETER;
}
@@ -407,10 +441,8 @@ NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle,
return map_nt_error_from_unix(errno);
}
- string_set(&conn->dirpath,path);
-
- if (dirhandles_open >= MAX_OPEN_DIRECTORIES) {
- dptr_idleoldest();
+ if (sconn->smb1.searches.dirhandles_open >= MAX_OPEN_DIRECTORIES) {
+ dptr_idleoldest(sconn);
}
dptr = SMB_MALLOC_P(struct dptr_struct);
@@ -429,7 +461,7 @@ NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle,
* value we return will fit in the range 1-255.
*/
- dptr->dnum = bitmap_find(dptr_bmap, 0);
+ dptr->dnum = bitmap_find(sconn->smb1.searches.dptr_bmap, 0);
if(dptr->dnum == -1 || dptr->dnum > 254) {
@@ -439,10 +471,10 @@ NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle,
* finished with that one.
*/
- dptr_close_oldest(True);
+ dptr_close_oldest(sconn, true);
/* Now try again... */
- dptr->dnum = bitmap_find(dptr_bmap, 0);
+ dptr->dnum = bitmap_find(sconn->smb1.searches.dptr_bmap, 0);
if(dptr->dnum == -1 || dptr->dnum > 254) {
DEBUG(0,("dptr_create: returned %d: Error - all old dirptrs in use ?\n", dptr->dnum));
SAFE_FREE(dptr);
@@ -457,7 +489,7 @@ NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle,
* a range that will return 256 - MAX_DIRECTORY_HANDLES.
*/
- dptr->dnum = bitmap_find(dptr_bmap, 255);
+ dptr->dnum = bitmap_find(sconn->smb1.searches.dptr_bmap, 255);
if(dptr->dnum == -1 || dptr->dnum < 255) {
@@ -468,10 +500,10 @@ NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle,
* directory handles.
*/
- dptr_close_oldest(False);
+ dptr_close_oldest(sconn, false);
/* Now try again... */
- dptr->dnum = bitmap_find(dptr_bmap, 255);
+ dptr->dnum = bitmap_find(sconn->smb1.searches.dptr_bmap, 255);
if(dptr->dnum == -1 || dptr->dnum < 255) {
DEBUG(0,("dptr_create: returned %d: Error - all new dirptrs in use ?\n", dptr->dnum));
@@ -482,7 +514,7 @@ NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle,
}
}
- bitmap_set(dptr_bmap, dptr->dnum);
+ bitmap_set(sconn->smb1.searches.dptr_bmap, dptr->dnum);
dptr->dnum += 1; /* Always bias the dnum by one - no zero dnums allowed. */
@@ -493,7 +525,7 @@ NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle,
dptr->expect_close = expect_close;
dptr->wcard = SMB_STRDUP(wcard);
if (!dptr->wcard) {
- bitmap_clear(dptr_bmap, dptr->dnum - 1);
+ bitmap_clear(sconn->smb1.searches.dptr_bmap, dptr->dnum - 1);
SAFE_FREE(dptr);
TALLOC_FREE(dir_hnd);
return NT_STATUS_NO_MEMORY;
@@ -506,7 +538,7 @@ NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle,
dptr->attr = attr;
- DLIST_ADD(dirptrs, dptr);
+ DLIST_ADD(sconn->smb1.searches.dirptrs, dptr);
DEBUG(3,("creating new dirptr %d for path %s, expect_close = %d\n",
dptr->dnum,path,expect_close));
@@ -523,7 +555,8 @@ NTSTATUS dptr_create(connection_struct *conn, const char *path, bool old_handle,
int dptr_CloseDir(struct dptr_struct *dptr)
{
- DLIST_REMOVE(dirptrs, dptr);
+ struct smbd_server_connection *sconn = dptr->conn->sconn;
+ DLIST_REMOVE(sconn->smb1.searches.dirptrs, dptr);
TALLOC_FREE(dptr->dir_hnd);
return 0;
}
@@ -726,10 +759,11 @@ void dptr_init_search_op(struct dptr_struct *dptr)
Fill the 5 byte server reserved dptr field.
****************************************************************************/
-bool dptr_fill(char *buf1,unsigned int key)
+bool dptr_fill(struct smbd_server_connection *sconn,
+ char *buf1,unsigned int key)
{
unsigned char *buf = (unsigned char *)buf1;
- struct dptr_struct *dptr = dptr_get(key, False);
+ struct dptr_struct *dptr = dptr_get(sconn, key, false);
uint32 offset;
if (!dptr) {
DEBUG(1,("filling null dirptr %d\n",key));
@@ -747,10 +781,11 @@ bool dptr_fill(char *buf1,unsigned int key)
Fetch the dir ptr and seek it given the 5 byte server field.
****************************************************************************/
-struct dptr_struct *dptr_fetch(char *buf,int *num)
+struct dptr_struct *dptr_fetch(struct smbd_server_connection *sconn,
+ char *buf, int *num)
{
unsigned int key = *(unsigned char *)buf;
- struct dptr_struct *dptr = dptr_get(key, False);
+ struct dptr_struct *dptr = dptr_get(sconn, key, false);
uint32 offset;
long seekoff;
@@ -767,7 +802,7 @@ struct dptr_struct *dptr_fetch(char *buf,int *num)
}
SeekDir(dptr->dir_hnd,seekoff);
DEBUG(3,("fetching dirptr %d for path %s at offset %d\n",
- key,dptr_path(key),(int)seekoff));
+ key, dptr->path, (int)seekoff));
return(dptr);
}
@@ -775,15 +810,16 @@ struct dptr_struct *dptr_fetch(char *buf,int *num)
Fetch the dir ptr.
****************************************************************************/
-struct dptr_struct *dptr_fetch_lanman2(int dptr_num)
+struct dptr_struct *dptr_fetch_lanman2(struct smbd_server_connection *sconn,
+ int dptr_num)
{
- struct dptr_struct *dptr = dptr_get(dptr_num, False);
+ struct dptr_struct *dptr = dptr_get(sconn, dptr_num, false);
if (!dptr) {
DEBUG(3,("fetched null dirptr %d\n",dptr_num));
return(NULL);
}
- DEBUG(3,("fetching dirptr %d for path %s\n",dptr_num,dptr_path(dptr_num)));
+ DEBUG(3,("fetching dirptr %d for path %s\n",dptr_num,dptr->path));
return(dptr);
}
@@ -825,156 +861,251 @@ static bool mangle_mask_match(connection_struct *conn,
return mask_match_search(mname,mask,False);
}
-/****************************************************************************
- Get an 8.3 directory entry.
-****************************************************************************/
-
-bool get_dir_entry(TALLOC_CTX *ctx,
- connection_struct *conn,
- const char *mask,
- uint32 dirtype,
- char **pp_fname_out,
- SMB_OFF_T *size,
- uint32 *mode,
- struct timespec *date,
- bool check_descend,
- bool ask_sharemode)
+bool smbd_dirptr_get_entry(TALLOC_CTX *ctx,
+ struct dptr_struct *dirptr,
+ const char *mask,
+ uint32_t dirtype,
+ bool dont_descend,
+ bool ask_sharemode,
+ bool (*match_fn)(TALLOC_CTX *ctx,
+ void *private_data,
+ const char *dname,
+ const char *mask,
+ char **_fname),
+ bool (*mode_fn)(TALLOC_CTX *ctx,
+ void *private_data,
+ struct smb_filename *smb_fname,
+ uint32_t *_mode),
+ void *private_data,
+ char **_fname,
+ struct smb_filename **_smb_fname,
+ uint32_t *_mode,
+ long *_prev_offset)
{
- char *dname = NULL;
- bool found = False;
- SMB_STRUCT_STAT sbuf;
- char *pathreal = NULL;
- char *filename = NULL;
+ connection_struct *conn = dirptr->conn;
bool needslash;
- *pp_fname_out = NULL;
+ *_smb_fname = NULL;
+ *_mode = 0;
- needslash = ( conn->dirpath[strlen(conn->dirpath) -1] != '/');
+ needslash = ( dirptr->path[strlen(dirptr->path) -1] != '/');
- if (!conn->dirptr) {
- return(False);
- }
+ while (true) {
+ long cur_offset;
+ long prev_offset;
+ SMB_STRUCT_STAT sbuf;
+ char *dname = NULL;
+ bool isdots;
+ char *fname = NULL;
+ char *pathreal = NULL;
+ struct smb_filename *smb_fname = NULL;
+ uint32_t mode = 0;
+ bool ok;
+ NTSTATUS status;
- while (!found) {
- long curoff = dptr_TellDir(conn->dirptr);
- dname = dptr_ReadDirName(ctx, conn->dirptr, &curoff, &sbuf);
+ cur_offset = dptr_TellDir(dirptr);
+ prev_offset = cur_offset;
+ dname = dptr_ReadDirName(ctx, dirptr, &cur_offset, &sbuf);
- DEBUG(6,("readdir on dirptr 0x%lx now at offset %ld\n",
- (long)conn->dirptr,TellDir(conn->dirptr->dir_hnd)));
+ DEBUG(6,("smbd_dirptr_get_entry: dirptr 0x%lx now at offset %ld\n",
+ (long)dirptr, cur_offset));
if (dname == NULL) {
- return(False);
+ return false;
}
- filename = dname;
-
- /* notice the special *.* handling. This appears to be the only difference
- between the wildcard handling in this routine and in the trans2 routines.
- see masktest for a demo
- */
- if ((strcmp(mask,"*.*") == 0) ||
- mask_match_search(filename,mask,False) ||
- mangle_mask_match(conn,filename,mask)) {
- char mname[13];
- struct smb_filename *smb_fname = NULL;
- NTSTATUS status;
-
- if (!mangle_is_8_3(filename, False, conn->params)) {
- if (!name_to_8_3(filename,mname,False,
- conn->params)) {
- TALLOC_FREE(filename);
- continue;
- }
- filename = talloc_strdup(ctx, mname);
- if (!filename) {
- return False;
- }
- }
+ isdots = (ISDOT(dname) || ISDOTDOT(dname));
+ if (dont_descend && !isdots) {
+ TALLOC_FREE(dname);
+ continue;
+ }
- if (needslash) {
- pathreal = talloc_asprintf(ctx,
- "%s/%s",
- conn->dirpath,
- dname);
- } else {
- pathreal = talloc_asprintf(ctx,
- "%s%s",
- conn->dirpath,
- dname);
- }
- if (!pathreal) {
- TALLOC_FREE(filename);
- return False;
- }
+ /*
+ * fname may get mangled, dname is never mangled.
+ * Whenever we're accessing the filesystem we use
+ * pathreal which is composed from dname.
+ */
- /* Create smb_fname with NULL stream_name. */
- status = create_synthetic_smb_fname(ctx, pathreal,
- NULL, &sbuf,
- &smb_fname);
+ ok = match_fn(ctx, private_data, dname, mask, &fname);
+ if (!ok) {
+ TALLOC_FREE(dname);
+ continue;
+ }
- TALLOC_FREE(pathreal);
- if (!NT_STATUS_IS_OK(status)) {
- TALLOC_FREE(filename);
- return false;
- }
+ pathreal = talloc_asprintf(ctx, "%s%s%s",
+ dirptr->path,
+ needslash?"/":"",
+ dname);
+ if (!pathreal) {
+ TALLOC_FREE(dname);
+ TALLOC_FREE(fname);
+ return false;
+ }
- if (!VALID_STAT(smb_fname->st)) {
- if ((SMB_VFS_STAT(conn, smb_fname)) != 0) {
- DEBUG(5,("Couldn't stat 1 [%s]. Error "
- "= %s\n",
- smb_fname_str_dbg(smb_fname),
- strerror(errno)));
- TALLOC_FREE(smb_fname);
- TALLOC_FREE(filename);
- continue;
- }
- }
+ /* Create smb_fname with NULL stream_name. */
+ status = create_synthetic_smb_fname(ctx, pathreal,
+ NULL, &sbuf,
+ &smb_fname);
+ TALLOC_FREE(pathreal);
+ if (!NT_STATUS_IS_OK(status)) {
+ TALLOC_FREE(dname);
+ TALLOC_FREE(fname);
+ return false;
+ }
- *mode = dos_mode(conn, smb_fname);
+ ok = mode_fn(ctx, private_data, smb_fname, &mode);
+ if (!ok) {
+ TALLOC_FREE(dname);
+ TALLOC_FREE(fname);
+ TALLOC_FREE(smb_fname);
+ continue;
+ }
- if (!dir_check_ftype(conn,*mode,dirtype)) {
- DEBUG(5,("[%s] attribs 0x%x didn't match 0x%x\n",filename,(unsigned int)*mode,(unsigned int)dirtype));
- TALLOC_FREE(smb_fname);
- TALLOC_FREE(filename);
- continue;
+ if (!dir_check_ftype(conn, mode, dirtype)) {
+ DEBUG(5,("[%s] attribs 0x%x didn't match 0x%x\n",
+ fname, (unsigned int)mode, (unsigned int)dirtype));
+ TALLOC_FREE(dname);
+ TALLOC_FREE(fname);
+ TALLOC_FREE(smb_fname);
+ continue;
+ }
+
+ if (ask_sharemode) {
+ struct timespec write_time_ts;
+ struct file_id fileid;
+
+ fileid = vfs_file_id_from_sbuf(conn,
+ &smb_fname->st);
+ get_file_infos(fileid, NULL, &write_time_ts);
+ if (!null_timespec(write_time_ts)) {
+ update_stat_ex_mtime(&smb_fname->st,
+ write_time_ts);
}
+ }
- *size = smb_fname->st.st_ex_size;
- *date = smb_fname->st.st_ex_mtime;
+ DEBUG(3,("smbd_dirptr_get_entry mask=[%s] found %s "
+ "fname=%s (%s)\n",
+ mask, smb_fname_str_dbg(smb_fname),
+ dname, fname));
- if (ask_sharemode) {
- struct timespec write_time_ts;
- struct file_id fileid;
+ DirCacheAdd(dirptr->dir_hnd, dname, cur_offset);
- fileid = vfs_file_id_from_sbuf(conn,
- &smb_fname->st);
- get_file_infos(fileid, NULL, &write_time_ts);
- if (!null_timespec(write_time_ts)) {
- *date = write_time_ts;
- }
+ TALLOC_FREE(dname);
+
+ *_fname = fname;
+ *_smb_fname = smb_fname;
+ *_mode = mode;
+ *_prev_offset = prev_offset;
+
+ return true;
+ }
+
+ return false;
+}
+
+/****************************************************************************
+ Get an 8.3 directory entry.
+****************************************************************************/
+
+static bool smbd_dirptr_8_3_match_fn(TALLOC_CTX *ctx,
+ void *private_data,
+ const char *dname,
+ const char *mask,
+ char **_fname)
+{
+ connection_struct *conn = (connection_struct *)private_data;
+
+ if ((strcmp(mask,"*.*") == 0) ||
+ mask_match_search(dname, mask, false) ||
+ mangle_mask_match(conn, dname, mask)) {
+ char mname[13];
+ const char *fname;
+
+ if (!mangle_is_8_3(dname, false, conn->params)) {
+ bool ok = name_to_8_3(dname, mname, false,
+ conn->params);
+ if (!ok) {
+ return false;
}
+ fname = mname;
+ } else {
+ fname = dname;
+ }
- DEBUG(3,("get_dir_entry mask=[%s] found %s "
- "fname=%s (%s)\n",
- mask,
- smb_fname_str_dbg(smb_fname),
- dname,
- filename));
+ *_fname = talloc_strdup(ctx, fname);
+ if (*_fname == NULL) {
+ return false;
+ }
- found = True;
+ return true;
+ }
- SMB_ASSERT(filename != NULL);
- *pp_fname_out = filename;
+ return false;
+}
- DirCacheAdd(conn->dirptr->dir_hnd, dname, curoff);
- TALLOC_FREE(smb_fname);
+static bool smbd_dirptr_8_3_mode_fn(TALLOC_CTX *ctx,
+ void *private_data,
+ struct smb_filename *smb_fname,
+ uint32_t *_mode)
+{
+ connection_struct *conn = (connection_struct *)private_data;
+
+ if (!VALID_STAT(smb_fname->st)) {
+ if ((SMB_VFS_STAT(conn, smb_fname)) != 0) {
+ DEBUG(5,("smbd_dirptr_8_3_mode_fn: "
+ "Couldn't stat [%s]. Error "
+ "= %s\n",
+ smb_fname_str_dbg(smb_fname),
+ strerror(errno)));
+ return false;
}
+ }
+
+ *_mode = dos_mode(conn, smb_fname);
+ return true;
+}
- if (!found)
- TALLOC_FREE(filename);
+bool get_dir_entry(TALLOC_CTX *ctx,
+ struct dptr_struct *dirptr,
+ const char *mask,
+ uint32_t dirtype,
+ char **_fname,
+ SMB_OFF_T *_size,
+ uint32_t *_mode,
+ struct timespec *_date,
+ bool check_descend,
+ bool ask_sharemode)
+{
+ connection_struct *conn = dirptr->conn;
+ char *fname = NULL;
+ struct smb_filename *smb_fname = NULL;
+ uint32_t mode = 0;
+ long prev_offset;
+ bool ok;
+
+ ok = smbd_dirptr_get_entry(ctx,
+ dirptr,
+ mask,
+ dirtype,
+ check_descend,
+ ask_sharemode,
+ smbd_dirptr_8_3_match_fn,
+ smbd_dirptr_8_3_mode_fn,
+ conn,
+ &fname,
+ &smb_fname,
+ &mode,
+ &prev_offset);
+ if (!ok) {
+ return false;
}
- return(found);
+ *_fname = talloc_move(ctx, &fname);
+ *_size = smb_fname->st.st_ex_size;
+ *_mode = mode;
+ *_date = smb_fname->st.st_ex_mtime;
+ TALLOC_FREE(smb_fname);
+ return true;
}
/*******************************************************************
@@ -1152,7 +1283,9 @@ static int smb_Dir_destructor(struct smb_Dir *dirp)
if (dirp->dir) {
SMB_VFS_CLOSEDIR(dirp->conn,dirp->dir);
}
- dirhandles_open--;
+ if (dirp->conn->sconn) {
+ dirp->conn->sconn->smb1.searches.dirhandles_open--;
+ }
return 0;
}
@@ -1164,6 +1297,7 @@ struct smb_Dir *OpenDir(TALLOC_CTX *mem_ctx, connection_struct *conn,
const char *name, const char *mask, uint32 attr)
{
struct smb_Dir *dirp = TALLOC_ZERO_P(mem_ctx, struct smb_Dir);
+ struct smbd_server_connection *sconn = conn->sconn;
if (!dirp) {
return NULL;
@@ -1178,7 +1312,9 @@ struct smb_Dir *OpenDir(TALLOC_CTX *mem_ctx, connection_struct *conn,
goto fail;
}
- dirhandles_open++;
+ if (sconn) {
+ sconn->smb1.searches.dirhandles_open++;
+ }
talloc_set_destructor(dirp, smb_Dir_destructor);
dirp->dir = SMB_VFS_OPENDIR(conn, dirp->dir_path, mask, attr);
diff --git a/source3/smbd/files.c b/source3/smbd/files.c
index a170f774fe..146d809738 100644
--- a/source3/smbd/files.c
+++ b/source3/smbd/files.c
@@ -404,14 +404,15 @@ bool file_find_subpath(files_struct *dir_fsp)
{
files_struct *fsp;
size_t dlen;
- char *d_fullname;
+ char *d_fullname = NULL;
+ bool ret = false;
d_fullname = talloc_asprintf(talloc_tos(), "%s/%s",
dir_fsp->conn->connectpath,
dir_fsp->fsp_name->base_name);
if (!d_fullname) {
- return false;
+ goto out;
}
dlen = strlen(d_fullname);
@@ -429,15 +430,27 @@ bool file_find_subpath(files_struct *dir_fsp)
fsp->fsp_name->base_name);
if (strnequal(d_fullname, d1_fullname, dlen)) {
- TALLOC_FREE(d_fullname);
+ int d1_len = strlen(d1_fullname);
+
+ /*
+ * If the open file is a second file handle to the
+ * same name or is a stream on the original file, then
+ * don't return true.
+ */
+ if (d1_len == dlen) {
+ TALLOC_FREE(d1_fullname);
+ continue;
+ }
+
TALLOC_FREE(d1_fullname);
- return true;
+ ret = true;
+ goto out;
}
TALLOC_FREE(d1_fullname);
}
-
+ out:
TALLOC_FREE(d_fullname);
- return false;
+ return ret;
}
/****************************************************************************
diff --git a/source3/smbd/globals.c b/source3/smbd/globals.c
index 317304a86d..f680b76369 100644
--- a/source3/smbd/globals.c
+++ b/source3/smbd/globals.c
@@ -46,10 +46,6 @@ struct smbd_dmapi_context *dmapi_ctx = NULL;
bool dfree_broken = false;
-struct bitmap *dptr_bmap = NULL;
-struct dptr_struct *dirptrs = NULL;
-int dirhandles_open = 0;
-
/* how many write cache buffers have been allocated */
unsigned int allocated_write_caches = 0;
diff --git a/source3/smbd/globals.h b/source3/smbd/globals.h
index 434204b60d..338398968a 100644
--- a/source3/smbd/globals.h
+++ b/source3/smbd/globals.h
@@ -44,11 +44,6 @@ extern struct smbd_dmapi_context *dmapi_ctx;
extern bool dfree_broken;
-extern struct bitmap *dptr_bmap;
-//struct dptr_struct;
-extern struct dptr_struct *dirptrs;
-extern int dirhandles_open;
-
/* how many write cache buffers have been allocated */
extern unsigned int allocated_write_caches;
@@ -218,6 +213,27 @@ NTSTATUS smbd_do_qfsinfo(connection_struct *conn,
char **ppdata,
int *ret_data_len);
+bool smbd_dirptr_get_entry(TALLOC_CTX *ctx,
+ struct dptr_struct *dirptr,
+ const char *mask,
+ uint32_t dirtype,
+ bool dont_descend,
+ bool ask_sharemode,
+ bool (*match_fn)(TALLOC_CTX *ctx,
+ void *private_data,
+ const char *dname,
+ const char *mask,
+ char **_fname),
+ bool (*mode_fn)(TALLOC_CTX *ctx,
+ void *private_data,
+ struct smb_filename *smb_fname,
+ uint32_t *_mode),
+ void *private_data,
+ char **_fname,
+ struct smb_filename **_smb_fname,
+ uint32_t *_mode,
+ long *_prev_offset);
+
void smbd_server_connection_terminate_ex(struct smbd_server_connection *sconn,
const char *reason,
const char *location);
@@ -432,6 +448,12 @@ struct smbd_server_connection {
struct pending_auth_data *pd_list;
struct notify_mid_map *notify_mid_maps;
+
+ struct {
+ struct bitmap *dptr_bmap;
+ struct dptr_struct *dirptrs;
+ int dirhandles_open;
+ } searches;
} smb1;
struct {
struct tevent_context *event_ctx;
diff --git a/source3/smbd/ipc.c b/source3/smbd/ipc.c
index 96a411dd70..12d4922844 100644
--- a/source3/smbd/ipc.c
+++ b/source3/smbd/ipc.c
@@ -534,7 +534,6 @@ static void named_pipe(connection_struct *conn, uint16 vuid,
static void handle_trans(connection_struct *conn, struct smb_request *req,
struct trans_state *state)
{
- struct smbd_server_connection *sconn = smbd_server_conn;
char *local_machine_name;
int name_offset = 0;
@@ -585,7 +584,7 @@ static void handle_trans(connection_struct *conn, struct smb_request *req,
state->max_param_return);
if (state->close_on_completion) {
- close_cnum(sconn, conn,state->vuid);
+ close_cnum(conn,state->vuid);
req->conn = NULL;
}
diff --git a/source3/smbd/msdfs.c b/source3/smbd/msdfs.c
index 22fb8c3ad6..767c8fe297 100644
--- a/source3/smbd/msdfs.c
+++ b/source3/smbd/msdfs.c
@@ -268,7 +268,7 @@ NTSTATUS create_conn_struct(TALLOC_CTX *ctx,
if (!smbd_vfs_init(conn)) {
NTSTATUS status = map_nt_error_from_unix(errno);
DEBUG(0,("create_conn_struct: smbd_vfs_init failed.\n"));
- conn_free_internal(conn);
+ conn_free(conn);
return status;
}
@@ -284,7 +284,7 @@ NTSTATUS create_conn_struct(TALLOC_CTX *ctx,
if (oldcwd == NULL) {
NTSTATUS status = map_nt_error_from_unix(errno);
DEBUG(3, ("vfs_GetWd failed: %s\n", strerror(errno)));
- conn_free_internal(conn);
+ conn_free(conn);
return status;
}
@@ -293,7 +293,7 @@ NTSTATUS create_conn_struct(TALLOC_CTX *ctx,
DEBUG(3,("create_conn_struct: Can't ChDir to new conn path %s. "
"Error was %s\n",
conn->connectpath, strerror(errno) ));
- conn_free_internal(conn);
+ conn_free(conn);
return status;
}
@@ -939,7 +939,7 @@ NTSTATUS get_referred_path(TALLOC_CTX *ctx,
DEBUG(3,("get_referred_path: No valid referrals for path %s\n",
dfs_path));
vfs_ChDir(conn, oldpath);
- conn_free_internal(conn);
+ conn_free(conn);
TALLOC_FREE(pdp);
return status;
}
@@ -951,13 +951,13 @@ NTSTATUS get_referred_path(TALLOC_CTX *ctx,
DEBUG(3,("get_referred_path: failed to parse symlink "
"target %s\n", targetpath ));
vfs_ChDir(conn, oldpath);
- conn_free_internal(conn);
+ conn_free(conn);
TALLOC_FREE(pdp);
return NT_STATUS_NOT_FOUND;
}
vfs_ChDir(conn, oldpath);
- conn_free_internal(conn);
+ conn_free(conn);
TALLOC_FREE(pdp);
return NT_STATUS_OK;
}
@@ -1374,7 +1374,7 @@ static bool junction_to_local_path(const struct junction_map *jucn,
jucn->volume_name);
if (!*pp_path_out) {
vfs_ChDir(*conn_out, *oldpath);
- conn_free_internal(*conn_out);
+ conn_free(*conn_out);
return False;
}
return True;
@@ -1462,7 +1462,7 @@ bool create_msdfs_link(const struct junction_map *jucn)
out:
vfs_ChDir(conn, cwd);
- conn_free_internal(conn);
+ conn_free(conn);
return ret;
}
@@ -1493,7 +1493,7 @@ bool remove_msdfs_link(const struct junction_map *jucn)
TALLOC_FREE(smb_fname);
vfs_ChDir(conn, cwd);
- conn_free_internal(conn);
+ conn_free(conn);
return ret;
}
@@ -1554,7 +1554,7 @@ static int count_dfs_links(TALLOC_CTX *ctx, int snum)
out:
vfs_ChDir(conn, cwd);
- conn_free_internal(conn);
+ conn_free(conn);
return cnt;
}
@@ -1680,7 +1680,7 @@ out:
}
vfs_ChDir(conn, cwd);
- conn_free_internal(conn);
+ conn_free(conn);
return cnt;
}
diff --git a/source3/smbd/posix_acls.c b/source3/smbd/posix_acls.c
index 0a3b0dff75..b61421dc8f 100644
--- a/source3/smbd/posix_acls.c
+++ b/source3/smbd/posix_acls.c
@@ -4360,7 +4360,7 @@ static SMB_ACL_T create_posix_acl_from_wire(connection_struct *conn, uint16 num_
on the directory.
****************************************************************************/
-bool set_unix_posix_default_acl(connection_struct *conn, const char *fname, SMB_STRUCT_STAT *psbuf,
+bool set_unix_posix_default_acl(connection_struct *conn, const char *fname, const SMB_STRUCT_STAT *psbuf,
uint16 num_def_acls, const char *pdata)
{
SMB_ACL_T def_acl = NULL;
@@ -4616,7 +4616,7 @@ SEC_DESC *get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname)
if (!smbd_vfs_init(conn)) {
DEBUG(0,("get_nt_acl_no_snum: Unable to create a fake connection struct!\n"));
- conn_free_internal( conn );
+ conn_free(conn);
return NULL;
}
@@ -4631,21 +4631,21 @@ SEC_DESC *get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname)
status = create_synthetic_smb_fname(talloc_tos(), fname, NULL, NULL,
&finfo.fsp_name);
if (!NT_STATUS_IS_OK(status)) {
- conn_free_internal( conn );
+ conn_free(conn);
return NULL;
}
if (!NT_STATUS_IS_OK(SMB_VFS_FGET_NT_ACL( &finfo, DACL_SECURITY_INFORMATION, &psd))) {
DEBUG(0,("get_nt_acl_no_snum: get_nt_acl returned zero.\n"));
TALLOC_FREE(finfo.fsp_name);
- conn_free_internal( conn );
+ conn_free(conn);
return NULL;
}
ret_sd = dup_sec_desc( ctx, psd );
TALLOC_FREE(finfo.fsp_name);
- conn_free_internal( conn );
+ conn_free(conn);
return ret_sd;
}
diff --git a/source3/smbd/process.c b/source3/smbd/process.c
index 99c862300d..6ec46071ff 100644
--- a/source3/smbd/process.c
+++ b/source3/smbd/process.c
@@ -2206,6 +2206,9 @@ void smbd_process(void)
#endif
conn_init(smbd_server_conn);
+ if (!init_dptrs(smbd_server_conn)) {
+ exit_server("init_dptrs() failed");
+ }
smbd_server_conn->smb1.fde = event_add_fd(smbd_event_context(),
smbd_server_conn,
diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c
index 77e122a90c..3498109f12 100644
--- a/source3/smbd/reply.c
+++ b/source3/smbd/reply.c
@@ -703,7 +703,7 @@ void reply_tcon_and_X(struct smb_request *req)
/* we might have to close an old one */
if ((tcon_flags & 0x1) && conn) {
- close_cnum(sconn, conn,req->vuid);
+ close_cnum(conn,req->vuid);
req->conn = NULL;
conn = NULL;
}
@@ -1366,6 +1366,8 @@ void reply_search(struct smb_request *req)
bool allow_long_path_components = (req->flags2 & FLAGS2_LONG_PATH_COMPONENTS) ? True : False;
TALLOC_CTX *ctx = talloc_tos();
bool ask_sharemode = lp_parm_bool(SNUM(conn), "smbd", "search ask sharemode", true);
+ struct dptr_struct *dirptr = NULL;
+ struct smbd_server_connection *sconn = smbd_server_conn;
START_PROFILE(SMBsearch);
@@ -1446,14 +1448,15 @@ void reply_search(struct smb_request *req)
mask,
mask_contains_wcard,
dirtype,
- &conn->dirptr);
+ &dirptr);
if (!NT_STATUS_IS_OK(nt_status)) {
reply_nterror(req, nt_status);
goto out;
}
- dptr_num = dptr_dnum(conn->dirptr);
+ dptr_num = dptr_dnum(dirptr);
} else {
int status_dirtype;
+ const char *dirpath;
memcpy(status,p,21);
status_dirtype = CVAL(status,0) & 0x1F;
@@ -1461,12 +1464,18 @@ void reply_search(struct smb_request *req)
dirtype = status_dirtype;
}
- conn->dirptr = dptr_fetch(status+12,&dptr_num);
- if (!conn->dirptr) {
+ dirptr = dptr_fetch(sconn, status+12,&dptr_num);
+ if (!dirptr) {
goto SearchEmpty;
}
- string_set(&conn->dirpath,dptr_path(dptr_num));
- mask = dptr_wcard(dptr_num);
+ dirpath = dptr_path(sconn, dptr_num);
+ directory = talloc_strdup(ctx, dirpath);
+ if (!directory) {
+ reply_nterror(req, NT_STATUS_NO_MEMORY);
+ goto out;
+ }
+
+ mask = dptr_wcard(sconn, dptr_num);
if (!mask) {
goto SearchEmpty;
}
@@ -1475,13 +1484,13 @@ void reply_search(struct smb_request *req)
* check from the initial saved string.
*/
mask_contains_wcard = ms_has_wild(mask);
- dirtype = dptr_attr(dptr_num);
+ dirtype = dptr_attr(sconn, dptr_num);
}
DEBUG(4,("dptr_num is %d\n",dptr_num));
/* Initialize per SMBsearch/SMBffirst/SMBfunique operation data */
- dptr_init_search_op(conn->dirptr);
+ dptr_init_search_op(dirptr);
if ((dirtype&0x1F) == aVOLID) {
char buf[DIR_STRUCT_SIZE];
@@ -1491,7 +1500,7 @@ void reply_search(struct smb_request *req)
reply_nterror(req, NT_STATUS_NO_MEMORY);
goto out;
}
- dptr_fill(buf+12,dptr_num);
+ dptr_fill(sconn, buf+12,dptr_num);
if (dptr_zero(buf+12) && (status_len==0)) {
numentries = 1;
} else {
@@ -1512,14 +1521,14 @@ void reply_search(struct smb_request *req)
/DIR_STRUCT_SIZE));
DEBUG(8,("dirpath=<%s> dontdescend=<%s>\n",
- conn->dirpath,lp_dontdescend(SNUM(conn))));
- if (in_list(conn->dirpath, lp_dontdescend(SNUM(conn)),True)) {
+ directory,lp_dontdescend(SNUM(conn))));
+ if (in_list(directory, lp_dontdescend(SNUM(conn)),True)) {
check_descend = True;
}
for (i=numentries;(i<maxentries) && !finished;i++) {
finished = !get_dir_entry(ctx,
- conn,
+ dirptr,
mask,
dirtype,
&fname,
@@ -1542,7 +1551,7 @@ void reply_search(struct smb_request *req)
reply_nterror(req, NT_STATUS_NO_MEMORY);
goto out;
}
- if (!dptr_fill(buf+12,dptr_num)) {
+ if (!dptr_fill(sconn, buf+12,dptr_num)) {
break;
}
if (message_push_blob(&req->outbuf,
@@ -1563,15 +1572,15 @@ void reply_search(struct smb_request *req)
(X/Open spec) */
if (numentries == 0) {
- dptr_close(&dptr_num);
+ dptr_close(sconn, &dptr_num);
} else if(expect_close && status_len == 0) {
/* Close the dptr - we know it's gone */
- dptr_close(&dptr_num);
+ dptr_close(sconn, &dptr_num);
}
/* If we were called as SMBfunique, then we can close the dirptr now ! */
if(dptr_num >= 0 && req->cmd == SMBfunique) {
- dptr_close(&dptr_num);
+ dptr_close(sconn, &dptr_num);
}
if ((numentries == 0) && !mask_contains_wcard) {
@@ -1597,18 +1606,15 @@ void reply_search(struct smb_request *req)
SSVAL(req->outbuf, smb_flg2,
(SVAL(req->outbuf, smb_flg2) & (~FLAGS2_UNICODE_STRINGS)));
- if (!directory) {
- directory = dptr_path(dptr_num);
- }
-
DEBUG(4,("%s mask=%s path=%s dtype=%d nument=%u of %u\n",
smb_fn_name(req->cmd),
mask,
- directory ? directory : "./",
+ directory,
dirtype,
numentries,
maxentries ));
out:
+ TALLOC_FREE(directory);
TALLOC_FREE(smb_fname);
END_PROFILE(SMBsearch);
return;
@@ -1628,6 +1634,7 @@ void reply_fclose(struct smb_request *req)
NTSTATUS err;
bool path_contains_wcard = False;
TALLOC_CTX *ctx = talloc_tos();
+ struct smbd_server_connection *sconn = smbd_server_conn;
START_PROFILE(SMBfclose);
@@ -1657,9 +1664,9 @@ void reply_fclose(struct smb_request *req)
memcpy(status,p,21);
- if(dptr_fetch(status+12,&dptr_num)) {
+ if(dptr_fetch(sconn, status+12,&dptr_num)) {
/* Close the dptr - we know it's gone */
- dptr_close(&dptr_num);
+ dptr_close(sconn, &dptr_num);
}
reply_outbuf(req, 1, 0);
@@ -4868,7 +4875,6 @@ void reply_unlock(struct smb_request *req)
void reply_tdis(struct smb_request *req)
{
- struct smbd_server_connection *sconn = smbd_server_conn;
connection_struct *conn = req->conn;
START_PROFILE(SMBtdis);
@@ -4881,7 +4887,7 @@ void reply_tdis(struct smb_request *req)
conn->used = False;
- close_cnum(sconn, conn,req->vuid);
+ close_cnum(conn,req->vuid);
req->conn = NULL;
reply_outbuf(req, 0, 0);
@@ -5528,6 +5534,7 @@ void reply_rmdir(struct smb_request *req)
char *directory = NULL;
NTSTATUS status;
TALLOC_CTX *ctx = talloc_tos();
+ struct smbd_server_connection *sconn = smbd_server_conn;
START_PROFILE(SMBrmdir);
@@ -5559,7 +5566,7 @@ void reply_rmdir(struct smb_request *req)
goto out;
}
- dptr_closepath(smb_dname->base_name, req->smbpid);
+ dptr_closepath(sconn, smb_dname->base_name, req->smbpid);
status = rmdir_internals(ctx, conn, smb_dname);
if (!NT_STATUS_IS_OK(status)) {
reply_nterror(req, status);
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 4b1c803d75..ace3124842 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -914,8 +914,6 @@ static bool init_structs(void )
file_init();
- init_dptrs();
-
if (!secrets_init())
return False;
diff --git a/source3/smbd/service.c b/source3/smbd/service.c
index a043288bc9..fc56105adf 100644
--- a/source3/smbd/service.c
+++ b/source3/smbd/service.c
@@ -673,7 +673,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
DEBUG(1, ("create_connection_server_info failed: %s\n",
nt_errstr(status)));
*pstatus = status;
- conn_free(sconn, conn);
+ conn_free(conn);
return NULL;
}
@@ -692,7 +692,6 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
conn->printer = (strncmp(dev,"LPT",3) == 0);
conn->ipc = ( (strncmp(dev,"IPC",3) == 0) ||
( lp_enable_asu_support() && strequal(dev,"ADMIN$")) );
- conn->dirptr = NULL;
/* Case options for the share. */
if (lp_casesensitive(snum) == Auto) {
@@ -712,7 +711,6 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
conn->hide_list = NULL;
conn->veto_oplock_list = NULL;
conn->aio_write_behind_list = NULL;
- string_set(&conn->dirpath,"");
conn->read_only = lp_readonly(SNUM(conn));
conn->admin_user = False;
@@ -730,7 +728,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
fuser = talloc_string_sub(conn, lp_force_user(snum), "%S",
lp_servicename(snum));
if (fuser == NULL) {
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_NO_MEMORY;
return NULL;
}
@@ -739,7 +737,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
conn, fuser, conn->server_info->guest,
&forced_serverinfo);
if (!NT_STATUS_IS_OK(status)) {
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = status;
return NULL;
}
@@ -764,7 +762,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
&conn->server_info->utok.gid);
if (!NT_STATUS_IS_OK(status)) {
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = status;
return NULL;
}
@@ -790,14 +788,14 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
pdb_get_domain(conn->server_info->sam_account),
lp_pathname(snum));
if (!s) {
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_NO_MEMORY;
return NULL;
}
if (!set_conn_connectpath(conn,s)) {
TALLOC_FREE(s);
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_NO_MEMORY;
return NULL;
}
@@ -829,7 +827,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
"denied due to security "
"descriptor.\n",
lp_servicename(snum)));
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_ACCESS_DENIED;
return NULL;
} else {
@@ -842,7 +840,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
if (!smbd_vfs_init(conn)) {
DEBUG(0, ("vfs_init failed for service %s\n",
lp_servicename(snum)));
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_BAD_NETWORK_NAME;
return NULL;
}
@@ -860,7 +858,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
"for service %s, path %s\n",
lp_servicename(snum),
conn->connectpath));
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_BAD_NETWORK_NAME;
return NULL;
}
@@ -884,7 +882,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
DEBUG(1, ("Max connections (%d) exceeded for %s\n",
lp_max_connections(snum), lp_servicename(snum)));
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_INSUFFICIENT_RESOURCES;
return NULL;
}
@@ -894,7 +892,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
*/
if (!claim_connection(conn, lp_servicename(snum), 0)) {
DEBUG(1, ("Could not store connections entry\n"));
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_INTERNAL_DB_ERROR;
return NULL;
}
@@ -918,7 +916,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
DEBUG(1,("root preexec gave %d - failing "
"connection\n", ret));
yield_connection(conn, lp_servicename(snum));
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_ACCESS_DENIED;
return NULL;
}
@@ -929,7 +927,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
/* No point continuing if they fail the basic checks */
DEBUG(0,("Can't become connected user!\n"));
yield_connection(conn, lp_servicename(snum));
- conn_free(sconn, conn);
+ conn_free(conn);
*pstatus = NT_STATUS_LOGON_FAILURE;
return NULL;
}
@@ -1072,7 +1070,7 @@ connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
SMB_VFS_DISCONNECT(conn);
}
yield_connection(conn, lp_servicename(snum));
- conn_free(sconn, conn);
+ conn_free(conn);
return NULL;
}
@@ -1219,8 +1217,7 @@ connection_struct *make_connection(struct smbd_server_connection *sconn,
Close a cnum.
****************************************************************************/
-void close_cnum(struct smbd_server_connection *sconn,
- connection_struct *conn, uint16 vuid)
+void close_cnum(connection_struct *conn, uint16 vuid)
{
file_close_conn(conn);
@@ -1274,5 +1271,5 @@ void close_cnum(struct smbd_server_connection *sconn,
TALLOC_FREE(cmd);
}
- conn_free(sconn, conn);
+ conn_free(conn);
}
diff --git a/source3/smbd/smb2_tcon.c b/source3/smbd/smb2_tcon.c
index 8c4b1f1b6f..090f9b7908 100644
--- a/source3/smbd/smb2_tcon.c
+++ b/source3/smbd/smb2_tcon.c
@@ -127,7 +127,7 @@ static int smbd_smb2_tcon_destructor(struct smbd_smb2_tcon *tcon)
idr_remove(tcon->session->tcons.idtree, tcon->tid);
DLIST_REMOVE(tcon->session->tcons.list, tcon);
- conn_free(tcon->session->conn, tcon->compat_conn);
+ conn_free(tcon->compat_conn);
tcon->compat_conn = NULL;
tcon->tid = 0;
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 184a858097..2e47eab4f0 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -1165,19 +1165,24 @@ static void call_trans2open(connection_struct *conn,
Case can be significant or not.
**********************************************************/
-static bool exact_match(connection_struct *conn,
- const char *str,
- const char *mask)
+static bool exact_match(bool has_wild,
+ bool case_sensitive,
+ const char *str,
+ const char *mask)
{
- if (mask[0] == '.' && mask[1] == 0)
- return False;
- if (dptr_has_wild(conn->dirptr)) {
- return False;
+ if (mask[0] == '.' && mask[1] == 0) {
+ return false;
+ }
+
+ if (has_wild) {
+ return false;
}
- if (conn->case_sensitive)
+
+ if (case_sensitive) {
return strcmp(str,mask)==0;
- else
+ } else {
return StrCaseCmp(str,mask) == 0;
+ }
}
/****************************************************************************
@@ -1317,671 +1322,589 @@ static bool check_msdfs_link(connection_struct *conn,
Get a level dependent lanman2 dir entry.
****************************************************************************/
-static bool get_lanman2_dir_entry(TALLOC_CTX *ctx,
- connection_struct *conn,
- uint16 flags2,
- const char *path_mask,
- uint32 dirtype,
- int info_level,
- int requires_resume_key,
- bool dont_descend,
- bool ask_sharemode,
- char **ppdata,
- char *base_data,
- char *end_data,
- int space_remaining,
- bool *out_of_space,
- bool *got_exact_match,
- int *last_entry_off,
- struct ea_list *name_list)
+struct smbd_dirptr_lanman2_state {
+ connection_struct *conn;
+ uint32_t info_level;
+ bool check_mangled_names;
+ bool has_wild;
+ bool got_exact_match;
+};
+
+static bool smbd_dirptr_lanman2_match_fn(TALLOC_CTX *ctx,
+ void *private_data,
+ const char *dname,
+ const char *mask,
+ char **_fname)
{
- char *dname;
- bool found = False;
- SMB_STRUCT_STAT sbuf;
- const char *mask = NULL;
- char *pathreal = NULL;
- char *fname = NULL;
- char *p, *q, *pdata = *ppdata;
- uint32 reskey=0;
- long prev_dirpos=0;
- uint32 mode=0;
- SMB_OFF_T file_size = 0;
- uint64_t allocation_size = 0;
- uint32 len;
- struct timespec mdate_ts, adate_ts, create_date_ts;
- time_t mdate = (time_t)0, adate = (time_t)0, create_date = (time_t)0;
- char *nameptr;
- char *last_entry_ptr;
- bool was_8_3;
- uint32 nt_extmode; /* Used for NT connections instead of mode */
- bool needslash = ( conn->dirpath[strlen(conn->dirpath) -1] != '/');
- bool check_mangled_names = lp_manglednames(conn->params);
+ struct smbd_dirptr_lanman2_state *state =
+ (struct smbd_dirptr_lanman2_state *)private_data;
+ bool ok;
char mangled_name[13]; /* mangled 8.3 name. */
+ bool got_match;
+ const char *fname;
- *out_of_space = False;
- *got_exact_match = False;
-
- ZERO_STRUCT(mdate_ts);
- ZERO_STRUCT(adate_ts);
- ZERO_STRUCT(create_date_ts);
-
- if (!conn->dirptr) {
- return(False);
- }
-
- p = strrchr_m(path_mask,'/');
- if(p != NULL) {
- if(p[1] == '\0') {
- mask = talloc_strdup(ctx,"*.*");
- } else {
- mask = p+1;
+ /* Mangle fname if it's an illegal name. */
+ if (mangle_must_mangle(dname, state->conn->params)) {
+ ok = name_to_8_3(dname, mangled_name,
+ true, state->conn->params);
+ if (!ok) {
+ return false;
}
+ fname = mangled_name;
} else {
- mask = path_mask;
+ fname = dname;
}
- while (!found) {
- bool got_match;
- bool ms_dfs_link = False;
-
- /* Needed if we run out of space */
- long curr_dirpos = prev_dirpos = dptr_TellDir(conn->dirptr);
- dname = dptr_ReadDirName(ctx,conn->dirptr,&curr_dirpos,&sbuf);
-
- /*
- * Due to bugs in NT client redirectors we are not using
- * resume keys any more - set them to zero.
- * Check out the related comments in findfirst/findnext.
- * JRA.
- */
-
- reskey = 0;
-
- DEBUG(8,("get_lanman2_dir_entry:readdir on dirptr 0x%lx now at offset %ld\n",
- (long)conn->dirptr,curr_dirpos));
-
- if (!dname) {
- return(False);
- }
+ got_match = exact_match(state->has_wild,
+ state->conn->case_sensitive,
+ fname, mask);
+ state->got_exact_match = got_match;
+ if (!got_match) {
+ got_match = mask_match(fname, mask,
+ state->conn->case_sensitive);
+ }
+ if(!got_match && state->check_mangled_names &&
+ !mangle_is_8_3(fname, false, state->conn->params)) {
/*
- * fname may get mangled, dname is never mangled.
- * Whenever we're accessing the filesystem we use
- * pathreal which is composed from dname.
+ * It turns out that NT matches wildcards against
+ * both long *and* short names. This may explain some
+ * of the wildcard wierdness from old DOS clients
+ * that some people have been seeing.... JRA.
*/
-
- pathreal = NULL;
- fname = dname;
-
- /* Mangle fname if it's an illegal name. */
- if (mangle_must_mangle(dname,conn->params)) {
- if (!name_to_8_3(dname,mangled_name,True,conn->params)) {
- TALLOC_FREE(fname);
- continue; /* Error - couldn't mangle. */
- }
- fname = talloc_strdup(ctx, mangled_name);
- if (!fname) {
- return False;
- }
+ /* Force the mangling into 8.3. */
+ ok = name_to_8_3(fname, mangled_name,
+ false, state->conn->params);
+ if (!ok) {
+ return false;
}
- if(!(got_match = *got_exact_match = exact_match(conn, fname, mask))) {
- got_match = mask_match(fname, mask, conn->case_sensitive);
+ got_match = exact_match(state->has_wild,
+ state->conn->case_sensitive,
+ mangled_name, mask);
+ state->got_exact_match = got_match;
+ if (!got_match) {
+ got_match = mask_match(mangled_name, mask,
+ state->conn->case_sensitive);
}
+ }
- if(!got_match && check_mangled_names &&
- !mangle_is_8_3(fname, False, conn->params)) {
- /*
- * It turns out that NT matches wildcards against
- * both long *and* short names. This may explain some
- * of the wildcard wierdness from old DOS clients
- * that some people have been seeing.... JRA.
- */
- /* Force the mangling into 8.3. */
- if (!name_to_8_3( fname, mangled_name, False, conn->params)) {
- TALLOC_FREE(fname);
- continue; /* Error - couldn't mangle. */
- }
-
- if(!(got_match = *got_exact_match = exact_match(conn, mangled_name, mask))) {
- got_match = mask_match(mangled_name, mask, conn->case_sensitive);
- }
- }
-
- if (got_match) {
- bool isdots = (ISDOT(dname) || ISDOTDOT(dname));
- struct smb_filename *smb_fname = NULL;
- NTSTATUS status;
-
- if (dont_descend && !isdots) {
- TALLOC_FREE(fname);
- continue;
- }
-
- if (needslash) {
- pathreal = NULL;
- pathreal = talloc_asprintf(ctx,
- "%s/%s",
- conn->dirpath,
- dname);
- } else {
- pathreal = talloc_asprintf(ctx,
- "%s%s",
- conn->dirpath,
- dname);
- }
-
- if (!pathreal) {
- TALLOC_FREE(fname);
- return False;
- }
-
- /* A dirent from dptr_ReadDirName isn't a stream. */
- status = create_synthetic_smb_fname(ctx, pathreal,
- NULL, &sbuf,
- &smb_fname);
- if (!NT_STATUS_IS_OK(status)) {
- TALLOC_FREE(fname);
- return false;
- }
+ if (!got_match) {
+ return false;
+ }
- if (INFO_LEVEL_IS_UNIX(info_level)) {
- if (SMB_VFS_LSTAT(conn, smb_fname) != 0) {
- DEBUG(5,("get_lanman2_dir_entry: "
- "Couldn't lstat [%s] (%s)\n",
- smb_fname_str_dbg(smb_fname),
- strerror(errno)));
- TALLOC_FREE(smb_fname);
- TALLOC_FREE(pathreal);
- TALLOC_FREE(fname);
- continue;
- }
- } else if (!VALID_STAT(smb_fname->st) &&
- SMB_VFS_STAT(conn, smb_fname) != 0) {
- /* Needed to show the msdfs symlinks as
- * directories */
-
- ms_dfs_link =
- check_msdfs_link(conn,
- smb_fname->base_name,
- &smb_fname->st);
- if (!ms_dfs_link) {
- DEBUG(5,("get_lanman2_dir_entry: "
- "Couldn't stat [%s] (%s)\n",
- smb_fname_str_dbg(smb_fname),
- strerror(errno)));
- TALLOC_FREE(smb_fname);
- TALLOC_FREE(pathreal);
- TALLOC_FREE(fname);
- continue;
- }
- }
+ *_fname = talloc_strdup(ctx, fname);
+ if (*_fname == NULL) {
+ return false;
+ }
- if (ms_dfs_link) {
- mode = dos_mode_msdfs(conn, smb_fname);
- } else {
- mode = dos_mode(conn, smb_fname);
- }
+ return true;
+}
- if (!dir_check_ftype(conn,mode,dirtype)) {
- DEBUG(5,("get_lanman2_dir_entry: [%s] attribs didn't match %x\n",fname,dirtype));
- TALLOC_FREE(smb_fname);
- TALLOC_FREE(pathreal);
- TALLOC_FREE(fname);
- continue;
- }
+static bool smbd_dirptr_lanman2_mode_fn(TALLOC_CTX *ctx,
+ void *private_data,
+ struct smb_filename *smb_fname,
+ uint32_t *_mode)
+{
+ struct smbd_dirptr_lanman2_state *state =
+ (struct smbd_dirptr_lanman2_state *)private_data;
+ bool ms_dfs_link = false;
+ uint32_t mode = 0;
- if (!(mode & aDIR)) {
- file_size = get_file_size_stat(&smb_fname->st);
- }
- allocation_size =
- SMB_VFS_GET_ALLOC_SIZE(conn, NULL, &smb_fname->st);
-
- if (ask_sharemode) {
- struct timespec write_time_ts;
- struct file_id fileid;
-
- ZERO_STRUCT(write_time_ts);
- fileid = vfs_file_id_from_sbuf(conn,
- &smb_fname->st);
- get_file_infos(fileid, NULL, &write_time_ts);
- if (!null_timespec(write_time_ts)) {
- update_stat_ex_mtime(&smb_fname->st,
- write_time_ts);
- }
- }
+ if (INFO_LEVEL_IS_UNIX(state->info_level)) {
+ if (SMB_VFS_LSTAT(state->conn, smb_fname) != 0) {
+ DEBUG(5,("smbd_dirptr_lanman2_mode_fn: "
+ "Couldn't lstat [%s] (%s)\n",
+ smb_fname_str_dbg(smb_fname),
+ strerror(errno)));
+ return false;
+ }
+ } else if (!VALID_STAT(smb_fname->st) &&
+ SMB_VFS_STAT(state->conn, smb_fname) != 0) {
+ /* Needed to show the msdfs symlinks as
+ * directories */
+
+ ms_dfs_link = check_msdfs_link(state->conn,
+ smb_fname->base_name,
+ &smb_fname->st);
+ if (!ms_dfs_link) {
+ DEBUG(5,("smbd_dirptr_lanman2_mode_fn: "
+ "Couldn't stat [%s] (%s)\n",
+ smb_fname_str_dbg(smb_fname),
+ strerror(errno)));
+ return false;
+ }
+ }
- mdate_ts = smb_fname->st.st_ex_mtime;
- adate_ts = smb_fname->st.st_ex_atime;
- create_date_ts = smb_fname->st.st_ex_btime;
+ if (ms_dfs_link) {
+ mode = dos_mode_msdfs(state->conn, smb_fname);
+ } else {
+ mode = dos_mode(state->conn, smb_fname);
+ }
- if (lp_dos_filetime_resolution(SNUM(conn))) {
- dos_filetime_timespec(&create_date_ts);
- dos_filetime_timespec(&mdate_ts);
- dos_filetime_timespec(&adate_ts);
- }
+ *_mode = mode;
+ return true;
+}
- create_date = convert_timespec_to_time_t(create_date_ts);
- mdate = convert_timespec_to_time_t(mdate_ts);
- adate = convert_timespec_to_time_t(adate_ts);
+static bool smbd_marshall_dir_entry(TALLOC_CTX *ctx,
+ connection_struct *conn,
+ uint16_t flags2,
+ uint32_t info_level,
+ struct ea_list *name_list,
+ bool check_mangled_names,
+ bool requires_resume_key,
+ uint32_t mode,
+ const char *fname,
+ const struct smb_filename *smb_fname,
+ uint64_t space_remaining,
+ char *base_data,
+ char **ppdata,
+ char *end_data,
+ bool *out_of_space,
+ uint64_t *last_entry_off)
+{
+ char *p, *q, *pdata = *ppdata;
+ uint32_t reskey=0;
+ uint64_t file_size = 0;
+ uint64_t allocation_size = 0;
+ uint32_t len;
+ struct timespec mdate_ts, adate_ts, create_date_ts;
+ time_t mdate = (time_t)0, adate = (time_t)0, create_date = (time_t)0;
+ char *nameptr;
+ char *last_entry_ptr;
+ bool was_8_3;
+ uint32_t nt_extmode; /* Used for NT connections instead of mode */
- DEBUG(5,("get_lanman2_dir_entry: found %s fname=%s\n",
- smb_fname_str_dbg(smb_fname), fname));
+ *out_of_space = false;
- found = True;
+ ZERO_STRUCT(mdate_ts);
+ ZERO_STRUCT(adate_ts);
+ ZERO_STRUCT(create_date_ts);
- dptr_DirCacheAdd(conn->dirptr, dname, curr_dirpos);
- sbuf = smb_fname->st;
+ if (!(mode & aDIR)) {
+ file_size = get_file_size_stat(&smb_fname->st);
+ }
+ allocation_size = SMB_VFS_GET_ALLOC_SIZE(conn, NULL, &smb_fname->st);
- TALLOC_FREE(smb_fname);
- }
+ mdate_ts = smb_fname->st.st_ex_mtime;
+ adate_ts = smb_fname->st.st_ex_atime;
+ create_date_ts = smb_fname->st.st_ex_btime;
- if (!found)
- TALLOC_FREE(fname);
+ if (lp_dos_filetime_resolution(SNUM(conn))) {
+ dos_filetime_timespec(&create_date_ts);
+ dos_filetime_timespec(&mdate_ts);
+ dos_filetime_timespec(&adate_ts);
}
+ create_date = convert_timespec_to_time_t(create_date_ts);
+ mdate = convert_timespec_to_time_t(mdate_ts);
+ adate = convert_timespec_to_time_t(adate_ts);
+
p = pdata;
last_entry_ptr = p;
nt_extmode = mode ? mode : FILE_ATTRIBUTE_NORMAL;
switch (info_level) {
- case SMB_FIND_INFO_STANDARD:
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_INFO_STANDARD\n"));
- if(requires_resume_key) {
- SIVAL(p,0,reskey);
- p += 4;
- }
- srv_put_dos_date2(p,0,create_date);
- srv_put_dos_date2(p,4,adate);
- srv_put_dos_date2(p,8,mdate);
- SIVAL(p,12,(uint32)file_size);
- SIVAL(p,16,(uint32)allocation_size);
- SSVAL(p,20,mode);
- p += 23;
- nameptr = p;
- if (flags2 & FLAGS2_UNICODE_STRINGS) {
- p += ucs2_align(base_data, p, 0);
- }
- len = srvstr_push(base_data, flags2, p,
- fname, PTR_DIFF(end_data, p),
- STR_TERMINATE);
- if (flags2 & FLAGS2_UNICODE_STRINGS) {
- if (len > 2) {
- SCVAL(nameptr, -1, len - 2);
- } else {
- SCVAL(nameptr, -1, 0);
- }
+ case SMB_FIND_INFO_STANDARD:
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_INFO_STANDARD\n"));
+ if(requires_resume_key) {
+ SIVAL(p,0,reskey);
+ p += 4;
+ }
+ srv_put_dos_date2(p,0,create_date);
+ srv_put_dos_date2(p,4,adate);
+ srv_put_dos_date2(p,8,mdate);
+ SIVAL(p,12,(uint32)file_size);
+ SIVAL(p,16,(uint32)allocation_size);
+ SSVAL(p,20,mode);
+ p += 23;
+ nameptr = p;
+ if (flags2 & FLAGS2_UNICODE_STRINGS) {
+ p += ucs2_align(base_data, p, 0);
+ }
+ len = srvstr_push(base_data, flags2, p,
+ fname, PTR_DIFF(end_data, p),
+ STR_TERMINATE);
+ if (flags2 & FLAGS2_UNICODE_STRINGS) {
+ if (len > 2) {
+ SCVAL(nameptr, -1, len - 2);
} else {
- if (len > 1) {
- SCVAL(nameptr, -1, len - 1);
- } else {
- SCVAL(nameptr, -1, 0);
- }
+ SCVAL(nameptr, -1, 0);
}
- p += len;
- break;
-
- case SMB_FIND_EA_SIZE:
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_EA_SIZE\n"));
- if(requires_resume_key) {
- SIVAL(p,0,reskey);
- p += 4;
- }
- srv_put_dos_date2(p,0,create_date);
- srv_put_dos_date2(p,4,adate);
- srv_put_dos_date2(p,8,mdate);
- SIVAL(p,12,(uint32)file_size);
- SIVAL(p,16,(uint32)allocation_size);
- SSVAL(p,20,mode);
- {
- unsigned int ea_size = estimate_ea_size(conn, NULL, pathreal);
- SIVAL(p,22,ea_size); /* Extended attributes */
- }
- p += 27;
- nameptr = p - 1;
- len = srvstr_push(base_data, flags2,
- p, fname, PTR_DIFF(end_data, p),
- STR_TERMINATE | STR_NOALIGN);
- if (flags2 & FLAGS2_UNICODE_STRINGS) {
- if (len > 2) {
- len -= 2;
- } else {
- len = 0;
- }
+ } else {
+ if (len > 1) {
+ SCVAL(nameptr, -1, len - 1);
} else {
- if (len > 1) {
- len -= 1;
- } else {
- len = 0;
- }
+ SCVAL(nameptr, -1, 0);
}
- SCVAL(nameptr,0,len);
- p += len;
- SCVAL(p,0,0); p += 1; /* Extra zero byte ? - why.. */
- break;
+ }
+ p += len;
+ break;
- case SMB_FIND_EA_LIST:
+ case SMB_FIND_EA_SIZE:
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_EA_SIZE\n"));
+ if (requires_resume_key) {
+ SIVAL(p,0,reskey);
+ p += 4;
+ }
+ srv_put_dos_date2(p,0,create_date);
+ srv_put_dos_date2(p,4,adate);
+ srv_put_dos_date2(p,8,mdate);
+ SIVAL(p,12,(uint32)file_size);
+ SIVAL(p,16,(uint32)allocation_size);
+ SSVAL(p,20,mode);
{
- struct ea_list *file_list = NULL;
- size_t ea_len = 0;
-
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_EA_LIST\n"));
- if (!name_list) {
- return False;
- }
- if(requires_resume_key) {
- SIVAL(p,0,reskey);
- p += 4;
- }
- srv_put_dos_date2(p,0,create_date);
- srv_put_dos_date2(p,4,adate);
- srv_put_dos_date2(p,8,mdate);
- SIVAL(p,12,(uint32)file_size);
- SIVAL(p,16,(uint32)allocation_size);
- SSVAL(p,20,mode);
- p += 22; /* p now points to the EA area. */
-
- file_list = get_ea_list_from_file(ctx, conn, NULL, pathreal, &ea_len);
- name_list = ea_list_union(name_list, file_list, &ea_len);
-
- /* We need to determine if this entry will fit in the space available. */
- /* Max string size is 255 bytes. */
- if (PTR_DIFF(p + 255 + ea_len,pdata) > space_remaining) {
- /* Move the dirptr back to prev_dirpos */
- dptr_SeekDir(conn->dirptr, prev_dirpos);
- *out_of_space = True;
- DEBUG(9,("get_lanman2_dir_entry: out of space\n"));
- return False; /* Not finished - just out of space */
+ unsigned int ea_size = estimate_ea_size(conn, NULL,
+ smb_fname->base_name);
+ SIVAL(p,22,ea_size); /* Extended attributes */
+ }
+ p += 27;
+ nameptr = p - 1;
+ len = srvstr_push(base_data, flags2,
+ p, fname, PTR_DIFF(end_data, p),
+ STR_TERMINATE | STR_NOALIGN);
+ if (flags2 & FLAGS2_UNICODE_STRINGS) {
+ if (len > 2) {
+ len -= 2;
+ } else {
+ len = 0;
}
-
- /* Push the ea_data followed by the name. */
- p += fill_ea_buffer(ctx, p, space_remaining, conn, name_list);
- nameptr = p;
- len = srvstr_push(base_data, flags2,
- p + 1, fname, PTR_DIFF(end_data, p+1),
- STR_TERMINATE | STR_NOALIGN);
- if (flags2 & FLAGS2_UNICODE_STRINGS) {
- if (len > 2) {
- len -= 2;
- } else {
- len = 0;
- }
+ } else {
+ if (len > 1) {
+ len -= 1;
} else {
- if (len > 1) {
- len -= 1;
- } else {
- len = 0;
- }
+ len = 0;
}
- SCVAL(nameptr,0,len);
- p += len + 1;
- SCVAL(p,0,0); p += 1; /* Extra zero byte ? - why.. */
- break;
}
+ SCVAL(nameptr,0,len);
+ p += len;
+ SCVAL(p,0,0); p += 1; /* Extra zero byte ? - why.. */
+ break;
- case SMB_FIND_FILE_BOTH_DIRECTORY_INFO:
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_BOTH_DIRECTORY_INFO\n"));
- was_8_3 = mangle_is_8_3(fname, True, conn->params);
+ case SMB_FIND_EA_LIST:
+ {
+ struct ea_list *file_list = NULL;
+ size_t ea_len = 0;
+
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_EA_LIST\n"));
+ if (!name_list) {
+ return false;
+ }
+ if (requires_resume_key) {
+ SIVAL(p,0,reskey);
p += 4;
- SIVAL(p,0,reskey); p += 4;
- put_long_date_timespec(p,create_date_ts); p += 8;
- put_long_date_timespec(p,adate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- SOFF_T(p,0,file_size); p += 8;
- SOFF_T(p,0,allocation_size); p += 8;
- SIVAL(p,0,nt_extmode); p += 4;
- q = p; p += 4; /* q is placeholder for name length. */
- {
- unsigned int ea_size = estimate_ea_size(conn, NULL, pathreal);
- SIVAL(p,0,ea_size); /* Extended attributes */
- p += 4;
+ }
+ srv_put_dos_date2(p,0,create_date);
+ srv_put_dos_date2(p,4,adate);
+ srv_put_dos_date2(p,8,mdate);
+ SIVAL(p,12,(uint32)file_size);
+ SIVAL(p,16,(uint32)allocation_size);
+ SSVAL(p,20,mode);
+ p += 22; /* p now points to the EA area. */
+
+ file_list = get_ea_list_from_file(ctx, conn, NULL,
+ smb_fname->base_name,
+ &ea_len);
+ name_list = ea_list_union(name_list, file_list, &ea_len);
+
+ /* We need to determine if this entry will fit in the space available. */
+ /* Max string size is 255 bytes. */
+ if (PTR_DIFF(p + 255 + ea_len,pdata) > space_remaining) {
+ *out_of_space = true;
+ DEBUG(9,("get_lanman2_dir_entry: out of space\n"));
+ return False; /* Not finished - just out of space */
+ }
+
+ /* Push the ea_data followed by the name. */
+ p += fill_ea_buffer(ctx, p, space_remaining, conn, name_list);
+ nameptr = p;
+ len = srvstr_push(base_data, flags2,
+ p + 1, fname, PTR_DIFF(end_data, p+1),
+ STR_TERMINATE | STR_NOALIGN);
+ if (flags2 & FLAGS2_UNICODE_STRINGS) {
+ if (len > 2) {
+ len -= 2;
+ } else {
+ len = 0;
}
- /* Clear the short name buffer. This is
- * IMPORTANT as not doing so will trigger
- * a Win2k client bug. JRA.
- */
- if (!was_8_3 && check_mangled_names) {
- if (!name_to_8_3(fname,mangled_name,True,
- conn->params)) {
- /* Error - mangle failed ! */
- memset(mangled_name,'\0',12);
- }
- mangled_name[12] = 0;
- len = srvstr_push(base_data, flags2,
- p+2, mangled_name, 24,
- STR_UPPER|STR_UNICODE);
- if (len < 24) {
- memset(p + 2 + len,'\0',24 - len);
- }
- SSVAL(p, 0, len);
+ } else {
+ if (len > 1) {
+ len -= 1;
} else {
- memset(p,'\0',26);
+ len = 0;
}
- p += 2 + 24;
- len = srvstr_push(base_data, flags2, p,
- fname, PTR_DIFF(end_data, p),
- STR_TERMINATE_ASCII);
- SIVAL(q,0,len);
- p += len;
- SIVAL(p,0,0); /* Ensure any padding is null. */
- len = PTR_DIFF(p, pdata);
- len = (len + 3) & ~3;
- SIVAL(pdata,0,len);
- p = pdata + len;
- break;
+ }
+ SCVAL(nameptr,0,len);
+ p += len + 1;
+ SCVAL(p,0,0); p += 1; /* Extra zero byte ? - why.. */
+ break;
+ }
- case SMB_FIND_FILE_DIRECTORY_INFO:
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_DIRECTORY_INFO\n"));
+ case SMB_FIND_FILE_BOTH_DIRECTORY_INFO:
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_BOTH_DIRECTORY_INFO\n"));
+ was_8_3 = mangle_is_8_3(fname, True, conn->params);
+ p += 4;
+ SIVAL(p,0,reskey); p += 4;
+ put_long_date_timespec(p,create_date_ts); p += 8;
+ put_long_date_timespec(p,adate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ SOFF_T(p,0,file_size); p += 8;
+ SOFF_T(p,0,allocation_size); p += 8;
+ SIVAL(p,0,nt_extmode); p += 4;
+ q = p; p += 4; /* q is placeholder for name length. */
+ {
+ unsigned int ea_size = estimate_ea_size(conn, NULL,
+ smb_fname->base_name);
+ SIVAL(p,0,ea_size); /* Extended attributes */
p += 4;
- SIVAL(p,0,reskey); p += 4;
- put_long_date_timespec(p,create_date_ts); p += 8;
- put_long_date_timespec(p,adate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- SOFF_T(p,0,file_size); p += 8;
- SOFF_T(p,0,allocation_size); p += 8;
- SIVAL(p,0,nt_extmode); p += 4;
+ }
+ /* Clear the short name buffer. This is
+ * IMPORTANT as not doing so will trigger
+ * a Win2k client bug. JRA.
+ */
+ if (!was_8_3 && check_mangled_names) {
+ char mangled_name[13]; /* mangled 8.3 name. */
+ if (!name_to_8_3(fname,mangled_name,True,
+ conn->params)) {
+ /* Error - mangle failed ! */
+ memset(mangled_name,'\0',12);
+ }
+ mangled_name[12] = 0;
len = srvstr_push(base_data, flags2,
- p + 4, fname, PTR_DIFF(end_data, p+4),
- STR_TERMINATE_ASCII);
- SIVAL(p,0,len);
- p += 4 + len;
- SIVAL(p,0,0); /* Ensure any padding is null. */
- len = PTR_DIFF(p, pdata);
- len = (len + 3) & ~3;
- SIVAL(pdata,0,len);
- p = pdata + len;
- break;
-
- case SMB_FIND_FILE_FULL_DIRECTORY_INFO:
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_FULL_DIRECTORY_INFO\n"));
- p += 4;
- SIVAL(p,0,reskey); p += 4;
- put_long_date_timespec(p,create_date_ts); p += 8;
- put_long_date_timespec(p,adate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- SOFF_T(p,0,file_size); p += 8;
- SOFF_T(p,0,allocation_size); p += 8;
- SIVAL(p,0,nt_extmode); p += 4;
- q = p; p += 4; /* q is placeholder for name length. */
- {
- unsigned int ea_size = estimate_ea_size(conn, NULL, pathreal);
- SIVAL(p,0,ea_size); /* Extended attributes */
- p +=4;
+ p+2, mangled_name, 24,
+ STR_UPPER|STR_UNICODE);
+ if (len < 24) {
+ memset(p + 2 + len,'\0',24 - len);
}
- len = srvstr_push(base_data, flags2, p,
- fname, PTR_DIFF(end_data, p),
- STR_TERMINATE_ASCII);
- SIVAL(q, 0, len);
- p += len;
+ SSVAL(p, 0, len);
+ } else {
+ memset(p,'\0',26);
+ }
+ p += 2 + 24;
+ len = srvstr_push(base_data, flags2, p,
+ fname, PTR_DIFF(end_data, p),
+ STR_TERMINATE_ASCII);
+ SIVAL(q,0,len);
+ p += len;
+ SIVAL(p,0,0); /* Ensure any padding is null. */
+ len = PTR_DIFF(p, pdata);
+ len = (len + 3) & ~3;
+ SIVAL(pdata,0,len);
+ p = pdata + len;
+ break;
- SIVAL(p,0,0); /* Ensure any padding is null. */
- len = PTR_DIFF(p, pdata);
- len = (len + 3) & ~3;
- SIVAL(pdata,0,len);
- p = pdata + len;
- break;
+ case SMB_FIND_FILE_DIRECTORY_INFO:
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_DIRECTORY_INFO\n"));
+ p += 4;
+ SIVAL(p,0,reskey); p += 4;
+ put_long_date_timespec(p,create_date_ts); p += 8;
+ put_long_date_timespec(p,adate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ SOFF_T(p,0,file_size); p += 8;
+ SOFF_T(p,0,allocation_size); p += 8;
+ SIVAL(p,0,nt_extmode); p += 4;
+ len = srvstr_push(base_data, flags2,
+ p + 4, fname, PTR_DIFF(end_data, p+4),
+ STR_TERMINATE_ASCII);
+ SIVAL(p,0,len);
+ p += 4 + len;
+ SIVAL(p,0,0); /* Ensure any padding is null. */
+ len = PTR_DIFF(p, pdata);
+ len = (len + 3) & ~3;
+ SIVAL(pdata,0,len);
+ p = pdata + len;
+ break;
- case SMB_FIND_FILE_NAMES_INFO:
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_NAMES_INFO\n"));
- p += 4;
- SIVAL(p,0,reskey); p += 4;
- p += 4;
- /* this must *not* be null terminated or w2k gets in a loop trying to set an
- acl on a dir (tridge) */
- len = srvstr_push(base_data, flags2, p,
- fname, PTR_DIFF(end_data, p),
- STR_TERMINATE_ASCII);
- SIVAL(p, -4, len);
- p += len;
- SIVAL(p,0,0); /* Ensure any padding is null. */
- len = PTR_DIFF(p, pdata);
- len = (len + 3) & ~3;
- SIVAL(pdata,0,len);
- p = pdata + len;
- break;
+ case SMB_FIND_FILE_FULL_DIRECTORY_INFO:
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_FULL_DIRECTORY_INFO\n"));
+ p += 4;
+ SIVAL(p,0,reskey); p += 4;
+ put_long_date_timespec(p,create_date_ts); p += 8;
+ put_long_date_timespec(p,adate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ SOFF_T(p,0,file_size); p += 8;
+ SOFF_T(p,0,allocation_size); p += 8;
+ SIVAL(p,0,nt_extmode); p += 4;
+ q = p; p += 4; /* q is placeholder for name length. */
+ {
+ unsigned int ea_size = estimate_ea_size(conn, NULL,
+ smb_fname->base_name);
+ SIVAL(p,0,ea_size); /* Extended attributes */
+ p +=4;
+ }
+ len = srvstr_push(base_data, flags2, p,
+ fname, PTR_DIFF(end_data, p),
+ STR_TERMINATE_ASCII);
+ SIVAL(q, 0, len);
+ p += len;
+
+ SIVAL(p,0,0); /* Ensure any padding is null. */
+ len = PTR_DIFF(p, pdata);
+ len = (len + 3) & ~3;
+ SIVAL(pdata,0,len);
+ p = pdata + len;
+ break;
- case SMB_FIND_ID_FULL_DIRECTORY_INFO:
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_ID_FULL_DIRECTORY_INFO\n"));
- p += 4;
- SIVAL(p,0,reskey); p += 4;
- put_long_date_timespec(p,create_date_ts); p += 8;
- put_long_date_timespec(p,adate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- SOFF_T(p,0,file_size); p += 8;
- SOFF_T(p,0,allocation_size); p += 8;
- SIVAL(p,0,nt_extmode); p += 4;
- q = p; p += 4; /* q is placeholder for name length. */
- {
- unsigned int ea_size = estimate_ea_size(conn, NULL, pathreal);
- SIVAL(p,0,ea_size); /* Extended attributes */
- p +=4;
- }
- SIVAL(p,0,0); p += 4; /* Unknown - reserved ? */
- SIVAL(p,0,sbuf.st_ex_ino); p += 4; /* FileIndexLow */
- SIVAL(p,0,sbuf.st_ex_dev); p += 4; /* FileIndexHigh */
- len = srvstr_push(base_data, flags2, p,
- fname, PTR_DIFF(end_data, p),
- STR_TERMINATE_ASCII);
- SIVAL(q, 0, len);
- p += len;
- SIVAL(p,0,0); /* Ensure any padding is null. */
- len = PTR_DIFF(p, pdata);
- len = (len + 3) & ~3;
- SIVAL(pdata,0,len);
- p = pdata + len;
- break;
+ case SMB_FIND_FILE_NAMES_INFO:
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_NAMES_INFO\n"));
+ p += 4;
+ SIVAL(p,0,reskey); p += 4;
+ p += 4;
+ /* this must *not* be null terminated or w2k gets in a loop trying to set an
+ acl on a dir (tridge) */
+ len = srvstr_push(base_data, flags2, p,
+ fname, PTR_DIFF(end_data, p),
+ STR_TERMINATE_ASCII);
+ SIVAL(p, -4, len);
+ p += len;
+ SIVAL(p,0,0); /* Ensure any padding is null. */
+ len = PTR_DIFF(p, pdata);
+ len = (len + 3) & ~3;
+ SIVAL(pdata,0,len);
+ p = pdata + len;
+ break;
- case SMB_FIND_ID_BOTH_DIRECTORY_INFO:
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_ID_BOTH_DIRECTORY_INFO\n"));
- was_8_3 = mangle_is_8_3(fname, True, conn->params);
- p += 4;
- SIVAL(p,0,reskey); p += 4;
- put_long_date_timespec(p,create_date_ts); p += 8;
- put_long_date_timespec(p,adate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- put_long_date_timespec(p,mdate_ts); p += 8;
- SOFF_T(p,0,file_size); p += 8;
- SOFF_T(p,0,allocation_size); p += 8;
- SIVAL(p,0,nt_extmode); p += 4;
- q = p; p += 4; /* q is placeholder for name length */
- {
- unsigned int ea_size = estimate_ea_size(conn, NULL, pathreal);
- SIVAL(p,0,ea_size); /* Extended attributes */
- p +=4;
- }
- /* Clear the short name buffer. This is
- * IMPORTANT as not doing so will trigger
- * a Win2k client bug. JRA.
- */
- if (!was_8_3 && check_mangled_names) {
- if (!name_to_8_3(fname,mangled_name,True,
- conn->params)) {
- /* Error - mangle failed ! */
- memset(mangled_name,'\0',12);
- }
- mangled_name[12] = 0;
- len = srvstr_push(base_data, flags2,
- p+2, mangled_name, 24,
- STR_UPPER|STR_UNICODE);
- SSVAL(p, 0, len);
- if (len < 24) {
- memset(p + 2 + len,'\0',24 - len);
- }
- SSVAL(p, 0, len);
- } else {
- memset(p,'\0',26);
+ case SMB_FIND_ID_FULL_DIRECTORY_INFO:
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_ID_FULL_DIRECTORY_INFO\n"));
+ p += 4;
+ SIVAL(p,0,reskey); p += 4;
+ put_long_date_timespec(p,create_date_ts); p += 8;
+ put_long_date_timespec(p,adate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ SOFF_T(p,0,file_size); p += 8;
+ SOFF_T(p,0,allocation_size); p += 8;
+ SIVAL(p,0,nt_extmode); p += 4;
+ q = p; p += 4; /* q is placeholder for name length. */
+ {
+ unsigned int ea_size = estimate_ea_size(conn, NULL,
+ smb_fname->base_name);
+ SIVAL(p,0,ea_size); /* Extended attributes */
+ p +=4;
+ }
+ SIVAL(p,0,0); p += 4; /* Unknown - reserved ? */
+ SIVAL(p,0,smb_fname->st.st_ex_ino); p += 4; /* FileIndexLow */
+ SIVAL(p,0,smb_fname->st.st_ex_dev); p += 4; /* FileIndexHigh */
+ len = srvstr_push(base_data, flags2, p,
+ fname, PTR_DIFF(end_data, p),
+ STR_TERMINATE_ASCII);
+ SIVAL(q, 0, len);
+ p += len;
+ SIVAL(p,0,0); /* Ensure any padding is null. */
+ len = PTR_DIFF(p, pdata);
+ len = (len + 3) & ~3;
+ SIVAL(pdata,0,len);
+ p = pdata + len;
+ break;
+
+ case SMB_FIND_ID_BOTH_DIRECTORY_INFO:
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_ID_BOTH_DIRECTORY_INFO\n"));
+ was_8_3 = mangle_is_8_3(fname, True, conn->params);
+ p += 4;
+ SIVAL(p,0,reskey); p += 4;
+ put_long_date_timespec(p,create_date_ts); p += 8;
+ put_long_date_timespec(p,adate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ put_long_date_timespec(p,mdate_ts); p += 8;
+ SOFF_T(p,0,file_size); p += 8;
+ SOFF_T(p,0,allocation_size); p += 8;
+ SIVAL(p,0,nt_extmode); p += 4;
+ q = p; p += 4; /* q is placeholder for name length */
+ {
+ unsigned int ea_size = estimate_ea_size(conn, NULL,
+ smb_fname->base_name);
+ SIVAL(p,0,ea_size); /* Extended attributes */
+ p +=4;
+ }
+ /* Clear the short name buffer. This is
+ * IMPORTANT as not doing so will trigger
+ * a Win2k client bug. JRA.
+ */
+ if (!was_8_3 && check_mangled_names) {
+ char mangled_name[13]; /* mangled 8.3 name. */
+ if (!name_to_8_3(fname,mangled_name,True,
+ conn->params)) {
+ /* Error - mangle failed ! */
+ memset(mangled_name,'\0',12);
+ }
+ mangled_name[12] = 0;
+ len = srvstr_push(base_data, flags2,
+ p+2, mangled_name, 24,
+ STR_UPPER|STR_UNICODE);
+ SSVAL(p, 0, len);
+ if (len < 24) {
+ memset(p + 2 + len,'\0',24 - len);
}
- p += 26;
- SSVAL(p,0,0); p += 2; /* Reserved ? */
- SIVAL(p,0,sbuf.st_ex_ino); p += 4; /* FileIndexLow */
- SIVAL(p,0,sbuf.st_ex_dev); p += 4; /* FileIndexHigh */
- len = srvstr_push(base_data, flags2, p,
- fname, PTR_DIFF(end_data, p),
- STR_TERMINATE_ASCII);
- SIVAL(q,0,len);
- p += len;
- SIVAL(p,0,0); /* Ensure any padding is null. */
- len = PTR_DIFF(p, pdata);
- len = (len + 3) & ~3;
- SIVAL(pdata,0,len);
- p = pdata + len;
- break;
+ SSVAL(p, 0, len);
+ } else {
+ memset(p,'\0',26);
+ }
+ p += 26;
+ SSVAL(p,0,0); p += 2; /* Reserved ? */
+ SIVAL(p,0,smb_fname->st.st_ex_ino); p += 4; /* FileIndexLow */
+ SIVAL(p,0,smb_fname->st.st_ex_dev); p += 4; /* FileIndexHigh */
+ len = srvstr_push(base_data, flags2, p,
+ fname, PTR_DIFF(end_data, p),
+ STR_TERMINATE_ASCII);
+ SIVAL(q,0,len);
+ p += len;
+ SIVAL(p,0,0); /* Ensure any padding is null. */
+ len = PTR_DIFF(p, pdata);
+ len = (len + 3) & ~3;
+ SIVAL(pdata,0,len);
+ p = pdata + len;
+ break;
- /* CIFS UNIX Extension. */
+ /* CIFS UNIX Extension. */
- case SMB_FIND_FILE_UNIX:
- case SMB_FIND_FILE_UNIX_INFO2:
- p+= 4;
- SIVAL(p,0,reskey); p+= 4; /* Used for continuing search. */
+ case SMB_FIND_FILE_UNIX:
+ case SMB_FIND_FILE_UNIX_INFO2:
+ p+= 4;
+ SIVAL(p,0,reskey); p+= 4; /* Used for continuing search. */
- /* Begin of SMB_QUERY_FILE_UNIX_BASIC */
+ /* Begin of SMB_QUERY_FILE_UNIX_BASIC */
- if (info_level == SMB_FIND_FILE_UNIX) {
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_UNIX\n"));
- p = store_file_unix_basic(conn, p,
- NULL, &sbuf);
- len = srvstr_push(base_data, flags2, p,
- fname, PTR_DIFF(end_data, p),
- STR_TERMINATE);
- } else {
- DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_UNIX_INFO2\n"));
- p = store_file_unix_basic_info2(conn, p,
- NULL, &sbuf);
- nameptr = p;
- p += 4;
- len = srvstr_push(base_data, flags2, p, fname,
- PTR_DIFF(end_data, p), 0);
- SIVAL(nameptr, 0, len);
- }
+ if (info_level == SMB_FIND_FILE_UNIX) {
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_UNIX\n"));
+ p = store_file_unix_basic(conn, p,
+ NULL, &smb_fname->st);
+ len = srvstr_push(base_data, flags2, p,
+ fname, PTR_DIFF(end_data, p),
+ STR_TERMINATE);
+ } else {
+ DEBUG(10,("get_lanman2_dir_entry: SMB_FIND_FILE_UNIX_INFO2\n"));
+ p = store_file_unix_basic_info2(conn, p,
+ NULL, &smb_fname->st);
+ nameptr = p;
+ p += 4;
+ len = srvstr_push(base_data, flags2, p, fname,
+ PTR_DIFF(end_data, p), 0);
+ SIVAL(nameptr, 0, len);
+ }
- p += len;
- SIVAL(p,0,0); /* Ensure any padding is null. */
+ p += len;
+ SIVAL(p,0,0); /* Ensure any padding is null. */
- len = PTR_DIFF(p, pdata);
- len = (len + 3) & ~3;
- SIVAL(pdata,0,len); /* Offset from this structure to the beginning of the next one */
- p = pdata + len;
- /* End of SMB_QUERY_FILE_UNIX_BASIC */
+ len = PTR_DIFF(p, pdata);
+ len = (len + 3) & ~3;
+ SIVAL(pdata,0,len); /* Offset from this structure to the beginning of the next one */
+ p = pdata + len;
+ /* End of SMB_QUERY_FILE_UNIX_BASIC */
- break;
+ break;
- default:
- TALLOC_FREE(fname);
- return(False);
+ default:
+ return false;
}
- TALLOC_FREE(fname);
if (PTR_DIFF(p,pdata) > space_remaining) {
- /* Move the dirptr back to prev_dirpos */
- dptr_SeekDir(conn->dirptr, prev_dirpos);
- *out_of_space = True;
+ *out_of_space = true;
DEBUG(9,("get_lanman2_dir_entry: out of space\n"));
- return False; /* Not finished - just out of space */
+ return false; /* Not finished - just out of space */
}
/* Setup the last entry pointer, as an offset from base_data */
@@ -1989,7 +1912,106 @@ static bool get_lanman2_dir_entry(TALLOC_CTX *ctx,
/* Advance the data pointer to the next slot */
*ppdata = p;
- return(found);
+ return true;
+}
+
+static bool get_lanman2_dir_entry(TALLOC_CTX *ctx,
+ connection_struct *conn,
+ struct dptr_struct *dirptr,
+ uint16 flags2,
+ const char *path_mask,
+ uint32 dirtype,
+ int info_level,
+ int requires_resume_key,
+ bool dont_descend,
+ bool ask_sharemode,
+ char **ppdata,
+ char *base_data,
+ char *end_data,
+ int space_remaining,
+ bool *out_of_space,
+ bool *got_exact_match,
+ int *_last_entry_off,
+ struct ea_list *name_list)
+{
+ const char *p;
+ const char *mask = NULL;
+ long prev_dirpos = 0;
+ uint32_t mode = 0;
+ char *fname = NULL;
+ struct smb_filename *smb_fname = NULL;
+ struct smbd_dirptr_lanman2_state state;
+ bool ok;
+ uint64_t last_entry_off = 0;
+
+ ZERO_STRUCT(state);
+ state.conn = conn;
+ state.info_level = info_level;
+ state.check_mangled_names = lp_manglednames(conn->params);
+ state.has_wild = dptr_has_wild(dirptr);
+ state.got_exact_match = false;
+
+ *out_of_space = false;
+ *got_exact_match = false;
+
+ p = strrchr_m(path_mask,'/');
+ if(p != NULL) {
+ if(p[1] == '\0') {
+ mask = "*.*";
+ } else {
+ mask = p+1;
+ }
+ } else {
+ mask = path_mask;
+ }
+
+ ok = smbd_dirptr_get_entry(ctx,
+ dirptr,
+ mask,
+ dirtype,
+ dont_descend,
+ ask_sharemode,
+ smbd_dirptr_lanman2_match_fn,
+ smbd_dirptr_lanman2_mode_fn,
+ &state,
+ &fname,
+ &smb_fname,
+ &mode,
+ &prev_dirpos);
+ if (!ok) {
+ return false;
+ }
+
+ *got_exact_match = state.got_exact_match;
+
+ ok = smbd_marshall_dir_entry(ctx,
+ conn,
+ flags2,
+ info_level,
+ name_list,
+ state.check_mangled_names,
+ requires_resume_key,
+ mode,
+ fname,
+ smb_fname,
+ space_remaining,
+ base_data,
+ ppdata,
+ end_data,
+ out_of_space,
+ &last_entry_off);
+ TALLOC_FREE(fname);
+ TALLOC_FREE(smb_fname);
+ if (*out_of_space) {
+ dptr_SeekDir(dirptr, prev_dirpos);
+ return false;
+ }
+ if (!ok) {
+ return false;
+ }
+
+ *_last_entry_off = last_entry_off;
+ return true;
}
/****************************************************************************
@@ -2034,6 +2056,8 @@ static void call_trans2findfirst(connection_struct *conn,
NTSTATUS ntstatus = NT_STATUS_OK;
bool ask_sharemode = lp_parm_bool(SNUM(conn), "smbd", "search ask sharemode", true);
TALLOC_CTX *ctx = talloc_tos();
+ struct dptr_struct *dirptr = NULL;
+ struct smbd_server_connection *sconn = smbd_server_conn;
if (total_params < 13) {
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
@@ -2191,24 +2215,25 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
mask,
mask_contains_wcard,
dirtype,
- &conn->dirptr);
+ &dirptr);
if (!NT_STATUS_IS_OK(ntstatus)) {
reply_nterror(req, ntstatus);
goto out;
}
- dptr_num = dptr_dnum(conn->dirptr);
+ dptr_num = dptr_dnum(dirptr);
DEBUG(4,("dptr_num is %d, wcard = %s, attr = %d\n", dptr_num, mask, dirtype));
/* Initialize per TRANS2_FIND_FIRST operation data */
- dptr_init_search_op(conn->dirptr);
+ dptr_init_search_op(dirptr);
/* We don't need to check for VOL here as this is returned by
a different TRANS2 call. */
- DEBUG(8,("dirpath=<%s> dontdescend=<%s>\n", conn->dirpath,lp_dontdescend(SNUM(conn))));
- if (in_list(conn->dirpath,lp_dontdescend(SNUM(conn)),conn->case_sensitive))
+ DEBUG(8,("dirpath=<%s> dontdescend=<%s>\n",
+ directory,lp_dontdescend(SNUM(conn))));
+ if (in_list(directory,lp_dontdescend(SNUM(conn)),conn->case_sensitive))
dont_descend = True;
p = pdata;
@@ -2226,6 +2251,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
} else {
finished = !get_lanman2_dir_entry(ctx,
conn,
+ dirptr,
req->flags2,
mask,dirtype,info_level,
requires_resume_key,dont_descend,
@@ -2264,7 +2290,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
/* Check if we can close the dirptr */
if(close_after_first || (finished && close_if_end)) {
DEBUG(5,("call_trans2findfirst - (2) closing dptr_num %d\n", dptr_num));
- dptr_close(&dptr_num);
+ dptr_close(sconn, &dptr_num);
}
/*
@@ -2275,7 +2301,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
*/
if(numentries == 0) {
- dptr_close(&dptr_num);
+ dptr_close(sconn, &dptr_num);
if (Protocol < PROTOCOL_NT1) {
reply_doserror(req, ERRDOS, ERRnofiles);
goto out;
@@ -2298,8 +2324,8 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
send_trans2_replies(conn, req, params, 10, pdata, PTR_DIFF(p,pdata),
max_data_bytes);
- if ((! *directory) && dptr_path(dptr_num)) {
- directory = talloc_strdup(talloc_tos(),dptr_path(dptr_num));
+ if ((! *directory) && dptr_path(sconn, dptr_num)) {
+ directory = talloc_strdup(talloc_tos(),dptr_path(sconn, dptr_num));
if (!directory) {
reply_nterror(req, NT_STATUS_NO_MEMORY);
}
@@ -2369,6 +2395,8 @@ static void call_trans2findnext(connection_struct *conn,
NTSTATUS ntstatus = NT_STATUS_OK;
bool ask_sharemode = lp_parm_bool(SNUM(conn), "smbd", "search ask sharemode", true);
TALLOC_CTX *ctx = talloc_tos();
+ struct dptr_struct *dirptr;
+ struct smbd_server_connection *sconn = smbd_server_conn;
if (total_params < 13) {
reply_nterror(req, NT_STATUS_INVALID_PARAMETER);
@@ -2490,39 +2518,39 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
params = *pparams;
/* Check that the dptr is valid */
- if(!(conn->dirptr = dptr_fetch_lanman2(dptr_num))) {
+ if(!(dirptr = dptr_fetch_lanman2(sconn, dptr_num))) {
reply_doserror(req, ERRDOS, ERRnofiles);
return;
}
- string_set(&conn->dirpath,dptr_path(dptr_num));
+ directory = dptr_path(sconn, dptr_num);
/* Get the wildcard mask from the dptr */
- if((p = dptr_wcard(dptr_num))== NULL) {
+ if((p = dptr_wcard(sconn, dptr_num))== NULL) {
DEBUG(2,("dptr_num %d has no wildcard\n", dptr_num));
reply_doserror(req, ERRDOS, ERRnofiles);
return;
}
mask = p;
- directory = conn->dirpath;
/* Get the attr mask from the dptr */
- dirtype = dptr_attr(dptr_num);
+ dirtype = dptr_attr(sconn, dptr_num);
DEBUG(3,("dptr_num is %d, mask = %s, attr = %x, dirptr=(0x%lX,%ld)\n",
dptr_num, mask, dirtype,
- (long)conn->dirptr,
- dptr_TellDir(conn->dirptr)));
+ (long)dirptr,
+ dptr_TellDir(dirptr)));
/* Initialize per TRANS2_FIND_NEXT operation data */
- dptr_init_search_op(conn->dirptr);
+ dptr_init_search_op(dirptr);
/* We don't need to check for VOL here as this is returned by
a different TRANS2 call. */
- DEBUG(8,("dirpath=<%s> dontdescend=<%s>\n",conn->dirpath,lp_dontdescend(SNUM(conn))));
- if (in_list(conn->dirpath,lp_dontdescend(SNUM(conn)),conn->case_sensitive))
+ DEBUG(8,("dirpath=<%s> dontdescend=<%s>\n",
+ directory,lp_dontdescend(SNUM(conn))));
+ if (in_list(directory,lp_dontdescend(SNUM(conn)),conn->case_sensitive))
dont_descend = True;
p = pdata;
@@ -2564,7 +2592,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
* should already be at the correct place.
*/
- finished = !dptr_SearchDir(conn->dirptr, resume_name, &current_pos, &st);
+ finished = !dptr_SearchDir(dirptr, resume_name, &current_pos, &st);
} /* end if resume_name && !continue_bit */
for (i=0;(i<(int)maxentries) && !finished && !out_of_space ;i++) {
@@ -2578,6 +2606,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
} else {
finished = !get_lanman2_dir_entry(ctx,
conn,
+ dirptr,
req->flags2,
mask,dirtype,info_level,
requires_resume_key,dont_descend,
@@ -2614,7 +2643,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
/* Check if we can close the dirptr */
if(close_after_request || (finished && close_if_end)) {
DEBUG(5,("call_trans2findnext: closing dptr_num = %d\n", dptr_num));
- dptr_close(&dptr_num); /* This frees up the saved mask */
+ dptr_close(sconn, &dptr_num); /* This frees up the saved mask */
}
/* Set up the return parameter block */
@@ -5193,9 +5222,8 @@ NTSTATUS smb_set_file_time(connection_struct *conn,
struct smb_filename *smb_fname_base = NULL;
uint32 action =
FILE_NOTIFY_CHANGE_LAST_ACCESS
- |FILE_NOTIFY_CHANGE_LAST_WRITE;
- bool set_createtime = false;
- bool set_ctime = false;
+ |FILE_NOTIFY_CHANGE_LAST_WRITE
+ |FILE_NOTIFY_CHANGE_CREATION;
NTSTATUS status;
if (!VALID_STAT(smb_fname->st)) {
@@ -5204,24 +5232,14 @@ NTSTATUS smb_set_file_time(connection_struct *conn,
/* get some defaults (no modifications) if any info is zero or -1. */
if (null_timespec(ft->create_time)) {
- ft->create_time = smb_fname->st.st_ex_btime;
- } else {
- set_createtime = true;
- }
-
- if (null_timespec(ft->ctime)) {
- ft->ctime = smb_fname->st.st_ex_ctime;
- } else {
- set_ctime = true;
+ action &= ~FILE_NOTIFY_CHANGE_CREATION;
}
if (null_timespec(ft->atime)) {
- ft->atime= smb_fname->st.st_ex_atime;
action &= ~FILE_NOTIFY_CHANGE_LAST_ACCESS;
}
if (null_timespec(ft->mtime)) {
- ft->mtime = smb_fname->st.st_ex_mtime;
action &= ~FILE_NOTIFY_CHANGE_LAST_WRITE;
}
@@ -5239,24 +5257,6 @@ NTSTATUS smb_set_file_time(connection_struct *conn,
DEBUG(5,("smb_set_file_time: createtime: %s\n ",
time_to_asc(convert_timespec_to_time_t(ft->create_time))));
- /*
- * Try and set the times of this file if
- * they are different from the current values.
- */
-
- {
- struct timespec mts = smb_fname->st.st_ex_mtime;
- struct timespec ats = smb_fname->st.st_ex_atime;
- if ((timespec_compare(&ft->atime, &ats) == 0) &&
- (timespec_compare(&ft->mtime, &mts) == 0)) {
- if (set_createtime || set_ctime) {
- notify_fname(conn, NOTIFY_ACTION_MODIFIED, FILE_NOTIFY_CHANGE_LAST_WRITE,
- smb_fname->base_name);
- }
- return NT_STATUS_OK;
- }
- }
-
if (setting_write_time) {
/*
* This was a Windows setfileinfo on an open file.
@@ -6110,6 +6110,41 @@ static NTSTATUS smb_set_file_basic_info(connection_struct *conn,
}
/****************************************************************************
+ Deal with SMB_INFO_STANDARD.
+****************************************************************************/
+
+static NTSTATUS smb_set_info_standard(connection_struct *conn,
+ const char *pdata,
+ int total_data,
+ files_struct *fsp,
+ const struct smb_filename *smb_fname)
+{
+ struct smb_file_time ft;
+
+ ZERO_STRUCT(ft);
+
+ if (total_data < 12) {
+ return NT_STATUS_INVALID_PARAMETER;
+ }
+
+ /* create time */
+ ft.create_time = convert_time_t_to_timespec(srv_make_unix_date2(pdata));
+ /* access time */
+ ft.atime = convert_time_t_to_timespec(srv_make_unix_date2(pdata+4));
+ /* write time */
+ ft.mtime = convert_time_t_to_timespec(srv_make_unix_date2(pdata+8));
+
+ DEBUG(10,("smb_set_info_standard: file %s\n",
+ smb_fname_str_dbg(smb_fname)));
+
+ return smb_set_file_time(conn,
+ fsp,
+ smb_fname,
+ &ft,
+ true);
+}
+
+/****************************************************************************
Deal with SMB_SET_FILE_ALLOCATION_INFO.
****************************************************************************/
@@ -7086,6 +7121,16 @@ NTSTATUS smbd_do_setfilepathinfo(connection_struct *conn,
switch (info_level) {
+ case SMB_INFO_STANDARD:
+ {
+ status = smb_set_info_standard(conn,
+ pdata,
+ total_data,
+ fsp,
+ smb_fname);
+ break;
+ }
+
case SMB_INFO_SET_EA:
{
status = smb_info_set_ea(conn,
@@ -7818,6 +7863,7 @@ static void call_trans2ioctl(connection_struct *conn,
void reply_findclose(struct smb_request *req)
{
int dptr_num;
+ struct smbd_server_connection *sconn = smbd_server_conn;
START_PROFILE(SMBfindclose);
@@ -7831,7 +7877,7 @@ void reply_findclose(struct smb_request *req)
DEBUG(3,("reply_findclose, dptr_num = %d\n", dptr_num));
- dptr_close(&dptr_num);
+ dptr_close(sconn, &dptr_num);
reply_outbuf(req, 0, 0);
diff --git a/source3/utils/net_rap.c b/source3/utils/net_rap.c
index a43840aac4..eecb669fdb 100644
--- a/source3/utils/net_rap.c
+++ b/source3/utils/net_rap.c
@@ -36,7 +36,7 @@
static int errmsg_not_implemented(void)
{
- d_printf("\nNot implemented\n");
+ d_printf(_("\nNot implemented\n"));
return 0;
}
@@ -58,11 +58,11 @@ static void file_fn(const char * pPath, const char * pUser, uint16 perms,
static void one_file_fn(const char *pPath, const char *pUser, uint16 perms,
uint16 locks, uint32 id)
{
- d_printf("File ID %d\n"
- "User name %s\n"
- "Locks 0x%-4.2x\n"
- "Path %s\n"
- "Permissions 0x%x\n",
+ d_printf(_("File ID %d\n"
+ "User name %s\n"
+ "Locks 0x%-4.2x\n"
+ "Path %s\n"
+ "Permissions 0x%x\n"),
id, pUser, locks, pPath, perms);
}
@@ -111,13 +111,13 @@ static int rap_file_user(struct net_context *c, int argc, const char **argv)
/* list open files */
- d_printf("\nEnumerating open files on remote server:\n\n"
- "\nFileId Opened by Perms Locks Path \n"
- "------ --------- ----- ----- ---- \n");
+ d_printf(_("\nEnumerating open files on remote server:\n\n"
+ "\nFileId Opened by Perms Locks Path \n"
+ "------ --------- ----- ----- ---- \n"));
ret = cli_NetFileEnum(cli, argv[0], NULL, file_fn);
if (ret == -1)
- d_printf("\nOperation not supported by server!\n\n");
+ d_printf(_("\nOperation not supported by server!\n\n"));
cli_shutdown(cli);
return ret;
@@ -130,25 +130,25 @@ int net_rap_file(struct net_context *c, int argc, const char **argv)
"close",
rap_file_close,
NET_TRANSPORT_RAP,
- "Close specified file on server",
- "net rap file close\n"
- " Close specified file on server"
+ N_("Close specified file on server"),
+ N_("net rap file close\n"
+ " Close specified file on server")
},
{
"user",
rap_file_user,
NET_TRANSPORT_RAP,
- "List all files opened by username",
- "net rap file user\n"
- " List all files opened by username"
+ N_("List all files opened by username"),
+ N_("net rap file user\n"
+ " List all files opened by username")
},
{
"info",
rap_file_info,
NET_TRANSPORT_RAP,
- "Display info about an opened file",
- "net rap file info\n"
- " Display info about an opened file"
+ N_("Display info about an opened file"),
+ N_("net rap file info\n"
+ " Display info about an opened file")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -158,9 +158,10 @@ int net_rap_file(struct net_context *c, int argc, const char **argv)
int ret;
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rap file\n"
- " List all open files on rempte server\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rap file\n"
+ " List all open files on rempte "
+ "server\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -170,13 +171,13 @@ int net_rap_file(struct net_context *c, int argc, const char **argv)
/* list open files */
- d_printf("\nEnumerating open files on remote server:\n\n"
- "\nFileId Opened by Perms Locks Path \n"
- "------ --------- ----- ----- ---- \n");
+ d_printf(_("\nEnumerating open files on remote server:\n\n"
+ "\nFileId Opened by Perms Locks Path\n"
+ "------ --------- ----- ----- ----\n"));
ret = cli_NetFileEnum(cli, NULL, NULL, file_fn);
if (ret == -1)
- d_printf("\nOperation not supported by server!\n\n");
+ d_printf(_("\nOperation not supported by server!\n\n"));
cli_shutdown(cli);
return ret;
@@ -239,7 +240,7 @@ static int rap_share_add(struct net_context *c, int argc, const char **argv)
sharename = SMB_STRDUP(argv[0]);
p = strchr(sharename, '=');
if (p == NULL) {
- d_printf("Server path not specified\n");
+ d_printf(_("Server path not specified\n"));
SAFE_FREE(sharename);
return net_rap_share_usage(c, argc, argv);
}
@@ -269,26 +270,26 @@ int net_rap_share(struct net_context *c, int argc, const char **argv)
"delete",
rap_share_delete,
NET_TRANSPORT_RAP,
- "Delete a share from server",
- "net rap share delete\n"
- " Delete a share from server"
+ N_("Delete a share from server"),
+ N_("net rap share delete\n"
+ " Delete a share from server")
},
{
"close",
rap_share_delete,
NET_TRANSPORT_RAP,
- "Delete a share from server",
- "net rap share close\n"
- " Delete a share from server\n"
- " Alias for net rap share delete"
+ N_("Delete a share from server"),
+ N_("net rap share close\n"
+ " Delete a share from server\n"
+ " Alias for net rap share delete")
},
{
"add",
rap_share_add,
NET_TRANSPORT_RAP,
- "Add a share to server",
- "net rap share add\n"
- " Add a share to server"
+ N_("Add a share to server"),
+ N_("net rap share add\n"
+ " Add a share to server")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -298,9 +299,9 @@ int net_rap_share(struct net_context *c, int argc, const char **argv)
int ret;
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rap share\n"
- " List all shares on remote server\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rap share\n"
+ " List all shares on remote server\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -309,10 +310,10 @@ int net_rap_share(struct net_context *c, int argc, const char **argv)
return -1;
if (c->opt_long_list_entries) {
- d_printf(
+ d_printf(_(
"\nEnumerating shared resources (exports) on remote server:\n\n"
"\nShare name Type Description\n"
- "---------- ---- -----------\n");
+ "---------- ---- -----------\n"));
ret = cli_RNetShareEnum(cli, long_share_fn, NULL);
} else {
ret = cli_RNetShareEnum(cli, share_fn, NULL);
@@ -326,17 +327,17 @@ int net_rap_share(struct net_context *c, int argc, const char **argv)
int net_rap_session_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf(
+ d_printf(_(
"\nnet rap session [misc. options] [targets]"
- "\n\tenumerates all active SMB/CIFS sessions on target server\n");
- d_printf(
+ "\n\tenumerates all active SMB/CIFS sessions on target server\n"));
+ d_printf(_(
"\nnet rap session DELETE <client_name> [misc. options] [targets] \n"
"\tor"
"\nnet rap session CLOSE <client_name> [misc. options] [targets]"
- "\n\tDeletes (closes) a session from specified client to server\n");
- d_printf(
+ "\n\tDeletes (closes) a session from specified client to server\n"));
+ d_printf(_(
"\nnet rap session INFO <client_name>"
- "\n\tEnumerates all open files in specified session\n");
+ "\n\tEnumerates all open files in specified session\n"));
net_common_flags_usage(c, argc, argv);
return -1;
@@ -365,14 +366,14 @@ static void display_session_func(const char *wsname, const char *username,
int shrs = sess_time / 3600;
int smin = (sess_time / 60) % 60;
int ssec = sess_time % 60;
- d_printf("User name %-20.20s\n"
- "Computer %-20.20s\n"
- "Guest logon %-20.20s\n"
- "Client Type %-40.40s\n"
- "Sess time %2.2d:%2.2d:%2.2d\n"
- "Idle time %2.2d:%2.2d:%2.2d\n",
+ d_printf(_("User name %-20.20s\n"
+ "Computer %-20.20s\n"
+ "Guest logon %-20.20s\n"
+ "Client Type %-40.40s\n"
+ "Sess time %2.2d:%2.2d:%2.2d\n"
+ "Idle time %2.2d:%2.2d:%2.2d\n"),
username, wsname,
- (user_flags&0x0)?"yes":"no", clitype,
+ (user_flags&0x0)?_("yes"):_("no"), clitype,
shrs, smin, ssec, ihrs, imin, isec);
}
@@ -404,8 +405,8 @@ static int rap_session_info(struct net_context *c, int argc, const char **argv)
return ret;
}
- d_printf("Share name Type # Opens\n-------------------------"
- "-----------------------------------------------------\n");
+ d_printf(_("Share name Type # Opens\n-------------------------"
+ "-----------------------------------------------------\n"));
ret = cli_NetConnectionEnum(cli, sessname, display_conns_func);
cli_shutdown(cli);
return ret;
@@ -434,26 +435,26 @@ int net_rap_session(struct net_context *c, int argc, const char **argv)
"info",
rap_session_info,
NET_TRANSPORT_RAP,
- "Display information about session",
- "net rap session info\n"
- " Display information about session"
+ N_("Display information about session"),
+ N_("net rap session info\n"
+ " Display information about session")
},
{
"delete",
rap_session_delete,
NET_TRANSPORT_RAP,
- "Close specified session",
- "net rap session delete\n"
- " Close specified session\n"
- " Alias for net rap session close"
+ N_("Close specified session"),
+ N_("net rap session delete\n"
+ " Close specified session\n"
+ " Alias for net rap session close")
},
{
"close",
rap_session_delete,
NET_TRANSPORT_RAP,
- "Close specified session",
- "net rap session close\n"
- " Close specified session"
+ N_("Close specified session"),
+ N_("net rap session close\n"
+ " Close specified session")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -463,9 +464,10 @@ int net_rap_session(struct net_context *c, int argc, const char **argv)
int ret;
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rap session\n"
- " List all open sessions on remote server\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rap session\n"
+ " List all open sessions on remote "
+ "server\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -473,10 +475,10 @@ int net_rap_session(struct net_context *c, int argc, const char **argv)
if (!NT_STATUS_IS_OK(net_make_ipc_connection(c, 0, &cli)))
return -1;
- d_printf("Computer User name "
- "Client Type Opens Idle time\n"
- "------------------------------------------"
- "------------------------------------\n");
+ d_printf(_("Computer User name "
+ "Client Type Opens Idle time\n"
+ "------------------------------------------"
+ "------------------------------------\n"));
ret = cli_NetSessionEnum(cli, list_sessions_func);
cli_shutdown(cli);
@@ -501,9 +503,9 @@ static int net_rap_server_name(struct net_context *c, int argc, const char *argv
char *name;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rap server name\n"
- " Get the name of the server\n");
+ d_printf(_("Usage:\n"
+ "net rap server name\n"
+ " Get the name of the server\n"));
return 0;
}
@@ -511,12 +513,12 @@ static int net_rap_server_name(struct net_context *c, int argc, const char *argv
return -1;
if (!cli_get_server_name(NULL, cli, &name)) {
- d_fprintf(stderr, "cli_get_server_name failed\n");
+ d_fprintf(stderr, _("cli_get_server_name failed\n"));
cli_shutdown(cli);
return -1;
}
- d_printf("Server name = %s\n", name);
+ d_printf(_("Server name = %s\n"), name);
TALLOC_FREE(name);
cli_shutdown(cli);
@@ -530,18 +532,18 @@ static int net_rap_server_domain(struct net_context *c, int argc,
int ret;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rap server domain\n"
- " Enumerate servers in this domain/workgroup\n");
+ d_printf(_("Usage:\n"
+ "net rap server domain\n"
+ " Enumerate servers in this domain/workgroup\n"));
return 0;
}
if (!NT_STATUS_IS_OK(net_make_ipc_connection(c, 0, &cli)))
return -1;
- d_printf("\nEnumerating servers in this domain or workgroup: \n\n"
- "\tServer name Server description\n"
- "\t------------- ----------------------------\n");
+ d_printf(_("\nEnumerating servers in this domain or workgroup: \n\n"
+ "\tServer name Server description\n"
+ "\t------------- ----------------------------\n"));
ret = cli_NetServerEnum(cli, cli->server_domain, SV_TYPE_ALL,
display_server_func,NULL);
@@ -556,17 +558,17 @@ int net_rap_server(struct net_context *c, int argc, const char **argv)
"name",
net_rap_server_name,
NET_TRANSPORT_RAP,
- "Get the name of the server",
- "net rap server name\n"
- " Get the name of the server"
+ N_("Get the name of the server"),
+ N_("net rap server name\n"
+ " Get the name of the server")
},
{
"domain",
net_rap_server_domain,
NET_TRANSPORT_RAP,
- "Get the servers in this domain/workgroup",
- "net rap server domain\n"
- " Get the servers in this domain/workgroup"
+ N_("Get the servers in this domain/workgroup"),
+ N_("net rap server domain\n"
+ " Get the servers in this domain/workgroup")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -579,8 +581,8 @@ int net_rap_server(struct net_context *c, int argc, const char **argv)
int net_rap_domain_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf("net rap domain [misc. options] [target]\n\tlists the"
- " domains or workgroups visible on the current network\n");
+ d_printf(_("net rap domain [misc. options] [target]\n\tlists the"
+ " domains or workgroups visible on the current network\n"));
net_common_flags_usage(c, argc, argv);
return -1;
@@ -597,9 +599,9 @@ int net_rap_domain(struct net_context *c, int argc, const char **argv)
if (!NT_STATUS_IS_OK(net_make_ipc_connection(c, 0, &cli)))
return -1;
- d_printf("\nEnumerating domains:\n\n"
- "\tDomain name Server name of Browse Master\n"
- "\t------------- ----------------------------\n");
+ d_printf(_("\nEnumerating domains:\n\n"
+ "\tDomain name Server name of Browse Master\n"
+ "\t------------- ----------------------------\n"));
ret = cli_NetServerEnum(cli, cli->server_domain, SV_TYPE_DOMAIN_ENUM,
display_server_func,NULL);
@@ -609,16 +611,16 @@ int net_rap_domain(struct net_context *c, int argc, const char **argv)
int net_rap_printq_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf(
+ d_printf(_(
"net rap printq [misc. options] [targets]\n"
"\tor\n"
"net rap printq info [<queue_name>] [misc. options] [targets]\n"
"\tlists the specified queue and jobs on the target server.\n"
- "\tIf the queue name is not specified, all queues are listed.\n\n");
- d_printf(
+ "\tIf the queue name is not specified, all queues are listed.\n\n"));
+ d_printf(_(
"net rap printq delete [<queue name>] [misc. options] [targets]\n"
"\tdeletes the specified job number on the target server, or the\n"
- "\tprinter queue if no job number is specified\n");
+ "\tprinter queue if no job number is specified\n"));
net_common_flags_usage(c, argc, argv);
@@ -630,24 +632,24 @@ static void enum_queue(const char *queuename, uint16 pri, uint16 start,
const char *dest, const char *qparms,
const char *qcomment, uint16 status, uint16 jobcount)
{
- d_printf("%-17.17s Queue %5d jobs ",
+ d_printf(_("%-17.17s Queue %5d jobs "),
queuename, jobcount);
switch (status) {
case 0:
- d_printf("*Printer Active*\n");
+ d_printf(_("*Printer Active*\n"));
break;
case 1:
- d_printf("*Printer Paused*\n");
+ d_printf(_("*Printer Paused*\n"));
break;
case 2:
- d_printf("*Printer error*\n");
+ d_printf(_("*Printer error*\n"));
break;
case 3:
- d_printf("*Delete Pending*\n");
+ d_printf(_("*Delete Pending*\n"));
break;
default:
- d_printf("**UNKNOWN STATUS**\n");
+ d_printf(_("**UNKNOWN STATUS**\n"));
}
}
@@ -661,27 +663,27 @@ static void enum_jobs(uint16 jobid, const char *ownername,
ownername, jobid, jobsize);
switch (status) {
case 0:
- d_printf("Waiting\n");
+ d_printf(_("Waiting\n"));
break;
case 1:
- d_printf("Held in queue\n");
+ d_printf(_("Held in queue\n"));
break;
case 2:
- d_printf("Spooling\n");
+ d_printf(_("Spooling\n"));
break;
case 3:
- d_printf("Printing\n");
+ d_printf(_("Printing\n"));
break;
default:
- d_printf("**UNKNOWN STATUS**\n");
+ d_printf(_("**UNKNOWN STATUS**\n"));
}
}
#define PRINTQ_ENUM_DISPLAY \
- "Print queues at \\\\%s\n\n"\
- "Name Job # Size Status\n\n"\
- "------------------------------------------------------------------"\
- "-------------\n"
+ _("Print queues at \\\\%s\n\n"\
+ "Name Job # Size Status\n\n"\
+ "------------------------------------------------------------------"\
+ "-------------\n")
static int rap_printq_info(struct net_context *c, int argc, const char **argv)
{
@@ -726,27 +728,28 @@ int net_rap_printq(struct net_context *c, int argc, const char **argv)
"info",
rap_printq_info,
NET_TRANSPORT_RAP,
- "Display info about print queues and jobs",
- "net rap printq info [queue]\n"
- " Display info about print jobs in queue.\n"
- " If queue is not specified, all queues are listed"
+ N_("Display info about print queues and jobs"),
+ N_("net rap printq info [queue]\n"
+ " Display info about print jobs in queue.\n"
+ " If queue is not specified, all queues are "
+ "listed")
},
{
"delete",
rap_printq_delete,
NET_TRANSPORT_RAP,
- "Delete print job(s)",
- "net rap printq delete\n"
- " Delete print job(s)"
+ N_("Delete print job(s)"),
+ N_("net rap printq delete\n"
+ " Delete print job(s)")
},
{NULL, NULL, 0, NULL, NULL}
};
if (argc == 0) {
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rap printq\n"
- " List the print queue\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rap printq\n"
+ " List the print queue\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -858,26 +861,26 @@ int net_rap_user(struct net_context *c, int argc, const char **argv)
"add",
rap_user_add,
NET_TRANSPORT_RAP,
- "Add specified user",
- "net rap user add\n"
- " Add specified user"
+ N_("Add specified user"),
+ N_("net rap user add\n"
+ " Add specified user")
},
{
"info",
rap_user_info,
NET_TRANSPORT_RAP,
- "List domain groups of specified user",
- "net rap user info\n"
- " List domain groups of specified user"
+ N_("List domain groups of specified user"),
+ N_("net rap user info\n"
+ " List domain groups of specified user")
},
{
"delete",
rap_user_delete,
NET_TRANSPORT_RAP,
- "Remove specified user",
- "net rap user delete\n"
- " Remove specified user"
+ N_("Remove specified user"),
+ N_("net rap user delete\n"
+ " Remove specified user")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -885,9 +888,9 @@ int net_rap_user(struct net_context *c, int argc, const char **argv)
if (argc == 0) {
struct cli_state *cli;
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rap user\n"
- " List all users\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rap user\n"
+ " List all users\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -895,8 +898,8 @@ int net_rap_user(struct net_context *c, int argc, const char **argv)
if (!NT_STATUS_IS_OK(net_make_ipc_connection(c, 0, &cli)))
goto done;
if (c->opt_long_list_entries) {
- d_printf("\nUser name Comment"
- "\n-----------------------------\n");
+ d_printf(_("\nUser name Comment"
+ "\n-----------------------------\n"));
ret = cli_RNetUserEnum(cli, long_user_fn, NULL);
cli_shutdown(cli);
goto done;
@@ -909,7 +912,7 @@ int net_rap_user(struct net_context *c, int argc, const char **argv)
ret = net_run_function(c, argc, argv, "net rap user", func);
done:
if (ret != 0) {
- DEBUG(1, ("Net user returned: %d\n", ret));
+ DEBUG(1, (_("Net user returned: %d\n"), ret));
}
return ret;
}
@@ -977,17 +980,17 @@ int net_rap_group(struct net_context *c, int argc, const char **argv)
"add",
rap_group_add,
NET_TRANSPORT_RAP,
- "Add specified group",
- "net rap group add\n"
- " Add specified group"
+ N_("Add specified group"),
+ N_("net rap group add\n"
+ " Add specified group")
},
{
"delete",
rap_group_delete,
NET_TRANSPORT_RAP,
- "Delete specified group",
- "net rap group delete\n"
- " Delete specified group"
+ N_("Delete specified group"),
+ N_("net rap group delete\n"
+ " Delete specified group")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -996,9 +999,9 @@ int net_rap_group(struct net_context *c, int argc, const char **argv)
struct cli_state *cli;
int ret;
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rap group\n"
- " List all groups\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rap group\n"
+ " List all groups\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -1006,8 +1009,8 @@ int net_rap_group(struct net_context *c, int argc, const char **argv)
if (!NT_STATUS_IS_OK(net_make_ipc_connection(c, 0, &cli)))
return -1;
if (c->opt_long_list_entries) {
- d_printf("Group name Comment\n");
- d_printf("-----------------------------\n");
+ d_printf(_("Group name Comment\n"
+ "-----------------------------\n"));
ret = cli_RNetGroupEnum(cli, long_group_fn, NULL);
cli_shutdown(cli);
return ret;
@@ -1022,13 +1025,13 @@ int net_rap_group(struct net_context *c, int argc, const char **argv)
int net_rap_groupmember_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf(
+ d_printf(_(
"net rap groupmember LIST <group> [misc. options] [targets]"
"\n\t Enumerate users in a group\n"
"\nnet rap groupmember DELETE <group> <user> [misc. options] "
"[targets]\n\t Delete specified user from specified group\n"
"\nnet rap groupmember ADD <group> <user> [misc. options] [targets]"
- "\n\t Add specified user to specified group\n");
+ "\n\t Add specified user to specified group\n"));
net_common_flags_usage(c, argc, argv);
return -1;
@@ -1090,25 +1093,25 @@ int net_rap_groupmember(struct net_context *c, int argc, const char **argv)
"add",
rap_groupmember_add,
NET_TRANSPORT_RAP,
- "Add specified user to group",
- "net rap groupmember add\n"
- " Add specified user to group"
+ N_("Add specified user to group"),
+ N_("net rap groupmember add\n"
+ " Add specified user to group")
},
{
"list",
rap_groupmember_list,
NET_TRANSPORT_RAP,
- "List users in group",
- "net rap groupmember list\n"
- " List users in group"
+ N_("List users in group"),
+ N_("net rap groupmember list\n"
+ " List users in group")
},
{
"delete",
rap_groupmember_delete,
NET_TRANSPORT_RAP,
- "Remove user from group",
- "net rap groupmember delete\n"
- " Remove user from group"
+ N_("Remove user from group"),
+ N_("net rap groupmember delete\n"
+ " Remove user from group")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -1118,9 +1121,9 @@ int net_rap_groupmember(struct net_context *c, int argc, const char **argv)
int net_rap_validate_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf("net rap validate <username> [password]\n"
- "\tValidate user and password to check whether they"
- " can access target server or domain\n");
+ d_printf(_("net rap validate <username> [password]\n"
+ "\tValidate user and password to check whether they"
+ " can access target server or domain\n"));
net_common_flags_usage(c, argc, argv);
return -1;
@@ -1133,13 +1136,13 @@ int net_rap_validate(struct net_context *c, int argc, const char **argv)
int net_rap_service_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf("net rap service [misc. options] [targets] \n"
- "\tlists all running service daemons on target server\n");
- d_printf("\nnet rap service START <name> [service startup arguments]"
+ d_printf(_("net rap service [misc. options] [targets] \n"
+ "\tlists all running service daemons on target server\n"));
+ d_printf(_("\nnet rap service START <name> [service startup arguments]"
" [misc. options] [targets]"
- "\n\tStart named service on remote server\n");
- d_printf("\nnet rap service STOP <name> [misc. options] [targets]\n"
- "\n\tStop named service on remote server\n");
+ "\n\tStart named service on remote server\n"));
+ d_printf(_("\nnet rap service STOP <name> [misc. options] [targets]\n"
+ "\n\tStop named service on remote server\n"));
net_common_flags_usage(c, argc, argv);
return -1;
@@ -1168,17 +1171,17 @@ int net_rap_service(struct net_context *c, int argc, const char **argv)
"start",
rap_service_start,
NET_TRANSPORT_RAP,
- "Start service on remote server",
- "net rap service start\n"
- " Start service on remote server"
+ N_("Start service on remote server"),
+ N_("net rap service start\n"
+ " Start service on remote server")
},
{
"stop",
rap_service_stop,
NET_TRANSPORT_RAP,
- "Stop named serve on remote server",
- "net rap service stop\n"
- " Stop named serve on remote server"
+ N_("Stop named serve on remote server"),
+ N_("net rap service stop\n"
+ " Stop named serve on remote server")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -1187,9 +1190,9 @@ int net_rap_service(struct net_context *c, int argc, const char **argv)
struct cli_state *cli;
int ret;
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rap service\n"
- " List services on remote server\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rap service\n"
+ " List services on remote server\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -1198,8 +1201,8 @@ int net_rap_service(struct net_context *c, int argc, const char **argv)
return -1;
if (c->opt_long_list_entries) {
- d_printf("Service name Comment\n");
- d_printf("-----------------------------\n");
+ d_printf(_("Service name Comment\n"
+ "-----------------------------\n"));
ret = cli_RNetServiceEnum(cli, long_group_fn, NULL);
}
ret = cli_RNetServiceEnum(cli, service_fn, NULL);
@@ -1212,9 +1215,9 @@ int net_rap_service(struct net_context *c, int argc, const char **argv)
int net_rap_password_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf(
+ d_printf(_(
"net rap password <user> <oldpwo> <newpw> [misc. options] [target]\n"
- "\tchanges the password for the specified user at target\n");
+ "\tchanges the password for the specified user at target\n"));
return -1;
}
@@ -1239,9 +1242,9 @@ int net_rap_password(struct net_context *c, int argc, const char **argv)
int net_rap_admin_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf(
+ d_printf(_(
"net rap admin <remote command> [cmd args [env]] [misc. options] [targets]"
- "\n\texecutes a remote command on an os/2 target server\n");
+ "\n\texecutes a remote command on an os/2 target server\n"));
return -1;
}
@@ -1261,105 +1264,105 @@ int net_rap(struct net_context *c, int argc, const char **argv)
"file",
net_rap_file,
NET_TRANSPORT_RAP,
- "List open files",
- "net rap file\n"
- " List open files"
+ N_("List open files"),
+ N_("net rap file\n"
+ " List open files")
},
{
"share",
net_rap_share,
NET_TRANSPORT_RAP,
- "List shares exported by server",
- "net rap share\n"
- " List shares exported by server"
+ N_("List shares exported by server"),
+ N_("net rap share\n"
+ " List shares exported by server")
},
{
"session",
net_rap_session,
NET_TRANSPORT_RAP,
- "List open sessions",
- "net rap session\n"
- " List open sessions"
+ N_("List open sessions"),
+ N_("net rap session\n"
+ " List open sessions")
},
{
"server",
net_rap_server,
NET_TRANSPORT_RAP,
- "List servers in workgroup",
- "net rap server\n"
- " List servers in domain/workgroup"
+ N_("List servers in workgroup"),
+ N_("net rap server\n"
+ " List servers in domain/workgroup")
},
{
"domain",
net_rap_domain,
NET_TRANSPORT_RAP,
- "List domains in network",
- "net rap domain\n"
- " List domains in network"
+ N_("List domains in network"),
+ N_("net rap domain\n"
+ " List domains in network")
},
{
"printq",
net_rap_printq,
NET_TRANSPORT_RAP,
- "List printer queues on server",
- "net rap printq\n"
- " List printer queues on server"
+ N_("List printer queues on server"),
+ N_("net rap printq\n"
+ " List printer queues on server")
},
{
"user",
net_rap_user,
NET_TRANSPORT_RAP,
- "List users",
- "net rap user\n"
- " List users"
+ N_("List users"),
+ N_("net rap user\n"
+ " List users")
},
{
"group",
net_rap_group,
NET_TRANSPORT_RAP,
- "List user groups",
- "net rap group\n"
- " List user groups"
+ N_("List user groups"),
+ N_("net rap group\n"
+ " List user groups")
},
{
"validate",
net_rap_validate,
NET_TRANSPORT_RAP,
- "Check username/password",
- "net rap validate\n"
- " Check username/password"
+ N_("Check username/password"),
+ N_("net rap validate\n"
+ " Check username/password")
},
{
"groupmember",
net_rap_groupmember,
NET_TRANSPORT_RAP,
- "List/modify group memberships",
- "net rap groupmember\n"
- " List/modify group memberships"
+ N_("List/modify group memberships"),
+ N_("net rap groupmember\n"
+ " List/modify group memberships")
},
{
"admin",
net_rap_admin,
NET_TRANSPORT_RAP,
- "Execute commands on remote OS/2",
- "net rap admin\n"
- " Execute commands on remote OS/2"
+ N_("Execute commands on remote OS/2"),
+ N_("net rap admin\n"
+ " Execute commands on remote OS/2")
},
{
"service",
net_rap_service,
NET_TRANSPORT_RAP,
- "Start/stop remote service",
- "net rap service\n"
- " Start/stop remote service"
+ N_("Start/stop remote service"),
+ N_("net rap service\n"
+ " Start/stop remote service")
},
{
"password",
net_rap_password,
NET_TRANSPORT_RAP,
- "Change user password",
- "net rap password\n"
- " Change user password"
+ N_("Change user password"),
+ N_("net rap password\n"
+ " Change user password")
},
{NULL, NULL, 0, NULL, NULL}
};
diff --git a/source3/utils/net_registry.c b/source3/utils/net_registry.c
index d6cdd982c3..711c111275 100644
--- a/source3/utils/net_registry.c
+++ b/source3/utils/net_registry.c
@@ -91,13 +91,14 @@ static WERROR open_key(TALLOC_CTX *ctx, const char *path,
werr = open_hive(tmp_ctx, path, desired_access, &hive, &subkey_name);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "open_hive failed: %s\n", win_errstr(werr));
+ d_fprintf(stderr, _("open_hive failed: %s\n"),
+ win_errstr(werr));
goto done;
}
werr = reg_openkey(ctx, hive, subkey_name, desired_access, key);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "reg_openkey failed: %s\n",
+ d_fprintf(stderr, _("reg_openkey failed: %s\n"),
win_errstr(werr));
goto done;
}
@@ -129,15 +130,15 @@ static int net_registry_enumerate(struct net_context *c, int argc,
int ret = -1;
if (argc != 1 || c->display_usage) {
- d_printf("Usage: net registry enumerate <path>\n");
- d_printf("Example: net registry enumerate "
- "'HKLM\\Software\\Samba'\n");
+ d_printf(_("Usage: net registry enumerate <path>\n"));
+ d_printf(_("Example: net registry enumerate "
+ "'HKLM\\Software\\Samba'\n"));
goto done;
}
werr = open_key(ctx, argv[0], REG_KEY_READ, &key);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "open_key failed: %s\n", win_errstr(werr));
+ d_fprintf(stderr, _("open_key failed: %s\n"), win_errstr(werr));
goto done;
}
@@ -181,38 +182,39 @@ static int net_registry_createkey(struct net_context *c, int argc,
int ret = -1;
if (argc != 1 || c->display_usage) {
- d_printf("Usage: net registry createkey <path>\n");
- d_printf("Example: net registry createkey "
- "'HKLM\\Software\\Samba\\smbconf.127.0.0.1'\n");
+ d_printf(_("Usage: net registry createkey <path>\n"));
+ d_printf(_("Example: net registry createkey "
+ "'HKLM\\Software\\Samba\\smbconf.127.0.0.1'\n"));
goto done;
}
if (strlen(argv[0]) == 0) {
- d_fprintf(stderr, "error: zero length key name given\n");
+ d_fprintf(stderr, _("error: zero length key name given\n"));
goto done;
}
werr = open_hive(ctx, argv[0], REG_KEY_WRITE, &hivekey, &subkeyname);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "open_hive failed: %s\n", win_errstr(werr));
+ d_fprintf(stderr, _("open_hive failed: %s\n"),
+ win_errstr(werr));
goto done;
}
werr = reg_createkey(ctx, hivekey, subkeyname, REG_KEY_WRITE,
&subkey, &action);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "reg_createkey failed: %s\n",
+ d_fprintf(stderr, _("reg_createkey failed: %s\n"),
win_errstr(werr));
goto done;
}
switch (action) {
case REG_ACTION_NONE:
- d_printf("createkey did nothing -- huh?\n");
+ d_printf(_("createkey did nothing -- huh?\n"));
break;
case REG_CREATED_NEW_KEY:
- d_printf("createkey created %s\n", argv[0]);
+ d_printf(_("createkey created %s\n"), argv[0]);
break;
case REG_OPENED_EXISTING_KEY:
- d_printf("createkey opened existing %s\n", argv[0]);
+ d_printf(_("createkey opened existing %s\n"), argv[0]);
break;
}
@@ -233,25 +235,26 @@ static int net_registry_deletekey(struct net_context *c, int argc,
int ret = -1;
if (argc != 1 || c->display_usage) {
- d_printf("Usage: net registry deletekey <path>\n");
- d_printf("Example: net registry deletekey "
- "'HKLM\\Software\\Samba\\smbconf.127.0.0.1'\n");
+ d_printf(_("Usage: net registry deletekey <path>\n"));
+ d_printf(_("Example: net registry deletekey "
+ "'HKLM\\Software\\Samba\\smbconf.127.0.0.1'\n"));
goto done;
}
if (strlen(argv[0]) == 0) {
- d_fprintf(stderr, "error: zero length key name given\n");
+ d_fprintf(stderr, _("error: zero length key name given\n"));
goto done;
}
werr = open_hive(ctx, argv[0], REG_KEY_WRITE, &hivekey, &subkeyname);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "open_hive failed: %s\n", win_errstr(werr));
+ d_fprintf(stderr, _("open_hive failed: %s\n"),
+ win_errstr(werr));
goto done;
}
werr = reg_deletekey(hivekey, subkeyname);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "reg_deletekey failed: %s\n",
+ d_fprintf(stderr, _("reg_deletekey failed: %s\n"),
win_errstr(werr));
goto done;
}
@@ -273,20 +276,20 @@ static int net_registry_getvalue_internal(struct net_context *c, int argc,
TALLOC_CTX *ctx = talloc_stackframe();
if (argc != 2 || c->display_usage) {
- d_fprintf(stderr, "usage: net rpc registry getvalue <key> "
- "<valuename>\n");
+ d_fprintf(stderr, _("usage: net rpc registry getvalue <key> "
+ "<valuename>\n"));
goto done;
}
werr = open_key(ctx, argv[0], REG_KEY_READ, &key);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "open_key failed: %s\n", win_errstr(werr));
+ d_fprintf(stderr, _("open_key failed: %s\n"), win_errstr(werr));
goto done;
}
werr = reg_queryvalue(ctx, key, argv[1], &value);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "reg_queryvalue failed: %s\n",
+ d_fprintf(stderr, _("reg_queryvalue failed: %s\n"),
win_errstr(werr));
goto done;
}
@@ -322,13 +325,13 @@ static int net_registry_setvalue(struct net_context *c, int argc,
TALLOC_CTX *ctx = talloc_stackframe();
if (argc < 4 || c->display_usage) {
- d_fprintf(stderr, "usage: net rpc registry setvalue <key> "
- "<valuename> <type> [<val>]+\n");
+ d_fprintf(stderr, _("usage: net rpc registry setvalue <key> "
+ "<valuename> <type> [<val>]+\n"));
goto done;
}
if (!strequal(argv[2], "multi_sz") && (argc != 4)) {
- d_fprintf(stderr, "Too many args for type %s\n", argv[2]);
+ d_fprintf(stderr, _("Too many args for type %s\n"), argv[2]);
goto done;
}
@@ -344,19 +347,19 @@ static int net_registry_setvalue(struct net_context *c, int argc,
value.v.multi_sz.num_strings = argc - 3;
value.v.multi_sz.strings = (char **)(argv + 3);
} else {
- d_fprintf(stderr, "type \"%s\" not implemented\n", argv[2]);
+ d_fprintf(stderr, _("type \"%s\" not implemented\n"), argv[2]);
goto done;
}
werr = open_key(ctx, argv[0], REG_KEY_WRITE, &key);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "open_key failed: %s\n", win_errstr(werr));
+ d_fprintf(stderr, _("open_key failed: %s\n"), win_errstr(werr));
goto done;
}
werr = reg_setvalue(key, argv[1], &value);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "reg_setvalue failed: %s\n",
+ d_fprintf(stderr, _("reg_setvalue failed: %s\n"),
win_errstr(werr));
goto done;
}
@@ -377,20 +380,20 @@ static int net_registry_deletevalue(struct net_context *c, int argc,
int ret = -1;
if (argc != 2 || c->display_usage) {
- d_fprintf(stderr, "usage: net rpc registry deletevalue <key> "
- "<valuename>\n");
+ d_fprintf(stderr, _("usage: net rpc registry deletevalue <key> "
+ "<valuename>\n"));
goto done;
}
werr = open_key(ctx, argv[0], REG_KEY_WRITE, &key);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "open_key failed: %s\n", win_errstr(werr));
+ d_fprintf(stderr, _("open_key failed: %s\n"), win_errstr(werr));
goto done;
}
werr = reg_deletevalue(key, argv[1]);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "reg_deletekey failed: %s\n",
+ d_fprintf(stderr, _("reg_deletekey failed: %s\n"),
win_errstr(werr));
goto done;
}
@@ -421,9 +424,9 @@ static int net_registry_getsd(struct net_context *c, int argc,
access_mask = REG_KEY_READ;
if (argc != 1 || c->display_usage) {
- d_printf("Usage: net registry getsd <path>\n");
- d_printf("Example: net registry getsd "
- "'HKLM\\Software\\Samba'\n");
+ d_printf(_("Usage: net registry getsd <path>\n"));
+ d_printf(_("Example: net registry getsd "
+ "'HKLM\\Software\\Samba'\n"));
goto done;
}
if (strlen(argv[0]) == 0) {
@@ -433,13 +436,13 @@ static int net_registry_getsd(struct net_context *c, int argc,
werr = open_key(ctx, argv[0], access_mask, &key);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "open_key failed: %s\n", win_errstr(werr));
+ d_fprintf(stderr, _("open_key failed: %s\n"), win_errstr(werr));
goto done;
}
werr = reg_getkeysecurity(ctx, key, &secdesc);
if (!W_ERROR_IS_OK(werr)) {
- d_fprintf(stderr, "reg_getkeysecurity failed: %s\n",
+ d_fprintf(stderr, _("reg_getkeysecurity failed: %s\n"),
win_errstr(werr));
goto done;
}
@@ -462,65 +465,65 @@ int net_registry(struct net_context *c, int argc, const char **argv)
"enumerate",
net_registry_enumerate,
NET_TRANSPORT_LOCAL,
- "Enumerate registry keys and values",
- "net registry enumerate\n"
- " Enumerate registry keys and values"
+ N_("Enumerate registry keys and values"),
+ N_("net registry enumerate\n"
+ " Enumerate registry keys and values")
},
{
"createkey",
net_registry_createkey,
NET_TRANSPORT_LOCAL,
- "Create a new registry key",
- "net registry createkey\n"
- " Create a new registry key"
+ N_("Create a new registry key"),
+ N_("net registry createkey\n"
+ " Create a new registry key")
},
{
"deletekey",
net_registry_deletekey,
NET_TRANSPORT_LOCAL,
- "Delete a registry key",
- "net registry deletekey\n"
- " Delete a registry key"
+ N_("Delete a registry key"),
+ N_("net registry deletekey\n"
+ " Delete a registry key")
},
{
"getvalue",
net_registry_getvalue,
NET_TRANSPORT_LOCAL,
- "Print a registry value",
- "net registry getvalue\n"
- " Print a registry value"
+ N_("Print a registry value"),
+ N_("net registry getvalue\n"
+ " Print a registry value")
},
{
"getvalueraw",
net_registry_getvalueraw,
NET_TRANSPORT_LOCAL,
- "Print a registry value (raw format)",
- "net registry getvalueraw\n"
- " Print a registry value (raw format)"
+ N_("Print a registry value (raw format)"),
+ N_("net registry getvalueraw\n"
+ " Print a registry value (raw format)")
},
{
"setvalue",
net_registry_setvalue,
NET_TRANSPORT_LOCAL,
- "Set a new registry value",
- "net registry setvalue\n"
- " Set a new registry value"
+ N_("Set a new registry value"),
+ N_("net registry setvalue\n"
+ " Set a new registry value")
},
{
"deletevalue",
net_registry_deletevalue,
NET_TRANSPORT_LOCAL,
- "Delete a registry value",
- "net registry deletevalue\n"
- " Delete a registry value"
+ N_("Delete a registry value"),
+ N_("net registry deletevalue\n"
+ " Delete a registry value")
},
{
"getsd",
net_registry_getsd,
NET_TRANSPORT_LOCAL,
- "Get security descriptor",
- "net registry getsd\n"
- " Get security descriptor"
+ N_("Get security descriptor"),
+ N_("net registry getsd\n"
+ " Get security descriptor")
},
{ NULL, NULL, 0, NULL, NULL }
};
diff --git a/source3/utils/net_registry_util.c b/source3/utils/net_registry_util.c
index cd291b5c74..3d1919cbf1 100644
--- a/source3/utils/net_registry_util.c
+++ b/source3/utils/net_registry_util.c
@@ -21,34 +21,35 @@
#include "includes.h"
#include "utils/net_registry_util.h"
+#include "utils/net.h"
void print_registry_key(const char *keyname, NTTIME *modtime)
{
- d_printf("Keyname = %s\n", keyname);
- d_printf("Modtime = %s\n",
+ d_printf(_("Keyname = %s\n"), keyname);
+ d_printf(_("Modtime = %s\n"),
modtime
? http_timestring(talloc_tos(), nt_time_to_unix(*modtime))
- : "None");
+ : _("None"));
d_printf("\n");
}
void print_registry_value(const struct registry_value *valvalue, bool raw)
{
if (!raw) {
- d_printf("Type = %s\n",
+ d_printf(_("Type = %s\n"),
reg_type_lookup(valvalue->type));
}
switch(valvalue->type) {
case REG_DWORD:
if (!raw) {
- d_printf("Value = ");
+ d_printf(_("Value = "));
}
d_printf("%d\n", valvalue->v.dword);
break;
case REG_SZ:
case REG_EXPAND_SZ:
if (!raw) {
- d_printf("Value = \"");
+ d_printf(_("Value = \""));
}
d_printf("%s", valvalue->v.sz.str);
if (!raw) {
@@ -60,7 +61,7 @@ void print_registry_value(const struct registry_value *valvalue, bool raw)
uint32 j;
for (j = 0; j < valvalue->v.multi_sz.num_strings; j++) {
if (!raw) {
- d_printf("Value[%3.3d] = \"", j);
+ d_printf(_("Value[%3.3d] = \""), j);
}
d_printf("%s", valvalue->v.multi_sz.strings[j]);
if (!raw) {
@@ -72,15 +73,15 @@ void print_registry_value(const struct registry_value *valvalue, bool raw)
}
case REG_BINARY:
if (!raw) {
- d_printf("Value = ");
+ d_printf(_("Value = "));
}
- d_printf("%d bytes\n", (int)valvalue->v.binary.length);
+ d_printf(_("%d bytes\n"), (int)valvalue->v.binary.length);
break;
default:
if (!raw) {
- d_printf("Value = ");
+ d_printf(_("Value = "));
}
- d_printf("<unprintable>\n");
+ d_printf(_("<unprintable>\n"));
break;
}
}
@@ -88,7 +89,7 @@ void print_registry_value(const struct registry_value *valvalue, bool raw)
void print_registry_value_with_name(const char *valname,
const struct registry_value *valvalue)
{
- d_printf("Valuename = %s\n", valname);
+ d_printf(_("Valuename = %s\n"), valname);
print_registry_value(valvalue, false);
d_printf("\n");
}
diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c
index f6f90030fe..73f8b0b979 100644
--- a/source3/utils/net_rpc.c
+++ b/source3/utils/net_rpc.c
@@ -63,7 +63,7 @@ NTSTATUS net_get_remote_domain_sid(struct cli_state *cli, TALLOC_CTX *mem_ctx,
result = cli_rpc_pipe_open_noauth(cli, &ndr_table_lsarpc.syntax_id,
&lsa_pipe);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not initialise lsa pipe\n");
+ d_fprintf(stderr, _("Could not initialise lsa pipe\n"));
return result;
}
@@ -71,7 +71,7 @@ NTSTATUS net_get_remote_domain_sid(struct cli_state *cli, TALLOC_CTX *mem_ctx,
SEC_FLAG_MAXIMUM_ALLOWED,
&pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "open_policy failed: %s\n",
+ d_fprintf(stderr, _("open_policy failed: %s\n"),
nt_errstr(result));
return result;
}
@@ -81,7 +81,7 @@ NTSTATUS net_get_remote_domain_sid(struct cli_state *cli, TALLOC_CTX *mem_ctx,
LSA_POLICY_INFO_ACCOUNT_DOMAIN,
&info);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "lsaquery failed: %s\n",
+ d_fprintf(stderr, _("lsaquery failed: %s\n"),
nt_errstr(result));
return result;
}
@@ -254,9 +254,9 @@ static NTSTATUS rpc_changetrustpw_internals(struct net_context *c,
int net_rpc_changetrustpw(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc changetrustpw\n"
- " Change the machine trust password\n");
+ d_printf(_("Usage:\n"
+ "net rpc changetrustpw\n"
+ " Change the machine trust password\n"));
return 0;
}
@@ -338,7 +338,7 @@ static NTSTATUS rpc_oldjoin_internals(struct net_context *c,
sec_channel_type);
if (NT_STATUS_IS_OK(result))
- printf("Joined domain %s.\n", c->opt_target_workgroup);
+ printf(_("Joined domain %s.\n"), c->opt_target_workgroup);
if (!secrets_store_domain_sid(c->opt_target_workgroup, domain_sid)) {
@@ -384,16 +384,16 @@ static int net_rpc_oldjoin(struct net_context *c, int argc, const char **argv)
int rc = -1;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc oldjoin\n"
- " Join a domain the old way\n");
+ d_printf(_("Usage:\n"
+ "net rpc oldjoin\n"
+ " Join a domain the old way\n"));
return 0;
}
rc = net_rpc_perform_oldjoin(c, argc, argv);
if (rc) {
- d_fprintf(stderr, "Failed to join domain\n");
+ d_fprintf(stderr, _("Failed to join domain\n"));
}
return rc;
@@ -414,27 +414,27 @@ static int net_rpc_oldjoin(struct net_context *c, int argc, const char **argv)
int net_rpc_join(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc join -U <username>[%%password] <type>\n"
- " Join a domain\n"
- " username\tName of the admin user"
- " password\tPassword of the admin user, will "
- "prompt if not specified\n"
- " type\tCan be one of the following:\n"
- "\t\tMEMBER\tJoin as member server (default)\n"
- "\t\tBDC\tJoin as BDC\n"
- "\t\tPDC\tJoin as PDC\n");
+ d_printf(_("Usage:\n"
+ "net rpc join -U <username>[%%password] <type>\n"
+ " Join a domain\n"
+ " username\tName of the admin user"
+ " password\tPassword of the admin user, will "
+ "prompt if not specified\n"
+ " type\tCan be one of the following:\n"
+ "\t\tMEMBER\tJoin as member server (default)\n"
+ "\t\tBDC\tJoin as BDC\n"
+ "\t\tPDC\tJoin as PDC\n"));
return 0;
}
if (lp_server_role() == ROLE_STANDALONE) {
- d_printf("cannot join as standalone machine\n");
+ d_printf(_("cannot join as standalone machine\n"));
return -1;
}
if (strlen(global_myname()) > 15) {
- d_printf("Our netbios name can be at most 15 chars long, "
- "\"%s\" is %u chars long\n",
+ d_printf(_("Our netbios name can be at most 15 chars long, "
+ "\"%s\" is %u chars long\n"),
global_myname(), (unsigned int)strlen(global_myname()));
return -1;
}
@@ -483,7 +483,8 @@ NTSTATUS rpc_info_internals(struct net_context *c,
MAXIMUM_ALLOWED_ACCESS,
&connect_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not connect to SAM: %s\n", nt_errstr(result));
+ d_fprintf(stderr, _("Could not connect to SAM: %s\n"),
+ nt_errstr(result));
goto done;
}
@@ -494,7 +495,8 @@ NTSTATUS rpc_info_internals(struct net_context *c,
CONST_DISCARD(struct dom_sid2 *, domain_sid),
&domain_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not open domain: %s\n", nt_errstr(result));
+ d_fprintf(stderr, _("Could not open domain: %s\n"),
+ nt_errstr(result));
goto done;
}
@@ -503,13 +505,14 @@ NTSTATUS rpc_info_internals(struct net_context *c,
2,
&info);
if (NT_STATUS_IS_OK(result)) {
- d_printf("Domain Name: %s\n", info->general.domain_name.string);
- d_printf("Domain SID: %s\n", sid_str);
- d_printf("Sequence number: %llu\n",
+ d_printf(_("Domain Name: %s\n"),
+ info->general.domain_name.string);
+ d_printf(_("Domain SID: %s\n"), sid_str);
+ d_printf(_("Sequence number: %llu\n"),
(unsigned long long)info->general.sequence_num);
- d_printf("Num users: %u\n", info->general.num_users);
- d_printf("Num domain groups: %u\n", info->general.num_groups);
- d_printf("Num local groups: %u\n", info->general.num_aliases);
+ d_printf(_("Num users: %u\n"), info->general.num_users);
+ d_printf(_("Num domain groups: %u\n"),info->general.num_groups);
+ d_printf(_("Num local groups: %u\n"),info->general.num_aliases);
}
done:
@@ -526,9 +529,9 @@ NTSTATUS rpc_info_internals(struct net_context *c,
int net_rpc_info(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc info\n"
- " Display information about the domain\n");
+ d_printf(_("Usage:\n"
+ "net rpc info\n"
+ " Display information about the domain\n"));
return 0;
}
@@ -565,7 +568,7 @@ static NTSTATUS rpc_getsid_internals(struct net_context *c,
fstring sid_str;
sid_to_fstring(sid_str, domain_sid);
- d_printf("Storing SID %s for Domain %s in secrets.tdb\n",
+ d_printf(_("Storing SID %s for Domain %s in secrets.tdb\n"),
sid_str, domain_name);
if (!secrets_store_domain_sid(domain_name, domain_sid)) {
@@ -586,9 +589,9 @@ static NTSTATUS rpc_getsid_internals(struct net_context *c,
int net_rpc_getsid(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc getsid\n"
- " Fetch domain SID into local secrets.tdb\n");
+ d_printf(_("Usage:\n"
+ "net rpc getsid\n"
+ " Fetch domain SID into local secrets.tdb\n"));
return 0;
}
@@ -643,12 +646,12 @@ static int rpc_user_add(struct net_context *c, int argc, const char **argv)
status = NetUserAdd(c->opt_host, 1, (uint8_t *)&info1, &parm_error);
if (status != 0) {
- d_fprintf(stderr, "Failed to add user '%s' with: %s.\n",
+ d_fprintf(stderr,_("Failed to add user '%s' with error: %s.\n"),
argv[0], libnetapi_get_error_string(c->netapi_ctx,
status));
return -1;
} else {
- d_printf("Added user '%s'.\n", argv[0]);
+ d_printf(_("Added user '%s'.\n"), argv[0]);
}
return 0;
@@ -680,11 +683,12 @@ static int rpc_user_rename(struct net_context *c, int argc, const char **argv)
status = NetUserSetInfo(c->opt_host, argv[0],
0, (uint8_t *)&u0, &parm_err);
if (status) {
- d_fprintf(stderr, "Failed to rename user from %s to %s - %s\n",
+ d_fprintf(stderr,
+ _("Failed to rename user from %s to %s - %s\n"),
argv[0], argv[1],
libnetapi_get_error_string(c->netapi_ctx, status));
} else {
- d_printf("Renamed user from %s to %s\n", argv[0], argv[1]);
+ d_printf(_("Renamed user from %s to %s\n"), argv[0], argv[1]);
}
return status;
@@ -712,12 +716,12 @@ static int rpc_user_delete(struct net_context *c, int argc, const char **argv)
status = NetUserDel(c->opt_host, argv[0]);
if (status != 0) {
- d_fprintf(stderr, "Failed to delete user '%s' with: %s.\n",
+ d_fprintf(stderr, _("Failed to delete user '%s' with: %s.\n"),
argv[0],
libnetapi_get_error_string(c->netapi_ctx, status));
return -1;
} else {
- d_printf("Deleted user '%s'.\n", argv[0]);
+ d_printf(_("Deleted user '%s'.\n"), argv[0]);
}
return 0;
@@ -739,6 +743,7 @@ static int rpc_user_password(struct net_context *c, int argc, const char **argv)
char *prompt = NULL;
struct USER_INFO_1003 u1003;
uint32_t parm_err = 0;
+ int ret;
if (argc < 1 || c->display_usage) {
rpc_user_usage(c, argc, argv);
@@ -748,7 +753,9 @@ static int rpc_user_password(struct net_context *c, int argc, const char **argv)
if (argv[1]) {
u1003.usri1003_password = argv[1];
} else {
- if (asprintf(&prompt, "Enter new password for %s:", argv[0]) == -1) {
+ ret = asprintf(&prompt, _("Enter new password for %s:"),
+ argv[0]);
+ if (ret == -1) {
return -1;
}
u1003.usri1003_password = getpass(prompt);
@@ -759,7 +766,8 @@ static int rpc_user_password(struct net_context *c, int argc, const char **argv)
/* Display results */
if (status != 0) {
- d_fprintf(stderr, "Failed to set password for '%s' with: %s.\n",
+ d_fprintf(stderr,
+ _("Failed to set password for '%s' with error: %s.\n"),
argv[0], libnetapi_get_error_string(c->netapi_ctx,
status));
return -1;
@@ -801,7 +809,8 @@ static int rpc_user_info(struct net_context *c, int argc, const char **argv)
&entries_read,
&total_entries);
if (status != 0) {
- d_fprintf(stderr, "Failed to get groups for '%s' with: %s.\n",
+ d_fprintf(stderr,
+ _("Failed to get groups for '%s' with error: %s.\n"),
argv[0], libnetapi_get_error_string(c->netapi_ctx,
status));
return -1;
@@ -840,8 +849,8 @@ static int rpc_user_list(struct net_context *c, int argc, const char **argv)
/* Query domain users */
if (c->opt_long_list_entries)
- d_printf("\nUser name Comment"
- "\n-----------------------------\n");
+ d_printf(_("\nUser name Comment"
+ "\n-----------------------------\n"));
do {
uint32_t max_entries, max_size;
@@ -897,41 +906,41 @@ int net_rpc_user(struct net_context *c, int argc, const char **argv)
"add",
rpc_user_add,
NET_TRANSPORT_RPC,
- "Add specified user",
- "net rpc user add\n"
- " Add specified user"
+ N_("Add specified user"),
+ N_("net rpc user add\n"
+ " Add specified user")
},
{
"info",
rpc_user_info,
NET_TRANSPORT_RPC,
- "List domain groups of user",
- "net rpc user info\n"
- " Lis domain groups of user"
+ N_("List domain groups of user"),
+ N_("net rpc user info\n"
+ " Lis domain groups of user")
},
{
"delete",
rpc_user_delete,
NET_TRANSPORT_RPC,
- "Remove specified user",
- "net rpc user delete\n"
- " Remove specified user"
+ N_("Remove specified user"),
+ N_("net rpc user delete\n"
+ " Remove specified user")
},
{
"password",
rpc_user_password,
NET_TRANSPORT_RPC,
- "Change user password",
- "net rpc user password\n"
- " Change user password"
+ N_("Change user password"),
+ N_("net rpc user password\n"
+ " Change user password")
},
{
"rename",
rpc_user_rename,
NET_TRANSPORT_RPC,
- "Rename specified user",
- "net rpc user rename\n"
- " Rename specified user"
+ N_("Rename specified user"),
+ N_("net rpc user rename\n"
+ " Rename specified user")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -948,9 +957,9 @@ int net_rpc_user(struct net_context *c, int argc, const char **argv)
if (argc == 0) {
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rpc user\n"
- " List all users\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rpc user\n"
+ " List all users\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -999,7 +1008,7 @@ static NTSTATUS rpc_sh_handle_user(struct net_context *c,
enum lsa_SidType type;
if (argc == 0) {
- d_fprintf(stderr, "usage: %s <username>\n", ctx->whoami);
+ d_fprintf(stderr, _("usage: %s <username>\n"), ctx->whoami);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -1010,20 +1019,20 @@ static NTSTATUS rpc_sh_handle_user(struct net_context *c,
result = net_rpc_lookup_name(c, mem_ctx, rpc_pipe_np_smb_conn(pipe_hnd),
argv[0], NULL, NULL, &sid, &type);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not lookup %s: %s\n", argv[0],
+ d_fprintf(stderr, _("Could not lookup %s: %s\n"), argv[0],
nt_errstr(result));
goto done;
}
if (type != SID_NAME_USER) {
- d_fprintf(stderr, "%s is a %s, not a user\n", argv[0],
+ d_fprintf(stderr, _("%s is a %s, not a user\n"), argv[0],
sid_type_lookup(type));
result = NT_STATUS_NO_SUCH_USER;
goto done;
}
if (!sid_peek_check_rid(ctx->domain_sid, &sid, &rid)) {
- d_fprintf(stderr, "%s is not in our domain\n", argv[0]);
+ d_fprintf(stderr, _("%s is not in our domain\n"), argv[0]);
result = NT_STATUS_NO_SUCH_USER;
goto done;
}
@@ -1080,7 +1089,7 @@ static NTSTATUS rpc_sh_user_show_internals(struct net_context *c,
union samr_UserInfo *info = NULL;
if (argc != 0) {
- d_fprintf(stderr, "usage: %s show <username>\n", ctx->whoami);
+ d_fprintf(stderr, _("usage: %s show <username>\n"),ctx->whoami);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -1092,7 +1101,7 @@ static NTSTATUS rpc_sh_user_show_internals(struct net_context *c,
return result;
}
- d_printf("user rid: %d, group rid: %d\n",
+ d_printf(_("user rid: %d, group rid: %d\n"),
info->info21.rid,
info->info21.primary_gid);
@@ -1133,7 +1142,7 @@ static NTSTATUS rpc_sh_user_str_edit_internals(struct net_context *c,
union samr_UserInfo *info = NULL;
if (argc > 1) {
- d_fprintf(stderr, "usage: %s <username> [new value|NULL]\n",
+ d_fprintf(stderr, _("usage: %s <username> [new value|NULL]\n"),
ctx->whoami);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -1156,7 +1165,7 @@ static NTSTATUS rpc_sh_user_str_edit_internals(struct net_context *c,
FETCHSTR("description", description);
if (argc == 0) {
- d_printf("%s's %s: [%s]\n", username, ctx->thiscmd, oldval);
+ d_printf(_("%s's %s: [%s]\n"), username, ctx->thiscmd, oldval);
goto done;
}
@@ -1178,7 +1187,7 @@ static NTSTATUS rpc_sh_user_str_edit_internals(struct net_context *c,
21,
info);
- d_printf("Set %s's %s from [%s] to [%s]\n", username,
+ d_printf(_("Set %s's %s from [%s] to [%s]\n"), username,
ctx->thiscmd, oldval, argv[0]);
done:
@@ -1222,7 +1231,9 @@ static NTSTATUS rpc_sh_user_flag_edit_internals(struct net_context *c,
if ((argc > 1) ||
((argc == 1) && !strequal(argv[0], "yes") &&
!strequal(argv[0], "no"))) {
- d_fprintf(stderr, "usage: %s <username> [yes|no]\n",
+ /* TRANSATORS: The yes|no here are program keywords. Please do
+ not translate. */
+ d_fprintf(stderr, _("usage: %s <username> [yes|no]\n"),
ctx->whoami);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -1247,7 +1258,8 @@ static NTSTATUS rpc_sh_user_flag_edit_internals(struct net_context *c,
HANDLEFLG("pwnoexp", PWNOEXP);
if (argc == 0) {
- d_printf("%s's %s flag: %s\n", username, ctx->thiscmd, oldval);
+ d_printf(_("%s's %s flag: %s\n"), username, ctx->thiscmd,
+ oldval);
goto done;
}
@@ -1262,7 +1274,7 @@ static NTSTATUS rpc_sh_user_flag_edit_internals(struct net_context *c,
info);
if (NT_STATUS_IS_OK(result)) {
- d_printf("Set %s's %s flag from [%s] to [%s]\n", username,
+ d_printf(_("Set %s's %s flag from [%s] to [%s]\n"), username,
ctx->thiscmd, oldval, argv[0]);
}
@@ -1288,34 +1300,34 @@ struct rpc_sh_cmd *net_rpc_user_edit_cmds(struct net_context *c,
static struct rpc_sh_cmd cmds[] = {
{ "fullname", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_str_edit,
- "Show/Set a user's full name" },
+ N_("Show/Set a user's full name") },
{ "homedir", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_str_edit,
- "Show/Set a user's home directory" },
+ N_("Show/Set a user's home directory") },
{ "homedrive", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_str_edit,
- "Show/Set a user's home drive" },
+ N_("Show/Set a user's home drive") },
{ "logonscript", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_str_edit,
- "Show/Set a user's logon script" },
+ N_("Show/Set a user's logon script") },
{ "profilepath", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_str_edit,
- "Show/Set a user's profile path" },
+ N_("Show/Set a user's profile path") },
{ "description", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_str_edit,
- "Show/Set a user's description" },
+ N_("Show/Set a user's description") },
{ "disabled", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_flag_edit,
- "Show/Set whether a user is disabled" },
+ N_("Show/Set whether a user is disabled") },
{ "autolock", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_flag_edit,
- "Show/Set whether a user locked out" },
+ N_("Show/Set whether a user locked out") },
{ "pwnotreq", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_flag_edit,
- "Show/Set whether a user does not need a password" },
+ N_("Show/Set whether a user does not need a password") },
{ "pwnoexp", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_flag_edit,
- "Show/Set whether a user's password does not expire" },
+ N_("Show/Set whether a user's password does not expire") },
{ NULL, NULL, 0, NULL, NULL }
};
@@ -1330,16 +1342,16 @@ struct rpc_sh_cmd *net_rpc_user_cmds(struct net_context *c,
static struct rpc_sh_cmd cmds[] = {
{ "list", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_list,
- "List available users" },
+ N_("List available users") },
{ "info", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_info,
- "List the domain groups a user is member of" },
+ N_("List the domain groups a user is member of") },
{ "show", NULL, &ndr_table_samr.syntax_id, rpc_sh_user_show,
- "Show info about a user" },
+ N_("Show info about a user") },
{ "edit", net_rpc_user_edit_cmds, 0, NULL,
- "Show/Modify a user's fields" },
+ N_("Show/Modify a user's fields") },
{ NULL, NULL, 0, NULL, NULL }
};
@@ -1410,7 +1422,7 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
&connect_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Request samr_Connect2 failed\n");
+ d_fprintf(stderr, _("Request samr_Connect2 failed\n"));
goto done;
}
@@ -1421,7 +1433,7 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
&domain_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Request open_domain failed\n");
+ d_fprintf(stderr, _("Request open_domain failed\n"));
goto done;
}
@@ -1434,7 +1446,7 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
&group_rids,
&name_types);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Lookup of '%s' failed\n",argv[0]);
+ d_fprintf(stderr, _("Lookup of '%s' failed\n"),argv[0]);
goto done;
}
@@ -1447,7 +1459,7 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
group_rids.ids[0],
&group_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Request open_group failed");
+ d_fprintf(stderr, _("Request open_group failed"));
goto done;
}
@@ -1458,12 +1470,15 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
&rids);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Unable to query group members of %s",argv[0]);
+ d_fprintf(stderr,
+ _("Unable to query group members of %s"),
+ argv[0]);
goto done;
}
if (c->opt_verbose) {
- d_printf("Domain Group %s (rid: %d) has %d members\n",
+ d_printf(
+ _("Domain Group %s (rid: %d) has %d members\n"),
argv[0],group_rid, rids->count);
}
@@ -1477,7 +1492,8 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
&user_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Unable to open group member %d\n",
+ d_fprintf(stderr,
+ _("Unable to open group member %d\n"),
rids->rids[i]);
goto done;
}
@@ -1488,14 +1504,17 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
&info);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Unable to lookup userinfo for group member %d\n",
+ d_fprintf(stderr,
+ _("Unable to lookup userinfo for group "
+ "member %d\n"),
rids->rids[i]);
goto done;
}
if (info->info21.primary_gid == group_rid) {
if (c->opt_verbose) {
- d_printf("Group is primary group of %s\n",
+ d_printf(_("Group is primary group "
+ "of %s\n"),
info->info21.account_name.string);
}
group_is_primary = true;
@@ -1505,8 +1524,9 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
}
if (group_is_primary) {
- d_fprintf(stderr, "Unable to delete group because some "
- "of it's members have it as primary group\n");
+ d_fprintf(stderr, _("Unable to delete group because "
+ "some of it's members have it as primary "
+ "group\n"));
result = NT_STATUS_MEMBERS_PRIMARY_GROUP;
goto done;
}
@@ -1515,7 +1535,7 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
for (i = 0; i < rids->count; i++)
{
if (c->opt_verbose)
- d_printf("Remove group member %d...",
+ d_printf(_("Remove group member %d..."),
rids->rids[i]);
result = rpccli_samr_DeleteGroupMember(pipe_hnd, mem_ctx,
&group_pol,
@@ -1523,10 +1543,10 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
if (NT_STATUS_IS_OK(result)) {
if (c->opt_verbose)
- d_printf("ok\n");
+ d_printf(_("ok\n"));
} else {
if (c->opt_verbose)
- d_printf("failed\n");
+ d_printf(_("failed\n"));
goto done;
}
}
@@ -1544,7 +1564,7 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
&group_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Request open_alias failed\n");
+ d_fprintf(stderr, _("Request open_alias failed\n"));
goto done;
}
@@ -1552,7 +1572,8 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
&group_pol);
break;
default:
- d_fprintf(stderr, "%s is of type %s. This command is only for deleting local or global groups\n",
+ d_fprintf(stderr, _("%s is of type %s. This command is only "
+ "for deleting local or global groups\n"),
argv[0],sid_type_lookup(name_types.ids[0]));
result = NT_STATUS_UNSUCCESSFUL;
goto done;
@@ -1560,9 +1581,10 @@ static NTSTATUS rpc_group_delete_internals(struct net_context *c,
if (NT_STATUS_IS_OK(result)) {
if (c->opt_verbose)
- d_printf("Deleted %s '%s'\n",sid_type_lookup(name_types.ids[0]),argv[0]);
+ d_printf(_("Deleted %s '%s'\n"),
+ sid_type_lookup(name_types.ids[0]), argv[0]);
} else {
- d_fprintf(stderr, "Deleting of %s failed: %s\n",argv[0],
+ d_fprintf(stderr, _("Deleting of %s failed: %s\n"), argv[0],
get_friendly_nt_error_msg(result));
}
@@ -1598,12 +1620,13 @@ static int rpc_group_add_internals(struct net_context *c, int argc, const char *
status = NetGroupAdd(c->opt_host, 1, (uint8_t *)&info1, &parm_error);
if (status != 0) {
- d_fprintf(stderr, "Failed to add group '%s' with: %s.\n",
+ d_fprintf(stderr,
+ _("Failed to add group '%s' with error: %s.\n"),
argv[0], libnetapi_get_error_string(c->netapi_ctx,
status));
return -1;
} else {
- d_printf("Added group '%s'.\n", argv[0]);
+ d_printf(_("Added group '%s'.\n"), argv[0]);
}
return 0;
@@ -1630,12 +1653,13 @@ static int rpc_alias_add_internals(struct net_context *c, int argc, const char *
status = NetLocalGroupAdd(c->opt_host, 1, (uint8_t *)&info1, &parm_error);
if (status != 0) {
- d_fprintf(stderr, "Failed to add alias '%s' with: %s.\n",
+ d_fprintf(stderr,
+ _("Failed to add alias '%s' with error: %s.\n"),
argv[0], libnetapi_get_error_string(c->netapi_ctx,
status));
return -1;
} else {
- d_printf("Added alias '%s'.\n", argv[0]);
+ d_printf(_("Added alias '%s'.\n"), argv[0]);
}
return 0;
@@ -1755,7 +1779,8 @@ static NTSTATUS rpc_add_groupmem(struct rpc_pipe_client *pipe_hnd,
&rid_types);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not lookup up group member %s\n", member);
+ d_fprintf(stderr, _("Could not lookup up group member %s\n"),
+ member);
goto done;
}
@@ -1804,7 +1829,8 @@ static NTSTATUS rpc_add_aliasmem(struct rpc_pipe_client *pipe_hnd,
member, &member_sid, &member_type);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not lookup up group member %s\n", member);
+ d_fprintf(stderr, _("Could not lookup up group member %s\n"),
+ member);
return result;
}
@@ -1863,17 +1889,18 @@ static NTSTATUS rpc_group_addmem_internals(struct net_context *c,
enum lsa_SidType group_type;
if (argc != 2 || c->display_usage) {
- d_printf("Usage:\n"
- "net rpc group addmem <group> <member>\n"
- " Add a member to a group\n"
- " group\tGroup to add member to\n"
- " member\tMember to add to group\n");
+ d_printf(_("Usage:\n"
+ "net rpc group addmem <group> <member>\n"
+ " Add a member to a group\n"
+ " group\tGroup to add member to\n"
+ " member\tMember to add to group\n"));
return NT_STATUS_UNSUCCESSFUL;
}
if (!NT_STATUS_IS_OK(get_sid_from_name(cli, mem_ctx, argv[0],
&group_sid, &group_type))) {
- d_fprintf(stderr, "Could not lookup group name %s\n", argv[0]);
+ d_fprintf(stderr, _("Could not lookup group name %s\n"),
+ argv[0]);
return NT_STATUS_UNSUCCESSFUL;
}
@@ -1882,7 +1909,7 @@ static NTSTATUS rpc_group_addmem_internals(struct net_context *c,
&group_sid, argv[1]);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not add %s to %s: %s\n",
+ d_fprintf(stderr, _("Could not add %s to %s: %s\n"),
argv[1], argv[0], nt_errstr(result));
}
return result;
@@ -1893,14 +1920,14 @@ static NTSTATUS rpc_group_addmem_internals(struct net_context *c,
&group_sid, argv[1]);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not add %s to %s: %s\n",
+ d_fprintf(stderr, _("Could not add %s to %s: %s\n"),
argv[1], argv[0], nt_errstr(result));
}
return result;
}
- d_fprintf(stderr, "Can only add members to global or local groups "
- "which %s is not\n", argv[0]);
+ d_fprintf(stderr, _("Can only add members to global or local groups "
+ "which %s is not\n"), argv[0]);
return NT_STATUS_UNSUCCESSFUL;
}
@@ -1959,7 +1986,8 @@ static NTSTATUS rpc_del_groupmem(struct net_context *c,
&rids,
&rid_types);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not lookup up group member %s\n", member);
+ d_fprintf(stderr, _("Could not lookup up group member %s\n"),
+ member);
goto done;
}
@@ -2005,7 +2033,8 @@ static NTSTATUS rpc_del_aliasmem(struct rpc_pipe_client *pipe_hnd,
member, &member_sid, &member_type);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not lookup up group member %s\n", member);
+ d_fprintf(stderr, _("Could not lookup up group member %s\n"),
+ member);
return result;
}
@@ -2062,17 +2091,18 @@ static NTSTATUS rpc_group_delmem_internals(struct net_context *c,
enum lsa_SidType group_type;
if (argc != 2 || c->display_usage) {
- d_printf("Usage:\n"
- "net rpc group delmem <group> <member>\n"
- " Delete a member from a group\n"
- " group\tGroup to delete member from\n"
- " member\tMember to delete from group\n");
+ d_printf(_("Usage:\n"
+ "net rpc group delmem <group> <member>\n"
+ " Delete a member from a group\n"
+ " group\tGroup to delete member from\n"
+ " member\tMember to delete from group\n"));
return NT_STATUS_UNSUCCESSFUL;
}
if (!NT_STATUS_IS_OK(get_sid_from_name(cli, mem_ctx, argv[0],
&group_sid, &group_type))) {
- d_fprintf(stderr, "Could not lookup group name %s\n", argv[0]);
+ d_fprintf(stderr, _("Could not lookup group name %s\n"),
+ argv[0]);
return NT_STATUS_UNSUCCESSFUL;
}
@@ -2081,7 +2111,7 @@ static NTSTATUS rpc_group_delmem_internals(struct net_context *c,
&group_sid, argv[1]);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not del %s from %s: %s\n",
+ d_fprintf(stderr, _("Could not del %s from %s: %s\n"),
argv[1], argv[0], nt_errstr(result));
}
return result;
@@ -2092,14 +2122,14 @@ static NTSTATUS rpc_group_delmem_internals(struct net_context *c,
&group_sid, argv[1]);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Could not del %s from %s: %s\n",
+ d_fprintf(stderr, _("Could not del %s from %s: %s\n"),
argv[1], argv[0], nt_errstr(result));
}
return result;
}
- d_fprintf(stderr, "Can only delete members from global or local groups "
- "which %s is not\n", argv[0]);
+ d_fprintf(stderr, _("Can only delete members from global or local "
+ "groups which %s is not\n"), argv[0]);
return NT_STATUS_UNSUCCESSFUL;
}
@@ -2145,14 +2175,15 @@ static NTSTATUS rpc_group_list_internals(struct net_context *c,
bool builtin = false;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc group list [global] [local] [builtin]\n"
- " List groups on RPC server\n"
- " global\tList global groups\n"
- " local\tList local groups\n"
- " builtin\tList builtin groups\n"
- " If none of global, local or builtin is "
- "specified, all three options are considered set\n");
+ d_printf(_("Usage:\n"
+ "net rpc group list [global] [local] [builtin]\n"
+ " List groups on RPC server\n"
+ " global\tList global groups\n"
+ " local\tList local groups\n"
+ " builtin\tList builtin groups\n"
+ " If none of global, local or builtin is "
+ "specified, all three options are considered "
+ "set\n"));
return NT_STATUS_OK;
}
@@ -2196,8 +2227,8 @@ static NTSTATUS rpc_group_list_internals(struct net_context *c,
/* Query domain groups */
if (c->opt_long_list_entries)
- d_printf("\nGroup name Comment"
- "\n-----------------------------\n");
+ d_printf(_("\nGroup name Comment"
+ "\n-----------------------------\n"));
do {
uint32_t max_size, total_size, returned_size;
union samr_DispInfo info;
@@ -2465,7 +2496,7 @@ static NTSTATUS rpc_list_alias_members(struct net_context *c,
&sid_array);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Couldn't list alias members\n");
+ d_fprintf(stderr, _("Couldn't list alias members\n"));
return result;
}
@@ -2479,7 +2510,7 @@ static NTSTATUS rpc_list_alias_members(struct net_context *c,
&ndr_table_lsarpc.syntax_id,
&lsa_pipe);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Couldn't open LSA pipe. Error was %s\n",
+ d_fprintf(stderr, _("Couldn't open LSA pipe. Error was %s\n"),
nt_errstr(result) );
return result;
}
@@ -2488,14 +2519,14 @@ static NTSTATUS rpc_list_alias_members(struct net_context *c,
SEC_FLAG_MAXIMUM_ALLOWED, &lsa_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Couldn't open LSA policy handle\n");
+ d_fprintf(stderr, _("Couldn't open LSA policy handle\n"));
TALLOC_FREE(lsa_pipe);
return result;
}
alias_sids = TALLOC_ZERO_ARRAY(mem_ctx, DOM_SID, num_members);
if (!alias_sids) {
- d_fprintf(stderr, "Out of memory\n");
+ d_fprintf(stderr, _("Out of memory\n"));
TALLOC_FREE(lsa_pipe);
return NT_STATUS_NO_MEMORY;
}
@@ -2510,7 +2541,7 @@ static NTSTATUS rpc_list_alias_members(struct net_context *c,
if (!NT_STATUS_IS_OK(result) &&
!NT_STATUS_EQUAL(result, STATUS_SOME_UNMAPPED)) {
- d_fprintf(stderr, "Couldn't lookup SIDs\n");
+ d_fprintf(stderr, _("Couldn't lookup SIDs\n"));
TALLOC_FREE(lsa_pipe);
return result;
}
@@ -2521,8 +2552,8 @@ static NTSTATUS rpc_list_alias_members(struct net_context *c,
if (c->opt_long_list_entries) {
printf("%s %s\\%s %d\n", sid_str,
- domains[i] ? domains[i] : "*unknown*",
- names[i] ? names[i] : "*unknown*", types[i]);
+ domains[i] ? domains[i] : _("*unknown*"),
+ names[i] ? names[i] : _("*unknown*"), types[i]);
} else {
if (domains[i])
printf("%s\\%s\n", domains[i], names[i]);
@@ -2596,7 +2627,8 @@ static NTSTATUS rpc_group_members_internals(struct net_context *c,
&domain_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Couldn't find group %s\n", argv[0]);
+ d_fprintf(stderr, _("Couldn't find group %s\n"),
+ argv[0]);
return result;
}
@@ -2608,13 +2640,15 @@ static NTSTATUS rpc_group_members_internals(struct net_context *c,
&rid_types);
if (!NT_STATUS_IS_OK(result)) {
- d_fprintf(stderr, "Couldn't find group %s\n", argv[0]);
+ d_fprintf(stderr, _("Couldn't find group %s\n"),
+ argv[0]);
return result;
}
}
if (rids.count != 1) {
- d_fprintf(stderr, "Couldn't find group %s\n", argv[0]);
+ d_fprintf(stderr, _("Couldn't find group %s\n"),
+ argv[0]);
return result;
}
@@ -2650,7 +2684,7 @@ static int rpc_group_rename_internals(struct net_context *c, int argc, const cha
uint32_t parm_err;
if (argc != 2) {
- d_printf("Usage: 'net rpc group rename group newname'\n");
+ d_printf(_("Usage: 'net rpc group rename group newname'\n"));
return -1;
}
@@ -2663,7 +2697,7 @@ static int rpc_group_rename_internals(struct net_context *c, int argc, const cha
&parm_err);
if (status != 0) {
- d_fprintf(stderr, "Renaming group %s failed with: %s\n",
+ d_fprintf(stderr, _("Renaming group %s failed with: %s\n"),
argv[0], libnetapi_get_error_string(c->netapi_ctx,
status));
return -1;
@@ -2697,57 +2731,57 @@ int net_rpc_group(struct net_context *c, int argc, const char **argv)
"add",
rpc_group_add,
NET_TRANSPORT_RPC,
- "Create specified group",
- "net rpc group add\n"
- " Create specified group"
+ N_("Create specified group"),
+ N_("net rpc group add\n"
+ " Create specified group")
},
{
"delete",
rpc_group_delete,
NET_TRANSPORT_RPC,
- "Delete specified group",
- "net rpc group delete\n"
- " Delete specified group"
+ N_("Delete specified group"),
+ N_("net rpc group delete\n"
+ " Delete specified group")
},
{
"addmem",
rpc_group_addmem,
NET_TRANSPORT_RPC,
- "Add member to group",
- "net rpc group addmem\n"
- " Add member to group"
+ N_("Add member to group"),
+ N_("net rpc group addmem\n"
+ " Add member to group")
},
{
"delmem",
rpc_group_delmem,
NET_TRANSPORT_RPC,
- "Remove member from group",
- "net rpc group delmem\n"
- " Remove member from group"
+ N_("Remove member from group"),
+ N_("net rpc group delmem\n"
+ " Remove member from group")
},
{
"list",
rpc_group_list,
NET_TRANSPORT_RPC,
- "List groups",
- "net rpc group list\n"
- " List groups"
+ N_("List groups"),
+ N_("net rpc group list\n"
+ " List groups")
},
{
"members",
rpc_group_members,
NET_TRANSPORT_RPC,
- "List group members",
- "net rpc group members\n"
- " List group members"
+ N_("List group members"),
+ N_("net rpc group members\n"
+ " List group members")
},
{
"rename",
rpc_group_rename,
NET_TRANSPORT_RPC,
- "Rename group",
- "net rpc group rename\n"
- " Rename group"
+ N_("Rename group"),
+ N_("net rpc group rename\n"
+ " Rename group")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -2764,10 +2798,10 @@ int net_rpc_group(struct net_context *c, int argc, const char **argv)
if (argc == 0) {
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rpc group\n"
- " Alias for net rpc group list global local "
- "builtin\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rpc group\n"
+ " Alias for net rpc group list global "
+ "local builtin\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -2837,7 +2871,7 @@ static int rpc_share_add(struct net_context *c, int argc, const char **argv)
(uint8_t *)&i2,
&parm_error);
if (status != 0) {
- printf("NetShareAdd failed with: %s\n",
+ printf(_("NetShareAdd failed with: %s\n"),
libnetapi_get_error_string(c->netapi_ctx, status));
}
@@ -2988,9 +3022,9 @@ static int rpc_share_list(struct net_context *c, int argc, const char **argv)
uint32_t i, level = 1;
if (c->display_usage) {
- d_printf("Usage\n"
- "net rpc share list\n"
- " List shares on remote server\n");
+ d_printf(_("Usage\n"
+ "net rpc share list\n"
+ " List shares on remote server\n"));
return 0;
}
@@ -3008,10 +3042,10 @@ static int rpc_share_list(struct net_context *c, int argc, const char **argv)
/* Display results */
if (c->opt_long_list_entries) {
- d_printf(
+ d_printf(_(
"\nEnumerating shared resources (exports) on remote server:\n\n"
"\nShare name Type Description\n"
- "---------- ---- -----------\n");
+ "---------- ---- -----------\n"));
}
for (i = 0; i < entries_read; i++)
display_share_info_1(c, &i1[i]);
@@ -3022,7 +3056,7 @@ static int rpc_share_list(struct net_context *c, int argc, const char **argv)
static bool check_share_availability(struct cli_state *cli, const char *netname)
{
if (!NT_STATUS_IS_OK(cli_tcon_andx(cli, netname, "A:", "", 0))) {
- d_printf("skipping [%s]: not a file share.\n", netname);
+ d_printf(_("skipping [%s]: not a file share.\n"), netname);
return false;
}
@@ -3037,7 +3071,8 @@ static bool check_share_sanity(struct net_context *c, struct cli_state *cli,
{
/* only support disk shares */
if (! ( type == STYPE_DISKTREE || type == (STYPE_DISKTREE | STYPE_HIDDEN)) ) {
- printf("share [%s] is not a diskshare (type: %x)\n", netname, type);
+ printf(_("share [%s] is not a diskshare (type: %x)\n"), netname,
+ type);
return false;
}
@@ -3048,7 +3083,7 @@ static bool check_share_sanity(struct net_context *c, struct cli_state *cli,
return false;
if (c->opt_exclude && in_list(netname, c->opt_exclude, false)) {
- printf("excluding [%s]\n", netname);
+ printf(_("excluding [%s]\n"), netname);
return false;
}
@@ -3115,7 +3150,8 @@ static NTSTATUS rpc_share_migrate_shares_internals(struct net_context *c,
/* finally add the share on the dst server */
- printf("migrating: [%s], path: %s, comment: %s, without share-ACLs\n",
+ printf(_("migrating: [%s], path: %s, comment: %s, without "
+ "share-ACLs\n"),
info502.name, info502.path, info502.comment);
info.info502 = &info502;
@@ -3128,13 +3164,13 @@ static NTSTATUS rpc_share_migrate_shares_internals(struct net_context *c,
&result);
if (W_ERROR_V(result) == W_ERROR_V(WERR_FILE_EXISTS)) {
- printf(" [%s] does already exist\n",
+ printf(_(" [%s] does already exist\n"),
info502.name);
continue;
}
if (!NT_STATUS_IS_OK(nt_status) || !W_ERROR_IS_OK(result)) {
- printf("cannot add share: %s\n", win_errstr(result));
+ printf(_("cannot add share: %s\n"), win_errstr(result));
goto done;
}
@@ -3164,14 +3200,14 @@ static int rpc_share_migrate_shares(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc share migrate shares\n"
- " Migrate shares to local server\n");
+ d_printf(_("Usage:\n"
+ "net rpc share migrate shares\n"
+ " Migrate shares to local server\n"));
return 0;
}
if (!c->opt_host) {
- printf("no server to migrate\n");
+ printf(_("no server to migrate\n"));
return -1;
}
@@ -3231,12 +3267,12 @@ static void copy_fn(const char *mnt, file_info *f,
false);
break;
default:
- d_fprintf(stderr, "Unsupported mode %d\n", net_mode_share);
+ d_fprintf(stderr, _("Unsupported mode %d\n"), net_mode_share);
return;
}
if (!NT_STATUS_IS_OK(nt_status))
- printf("could not handle dir %s: %s\n",
+ printf(_("could not handle dir %s: %s\n"),
dir, nt_errstr(nt_status));
/* search below that directory */
@@ -3246,7 +3282,7 @@ static void copy_fn(const char *mnt, file_info *f,
old_dir = local_state->cwd;
local_state->cwd = dir;
if (!sync_files(local_state, new_mask))
- printf("could not handle files\n");
+ printf(_("could not handle files\n"));
local_state->cwd = old_dir;
return;
@@ -3273,12 +3309,13 @@ static void copy_fn(const char *mnt, file_info *f,
true);
break;
default:
- d_fprintf(stderr, "Unsupported file mode %d\n", net_mode_share);
+ d_fprintf(stderr, _("Unsupported file mode %d\n"),
+ net_mode_share);
return;
}
if (!NT_STATUS_IS_OK(nt_status))
- printf("could not handle file %s: %s\n",
+ printf(_("could not handle file %s: %s\n"),
filename, nt_errstr(nt_status));
}
@@ -3301,13 +3338,14 @@ static bool sync_files(struct copy_clistate *cp_clistate, const char *mask)
if ( !cli_resolve_path(talloc_tos(), "", NULL, cp_clistate->cli_share_src,
mask, &targetcli, &targetpath ) ) {
- d_fprintf(stderr, "cli_resolve_path %s failed with error: %s\n",
+ d_fprintf(stderr, _("cli_resolve_path %s failed with error: "
+ "%s\n"),
mask, cli_errstr(cp_clistate->cli_share_src));
return false;
}
if (cli_list(targetcli, targetpath, cp_clistate->attribute, copy_fn, cp_clistate) == -1) {
- d_fprintf(stderr, "listing %s failed with error: %s\n",
+ d_fprintf(stderr, _("listing %s failed with error: %s\n"),
mask, cli_errstr(targetcli));
return false;
}
@@ -3341,12 +3379,13 @@ bool copy_top_level_perms(struct net_context *c,
false);
break;
default:
- d_fprintf(stderr, "Unsupported mode %d\n", net_mode_share);
+ d_fprintf(stderr, _("Unsupported mode %d\n"), net_mode_share);
break;
}
if (!NT_STATUS_IS_OK(nt_status)) {
- printf("Could handle directory attributes for top level directory of share %s. Error %s\n",
+ printf(_("Could handle directory attributes for top level "
+ "directory of share %s. Error %s\n"),
sharename, nt_errstr(nt_status));
return false;
}
@@ -3412,7 +3451,8 @@ static NTSTATUS rpc_share_migrate_files_internals(struct net_context *c,
/* one might not want to mirror whole discs :) */
if (strequal(info502.name, "print$") || info502.name[1] == '$') {
- d_printf("skipping [%s]: builtin/hidden share\n", info502.name);
+ d_printf(_("skipping [%s]: builtin/hidden share\n"),
+ info502.name);
continue;
}
@@ -3422,14 +3462,16 @@ static NTSTATUS rpc_share_migrate_files_internals(struct net_context *c,
printf("syncing");
break;
default:
- d_fprintf(stderr, "Unsupported mode %d\n", net_mode_share);
+ d_fprintf(stderr, _("Unsupported mode %d\n"),
+ net_mode_share);
break;
}
- printf(" [%s] files and directories %s ACLs, %s DOS Attributes %s\n",
+ printf(_(" [%s] files and directories %s ACLs, %s DOS "
+ "Attributes %s\n"),
info502.name,
- c->opt_acls ? "including" : "without",
- c->opt_attrs ? "including" : "without",
- c->opt_timestamps ? "(preserving timestamps)" : "");
+ c->opt_acls ? _("including") : _("without"),
+ c->opt_attrs ? _("including") : _("without"),
+ c->opt_timestamps ? _("(preserving timestamps)") : "");
cp_clistate.mem_ctx = mem_ctx;
cp_clistate.cli_share_src = NULL;
@@ -3458,13 +3500,16 @@ static NTSTATUS rpc_share_migrate_files_internals(struct net_context *c,
}
if (!copy_top_level_perms(c, &cp_clistate, info502.name)) {
- d_fprintf(stderr, "Could not handle the top level directory permissions for the share: %s\n", info502.name);
+ d_fprintf(stderr, _("Could not handle the top level "
+ "directory permissions for the "
+ "share: %s\n"), info502.name);
nt_status = NT_STATUS_UNSUCCESSFUL;
goto done;
}
if (!sync_files(&cp_clistate, mask)) {
- d_fprintf(stderr, "could not handle files for share: %s\n", info502.name);
+ d_fprintf(stderr, _("could not handle files for share: "
+ "%s\n"), info502.name);
nt_status = NT_STATUS_UNSUCCESSFUL;
goto done;
}
@@ -3488,14 +3533,14 @@ done:
static int rpc_share_migrate_files(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net share migrate files\n"
- " Migrate files to local server\n");
+ d_printf(_("Usage:\n"
+ "net share migrate files\n"
+ " Migrate files to local server\n"));
return 0;
}
if (!c->opt_host) {
- d_printf("no server to migrate\n");
+ d_printf(_("no server to migrate\n"));
return -1;
}
@@ -3563,7 +3608,8 @@ static NTSTATUS rpc_share_migrate_security_internals(struct net_context *c,
if (!check_share_sanity(c, cli, info502.name, info502.type))
continue;
- printf("migrating: [%s], path: %s, comment: %s, including share-ACLs\n",
+ printf(_("migrating: [%s], path: %s, comment: %s, including "
+ "share-ACLs\n"),
info502.name, info502.path, info502.comment);
if (c->opt_verbose)
@@ -3581,7 +3627,8 @@ static NTSTATUS rpc_share_migrate_security_internals(struct net_context *c,
&parm_error,
&result);
if (!NT_STATUS_IS_OK(nt_status) || !W_ERROR_IS_OK(result)) {
- printf("cannot set share-acl: %s\n", win_errstr(result));
+ printf(_("cannot set share-acl: %s\n"),
+ win_errstr(result));
goto done;
}
@@ -3611,14 +3658,14 @@ static int rpc_share_migrate_security(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc share migrate security\n"
- " Migrate share-acls to local server\n");
+ d_printf(_("Usage:\n"
+ "net rpc share migrate security\n"
+ " Migrate share-acls to local server\n"));
return 0;
}
if (!c->opt_host) {
- d_printf("no server to migrate\n");
+ d_printf(_("no server to migrate\n"));
return -1;
}
@@ -3644,14 +3691,14 @@ static int rpc_share_migrate_all(struct net_context *c, int argc,
int ret;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc share migrate all\n"
- " Migrates shares including all share settings\n");
+ d_printf(_("Usage:\n"
+ "net rpc share migrate all\n"
+ " Migrates shares including all share settings\n"));
return 0;
}
if (!c->opt_host) {
- d_printf("no server to migrate\n");
+ d_printf(_("no server to migrate\n"));
return -1;
}
@@ -3688,33 +3735,33 @@ static int rpc_share_migrate(struct net_context *c, int argc, const char **argv)
"all",
rpc_share_migrate_all,
NET_TRANSPORT_RPC,
- "Migrate shares from remote to local server",
- "net rpc share migrate all\n"
- " Migrate shares from remote to local server"
+ N_("Migrate shares from remote to local server"),
+ N_("net rpc share migrate all\n"
+ " Migrate shares from remote to local server")
},
{
"files",
rpc_share_migrate_files,
NET_TRANSPORT_RPC,
- "Migrate files from remote to local server",
- "net rpc share migrate files\n"
- " Migrate files from remote to local server"
+ N_("Migrate files from remote to local server"),
+ N_("net rpc share migrate files\n"
+ " Migrate files from remote to local server")
},
{
"security",
rpc_share_migrate_security,
NET_TRANSPORT_RPC,
- "Migrate share-ACLs from remote to local server",
- "net rpc share migrate security\n"
- " Migrate share-ACLs from remote to local server"
+ N_("Migrate share-ACLs from remote to local server"),
+ N_("net rpc share migrate security\n"
+ " Migrate share-ACLs from remote to local server")
},
{
"shares",
rpc_share_migrate_shares,
NET_TRANSPORT_RPC,
- "Migrate shares from remote to local server",
- "net rpc share migrate shares\n"
- " Migrate shares from remote to local server"
+ N_("Migrate shares from remote to local server"),
+ N_("net rpc share migrate shares\n"
+ " Migrate shares from remote to local server")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -3941,7 +3988,7 @@ static void init_user_token(NT_USER_TOKEN *token, DOM_SID *user_sid)
token->num_sids = 4;
if (!(token->user_sids = SMB_MALLOC_ARRAY(DOM_SID, 4))) {
- d_fprintf(stderr, "malloc failed\n");
+ d_fprintf(stderr, _("malloc failed\n"));
token->num_sids = 0;
return;
}
@@ -4128,8 +4175,8 @@ static bool get_user_tokens(struct net_context *c, int *num_tokens,
if (lp_winbind_use_default_domain() &&
(c->opt_target_workgroup == NULL)) {
- d_fprintf(stderr, "winbind use default domain = yes set, "
- "please specify a workgroup\n");
+ d_fprintf(stderr, _("winbind use default domain = yes set, "
+ "please specify a workgroup\n"));
return false;
}
@@ -4137,7 +4184,7 @@ static bool get_user_tokens(struct net_context *c, int *num_tokens,
wbc_status = wbcListUsers(NULL, &num_users, &users);
if (!WBC_ERROR_IS_OK(wbc_status)) {
- DEBUG(1, ("winbind could not list users: %s\n",
+ DEBUG(1, (_("winbind could not list users: %s\n"),
wbcErrorString(wbc_status)));
return false;
}
@@ -4446,9 +4493,9 @@ static int rpc_share_allowedusers(struct net_context *c, int argc,
int result;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc share allowedusers\n"
- " List allowed users\n");
+ d_printf(_("Usage:\n"
+ "net rpc share allowedusers\n"
+ " List allowed users\n"));
return 0;
}
@@ -4496,10 +4543,10 @@ int net_usersidlist(struct net_context *c, int argc, const char **argv)
int net_usersidlist_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf("net usersidlist\n"
- "\tprints out a list of all users the running winbind knows\n"
- "\tabout, together with all their SIDs. This is used as\n"
- "\tinput to the 'net rpc share allowedusers' command.\n\n");
+ d_printf(_("net usersidlist\n"
+ "\tprints out a list of all users the running winbind knows\n"
+ "\tabout, together with all their SIDs. This is used as\n"
+ "\tinput to the 'net rpc share allowedusers' command.\n\n"));
net_common_flags_usage(c, argc, argv);
return -1;
@@ -4521,41 +4568,41 @@ int net_rpc_share(struct net_context *c, int argc, const char **argv)
"add",
rpc_share_add,
NET_TRANSPORT_RPC,
- "Add share",
- "net rpc share add\n"
- " Add share"
+ N_("Add share"),
+ N_("net rpc share add\n"
+ " Add share")
},
{
"delete",
rpc_share_delete,
NET_TRANSPORT_RPC,
- "Remove share",
- "net rpc share delete\n"
- " Remove share"
+ N_("Remove share"),
+ N_("net rpc share delete\n"
+ " Remove share")
},
{
"allowedusers",
rpc_share_allowedusers,
NET_TRANSPORT_RPC,
- "Modify allowed users",
- "net rpc share allowedusers\n"
- " Modify allowed users"
+ N_("Modify allowed users"),
+ N_("net rpc share allowedusers\n"
+ " Modify allowed users")
},
{
"migrate",
rpc_share_migrate,
NET_TRANSPORT_RPC,
- "Migrate share to local server",
- "net rpc share migrate\n"
- " Migrate share to local server"
+ N_("Migrate share to local server"),
+ N_("net rpc share migrate\n"
+ " Migrate share to local server")
},
{
"list",
rpc_share_list,
NET_TRANSPORT_RPC,
- "List shares",
- "net rpc share list\n"
- " List shares"
+ N_("List shares"),
+ N_("net rpc share list\n"
+ " List shares")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -4572,10 +4619,10 @@ int net_rpc_share(struct net_context *c, int argc, const char **argv)
if (argc == 0) {
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc share\n"
- " List shares\n"
- " Alias for net rpc share list\n");
+ d_printf(_("Usage:\n"
+ "net rpc share\n"
+ " List shares\n"
+ " Alias for net rpc share list\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -4607,7 +4654,7 @@ static NTSTATUS rpc_sh_share_add(struct net_context *c,
struct SHARE_INFO_2 i2;
if ((argc < 2) || (argc > 3)) {
- d_fprintf(stderr, "usage: %s <share> <path> [comment]\n",
+ d_fprintf(stderr, _("usage: %s <share> <path> [comment]\n"),
ctx->whoami);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -4636,7 +4683,7 @@ static NTSTATUS rpc_sh_share_delete(struct net_context *c,
int argc, const char **argv)
{
if (argc != 1) {
- d_fprintf(stderr, "usage: %s <share>\n", ctx->whoami);
+ d_fprintf(stderr, _("usage: %s <share>\n"), ctx->whoami);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -4654,7 +4701,7 @@ static NTSTATUS rpc_sh_share_info(struct net_context *c,
NTSTATUS status;
if (argc != 1) {
- d_fprintf(stderr, "usage: %s <share>\n", ctx->whoami);
+ d_fprintf(stderr, _("usage: %s <share>\n"), ctx->whoami);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -4668,10 +4715,10 @@ static NTSTATUS rpc_sh_share_info(struct net_context *c,
goto done;
}
- d_printf("Name: %s\n", info.info2->name);
- d_printf("Comment: %s\n", info.info2->comment);
- d_printf("Path: %s\n", info.info2->path);
- d_printf("Password: %s\n", info.info2->password);
+ d_printf(_("Name: %s\n"), info.info2->name);
+ d_printf(_("Comment: %s\n"), info.info2->comment);
+ d_printf(_("Path: %s\n"), info.info2->path);
+ d_printf(_("Password: %s\n"), info.info2->password);
done:
return werror_to_ntstatus(result);
@@ -4683,16 +4730,16 @@ struct rpc_sh_cmd *net_rpc_share_cmds(struct net_context *c, TALLOC_CTX *mem_ctx
static struct rpc_sh_cmd cmds[] = {
{ "list", NULL, &ndr_table_srvsvc.syntax_id, rpc_sh_share_list,
- "List available shares" },
+ N_("List available shares") },
{ "add", NULL, &ndr_table_srvsvc.syntax_id, rpc_sh_share_add,
- "Add a share" },
+ N_("Add a share") },
{ "delete", NULL, &ndr_table_srvsvc.syntax_id, rpc_sh_share_delete,
- "Delete a share" },
+ N_("Delete a share") },
{ "info", NULL, &ndr_table_srvsvc.syntax_id, rpc_sh_share_info,
- "Get information about a share" },
+ N_("Get information about a share") },
{ NULL, NULL, 0, NULL, NULL }
};
@@ -4783,10 +4830,10 @@ static int rpc_file_user(struct net_context *c, int argc, const char **argv)
/* Display results */
- d_printf(
+ d_printf(_(
"\nEnumerating open files on remote server:\n\n"
"\nFileId Opened by Perms Locks Path"
- "\n------ --------- ----- ----- ---- \n");
+ "\n------ --------- ----- ----- ---- \n"));
for (i = 0; i < entries_read; i++) {
display_file_info_3(&i3[i]);
}
@@ -4810,26 +4857,26 @@ int net_rpc_file(struct net_context *c, int argc, const char **argv)
"close",
rpc_file_close,
NET_TRANSPORT_RPC,
- "Close opened file",
- "net rpc file close\n"
- " Close opened file"
+ N_("Close opened file"),
+ N_("net rpc file close\n"
+ " Close opened file")
},
{
"user",
rpc_file_user,
NET_TRANSPORT_RPC,
- "List files opened by user",
- "net rpc file user\n"
- " List files opened by user"
+ N_("List files opened by user"),
+ N_("net rpc file user\n"
+ " List files opened by user")
},
#if 0
{
"info",
rpc_file_info,
NET_TRANSPORT_RPC,
- "Display information about opened file",
- "net rpc file info\n"
- " Display information about opened file"
+ N_("Display information about opened file"),
+ N_("net rpc file info\n"
+ " Display information about opened file")
},
#endif
{NULL, NULL, 0, NULL, NULL}
@@ -4847,9 +4894,9 @@ int net_rpc_file(struct net_context *c, int argc, const char **argv)
if (argc == 0) {
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rpc file\n"
- " List opened files\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rpc file\n"
+ " List opened files\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -4891,7 +4938,7 @@ static NTSTATUS rpc_shutdown_abort_internals(struct net_context *c,
result = rpccli_initshutdown_Abort(pipe_hnd, mem_ctx, NULL, NULL);
if (NT_STATUS_IS_OK(result)) {
- d_printf("\nShutdown successfully aborted\n");
+ d_printf(_("\nShutdown successfully aborted\n"));
DEBUG(5,("cmd_shutdown_abort: query succeeded\n"));
} else
DEBUG(5,("cmd_shutdown_abort: query failed\n"));
@@ -4930,7 +4977,7 @@ static NTSTATUS rpc_reg_shutdown_abort_internals(struct net_context *c,
result = rpccli_winreg_AbortSystemShutdown(pipe_hnd, mem_ctx, NULL, NULL);
if (NT_STATUS_IS_OK(result)) {
- d_printf("\nShutdown successfully aborted\n");
+ d_printf(_("\nShutdown successfully aborted\n"));
DEBUG(5,("cmd_reg_abort_shutdown: query succeeded\n"));
} else
DEBUG(5,("cmd_reg_abort_shutdown: query failed\n"));
@@ -4954,9 +5001,9 @@ static int rpc_shutdown_abort(struct net_context *c, int argc,
int rc = -1;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc abortshutdown\n"
- " Abort a scheduled shutdown\n");
+ d_printf(_("Usage:\n"
+ "net rpc abortshutdown\n"
+ " Abort a scheduled shutdown\n"));
return 0;
}
@@ -5000,7 +5047,7 @@ NTSTATUS rpc_init_shutdown_internals(struct net_context *c,
const char **argv)
{
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
- const char *msg = "This machine will be shutdown shortly";
+ const char *msg = N_("This machine will be shutdown shortly");
uint32 timeout = 20;
struct lsa_StringLarge msg_string;
@@ -5019,7 +5066,7 @@ NTSTATUS rpc_init_shutdown_internals(struct net_context *c,
NULL);
if (NT_STATUS_IS_OK(result)) {
- d_printf("\nShutdown of remote machine succeeded\n");
+ d_printf(_("\nShutdown of remote machine succeeded\n"));
DEBUG(5,("Shutdown of remote machine succeeded\n"));
} else {
DEBUG(1,("Shutdown of remote machine failed!\n"));
@@ -5053,7 +5100,7 @@ NTSTATUS rpc_reg_shutdown_internals(struct net_context *c,
int argc,
const char **argv)
{
- const char *msg = "This machine will be shutdown shortly";
+ const char *msg = N_("This machine will be shutdown shortly");
uint32 timeout = 20;
struct lsa_StringLarge msg_string;
NTSTATUS result;
@@ -5074,7 +5121,7 @@ NTSTATUS rpc_reg_shutdown_internals(struct net_context *c,
&werr);
if (NT_STATUS_IS_OK(result)) {
- d_printf("\nShutdown of remote machine succeeded\n");
+ d_printf(_("\nShutdown of remote machine succeeded\n"));
} else {
d_fprintf(stderr, "\nShutdown of remote machine failed\n");
if ( W_ERROR_EQUAL(werr, WERR_MACHINE_LOCKED) )
@@ -5101,9 +5148,9 @@ static int rpc_shutdown(struct net_context *c, int argc, const char **argv)
int rc = -1;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc shutdown\n"
- " Shut down a remote RPC server\n");
+ d_printf(_("Usage:\n"
+ "net rpc shutdown\n"
+ " Shut down a remote RPC server\n"));
return 0;
}
@@ -5160,8 +5207,8 @@ static NTSTATUS rpc_trustdom_add_internals(struct net_context *c,
unsigned int orig_timeout;
if (argc != 2) {
- d_printf("Usage: net rpc trustdom add <domain_name> "
- "<trust password>\n");
+ d_printf(_("Usage: net rpc trustdom add <domain_name> "
+ "<trust password>\n"));
return NT_STATUS_INVALID_PARAMETER;
}
@@ -5222,7 +5269,7 @@ static NTSTATUS rpc_trustdom_add_internals(struct net_context *c,
rpccli_set_timeout(pipe_hnd, orig_timeout);
if (!NT_STATUS_IS_OK(result)) {
- d_printf("net rpc trustdom add: create user %s failed %s\n",
+ d_printf(_("net rpc trustdom add: create user %s failed %s\n"),
acct_name, nt_errstr(result));
goto done;
}
@@ -5273,8 +5320,9 @@ static int rpc_trustdom_add(struct net_context *c, int argc, const char **argv)
return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_trustdom_add_internals, argc, argv);
} else {
- d_printf("Usage:\n"
- "net rpc trustdom add <domain_name> <trust password>\n");
+ d_printf(_("Usage:\n"
+ "net rpc trustdom add <domain_name> <trust "
+ "password>\n"));
return -1;
}
}
@@ -5313,7 +5361,7 @@ static NTSTATUS rpc_trustdom_del_internals(struct net_context *c,
struct lsa_String lsa_acct_name;
if (argc != 1) {
- d_printf("Usage: net rpc trustdom del <domain_name>\n");
+ d_printf(_("Usage: net rpc trustdom del <domain_name>\n"));
return NT_STATUS_INVALID_PARAMETER;
}
@@ -5356,7 +5404,8 @@ static NTSTATUS rpc_trustdom_del_internals(struct net_context *c,
&name_types);
if (!NT_STATUS_IS_OK(result)) {
- d_printf("net rpc trustdom del: LookupNames on user %s failed %s\n",
+ d_printf(_("net rpc trustdom del: LookupNames on user %s "
+ "failed %s\n"),
acct_name, nt_errstr(result) );
goto done;
}
@@ -5368,7 +5417,8 @@ static NTSTATUS rpc_trustdom_del_internals(struct net_context *c,
&user_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_printf("net rpc trustdom del: OpenUser on user %s failed %s\n",
+ d_printf(_("net rpc trustdom del: OpenUser on user %s failed "
+ "%s\n"),
acct_name, nt_errstr(result) );
goto done;
}
@@ -5385,7 +5435,8 @@ static NTSTATUS rpc_trustdom_del_internals(struct net_context *c,
&user_pol,
&trust_acct_sid);
if (!NT_STATUS_IS_OK(result)) {
- d_printf("net rpc trustdom del: RemoveMemberFromForeignDomain on user %s failed %s\n",
+ d_printf(_("net rpc trustdom del: RemoveMemberFromForeignDomain"
+ " on user %s failed %s\n"),
acct_name, nt_errstr(result) );
goto done;
}
@@ -5396,13 +5447,14 @@ static NTSTATUS rpc_trustdom_del_internals(struct net_context *c,
&user_pol);
if (!NT_STATUS_IS_OK(result)) {
- d_printf("net rpc trustdom del: DeleteUser on user %s failed %s\n",
+ d_printf(_("net rpc trustdom del: DeleteUser on user %s failed "
+ "%s\n"),
acct_name, nt_errstr(result) );
goto done;
}
if (!NT_STATUS_IS_OK(result)) {
- d_printf("Could not set trust account password: %s\n",
+ d_printf(_("Could not set trust account password: %s\n"),
nt_errstr(result));
goto done;
}
@@ -5426,8 +5478,8 @@ static int rpc_trustdom_del(struct net_context *c, int argc, const char **argv)
return run_rpc_command(c, NULL, &ndr_table_samr.syntax_id, 0,
rpc_trustdom_del_internals, argc, argv);
} else {
- d_printf("Usage:\n"
- "net rpc trustdom del <domain>\n");
+ d_printf(_("Usage:\n"
+ "net rpc trustdom del <domain>\n"));
return -1;
}
}
@@ -5509,8 +5561,8 @@ static int rpc_trustdom_establish(struct net_context *c, int argc,
*/
if (argc != 1 || c->display_usage) {
- d_printf("Usage:\n"
- "net rpc trustdom establish <domain_name>\n");
+ d_printf(_("Usage:\n"
+ "net rpc trustdom establish <domain_name>\n"));
return -1;
}
@@ -5652,7 +5704,7 @@ static int rpc_trustdom_establish(struct net_context *c, int argc,
talloc_destroy(mem_ctx);
- d_printf("Trust to domain %s established\n", domain_name);
+ d_printf(_("Trust to domain %s established\n"), domain_name);
return 0;
}
@@ -5673,10 +5725,10 @@ static int rpc_trustdom_revoke(struct net_context *c, int argc,
int rc = -1;
if (argc < 1 || c->display_usage) {
- d_printf("Usage:\n"
- "net rpc trustdom revoke <domain_name>\n"
- " Revoke trust relationship\n"
- " domain_name\tName of domain to revoke trust\n");
+ d_printf(_("Usage:\n"
+ "net rpc trustdom revoke <domain_name>\n"
+ " Revoke trust relationship\n"
+ " domain_name\tName of domain to revoke trust\n"));
return -1;
}
@@ -5808,9 +5860,9 @@ static int rpc_trustdom_vampire(struct net_context *c, int argc,
fstring pdc_name;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc trustdom vampire\n"
- " Vampire trust relationship from remote server\n");
+ d_printf(_("Usage:\n"
+ "net rpc trustdom vampire\n"
+ " Vampire trust relationship from remote server\n"));
return 0;
}
@@ -5884,7 +5936,7 @@ static int rpc_trustdom_vampire(struct net_context *c, int argc,
* the end of enumeration is reached
*/
- d_printf("Vampire trusted domains:\n\n");
+ d_printf(_("Vampire trusted domains:\n\n"));
do {
nt_status = rpccli_lsa_EnumTrustDom(pipe_hnd, mem_ctx,
@@ -5919,7 +5971,7 @@ static int rpc_trustdom_vampire(struct net_context *c, int argc,
* in case of no trusted domains say something rather
* than just display blank line
*/
- if (!dom_list.count) d_printf("none\n");
+ if (!dom_list.count) d_printf(_("none\n"));
} while (NT_STATUS_EQUAL(nt_status, STATUS_MORE_ENTRIES));
@@ -5965,9 +6017,9 @@ static int rpc_trustdom_list(struct net_context *c, int argc, const char **argv)
struct samr_SamArray *trusts = NULL;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc trustdom list\n"
- " List trust relationships\n");
+ d_printf(_("Usage:\n"
+ "net rpc trustdom list\n"
+ " List trust relationships\n"));
return 0;
}
@@ -6041,7 +6093,7 @@ static int rpc_trustdom_list(struct net_context *c, int argc, const char **argv)
* the end of enumeration is reached
*/
- d_printf("Trusted domains list:\n\n");
+ d_printf(_("Trusted domains list:\n\n"));
do {
nt_status = rpccli_lsa_EnumTrustDom(pipe_hnd, mem_ctx,
@@ -6066,7 +6118,7 @@ static int rpc_trustdom_list(struct net_context *c, int argc, const char **argv)
* in case of no trusted domains say something rather
* than just display blank line
*/
- if (!dom_list.count) d_printf("none\n");
+ if (!dom_list.count) d_printf(_("none\n"));
} while (NT_STATUS_EQUAL(nt_status, STATUS_MORE_ENTRIES));
@@ -6086,7 +6138,7 @@ static int rpc_trustdom_list(struct net_context *c, int argc, const char **argv)
* Listing trusting domains (stored in passdb backend, if local)
*/
- d_printf("\nTrusting domains list:\n\n");
+ d_printf(_("\nTrusting domains list:\n\n"));
/*
* Open \PIPE\samr and get needed policy handles
@@ -6188,13 +6240,14 @@ static int rpc_trustdom_list(struct net_context *c, int argc, const char **argv)
&ndr_table_lsarpc.syntax_id, 0,
rpc_query_domain_sid, argc,
argv))
- d_fprintf(stderr, "couldn't get domain's sid\n");
+ d_fprintf(stderr,
+ _("couldn't get domain's sid\n"));
cli_shutdown(remote_cli);
} else {
- d_fprintf(stderr, "domain controller is not "
- "responding: %s\n",
+ d_fprintf(stderr, _("domain controller is not "
+ "responding: %s\n"),
nt_errstr(nt_status));
};
};
@@ -6237,49 +6290,49 @@ static int rpc_trustdom(struct net_context *c, int argc, const char **argv)
"add",
rpc_trustdom_add,
NET_TRANSPORT_RPC,
- "Add trusted domain's account",
- "net rpc trustdom add\n"
- " Add trusted domain's account"
+ N_("Add trusted domain's account"),
+ N_("net rpc trustdom add\n"
+ " Add trusted domain's account")
},
{
"del",
rpc_trustdom_del,
NET_TRANSPORT_RPC,
- "Remove trusted domain's account",
- "net rpc trustdom del\n"
- " Remove trusted domain's account"
+ N_("Remove trusted domain's account"),
+ N_("net rpc trustdom del\n"
+ " Remove trusted domain's account")
},
{
"establish",
rpc_trustdom_establish,
NET_TRANSPORT_RPC,
- "Establish trust relationship",
- "net rpc trustdom establish\n"
- " Establish trust relationship"
+ N_("Establish trust relationship"),
+ N_("net rpc trustdom establish\n"
+ " Establish trust relationship")
},
{
"revoke",
rpc_trustdom_revoke,
NET_TRANSPORT_RPC,
- "Revoke trust relationship",
- "net rpc trustdom revoke\n"
- " Revoke trust relationship"
+ N_("Revoke trust relationship"),
+ N_("net rpc trustdom revoke\n"
+ " Revoke trust relationship")
},
{
"list",
rpc_trustdom_list,
NET_TRANSPORT_RPC,
- "List domain trusts",
- "net rpc trustdom list\n"
- " List domain trusts"
+ N_("List domain trusts"),
+ N_("net rpc trustdom list\n"
+ " List domain trusts")
},
{
"vampire",
rpc_trustdom_vampire,
NET_TRANSPORT_RPC,
- "Vampire trusts from remote server",
- "net rpc trustdom vampire\n"
- " Vampire trusts from remote server"
+ N_("Vampire trusts from remote server"),
+ N_("net rpc trustdom vampire\n"
+ " Vampire trusts from remote server")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -6330,9 +6383,9 @@ bool net_rpc_check(struct net_context *c, unsigned flags)
/* dump sam database via samsync rpc calls */
static int rpc_samdump(struct net_context *c, int argc, const char **argv) {
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc samdump\n"
- " Dump remote SAM database\n");
+ d_printf(_("Usage:\n"
+ "net rpc samdump\n"
+ " Dump remote SAM database\n"));
return 0;
}
@@ -6349,25 +6402,27 @@ static int rpc_vampire(struct net_context *c, int argc, const char **argv)
"ldif",
rpc_vampire_ldif,
NET_TRANSPORT_RPC,
- "Dump remote SAM database to ldif",
- "net rpc vampire ldif\n"
- " Dump remote SAM database to LDIF file or stdout"
+ N_("Dump remote SAM database to ldif"),
+ N_("net rpc vampire ldif\n"
+ " Dump remote SAM database to LDIF file or "
+ "stdout")
},
{
"keytab",
rpc_vampire_keytab,
NET_TRANSPORT_RPC,
- "Dump remote SAM database to Kerberos Keytab",
- "net rpc vampire keytab\n"
- " Dump remote SAM database to Kerberos keytab file"
+ N_("Dump remote SAM database to Kerberos Keytab"),
+ N_("net rpc vampire keytab\n"
+ " Dump remote SAM database to Kerberos keytab "
+ "file")
},
{
"passdb",
rpc_vampire_passdb,
NET_TRANSPORT_RPC,
- "Dump remote SAM database to passdb",
- "net rpc vampire passdb\n"
- " Dump remote SAM database to passdb"
+ N_("Dump remote SAM database to passdb"),
+ N_("net rpc vampire passdb\n"
+ " Dump remote SAM database to passdb")
},
{NULL, NULL, 0, NULL, NULL}
@@ -6375,9 +6430,9 @@ static int rpc_vampire(struct net_context *c, int argc, const char **argv)
if (argc == 0) {
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc vampire\n"
- " Vampire remote SAM database\n");
+ d_printf(_("Usage:\n"
+ "net rpc vampire\n"
+ " Vampire remote SAM database\n"));
return 0;
}
@@ -6411,14 +6466,14 @@ static int rpc_printer_migrate_all(struct net_context *c, int argc,
int ret;
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer migrate all\n"
- " Migrate everything from a print server\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer migrate all\n"
+ " Migrate everything from a print server\n"));
return 0;
}
if (!c->opt_host) {
- d_printf("no server to migrate\n");
+ d_printf(_("no server to migrate\n"));
return -1;
}
@@ -6465,14 +6520,14 @@ static int rpc_printer_migrate_drivers(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer migrate drivers\n"
- " Migrate print-drivers from a print-server\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer migrate drivers\n"
+ " Migrate print-drivers from a print-server\n"));
return 0;
}
if (!c->opt_host) {
- d_printf("no server to migrate\n");
+ d_printf(_("no server to migrate\n"));
return -1;
}
@@ -6495,14 +6550,14 @@ static int rpc_printer_migrate_forms(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer migrate forms\n"
- " Migrate print-forms from a print-server\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer migrate forms\n"
+ " Migrate print-forms from a print-server\n"));
return 0;
}
if (!c->opt_host) {
- d_printf("no server to migrate\n");
+ d_printf(_("no server to migrate\n"));
return -1;
}
@@ -6525,14 +6580,14 @@ static int rpc_printer_migrate_printers(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer migrate printers\n"
- " Migrate printers from a print-server\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer migrate printers\n"
+ " Migrate printers from a print-server\n"));
return 0;
}
if (!c->opt_host) {
- d_printf("no server to migrate\n");
+ d_printf(_("no server to migrate\n"));
return -1;
}
@@ -6555,14 +6610,14 @@ static int rpc_printer_migrate_security(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer migrate security\n"
- " Migrate printer-ACLs from a print-server\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer migrate security\n"
+ " Migrate printer-ACLs from a print-server\n"));
return 0;
}
if (!c->opt_host) {
- d_printf("no server to migrate\n");
+ d_printf(_("no server to migrate\n"));
return -1;
}
@@ -6585,14 +6640,15 @@ static int rpc_printer_migrate_settings(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer migrate settings\n"
- " Migrate printer-settings from a print-server\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer migrate settings\n"
+ " Migrate printer-settings from a "
+ "print-server\n"));
return 0;
}
if (!c->opt_host) {
- d_printf("no server to migrate\n");
+ d_printf(_("no server to migrate\n"));
return -1;
}
@@ -6622,49 +6678,49 @@ int rpc_printer_migrate(struct net_context *c, int argc, const char **argv)
"all",
rpc_printer_migrate_all,
NET_TRANSPORT_RPC,
- "Migrate all from remote to local print server",
- "net rpc printer migrate all\n"
- " Migrate all from remote to local print server"
+ N_("Migrate all from remote to local print server"),
+ N_("net rpc printer migrate all\n"
+ " Migrate all from remote to local print server")
},
{
"drivers",
rpc_printer_migrate_drivers,
NET_TRANSPORT_RPC,
- "Migrate drivers to local server",
- "net rpc printer migrate drivers\n"
- " Migrate drivers to local server"
+ N_("Migrate drivers to local server"),
+ N_("net rpc printer migrate drivers\n"
+ " Migrate drivers to local server")
},
{
"forms",
rpc_printer_migrate_forms,
NET_TRANSPORT_RPC,
- "Migrate froms to local server",
- "net rpc printer migrate forms\n"
- " Migrate froms to local server"
+ N_("Migrate froms to local server"),
+ N_("net rpc printer migrate forms\n"
+ " Migrate froms to local server")
},
{
"printers",
rpc_printer_migrate_printers,
NET_TRANSPORT_RPC,
- "Migrate printers to local server",
- "net rpc printer migrate printers\n"
- " Migrate printers to local server"
+ N_("Migrate printers to local server"),
+ N_("net rpc printer migrate printers\n"
+ " Migrate printers to local server")
},
{
"security",
rpc_printer_migrate_security,
NET_TRANSPORT_RPC,
- "Mirgate printer ACLs to local server",
- "net rpc printer migrate security\n"
- " Mirgate printer ACLs to local server"
+ N_("Mirgate printer ACLs to local server"),
+ N_("net rpc printer migrate security\n"
+ " Mirgate printer ACLs to local server")
},
{
"settings",
rpc_printer_migrate_settings,
NET_TRANSPORT_RPC,
- "Migrate printer settings to local server",
- "net rpc printer migrate settings\n"
- " Migrate printer settings to local server"
+ N_("Migrate printer settings to local server"),
+ N_("net rpc printer migrate settings\n"
+ " Migrate printer settings to local server")
},
{NULL, NULL, 0, NULL, NULL}
};
@@ -6686,9 +6742,9 @@ int rpc_printer_migrate(struct net_context *c, int argc, const char **argv)
static int rpc_printer_list(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer list\n"
- " List printers on a remote RPC server\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer list\n"
+ " List printers on a remote RPC server\n"));
return 0;
}
@@ -6711,9 +6767,9 @@ static int rpc_printer_driver_list(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer driver\n"
- " List printer-drivers on a remote RPC server\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer driver\n"
+ " List printer-drivers on a remote RPC server\n"));
return 0;
}
@@ -6736,9 +6792,9 @@ static int rpc_printer_publish_publish(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer publish publish\n"
- " Publish printer in ADS via MSRPC\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer publish publish\n"
+ " Publish printer in ADS via MSRPC\n"));
return 0;
}
@@ -6760,9 +6816,9 @@ static int rpc_printer_publish_publish(struct net_context *c, int argc,
static int rpc_printer_publish_update(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer publish update\n"
- " Update printer in ADS via MSRPC\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer publish update\n"
+ " Update printer in ADS via MSRPC\n"));
return 0;
}
@@ -6785,9 +6841,9 @@ static int rpc_printer_publish_unpublish(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer publish unpublish\n"
- " UnPublish printer in ADS via MSRPC\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer publish unpublish\n"
+ " UnPublish printer in ADS via MSRPC\n"));
return 0;
}
@@ -6810,9 +6866,9 @@ static int rpc_printer_publish_list(struct net_context *c, int argc,
const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc printer publish list\n"
- " List published printers via MSRPC\n");
+ d_printf(_("Usage:\n"
+ "net rpc printer publish list\n"
+ " List published printers via MSRPC\n"));
return 0;
}
@@ -6841,43 +6897,44 @@ static int rpc_printer_publish(struct net_context *c, int argc,
"publish",
rpc_printer_publish_publish,
NET_TRANSPORT_RPC,
- "Publish printer in AD",
- "net rpc printer publish publish\n"
- " Publish printer in AD"
+ N_("Publish printer in AD"),
+ N_("net rpc printer publish publish\n"
+ " Publish printer in AD")
},
{
"update",
rpc_printer_publish_update,
NET_TRANSPORT_RPC,
- "Update printer in AD",
- "net rpc printer publish update\n"
- " Update printer in AD"
+ N_("Update printer in AD"),
+ N_("net rpc printer publish update\n"
+ " Update printer in AD")
},
{
"unpublish",
rpc_printer_publish_unpublish,
NET_TRANSPORT_RPC,
- "Unpublish printer",
- "net rpc printer publish unpublish\n"
- " Unpublish printer"
+ N_("Unpublish printer"),
+ N_("net rpc printer publish unpublish\n"
+ " Unpublish printer")
},
{
"list",
rpc_printer_publish_list,
NET_TRANSPORT_RPC,
- "List published printers",
- "net rpc printer publish list\n"
- " List published printers"
+ N_("List published printers"),
+ N_("net rpc printer publish list\n"
+ " List published printers")
},
{NULL, NULL, 0, NULL, NULL}
};
if (argc == 0) {
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rpc printer publish\n"
- " List published printers\n"
- " Alias of net rpc printer publish list\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rpc printer publish\n"
+ " List published printers\n"
+ " Alias of net rpc printer publish "
+ "list\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -6901,31 +6958,31 @@ static int rpc_printer_publish(struct net_context *c, int argc,
**/
int rpc_printer_usage(struct net_context *c, int argc, const char **argv)
{
- d_printf("net rpc printer LIST [printer] [misc. options] [targets]\n"
- "\tlists all printers on print-server\n\n");
- d_printf("net rpc printer DRIVER [printer] [misc. options] [targets]\n"
- "\tlists all printer-drivers on print-server\n\n");
- d_printf("net rpc printer PUBLISH action [printer] [misc. options] [targets]\n"
- "\tpublishes printer settings in Active Directory\n"
- "\taction can be one of PUBLISH, UPDATE, UNPUBLISH or LIST\n\n");
- d_printf("net rpc printer MIGRATE PRINTERS [printer] [misc. options] [targets]"
- "\n\tmigrates printers from remote to local server\n\n");
- d_printf("net rpc printer MIGRATE SETTINGS [printer] [misc. options] [targets]"
- "\n\tmigrates printer-settings from remote to local server\n\n");
- d_printf("net rpc printer MIGRATE DRIVERS [printer] [misc. options] [targets]"
- "\n\tmigrates printer-drivers from remote to local server\n\n");
- d_printf("net rpc printer MIGRATE FORMS [printer] [misc. options] [targets]"
- "\n\tmigrates printer-forms from remote to local server\n\n");
- d_printf("net rpc printer MIGRATE SECURITY [printer] [misc. options] [targets]"
- "\n\tmigrates printer-ACLs from remote to local server\n\n");
- d_printf("net rpc printer MIGRATE ALL [printer] [misc. options] [targets]"
- "\n\tmigrates drivers, forms, queues, settings and acls from\n"
- "\tremote to local print-server\n\n");
+ d_printf(_("net rpc printer LIST [printer] [misc. options] [targets]\n"
+ "\tlists all printers on print-server\n\n"));
+ d_printf(_("net rpc printer DRIVER [printer] [misc. options] [targets]\n"
+ "\tlists all printer-drivers on print-server\n\n"));
+ d_printf(_("net rpc printer PUBLISH action [printer] [misc. options] [targets]\n"
+ "\tpublishes printer settings in Active Directory\n"
+ "\taction can be one of PUBLISH, UPDATE, UNPUBLISH or LIST\n\n"));
+ d_printf(_("net rpc printer MIGRATE PRINTERS [printer] [misc. options] [targets]"
+ "\n\tmigrates printers from remote to local server\n\n"));
+ d_printf(_("net rpc printer MIGRATE SETTINGS [printer] [misc. options] [targets]"
+ "\n\tmigrates printer-settings from remote to local server\n\n"));
+ d_printf(_("net rpc printer MIGRATE DRIVERS [printer] [misc. options] [targets]"
+ "\n\tmigrates printer-drivers from remote to local server\n\n"));
+ d_printf(_("net rpc printer MIGRATE FORMS [printer] [misc. options] [targets]"
+ "\n\tmigrates printer-forms from remote to local server\n\n"));
+ d_printf(_("net rpc printer MIGRATE SECURITY [printer] [misc. options] [targets]"
+ "\n\tmigrates printer-ACLs from remote to local server\n\n"));
+ d_printf(_("net rpc printer MIGRATE ALL [printer] [misc. options] [targets]"
+ "\n\tmigrates drivers, forms, queues, settings and acls from\n"
+ "\tremote to local print-server\n\n"));
net_common_methods_usage(c, argc, argv);
net_common_flags_usage(c, argc, argv);
- d_printf(
+ d_printf(_(
"\t-v or --verbose\t\t\tgive verbose output\n"
- "\t --destination\t\tmigration target server (default: localhost)\n");
+ "\t --destination\t\tmigration target server (default: localhost)\n"));
return -1;
}
@@ -6945,42 +7002,42 @@ int net_rpc_printer(struct net_context *c, int argc, const char **argv)
"list",
rpc_printer_list,
NET_TRANSPORT_RPC,
- "List all printers on print server",
- "net rpc printer list\n"
- " List all printers on print server"
+ N_("List all printers on print server"),
+ N_("net rpc printer list\n"
+ " List all printers on print server")
},
{
"migrate",
rpc_printer_migrate,
NET_TRANSPORT_RPC,
- "Migrate printer to local server",
- "net rpc printer migrate\n"
- " Migrate printer to local server"
+ N_("Migrate printer to local server"),
+ N_("net rpc printer migrate\n"
+ " Migrate printer to local server")
},
{
"driver",
rpc_printer_driver_list,
NET_TRANSPORT_RPC,
- "List printer drivers",
- "net rpc printer driver\n"
- " List printer drivers"
+ N_("List printer drivers"),
+ N_("net rpc printer driver\n"
+ " List printer drivers")
},
{
"publish",
rpc_printer_publish,
NET_TRANSPORT_RPC,
- "Publish printer in AD",
- "net rpc printer publish\n"
- " Publish printer in AD"
+ N_("Publish printer in AD"),
+ N_("net rpc printer publish\n"
+ " Publish printer in AD")
},
{NULL, NULL, 0, NULL, NULL}
};
if (argc == 0) {
if (c->display_usage) {
- d_printf("Usage:\n");
- d_printf("net rpc printer\n"
- " List printers\n");
+ d_printf(_("Usage:\n"));
+ d_printf(_("net rpc printer\n"
+ " List printers\n"));
net_display_usage_from_functable(func);
return 0;
}
@@ -7010,178 +7067,178 @@ int net_rpc(struct net_context *c, int argc, const char **argv)
"audit",
net_rpc_audit,
NET_TRANSPORT_RPC,
- "Modify global audit settings",
- "net rpc audit\n"
- " Modify global audit settings"
+ N_("Modify global audit settings"),
+ N_("net rpc audit\n"
+ " Modify global audit settings")
},
{
"info",
net_rpc_info,
NET_TRANSPORT_RPC,
- "Show basic info about a domain",
- "net rpc info\n"
- " Show basic info about a domain"
+ N_("Show basic info about a domain"),
+ N_("net rpc info\n"
+ " Show basic info about a domain")
},
{
"join",
net_rpc_join,
NET_TRANSPORT_RPC,
- "Join a domain",
- "net rpc join\n"
- " Join a domain"
+ N_("Join a domain"),
+ N_("net rpc join\n"
+ " Join a domain")
},
{
"oldjoin",
net_rpc_oldjoin,
NET_TRANSPORT_RPC,
- "Join a domain created in server manager",
- "net rpc oldjoin\n"
- " Join a domain created in server manager"
+ N_("Join a domain created in server manager"),
+ N_("net rpc oldjoin\n"
+ " Join a domain created in server manager")
},
{
"testjoin",
net_rpc_testjoin,
NET_TRANSPORT_RPC,
- "Test that a join is valid",
- "net rpc testjoin\n"
- " Test that a join is valid"
+ N_("Test that a join is valid"),
+ N_("net rpc testjoin\n"
+ " Test that a join is valid")
},
{
"user",
net_rpc_user,
NET_TRANSPORT_RPC,
- "List/modify users",
- "net rpc user\n"
- " List/modify users"
+ N_("List/modify users"),
+ N_("net rpc user\n"
+ " List/modify users")
},
{
"password",
rpc_user_password,
NET_TRANSPORT_RPC,
- "Change a user password",
- "net rpc password\n"
- " Change a user password\n"
- " Alias for net rpc user password"
+ N_("Change a user password"),
+ N_("net rpc password\n"
+ " Change a user password\n"
+ " Alias for net rpc user password")
},
{
"group",
net_rpc_group,
NET_TRANSPORT_RPC,
- "List/modify groups",
- "net rpc group\n"
- " List/modify groups"
+ N_("List/modify groups"),
+ N_("net rpc group\n"
+ " List/modify groups")
},
{
"share",
net_rpc_share,
NET_TRANSPORT_RPC,
- "List/modify shares",
- "net rpc share\n"
- " List/modify shares"
+ N_("List/modify shares"),
+ N_("net rpc share\n"
+ " List/modify shares")
},
{
"file",
net_rpc_file,
NET_TRANSPORT_RPC,
- "List open files",
- "net rpc file\n"
- " List open files"
+ N_("List open files"),
+ N_("net rpc file\n"
+ " List open files")
},
{
"printer",
net_rpc_printer,
NET_TRANSPORT_RPC,
- "List/modify printers",
- "net rpc printer\n"
- " List/modify printers"
+ N_("List/modify printers"),
+ N_("net rpc printer\n"
+ " List/modify printers")
},
{
"changetrustpw",
net_rpc_changetrustpw,
NET_TRANSPORT_RPC,
- "Change trust account password",
- "net rpc changetrustpw\n"
- " Change trust account password"
+ N_("Change trust account password"),
+ N_("net rpc changetrustpw\n"
+ " Change trust account password")
},
{
"trustdom",
rpc_trustdom,
NET_TRANSPORT_RPC,
- "Modify domain trusts",
- "net rpc trustdom\n"
- " Modify domain trusts"
+ N_("Modify domain trusts"),
+ N_("net rpc trustdom\n"
+ " Modify domain trusts")
},
{
"abortshutdown",
rpc_shutdown_abort,
NET_TRANSPORT_RPC,
- "Abort a remote shutdown",
- "net rpc abortshutdown\n"
- " Abort a remote shutdown"
+ N_("Abort a remote shutdown"),
+ N_("net rpc abortshutdown\n"
+ " Abort a remote shutdown")
},
{
"shutdown",
rpc_shutdown,
NET_TRANSPORT_RPC,
- "Shutdown a remote server",
- "net rpc shutdown\n"
- " Shutdown a remote server"
+ N_("Shutdown a remote server"),
+ N_("net rpc shutdown\n"
+ " Shutdown a remote server")
},
{
"samdump",
rpc_samdump,
NET_TRANSPORT_RPC,
- "Dump SAM data of remote NT PDC",
- "net rpc samdump\n"
- " Dump SAM data of remote NT PDC"
+ N_("Dump SAM data of remote NT PDC"),
+ N_("net rpc samdump\n"
+ " Dump SAM data of remote NT PDC")
},
{
"vampire",
rpc_vampire,
NET_TRANSPORT_RPC,
- "Sync a remote NT PDC's data into local passdb",
- "net rpc vampire\n"
- " Sync a remote NT PDC's data into local passdb"
+ N_("Sync a remote NT PDC's data into local passdb"),
+ N_("net rpc vampire\n"
+ " Sync a remote NT PDC's data into local passdb")
},
{
"getsid",
net_rpc_getsid,
NET_TRANSPORT_RPC,
- "Fetch the domain sid into local secrets.tdb",
- "net rpc getsid\n"
- " Fetch the domain sid into local secrets.tdb"
+ N_("Fetch the domain sid into local secrets.tdb"),
+ N_("net rpc getsid\n"
+ " Fetch the domain sid into local secrets.tdb")
},
{
"rights",
net_rpc_rights,
NET_TRANSPORT_RPC,
- "Manage privileges assigned to SID",
- "net rpc rights\n"
- " Manage privileges assigned to SID"
+ N_("Manage privileges assigned to SID"),
+ N_("net rpc rights\n"
+ " Manage privileges assigned to SID")
},
{
"service",
net_rpc_service,
NET_TRANSPORT_RPC,
- "Start/stop/query remote services",
- "net rpc service\n"
- " Start/stop/query remote services"
+ N_("Start/stop/query remote services"),
+ N_("net rpc service\n"
+ " Start/stop/query remote services")
},
{
"registry",
net_rpc_registry,
NET_TRANSPORT_RPC,
- "Manage registry hives",
- "net rpc registry\n"
- " Manage registry hives"
+ N_("Manage registry hives"),
+ N_("net rpc registry\n"
+ " Manage registry hives")
},
{
"shell",
net_rpc_shell,
NET_TRANSPORT_RPC,
- "Open interactive shell on remote server",
- "net rpc shell\n"
- " Open interactive shell on remote server"
+ N_("Open interactive shell on remote server"),
+ N_("net rpc shell\n"
+ " Open interactive shell on remote server")
},
{NULL, NULL, 0, NULL, NULL}
};
diff --git a/source3/utils/net_rpc_audit.c b/source3/utils/net_rpc_audit.c
index 823fe06f1a..f0b440d3be 100644
--- a/source3/utils/net_rpc_audit.c
+++ b/source3/utils/net_rpc_audit.c
@@ -24,13 +24,13 @@
static int net_help_audit(struct net_context *c, int argc, const char **argv)
{
- d_printf("net rpc audit list View configured Auditing policies\n");
- d_printf("net rpc audit enable Enable Auditing\n");
- d_printf("net rpc audit disable Disable Auditing\n");
- d_printf("net rpc audit get <category> View configured Auditing policy setting\n");
- d_printf("net rpc audit set <category> <policy> Set Auditing policies\n\n");
- d_printf("\tcategory can be one of: SYSTEM, LOGON, OBJECT, PRIVILEGE, PROCESS, POLICY, SAM, DIRECTORY or ACCOUNT\n");
- d_printf("\tpolicy can be one of: SUCCESS, FAILURE, ALL or NONE\n\n");
+ d_printf(_("net rpc audit list View configured Auditing policies\n"));
+ d_printf(_("net rpc audit enable Enable Auditing\n"));
+ d_printf(_("net rpc audit disable Disable Auditing\n"));
+ d_printf(_("net rpc audit get <category> View configured Auditing policy setting\n"));
+ d_printf(_("net rpc audit set <category> <policy> Set Auditing policies\n\n"));
+ d_printf(_("\tcategory can be one of: SYSTEM, LOGON, OBJECT, PRIVILEGE, PROCESS, POLICY, SAM, DIRECTORY or ACCOUNT\n"));
+ d_printf(_("\tpolicy can be one of: SUCCESS, FAILURE, ALL or NONE\n\n"));
return -1;
}
@@ -44,10 +44,10 @@ static void print_auditing_category(const char *policy, const char *value)
int pad_len, col_len = 30;
if (policy == NULL) {
- policy = "Unknown";
+ policy = N_("Unknown");
}
if (value == NULL) {
- value = "Invalid";
+ value = N_("Invalid");
}
/* calculate padding space for d_printf to look nicer */
@@ -55,7 +55,7 @@ static void print_auditing_category(const char *policy, const char *value)
padding[pad_len] = 0;
do padding[--pad_len] = ' '; while (pad_len > 0);
- d_printf("\t%s%s%s\n", policy, padding, value);
+ d_printf(_("\t%s%s%s\n"), policy, padding, value);
}
/********************************************************************
@@ -77,13 +77,13 @@ static NTSTATUS rpc_audit_get_internal(struct net_context *c,
uint32_t audit_category;
if (argc < 1 || argc > 2) {
- d_printf("insufficient arguments\n");
+ d_printf(_("insufficient arguments\n"));
net_help_audit(c, argc, argv);
return NT_STATUS_INVALID_PARAMETER;
}
if (!get_audit_category_from_param(argv[0], &audit_category)) {
- d_printf("invalid auditing category: %s\n", argv[0]);
+ d_printf(_("invalid auditing category: %s\n"), argv[0]);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -119,7 +119,7 @@ static NTSTATUS rpc_audit_get_internal(struct net_context *c,
done:
if (!NT_STATUS_IS_OK(result)) {
- d_printf("failed to get auditing policy: %s\n",
+ d_printf(_("failed to get auditing policy: %s\n"),
nt_errstr(result));
}
@@ -144,13 +144,13 @@ static NTSTATUS rpc_audit_set_internal(struct net_context *c,
uint32_t audit_policy, audit_category;
if (argc < 2 || argc > 3) {
- d_printf("insufficient arguments\n");
+ d_printf(_("insufficient arguments\n"));
net_help_audit(c, argc, argv);
return NT_STATUS_INVALID_PARAMETER;
}
if (!get_audit_category_from_param(argv[0], &audit_category)) {
- d_printf("invalid auditing category: %s\n", argv[0]);
+ d_printf(_("invalid auditing category: %s\n"), argv[0]);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -165,7 +165,7 @@ static NTSTATUS rpc_audit_set_internal(struct net_context *c,
} else if (strequal(argv[1], "None")) {
audit_policy = LSA_AUDIT_POLICY_CLEAR;
} else {
- d_printf("invalid auditing policy: %s\n", argv[1]);
+ d_printf(_("invalid auditing policy: %s\n"), argv[1]);
return NT_STATUS_INVALID_PARAMETER;
}
@@ -209,7 +209,8 @@ static NTSTATUS rpc_audit_set_internal(struct net_context *c,
done:
if (!NT_STATUS_IS_OK(result)) {
- d_printf("failed to set audit policy: %s\n", nt_errstr(result));
+ d_printf(_("failed to set audit policy: %s\n"),
+ nt_errstr(result));
}
return result;
@@ -257,8 +258,10 @@ static NTSTATUS rpc_audit_enable_internal_ext(struct rpc_pipe_client *pipe_hnd,
done:
if (!NT_STATUS_IS_OK(result)) {
- d_printf("failed to %s audit policy: %s\n",
- enable ? "enable":"disable", nt_errstr(result));
+ d_printf(_("%s: %s\n"),
+ enable ? _("failed to enable audit policy"):
+ _("failed to disable audit policy"),
+ nt_errstr(result));
}
return result;
@@ -329,22 +332,23 @@ static NTSTATUS rpc_audit_list_internal(struct net_context *c,
goto done;
}
- printf("Auditing:\t\t");
+ printf(_("Auditing:\t\t"));
switch (info->audit_events.auditing_mode) {
case true:
- printf("Enabled");
+ printf(_("Enabled"));
break;
case false:
- printf("Disabled");
+ printf(_("Disabled"));
break;
default:
- printf("unknown (%d)", info->audit_events.auditing_mode);
+ printf(_("unknown (%d)"),
+ info->audit_events.auditing_mode);
break;
}
printf("\n");
- printf("Auditing categories:\t%d\n", info->audit_events.count);
- printf("Auditing settings:\n");
+ printf(_("Auditing categories:\t%d\n"), info->audit_events.count);
+ printf(_("Auditing settings:\n"));
for (i=0; i < info->audit_events.count; i++) {
const char *val = audit_policy_str(mem_ctx, info->audit_events.settings[i]);
@@ -354,7 +358,7 @@ static NTSTATUS rpc_audit_list_internal(struct net_context *c,
done:
if (!NT_STATUS_IS_OK(result)) {
- d_printf("failed to list auditing policies: %s\n",
+ d_printf(_("failed to list auditing policies: %s\n"),
nt_errstr(result));
}
@@ -367,9 +371,9 @@ static NTSTATUS rpc_audit_list_internal(struct net_context *c,
static int rpc_audit_get(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc audit get\n"
- " View configured audit setting\n");
+ d_printf(_("Usage:\n"
+ "net rpc audit get\n"
+ " View configured audit setting\n"));
return 0;
}
@@ -383,9 +387,9 @@ static int rpc_audit_get(struct net_context *c, int argc, const char **argv)
static int rpc_audit_set(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc audit set\n"
- " Set audit policies\n");
+ d_printf(_("Usage:\n"
+ "net rpc audit set\n"
+ " Set audit policies\n"));
return 0;
}
@@ -399,9 +403,9 @@ static int rpc_audit_set(struct net_context *c, int argc, const char **argv)
static int rpc_audit_enable(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc audit enable\n"
- " Enable auditing\n");
+ d_printf(_("Usage:\n"
+ "net rpc audit enable\n"
+ " Enable auditing\n"));
return 0;
}
@@ -415,9 +419,9 @@ static int rpc_audit_enable(struct net_context *c, int argc, const char **argv)
static int rpc_audit_disable(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc audit disable\n"
- " Disable auditing\n");
+ d_printf(_("Usage:\n"
+ "net rpc audit disable\n"
+ " Disable auditing\n"));
return 0;
}
@@ -431,9 +435,9 @@ static int rpc_audit_disable(struct net_context *c, int argc, const char **argv)
static int rpc_audit_list(struct net_context *c, int argc, const char **argv)
{
if (c->display_usage) {
- d_printf("Usage:\n"
- "net rpc audit list\n"
- " List auditing settings\n");
+ d_printf(_("Usage:\n"
+ "net rpc audit list\n"
+ " List auditing settings\n"));
return 0;
}
@@ -451,41 +455,41 @@ int net_rpc_audit(struct net_context *c, int argc, const char **argv)
"get",
rpc_audit_get,
NET_TRANSPORT_RPC,
- "View configured auditing settings",
- "net rpc audit get\n"
- " View configured auditing settings"
+ N_("View configured auditing settings"),
+ N_("net rpc audit get\n"
+ " View configured auditing settings")
},
{
"set",
rpc_audit_set,
NET_TRANSPORT_RPC,
- "Set auditing policies",
- "net rpc audit set\n"
- " Set auditing policies"
+ N_("Set auditing policies"),
+ N_("net rpc audit set\n"
+ " Set auditing policies")
},
{
"enable",
rpc_audit_enable,
NET_TRANSPORT_RPC,
- "Enable auditing",
- "net rpc audit enable\n"
- " Enable auditing"
+ N_("Enable auditing"),
+ N_("net rpc audit enable\n"
+ " Enable auditing")
},
{
"disable",
rpc_audit_disable,
NET_TRANSPORT_RPC,
- "Disable auditing",
- "net rpc audit disable\n"
- " Disable auditing"
+ N_("Disable auditing"),
+ N_("net rpc audit disable\n"
+ " Disable auditing")
},
{
"list",
rpc_audit_list,
NET_TRANSPORT_RPC,
- "List configured auditing settings",
- "net rpc audit list\n"
- " List configured auditing settings"
+ N_("List configured auditing settings"),
+ N_("net rpc audit list\n"
+ " List configured auditing settings")
},
{NULL, NULL, 0, NULL, NULL}
};
diff --git a/source3/winbindd/wb_getpwsid.c b/source3/winbindd/wb_getpwsid.c
new file mode 100644
index 0000000000..fc696cb9a1
--- /dev/null
+++ b/source3/winbindd/wb_getpwsid.c
@@ -0,0 +1,223 @@
+/*
+ Unix SMB/CIFS implementation.
+ async getpwsid
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_getpwsid_state {
+ struct winbindd_domain *user_domain;
+ struct tevent_context *ev;
+ struct dom_sid sid;
+ struct winbind_userinfo *userinfo;
+ struct winbindd_pw *pw;
+};
+
+static void wb_getpwsid_queryuser_done(struct tevent_req *subreq);
+static void wb_getpwsid_lookupsid_done(struct tevent_req *subreq);
+static void wb_getpwsid_sid2uid_done(struct tevent_req *subreq);
+static void wb_getpwsid_sid2gid_done(struct tevent_req *subreq);
+
+struct tevent_req *wb_getpwsid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *user_sid,
+ struct winbindd_pw *pw)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_getpwsid_state *state;
+
+ req = tevent_req_create(mem_ctx, &state, struct wb_getpwsid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ sid_copy(&state->sid, user_sid);
+ state->ev = ev;
+ state->pw = pw;
+
+ state->user_domain = find_domain_from_sid_noinit(user_sid);
+ if (state->user_domain == NULL) {
+ tevent_req_nterror(req, NT_STATUS_NO_SUCH_USER);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = wb_queryuser_send(state, ev, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_getpwsid_queryuser_done, req);
+ return req;
+}
+
+static void wb_getpwsid_queryuser_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_getpwsid_state *state = tevent_req_data(
+ req, struct wb_getpwsid_state);
+ NTSTATUS status;
+
+ status = wb_queryuser_recv(subreq, state, &state->userinfo);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ if ((state->userinfo->acct_name != NULL)
+ && (state->userinfo->acct_name[0] != '\0')) {
+ /*
+ * QueryUser got us a name, let's got directly to the
+ * sid2uid step
+ */
+ subreq = wb_sid2uid_send(state, state->ev,
+ &state->userinfo->user_sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, wb_getpwsid_sid2uid_done, req);
+ return;
+ }
+
+ /*
+ * QueryUser didn't get us a name, do it via LSA.
+ */
+ subreq = wb_lookupsid_send(state, state->ev,
+ &state->userinfo->user_sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, wb_getpwsid_lookupsid_done, req);
+}
+
+static void wb_getpwsid_lookupsid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_getpwsid_state *state = tevent_req_data(
+ req, struct wb_getpwsid_state);
+ NTSTATUS status;
+ enum lsa_SidType type;
+ const char *domain;
+
+ status = wb_lookupsid_recv(subreq, state->userinfo, &type, &domain,
+ &state->userinfo->acct_name);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ subreq = wb_sid2uid_send(state, state->ev, &state->userinfo->user_sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, wb_getpwsid_sid2uid_done, req);
+}
+
+static void wb_getpwsid_sid2uid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_getpwsid_state *state = tevent_req_data(
+ req, struct wb_getpwsid_state);
+ NTSTATUS status;
+
+ status = wb_sid2uid_recv(subreq, &state->pw->pw_uid);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ subreq = wb_sid2gid_send(state, state->ev,
+ &state->userinfo->group_sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, wb_getpwsid_sid2gid_done, req);
+}
+
+static void wb_getpwsid_sid2gid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_getpwsid_state *state = tevent_req_data(
+ req, struct wb_getpwsid_state);
+ NTSTATUS status;
+ char *username;
+ char *mapped_name;
+
+ status = wb_sid2gid_recv(subreq, &state->pw->pw_gid);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ username = talloc_strdup_lower(state, state->userinfo->acct_name);
+ if (tevent_req_nomem(username, req)) {
+ return;
+ }
+
+ status = normalize_name_map(state, state->user_domain, username,
+ &mapped_name);
+
+ if (NT_STATUS_IS_OK(status)
+ || NT_STATUS_EQUAL(status, NT_STATUS_FILE_RENAMED)) {
+ /*
+ * normalize_name_map did something
+ */
+ fstrcpy(state->pw->pw_name, mapped_name);
+ TALLOC_FREE(mapped_name);
+ } else {
+ fill_domain_username(state->pw->pw_name,
+ state->user_domain->name,
+ username, True);
+ }
+ fstrcpy(state->pw->pw_passwd, "*");
+ fstrcpy(state->pw->pw_gecos, state->userinfo->full_name);
+
+ if (!fillup_pw_field(lp_template_homedir(), username,
+ state->user_domain->name, state->pw->pw_uid,
+ state->pw->pw_gid, state->userinfo->homedir,
+ state->pw->pw_dir)) {
+ DEBUG(5, ("Could not compose homedir\n"));
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return;
+ }
+
+ if (!fillup_pw_field(lp_template_shell(), state->pw->pw_name,
+ state->user_domain->name, state->pw->pw_uid,
+ state->pw->pw_gid, state->userinfo->shell,
+ state->pw->pw_shell)) {
+ DEBUG(5, ("Could not compose shell\n"));
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return;
+ }
+
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_getpwsid_recv(struct tevent_req *req)
+{
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/wb_gettoken.c b/source3/winbindd/wb_gettoken.c
new file mode 100644
index 0000000000..26189e5a97
--- /dev/null
+++ b/source3/winbindd/wb_gettoken.c
@@ -0,0 +1,218 @@
+/*
+ Unix SMB/CIFS implementation.
+ async gettoken
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_gettoken_state {
+ struct tevent_context *ev;
+ struct dom_sid usersid;
+ int num_sids;
+ struct dom_sid *sids;
+};
+
+static bool wb_add_rids_to_sids(TALLOC_CTX *mem_ctx,
+ int *pnum_sids, struct dom_sid **psids,
+ const struct dom_sid *domain_sid,
+ int num_rids, uint32_t *rids);
+
+static void wb_gettoken_gotgroups(struct tevent_req *subreq);
+static void wb_gettoken_gotlocalgroups(struct tevent_req *subreq);
+static void wb_gettoken_gotbuiltins(struct tevent_req *subreq);
+
+struct tevent_req *wb_gettoken_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *sid)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_gettoken_state *state;
+ struct winbindd_domain *domain;
+
+ req = tevent_req_create(mem_ctx, &state, struct wb_gettoken_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ sid_copy(&state->usersid, sid);
+ state->ev = ev;
+
+ domain = find_domain_from_sid_noinit(sid);
+ if (domain == NULL) {
+ DEBUG(5, ("Could not find domain from SID %s\n",
+ sid_string_dbg(sid)));
+ tevent_req_nterror(req, NT_STATUS_NO_SUCH_USER);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = wb_lookupusergroups_send(state, ev, domain, &state->usersid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_gettoken_gotgroups, req);
+ return req;
+}
+
+static void wb_gettoken_gotgroups(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_gettoken_state *state = tevent_req_data(
+ req, struct wb_gettoken_state);
+ struct dom_sid *sids;
+ struct winbindd_domain *domain;
+ NTSTATUS status;
+
+ status = wb_lookupusergroups_recv(subreq, state, &state->num_sids,
+ &state->sids);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ sids = talloc_realloc(state, state->sids, struct dom_sid,
+ state->num_sids + 1);
+ if (tevent_req_nomem(sids, req)) {
+ return;
+ }
+ memmove(&sids[1], &sids[0], state->num_sids * sizeof(sids[0]));
+ sid_copy(&sids[0], &state->usersid);
+ state->num_sids += 1;
+ state->sids = sids;
+
+ /*
+ * Expand our domain's aliases
+ */
+ domain = find_our_domain();
+ if (domain == NULL) {
+ tevent_req_nterror(req, NT_STATUS_INTERNAL_ERROR);
+ return;
+ }
+
+ subreq = wb_lookupuseraliases_send(state, state->ev, domain,
+ state->num_sids, state->sids);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, wb_gettoken_gotlocalgroups, req);
+}
+
+static void wb_gettoken_gotlocalgroups(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_gettoken_state *state = tevent_req_data(
+ req, struct wb_gettoken_state);
+ uint32_t num_rids;
+ uint32_t *rids;
+ struct winbindd_domain *domain;
+ NTSTATUS status;
+
+ status = wb_lookupuseraliases_recv(subreq, state, &num_rids, &rids);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ domain = find_our_domain();
+ if (!wb_add_rids_to_sids(state, &state->num_sids, &state->sids,
+ &domain->sid, num_rids, rids)) {
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return;
+ }
+ TALLOC_FREE(rids);
+
+ /*
+ * Now expand the builtin groups
+ */
+
+ domain = find_builtin_domain();
+ if (domain == NULL) {
+ tevent_req_nterror(req, NT_STATUS_INTERNAL_ERROR);
+ return;
+ }
+
+ subreq = wb_lookupuseraliases_send(state, state->ev, domain,
+ state->num_sids, state->sids);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, wb_gettoken_gotbuiltins, req);
+}
+
+static void wb_gettoken_gotbuiltins(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_gettoken_state *state = tevent_req_data(
+ req, struct wb_gettoken_state);
+ uint32_t num_rids;
+ uint32_t *rids;
+ NTSTATUS status;
+
+ status = wb_lookupuseraliases_recv(subreq, state, &num_rids, &rids);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (!wb_add_rids_to_sids(state, &state->num_sids, &state->sids,
+ &global_sid_Builtin, num_rids, rids)) {
+ tevent_req_nterror(req, NT_STATUS_NO_MEMORY);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_gettoken_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ int *num_sids, struct dom_sid **sids)
+{
+ struct wb_gettoken_state *state = tevent_req_data(
+ req, struct wb_gettoken_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ *num_sids = state->num_sids;
+ *sids = talloc_move(mem_ctx, &state->sids);
+ return NT_STATUS_OK;
+}
+
+static bool wb_add_rids_to_sids(TALLOC_CTX *mem_ctx,
+ int *pnum_sids, struct dom_sid **psids,
+ const struct dom_sid *domain_sid,
+ int num_rids, uint32_t *rids)
+{
+ struct dom_sid *sids;
+ int i;
+
+ sids = talloc_realloc(mem_ctx, *psids, struct dom_sid,
+ *pnum_sids + num_rids);
+ if (sids == NULL) {
+ return false;
+ }
+ for (i=0; i<num_rids; i++) {
+ sid_compose(&sids[i+*pnum_sids], domain_sid, rids[i]);
+ }
+
+ *pnum_sids += num_rids;
+ *psids = sids;
+ return true;
+}
diff --git a/source3/winbindd/wb_gid2sid.c b/source3/winbindd/wb_gid2sid.c
new file mode 100644
index 0000000000..a0ae850ef8
--- /dev/null
+++ b/source3/winbindd/wb_gid2sid.c
@@ -0,0 +1,119 @@
+/*
+ Unix SMB/CIFS implementation.
+ async gid2sid
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_gid2sid_state {
+ struct tevent_context *ev;
+ char *dom_name;
+ struct dom_sid sid;
+};
+
+static void wb_gid2sid_done(struct tevent_req *subreq);
+
+struct tevent_req *wb_gid2sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ gid_t gid)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_gid2sid_state *state;
+ struct winbindd_domain *domain;
+ struct winbindd_child *child;
+ bool expired;
+
+ req = tevent_req_create(mem_ctx, &state, struct wb_gid2sid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ if (winbindd_use_idmap_cache()
+ && idmap_cache_find_gid2sid(gid, &state->sid, &expired)) {
+
+ DEBUG(10, ("idmap_cache_find_gid2sid found %d%s\n",
+ (int)gid, expired ? " (expired)": ""));
+
+ if (!expired || idmap_is_offline()) {
+ if (is_null_sid(&state->sid)) {
+ tevent_req_nterror(req,
+ NT_STATUS_NONE_MAPPED);
+ } else {
+ tevent_req_done(req);
+ }
+ return tevent_req_post(req, ev);
+ }
+ }
+
+ state->dom_name = NULL;
+
+ for (domain = domain_list(); domain != NULL; domain = domain->next) {
+ if (domain->have_idmap_config
+ && (gid >= domain->id_range_low)
+ && (gid <= domain->id_range_high)) {
+ state->dom_name = domain->name;
+ break;
+ }
+ }
+
+ child = idmap_child();
+
+ subreq = rpccli_wbint_Gid2Sid_send(
+ state, ev, child->rpccli, state->dom_name,
+ gid, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_gid2sid_done, req);
+ return req;
+}
+
+static void wb_gid2sid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_gid2sid_state *state = tevent_req_data(
+ req, struct wb_gid2sid_state);
+ NTSTATUS status, result;
+
+ status = rpccli_wbint_Gid2Sid_recv(subreq, state, &result);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (!NT_STATUS_IS_OK(result)) {
+ tevent_req_nterror(req, result);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_gid2sid_recv(struct tevent_req *req, struct dom_sid *sid)
+{
+ struct wb_gid2sid_state *state = tevent_req_data(
+ req, struct wb_gid2sid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ sid_copy(sid, &state->sid);
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/wb_lookupname.c b/source3/winbindd/wb_lookupname.c
new file mode 100644
index 0000000000..d4e9b9ae6c
--- /dev/null
+++ b/source3/winbindd/wb_lookupname.c
@@ -0,0 +1,104 @@
+/*
+ Unix SMB/CIFS implementation.
+ async lookupname
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_lookupname_state {
+ struct dom_sid sid;
+ enum lsa_SidType type;
+};
+
+static void wb_lookupname_done(struct tevent_req *subreq);
+
+struct tevent_req *wb_lookupname_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const char *dom_name, const char *name,
+ uint32_t flags)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_lookupname_state *state;
+ struct winbindd_domain *domain;
+ NTSTATUS status;
+
+ req = tevent_req_create(mem_ctx, &state, struct wb_lookupname_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ domain = find_lookup_domain_from_name(dom_name);
+ if (domain == NULL) {
+ DEBUG(5, ("Could not find domain for %s\n", dom_name));
+ tevent_req_nterror(req, NT_STATUS_NONE_MAPPED);
+ return tevent_req_post(req, ev);
+ }
+
+ status = wcache_name_to_sid(domain, dom_name, name,
+ &state->sid, &state->type);
+ if (NT_STATUS_IS_OK(status)) {
+ tevent_req_done(req);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = rpccli_wbint_LookupName_send(
+ state, ev, domain->child.rpccli, dom_name, name, flags,
+ &state->type, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_lookupname_done, req);
+ return req;
+}
+
+static void wb_lookupname_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_lookupname_state *state = tevent_req_data(
+ req, struct wb_lookupname_state);
+ NTSTATUS status, result;
+
+ status = rpccli_wbint_LookupName_recv(subreq, state, &result);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (!NT_STATUS_IS_OK(result)) {
+ tevent_req_nterror(req, result);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_lookupname_recv(struct tevent_req *req, struct dom_sid *sid,
+ enum lsa_SidType *type)
+{
+ struct wb_lookupname_state *state = tevent_req_data(
+ req, struct wb_lookupname_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ sid_copy(sid, &state->sid);
+ *type = state->type;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/wb_lookupsid.c b/source3/winbindd/wb_lookupsid.c
new file mode 100644
index 0000000000..f258828048
--- /dev/null
+++ b/source3/winbindd/wb_lookupsid.c
@@ -0,0 +1,132 @@
+/*
+ Unix SMB/CIFS implementation.
+ async lookupsid
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_lookupsid_state {
+ struct tevent_context *ev;
+ struct winbindd_domain *lookup_domain;
+ struct dom_sid sid;
+ enum lsa_SidType type;
+ const char *domname;
+ const char *name;
+};
+
+static void wb_lookupsid_done(struct tevent_req *subreq);
+
+struct tevent_req *wb_lookupsid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *sid)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_lookupsid_state *state;
+ char *dom_name, *name;
+ NTSTATUS status;
+
+ req = tevent_req_create(mem_ctx, &state, struct wb_lookupsid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ sid_copy(&state->sid, sid);
+ state->ev = ev;
+
+ state->lookup_domain = find_lookup_domain_from_sid(sid);
+ if (state->lookup_domain == NULL) {
+ DEBUG(5, ("Could not find domain for sid %s\n",
+ sid_string_dbg(sid)));
+ tevent_req_nterror(req, NT_STATUS_NONE_MAPPED);
+ return tevent_req_post(req, ev);
+ }
+
+ status = wcache_sid_to_name(state->lookup_domain, sid, state,
+ &dom_name, &name, &state->type);
+ if (NT_STATUS_IS_OK(status)) {
+ state->domname = dom_name;
+ state->name = name;
+ tevent_req_done(req);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = rpccli_wbint_LookupSid_send(
+ state, ev, state->lookup_domain->child.rpccli,
+ &state->sid, &state->type, &state->domname, &state->name);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_lookupsid_done, req);
+ return req;
+}
+
+static void wb_lookupsid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_lookupsid_state *state = tevent_req_data(
+ req, struct wb_lookupsid_state);
+ struct winbindd_domain *forest_root;
+ NTSTATUS status, result;
+
+ status = rpccli_wbint_LookupSid_recv(subreq, state, &result);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (NT_STATUS_IS_OK(result)) {
+ tevent_req_done(req);
+ return;
+ }
+
+ /*
+ * Let's try the forest root
+ */
+ forest_root = find_root_domain();
+ if ((forest_root == NULL) || (forest_root == state->lookup_domain)) {
+ tevent_req_nterror(req, result);
+ return;
+ }
+ state->lookup_domain = forest_root;
+
+ subreq = rpccli_wbint_LookupSid_send(
+ state, state->ev, state->lookup_domain->child.rpccli,
+ &state->sid, &state->type, &state->domname, &state->name);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, wb_lookupsid_done, req);
+}
+
+NTSTATUS wb_lookupsid_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ enum lsa_SidType *type, const char **domain,
+ const char **name)
+{
+ struct wb_lookupsid_state *state = tevent_req_data(
+ req, struct wb_lookupsid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ *type = state->type;
+ *domain = talloc_move(mem_ctx, &state->domname);
+ *name = talloc_move(mem_ctx, &state->name);
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/wb_lookupuseraliases.c b/source3/winbindd/wb_lookupuseraliases.c
new file mode 100644
index 0000000000..e2e5e2da08
--- /dev/null
+++ b/source3/winbindd/wb_lookupuseraliases.c
@@ -0,0 +1,101 @@
+/*
+ Unix SMB/CIFS implementation.
+ async lookupuseraliases
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_lookupuseraliases_state {
+ struct tevent_context *ev;
+ struct wbint_SidArray sids;
+ struct wbint_RidArray rids;
+};
+
+static void wb_lookupuseraliases_done(struct tevent_req *subreq);
+
+struct tevent_req *wb_lookupuseraliases_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_domain *domain,
+ int num_sids,
+ const struct dom_sid *sids)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_lookupuseraliases_state *state;
+ NTSTATUS status;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct wb_lookupuseraliases_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->sids.num_sids = num_sids;
+ state->sids.sids = CONST_DISCARD(struct dom_sid *, sids);
+
+ status = wcache_lookup_useraliases(domain, state, num_sids, sids,
+ &state->rids.num_rids,
+ &state->rids.rids);
+ if (NT_STATUS_IS_OK(status)) {
+ tevent_req_done(req);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = rpccli_wbint_LookupUserAliases_send(
+ state, ev, domain->child.rpccli, &state->sids, &state->rids);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_lookupuseraliases_done, req);
+ return req;
+}
+
+static void wb_lookupuseraliases_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_lookupuseraliases_state *state = tevent_req_data(
+ req, struct wb_lookupuseraliases_state);
+ NTSTATUS status, result;
+
+ status = rpccli_wbint_LookupUserAliases_recv(subreq, state, &result);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (!NT_STATUS_IS_OK(result)) {
+ tevent_req_nterror(req, result);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_lookupuseraliases_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ uint32_t *num_aliases, uint32_t **aliases)
+{
+ struct wb_lookupuseraliases_state *state = tevent_req_data(
+ req, struct wb_lookupuseraliases_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ *num_aliases = state->rids.num_rids;
+ *aliases = talloc_move(mem_ctx, &state->rids.rids);
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/wb_lookupusergroups.c b/source3/winbindd/wb_lookupusergroups.c
new file mode 100644
index 0000000000..4e96b45c57
--- /dev/null
+++ b/source3/winbindd/wb_lookupusergroups.c
@@ -0,0 +1,99 @@
+/*
+ Unix SMB/CIFS implementation.
+ async lookupusergroups
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_lookupusergroups_state {
+ struct tevent_context *ev;
+ struct dom_sid sid;
+ struct wbint_SidArray sids;
+};
+
+static void wb_lookupusergroups_done(struct tevent_req *subreq);
+
+struct tevent_req *wb_lookupusergroups_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_domain *domain,
+ const struct dom_sid *sid)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_lookupusergroups_state *state;
+ NTSTATUS status;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct wb_lookupusergroups_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ sid_copy(&state->sid, sid);
+
+ status = wcache_lookup_usergroups(domain, state, sid,
+ &state->sids.num_sids,
+ &state->sids.sids);
+ if (NT_STATUS_IS_OK(status)) {
+ tevent_req_done(req);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = rpccli_wbint_LookupUserGroups_send(
+ state, ev, domain->child.rpccli, &state->sid, &state->sids);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_lookupusergroups_done, req);
+ return req;
+}
+
+static void wb_lookupusergroups_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_lookupusergroups_state *state = tevent_req_data(
+ req, struct wb_lookupusergroups_state);
+ NTSTATUS status, result;
+
+ status = rpccli_wbint_LookupUserGroups_recv(subreq, state, &result);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (!NT_STATUS_IS_OK(result)) {
+ tevent_req_nterror(req, result);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_lookupusergroups_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ int *num_sids, struct dom_sid **sids)
+{
+ struct wb_lookupusergroups_state *state = tevent_req_data(
+ req, struct wb_lookupusergroups_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ *num_sids = state->sids.num_sids;
+ *sids = talloc_move(mem_ctx, &state->sids.sids);
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/wb_queryuser.c b/source3/winbindd/wb_queryuser.c
new file mode 100644
index 0000000000..27b8d29951
--- /dev/null
+++ b/source3/winbindd/wb_queryuser.c
@@ -0,0 +1,121 @@
+/*
+ Unix SMB/CIFS implementation.
+ async queryuser
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_queryuser_state {
+ struct dom_sid sid;
+ struct wbint_userinfo info;
+};
+
+static void wb_queryuser_done(struct tevent_req *subreq);
+
+struct tevent_req *wb_queryuser_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *user_sid)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_queryuser_state *state;
+ struct winbindd_domain *domain;
+ struct winbind_userinfo info;
+ NTSTATUS status;
+
+ req = tevent_req_create(mem_ctx, &state, struct wb_queryuser_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ sid_copy(&state->sid, user_sid);
+
+ domain = find_domain_from_sid_noinit(user_sid);
+ if (domain == NULL) {
+ tevent_req_nterror(req, NT_STATUS_NO_SUCH_USER);
+ return tevent_req_post(req, ev);
+ }
+
+ status = wcache_query_user(domain, state, &state->sid, &info);
+ if (NT_STATUS_IS_OK(status)) {
+ state->info.acct_name = info.acct_name;
+ state->info.full_name = info.full_name;
+ state->info.homedir = info.homedir;
+ state->info.shell = info.shell;
+ state->info.primary_gid = info.primary_gid;
+ sid_copy(&state->info.user_sid, &info.user_sid);
+ sid_copy(&state->info.group_sid, &info.group_sid);
+ tevent_req_done(req);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = rpccli_wbint_QueryUser_send(state, ev, domain->child.rpccli,
+ &state->sid, &state->info);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_queryuser_done, req);
+ return req;
+}
+
+static void wb_queryuser_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_queryuser_state *state = tevent_req_data(
+ req, struct wb_queryuser_state);
+ NTSTATUS status, result;
+
+ status = rpccli_wbint_QueryUser_recv(subreq, state, &result);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (!NT_STATUS_IS_OK(result)) {
+ tevent_req_nterror(req, result);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_queryuser_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ struct winbind_userinfo **pinfo)
+{
+ struct wb_queryuser_state *state = tevent_req_data(
+ req, struct wb_queryuser_state);
+ struct winbind_userinfo *info;
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+
+ info = talloc(mem_ctx, struct winbind_userinfo);
+ if (info == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ info->acct_name = talloc_move(info, &state->info.acct_name);
+ info->full_name = talloc_move(info, &state->info.full_name);
+ info->homedir = talloc_move(info, &state->info.homedir);
+ info->shell = talloc_move(info, &state->info.shell);
+ info->primary_gid = state->info.primary_gid;
+ sid_copy(&info->user_sid, &state->info.user_sid);
+ sid_copy(&info->group_sid, &state->info.group_sid);
+ *pinfo = info;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/wb_sid2gid.c b/source3/winbindd/wb_sid2gid.c
new file mode 100644
index 0000000000..a578746ea2
--- /dev/null
+++ b/source3/winbindd/wb_sid2gid.c
@@ -0,0 +1,170 @@
+/*
+ Unix SMB/CIFS implementation.
+ async sid2gid
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_sid2gid_state {
+ struct tevent_context *ev;
+ struct dom_sid sid;
+ char *dom_name;
+ uint64 gid64;
+ gid_t gid;
+};
+
+static void wb_sid2gid_lookup_done(struct tevent_req *subreq);
+static void wb_sid2gid_done(struct tevent_req *subreq);
+
+
+struct tevent_req *wb_sid2gid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *sid)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_sid2gid_state *state;
+ bool expired;
+
+ req = tevent_req_create(mem_ctx, &state, struct wb_sid2gid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ sid_copy(&state->sid, sid);
+ state->ev = ev;
+
+ if (winbindd_use_idmap_cache()
+ && idmap_cache_find_sid2gid(sid, &state->gid, &expired)) {
+
+ DEBUG(10, ("idmap_cache_find_sid2gid found %d%s\n",
+ (int)state->gid, expired ? " (expired)": ""));
+
+ if (!expired || IS_DOMAIN_OFFLINE(find_our_domain())) {
+ if (state->gid == -1) {
+ tevent_req_nterror(req, NT_STATUS_NONE_MAPPED);
+ } else {
+ tevent_req_done(req);
+ }
+ return tevent_req_post(req, ev);
+ }
+ }
+
+ /*
+ * We need to make sure the sid is of the right type to not flood
+ * idmap with wrong entries
+ */
+
+ subreq = wb_lookupsid_send(state, ev, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_sid2gid_lookup_done, req);
+ return req;
+}
+
+static void wb_sid2gid_lookup_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_sid2gid_state *state = tevent_req_data(
+ req, struct wb_sid2gid_state);
+ struct winbindd_domain *domain;
+ const char *domname;
+ const char *name;
+ enum lsa_SidType type;
+ NTSTATUS status;
+ struct winbindd_child *child;
+
+ status = wb_lookupsid_recv(subreq, talloc_tos(), &type, &domname,
+ &name);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ if ((type != SID_NAME_DOM_GRP) && (type != SID_NAME_ALIAS)
+ && (type != SID_NAME_WKN_GRP)) {
+ DEBUG(5, ("Sid %s is not a group.\n",
+ sid_string_dbg(&state->sid)));
+ /*
+ * We have to set the cache ourselves here, the child
+ * which is normally responsible was not queried yet.
+ */
+ idmap_cache_set_sid2gid(&state->sid, -1);
+ tevent_req_nterror(req, NT_STATUS_INVALID_SID);
+ return;
+ }
+
+ domain = find_domain_from_sid_noinit(&state->sid);
+
+ /*
+ * TODO: Issue a gettrustinfo here in case we don't have "domain" yet?
+ */
+
+ if ((domain != NULL) && domain->have_idmap_config) {
+ state->dom_name = domain->name;
+ } else {
+ state->dom_name = NULL;
+ }
+
+ child = idmap_child();
+
+ subreq = rpccli_wbint_Sid2Gid_send(state, state->ev, child->rpccli,
+ state->dom_name, &state->sid,
+ &state->gid64);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, wb_sid2gid_done, req);
+}
+
+static void wb_sid2gid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_sid2gid_state *state = tevent_req_data(
+ req, struct wb_sid2gid_state);
+ NTSTATUS status, result;
+
+ status = rpccli_wbint_Sid2Gid_recv(subreq, state, &result);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (!NT_STATUS_IS_OK(result)) {
+ tevent_req_nterror(req, result);
+ return;
+ }
+
+ state->gid = state->gid64;
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_sid2gid_recv(struct tevent_req *req, gid_t *gid)
+{
+ struct wb_sid2gid_state *state = tevent_req_data(
+ req, struct wb_sid2gid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ *gid = state->gid;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/wb_sid2uid.c b/source3/winbindd/wb_sid2uid.c
new file mode 100644
index 0000000000..abfe257bfa
--- /dev/null
+++ b/source3/winbindd/wb_sid2uid.c
@@ -0,0 +1,168 @@
+/*
+ Unix SMB/CIFS implementation.
+ async sid2uid
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_sid2uid_state {
+ struct tevent_context *ev;
+ struct dom_sid sid;
+ char *dom_name;
+ uint64 uid64;
+ uid_t uid;
+};
+
+static void wb_sid2uid_lookup_done(struct tevent_req *subreq);
+static void wb_sid2uid_done(struct tevent_req *subreq);
+
+struct tevent_req *wb_sid2uid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *sid)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_sid2uid_state *state;
+ bool expired;
+
+ req = tevent_req_create(mem_ctx, &state, struct wb_sid2uid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ sid_copy(&state->sid, sid);
+ state->ev = ev;
+
+ if (winbindd_use_idmap_cache()
+ && idmap_cache_find_sid2uid(sid, &state->uid, &expired)) {
+
+ DEBUG(10, ("idmap_cache_find_sid2uid found %d%s\n",
+ (int)state->uid, expired ? " (expired)": ""));
+
+ if (!expired || IS_DOMAIN_OFFLINE(find_our_domain())) {
+ if (state->uid == -1) {
+ tevent_req_nterror(req, NT_STATUS_NONE_MAPPED);
+ } else {
+ tevent_req_done(req);
+ }
+ return tevent_req_post(req, ev);
+ }
+ }
+
+ /*
+ * We need to make sure the sid is of the right type to not flood
+ * idmap with wrong entries
+ */
+
+ subreq = wb_lookupsid_send(state, ev, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_sid2uid_lookup_done, req);
+ return req;
+}
+
+static void wb_sid2uid_lookup_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_sid2uid_state *state = tevent_req_data(
+ req, struct wb_sid2uid_state);
+ struct winbindd_domain *domain;
+ const char *domname;
+ const char *name;
+ enum lsa_SidType type;
+ NTSTATUS status;
+ struct winbindd_child *child;
+
+ status = wb_lookupsid_recv(subreq, talloc_tos(), &type, &domname,
+ &name);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ if ((type != SID_NAME_USER) && (type != SID_NAME_COMPUTER)) {
+ DEBUG(5, ("Sid %s is not a user or a computer.\n",
+ sid_string_dbg(&state->sid)));
+ /*
+ * We have to set the cache ourselves here, the child
+ * which is normally responsible was not queried yet.
+ */
+ idmap_cache_set_sid2uid(&state->sid, -1);
+ tevent_req_nterror(req, NT_STATUS_INVALID_SID);
+ return;
+ }
+
+ domain = find_domain_from_sid_noinit(&state->sid);
+
+ /*
+ * TODO: Issue a gettrustinfo here in case we don't have "domain" yet?
+ */
+
+ if ((domain != NULL) && domain->have_idmap_config) {
+ state->dom_name = domain->name;
+ } else {
+ state->dom_name = NULL;
+ }
+
+ child = idmap_child();
+
+ subreq = rpccli_wbint_Sid2Uid_send(state, state->ev, child->rpccli,
+ state->dom_name, &state->sid,
+ &state->uid64);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, wb_sid2uid_done, req);
+}
+
+static void wb_sid2uid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_sid2uid_state *state = tevent_req_data(
+ req, struct wb_sid2uid_state);
+ NTSTATUS status, result;
+
+ status = rpccli_wbint_Sid2Uid_recv(subreq, state, &result);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (!NT_STATUS_IS_OK(result)) {
+ tevent_req_nterror(req, result);
+ return;
+ }
+
+ state->uid = state->uid64;
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_sid2uid_recv(struct tevent_req *req, uid_t *uid)
+{
+ struct wb_sid2uid_state *state = tevent_req_data(
+ req, struct wb_sid2uid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ *uid = state->uid;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/wb_uid2sid.c b/source3/winbindd/wb_uid2sid.c
new file mode 100644
index 0000000000..18ef3b214a
--- /dev/null
+++ b/source3/winbindd/wb_uid2sid.c
@@ -0,0 +1,119 @@
+/*
+ Unix SMB/CIFS implementation.
+ async uid2sid
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+#include "librpc/gen_ndr/cli_wbint.h"
+
+struct wb_uid2sid_state {
+ struct tevent_context *ev;
+ char *dom_name;
+ struct dom_sid sid;
+};
+
+static void wb_uid2sid_done(struct tevent_req *subreq);
+
+struct tevent_req *wb_uid2sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ uid_t uid)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_uid2sid_state *state;
+ struct winbindd_domain *domain;
+ struct winbindd_child *child;
+ bool expired;
+
+ req = tevent_req_create(mem_ctx, &state, struct wb_uid2sid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ if (winbindd_use_idmap_cache()
+ && idmap_cache_find_uid2sid(uid, &state->sid, &expired)) {
+
+ DEBUG(10, ("idmap_cache_find_uid2sid found %d%s\n",
+ (int)uid, expired ? " (expired)": ""));
+
+ if (!expired || idmap_is_offline()) {
+ if (is_null_sid(&state->sid)) {
+ tevent_req_nterror(req,
+ NT_STATUS_NONE_MAPPED);
+ } else {
+ tevent_req_done(req);
+ }
+ return tevent_req_post(req, ev);
+ }
+ }
+
+ state->dom_name = NULL;
+
+ for (domain = domain_list(); domain != NULL; domain = domain->next) {
+ if (domain->have_idmap_config
+ && (uid >= domain->id_range_low)
+ && (uid <= domain->id_range_high)) {
+ state->dom_name = domain->name;
+ break;
+ }
+ }
+
+ child = idmap_child();
+
+ subreq = rpccli_wbint_Uid2Sid_send(
+ state, ev, child->rpccli, state->dom_name,
+ uid, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_uid2sid_done, req);
+ return req;
+}
+
+static void wb_uid2sid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_uid2sid_state *state = tevent_req_data(
+ req, struct wb_uid2sid_state);
+ NTSTATUS status, result;
+
+ status = rpccli_wbint_Uid2Sid_recv(subreq, state, &result);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ if (!NT_STATUS_IS_OK(result)) {
+ tevent_req_nterror(req, result);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS wb_uid2sid_recv(struct tevent_req *req, struct dom_sid *sid)
+{
+ struct wb_uid2sid_state *state = tevent_req_data(
+ req, struct wb_uid2sid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+ sid_copy(sid, &state->sid);
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd.c b/source3/winbindd/winbindd.c
index 4b6ebd2c42..348816b39c 100644
--- a/source3/winbindd/winbindd.c
+++ b/source3/winbindd/winbindd.c
@@ -427,20 +427,11 @@ static struct winbindd_dispatch_table {
/* User functions */
- { WINBINDD_GETPWNAM, winbindd_getpwnam, "GETPWNAM" },
- { WINBINDD_GETPWUID, winbindd_getpwuid, "GETPWUID" },
- { WINBINDD_GETPWSID, winbindd_getpwsid, "GETPWSID" },
-
{ WINBINDD_SETPWENT, winbindd_setpwent, "SETPWENT" },
{ WINBINDD_ENDPWENT, winbindd_endpwent, "ENDPWENT" },
{ WINBINDD_GETPWENT, winbindd_getpwent, "GETPWENT" },
- { WINBINDD_GETGROUPS, winbindd_getgroups, "GETGROUPS" },
{ WINBINDD_GETUSERSIDS, winbindd_getusersids, "GETUSERSIDS" },
- { WINBINDD_GETUSERDOMGROUPS, winbindd_getuserdomgroups,
- "GETUSERDOMGROUPS" },
- { WINBINDD_GETSIDALIASES, winbindd_getsidaliases,
- "LOOKUPUSERALIASES" },
/* Group functions */
@@ -469,16 +460,10 @@ static struct winbindd_dispatch_table {
/* SID related functions */
- { WINBINDD_LOOKUPSID, winbindd_lookupsid, "LOOKUPSID" },
- { WINBINDD_LOOKUPNAME, winbindd_lookupname, "LOOKUPNAME" },
{ WINBINDD_LOOKUPRIDS, winbindd_lookuprids, "LOOKUPRIDS" },
/* Lookup related functions */
- { WINBINDD_SID_TO_UID, winbindd_sid_to_uid, "SID_TO_UID" },
- { WINBINDD_SID_TO_GID, winbindd_sid_to_gid, "SID_TO_GID" },
- { WINBINDD_UID_TO_SID, winbindd_uid_to_sid, "UID_TO_SID" },
- { WINBINDD_GID_TO_SID, winbindd_gid_to_sid, "GID_TO_SID" },
{ WINBINDD_ALLOCATE_UID, winbindd_allocate_uid, "ALLOCATE_UID" },
{ WINBINDD_ALLOCATE_GID, winbindd_allocate_gid, "ALLOCATE_GID" },
{ WINBINDD_SET_MAPPING, winbindd_set_mapping, "SET_MAPPING" },
@@ -488,7 +473,6 @@ static struct winbindd_dispatch_table {
/* Miscellaneous */
{ WINBINDD_CHECK_MACHACC, winbindd_check_machine_acct, "CHECK_MACHACC" },
- { WINBINDD_PING, winbindd_ping, "PING" },
{ WINBINDD_INFO, winbindd_info, "INFO" },
{ WINBINDD_INTERFACE_VERSION, winbindd_interface_version,
"INTERFACE_VERSION" },
@@ -526,6 +510,30 @@ struct winbindd_async_dispatch_table {
static struct winbindd_async_dispatch_table async_nonpriv_table[] = {
{ WINBINDD_PING, "PING",
wb_ping_send, wb_ping_recv },
+ { WINBINDD_LOOKUPSID, "LOOKUPSID",
+ winbindd_lookupsid_send, winbindd_lookupsid_recv },
+ { WINBINDD_LOOKUPNAME, "LOOKUPNAME",
+ winbindd_lookupname_send, winbindd_lookupname_recv },
+ { WINBINDD_SID_TO_UID, "SID_TO_UID",
+ winbindd_sid_to_uid_send, winbindd_sid_to_uid_recv },
+ { WINBINDD_SID_TO_GID, "SID_TO_GID",
+ winbindd_sid_to_gid_send, winbindd_sid_to_gid_recv },
+ { WINBINDD_UID_TO_SID, "UID_TO_SID",
+ winbindd_uid_to_sid_send, winbindd_uid_to_sid_recv },
+ { WINBINDD_GID_TO_SID, "GID_TO_SID",
+ winbindd_gid_to_sid_send, winbindd_gid_to_sid_recv },
+ { WINBINDD_GETPWSID, "GETPWSID",
+ winbindd_getpwsid_send, winbindd_getpwsid_recv },
+ { WINBINDD_GETPWNAM, "GETPWNAM",
+ winbindd_getpwnam_send, winbindd_getpwnam_recv },
+ { WINBINDD_GETPWUID, "GETPWUID",
+ winbindd_getpwuid_send, winbindd_getpwuid_recv },
+ { WINBINDD_GETSIDALIASES, "GETSIDALIASES",
+ winbindd_getsidaliases_send, winbindd_getsidaliases_recv },
+ { WINBINDD_GETUSERDOMGROUPS, "GETUSERDOMGROUPS",
+ winbindd_getuserdomgroups_send, winbindd_getuserdomgroups_recv },
+ { WINBINDD_GETGROUPS, "GETGROUPS",
+ winbindd_getgroups_send, winbindd_getgroups_recv },
{ 0, NULL, NULL, NULL }
};
diff --git a/source3/winbindd/winbindd.h b/source3/winbindd/winbindd.h
index 8f0db44617..baab7fd11a 100644
--- a/source3/winbindd/winbindd.h
+++ b/source3/winbindd/winbindd.h
@@ -138,6 +138,7 @@ struct winbindd_child {
int sock;
struct tevent_queue *queue;
+ struct rpc_pipe_client *rpccli;
struct timed_event *lockout_policy_event;
struct timed_event *machine_password_change_event;
diff --git a/source3/winbindd/winbindd_async.c b/source3/winbindd/winbindd_async.c
index f53875f617..094602160d 100644
--- a/source3/winbindd/winbindd_async.c
+++ b/source3/winbindd/winbindd_async.c
@@ -632,25 +632,32 @@ bool print_sidlist(TALLOC_CTX *mem_ctx, const DOM_SID *sids,
return True;
}
-bool parse_sidlist(TALLOC_CTX *mem_ctx, char *sidstr,
+bool parse_sidlist(TALLOC_CTX *mem_ctx, const char *sidstr,
DOM_SID **sids, size_t *num_sids)
{
- char *p, *q;
+ const char *p, *q;
p = sidstr;
if (p == NULL)
return False;
while (p[0] != '\0') {
+ fstring tmp;
+ size_t sidlen;
DOM_SID sid;
q = strchr(p, '\n');
if (q == NULL) {
DEBUG(0, ("Got invalid sidstr: %s\n", p));
return False;
}
- *q = '\0';
+ sidlen = PTR_DIFF(q, p);
+ if (sidlen >= sizeof(tmp)-1) {
+ return false;
+ }
+ memcpy(tmp, p, sidlen);
+ tmp[sidlen] = '\0';
q += 1;
- if (!string_to_sid(&sid, p)) {
+ if (!string_to_sid(&sid, tmp)) {
DEBUG(0, ("Could not parse sid %s\n", p));
return False;
}
diff --git a/source3/winbindd/winbindd_cache.c b/source3/winbindd/winbindd_cache.c
index bec2a714c8..5dfdc5ae29 100644
--- a/source3/winbindd/winbindd_cache.c
+++ b/source3/winbindd/winbindd_cache.c
@@ -1605,28 +1605,31 @@ skip_save:
return status;
}
-/* convert a single name to a sid in a domain */
-static NTSTATUS name_to_sid(struct winbindd_domain *domain,
- TALLOC_CTX *mem_ctx,
+NTSTATUS wcache_name_to_sid(struct winbindd_domain *domain,
const char *domain_name,
const char *name,
- uint32_t flags,
- DOM_SID *sid,
+ struct dom_sid *sid,
enum lsa_SidType *type)
{
struct winbind_cache *cache = get_cache(domain);
- struct cache_entry *centry = NULL;
+ struct cache_entry *centry;
NTSTATUS status;
- fstring uname;
+ char *uname;
- if (!cache->tdb)
- goto do_query;
+ if (cache->tdb == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
+
+ uname = talloc_strdup_upper(talloc_tos(), name);
+ if (uname == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
- fstrcpy(uname, name);
- strupper_m(uname);
centry = wcache_fetch(cache, domain, "NS/%s/%s", domain_name, uname);
- if (!centry)
- goto do_query;
+ TALLOC_FREE(uname);
+ if (centry == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
status = centry->status;
if (NT_STATUS_IS_OK(status)) {
@@ -1634,13 +1637,29 @@ static NTSTATUS name_to_sid(struct winbindd_domain *domain,
centry_sid(centry, sid);
}
- DEBUG(10,("name_to_sid: [Cached] - cached name for domain %s status: %s\n",
- domain->name, nt_errstr(status) ));
+ DEBUG(10,("name_to_sid: [Cached] - cached name for domain %s status: "
+ "%s\n", domain->name, nt_errstr(status) ));
centry_free(centry);
return status;
+}
+
+/* convert a single name to a sid in a domain */
+static NTSTATUS name_to_sid(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ const char *domain_name,
+ const char *name,
+ uint32_t flags,
+ DOM_SID *sid,
+ enum lsa_SidType *type)
+{
+ NTSTATUS status;
+
+ status = wcache_name_to_sid(domain, domain_name, name, sid, type);
+ if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
+ return status;
+ }
-do_query:
ZERO_STRUCTP(sid);
/* If the seq number check indicated that there is a problem
@@ -1678,42 +1697,65 @@ do_query:
return status;
}
-/* convert a sid to a user or group name. The sid is guaranteed to be in the domain
- given */
-static NTSTATUS sid_to_name(struct winbindd_domain *domain,
+NTSTATUS wcache_sid_to_name(struct winbindd_domain *domain,
+ const struct dom_sid *sid,
TALLOC_CTX *mem_ctx,
- const DOM_SID *sid,
char **domain_name,
char **name,
enum lsa_SidType *type)
{
struct winbind_cache *cache = get_cache(domain);
- struct cache_entry *centry = NULL;
+ struct cache_entry *centry;
+ char *sid_string;
NTSTATUS status;
- fstring sid_string;
- if (!cache->tdb)
- goto do_query;
+ if (cache->tdb == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
- centry = wcache_fetch(cache, domain, "SN/%s",
- sid_to_fstring(sid_string, sid));
- if (!centry)
- goto do_query;
+ sid_string = sid_string_tos(sid);
+ if (sid_string == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
- status = centry->status;
- if (NT_STATUS_IS_OK(status)) {
+ centry = wcache_fetch(cache, domain, "SN/%s", sid_string);
+ TALLOC_FREE(sid_string);
+ if (centry == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
+
+ if (NT_STATUS_IS_OK(centry->status)) {
*type = (enum lsa_SidType)centry_uint32(centry);
*domain_name = centry_string(centry, mem_ctx);
*name = centry_string(centry, mem_ctx);
}
- DEBUG(10,("sid_to_name: [Cached] - cached name for domain %s status: %s\n",
- domain->name, nt_errstr(status) ));
-
+ status = centry->status;
centry_free(centry);
+
+ DEBUG(10,("sid_to_name: [Cached] - cached name for domain %s status: "
+ "%s\n", domain->name, nt_errstr(status) ));
+
return status;
+}
+
+/* convert a sid to a user or group name. The sid is guaranteed to be in the domain
+ given */
+static NTSTATUS sid_to_name(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ const DOM_SID *sid,
+ char **domain_name,
+ char **name,
+ enum lsa_SidType *type)
+{
+ NTSTATUS status;
+
+ status = wcache_sid_to_name(domain, sid, mem_ctx, domain_name, name,
+ type);
+ if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
+ return status;
+ }
-do_query:
*name = NULL;
*domain_name = NULL;
@@ -1897,38 +1939,46 @@ static NTSTATUS rids_to_names(struct winbindd_domain *domain,
return result;
}
-/* Lookup user information from a rid */
-static NTSTATUS query_user(struct winbindd_domain *domain,
- TALLOC_CTX *mem_ctx,
- const DOM_SID *user_sid,
- WINBIND_USERINFO *info)
+NTSTATUS wcache_query_user(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ const struct dom_sid *user_sid,
+ struct winbind_userinfo *info)
{
struct winbind_cache *cache = get_cache(domain);
struct cache_entry *centry = NULL;
NTSTATUS status;
- fstring tmp;
+ char *sid_string;
- if (!cache->tdb)
- goto do_query;
+ if (cache->tdb == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
- centry = wcache_fetch(cache, domain, "U/%s",
- sid_to_fstring(tmp, user_sid));
+ sid_string = sid_string_tos(user_sid);
+ if (sid_string == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
- /* If we have an access denied cache entry and a cached info3 in the
- samlogon cache then do a query. This will force the rpc back end
- to return the info3 data. */
+ centry = wcache_fetch(cache, domain, "U/%s", sid_string);
+ TALLOC_FREE(sid_string);
+ if (centry == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
- if (NT_STATUS_V(domain->last_status) == NT_STATUS_V(NT_STATUS_ACCESS_DENIED) &&
+ /*
+ * If we have an access denied cache entry and a cached info3
+ * in the samlogon cache then do a query. This will force the
+ * rpc back end to return the info3 data.
+ */
+
+ if (NT_STATUS_EQUAL(domain->last_status, NT_STATUS_ACCESS_DENIED) &&
netsamlogon_cache_have(user_sid)) {
- DEBUG(10, ("query_user: cached access denied and have cached info3\n"));
+ DEBUG(10, ("query_user: cached access denied and have cached "
+ "info3\n"));
domain->last_status = NT_STATUS_OK;
centry_free(centry);
- goto do_query;
+ return NT_STATUS_NOT_FOUND;
}
- if (!centry)
- goto do_query;
-
/* if status is not ok then this is a negative hit
and the rest of the data doesn't matter */
status = centry->status;
@@ -1942,13 +1992,26 @@ static NTSTATUS query_user(struct winbindd_domain *domain,
centry_sid(centry, &info->group_sid);
}
- DEBUG(10,("query_user: [Cached] - cached info for domain %s status: %s\n",
- domain->name, nt_errstr(status) ));
+ DEBUG(10,("query_user: [Cached] - cached info for domain %s status: "
+ "%s\n", domain->name, nt_errstr(status) ));
centry_free(centry);
return status;
+}
+
+/* Lookup user information from a rid */
+static NTSTATUS query_user(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ const DOM_SID *user_sid,
+ WINBIND_USERINFO *info)
+{
+ NTSTATUS status;
+
+ status = wcache_query_user(domain, mem_ctx, user_sid, info);
+ if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
+ return status;
+ }
-do_query:
ZERO_STRUCTP(info);
/* Return status value returned by seq number check */
@@ -1968,63 +2031,81 @@ do_query:
return status;
}
-
-/* Lookup groups a user is a member of. */
-static NTSTATUS lookup_usergroups(struct winbindd_domain *domain,
+NTSTATUS wcache_lookup_usergroups(struct winbindd_domain *domain,
TALLOC_CTX *mem_ctx,
- const DOM_SID *user_sid,
- uint32 *num_groups, DOM_SID **user_gids)
+ const struct dom_sid *user_sid,
+ uint32_t *pnum_sids,
+ struct dom_sid **psids)
{
struct winbind_cache *cache = get_cache(domain);
struct cache_entry *centry = NULL;
NTSTATUS status;
- unsigned int i;
+ uint32_t i, num_sids;
+ struct dom_sid *sids;
fstring sid_string;
- if (!cache->tdb)
- goto do_query;
+ if (cache->tdb == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
centry = wcache_fetch(cache, domain, "UG/%s",
sid_to_fstring(sid_string, user_sid));
+ if (centry == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
/* If we have an access denied cache entry and a cached info3 in the
samlogon cache then do a query. This will force the rpc back end
to return the info3 data. */
- if (NT_STATUS_V(domain->last_status) == NT_STATUS_V(NT_STATUS_ACCESS_DENIED) &&
- netsamlogon_cache_have(user_sid)) {
- DEBUG(10, ("lookup_usergroups: cached access denied and have cached info3\n"));
+ if (NT_STATUS_EQUAL(domain->last_status, NT_STATUS_ACCESS_DENIED)
+ && netsamlogon_cache_have(user_sid)) {
+ DEBUG(10, ("lookup_usergroups: cached access denied and have "
+ "cached info3\n"));
domain->last_status = NT_STATUS_OK;
centry_free(centry);
- goto do_query;
+ return NT_STATUS_NOT_FOUND;
}
- if (!centry)
- goto do_query;
-
- *num_groups = centry_uint32(centry);
-
- if (*num_groups == 0)
- goto do_cached;
-
- (*user_gids) = TALLOC_ARRAY(mem_ctx, DOM_SID, *num_groups);
- if (! (*user_gids)) {
- smb_panic_fn("lookup_usergroups out of memory");
+ num_sids = centry_uint32(centry);
+ sids = talloc_array(mem_ctx, struct dom_sid, num_sids);
+ if (sids == NULL) {
+ return NT_STATUS_NO_MEMORY;
}
- for (i=0; i<(*num_groups); i++) {
- centry_sid(centry, &(*user_gids)[i]);
+
+ for (i=0; i<num_sids; i++) {
+ centry_sid(centry, &sids[i]);
}
-do_cached:
status = centry->status;
- DEBUG(10,("lookup_usergroups: [Cached] - cached info for domain %s status: %s\n",
- domain->name, nt_errstr(status) ));
+ DEBUG(10,("lookup_usergroups: [Cached] - cached info for domain %s "
+ "status: %s\n", domain->name, nt_errstr(status)));
centry_free(centry);
+
+ *pnum_sids = num_sids;
+ *psids = sids;
return status;
+}
+
+/* Lookup groups a user is a member of. */
+static NTSTATUS lookup_usergroups(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ const DOM_SID *user_sid,
+ uint32 *num_groups, DOM_SID **user_gids)
+{
+ struct cache_entry *centry = NULL;
+ NTSTATUS status;
+ unsigned int i;
+ fstring sid_string;
+
+ status = wcache_lookup_usergroups(domain, mem_ctx, user_sid,
+ num_groups, user_gids);
+ if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
+ return status;
+ }
-do_query:
(*num_groups) = 0;
(*user_gids) = NULL;
@@ -2059,58 +2140,74 @@ skip_save:
return status;
}
-static NTSTATUS lookup_useraliases(struct winbindd_domain *domain,
- TALLOC_CTX *mem_ctx,
- uint32 num_sids, const DOM_SID *sids,
- uint32 *num_aliases, uint32 **alias_rids)
+static char *wcache_make_sidlist(TALLOC_CTX *mem_ctx, uint32_t num_sids,
+ const struct dom_sid *sids)
+{
+ uint32_t i;
+ char *sidlist;
+
+ sidlist = talloc_strdup(mem_ctx, "");
+ if (sidlist == NULL) {
+ return NULL;
+ }
+ for (i=0; i<num_sids; i++) {
+ fstring tmp;
+ sidlist = talloc_asprintf_append_buffer(
+ sidlist, "/%s", sid_to_fstring(tmp, &sids[i]));
+ if (sidlist == NULL) {
+ return NULL;
+ }
+ }
+ return sidlist;
+}
+
+NTSTATUS wcache_lookup_useraliases(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx, uint32_t num_sids,
+ const struct dom_sid *sids,
+ uint32_t *pnum_aliases, uint32_t **paliases)
{
struct winbind_cache *cache = get_cache(domain);
struct cache_entry *centry = NULL;
+ uint32_t num_aliases;
+ uint32_t *aliases;
NTSTATUS status;
- char *sidlist = talloc_strdup(mem_ctx, "");
+ char *sidlist;
int i;
- if (!cache->tdb)
- goto do_query;
+ if (cache->tdb == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
if (num_sids == 0) {
- *num_aliases = 0;
- *alias_rids = NULL;
+ *pnum_aliases = 0;
+ *paliases = NULL;
return NT_STATUS_OK;
}
/* We need to cache indexed by the whole list of SIDs, the aliases
* resulting might come from any of the SIDs. */
- for (i=0; i<num_sids; i++) {
- fstring tmp;
- sidlist = talloc_asprintf(mem_ctx, "%s/%s", sidlist,
- sid_to_fstring(tmp, &sids[i]));
- if (sidlist == NULL)
- return NT_STATUS_NO_MEMORY;
+ sidlist = wcache_make_sidlist(talloc_tos(), num_sids, sids);
+ if (sidlist == NULL) {
+ return NT_STATUS_NO_MEMORY;
}
centry = wcache_fetch(cache, domain, "UA%s", sidlist);
+ TALLOC_FREE(sidlist);
+ if (centry == NULL) {
+ return NT_STATUS_NOT_FOUND;
+ }
- if (!centry)
- goto do_query;
-
- *num_aliases = centry_uint32(centry);
- *alias_rids = NULL;
-
- if (*num_aliases) {
- (*alias_rids) = TALLOC_ARRAY(mem_ctx, uint32, *num_aliases);
-
- if ((*alias_rids) == NULL) {
- centry_free(centry);
- return NT_STATUS_NO_MEMORY;
- }
- } else {
- (*alias_rids) = NULL;
+ num_aliases = centry_uint32(centry);
+ aliases = talloc_array(mem_ctx, uint32_t, num_aliases);
+ if (aliases == NULL) {
+ centry_free(centry);
+ return NT_STATUS_NO_MEMORY;
}
- for (i=0; i<(*num_aliases); i++)
- (*alias_rids)[i] = centry_uint32(centry);
+ for (i=0; i<num_aliases; i++) {
+ aliases[i] = centry_uint32(centry);
+ }
status = centry->status;
@@ -2118,9 +2215,29 @@ static NTSTATUS lookup_useraliases(struct winbindd_domain *domain,
"status %s\n", domain->name, nt_errstr(status)));
centry_free(centry);
+
+ *pnum_aliases = num_aliases;
+ *paliases = aliases;
+
return status;
+}
+
+static NTSTATUS lookup_useraliases(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ uint32 num_sids, const DOM_SID *sids,
+ uint32 *num_aliases, uint32 **alias_rids)
+{
+ struct cache_entry *centry = NULL;
+ NTSTATUS status;
+ char *sidlist;
+ int i;
+
+ status = wcache_lookup_useraliases(domain, mem_ctx, num_sids, sids,
+ num_aliases, alias_rids);
+ if (!NT_STATUS_EQUAL(status, NT_STATUS_NOT_FOUND)) {
+ return status;
+ }
- do_query:
(*num_aliases) = 0;
(*alias_rids) = NULL;
@@ -2130,6 +2247,11 @@ static NTSTATUS lookup_useraliases(struct winbindd_domain *domain,
DEBUG(10,("lookup_usergroups: [Cached] - doing backend query for info "
"for domain %s\n", domain->name ));
+ sidlist = wcache_make_sidlist(talloc_tos(), num_sids, sids);
+ if (sidlist == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
status = domain->backend->lookup_useraliases(domain, mem_ctx,
num_sids, sids,
num_aliases, alias_rids);
@@ -2625,36 +2747,14 @@ bool lookup_cached_sid(TALLOC_CTX *mem_ctx, const DOM_SID *sid,
enum lsa_SidType *type)
{
struct winbindd_domain *domain;
- struct winbind_cache *cache;
- struct cache_entry *centry = NULL;
NTSTATUS status;
- fstring tmp;
domain = find_lookup_domain_from_sid(sid);
if (domain == NULL) {
return false;
}
-
- cache = get_cache(domain);
-
- if (cache->tdb == NULL) {
- return false;
- }
-
- centry = wcache_fetch(cache, domain, "SN/%s",
- sid_to_fstring(tmp, sid));
- if (centry == NULL) {
- return false;
- }
-
- if (NT_STATUS_IS_OK(centry->status)) {
- *type = (enum lsa_SidType)centry_uint32(centry);
- *domain_name = centry_string(centry, mem_ctx);
- *name = centry_string(centry, mem_ctx);
- }
-
- status = centry->status;
- centry_free(centry);
+ status = wcache_sid_to_name(domain, sid, mem_ctx, domain_name, name,
+ type);
return NT_STATUS_IS_OK(status);
}
@@ -2665,46 +2765,22 @@ bool lookup_cached_name(TALLOC_CTX *mem_ctx,
enum lsa_SidType *type)
{
struct winbindd_domain *domain;
- struct winbind_cache *cache;
- struct cache_entry *centry = NULL;
NTSTATUS status;
- fstring uname;
- bool original_online_state;
+ bool original_online_state;
domain = find_lookup_domain_from_name(domain_name);
if (domain == NULL) {
return false;
}
- cache = get_cache(domain);
-
- if (cache->tdb == NULL) {
- return false;
- }
-
- fstrcpy(uname, name);
- strupper_m(uname);
-
/* If we are doing a cached logon, temporarily set the domain
offline so the cache won't expire the entry */
original_online_state = domain->online;
domain->online = false;
- centry = wcache_fetch(cache, domain, "NS/%s/%s", domain_name, uname);
+ status = wcache_name_to_sid(domain, domain_name, name, sid, type);
domain->online = original_online_state;
- if (centry == NULL) {
- return false;
- }
-
- if (NT_STATUS_IS_OK(centry->status)) {
- *type = (enum lsa_SidType)centry_uint32(centry);
- centry_sid(centry, sid);
- }
-
- status = centry->status;
- centry_free(centry);
-
return NT_STATUS_IS_OK(status);
}
diff --git a/source3/winbindd/winbindd_domain.c b/source3/winbindd/winbindd_domain.c
index 8c52df3e16..5ff2e16abb 100644
--- a/source3/winbindd/winbindd_domain.c
+++ b/source3/winbindd/winbindd_domain.c
@@ -122,6 +122,10 @@ static const struct winbindd_child_dispatch_table domain_dispatch_table[] = {
.struct_cmd = WINBINDD_CCACHE_NTLMAUTH,
.struct_fn = winbindd_dual_ccache_ntlm_auth,
},{
+ .name = "NDRCMD",
+ .struct_cmd = WINBINDD_DUAL_NDRCMD,
+ .struct_fn = winbindd_dual_ndrcmd,
+ },{
.name = NULL,
}
};
diff --git a/source3/winbindd/winbindd_dual.c b/source3/winbindd/winbindd_dual.c
index 1985dd8b12..2158834bdd 100644
--- a/source3/winbindd/winbindd_dual.c
+++ b/source3/winbindd/winbindd_dual.c
@@ -592,6 +592,8 @@ void setup_child(struct winbindd_child *child,
child->table = table;
child->queue = tevent_queue_create(NULL, "winbind_child");
SMB_ASSERT(child->queue != NULL);
+ child->rpccli = wbint_rpccli_create(NULL, child);
+ SMB_ASSERT(child->rpccli != NULL);
}
struct winbindd_child *children = NULL;
@@ -1307,6 +1309,16 @@ bool winbindd_reinit_after_fork(const char *logfilename)
return true;
}
+/*
+ * In a child there will be only one domain, reference that here.
+ */
+static struct winbindd_domain *child_domain;
+
+struct winbindd_domain *wb_child_domain(void)
+{
+ return child_domain;
+}
+
static bool fork_domain_child(struct winbindd_child *child)
{
int fdpair[2];
@@ -1321,6 +1333,7 @@ static bool fork_domain_child(struct winbindd_child *child)
} else {
DEBUG(10, ("fork_domain_child called without domain.\n"));
}
+ child_domain = child->domain;
if (socketpair(AF_UNIX, SOCK_STREAM, 0, fdpair) != 0) {
DEBUG(0, ("Could not open child pipe: %s\n",
diff --git a/source3/winbindd/winbindd_dual_ndr.c b/source3/winbindd/winbindd_dual_ndr.c
new file mode 100644
index 0000000000..f72d6615a0
--- /dev/null
+++ b/source3/winbindd/winbindd_dual_ndr.c
@@ -0,0 +1,273 @@
+/*
+ Unix SMB/CIFS implementation.
+
+ Provide parent->child communication based on NDR marshalling
+
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+/*
+ * This file implements an RPC between winbind parent and child processes,
+ * leveraging the autogenerated marshalling routines for MSRPC. This is not
+ * MSRPC, as it does not go through the whole DCERPC fragmentation, we just
+ * leverage much the same infrastructure we already have for it.
+ */
+
+#include "includes.h"
+#include "winbindd/winbindd.h"
+#include "winbindd/winbindd_proto.h"
+#include "librpc/gen_ndr/srv_wbint.h"
+
+struct wb_ndr_transport_priv {
+ struct winbindd_child *child;
+};
+
+struct wb_ndr_dispatch_state {
+ const struct ndr_interface_call *call;
+ void *r;
+ struct ndr_push *push;
+ struct winbindd_request request;
+ struct winbindd_response *response;
+};
+
+static void wb_ndr_dispatch_done(struct tevent_req *subreq);
+
+static struct tevent_req *wb_ndr_dispatch_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct rpc_pipe_client *cli,
+ const struct ndr_interface_table *table,
+ uint32_t opnum,
+ void *r)
+{
+ struct tevent_req *req, *subreq;
+ struct wb_ndr_dispatch_state *state;
+ struct wb_ndr_transport_priv *transport = talloc_get_type_abort(
+ cli->transport->priv, struct wb_ndr_transport_priv);
+ DATA_BLOB blob;
+ enum ndr_err_code ndr_err;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct wb_ndr_dispatch_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ state->r = r;
+ state->call = &table->calls[opnum];
+
+ state->push = ndr_push_init_ctx(state, NULL);
+ if (tevent_req_nomem(state->push, req)) {
+ return tevent_req_post(req, ev);
+ }
+
+ ndr_err = state->call->ndr_push(state->push, NDR_IN, r);
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ tevent_req_nterror(req, ndr_map_error2ntstatus(ndr_err));
+ TALLOC_FREE(state->push);
+ return tevent_req_post(req, ev);
+ }
+
+ blob = ndr_push_blob(state->push);
+
+ state->request.cmd = WINBINDD_DUAL_NDRCMD;
+ state->request.data.ndrcmd = opnum;
+ state->request.extra_data.data = (char *)blob.data;
+ state->request.extra_len = blob.length;
+
+ subreq = wb_child_request_send(state, ev, transport->child,
+ &state->request);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, wb_ndr_dispatch_done, req);
+ return req;
+}
+
+static void wb_ndr_dispatch_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct wb_ndr_dispatch_state *state = tevent_req_data(
+ req, struct wb_ndr_dispatch_state);
+ int ret, err;
+
+ ret = wb_child_request_recv(subreq, state, &state->response, &err);
+ TALLOC_FREE(subreq);
+ if (ret == -1) {
+ tevent_req_nterror(req, map_nt_error_from_unix(err));
+ return;
+ }
+ tevent_req_done(req);
+}
+
+static NTSTATUS wb_ndr_dispatch_recv(struct tevent_req *req,
+ TALLOC_CTX *mem_ctx)
+{
+ struct wb_ndr_dispatch_state *state = tevent_req_data(
+ req, struct wb_ndr_dispatch_state);
+ NTSTATUS status;
+ struct ndr_pull *pull;
+ enum ndr_err_code ndr_err;
+ DATA_BLOB blob;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+
+ blob.data = (uint8_t *)state->response->extra_data.data;
+ blob.length = state->response->length
+ - sizeof(struct winbindd_response);
+
+ pull = ndr_pull_init_blob(&blob, mem_ctx, NULL);
+ if (pull == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+
+ /* have the ndr parser alloc memory for us */
+ pull->flags |= LIBNDR_FLAG_REF_ALLOC;
+ ndr_err = state->call->ndr_pull(pull, NDR_OUT, state->r);
+ TALLOC_FREE(pull);
+
+ if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+ return ndr_map_error2ntstatus(ndr_err);
+ }
+
+ return NT_STATUS_OK;
+}
+
+static NTSTATUS wb_ndr_dispatch(struct rpc_pipe_client *cli,
+ TALLOC_CTX *mem_ctx,
+ const struct ndr_interface_table *table,
+ uint32_t opnum, void *r)
+{
+ TALLOC_CTX *frame = talloc_stackframe();
+ struct event_context *ev;
+ struct tevent_req *req;
+ NTSTATUS status = NT_STATUS_OK;
+
+ ev = event_context_init(frame);
+ if (ev == NULL) {
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
+ }
+
+ req = wb_ndr_dispatch_send(frame, ev, cli, table, opnum, r);
+ if (req == NULL) {
+ status = NT_STATUS_NO_MEMORY;
+ goto fail;
+ }
+
+ if (!tevent_req_poll(req, ev)) {
+ status = map_nt_error_from_unix(errno);
+ goto fail;
+ }
+
+ status = wb_ndr_dispatch_recv(req, mem_ctx);
+ fail:
+ TALLOC_FREE(frame);
+ return status;
+}
+
+struct rpc_pipe_client *wbint_rpccli_create(TALLOC_CTX *mem_ctx,
+ struct winbindd_child *child)
+{
+ struct rpc_pipe_client *result;
+ struct wb_ndr_transport_priv *transp;
+
+ result = talloc(mem_ctx, struct rpc_pipe_client);
+ if (result == NULL) {
+ return NULL;
+ }
+ result->abstract_syntax = ndr_table_wbint.syntax_id;
+ result->transfer_syntax = ndr_transfer_syntax;
+ result->dispatch = wb_ndr_dispatch;
+ result->dispatch_send = wb_ndr_dispatch_send;
+ result->dispatch_recv = wb_ndr_dispatch_recv;
+ result->max_xmit_frag = RPC_MAX_PDU_FRAG_LEN;
+ result->max_recv_frag = RPC_MAX_PDU_FRAG_LEN;
+ result->desthost = NULL;
+ result->srv_name_slash = NULL;
+
+ /*
+ * Initialize a fake transport. Due to our own wb_ndr_dispatch
+ * function we don't use all the fragmentation engine in
+ * cli_pipe, which would use all the _read and _write
+ * functions in rpc_cli_transport. But we need a place to
+ * store the child struct in, and we're re-using
+ * result->transport->priv for that.
+ */
+
+ result->transport = talloc_zero(result, struct rpc_cli_transport);
+ if (result->transport == NULL) {
+ TALLOC_FREE(result);
+ return NULL;
+ }
+ transp = talloc(result->transport, struct wb_ndr_transport_priv);
+ if (transp == NULL) {
+ TALLOC_FREE(result);
+ return NULL;
+ }
+ transp->child = child;
+ result->transport->priv = transp;
+ return result;
+}
+
+enum winbindd_result winbindd_dual_ndrcmd(struct winbindd_domain *domain,
+ struct winbindd_cli_state *state)
+{
+ pipes_struct p;
+ struct api_struct *fns;
+ int num_fns;
+ bool ret;
+
+ wbint_get_pipe_fns(&fns, &num_fns);
+
+ if (state->request->data.ndrcmd >= num_fns) {
+ return WINBINDD_ERROR;
+ }
+
+ ZERO_STRUCT(p);
+ p.mem_ctx = talloc_stackframe();
+ p.in_data.data.buffer_size = state->request->extra_len;
+ p.in_data.data.data_p = state->request->extra_data.data;
+ prs_init(&p.out_data.rdata, 0, state->mem_ctx, false);
+
+ ret = fns[state->request->data.ndrcmd].fn(&p);
+ TALLOC_FREE(p.mem_ctx);
+ if (!ret) {
+ return WINBINDD_ERROR;
+ }
+
+ state->response->extra_data.data =
+ talloc_memdup(state->mem_ctx, p.out_data.rdata.data_p,
+ p.out_data.rdata.data_offset);
+ state->response->length += p.out_data.rdata.data_offset;
+ prs_mem_free(&p.out_data.rdata);
+ if (state->response->extra_data.data == NULL) {
+ return WINBINDD_ERROR;
+ }
+ return WINBINDD_OK;
+}
+
+/*
+ * Just a dummy to make srv_wbint.c happy
+ */
+NTSTATUS rpc_srv_register(int version, const char *clnt, const char *srv,
+ const struct ndr_interface_table *iface,
+ const struct api_struct *cmds, int size)
+{
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c
new file mode 100644
index 0000000000..9be295ffdc
--- /dev/null
+++ b/source3/winbindd/winbindd_dual_srv.c
@@ -0,0 +1,174 @@
+/*
+ Unix SMB/CIFS implementation.
+
+ In-Child server implementation of the routines defined in wbint.idl
+
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd/winbindd.h"
+#include "winbindd/winbindd_proto.h"
+#include "librpc/gen_ndr/srv_wbint.h"
+
+void _wbint_Ping(pipes_struct *p, struct wbint_Ping *r)
+{
+ *r->out.out_data = r->in.in_data;
+}
+
+NTSTATUS _wbint_LookupSid(pipes_struct *p, struct wbint_LookupSid *r)
+{
+ struct winbindd_domain *domain = wb_child_domain();
+ char *dom_name;
+ char *name;
+ enum lsa_SidType type;
+ NTSTATUS status;
+
+ if (domain == NULL) {
+ return NT_STATUS_REQUEST_NOT_ACCEPTED;
+ }
+
+ status = domain->methods->sid_to_name(domain, p->mem_ctx, r->in.sid,
+ &dom_name, &name, &type);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ *r->out.domain = dom_name;
+ *r->out.name = name;
+ *r->out.type = type;
+ return NT_STATUS_OK;
+}
+
+NTSTATUS _wbint_LookupName(pipes_struct *p, struct wbint_LookupName *r)
+{
+ struct winbindd_domain *domain = wb_child_domain();
+
+ if (domain == NULL) {
+ return NT_STATUS_REQUEST_NOT_ACCEPTED;
+ }
+
+ return domain->methods->name_to_sid(
+ domain, p->mem_ctx, r->in.domain, r->in.name, r->in.flags,
+ r->out.sid, r->out.type);
+}
+
+NTSTATUS _wbint_Sid2Uid(pipes_struct *p, struct wbint_Sid2Uid *r)
+{
+ uid_t uid;
+ NTSTATUS status;
+
+ status = idmap_sid_to_uid(r->in.dom_name ? r->in.dom_name : "",
+ r->in.sid, &uid);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+ *r->out.uid = uid;
+ return NT_STATUS_OK;
+}
+
+NTSTATUS _wbint_Sid2Gid(pipes_struct *p, struct wbint_Sid2Gid *r)
+{
+ gid_t gid;
+ NTSTATUS status;
+
+ status = idmap_sid_to_gid(r->in.dom_name ? r->in.dom_name : "",
+ r->in.sid, &gid);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+ *r->out.gid = gid;
+ return NT_STATUS_OK;
+}
+
+NTSTATUS _wbint_Uid2Sid(pipes_struct *p, struct wbint_Uid2Sid *r)
+{
+ NTSTATUS status;
+
+ status = idmap_uid_to_sid(r->in.dom_name ? r->in.dom_name : "",
+ r->out.sid, r->in.uid);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+ return NT_STATUS_OK;
+}
+
+NTSTATUS _wbint_Gid2Sid(pipes_struct *p, struct wbint_Gid2Sid *r)
+{
+ NTSTATUS status;
+
+ status = idmap_gid_to_sid(r->in.dom_name ? r->in.dom_name : "",
+ r->out.sid, r->in.gid);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+ return NT_STATUS_OK;
+}
+
+NTSTATUS _wbint_QueryUser(pipes_struct *p, struct wbint_QueryUser *r)
+{
+ struct winbindd_domain *domain = wb_child_domain();
+ WINBIND_USERINFO uinfo;
+ NTSTATUS status;
+
+ if (domain == NULL) {
+ return NT_STATUS_REQUEST_NOT_ACCEPTED;
+ }
+
+ status = domain->methods->query_user(domain, p->mem_ctx, r->in.sid,
+ &uinfo);
+ if (!NT_STATUS_IS_OK(status)) {
+ return status;
+ }
+
+ r->out.info->acct_name = uinfo.acct_name;
+ r->out.info->full_name = uinfo.full_name;
+ r->out.info->homedir = uinfo.homedir;
+ r->out.info->shell = uinfo.shell;
+ r->out.info->primary_gid = uinfo.primary_gid;
+ sid_copy(&r->out.info->user_sid, &uinfo.user_sid);
+ sid_copy(&r->out.info->group_sid, &uinfo.group_sid);
+
+ return NT_STATUS_OK;
+}
+
+NTSTATUS _wbint_LookupUserAliases(pipes_struct *p,
+ struct wbint_LookupUserAliases *r)
+{
+ struct winbindd_domain *domain = wb_child_domain();
+
+ if (domain == NULL) {
+ return NT_STATUS_REQUEST_NOT_ACCEPTED;
+ }
+
+ return domain->methods->lookup_useraliases(
+ domain, p->mem_ctx, r->in.sids->num_sids, r->in.sids->sids,
+ &r->out.rids->num_rids, &r->out.rids->rids);
+}
+
+NTSTATUS _wbint_LookupUserGroups(pipes_struct *p,
+ struct wbint_LookupUserGroups *r)
+{
+ struct winbindd_domain *domain = wb_child_domain();
+
+ if (domain == NULL) {
+ return NT_STATUS_REQUEST_NOT_ACCEPTED;
+ }
+
+ return domain->methods->lookup_usergroups(
+ domain, p->mem_ctx, r->in.sid,
+ &r->out.sids->num_sids, &r->out.sids->sids);
+}
diff --git a/source3/winbindd/winbindd_getgroups.c b/source3/winbindd/winbindd_getgroups.c
new file mode 100644
index 0000000000..9e6465696e
--- /dev/null
+++ b/source3/winbindd/winbindd_getgroups.c
@@ -0,0 +1,222 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_GETGROUPS
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_getgroups_state {
+ struct tevent_context *ev;
+ fstring domname;
+ fstring username;
+ struct dom_sid sid;
+ enum lsa_SidType type;
+ int num_sids;
+ struct dom_sid *sids;
+ int next_sid;
+ int num_gids;
+ gid_t *gids;
+};
+
+static void winbindd_getgroups_lookupname_done(struct tevent_req *subreq);
+static void winbindd_getgroups_gettoken_done(struct tevent_req *subreq);
+static void winbindd_getgroups_sid2gid_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_getgroups_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_getgroups_state *state;
+ char *domuser, *mapped_user;
+ struct winbindd_domain *domain;
+ NTSTATUS status;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_getgroups_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->ev = ev;
+
+ /* Ensure null termination */
+ request->data.username[sizeof(request->data.username)-1]='\0';
+
+ DEBUG(3, ("getgroups %s\n", request->data.username));
+
+ domuser = request->data.username;
+
+ status = normalize_name_unmap(state, domuser, &mapped_user);
+
+ if (NT_STATUS_IS_OK(status)
+ || NT_STATUS_EQUAL(status, NT_STATUS_FILE_RENAMED)) {
+ /* normalize_name_unmapped did something */
+ domuser = mapped_user;
+ }
+
+ if (!parse_domain_user(domuser, state->domname, state->username)) {
+ DEBUG(5, ("Could not parse domain user: %s\n", domuser));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
+ }
+
+ domain = find_domain_from_name_noinit(state->domname);
+ if (domain == NULL) {
+ /* Retry with DNS name */
+ char *p = strchr(domuser, '@');
+ if (p != NULL) {
+ domain = find_domain_from_name_noinit(p+1);
+ }
+ }
+ if (domain == NULL) {
+ DEBUG(7, ("could not find domain entry for domain %s\n",
+ state->domname));
+ tevent_req_nterror(req, NT_STATUS_NO_SUCH_USER);
+ return tevent_req_post(req, ev);
+ }
+
+ if (lp_winbind_trusted_domains_only() && domain->primary) {
+ DEBUG(7,("winbindd_getgroups: My domain -- "
+ "rejecting getgroups() for %s\\%s.\n",
+ state->domname, state->username));
+ tevent_req_nterror(req, NT_STATUS_NO_SUCH_USER);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = wb_lookupname_send(state, ev, state->domname, state->username,
+ LOOKUP_NAME_NO_NSS);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_getgroups_lookupname_done,
+ req);
+ return req;
+}
+
+static void winbindd_getgroups_lookupname_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_getgroups_state *state = tevent_req_data(
+ req, struct winbindd_getgroups_state);
+ NTSTATUS status;
+
+ status = wb_lookupname_recv(subreq, &state->sid, &state->type);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ subreq = wb_gettoken_send(state, state->ev, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, winbindd_getgroups_gettoken_done, req);
+}
+
+static void winbindd_getgroups_gettoken_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_getgroups_state *state = tevent_req_data(
+ req, struct winbindd_getgroups_state);
+ NTSTATUS status;
+
+ status = wb_gettoken_recv(subreq, state, &state->num_sids,
+ &state->sids);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ /*
+ * Convert the group SIDs to gids. state->sids[0] contains the user
+ * sid, so start at index 1.
+ */
+
+ state->gids = talloc_array(state, gid_t, state->num_sids-1);
+ if (tevent_req_nomem(state->gids, req)) {
+ return;
+ }
+ state->num_gids = 0;
+ state->next_sid = 1;
+
+ subreq = wb_sid2gid_send(state, state->ev,
+ &state->sids[state->next_sid]);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, winbindd_getgroups_sid2gid_done, req);
+}
+
+static void winbindd_getgroups_sid2gid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_getgroups_state *state = tevent_req_data(
+ req, struct winbindd_getgroups_state);
+ NTSTATUS status;
+
+ status = wb_sid2gid_recv(subreq, &state->gids[state->num_gids]);
+ TALLOC_FREE(subreq);
+
+ /*
+ * In case of failure, just continue with the next gid
+ */
+ if (NT_STATUS_IS_OK(status)) {
+ state->num_gids += 1;
+ }
+ state->next_sid += 1;
+
+ if (state->next_sid >= state->num_sids) {
+ tevent_req_done(req);
+ return;
+ }
+
+ subreq = wb_sid2gid_send(state, state->ev,
+ &state->sids[state->next_sid]);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, winbindd_getgroups_sid2gid_done, req);
+}
+
+NTSTATUS winbindd_getgroups_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_getgroups_state *state = tevent_req_data(
+ req, struct winbindd_getgroups_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not convert sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+
+ response->data.num_entries = state->num_gids;
+
+ if (state->num_gids > 0) {
+ response->extra_data.data = talloc_move(response,
+ &state->gids);
+ response->length += state->num_gids * sizeof(gid_t);
+ }
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_getpwnam.c b/source3/winbindd/winbindd_getpwnam.c
new file mode 100644
index 0000000000..80b618c4aa
--- /dev/null
+++ b/source3/winbindd/winbindd_getpwnam.c
@@ -0,0 +1,142 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_GETPWNAM
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_getpwnam_state {
+ struct tevent_context *ev;
+ fstring domname;
+ fstring username;
+ struct dom_sid sid;
+ enum lsa_SidType type;
+ struct winbindd_pw pw;
+};
+
+static void winbindd_getpwnam_lookupname_done(struct tevent_req *subreq);
+static void winbindd_getpwnam_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_getpwnam_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_getpwnam_state *state;
+ char *domuser, *mapped_user;
+ NTSTATUS status;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_getpwnam_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->ev = ev;
+
+ /* Ensure null termination */
+ request->data.username[sizeof(request->data.username)-1]='\0';
+
+ DEBUG(3, ("getpwnam %s\n", request->data.username));
+
+ domuser = request->data.username;
+
+ status = normalize_name_unmap(state, domuser, &mapped_user);
+
+ if (NT_STATUS_IS_OK(status)
+ || NT_STATUS_EQUAL(status, NT_STATUS_FILE_RENAMED)) {
+ /* normalize_name_unmapped did something */
+ domuser = mapped_user;
+ }
+
+ if (!parse_domain_user(domuser, state->domname, state->username)) {
+ DEBUG(5, ("Could not parse domain user: %s\n", domuser));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
+ }
+
+ if (lp_winbind_trusted_domains_only()
+ && strequal(state->domname, lp_workgroup())) {
+ DEBUG(7,("winbindd_getpwnam: My domain -- "
+ "rejecting getpwnam() for %s\\%s.\n",
+ state->domname, state->username));
+ tevent_req_nterror(req, NT_STATUS_NO_SUCH_USER);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = wb_lookupname_send(state, ev, state->domname, state->username,
+ LOOKUP_NAME_NO_NSS);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_getpwnam_lookupname_done,
+ req);
+ return req;
+}
+
+static void winbindd_getpwnam_lookupname_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_getpwnam_state *state = tevent_req_data(
+ req, struct winbindd_getpwnam_state);
+ NTSTATUS status;
+
+ status = wb_lookupname_recv(subreq, &state->sid, &state->type);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ subreq = wb_getpwsid_send(state, state->ev, &state->sid, &state->pw);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, winbindd_getpwnam_done, req);
+}
+
+static void winbindd_getpwnam_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ NTSTATUS status;
+
+ status = wb_getpwsid_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_getpwnam_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_getpwnam_state *state = tevent_req_data(
+ req, struct winbindd_getpwnam_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not convert sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+ response->data.pw = state->pw;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_getpwsid.c b/source3/winbindd/winbindd_getpwsid.c
new file mode 100644
index 0000000000..135cbf6f61
--- /dev/null
+++ b/source3/winbindd/winbindd_getpwsid.c
@@ -0,0 +1,92 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_GETPWSID
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_getpwsid_state {
+ struct dom_sid sid;
+ struct winbindd_pw pw;
+};
+
+static void winbindd_getpwsid_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_getpwsid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_getpwsid_state *state;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_getpwsid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ /* Ensure null termination */
+ request->data.sid[sizeof(request->data.sid)-1]='\0';
+
+ DEBUG(3, ("getpwsid %s\n", request->data.sid));
+
+ if (!string_to_sid(&state->sid, request->data.sid)) {
+ DEBUG(1, ("Could not get convert sid %s from string\n",
+ request->data.sid));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = wb_getpwsid_send(state, ev, &state->sid, &state->pw);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_getpwsid_done, req);
+ return req;
+}
+
+static void winbindd_getpwsid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ NTSTATUS status;
+
+ status = wb_getpwsid_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_getpwsid_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_getpwsid_state *state = tevent_req_data(
+ req, struct winbindd_getpwsid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not convert sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+ response->data.pw = state->pw;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_getpwuid.c b/source3/winbindd/winbindd_getpwuid.c
new file mode 100644
index 0000000000..0c667cfccc
--- /dev/null
+++ b/source3/winbindd/winbindd_getpwuid.c
@@ -0,0 +1,108 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_GETPWUID
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_getpwuid_state {
+ struct tevent_context *ev;
+ struct dom_sid sid;
+ struct winbindd_pw pw;
+};
+
+static void winbindd_getpwuid_uid2sid_done(struct tevent_req *subreq);
+static void winbindd_getpwuid_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_getpwuid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_getpwuid_state *state;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_getpwuid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->ev = ev;
+
+ DEBUG(3, ("getpwuid %d\n", (int)request->data.uid));
+
+ subreq = wb_uid2sid_send(state, ev, request->data.uid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_getpwuid_uid2sid_done,
+ req);
+ return req;
+}
+
+static void winbindd_getpwuid_uid2sid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_getpwuid_state *state = tevent_req_data(
+ req, struct winbindd_getpwuid_state);
+ NTSTATUS status;
+
+ status = wb_uid2sid_recv(subreq, &state->sid);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+
+ subreq = wb_getpwsid_send(state, state->ev, &state->sid, &state->pw);
+ if (tevent_req_nomem(subreq, req)) {
+ return;
+ }
+ tevent_req_set_callback(subreq, winbindd_getpwuid_done, req);
+}
+
+static void winbindd_getpwuid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ NTSTATUS status;
+
+ status = wb_getpwsid_recv(subreq);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_getpwuid_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_getpwuid_state *state = tevent_req_data(
+ req, struct winbindd_getpwuid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not convert sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+ response->data.pw = state->pw;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_getsidaliases.c b/source3/winbindd/winbindd_getsidaliases.c
new file mode 100644
index 0000000000..788c88f550
--- /dev/null
+++ b/source3/winbindd/winbindd_getsidaliases.c
@@ -0,0 +1,137 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_GETSIDALIASES
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_getsidaliases_state {
+ struct dom_sid sid;
+ uint32_t num_aliases;
+ uint32_t *aliases;
+};
+
+static void winbindd_getsidaliases_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_getsidaliases_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_getsidaliases_state *state;
+ struct winbindd_domain *domain;
+ size_t num_sids;
+ struct dom_sid *sids;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_getsidaliases_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ /* Ensure null termination */
+ request->data.sid[sizeof(request->data.sid)-1]='\0';
+
+ DEBUG(3, ("getsidaliases %s\n", request->data.sid));
+
+ if (!string_to_sid(&state->sid, request->data.sid)) {
+ DEBUG(1, ("Could not get convert sid %s from string\n",
+ request->data.sid));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
+ }
+
+ domain = find_domain_from_sid_noinit(&state->sid);
+ if (domain == NULL) {
+ DEBUG(1,("could not find domain entry for sid %s\n",
+ request->data.sid));
+ tevent_req_nterror(req, NT_STATUS_NO_SUCH_DOMAIN);
+ return tevent_req_post(req, ev);
+ }
+
+ num_sids = 0;
+ sids = NULL;
+
+ if ((request->extra_data.data != NULL)
+ && !parse_sidlist(state, request->extra_data.data,
+ &sids, &num_sids)) {
+ DEBUG(1, ("Could not parse SID list: %s\n",
+ request->extra_data.data));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = wb_lookupuseraliases_send(state, ev, domain, num_sids, sids);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_getsidaliases_done, req);
+ return req;
+}
+
+static void winbindd_getsidaliases_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_getsidaliases_state *state = tevent_req_data(
+ req, struct winbindd_getsidaliases_state);
+ NTSTATUS status;
+
+ status = wb_lookupuseraliases_recv(subreq, state, &state->num_aliases,
+ &state->aliases);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_getsidaliases_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_getsidaliases_state *state = tevent_req_data(
+ req, struct winbindd_getsidaliases_state);
+ NTSTATUS status;
+ int i;
+ char *sidlist;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+
+ sidlist = talloc_strdup(response, "");
+ if (sidlist == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ for (i=0; i<state->num_aliases; i++) {
+ struct dom_sid sid;
+ fstring tmp;
+ sid_compose(&sid, &state->sid, state->aliases[i]);
+
+ sidlist = talloc_asprintf_append_buffer(
+ sidlist, "%s\n", sid_to_fstring(tmp, &sid));
+ if (sidlist == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ }
+ response->extra_data.data = sidlist;
+ response->length += talloc_get_size(sidlist);
+ response->data.num_entries = state->num_aliases;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_getuserdomgroups.c b/source3/winbindd/winbindd_getuserdomgroups.c
new file mode 100644
index 0000000000..e67768307f
--- /dev/null
+++ b/source3/winbindd/winbindd_getuserdomgroups.c
@@ -0,0 +1,121 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_GETUSERDOMGROUPS
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_getuserdomgroups_state {
+ struct dom_sid sid;
+ int num_sids;
+ struct dom_sid *sids;
+};
+
+static void winbindd_getuserdomgroups_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_getuserdomgroups_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_getuserdomgroups_state *state;
+ struct winbindd_domain *domain;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_getuserdomgroups_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ /* Ensure null termination */
+ request->data.sid[sizeof(request->data.sid)-1]='\0';
+
+ DEBUG(3, ("getuserdomgroups %s\n", request->data.sid));
+
+ if (!string_to_sid(&state->sid, request->data.sid)) {
+ DEBUG(1, ("Could not get convert sid %s from string\n",
+ request->data.sid));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
+ }
+
+ domain = find_domain_from_sid_noinit(&state->sid);
+ if (domain == NULL) {
+ DEBUG(1,("could not find domain entry for sid %s\n",
+ request->data.sid));
+ tevent_req_nterror(req, NT_STATUS_NO_SUCH_DOMAIN);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = wb_lookupusergroups_send(state, ev, domain, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_getuserdomgroups_done, req);
+ return req;
+}
+
+static void winbindd_getuserdomgroups_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_getuserdomgroups_state *state = tevent_req_data(
+ req, struct winbindd_getuserdomgroups_state);
+ NTSTATUS status;
+
+ status = wb_lookupusergroups_recv(subreq, state, &state->num_sids,
+ &state->sids);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_getuserdomgroups_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_getuserdomgroups_state *state = tevent_req_data(
+ req, struct winbindd_getuserdomgroups_state);
+ NTSTATUS status;
+ int i;
+ char *sidlist;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ return status;
+ }
+
+ sidlist = talloc_strdup(response, "");
+ if (sidlist == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ for (i=0; i<state->num_sids; i++) {
+ fstring tmp;
+ sidlist = talloc_asprintf_append_buffer(
+ sidlist, "%s\n",
+ sid_to_fstring(tmp, &state->sids[i]));
+ if (sidlist == NULL) {
+ return NT_STATUS_NO_MEMORY;
+ }
+ }
+ response->extra_data.data = sidlist;
+ response->length += talloc_get_size(sidlist);
+ response->data.num_entries = state->num_sids;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_gid_to_sid.c b/source3/winbindd/winbindd_gid_to_sid.c
new file mode 100644
index 0000000000..b2cc3c2613
--- /dev/null
+++ b/source3/winbindd/winbindd_gid_to_sid.c
@@ -0,0 +1,87 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_GID_TO_SID
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_gid_to_sid_state {
+ struct tevent_context *ev;
+ gid_t gid;
+ struct dom_sid sid;
+};
+
+static void winbindd_gid_to_sid_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_gid_to_sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_gid_to_sid_state *state;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_gid_to_sid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->ev = ev;
+
+ DEBUG(3, ("gid_to_sid %d\n", (int)request->data.gid));
+
+ subreq = wb_gid2sid_send(state, ev, request->data.gid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_gid_to_sid_done, req);
+ return req;
+}
+
+static void winbindd_gid_to_sid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_gid_to_sid_state *state = tevent_req_data(
+ req, struct winbindd_gid_to_sid_state);
+ NTSTATUS status;
+
+ status = wb_gid2sid_recv(subreq, &state->sid);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_gid_to_sid_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_gid_to_sid_state *state = tevent_req_data(
+ req, struct winbindd_gid_to_sid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not convert sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+ sid_to_fstring(response->data.sid.sid, &state->sid);
+ response->data.sid.type = SID_NAME_USER;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_group.c b/source3/winbindd/winbindd_group.c
index f78becb699..c1a898d73b 100644
--- a/source3/winbindd/winbindd_group.c
+++ b/source3/winbindd/winbindd_group.c
@@ -1559,178 +1559,6 @@ struct getgroups_state {
size_t num_token_gids;
};
-static void getgroups_usersid_recv(void *private_data, bool success,
- const DOM_SID *sid, enum lsa_SidType type);
-static void getgroups_tokensids_recv(void *private_data, bool success,
- DOM_SID *token_sids, size_t num_token_sids);
-static void getgroups_sid2gid_recv(void *private_data, bool success, gid_t gid);
-
-void winbindd_getgroups(struct winbindd_cli_state *state)
-{
- struct getgroups_state *s;
- char *real_name = NULL;
- NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
-
- /* Ensure null termination */
- state->request->data.username
- [sizeof(state->request->data.username)-1]='\0';
-
- DEBUG(3, ("[%5lu]: getgroups %s\n", (unsigned long)state->pid,
- state->request->data.username));
-
- /* Parse domain and username */
-
- s = TALLOC_P(state->mem_ctx, struct getgroups_state);
- if (s == NULL) {
- DEBUG(0, ("talloc failed\n"));
- request_error(state);
- return;
- }
-
- s->state = state;
-
- nt_status = normalize_name_unmap(state->mem_ctx,
- state->request->data.username,
- &real_name);
-
- /* Reset the real_name pointer if we didn't do anything
- productive in the above call */
- if (!NT_STATUS_IS_OK(nt_status) &&
- !NT_STATUS_EQUAL(nt_status, NT_STATUS_FILE_RENAMED))
- {
- real_name = state->request->data.username;
- }
-
- if (!parse_domain_user_talloc(state->mem_ctx, real_name,
- &s->domname, &s->username)) {
- DEBUG(5, ("Could not parse domain user: %s\n",
- real_name));
-
- /* error out if we do not have nested group support */
-
- if ( !lp_winbind_nested_groups() ) {
- request_error(state);
- return;
- }
-
- s->domname = talloc_strdup(state->mem_ctx,
- get_global_sam_name());
- s->username = talloc_strdup(state->mem_ctx,
- state->request->data.username);
- }
-
- /* Get info for the domain (either by short domain name or
- DNS name in the case of a UPN) */
-
- s->domain = find_domain_from_name_noinit(s->domname);
- if (!s->domain) {
- char *p = strchr(s->username, '@');
-
- if (p) {
- s->domain = find_domain_from_name_noinit(p+1);
- }
-
- }
-
- if (s->domain == NULL) {
- DEBUG(7, ("could not find domain entry for domain %s\n",
- s->domname));
- request_error(state);
- return;
- }
-
- if ( s->domain->primary && lp_winbind_trusted_domains_only()) {
- DEBUG(7,("winbindd_getgroups: My domain -- rejecting "
- "getgroups() for %s\\%s.\n", s->domname,
- s->username));
- request_error(state);
- return;
- }
-
- /* Get rid and name type from name. The following costs 1 packet */
-
- winbindd_lookupname_async(state->mem_ctx,
- s->domname, s->username,
- getgroups_usersid_recv,
- WINBINDD_GETGROUPS, s);
-}
-
-static void getgroups_usersid_recv(void *private_data, bool success,
- const DOM_SID *sid, enum lsa_SidType type)
-{
- struct getgroups_state *s =
- (struct getgroups_state *)private_data;
-
- if ((!success) ||
- ((type != SID_NAME_USER) && (type != SID_NAME_COMPUTER))) {
- request_error(s->state);
- return;
- }
-
- sid_copy(&s->user_sid, sid);
-
- winbindd_gettoken_async(s->state->mem_ctx, &s->user_sid,
- getgroups_tokensids_recv, s);
-}
-
-static void getgroups_tokensids_recv(void *private_data, bool success,
- DOM_SID *token_sids, size_t num_token_sids)
-{
- struct getgroups_state *s =
- (struct getgroups_state *)private_data;
-
- /* We need at least the user sid and the primary group in the token,
- * otherwise it's an error */
-
- if ((!success) || (num_token_sids < 2)) {
- request_error(s->state);
- return;
- }
-
- s->token_sids = token_sids;
- s->num_token_sids = num_token_sids;
- s->i = 0;
-
- s->token_gids = NULL;
- s->num_token_gids = 0;
-
- getgroups_sid2gid_recv(s, False, 0);
-}
-
-static void getgroups_sid2gid_recv(void *private_data, bool success, gid_t gid)
-{
- struct getgroups_state *s =
- (struct getgroups_state *)private_data;
-
- if (success) {
- if (!add_gid_to_array_unique(s->state->mem_ctx, gid,
- &s->token_gids,
- &s->num_token_gids)) {
- return;
- }
- }
-
- if (s->i < s->num_token_sids) {
- const DOM_SID *sid = &s->token_sids[s->i];
- s->i += 1;
-
- if (sid_equal(sid, &s->user_sid)) {
- getgroups_sid2gid_recv(s, False, 0);
- return;
- }
-
- winbindd_sid2gid_async(s->state->mem_ctx, sid,
- getgroups_sid2gid_recv, s);
- return;
- }
-
- s->state->response->data.num_entries = s->num_token_gids;
- if (s->num_token_gids) {
- s->state->response->extra_data.data = s->token_gids;
- s->state->response->length += s->num_token_gids * sizeof(gid_t);
- }
- request_ok(s->state);
-}
/* Get user supplementary sids. This is equivalent to the
winbindd_getgroups() function but it involves a SID->SIDs mapping
@@ -1815,32 +1643,6 @@ static void getusersids_recv(void *private_data, bool success, DOM_SID *sids,
request_ok(state);
}
-void winbindd_getuserdomgroups(struct winbindd_cli_state *state)
-{
- DOM_SID user_sid;
- struct winbindd_domain *domain;
-
- /* Ensure null termination */
- state->request->data.sid[sizeof(state->request->data.sid)-1]='\0';
-
- if (!string_to_sid(&user_sid, state->request->data.sid)) {
- DEBUG(1, ("Could not get convert sid %s from string\n",
- state->request->data.sid));
- request_error(state);
- return;
- }
-
- /* Get info for the domain */
- if ((domain = find_domain_from_sid_noinit(&user_sid)) == NULL) {
- DEBUG(0,("could not find domain entry for sid %s\n",
- sid_string_dbg(&user_sid)));
- request_error(state);
- return;
- }
-
- sendto_domain(state, domain);
-}
-
enum winbindd_result winbindd_dual_getuserdomgroups(struct winbindd_domain *domain,
struct winbindd_cli_state *state)
{
@@ -1887,32 +1689,6 @@ enum winbindd_result winbindd_dual_getuserdomgroups(struct winbindd_domain *doma
return WINBINDD_OK;
}
-void winbindd_getsidaliases(struct winbindd_cli_state *state)
-{
- DOM_SID domain_sid;
- struct winbindd_domain *domain;
-
- /* Ensure null termination */
- state->request->data.sid[sizeof(state->request->data.sid)-1]='\0';
-
- if (!string_to_sid(&domain_sid, state->request->data.sid)) {
- DEBUG(1, ("Could not get convert sid %s from string\n",
- state->request->data.sid));
- request_error(state);
- return;
- }
-
- /* Get info for the domain */
- if ((domain = find_domain_from_sid_noinit(&domain_sid)) == NULL) {
- DEBUG(0,("could not find domain entry for sid %s\n",
- sid_string_dbg(&domain_sid)));
- request_error(state);
- return;
- }
-
- sendto_domain(state, domain);
-}
-
enum winbindd_result winbindd_dual_getsidaliases(struct winbindd_domain *domain,
struct winbindd_cli_state *state)
{
diff --git a/source3/winbindd/winbindd_idmap.c b/source3/winbindd/winbindd_idmap.c
index 6e24a9c212..7bcc58a014 100644
--- a/source3/winbindd/winbindd_idmap.c
+++ b/source3/winbindd/winbindd_idmap.c
@@ -565,6 +565,10 @@ static const struct winbindd_child_dispatch_table idmap_dispatch_table[] = {
.struct_cmd = WINBINDD_ALLOCATE_GID,
.struct_fn = winbindd_dual_allocate_gid,
},{
+ .name = "NDRCMD",
+ .struct_cmd = WINBINDD_DUAL_NDRCMD,
+ .struct_fn = winbindd_dual_ndrcmd,
+ },{
.name = NULL,
}
};
diff --git a/source3/winbindd/winbindd_locator.c b/source3/winbindd/winbindd_locator.c
index 43dadfae29..b35d8dcf54 100644
--- a/source3/winbindd/winbindd_locator.c
+++ b/source3/winbindd/winbindd_locator.c
@@ -165,6 +165,10 @@ static const struct winbindd_child_dispatch_table locator_dispatch_table[] = {
.struct_cmd = WINBINDD_DSGETDCNAME,
.struct_fn = dual_dsgetdcname,
},{
+ .name = "NDRCMD",
+ .struct_cmd = WINBINDD_DUAL_NDRCMD,
+ .struct_fn = winbindd_dual_ndrcmd,
+ },{
.name = NULL,
}
};
diff --git a/source3/winbindd/winbindd_lookupname.c b/source3/winbindd/winbindd_lookupname.c
new file mode 100644
index 0000000000..0918076717
--- /dev/null
+++ b/source3/winbindd/winbindd_lookupname.c
@@ -0,0 +1,110 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_GETPWNAM
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_lookupname_state {
+ struct tevent_context *ev;
+ struct dom_sid sid;
+ enum lsa_SidType type;
+};
+
+static void winbindd_lookupname_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_lookupname_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_lookupname_state *state;
+ char *domname, *name, *p;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_lookupname_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->ev = ev;
+
+ /* Ensure null termination */
+ request->data.name.dom_name[
+ sizeof(request->data.name.dom_name)-1]='\0';
+ request->data.name.name[sizeof(request->data.name.name)-1]='\0';
+
+ /* cope with the name being a fully qualified name */
+ p = strstr(request->data.name.name, lp_winbind_separator());
+ if (p) {
+ *p = 0;
+ domname = request->data.name.name;
+ name = p+1;
+ } else if ((p = strchr(request->data.name.name, '@')) != NULL) {
+ /* upn */
+ domname = p + 1;
+ *p = 0;
+ name = request->data.name.name;
+ } else {
+ domname = request->data.name.dom_name;
+ name = request->data.name.name;
+ }
+
+ DEBUG(3, ("lookupname %s%s%s\n", domname, lp_winbind_separator(),
+ name));
+
+ subreq = wb_lookupname_send(state, ev, domname, name, 0);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_lookupname_done, req);
+ return req;
+}
+
+static void winbindd_lookupname_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_lookupname_state *state = tevent_req_data(
+ req, struct winbindd_lookupname_state);
+ NTSTATUS status;
+
+ status = wb_lookupname_recv(subreq, &state->sid, &state->type);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_lookupname_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_lookupname_state *state = tevent_req_data(
+ req, struct winbindd_lookupname_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not convert sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+ sid_to_fstring(response->data.sid.sid, &state->sid);
+ response->data.sid.type = state->type;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_lookupsid.c b/source3/winbindd/winbindd_lookupsid.c
new file mode 100644
index 0000000000..7647f1d682
--- /dev/null
+++ b/source3/winbindd/winbindd_lookupsid.c
@@ -0,0 +1,101 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_GETPWNAM
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_lookupsid_state {
+ struct tevent_context *ev;
+ struct dom_sid sid;
+ enum lsa_SidType type;
+ const char *domname;
+ const char *name;
+};
+
+static void winbindd_lookupsid_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_lookupsid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_lookupsid_state *state;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_lookupsid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->ev = ev;
+
+ /* Ensure null termination */
+ request->data.sid[sizeof(request->data.sid)-1]='\0';
+
+ DEBUG(3, ("lookupsid %s\n", request->data.sid));
+
+ if (!string_to_sid(&state->sid, request->data.sid)) {
+ DEBUG(5, ("%s not a SID\n", request->data.sid));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);;
+ }
+
+ subreq = wb_lookupsid_send(state, ev, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_lookupsid_done, req);
+ return req;
+}
+
+static void winbindd_lookupsid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_lookupsid_state *state = tevent_req_data(
+ req, struct winbindd_lookupsid_state);
+ NTSTATUS status;
+
+ status = wb_lookupsid_recv(subreq, state, &state->type,
+ &state->domname, &state->name);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_lookupsid_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_lookupsid_state *state = tevent_req_data(
+ req, struct winbindd_lookupsid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not lookup sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+
+ fstrcpy(response->data.name.dom_name, state->domname);
+ fstrcpy(response->data.name.name, state->name);
+ response->data.name.type = state->type;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_misc.c b/source3/winbindd/winbindd_misc.c
index 3f71910023..c6608316d1 100644
--- a/source3/winbindd/winbindd_misc.c
+++ b/source3/winbindd/winbindd_misc.c
@@ -741,12 +741,6 @@ static void domain_info_done(struct tevent_req *req)
request_ok(state->cli);
}
-void winbindd_ping(struct winbindd_cli_state *state)
-{
- DEBUG(3, ("[%5lu]: ping\n", (unsigned long)state->pid));
- request_ok(state);
-}
-
/* List various tidbits of information */
void winbindd_info(struct winbindd_cli_state *state)
diff --git a/source3/winbindd/winbindd_proto.h b/source3/winbindd/winbindd_proto.h
index c9decf8cc4..a9a374a532 100644
--- a/source3/winbindd/winbindd_proto.h
+++ b/source3/winbindd/winbindd_proto.h
@@ -100,7 +100,7 @@ enum winbindd_result winbindd_dual_list_groups(struct winbindd_domain *domain,
struct winbindd_cli_state *state);
bool print_sidlist(TALLOC_CTX *mem_ctx, const DOM_SID *sids,
size_t num_sids, char **result, ssize_t *len);
-bool parse_sidlist(TALLOC_CTX *mem_ctx, char *sidstr,
+bool parse_sidlist(TALLOC_CTX *mem_ctx, const char *sidstr,
DOM_SID **sids, size_t *num_sids);
enum winbindd_result winbindd_dual_lookuprids(struct winbindd_domain *domain,
struct winbindd_cli_state *state);
@@ -149,6 +149,12 @@ bool wcache_invalidate_cache(void);
bool init_wcache(void);
bool initialize_winbindd_cache(void);
void close_winbindd_cache(void);
+NTSTATUS wcache_sid_to_name(struct winbindd_domain *domain,
+ const struct dom_sid *sid,
+ TALLOC_CTX *mem_ctx,
+ char **domain_name,
+ char **name,
+ enum lsa_SidType *type);
bool lookup_cached_sid(TALLOC_CTX *mem_ctx, const DOM_SID *sid,
char **domain_name, char **name,
enum lsa_SidType *type);
@@ -160,6 +166,25 @@ bool lookup_cached_name(TALLOC_CTX *mem_ctx,
void cache_name2sid(struct winbindd_domain *domain,
const char *domain_name, const char *name,
enum lsa_SidType type, const DOM_SID *sid);
+NTSTATUS wcache_name_to_sid(struct winbindd_domain *domain,
+ const char *domain_name,
+ const char *name,
+ struct dom_sid *sid,
+ enum lsa_SidType *type);
+NTSTATUS wcache_query_user(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ const struct dom_sid *user_sid,
+ struct winbind_userinfo *info);
+NTSTATUS wcache_lookup_useraliases(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ uint32 num_sids, const DOM_SID *sids,
+ uint32 *pnum_aliases, uint32 **paliases);
+NTSTATUS wcache_lookup_usergroups(struct winbindd_domain *domain,
+ TALLOC_CTX *mem_ctx,
+ const struct dom_sid *user_sid,
+ uint32_t *pnum_sids,
+ struct dom_sid **psids);
+
void wcache_flush_cache(void);
NTSTATUS wcache_count_cached_creds(struct winbindd_domain *domain, int *count);
NTSTATUS wcache_remove_oldest_cached_creds(struct winbindd_domain *domain, const DOM_SID *sid) ;
@@ -330,6 +355,7 @@ void winbind_msg_dump_domain_list(struct messaging_context *msg_ctx,
struct server_id server_id,
DATA_BLOB *data);
bool winbindd_reinit_after_fork(const char *logfilename);
+struct winbindd_domain *wb_child_domain(void);
/* The following definitions come from winbindd/winbindd_group.c */
@@ -492,6 +518,14 @@ enum winbindd_result winbindd_dual_allocate_gid(struct winbindd_domain *domain,
/* The following definitions come from winbindd/winbindd_user.c */
+bool fillup_pw_field(const char *lp_template,
+ const char *username,
+ const char *domname,
+ uid_t uid,
+ gid_t gid,
+ const char *in,
+ fstring out);
+
enum winbindd_result winbindd_dual_userinfo(struct winbindd_domain *domain,
struct winbindd_cli_state *state);
void winbindd_getpwnam(struct winbindd_cli_state *state);
@@ -594,4 +628,145 @@ NTSTATUS wb_ping_recv(struct tevent_req *req,
enum winbindd_result winbindd_dual_ping(struct winbindd_domain *domain,
struct winbindd_cli_state *state);
+struct rpc_pipe_client *wbint_rpccli_create(TALLOC_CTX *mem_ctx,
+ struct winbindd_child *child);
+enum winbindd_result winbindd_dual_ndrcmd(struct winbindd_domain *domain,
+ struct winbindd_cli_state *state);
+
+struct tevent_req *wb_lookupsid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *sid);
+NTSTATUS wb_lookupsid_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ enum lsa_SidType *type, const char **domain,
+ const char **name);
+
+struct tevent_req *winbindd_lookupsid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_lookupsid_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+
+struct tevent_req *wb_lookupname_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const char *dom_name, const char *name,
+ uint32_t flags);
+NTSTATUS wb_lookupname_recv(struct tevent_req *req, struct dom_sid *sid,
+ enum lsa_SidType *type);
+
+struct tevent_req *winbindd_lookupname_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_lookupname_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+
+struct tevent_req *wb_sid2uid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *sid);
+NTSTATUS wb_sid2uid_recv(struct tevent_req *req, uid_t *uid);
+
+struct tevent_req *winbindd_sid_to_uid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_sid_to_uid_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+
+struct tevent_req *wb_sid2gid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *sid);
+NTSTATUS wb_sid2gid_recv(struct tevent_req *req, gid_t *gid);
+
+struct tevent_req *winbindd_sid_to_gid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_sid_to_gid_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+
+struct tevent_req *wb_uid2sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ uid_t uid);
+NTSTATUS wb_uid2sid_recv(struct tevent_req *req, struct dom_sid *sid);
+
+struct tevent_req *winbindd_uid_to_sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_uid_to_sid_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+
+struct tevent_req *wb_gid2sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ gid_t gid);
+NTSTATUS wb_gid2sid_recv(struct tevent_req *req, struct dom_sid *sid);
+
+struct tevent_req *winbindd_gid_to_sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_gid_to_sid_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+
+struct tevent_req *wb_queryuser_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *user_sid);
+NTSTATUS wb_queryuser_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ struct winbind_userinfo **pinfo);
+
+struct tevent_req *wb_getpwsid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *user_sid,
+ struct winbindd_pw *pw);
+NTSTATUS wb_getpwsid_recv(struct tevent_req *req);
+
+struct tevent_req *winbindd_getpwsid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_getpwsid_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+
+struct tevent_req *winbindd_getpwnam_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_getpwnam_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+
+struct tevent_req *winbindd_getpwuid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_getpwuid_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+struct tevent_req *wb_lookupuseraliases_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_domain *domain,
+ int num_sids,
+ const struct dom_sid *sids);
+NTSTATUS wb_lookupuseraliases_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ uint32_t *num_aliases, uint32_t **aliases);
+struct tevent_req *winbindd_getsidaliases_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_getsidaliases_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+struct tevent_req *wb_lookupusergroups_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_domain *domain,
+ const struct dom_sid *sid);
+NTSTATUS wb_lookupusergroups_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ int *num_sids, struct dom_sid **sids);
+
+struct tevent_req *winbindd_getuserdomgroups_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_getuserdomgroups_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+struct tevent_req *wb_gettoken_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ const struct dom_sid *sid);
+NTSTATUS wb_gettoken_recv(struct tevent_req *req, TALLOC_CTX *mem_ctx,
+ int *num_sids, struct dom_sid **sids);
+struct tevent_req *winbindd_getgroups_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request);
+NTSTATUS winbindd_getgroups_recv(struct tevent_req *req,
+ struct winbindd_response *response);
+
+
+
#endif /* _WINBINDD_PROTO_H_ */
diff --git a/source3/winbindd/winbindd_sid.c b/source3/winbindd/winbindd_sid.c
index f8cf7db920..db000682ae 100644
--- a/source3/winbindd/winbindd_sid.c
+++ b/source3/winbindd/winbindd_sid.c
@@ -27,108 +27,6 @@
/* Convert a string */
-static void lookupsid_recv(void *private_data, bool success,
- const char *dom_name, const char *name,
- enum lsa_SidType type);
-
-void winbindd_lookupsid(struct winbindd_cli_state *state)
-{
- DOM_SID sid;
-
- /* Ensure null termination */
- state->request->data.sid[sizeof(state->request->data.sid)-1]='\0';
-
- DEBUG(3, ("[%5lu]: lookupsid %s\n", (unsigned long)state->pid,
- state->request->data.sid));
-
- if (!string_to_sid(&sid, state->request->data.sid)) {
- DEBUG(5, ("%s not a SID\n", state->request->data.sid));
- request_error(state);
- return;
- }
-
- winbindd_lookupsid_async(state->mem_ctx, &sid, lookupsid_recv, state);
-}
-
-static void lookupsid_recv(void *private_data, bool success,
- const char *dom_name, const char *name,
- enum lsa_SidType type)
-{
- struct winbindd_cli_state *state =
- talloc_get_type_abort(private_data, struct winbindd_cli_state);
-
- if (!success) {
- DEBUG(5, ("lookupsid returned an error\n"));
- request_error(state);
- return;
- }
-
- fstrcpy(state->response->data.name.dom_name, dom_name);
- fstrcpy(state->response->data.name.name, name);
- state->response->data.name.type = type;
- request_ok(state);
-}
-
-/**
- * Look up the SID for a qualified name.
- **/
-
-static void lookupname_recv(void *private_data, bool success,
- const DOM_SID *sid, enum lsa_SidType type);
-
-void winbindd_lookupname(struct winbindd_cli_state *state)
-{
- char *name_domain, *name_user;
- char *p;
-
- /* Ensure null termination */
- state->request->data.name.dom_name[sizeof(state->request->data.name.dom_name)-1]='\0';
-
- /* Ensure null termination */
- state->request->data.name.name[sizeof(state->request->data.name.name)-1]='\0';
-
- /* cope with the name being a fully qualified name */
- p = strstr(state->request->data.name.name, lp_winbind_separator());
- if (p) {
- *p = 0;
- name_domain = state->request->data.name.name;
- name_user = p+1;
- } else if ((p = strchr(state->request->data.name.name, '@')) != NULL) {
- /* upn */
- name_domain = p + 1;
- *p = 0;
- name_user = state->request->data.name.name;
- } else {
- name_domain = state->request->data.name.dom_name;
- name_user = state->request->data.name.name;
- }
-
- DEBUG(3, ("[%5lu]: lookupname %s%s%s\n", (unsigned long)state->pid,
- name_domain, lp_winbind_separator(), name_user));
-
- winbindd_lookupname_async(state->mem_ctx, name_domain, name_user,
- lookupname_recv, WINBINDD_LOOKUPNAME,
- state);
-}
-
-static void lookupname_recv(void *private_data, bool success,
- const DOM_SID *sid, enum lsa_SidType type)
-{
- struct winbindd_cli_state *state =
- talloc_get_type_abort(private_data, struct winbindd_cli_state);
-
- if (!success) {
- DEBUG(5, ("lookupname returned an error\n"));
- request_error(state);
- return;
- }
-
- sid_to_fstring(state->response->data.sid.sid, sid);
- state->response->data.sid.type = type;
- request_ok(state);
- return;
-}
-
void winbindd_lookuprids(struct winbindd_cli_state *state)
{
struct winbindd_domain *domain;
@@ -157,228 +55,6 @@ void winbindd_lookuprids(struct winbindd_cli_state *state)
sendto_domain(state, domain);
}
-/* Convert a sid to a uid. We assume we only have one rid attached to the
- sid. */
-
-static void sid2uid_recv(void *private_data, bool success, uid_t uid)
-{
- struct winbindd_cli_state *state =
- talloc_get_type_abort(private_data, struct winbindd_cli_state);
- struct dom_sid sid;
-
- string_to_sid(&sid, state->request->data.sid);
-
- if (!success) {
- DEBUG(5, ("Could not convert sid %s\n",
- state->request->data.sid));
- request_error(state);
- return;
- }
-
- state->response->data.uid = uid;
- request_ok(state);
-}
-
-static void sid2uid_lookupsid_recv( void *private_data, bool success,
- const char *domain_name,
- const char *name,
- enum lsa_SidType type)
-{
- struct winbindd_cli_state *state =
- talloc_get_type_abort(private_data, struct winbindd_cli_state);
- DOM_SID sid;
-
- if (!string_to_sid(&sid, state->request->data.sid)) {
- DEBUG(1, ("sid2uid_lookupsid_recv: Could not get convert sid "
- "%s from string\n", state->request->data.sid));
- request_error(state);
- return;
- }
-
- if (!success) {
- DEBUG(5, ("sid2uid_lookupsid_recv Could not convert get sid type for %s\n",
- state->request->data.sid));
- goto fail;
- }
-
- if ( (type!=SID_NAME_USER) && (type!=SID_NAME_COMPUTER) ) {
- DEBUG(5,("sid2uid_lookupsid_recv: Sid %s is not a user or a computer.\n",
- state->request->data.sid));
- goto fail;
- }
-
- /* always use the async interface (may block) */
- winbindd_sid2uid_async(state->mem_ctx, &sid, sid2uid_recv, state);
- return;
-
- fail:
- /*
- * We have to set the cache ourselves here, the child which is
- * normally responsible was not queried yet.
- */
- idmap_cache_set_sid2uid(&sid, -1);
- request_error(state);
- return;
-}
-
-void winbindd_sid_to_uid(struct winbindd_cli_state *state)
-{
- DOM_SID sid;
- uid_t uid;
- bool expired;
-
- /* Ensure null termination */
- state->request->data.sid[sizeof(state->request->data.sid)-1]='\0';
-
- DEBUG(3, ("[%5lu]: sid to uid %s\n", (unsigned long)state->pid,
- state->request->data.sid));
-
- if (!string_to_sid(&sid, state->request->data.sid)) {
- DEBUG(1, ("Could not get convert sid %s from string\n",
- state->request->data.sid));
- request_error(state);
- return;
- }
-
- if (idmap_cache_find_sid2uid(&sid, &uid, &expired)) {
- DEBUG(10, ("idmap_cache_find_sid2uid found %d%s\n",
- (int)uid, expired ? " (expired)": ""));
- if (expired && IS_DOMAIN_ONLINE(find_our_domain())) {
- DEBUG(10, ("revalidating expired entry\n"));
- goto backend;
- }
- if (uid == -1) {
- DEBUG(10, ("Returning negative cache entry\n"));
- request_error(state);
- return;
- }
- DEBUG(10, ("Returning positive cache entry\n"));
- state->response->data.uid = uid;
- request_ok(state);
- return;
- }
-
- /* Validate the SID as a user. Hopefully this will hit cache.
- Needed to prevent DoS by exhausting the uid allocation
- range from random SIDs. */
-
- backend:
- winbindd_lookupsid_async( state->mem_ctx, &sid, sid2uid_lookupsid_recv, state );
-}
-
-/* Convert a sid to a gid. We assume we only have one rid attached to the
- sid.*/
-
-static void sid2gid_recv(void *private_data, bool success, gid_t gid)
-{
- struct winbindd_cli_state *state =
- talloc_get_type_abort(private_data, struct winbindd_cli_state);
- struct dom_sid sid;
-
- string_to_sid(&sid, state->request->data.sid);
-
- if (!success) {
- DEBUG(5, ("Could not convert sid %s\n",
- state->request->data.sid));
- request_error(state);
- return;
- }
-
- state->response->data.gid = gid;
- request_ok(state);
-}
-
-static void sid2gid_lookupsid_recv( void *private_data, bool success,
- const char *domain_name,
- const char *name,
- enum lsa_SidType type)
-{
- struct winbindd_cli_state *state =
- talloc_get_type_abort(private_data, struct winbindd_cli_state);
- DOM_SID sid;
-
- if (!string_to_sid(&sid, state->request->data.sid)) {
- DEBUG(1, ("sid2gid_lookupsid_recv: Could not get convert sid "
- "%s from string\n", state->request->data.sid));
- request_error(state);
- return;
- }
-
- if (!success) {
- DEBUG(5, ("sid2gid_lookupsid_recv: Could not get sid type for %s\n",
- state->request->data.sid));
- goto fail;
- }
-
- if ( (type!=SID_NAME_DOM_GRP) &&
- (type!=SID_NAME_ALIAS) &&
- (type!=SID_NAME_WKN_GRP) )
- {
- DEBUG(5,("sid2gid_lookupsid_recv: Sid %s is not a group.\n",
- state->request->data.sid));
- goto fail;
- }
-
- /* always use the async interface (may block) */
- winbindd_sid2gid_async(state->mem_ctx, &sid, sid2gid_recv, state);
- return;
-
- fail:
- /*
- * We have to set the cache ourselves here, the child which is
- * normally responsible was not queried yet.
- */
- idmap_cache_set_sid2gid(&sid, -1);
- request_error(state);
- return;
-}
-
-void winbindd_sid_to_gid(struct winbindd_cli_state *state)
-{
- DOM_SID sid;
- gid_t gid;
- bool expired;
-
- /* Ensure null termination */
- state->request->data.sid[sizeof(state->request->data.sid)-1]='\0';
-
- DEBUG(3, ("[%5lu]: sid to gid %s\n", (unsigned long)state->pid,
- state->request->data.sid));
-
- if (!string_to_sid(&sid, state->request->data.sid)) {
- DEBUG(1, ("Could not get convert sid %s from string\n",
- state->request->data.sid));
- request_error(state);
- return;
- }
-
- if (idmap_cache_find_sid2gid(&sid, &gid, &expired)) {
- DEBUG(10, ("idmap_cache_find_sid2gid found %d%s\n",
- (int)gid, expired ? " (expired)": ""));
- if (expired && IS_DOMAIN_ONLINE(find_our_domain())) {
- DEBUG(10, ("revalidating expired entry\n"));
- goto backend;
- }
- if (gid == -1) {
- DEBUG(10, ("Returning negative cache entry\n"));
- request_error(state);
- return;
- }
- DEBUG(10, ("Returning positive cache entry\n"));
- state->response->data.gid = gid;
- request_ok(state);
- return;
- }
-
- /* Validate the SID as a group. Hopefully this will hit cache.
- Needed to prevent DoS by exhausting the uid allocation
- range from random SIDs. */
-
- backend:
- winbindd_lookupsid_async( state->mem_ctx, &sid, sid2gid_lookupsid_recv,
- state );
-}
-
static void set_mapping_recv(void *private_data, bool success)
{
struct winbindd_cli_state *state =
@@ -495,122 +171,6 @@ void winbindd_set_hwm(struct winbindd_cli_state *state)
winbindd_set_hwm_async(state->mem_ctx, &xid, set_hwm_recv, state);
}
-/* Convert a uid to a sid */
-
-static void uid2sid_recv(void *private_data, bool success, const char *sidstr)
-{
- struct winbindd_cli_state *state =
- (struct winbindd_cli_state *)private_data;
- struct dom_sid sid;
-
- if (!success || !string_to_sid(&sid, sidstr)) {
- ZERO_STRUCT(sid);
- idmap_cache_set_sid2uid(&sid, state->request->data.uid);
- request_error(state);
- return;
- }
-
- DEBUG(10,("uid2sid: uid %lu has sid %s\n",
- (unsigned long)(state->request->data.uid), sidstr));
-
- idmap_cache_set_sid2uid(&sid, state->request->data.uid);
- fstrcpy(state->response->data.sid.sid, sidstr);
- state->response->data.sid.type = SID_NAME_USER;
- request_ok(state);
- return;
-}
-
-void winbindd_uid_to_sid(struct winbindd_cli_state *state)
-{
- struct dom_sid sid;
- bool expired;
-
- DEBUG(3, ("[%5lu]: uid to sid %lu\n", (unsigned long)state->pid,
- (unsigned long)state->request->data.uid));
-
- if (idmap_cache_find_uid2sid(state->request->data.uid, &sid,
- &expired)) {
- DEBUG(10, ("idmap_cache_find_uid2sid found %d%s\n",
- (int)state->request->data.uid,
- expired ? " (expired)": ""));
- if (expired && IS_DOMAIN_ONLINE(find_our_domain())) {
- DEBUG(10, ("revalidating expired entry\n"));
- goto backend;
- }
- if (is_null_sid(&sid)) {
- DEBUG(10, ("Returning negative cache entry\n"));
- request_error(state);
- return;
- }
- DEBUG(10, ("Returning positive cache entry\n"));
- sid_to_fstring(state->response->data.sid.sid, &sid);
- request_ok(state);
- return;
- }
-
- /* always go via the async interface (may block) */
- backend:
- winbindd_uid2sid_async(state->mem_ctx, state->request->data.uid, uid2sid_recv, state);
-}
-
-/* Convert a gid to a sid */
-
-static void gid2sid_recv(void *private_data, bool success, const char *sidstr)
-{
- struct winbindd_cli_state *state =
- (struct winbindd_cli_state *)private_data;
- struct dom_sid sid;
-
- if (!success || !string_to_sid(&sid, sidstr)) {
- ZERO_STRUCT(sid);
- idmap_cache_set_sid2gid(&sid, state->request->data.gid);
- request_error(state);
- return;
- }
- DEBUG(10,("gid2sid: gid %lu has sid %s\n",
- (unsigned long)(state->request->data.gid), sidstr));
-
- idmap_cache_set_sid2gid(&sid, state->request->data.gid);
- fstrcpy(state->response->data.sid.sid, sidstr);
- state->response->data.sid.type = SID_NAME_DOM_GRP;
- request_ok(state);
- return;
-}
-
-
-void winbindd_gid_to_sid(struct winbindd_cli_state *state)
-{
- struct dom_sid sid;
- bool expired;
-
- DEBUG(3, ("[%5lu]: gid to sid %lu\n", (unsigned long)state->pid,
- (unsigned long)state->request->data.gid));
-
- if (idmap_cache_find_gid2sid(state->request->data.gid, &sid,
- &expired)) {
- DEBUG(10, ("idmap_cache_find_gid2sid found %d%s\n",
- (int)state->request->data.gid,
- expired ? " (expired)": ""));
- if (expired && IS_DOMAIN_ONLINE(find_our_domain())) {
- DEBUG(10, ("revalidating expired entry\n"));
- goto backend;
- }
- if (is_null_sid(&sid)) {
- DEBUG(10, ("Returning negative cache entry\n"));
- request_error(state);
- return;
- }
- DEBUG(10, ("Returning positive cache entry\n"));
- sid_to_fstring(state->response->data.sid.sid, &sid);
- request_ok(state);
- return;
- }
-
- /* always use async calls (may block) */
- backend:
- winbindd_gid2sid_async(state->mem_ctx, state->request->data.gid, gid2sid_recv, state);
-}
-
void winbindd_allocate_uid(struct winbindd_cli_state *state)
{
if ( !state->privileged ) {
diff --git a/source3/winbindd/winbindd_sid_to_gid.c b/source3/winbindd/winbindd_sid_to_gid.c
new file mode 100644
index 0000000000..323b44d7f9
--- /dev/null
+++ b/source3/winbindd/winbindd_sid_to_gid.c
@@ -0,0 +1,94 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_SID_TO_GID
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_sid_to_gid_state {
+ struct dom_sid sid;
+ gid_t gid;
+};
+
+static void winbindd_sid_to_gid_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_sid_to_gid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_sid_to_gid_state *state;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_sid_to_gid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ /* Ensure null termination */
+ request->data.sid[sizeof(request->data.sid)-1]='\0';
+
+ DEBUG(3, ("sid to gid %s\n", request->data.sid));
+
+ if (!string_to_sid(&state->sid, request->data.sid)) {
+ DEBUG(1, ("Could not get convert sid %s from string\n",
+ request->data.sid));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = wb_sid2gid_send(state, ev, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_sid_to_gid_done, req);
+ return req;
+}
+
+static void winbindd_sid_to_gid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_sid_to_gid_state *state = tevent_req_data(
+ req, struct winbindd_sid_to_gid_state);
+ NTSTATUS status;
+
+ status = wb_sid2gid_recv(subreq, &state->gid);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_sid_to_gid_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_sid_to_gid_state *state = tevent_req_data(
+ req, struct winbindd_sid_to_gid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not convert sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+ response->data.gid = state->gid;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_sid_to_uid.c b/source3/winbindd/winbindd_sid_to_uid.c
new file mode 100644
index 0000000000..a6ff6cbaf4
--- /dev/null
+++ b/source3/winbindd/winbindd_sid_to_uid.c
@@ -0,0 +1,94 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_SID_TO_UID
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_sid_to_uid_state {
+ struct dom_sid sid;
+ uid_t uid;
+};
+
+static void winbindd_sid_to_uid_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_sid_to_uid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_sid_to_uid_state *state;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_sid_to_uid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+
+ /* Ensure null termination */
+ request->data.sid[sizeof(request->data.sid)-1]='\0';
+
+ DEBUG(3, ("sid to uid %s\n", request->data.sid));
+
+ if (!string_to_sid(&state->sid, request->data.sid)) {
+ DEBUG(1, ("Could not get convert sid %s from string\n",
+ request->data.sid));
+ tevent_req_nterror(req, NT_STATUS_INVALID_PARAMETER);
+ return tevent_req_post(req, ev);
+ }
+
+ subreq = wb_sid2uid_send(state, ev, &state->sid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_sid_to_uid_done, req);
+ return req;
+}
+
+static void winbindd_sid_to_uid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_sid_to_uid_state *state = tevent_req_data(
+ req, struct winbindd_sid_to_uid_state);
+ NTSTATUS status;
+
+ status = wb_sid2uid_recv(subreq, &state->uid);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_sid_to_uid_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_sid_to_uid_state *state = tevent_req_data(
+ req, struct winbindd_sid_to_uid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not convert sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+ response->data.uid = state->uid;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_uid_to_sid.c b/source3/winbindd/winbindd_uid_to_sid.c
new file mode 100644
index 0000000000..151fffd296
--- /dev/null
+++ b/source3/winbindd/winbindd_uid_to_sid.c
@@ -0,0 +1,87 @@
+/*
+ Unix SMB/CIFS implementation.
+ async implementation of WINBINDD_UID_TO_SID
+ Copyright (C) Volker Lendecke 2009
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 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/>.
+*/
+
+#include "includes.h"
+#include "winbindd.h"
+
+struct winbindd_uid_to_sid_state {
+ struct tevent_context *ev;
+ uid_t uid;
+ struct dom_sid sid;
+};
+
+static void winbindd_uid_to_sid_done(struct tevent_req *subreq);
+
+struct tevent_req *winbindd_uid_to_sid_send(TALLOC_CTX *mem_ctx,
+ struct tevent_context *ev,
+ struct winbindd_request *request)
+{
+ struct tevent_req *req, *subreq;
+ struct winbindd_uid_to_sid_state *state;
+
+ req = tevent_req_create(mem_ctx, &state,
+ struct winbindd_uid_to_sid_state);
+ if (req == NULL) {
+ return NULL;
+ }
+ state->ev = ev;
+
+ DEBUG(3, ("uid_to_sid %d\n", (int)request->data.uid));
+
+ subreq = wb_uid2sid_send(state, ev, request->data.uid);
+ if (tevent_req_nomem(subreq, req)) {
+ return tevent_req_post(req, ev);
+ }
+ tevent_req_set_callback(subreq, winbindd_uid_to_sid_done, req);
+ return req;
+}
+
+static void winbindd_uid_to_sid_done(struct tevent_req *subreq)
+{
+ struct tevent_req *req = tevent_req_callback_data(
+ subreq, struct tevent_req);
+ struct winbindd_uid_to_sid_state *state = tevent_req_data(
+ req, struct winbindd_uid_to_sid_state);
+ NTSTATUS status;
+
+ status = wb_uid2sid_recv(subreq, &state->sid);
+ TALLOC_FREE(subreq);
+ if (!NT_STATUS_IS_OK(status)) {
+ tevent_req_nterror(req, status);
+ return;
+ }
+ tevent_req_done(req);
+}
+
+NTSTATUS winbindd_uid_to_sid_recv(struct tevent_req *req,
+ struct winbindd_response *response)
+{
+ struct winbindd_uid_to_sid_state *state = tevent_req_data(
+ req, struct winbindd_uid_to_sid_state);
+ NTSTATUS status;
+
+ if (tevent_req_is_nterror(req, &status)) {
+ DEBUG(5, ("Could not convert sid %s: %s\n",
+ sid_string_dbg(&state->sid), nt_errstr(status)));
+ return status;
+ }
+ sid_to_fstring(response->data.sid.sid, &state->sid);
+ response->data.sid.type = SID_NAME_USER;
+ return NT_STATUS_OK;
+}
diff --git a/source3/winbindd/winbindd_user.c b/source3/winbindd/winbindd_user.c
index c445ef0bdc..240b0f524f 100644
--- a/source3/winbindd/winbindd_user.c
+++ b/source3/winbindd/winbindd_user.c
@@ -27,7 +27,7 @@
#undef DBGC_CLASS
#define DBGC_CLASS DBGC_WINBIND
-static bool fillup_pw_field(const char *lp_template,
+bool fillup_pw_field(const char *lp_template,
const char *username,
const char *domname,
uid_t uid,
@@ -195,386 +195,6 @@ enum winbindd_result winbindd_dual_userinfo(struct winbindd_domain *domain,
return WINBINDD_OK;
}
-struct getpwsid_state {
- struct winbindd_cli_state *state;
- struct winbindd_domain *domain;
- char *username;
- char *fullname;
- char *homedir;
- char *shell;
- DOM_SID user_sid;
- uid_t uid;
- DOM_SID group_sid;
- gid_t gid;
- bool username_mapped;
-};
-
-static void getpwsid_queryuser_recv(void *private_data, bool success,
- const char *acct_name,
- const char *full_name,
- const char *homedir,
- const char *shell,
- gid_t gid,
- uint32 group_rid);
-static void getpwsid_sid2uid_recv(void *private_data, bool success, uid_t uid);
-static void getpwsid_sid2gid_recv(void *private_data, bool success, gid_t gid);
-
-static void getpwsid_queryuser(struct winbindd_cli_state *state,
- const DOM_SID *sid)
-{
- struct getpwsid_state *s;
-
- s = TALLOC_ZERO_P(state->mem_ctx, struct getpwsid_state);
- if (s == NULL) {
- DEBUG(0, ("talloc failed\n"));
- goto error;
- }
-
- s->state = state;
- s->domain = find_domain_from_sid_noinit(sid);
- if (s->domain == NULL) {
- DEBUG(3, ("Could not find domain for sid %s\n",
- sid_string_dbg(sid)));
- goto error;
- }
-
- sid_copy(&s->user_sid, sid);
-
- query_user_async(s->state->mem_ctx, s->domain, sid,
- getpwsid_queryuser_recv, s);
- return;
-
- error:
- request_error(state);
-}
-
-static void getpwsid_queryuser_recv(void *private_data, bool success,
- const char *acct_name,
- const char *full_name,
- const char *homedir,
- const char *shell,
- gid_t gid,
- uint32 group_rid)
-{
- fstring username;
- struct getpwsid_state *s =
- talloc_get_type_abort(private_data, struct getpwsid_state);
- char *mapped_name;
- NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
-
- if (!success) {
- DEBUG(5, ("Could not query domain %s SID %s\n",
- s->domain->name, sid_string_dbg(&s->user_sid)));
- request_error(s->state);
- return;
- }
-
- if ( acct_name && *acct_name ) {
- fstrcpy( username, acct_name );
- } else {
- char *domain_name = NULL;
- enum lsa_SidType type;
- char *user_name = NULL;
- struct winbindd_domain *domain = NULL;
-
- domain = find_lookup_domain_from_sid(&s->user_sid);
- if (domain == NULL) {
- DEBUG(5, ("find_lookup_domain_from_sid(%s) failed\n",
- sid_string_dbg(&s->user_sid)));
- request_error(s->state);
- return;
- }
- winbindd_lookup_name_by_sid(s->state->mem_ctx, domain,
- &s->user_sid, &domain_name,
- &user_name, &type );
-
- /* If this still fails we are done. Just error out */
- if ( !user_name ) {
- DEBUG(5,("Could not obtain a name for SID %s\n",
- sid_string_dbg(&s->user_sid)));
- request_error(s->state);
- return;
- }
-
- fstrcpy( username, user_name );
- }
-
- strlower_m( username );
- s->username = talloc_strdup(s->state->mem_ctx, username);
-
- nt_status = normalize_name_map(s->state->mem_ctx, s->domain,
- s->username, &mapped_name);
-
- /* Basic removal of whitespace */
- if (NT_STATUS_IS_OK(nt_status)) {
- s->username = mapped_name;
- s->username_mapped = false;
- }
- /* Complete name replacement */
- else if (NT_STATUS_EQUAL(nt_status, NT_STATUS_FILE_RENAMED)) {
- s->username = mapped_name;
- s->username_mapped = true;
- }
- /* No change at all */
- else {
- s->username_mapped = false;
- }
-
- s->fullname = talloc_strdup(s->state->mem_ctx, full_name);
- s->homedir = talloc_strdup(s->state->mem_ctx, homedir);
- s->shell = talloc_strdup(s->state->mem_ctx, shell);
- s->gid = gid;
- sid_copy(&s->group_sid, &s->domain->sid);
- sid_append_rid(&s->group_sid, group_rid);
-
- winbindd_sid2uid_async(s->state->mem_ctx, &s->user_sid,
- getpwsid_sid2uid_recv, s);
-}
-
-static void getpwsid_sid2uid_recv(void *private_data, bool success, uid_t uid)
-{
- struct getpwsid_state *s =
- talloc_get_type_abort(private_data, struct getpwsid_state);
-
- if (!success) {
- DEBUG(5, ("Could not query uid for user %s\\%s\n",
- s->domain->name, s->username));
- request_error(s->state);
- return;
- }
-
- s->uid = uid;
- winbindd_sid2gid_async(s->state->mem_ctx, &s->group_sid,
- getpwsid_sid2gid_recv, s);
-}
-
-static void getpwsid_sid2gid_recv(void *private_data, bool success, gid_t gid)
-{
- struct getpwsid_state *s =
- talloc_get_type_abort(private_data, struct getpwsid_state);
- struct winbindd_pw *pw;
- fstring output_username;
-
- /* allow the nss backend to override the primary group ID.
- If the gid has already been set, then keep it.
- This makes me feel dirty. If the nss backend already
- gave us a gid, we don't really care whether the sid2gid()
- call worked or not. --jerry */
-
- if ( s->gid == (gid_t)-1 ) {
-
- if (!success) {
- DEBUG(5, ("Could not query gid for user %s\\%s\n",
- s->domain->name, s->username));
- goto failed;
- }
-
- /* take what the sid2gid() call gave us */
- s->gid = gid;
- }
-
- pw = &s->state->response->data.pw;
- pw->pw_uid = s->uid;
- pw->pw_gid = s->gid;
-
- /* allow username to be overridden by the alias mapping */
-
- if ( s->username_mapped ) {
- fstrcpy( output_username, s->username );
- } else {
- fill_domain_username(output_username, s->domain->name,
- s->username, True);
- }
-
- safe_strcpy(pw->pw_name, output_username, sizeof(pw->pw_name) - 1);
- safe_strcpy(pw->pw_gecos, s->fullname, sizeof(pw->pw_gecos) - 1);
-
- if (!fillup_pw_field(lp_template_homedir(), s->username,
- s->domain->name, pw->pw_uid, pw->pw_gid,
- s->homedir, pw->pw_dir)) {
- DEBUG(5, ("Could not compose homedir\n"));
- goto failed;
- }
-
- if (!fillup_pw_field(lp_template_shell(), s->username,
- s->domain->name, pw->pw_uid, pw->pw_gid,
- s->shell, pw->pw_shell)) {
- DEBUG(5, ("Could not compose shell\n"));
- goto failed;
- }
-
- /* Password - set to "*" as we can't generate anything useful here.
- Authentication can be done using the pam_winbind module. */
-
- safe_strcpy(pw->pw_passwd, "*", sizeof(pw->pw_passwd) - 1);
-
- request_ok(s->state);
- return;
-
- failed:
- request_error(s->state);
-}
-
-/* Return a password structure from a username. */
-
-static void getpwnam_name2sid_recv(void *private_data, bool success,
- const DOM_SID *sid, enum lsa_SidType type);
-
-void winbindd_getpwnam(struct winbindd_cli_state *state)
-{
- struct winbindd_domain *domain;
- fstring domname, username;
- char *mapped_user = NULL;
- char *domuser;
- NTSTATUS nt_status = NT_STATUS_UNSUCCESSFUL;
-
- domuser = state->request->data.username;
-
- /* Ensure null termination (it's an fstring) */
- domuser[sizeof(state->request->data.username)-1] = '\0';
-
- DEBUG(3, ("[%5lu]: getpwnam %s\n",
- (unsigned long)state->pid,
- domuser));
-
- nt_status = normalize_name_unmap(state->mem_ctx, domuser,
- &mapped_user);
-
- /* If we could not convert from an aliased name or a
- normalized name, then just use the original name */
-
- if (!NT_STATUS_IS_OK(nt_status) &&
- !NT_STATUS_EQUAL(nt_status, NT_STATUS_FILE_RENAMED))
- {
- mapped_user = domuser;
- }
-
- if (!parse_domain_user(mapped_user, domname, username)) {
- DEBUG(5, ("Could not parse domain user: %s\n", domuser));
- request_error(state);
- return;
- }
-
- /* Get info for the domain */
-
- domain = find_domain_from_name_noinit(domname);
-
- if (domain == NULL) {
- DEBUG(7, ("could not find domain entry for domain %s. "
- "Using primary domain\n", domname));
- domain = find_our_domain();
- if (domain == NULL) {
- DEBUG(0, ("Cannot find my primary domain "
- "structure!\n"));
- request_error(state);
- return;
- }
- }
-
- if (strequal(domname, lp_workgroup()) &&
- lp_winbind_trusted_domains_only() ) {
- DEBUG(7,("winbindd_getpwnam: My domain -- "
- "rejecting getpwnam() for %s\\%s.\n",
- domname, username));
- request_error(state);
- return;
- }
-
- /* Get rid and name type from name. The following costs 1 packet */
-
- winbindd_lookupname_async(state->mem_ctx, domname, username,
- getpwnam_name2sid_recv, WINBINDD_GETPWNAM,
- state);
-}
-
-static void getpwnam_name2sid_recv(void *private_data, bool success,
- const DOM_SID *sid, enum lsa_SidType type)
-{
- struct winbindd_cli_state *state =
- (struct winbindd_cli_state *)private_data;
- fstring domname, username;
- char *domuser = state->request->data.username;
-
- if (!success) {
- DEBUG(5, ("Could not lookup name for user %s\n", domuser));
- request_error(state);
- return;
- }
-
- if ((type != SID_NAME_USER) && (type != SID_NAME_COMPUTER)) {
- DEBUG(5, ("%s is not a user\n", domuser));
- request_error(state);
- return;
- }
-
- if (parse_domain_user(domuser, domname, username)) {
- check_domain_trusted(domname, sid);
- }
-
- getpwsid_queryuser(state, sid);
-}
-
-static void getpwuid_recv(void *private_data, bool success, const char *sid)
-{
- struct winbindd_cli_state *state =
- (struct winbindd_cli_state *)private_data;
- DOM_SID user_sid;
-
- if (!success) {
- DEBUG(10,("uid2sid_recv: uid [%lu] to sid mapping failed\n.",
- (unsigned long)(state->request->data.uid)));
- request_error(state);
- return;
- }
-
- DEBUG(10,("uid2sid_recv: uid %lu has sid %s\n",
- (unsigned long)(state->request->data.uid), sid));
-
- if (!string_to_sid(&user_sid, sid)) {
- DEBUG(1,("uid2sid_recv: Could not convert sid %s "
- "from string\n,", sid));
- request_error(state);
- return;
- }
-
- getpwsid_queryuser(state, &user_sid);
-}
-
-/* Return a password structure given a uid number */
-void winbindd_getpwuid(struct winbindd_cli_state *state)
-{
- uid_t uid = state->request->data.uid;
-
- DEBUG(3, ("[%5lu]: getpwuid %lu\n",
- (unsigned long)state->pid,
- (unsigned long)uid));
-
- /* always query idmap via the async interface */
- /* if this turns to be too slow we will add here
- * a direct query to the cache */
- winbindd_uid2sid_async(state->mem_ctx, uid, getpwuid_recv, state);
-}
-
-/* Return a password structure given a sid */
-void winbindd_getpwsid(struct winbindd_cli_state *state)
-{
- DOM_SID sid;
-
- /* Ensure null termination */
- state->request->data.sid[sizeof(state->request->data.sid)-1]='\0';
-
- DEBUG(3, ("[%5lu]: getpwsid %s\n", (unsigned long)state->pid,
- state->request->data.sid));
-
- if (!string_to_sid(&sid, state->request->data.sid)) {
- DEBUG(5, ("%s not a SID\n", state->request->data.sid));
- request_error(state);
- return;
- }
-
- getpwsid_queryuser(state, &sid);
-}
-
/*
* set/get/endpwent functions
*/
diff --git a/source4/dsdb/samdb/ldb_modules/samldb.c b/source4/dsdb/samdb/ldb_modules/samldb.c
index 544249cbe3..037d5c9e67 100644
--- a/source4/dsdb/samdb/ldb_modules/samldb.c
+++ b/source4/dsdb/samdb/ldb_modules/samldb.c
@@ -244,10 +244,6 @@ static int samldb_search_template(struct samldb_ctx *ac)
return LDB_ERR_OPERATIONS_ERROR;
}
- if (!talloc_reference(templates_ldb, ev)) {
- return LDB_ERR_OPERATIONS_ERROR;
- }
-
ret = ldb_set_opaque(ldb,
"templates_ldb", templates_ldb);
if (ret != LDB_SUCCESS) {
diff --git a/source4/dsdb/schema/schema_set.c b/source4/dsdb/schema/schema_set.c
index 5ded04e9da..5d78d0a0c6 100644
--- a/source4/dsdb/schema/schema_set.c
+++ b/source4/dsdb/schema/schema_set.c
@@ -437,7 +437,8 @@ void dsdb_make_schema_global(struct ldb_context *ldb)
}
/* we want the schema to be around permanently */
- talloc_reference(talloc_autofree_context(), schema);
+ talloc_reparent(talloc_parent(schema), talloc_autofree_context(), schema);
+
global_schema = schema;
dsdb_set_global_schema(ldb);
diff --git a/source4/heimdal/kuser/kinit.c b/source4/heimdal/kuser/kinit.c
index 350988dbac..4208fa83e0 100644
--- a/source4/heimdal/kuser/kinit.c
+++ b/source4/heimdal/kuser/kinit.c
@@ -768,10 +768,8 @@ main (int argc, char **argv)
setprogname (argv[0]);
setlocale (LC_ALL, "");
-#if defined(HEIMDAL_LOCALEDIR)
bindtextdomain ("heimdal_kuser", HEIMDAL_LOCALEDIR);
textdomain("heimdal_kuser");
-#endif
ret = krb5_init_context (&context);
if (ret == KRB5_CONFIG_BADFORMAT)
diff --git a/source4/heimdal/kuser/kuser_locl.h b/source4/heimdal/kuser/kuser_locl.h
index eafffe9bff..1bf682b1d0 100644
--- a/source4/heimdal/kuser/kuser_locl.h
+++ b/source4/heimdal/kuser/kuser_locl.h
@@ -88,7 +88,7 @@
#include <locale.h>
#endif
-#ifdef HAVE_LIBINTL_H
+#ifdef LIBINTL
#include <libintl.h>
#define N_(x,y) gettext(x)
#define NP_(x,y) (x)
diff --git a/source4/heimdal/lib/gssapi/krb5/cfx.c b/source4/heimdal/lib/gssapi/krb5/cfx.c
index 35e5a9e45a..7cc7ee1e74 100755
--- a/source4/heimdal/lib/gssapi/krb5/cfx.c
+++ b/source4/heimdal/lib/gssapi/krb5/cfx.c
@@ -41,10 +41,10 @@
#define CFXAcceptorSubkey (1 << 2)
krb5_error_code
-_gsskrb5cfx_wrap_length_cfx(const gsskrb5_ctx context_handle,
- krb5_context context,
+_gsskrb5cfx_wrap_length_cfx(krb5_context context,
krb5_crypto crypto,
int conf_req_flag,
+ int dce_style,
size_t input_length,
size_t *output_length,
size_t *cksumsize,
@@ -71,7 +71,7 @@ _gsskrb5cfx_wrap_length_cfx(const gsskrb5_ctx context_handle,
/* Header is concatenated with data before encryption */
input_length += sizeof(gss_cfx_wrap_token_desc);
- if (IS_DCE_STYLE(context_handle)) {
+ if (dce_style) {
ret = krb5_crypto_getblocksize(context, crypto, &padsize);
} else {
ret = krb5_crypto_getpadsize(context, crypto, &padsize);
@@ -972,8 +972,9 @@ OM_uint32 _gssapi_wrap_cfx(OM_uint32 *minor_status,
int32_t seq_number;
u_char *p;
- ret = _gsskrb5cfx_wrap_length_cfx(ctx, context,
+ ret = _gsskrb5cfx_wrap_length_cfx(context,
ctx->crypto, conf_req_flag,
+ IS_DCE_STYLE(ctx),
input_message_buffer->length,
&wrapped_len, &cksumsize, &padlength);
if (ret != 0) {
diff --git a/source4/heimdal/lib/hcrypto/aes.c b/source4/heimdal/lib/hcrypto/aes.c
index bc9c9ca074..b3049c165a 100644
--- a/source4/heimdal/lib/hcrypto/aes.c
+++ b/source4/heimdal/lib/hcrypto/aes.c
@@ -31,11 +31,8 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-RCSID("$Id$");
-#endif
#ifdef KRB5
#include <krb5-types.h>
diff --git a/source4/heimdal/lib/hcrypto/bn.c b/source4/heimdal/lib/hcrypto/bn.c
index 179595ae5c..545d9529d3 100644
--- a/source4/heimdal/lib/hcrypto/bn.c
+++ b/source4/heimdal/lib/hcrypto/bn.c
@@ -31,11 +31,8 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/des.c b/source4/heimdal/lib/hcrypto/des.c
index 5e258dfbcc..7dc4823b59 100644
--- a/source4/heimdal/lib/hcrypto/des.c
+++ b/source4/heimdal/lib/hcrypto/des.c
@@ -82,10 +82,7 @@
* thanks to his work. Thank you Richard.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-RCSID("$Id$");
-#endif
#define HC_DEPRECATED
diff --git a/source4/heimdal/lib/hcrypto/dh-imath.c b/source4/heimdal/lib/hcrypto/dh-imath.c
index 4725281d19..822d5a328b 100644
--- a/source4/heimdal/lib/hcrypto/dh-imath.c
+++ b/source4/heimdal/lib/hcrypto/dh-imath.c
@@ -43,8 +43,6 @@
#include "imath/imath.h"
-RCSID("$Id$");
-
static void
BN2mpz(mpz_t *s, const BIGNUM *bn)
{
diff --git a/source4/heimdal/lib/hcrypto/dh.c b/source4/heimdal/lib/hcrypto/dh.c
index b0299395a2..d42ac34fd2 100644
--- a/source4/heimdal/lib/hcrypto/dh.c
+++ b/source4/heimdal/lib/hcrypto/dh.c
@@ -35,8 +35,6 @@
#include <config.h>
#endif
-RCSID("$Id$");
-
#include <stdio.h>
#include <stdlib.h>
#include <dh.h>
diff --git a/source4/heimdal/lib/hcrypto/dsa.c b/source4/heimdal/lib/hcrypto/dsa.c
index 6606a5e7c1..a5bdbabad1 100644
--- a/source4/heimdal/lib/hcrypto/dsa.c
+++ b/source4/heimdal/lib/hcrypto/dsa.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/engine.c b/source4/heimdal/lib/hcrypto/engine.c
index 61d5f93825..8066d59cf8 100644
--- a/source4/heimdal/lib/hcrypto/engine.c
+++ b/source4/heimdal/lib/hcrypto/engine.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/evp-hcrypto.c b/source4/heimdal/lib/hcrypto/evp-hcrypto.c
index 6897385619..d176e2edfa 100644
--- a/source4/heimdal/lib/hcrypto/evp-hcrypto.c
+++ b/source4/heimdal/lib/hcrypto/evp-hcrypto.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#define HC_DEPRECATED
diff --git a/source4/heimdal/lib/hcrypto/md2.c b/source4/heimdal/lib/hcrypto/md2.c
index e82169c705..26254acee5 100644
--- a/source4/heimdal/lib/hcrypto/md2.c
+++ b/source4/heimdal/lib/hcrypto/md2.c
@@ -31,12 +31,8 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-RCSID("$Id$");
-#endif
-
#include "hash.h"
#include "md2.h"
diff --git a/source4/heimdal/lib/hcrypto/md4.c b/source4/heimdal/lib/hcrypto/md4.c
index 56e2ac97c6..435e662a42 100644
--- a/source4/heimdal/lib/hcrypto/md4.c
+++ b/source4/heimdal/lib/hcrypto/md4.c
@@ -31,12 +31,8 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-RCSID("$Id$");
-#endif
-
#include "hash.h"
#include "md4.h"
diff --git a/source4/heimdal/lib/hcrypto/md5.c b/source4/heimdal/lib/hcrypto/md5.c
index ffc7bb9ec6..f99078737b 100644
--- a/source4/heimdal/lib/hcrypto/md5.c
+++ b/source4/heimdal/lib/hcrypto/md5.c
@@ -31,12 +31,8 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-RCSID("$Id$");
-#endif
-
#include "hash.h"
#include "md5.h"
diff --git a/source4/heimdal/lib/hcrypto/pkcs12.c b/source4/heimdal/lib/hcrypto/pkcs12.c
index 11afa0b68f..92a40fa69a 100644
--- a/source4/heimdal/lib/hcrypto/pkcs12.c
+++ b/source4/heimdal/lib/hcrypto/pkcs12.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/pkcs5.c b/source4/heimdal/lib/hcrypto/pkcs5.c
index 6537561e51..18045e236f 100644
--- a/source4/heimdal/lib/hcrypto/pkcs5.c
+++ b/source4/heimdal/lib/hcrypto/pkcs5.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#ifdef KRB5
#include <krb5-types.h>
diff --git a/source4/heimdal/lib/hcrypto/rand-egd.c b/source4/heimdal/lib/hcrypto/rand-egd.c
index 168c15114a..00d3286f24 100644
--- a/source4/heimdal/lib/hcrypto/rand-egd.c
+++ b/source4/heimdal/lib/hcrypto/rand-egd.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <sys/types.h>
#ifdef HAVE_SYS_UN_H
diff --git a/source4/heimdal/lib/hcrypto/rand-fortuna.c b/source4/heimdal/lib/hcrypto/rand-fortuna.c
index ebb4e6e180..c39c713901 100644
--- a/source4/heimdal/lib/hcrypto/rand-fortuna.c
+++ b/source4/heimdal/lib/hcrypto/rand-fortuna.c
@@ -29,11 +29,7 @@
* $PostgreSQL: pgsql/contrib/pgcrypto/fortuna.c,v 1.8 2006/10/04 00:29:46 momjian Exp $
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/rand-timer.c b/source4/heimdal/lib/hcrypto/rand-timer.c
index 86ff22c300..994c3210e9 100644
--- a/source4/heimdal/lib/hcrypto/rand-timer.c
+++ b/source4/heimdal/lib/hcrypto/rand-timer.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/rand-unix.c b/source4/heimdal/lib/hcrypto/rand-unix.c
index 07d81eb620..2bfa265fa4 100644
--- a/source4/heimdal/lib/hcrypto/rand-unix.c
+++ b/source4/heimdal/lib/hcrypto/rand-unix.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/rand.c b/source4/heimdal/lib/hcrypto/rand.c
index a61c9cdfb2..3cd65989c6 100644
--- a/source4/heimdal/lib/hcrypto/rand.c
+++ b/source4/heimdal/lib/hcrypto/rand.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/rc2.c b/source4/heimdal/lib/hcrypto/rc2.c
index 917914968c..dcfe42d02d 100644
--- a/source4/heimdal/lib/hcrypto/rc2.c
+++ b/source4/heimdal/lib/hcrypto/rc2.c
@@ -31,10 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-RCSID("$Id$");
-#endif
#include "rc2.h"
#include <stdio.h>
diff --git a/source4/heimdal/lib/hcrypto/rc4.c b/source4/heimdal/lib/hcrypto/rc4.c
index 9e696f78a2..81cf093e4d 100644
--- a/source4/heimdal/lib/hcrypto/rc4.c
+++ b/source4/heimdal/lib/hcrypto/rc4.c
@@ -33,12 +33,8 @@
/* implemented from description in draft-kaukonen-cipher-arcfour-03.txt */
-#ifdef HAVE_CONFIG_H
#include "config.h"
-RCSID("$Id$");
-#endif
-
#include <rc4.h>
#define SWAP(k,x,y) \
diff --git a/source4/heimdal/lib/hcrypto/rijndael-alg-fst.c b/source4/heimdal/lib/hcrypto/rijndael-alg-fst.c
index 57f13177df..3dd2555812 100644
--- a/source4/heimdal/lib/hcrypto/rijndael-alg-fst.c
+++ b/source4/heimdal/lib/hcrypto/rijndael-alg-fst.c
@@ -28,11 +28,8 @@
/* "$NetBSD: rijndael-alg-fst.c,v 1.5 2001/11/13 01:40:10 lukem Exp $" */
-#ifdef HAVE_CONFIG_H
#include "config.h"
-RCSID("$Id$");
-#endif
#ifdef KRB5
#include <krb5-types.h>
diff --git a/source4/heimdal/lib/hcrypto/rnd_keys.c b/source4/heimdal/lib/hcrypto/rnd_keys.c
index 94370513e2..9baf00212c 100644
--- a/source4/heimdal/lib/hcrypto/rnd_keys.c
+++ b/source4/heimdal/lib/hcrypto/rnd_keys.c
@@ -31,11 +31,8 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-RCSID("$Id$");
-#endif
#define HC_DEPRECATED
diff --git a/source4/heimdal/lib/hcrypto/rsa-imath.c b/source4/heimdal/lib/hcrypto/rsa-imath.c
index 5240279761..2641dc1bc4 100644
--- a/source4/heimdal/lib/hcrypto/rsa-imath.c
+++ b/source4/heimdal/lib/hcrypto/rsa-imath.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/rsa.c b/source4/heimdal/lib/hcrypto/rsa.c
index f3095e7d3d..9b9ecea674 100644
--- a/source4/heimdal/lib/hcrypto/rsa.c
+++ b/source4/heimdal/lib/hcrypto/rsa.c
@@ -31,11 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-#endif
-
-RCSID("$Id$");
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/hcrypto/sha.c b/source4/heimdal/lib/hcrypto/sha.c
index fd48672784..062f70509c 100644
--- a/source4/heimdal/lib/hcrypto/sha.c
+++ b/source4/heimdal/lib/hcrypto/sha.c
@@ -31,12 +31,8 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-RCSID("$Id$");
-#endif
-
#include "hash.h"
#include "sha.h"
diff --git a/source4/heimdal/lib/hcrypto/sha256.c b/source4/heimdal/lib/hcrypto/sha256.c
index 922fb055af..baa87d15ff 100644
--- a/source4/heimdal/lib/hcrypto/sha256.c
+++ b/source4/heimdal/lib/hcrypto/sha256.c
@@ -31,12 +31,8 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include "config.h"
-RCSID("$Id$");
-#endif
-
#include "hash.h"
#include "sha.h"
diff --git a/source4/heimdal/lib/hcrypto/ui.c b/source4/heimdal/lib/hcrypto/ui.c
index 91abf76371..ca8c8442b5 100644
--- a/source4/heimdal/lib/hcrypto/ui.c
+++ b/source4/heimdal/lib/hcrypto/ui.c
@@ -31,10 +31,7 @@
* SUCH DAMAGE.
*/
-#ifdef HAVE_CONFIG_H
#include <config.h>
-RCSID("$Id$");
-#endif
#include <stdio.h>
#include <stdlib.h>
diff --git a/source4/heimdal/lib/krb5/context.c b/source4/heimdal/lib/krb5/context.c
index fe94135030..9ece38e145 100644
--- a/source4/heimdal/lib/krb5/context.c
+++ b/source4/heimdal/lib/krb5/context.c
@@ -291,9 +291,7 @@ krb5_init_context(krb5_context *context)
*context = NULL;
/* should have a run_once */
-#if defined(HEIMDAL_LOCALEDIR)
bindtextdomain(HEIMDAL_TEXTDOMAIN, HEIMDAL_LOCALEDIR);
-#endif
p = calloc(1, sizeof(*p));
if(!p)
@@ -837,31 +835,21 @@ krb5_init_ets(krb5_context context)
{
if(context->et_list == NULL){
krb5_add_et_list(context, initialize_krb5_error_table_r);
-#if defined(HEIMDAL_LOCALEDIR)
bindtextdomain(COM_ERR_BINDDOMAIN_krb5, HEIMDAL_LOCALEDIR);
-#endif
krb5_add_et_list(context, initialize_asn1_error_table_r);
-#if defined(HEIMDAL_LOCALEDIR)
bindtextdomain(COM_ERR_BINDDOMAIN_asn1, HEIMDAL_LOCALEDIR);
-#endif
krb5_add_et_list(context, initialize_heim_error_table_r);
-#if defined(HEIMDAL_LOCALEDIR)
bindtextdomain(COM_ERR_BINDDOMAIN_heim, HEIMDAL_LOCALEDIR);
-#endif
krb5_add_et_list(context, initialize_k524_error_table_r);
-#if defined(HEIMDAL_LOCALEDIR)
bindtextdomain(COM_ERR_BINDDOMAIN_k524, HEIMDAL_LOCALEDIR);
-#endif
#ifdef PKINIT
krb5_add_et_list(context, initialize_hx_error_table_r);
-#if defined(HEIMDAL_LOCALEDIR)
bindtextdomain(COM_ERR_BINDDOMAIN_hx, HEIMDAL_LOCALEDIR);
#endif
-#endif
}
}
diff --git a/source4/heimdal/lib/krb5/krb5_locl.h b/source4/heimdal/lib/krb5/krb5_locl.h
index 2d8bc07de3..b56219cced 100644
--- a/source4/heimdal/lib/krb5/krb5_locl.h
+++ b/source4/heimdal/lib/krb5/krb5_locl.h
@@ -116,7 +116,7 @@ struct sockaddr_dl;
#define HEIMDAL_TEXTDOMAIN "heimdal_krb5"
-#ifdef HAVE_LIBINTL_H
+#ifdef LIBINTL
#include <libintl.h>
#define N_(x,y) dgettext(HEIMDAL_TEXTDOMAIN, x)
#else
diff --git a/source4/heimdal/lib/roken/vis.hin b/source4/heimdal/lib/roken/vis.hin
index 737b2eb8f6..a1481b789e 100644
--- a/source4/heimdal/lib/roken/vis.hin
+++ b/source4/heimdal/lib/roken/vis.hin
@@ -104,21 +104,45 @@ int ROKEN_LIB_FUNCTION
rk_unvis(char *, int, int *, int);
ROKEN_CPP_END
+#ifndef HAVE_VIS
#undef vis
#define vis(a,b,c,d) rk_vis(a,b,c,d)
+#endif
+
+#ifndef HAVE_SVIS
#undef svis
#define svis(a,b,c,d,e) rk_svis(a,b,c,d,e)
+#endif
+
+#ifndef HAVE_STRVIS
#undef strvis
#define strvis(a,b,c) rk_strvis(a,b,c)
+#endif
+
+#ifndef HAVE_STRSVIS
#undef strsvis
#define strsvis(a,b,c,d) rk_strsvis(a,b,c,d)
+#endif
+
+#ifndef HAVE_STRVISX
#undef strvisx
#define strvisx(a,b,c,d) rk_strvisx(a,b,c,d)
+#endif
+
+#ifndef HAVE_STRSVISX
#undef strsvisx
#define strsvisx(a,b,c,d,e) rk_strsvisx(a,b,c,d,e)
+#endif
+
+#ifndef HAVE_STRUNVIS
#undef strunvis
#define strunvis(a,b) rk_strunvis(a,b)
+#endif
+
+
+#ifndef HAVE_UNVIS
#undef unvis
#define unvis(a,b,c,d) rk_unvis(a,b,c,d)
+#endif
#endif /* !_VIS_H_ */
diff --git a/source4/heimdal_build/roken.h b/source4/heimdal_build/roken.h
index 87060cff17..ea9103e15d 100644
--- a/source4/heimdal_build/roken.h
+++ b/source4/heimdal_build/roken.h
@@ -10,6 +10,7 @@
/* HDB module dir - set to Samba LIBDIR/hdb ? */
#define HDBDIR "/usr/heimdal/lib"
#define LIBDIR "/usr/heimdal/lib"
+#define HEIMDAL_LOCALEDIR "/usr/heimdal/locale"
/* Maximum values on all known systems */
#define MaxHostNameLen (64+4)
diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c
index 72431e9669..b119620339 100644
--- a/source4/ldap_server/ldap_server.c
+++ b/source4/ldap_server/ldap_server.c
@@ -51,6 +51,7 @@ void ldapsrv_terminate_connection(struct ldapsrv_connection *conn,
{
packet_recv_disable(conn->packet);
TALLOC_FREE(conn->packet);
+ TALLOC_FREE(conn->sockets.tls);
stream_terminate_connection(conn->connection, reason);
}
diff --git a/source4/lib/ldb/common/attrib_handlers.c b/source4/lib/ldb/common/attrib_handlers.c
index 9cb9ff886c..3ea9857d52 100644
--- a/source4/lib/ldb/common/attrib_handlers.c
+++ b/source4/lib/ldb/common/attrib_handlers.c
@@ -187,13 +187,13 @@ int ldb_comparison_fold(struct ldb_context *ldb, void *mem_ctx,
{
const char *s1=(const char *)v1->data, *s2=(const char *)v2->data;
size_t n1 = v1->length, n2 = v2->length;
- const char *u1, *u2;
char *b1, *b2;
+ const char *u1, *u2;
int ret;
- while (*s1 == ' ' && n1) { s1++; n1--; };
- while (*s2 == ' ' && n2) { s2++; n2--; };
- /* TODO: make utf8 safe, possibly with helper function from application */
- while (*s1 && *s2 && n1 && n2) {
+ while (n1 && *s1 == ' ') { s1++; n1--; };
+ while (n2 && *s2 == ' ') { s2++; n2--; };
+
+ while (n1 && n2 && *s1 && *s2) {
/* the first 127 (0x7F) chars are ascii and utf8 guarantes they
* never appear in multibyte sequences */
if (((unsigned char)s1[0]) & 0x80) goto utf8str;
@@ -201,40 +201,58 @@ int ldb_comparison_fold(struct ldb_context *ldb, void *mem_ctx,
if (toupper((unsigned char)*s1) != toupper((unsigned char)*s2))
break;
if (*s1 == ' ') {
- while (s1[0] == s1[1] && n1) { s1++; n1--; }
- while (s2[0] == s2[1] && n2) { s2++; n2--; }
+ while (n1 && s1[0] == s1[1]) { s1++; n1--; }
+ while (n2 && s2[0] == s2[1]) { s2++; n2--; }
}
s1++; s2++;
n1--; n2--;
}
- if (! (*s1 && *s2)) {
- /* check for trailing spaces only if one of the pointers
- * has reached the end of the strings otherwise we
- * can mistakenly match.
- * ex. "domain users" <-> "domainUpdates"
- */
- while (*s1 == ' ') { s1++; n1--; }
- while (*s2 == ' ') { s2++; n2--; }
+
+ /* check for trailing spaces only if the other pointers has
+ * reached the end of the strings otherwise we can
+ * mistakenly match. ex. "domain users" <->
+ * "domainUpdates"
+ */
+ if (n1 && *s1 == ' ' && (!n2 || !*s2)) {
+ while (n1 && *s1 == ' ') { s1++; n1--; }
+ }
+ if (n2 && *s2 == ' ' && (!n1 || !*s1)) {
+ while (n2 && *s2 == ' ') { s2++; n2--; }
+ }
+ if (n1 == 0 && n2 != 0) {
+ return -(int)toupper(*s2);
+ }
+ if (n2 == 0 && n1 != 0) {
+ return (int)toupper(*s1);
}
- return (int)(toupper(*s1)) - (int)(toupper(*s2));
+ if (n2 == 0 && n2 == 0) {
+ return 0;
+ }
+ return (int)toupper(*s1) - (int)toupper(*s2);
utf8str:
/* no need to recheck from the start, just from the first utf8 char found */
b1 = ldb_casefold(ldb, mem_ctx, s1, n1);
b2 = ldb_casefold(ldb, mem_ctx, s2, n2);
- if (b1 && b2) {
- /* Both strings converted correctly */
-
- u1 = b1;
- u2 = b2;
- } else {
- /* One of the strings was not UTF8, so we have no options but to do a binary compare */
-
- u1 = s1;
- u2 = s2;
+ if (!b1 || !b2) {
+ /* One of the strings was not UTF8, so we have no
+ * options but to do a binary compare */
+ talloc_free(b1);
+ talloc_free(b2);
+ if (memcmp(s1, s2, MIN(n1, n2)) == 0) {
+ if (n1 == n2) return 0;
+ if (n1 > n2) {
+ return (int)toupper(s1[n2]);
+ } else {
+ return -(int)toupper(s2[n1]);
+ }
+ }
}
+ u1 = b1;
+ u2 = b2;
+
while (*u1 & *u2) {
if (*u1 != *u2)
break;
diff --git a/source4/lib/ldb/modules/rdn_name.c b/source4/lib/ldb/modules/rdn_name.c
index e9f873f073..8b54f52b5e 100644
--- a/source4/lib/ldb/modules/rdn_name.c
+++ b/source4/lib/ldb/modules/rdn_name.c
@@ -1,8 +1,8 @@
/*
ldb database library
- Copyright (C) Andrew Bartlet 2005
- Copyright (C) Simo Sorce 2006-2008
+ Copyright (C) Andrew Bartlett 2005
+ Copyright (C) Simo Sorce 2006-2008
** NOTE! The following LGPL license applies to the ldb
** library. This does NOT imply that all of Samba is released
@@ -23,13 +23,13 @@
*/
/*
- * Name: rdb_name
+ * Name: rdn_name
*
* Component: ldb rdn name module
*
* Description: keep a consistent name attribute on objects manpulations
*
- * Author: Andrew Bartlet
+ * Author: Andrew Bartlett
*
* Modifications:
* - made the module async
@@ -156,9 +156,15 @@ static int rdn_name_add(struct ldb_module *module, struct ldb_request *req)
}
}
if (i == attribute->num_values) {
- ldb_debug_set(ldb, LDB_DEBUG_FATAL,
- "RDN mismatch on %s: %s (%s)",
- ldb_dn_get_linearized(msg->dn), rdn_name, rdn_val.data);
+ char *rdn_errstring = talloc_asprintf(ac, "RDN mismatch on %s: %s (%.*s) should match one of:",
+ ldb_dn_get_linearized(msg->dn), rdn_name,
+ (int)rdn_val.length, (const char *)rdn_val.data);
+ for (i = 0; i < attribute->num_values; i++) {
+ rdn_errstring = talloc_asprintf_append(rdn_errstring, " (%.*s)",
+ (int)attribute->values[i].length,
+ (const char *)attribute->values[i].data);
+ }
+ ldb_debug_set(ldb, LDB_DEBUG_FATAL, "%s", rdn_errstring);
talloc_free(ac);
/* Match AD's error here */
return LDB_ERR_INVALID_DN_SYNTAX;
diff --git a/source4/lib/messaging/messaging.c b/source4/lib/messaging/messaging.c
index cfceeffac7..277688e8b6 100644
--- a/source4/lib/messaging/messaging.c
+++ b/source4/lib/messaging/messaging.c
@@ -596,7 +596,7 @@ struct messaging_context *messaging_init(TALLOC_CTX *mem_ctx,
/* it needs to be non blocking for sends */
set_blocking(socket_get_fd(msg->sock), false);
- msg->event.ev = talloc_reference(msg, ev);
+ msg->event.ev = ev;
msg->event.fde = event_add_fd(ev, msg, socket_get_fd(msg->sock),
EVENT_FD_READ, messaging_handler, msg);
diff --git a/source4/libcli/composite/composite.c b/source4/libcli/composite/composite.c
index ab32175d00..7262ebce54 100644
--- a/source4/libcli/composite/composite.c
+++ b/source4/libcli/composite/composite.c
@@ -42,11 +42,7 @@ _PUBLIC_ struct composite_context *composite_create(TALLOC_CTX *mem_ctx,
c = talloc_zero(mem_ctx, struct composite_context);
if (!c) return NULL;
c->state = COMPOSITE_STATE_IN_PROGRESS;
- c->event_ctx = talloc_reference(c, ev);
- if (!c->event_ctx) {
- talloc_free(c);
- return NULL;
- }
+ c->event_ctx = ev;
return c;
}
diff --git a/source4/libcli/dgram/dgramsocket.c b/source4/libcli/dgram/dgramsocket.c
index 751706d2c5..365960edb6 100644
--- a/source4/libcli/dgram/dgramsocket.c
+++ b/source4/libcli/dgram/dgramsocket.c
@@ -166,7 +166,7 @@ struct nbt_dgram_socket *nbt_dgram_socket_init(TALLOC_CTX *mem_ctx,
dgmsock = talloc(mem_ctx, struct nbt_dgram_socket);
if (dgmsock == NULL) goto failed;
- dgmsock->event_ctx = talloc_reference(dgmsock, event_ctx);
+ dgmsock->event_ctx = event_ctx;
if (dgmsock->event_ctx == NULL) goto failed;
status = socket_create("ip", SOCKET_TYPE_DGRAM, &dgmsock->sock, 0);
diff --git a/source4/libcli/raw/clisocket.c b/source4/libcli/raw/clisocket.c
index b9e83218dd..02da4917e3 100644
--- a/source4/libcli/raw/clisocket.c
+++ b/source4/libcli/raw/clisocket.c
@@ -61,7 +61,7 @@ struct composite_context *smbcli_sock_connect_send(TALLOC_CTX *mem_ctx,
if (result == NULL) goto failed;
result->state = COMPOSITE_STATE_IN_PROGRESS;
- result->event_ctx = talloc_reference(result, event_ctx);
+ result->event_ctx = event_ctx;
if (result->event_ctx == NULL) goto failed;
state = talloc(result, struct sock_connect_state);
@@ -118,8 +118,7 @@ static void smbcli_sock_connect_recv_conn(struct composite_context *ctx)
state->result->port = port;
state->result->hostname = talloc_steal(sock, state->host_name);
- state->result->event.ctx =
- talloc_reference(state->result, state->ctx->event_ctx);
+ state->result->event.ctx = state->ctx->event_ctx;
if (composite_nomem(state->result->event.ctx, state->ctx)) return;
composite_done(state->ctx);
diff --git a/source4/libcli/raw/interfaces.h b/source4/libcli/raw/interfaces.h
index 478b6585d4..75b7175ac3 100644
--- a/source4/libcli/raw/interfaces.h
+++ b/source4/libcli/raw/interfaces.h
@@ -22,7 +22,8 @@
#ifndef __LIBCLI_RAW_INTERFACES_H__
#define __LIBCLI_RAW_INTERFACES_H__
-#include "smb.h"
+#include "libcli/raw/smb.h"
+#include "libcli/smb2/smb2_constants.h"
#include "librpc/gen_ndr/misc.h" /* for struct GUID */
/* this structure is just a wrapper for a string, the only reason we
@@ -2447,22 +2448,6 @@ union smb_search_first {
} out;
} t2ffirst;
-/*
- SMB2 uses different level numbers for the same old SMB trans2 search levels
-*/
-#define SMB2_FIND_DIRECTORY_INFO 0x01
-#define SMB2_FIND_FULL_DIRECTORY_INFO 0x02
-#define SMB2_FIND_BOTH_DIRECTORY_INFO 0x03
-#define SMB2_FIND_NAME_INFO 0x0C
-#define SMB2_FIND_ID_BOTH_DIRECTORY_INFO 0x25
-#define SMB2_FIND_ID_FULL_DIRECTORY_INFO 0x26
-
-/* flags for SMB2 find */
-#define SMB2_CONTINUE_FLAG_RESTART 0x01
-#define SMB2_CONTINUE_FLAG_SINGLE 0x02
-#define SMB2_CONTINUE_FLAG_INDEX 0x04
-#define SMB2_CONTINUE_FLAG_REOPEN 0x10
-
/* SMB2 Find */
struct smb2_find {
enum smb_search_level level;
diff --git a/source4/libcli/raw/raweas.c b/source4/libcli/raw/raweas.c
index 09fd4aa412..ae3d4ce50a 100644
--- a/source4/libcli/raw/raweas.c
+++ b/source4/libcli/raw/raweas.c
@@ -18,7 +18,6 @@
*/
#include "includes.h"
-#include "smb.h"
#include "libcli/raw/libcliraw.h"
#include "libcli/raw/raw_proto.h"
diff --git a/source4/libcli/raw/rawfile.c b/source4/libcli/raw/rawfile.c
index 6fac7b8605..35d6b75c4d 100644
--- a/source4/libcli/raw/rawfile.c
+++ b/source4/libcli/raw/rawfile.c
@@ -20,7 +20,6 @@
*/
#include "includes.h"
-#include "smb.h"
#include "libcli/raw/libcliraw.h"
#include "libcli/raw/raw_proto.h"
#include "librpc/gen_ndr/ndr_security.h"
diff --git a/source4/libcli/raw/rawlpq.c b/source4/libcli/raw/rawlpq.c
index eddb3e0843..5c44772e03 100644
--- a/source4/libcli/raw/rawlpq.c
+++ b/source4/libcli/raw/rawlpq.c
@@ -18,7 +18,6 @@
*/
#include "includes.h"
-#include "smb.h"
#include "libcli/raw/libcliraw.h"
#include "libcli/raw/raw_proto.h"
diff --git a/source4/libcli/raw/smb_signing.c b/source4/libcli/raw/smb_signing.c
index 9f94039078..84e0ad62a4 100644
--- a/source4/libcli/raw/smb_signing.c
+++ b/source4/libcli/raw/smb_signing.c
@@ -20,7 +20,6 @@
*/
#include "includes.h"
-#include "smb.h"
#include "libcli/raw/libcliraw.h"
#include "libcli/raw/raw_proto.h"
#include "../lib/crypto/crypto.h"
diff --git a/source4/libcli/smb2/smb2_calls.h b/source4/libcli/smb2/smb2_calls.h
index b89770fbe6..bea0573c26 100644
--- a/source4/libcli/smb2/smb2_calls.h
+++ b/source4/libcli/smb2/smb2_calls.h
@@ -52,18 +52,6 @@ struct smb2_negprot {
} out;
};
-/* getinfo classes */
-#define SMB2_GETINFO_FILE 0x01
-#define SMB2_GETINFO_FS 0x02
-#define SMB2_GETINFO_SECURITY 0x03
-#define SMB2_GETINFO_QUOTA 0x04
-
-#define SMB2_GETINFO_ADD_OWNER_SECURITY 0x01
-#define SMB2_GETINFO_ADD_GROUP_SECURITY 0x02
-#define SMB2_GETINFO_ADD_DACL_SECURITY 0x04
-#define SMB2_GETINFO_ADD_SACL_SECURITY 0x08
-#define SMB2_GETINFO_ADD_LABEL_SECURITY 0x10
-
/* NOTE! the getinfo fs and file levels exactly match up with the
'passthru' SMB levels, which are levels >= 1000. The SMB2 client
lib uses the names from the libcli/raw/ library */
diff --git a/source4/libcli/smb2/smb2_constants.h b/source4/libcli/smb2/smb2_constants.h
index f1681a3076..3047809b74 100644
--- a/source4/libcli/smb2/smb2_constants.h
+++ b/source4/libcli/smb2/smb2_constants.h
@@ -150,4 +150,26 @@
#define SMB2_CREATE_OPTIONS_NOT_SUPPORTED_MASK (NTCREATEX_OPTIONS_TREE_CONNECTION | \
NTCREATEX_OPTIONS_OPFILTER)
+/*
+ SMB2 uses different level numbers for the same old SMB trans2 search levels
+*/
+#define SMB2_FIND_DIRECTORY_INFO 0x01
+#define SMB2_FIND_FULL_DIRECTORY_INFO 0x02
+#define SMB2_FIND_BOTH_DIRECTORY_INFO 0x03
+#define SMB2_FIND_NAME_INFO 0x0C
+#define SMB2_FIND_ID_BOTH_DIRECTORY_INFO 0x25
+#define SMB2_FIND_ID_FULL_DIRECTORY_INFO 0x26
+
+/* flags for SMB2 find */
+#define SMB2_CONTINUE_FLAG_RESTART 0x01
+#define SMB2_CONTINUE_FLAG_SINGLE 0x02
+#define SMB2_CONTINUE_FLAG_INDEX 0x04
+#define SMB2_CONTINUE_FLAG_REOPEN 0x10
+
+/* getinfo classes */
+#define SMB2_GETINFO_FILE 0x01
+#define SMB2_GETINFO_FS 0x02
+#define SMB2_GETINFO_SECURITY 0x03
+#define SMB2_GETINFO_QUOTA 0x04
+
#endif
diff --git a/source4/libcli/smb2/util.c b/source4/libcli/smb2/util.c
index a360d8fbdf..8602c91a9f 100644
--- a/source4/libcli/smb2/util.c
+++ b/source4/libcli/smb2/util.c
@@ -113,6 +113,7 @@ int smb2_deltree(struct smb2_tree *tree, const char *dname)
TALLOC_CTX *tmp_ctx = talloc_new(tree);
struct smb2_find f;
struct smb2_create create_parm;
+ bool did_delete;
/* it might be a file */
status = smb2_util_unlink(tree, dname);
@@ -154,45 +155,50 @@ int smb2_deltree(struct smb2_tree *tree, const char *dname)
}
- ZERO_STRUCT(f);
- f.in.file.handle = create_parm.out.file.handle;
- f.in.max_response_size = 0x10000;
- f.in.level = SMB2_FIND_NAME_INFO;
- f.in.pattern = "*";
-
- status = smb2_find_level(tree, tmp_ctx, &f, &count, &list);
- if (NT_STATUS_IS_ERR(status)) {
- DEBUG(2,("Failed to list %s - %s\n",
- dname, nt_errstr(status)));
- smb2_util_close(tree, create_parm.out.file.handle);
- talloc_free(tmp_ctx);
- return -1;
- }
-
- for (i=0;i<count;i++) {
- char *name;
- if (strcmp(".", list[i].name_info.name.s) == 0 ||
- strcmp("..", list[i].name_info.name.s) == 0) {
- continue;
+ do {
+ did_delete = false;
+
+ ZERO_STRUCT(f);
+ f.in.file.handle = create_parm.out.file.handle;
+ f.in.max_response_size = 0x10000;
+ f.in.level = SMB2_FIND_NAME_INFO;
+ f.in.pattern = "*";
+
+ status = smb2_find_level(tree, tmp_ctx, &f, &count, &list);
+ if (NT_STATUS_IS_ERR(status)) {
+ DEBUG(2,("Failed to list %s - %s\n",
+ dname, nt_errstr(status)));
+ smb2_util_close(tree, create_parm.out.file.handle);
+ talloc_free(tmp_ctx);
+ return -1;
}
- name = talloc_asprintf(tmp_ctx, "%s\\%s", dname, list[i].name_info.name.s);
- status = smb2_util_unlink(tree, name);
- if (NT_STATUS_EQUAL(status, NT_STATUS_CANNOT_DELETE)) {
- /* it could be read-only */
- status = smb2_util_setatr(tree, name, FILE_ATTRIBUTE_NORMAL);
+
+ for (i=0;i<count;i++) {
+ char *name;
+ if (strcmp(".", list[i].name_info.name.s) == 0 ||
+ strcmp("..", list[i].name_info.name.s) == 0) {
+ continue;
+ }
+ name = talloc_asprintf(tmp_ctx, "%s\\%s", dname, list[i].name_info.name.s);
status = smb2_util_unlink(tree, name);
+ if (NT_STATUS_EQUAL(status, NT_STATUS_CANNOT_DELETE)) {
+ /* it could be read-only */
+ status = smb2_util_setatr(tree, name, FILE_ATTRIBUTE_NORMAL);
+ status = smb2_util_unlink(tree, name);
+ }
+
+ if (NT_STATUS_EQUAL(status, NT_STATUS_FILE_IS_A_DIRECTORY)) {
+ int ret;
+ ret = smb2_deltree(tree, name);
+ if (ret > 0) total_deleted += ret;
+ }
+ talloc_free(name);
+ if (NT_STATUS_IS_OK(status)) {
+ total_deleted++;
+ did_delete = true;
+ }
}
-
- if (NT_STATUS_EQUAL(status, NT_STATUS_FILE_IS_A_DIRECTORY)) {
- int ret;
- ret = smb2_deltree(tree, name);
- if (ret > 0) total_deleted += ret;
- }
- talloc_free(name);
- if (NT_STATUS_IS_OK(status)) {
- total_deleted++;
- }
- }
+ } while (did_delete);
smb2_util_close(tree, create_parm.out.file.handle);
diff --git a/source4/libcli/smb_composite/connect.c b/source4/libcli/smb_composite/connect.c
index a5d05b7af1..9a19771bc0 100644
--- a/source4/libcli/smb_composite/connect.c
+++ b/source4/libcli/smb_composite/connect.c
@@ -466,7 +466,7 @@ struct composite_context *smb_composite_connect_send(struct smb_composite_connec
c = talloc_zero(mem_ctx, struct composite_context);
if (c == NULL) goto failed;
- c->event_ctx = talloc_reference(c, event_ctx);
+ c->event_ctx = event_ctx;
if (c->event_ctx == NULL) goto failed;
state = talloc_zero(c, struct connect_state);
diff --git a/source4/libcli/wrepl/winsrepl.c b/source4/libcli/wrepl/winsrepl.c
index 48a6abba9d..849511b606 100644
--- a/source4/libcli/wrepl/winsrepl.c
+++ b/source4/libcli/wrepl/winsrepl.c
@@ -171,7 +171,7 @@ struct wrepl_socket *wrepl_socket_init(TALLOC_CTX *mem_ctx,
wrepl_socket = talloc_zero(mem_ctx, struct wrepl_socket);
if (!wrepl_socket) return NULL;
- wrepl_socket->event.ctx = talloc_reference(wrepl_socket, event_ctx);
+ wrepl_socket->event.ctx = event_ctx;
if (!wrepl_socket->event.ctx) goto failed;
wrepl_socket->iconv_convenience = iconv_convenience;
@@ -205,7 +205,7 @@ struct wrepl_socket *wrepl_socket_merge(TALLOC_CTX *mem_ctx,
wrepl_socket = talloc_zero(mem_ctx, struct wrepl_socket);
if (wrepl_socket == NULL) goto failed;
- wrepl_socket->event.ctx = talloc_reference(wrepl_socket, event_ctx);
+ wrepl_socket->event.ctx = event_ctx;
if (wrepl_socket->event.ctx == NULL) goto failed;
wrepl_socket->sock = sock;
diff --git a/source4/librpc/rpc/dcerpc.c b/source4/librpc/rpc/dcerpc.c
index 0ae56a470e..cc1331984d 100644
--- a/source4/librpc/rpc/dcerpc.c
+++ b/source4/librpc/rpc/dcerpc.c
@@ -67,7 +67,7 @@ static struct dcerpc_connection *dcerpc_connection_init(TALLOC_CTX *mem_ctx,
c->iconv_convenience = talloc_reference(c, ic);
- c->event_ctx = talloc_reference(c, ev);
+ c->event_ctx = ev;
if (c->event_ctx == NULL) {
talloc_free(c);
diff --git a/source4/nbt_server/wins/winswack.c b/source4/nbt_server/wins/winswack.c
index c53fa1d069..a58362830a 100644
--- a/source4/nbt_server/wins/winswack.c
+++ b/source4/nbt_server/wins/winswack.c
@@ -94,7 +94,7 @@ struct composite_context *wins_challenge_send(TALLOC_CTX *mem_ctx, struct wins_c
result = talloc_zero(mem_ctx, struct composite_context);
if (result == NULL) return NULL;
result->state = COMPOSITE_STATE_IN_PROGRESS;
- result->event_ctx = talloc_reference(result, io->in.event_ctx);
+ result->event_ctx = io->in.event_ctx;
state = talloc_zero(result, struct wins_challenge_state);
if (state == NULL) goto failed;
@@ -204,7 +204,7 @@ static struct composite_context *wins_release_demand_send(TALLOC_CTX *mem_ctx, s
result = talloc_zero(mem_ctx, struct composite_context);
if (result == NULL) return NULL;
result->state = COMPOSITE_STATE_IN_PROGRESS;
- result->event_ctx = talloc_reference(result, io->in.event_ctx);
+ result->event_ctx = io->in.event_ctx;
state = talloc_zero(result, struct wins_release_demand_state);
if (state == NULL) goto failed;
diff --git a/source4/ntvfs/posix/pvfs_acl.c b/source4/ntvfs/posix/pvfs_acl.c
index 203b6b11c0..ad7ac5a749 100644
--- a/source4/ntvfs/posix/pvfs_acl.c
+++ b/source4/ntvfs/posix/pvfs_acl.c
@@ -449,6 +449,35 @@ static bool pvfs_read_only(struct pvfs_state *pvfs, uint32_t access_mask)
}
/*
+ see if we are a member of the appropriate unix group
+ */
+static bool pvfs_group_member(struct pvfs_state *pvfs, gid_t gid)
+{
+ int i, ngroups;
+ gid_t *groups;
+ if (getegid() == gid) {
+ return true;
+ }
+ ngroups = getgroups(0, NULL);
+ if (ngroups == 0) {
+ return false;
+ }
+ groups = talloc_array(pvfs, gid_t, ngroups);
+ if (groups == NULL) {
+ return false;
+ }
+ if (getgroups(ngroups, groups) != ngroups) {
+ talloc_free(groups);
+ return false;
+ }
+ for (i=0; i<ngroups; i++) {
+ if (groups[i] == gid) break;
+ }
+ talloc_free(groups);
+ return i < ngroups;
+}
+
+/*
default access check function based on unix permissions
doing this saves on building a full security descriptor
for the common case of access check on files with no
@@ -473,6 +502,12 @@ NTSTATUS pvfs_access_check_unix(struct pvfs_state *pvfs,
max_bits |= SEC_STD_ALL;
}
+ if ((name->st.st_mode & S_IWOTH) ||
+ ((name->st.st_mode & S_IWGRP) &&
+ pvfs_group_member(pvfs, name->st.st_gid))) {
+ max_bits |= SEC_STD_ALL;
+ }
+
if (uwrap_enabled()) {
/* when running with the uid wrapper, files will be created
owned by the ruid, but we may have a different simulated
@@ -491,6 +526,8 @@ NTSTATUS pvfs_access_check_unix(struct pvfs_state *pvfs,
}
if (*access_mask & ~max_bits) {
+ DEBUG(0,(__location__ " denied access to '%s' - wanted 0x%08x but got 0x%08x (missing 0x%08x)\n",
+ name->full_name, *access_mask, max_bits, *access_mask & ~max_bits));
return NT_STATUS_ACCESS_DENIED;
}
diff --git a/source4/ntvfs/posix/pvfs_open.c b/source4/ntvfs/posix/pvfs_open.c
index 12f50fcc97..46e39a00dd 100644
--- a/source4/ntvfs/posix/pvfs_open.c
+++ b/source4/ntvfs/posix/pvfs_open.c
@@ -534,7 +534,7 @@ static int pvfs_handle_destructor(struct pvfs_file_handle *h)
if (!timeval_is_zero(&tv[0]) || !timeval_is_zero(&tv[1])) {
if (utimes(h->name->full_name, tv) == -1) {
- DEBUG(0,("pvfs_handle_destructor: utimes() failed '%s' - %s\n",
+ DEBUG(3,("pvfs_handle_destructor: utimes() failed '%s' - %s\n",
h->name->full_name, strerror(errno)));
}
}
@@ -1516,6 +1516,8 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
if (fd == -1) {
status = pvfs_map_errno(f->pvfs, errno);
+ DEBUG(0,(__location__ " mapped errno %s for %s (was %d)\n",
+ nt_errstr(status), f->handle->name->full_name, errno));
/*
* STATUS_MORE_ENTRIES is EAGAIN or EWOULDBLOCK
*/
@@ -1581,10 +1583,12 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
if (f->handle->name->stream_id == 0 &&
(io->generic.in.open_disposition == NTCREATEX_DISP_OVERWRITE ||
io->generic.in.open_disposition == NTCREATEX_DISP_OVERWRITE_IF)) {
- /* for overwrite we need to replace file permissions */
+ /* for overwrite we may need to replace file permissions */
uint32_t attrib = io->ntcreatex.in.file_attr | FILE_ATTRIBUTE_ARCHIVE;
mode_t mode = pvfs_fileperms(pvfs, attrib);
- if (fchmod(fd, mode) == -1) {
+ if (f->handle->name->st.st_mode != mode &&
+ f->handle->name->dos.attrib != attrib &&
+ fchmod(fd, mode) == -1) {
talloc_free(lck);
return pvfs_map_errno(pvfs, errno);
}
diff --git a/source4/ntvfs/posix/pvfs_util.c b/source4/ntvfs/posix/pvfs_util.c
index 81ff20a608..b1b0a64789 100644
--- a/source4/ntvfs/posix/pvfs_util.c
+++ b/source4/ntvfs/posix/pvfs_util.c
@@ -39,7 +39,10 @@ bool pvfs_has_wildcard(const char *str)
*/
NTSTATUS pvfs_map_errno(struct pvfs_state *pvfs, int unix_errno)
{
- return map_nt_error_from_unix(unix_errno);
+ NTSTATUS status;
+ status = map_nt_error_from_unix(unix_errno);
+ DEBUG(10,(__location__ " mapped unix errno %d -> %s\n", unix_errno, nt_errstr(status)));
+ return status;
}
diff --git a/source4/script/installmisc.sh b/source4/script/installmisc.sh
index 257fae8dee..f8fddadfa4 100755
--- a/source4/script/installmisc.sh
+++ b/source4/script/installmisc.sh
@@ -10,7 +10,7 @@ echo "Installing setup templates"
mkdir -p $SETUPDIR || exit 1
mkdir -p $SETUPDIR/ad-schema || exit 1
cp setup/ad-schema/*.txt $SETUPDIR/ad-schema || exit 1
-for p in enableaccount newuser provision provision-backend setexpiry setpassword
+for p in enableaccount newuser provision provision-backend setexpiry setpassword pwsettings
do
chmod a+x setup/$p
cp setup/$p $SETUPDIR || exit 1
diff --git a/source4/scripting/python/samba/samdb.py b/source4/scripting/python/samba/samdb.py
index 6cb2469846..631f31c6aa 100644
--- a/source4/scripting/python/samba/samdb.py
+++ b/source4/scripting/python/samba/samdb.py
@@ -81,8 +81,7 @@ description: %s
"""
res = self.search(user_dn, ldb.SCOPE_BASE, None, ["userAccountControl"])
assert len(res) == 1
- userAccountControl = res[0]["userAccountControl"][0]
- userAccountControl = int(userAccountControl)
+ userAccountControl = int(res[0]["userAccountControl"][0])
if (userAccountControl & 0x2):
userAccountControl = userAccountControl & ~0x2 # remove disabled bit
if (userAccountControl & 0x20):
diff --git a/source4/setup/enableaccount b/source4/setup/enableaccount
index b270da0097..1b7341946f 100755
--- a/source4/setup/enableaccount
+++ b/source4/setup/enableaccount
@@ -56,7 +56,6 @@ else:
samdb = SamDB(url=url, session_info=system_session(),
credentials=creds, lp=lp)
-domain_dn = opts.base
if opts.base is None:
res = samdb.search("", scope=ldb.SCOPE_BASE,
expression="(defaultNamingContext=*)",
diff --git a/source4/setup/pwsettings b/source4/setup/pwsettings
new file mode 100755
index 0000000000..8a4489b287
--- /dev/null
+++ b/source4/setup/pwsettings
@@ -0,0 +1,202 @@
+#!/usr/bin/python
+#
+# Sets password settings (Password complexity, history length,
+# minimum password length, the minimum and maximum password age) on a
+# Samba4 server
+#
+# Copyright Jelmer Vernooij 2008
+# Copyright Matthias Dieter Wallnoefer 2009
+# Released under the GNU GPL version 3 or later
+#
+import os, sys
+
+sys.path.insert(0, os.path.join(os.path.dirname(sys.argv[0]), "../bin/python"))
+
+import samba.getopt as options
+import optparse
+import pwd
+import ldb
+
+from samba.auth import system_session
+from samba.samdb import SamDB
+from samba.dcerpc.samr import DOMAIN_PASSWORD_COMPLEX
+
+parser = optparse.OptionParser("pwsettings (show | set <options>)")
+sambaopts = options.SambaOptions(parser)
+parser.add_option_group(sambaopts)
+parser.add_option_group(options.VersionOptions(parser))
+credopts = options.CredentialsOptions(parser)
+parser.add_option_group(credopts)
+parser.add_option("-H", help="LDB URL for database or target server", type=str)
+parser.add_option("--complexity",
+ help="The password complexity (on | off). Default is 'on'", type=str)
+parser.add_option("--history-length",
+ help="The password history length (<integer> | default)", type=str)
+parser.add_option("--min-pwd-length",
+ help="The minimum password length (<integer> | default)", type=str)
+parser.add_option("--min-pwd-age",
+ help="The minimum password age (<integer in days> | default)", type=str)
+parser.add_option("--max-pwd-age",
+ help="The maximum password age (<integer in days> | default)", type=str)
+
+opts, args = parser.parse_args()
+
+#
+# print a message if quiet is not set
+#
+def message(text):
+ if not opts.quiet:
+ print text
+
+if len(args) == 0:
+ parser.print_usage()
+ sys.exit(1)
+
+lp = sambaopts.get_loadparm()
+
+creds = credopts.get_credentials(lp)
+
+if opts.H is not None:
+ url = opts.H
+else:
+ url = lp.get("sam database")
+
+samdb = SamDB(url=url, session_info=system_session(),
+ credentials=creds, lp=lp)
+
+res = samdb.search("", scope=ldb.SCOPE_BASE,
+ expression="(defaultNamingContext=*)",
+ attrs=["defaultNamingContext"])
+assert(len(res) == 1 and res[0]["defaultNamingContext"] is not None)
+domain_dn = res[0]["defaultNamingContext"][0]
+
+res = samdb.search(domain_dn, scope=ldb.SCOPE_BASE, attrs=["pwdProperties",
+ "pwdHistoryLength", "minPwdLength", "minPwdAge", "maxPwdAge"])
+assert(len(res) == 1)
+try:
+ pwd_props = int(res[0]["pwdProperties"][0])
+ pwd_hist_len = int(res[0]["pwdHistoryLength"][0])
+ min_pwd_len = int(res[0]["minPwdLength"][0])
+ min_pwd_age = int(res[0]["minPwdAge"][0])
+ max_pwd_age = int(res[0]["maxPwdAge"][0])
+except:
+ if args[0] == "show":
+ print "ERROR: Password informations missing in your AD domain object!"
+ print "So no settings can be displayed!"
+ sys.exit(1)
+ else:
+ if pwd_props is None:
+ pwd_props = 0
+ print "WARNING: Assuming previous password properties 0 (used for password complexity setting)"
+
+if args[0] == "show":
+ print "Password informations for domain '" + domain_dn + "'"
+ print ""
+ if pwd_props & DOMAIN_PASSWORD_COMPLEX != 0:
+ print "Password complexity: on"
+ else:
+ print "Password complexity: off"
+ print "Password history length: " + str(pwd_hist_len)
+ print "Minimum password length: " + str(min_pwd_len)
+ print "Minimum password age: " + str(min_pwd_age)
+ print "Maximum password age: " + str(max_pwd_age)
+
+elif args[0] == "set":
+ if opts.complexity is not None:
+ if opts.complexity == "on":
+ pwd_props = pwd_props | DOMAIN_PASSWORD_COMPLEX
+
+ m = ldb.Message()
+ m.dn = ldb.Dn(samdb, domain_dn)
+ m["pwdProperties"] = ldb.MessageElement([],
+ ldb.CHANGETYPE_DELETE, "pwdProperties")
+ samdb.modify(m)
+ m["pwdProperties"] = ldb.MessageElement(str(pwd_props),
+ ldb.CHANGETYPE_ADD, "pwdProperties")
+ samdb.modify(m)
+ print "Password complexity activated!"
+ elif opts.complexity == "off":
+ pwd_props = pwd_props & (~DOMAIN_PASSWORD_COMPLEX)
+
+ m = ldb.Message()
+ m.dn = ldb.Dn(samdb, domain_dn)
+ m["pwdProperties"] = ldb.MessageElement([],
+ ldb.CHANGETYPE_DELETE, "pwdProperties")
+ samdb.modify(m)
+ m["pwdProperties"] = ldb.MessageElement(str(pwd_props),
+ ldb.CHANGETYPE_ADD, "pwdProperties")
+ samdb.modify(m)
+ print "Password complexity deactivated!"
+ else:
+ print "ERROR: Wrong argument '" + opts.complexity + "'!"
+ sys.exit(1)
+
+ if opts.history_length is not None:
+ if opts.history_length == "default":
+ pwd_hist_len = 24
+ else:
+ pwd_hist_len = int(opts.history_length)
+
+ m = ldb.Message()
+ m.dn = ldb.Dn(samdb, domain_dn)
+ m["pwdHistoryLength"] = ldb.MessageElement([],
+ ldb.CHANGETYPE_DELETE, "pwdHistoryLength")
+ samdb.modify(m)
+ m["pwdHistoryLength"] = ldb.MessageElement(str(pwd_hist_len),
+ ldb.CHANGETYPE_ADD, "pwdHistoryLength")
+ samdb.modify(m)
+ print "Password history length changed!"
+
+ if opts.min_pwd_length is not None:
+ if opts.min_pwd_length == "default":
+ min_pwd_len = 7
+ else:
+ min_pwd_len = int(opts.min_pwd_length)
+
+ m = ldb.Message()
+ m.dn = ldb.Dn(samdb, domain_dn)
+ m["minPwdLength"] = ldb.MessageElement([],
+ ldb.CHANGETYPE_DELETE, "minPwdLength")
+ samdb.modify(m)
+ m["minPwdLength"] = ldb.MessageElement(str(min_pwd_len),
+ ldb.CHANGETYPE_ADD, "minPwdLength")
+ samdb.modify(m)
+ print "Minimum password length changed!"
+
+ if opts.min_pwd_age is not None:
+ if opts.min_pwd_age == "default":
+ min_pwd_age = 0
+ else:
+ min_pwd_age = int(opts.min_pwd_age)
+
+ m = ldb.Message()
+ m.dn = ldb.Dn(samdb, domain_dn)
+ m["minPwdAge"] = ldb.MessageElement([],
+ ldb.CHANGETYPE_DELETE, "minPwdAge")
+ samdb.modify(m)
+ m["minPwdAge"] = ldb.MessageElement(str(min_pwd_age),
+ ldb.CHANGETYPE_ADD, "minPwdAge")
+ samdb.modify(m)
+ print "Minimum password age changed!"
+
+ if opts.max_pwd_age is not None:
+ if opts.max_pwd_age == "default":
+ max_pwd_age = -37108517437440
+ else:
+ max_pwd_age = int(opts.max_pwd_age)
+
+ m = ldb.Message()
+ m.dn = ldb.Dn(samdb, domain_dn)
+ m["maxPwdAge"] = ldb.MessageElement([],
+ ldb.CHANGETYPE_DELETE, "maxPwdAge")
+ samdb.modify(m)
+ m["maxPwdAge"] = ldb.MessageElement(str(max_pwd_age),
+ ldb.CHANGETYPE_ADD, "maxPwdAge")
+ samdb.modify(m)
+ print "Maximum password age changed!"
+
+ print "All changes applied successfully!"
+
+else:
+ print "ERROR: Wrong argument '" + args[0] + "'!"
+ sys.exit(1)
diff --git a/source4/setup/secrets_sasl_ldap.ldif b/source4/setup/secrets_sasl_ldap.ldif
index 81ccfee209..cccbedb926 100644
--- a/source4/setup/secrets_sasl_ldap.ldif
+++ b/source4/setup/secrets_sasl_ldap.ldif
@@ -5,5 +5,3 @@ cn: SAMDB Credentials
secret:: ${LDAPADMINPASS_B64}
samAccountName: ${LDAPADMINUSER}
realm: ${LDAPADMINREALM}
-
-
diff --git a/source4/smb_server/smb/receive.c b/source4/smb_server/smb/receive.c
index 03631f8f0b..9a039095e6 100644
--- a/source4/smb_server/smb/receive.c
+++ b/source4/smb_server/smb/receive.c
@@ -407,19 +407,14 @@ NTSTATUS smbsrv_recv_smb_request(void *private_data, DATA_BLOB blob)
req->in.data = req->in.vwv + VWV(req->in.wct) + 2;
req->in.data_size = SVAL(req->in.vwv, VWV(req->in.wct));
- /* the bcc length is only 16 bits, but some packets
- (such as SMBwriteX) can be much larger than 64k. We
- detect this by looking for a large non-chained NBT
- packet (at least 64k bigger than what is
- specified). If it is detected then the NBT size is
- used instead of the bcc size */
- if (req->in.data_size + 0x10000 <=
- req->in.size - PTR_DIFF(req->in.data, req->in.buffer) &&
- ( message_flags(command) & LARGE_REQUEST) &&
- ( !(message_flags(command) & AND_X) ||
- (req->in.wct < 1 || SVAL(req->in.vwv, VWV(0)) == SMB_CHAIN_NONE) )
- ) {
- /* its an oversized packet! fun for all the family */
+ /* special handling for oversize calls. Windows seems
+ to take the maximum of the BCC value and the
+ computed buffer size. This handles oversized writeX
+ calls, and possibly oversized SMBtrans calls */
+ if ((message_flags(command) & LARGE_REQUEST) &&
+ ( !(message_flags(command) & AND_X) ||
+ (req->in.wct < 1 || SVAL(req->in.vwv, VWV(0)) == SMB_CHAIN_NONE)) &&
+ req->in.data_size < req->in.size - PTR_DIFF(req->in.data,req->in.buffer)) {
req->in.data_size = req->in.size - PTR_DIFF(req->in.data,req->in.buffer);
}
}
diff --git a/source4/smb_server/smb/reply.c b/source4/smb_server/smb/reply.c
index 0433d3582f..104caca446 100644
--- a/source4/smb_server/smb/reply.c
+++ b/source4/smb_server/smb/reply.c
@@ -1063,7 +1063,7 @@ void smbsrv_reply_write_and_X(struct smbsrv_request *req)
/* make sure the data is in bounds */
if (req_data_oob(&req->in.bufinfo, io->writex.in.data, io->writex.in.count)) {
- smbsrv_send_error(req, NT_STATUS_FOOBAR);
+ smbsrv_send_error(req, NT_STATUS_DOS(ERRSRV, ERRerror));
return;
}
diff --git a/source4/smbd/process_standard.c b/source4/smbd/process_standard.c
index 137e0a7ce0..730e185e5a 100644
--- a/source4/smbd/process_standard.c
+++ b/source4/smbd/process_standard.c
@@ -44,15 +44,31 @@ static int none_setproctitle(const char *fmt, ...)
}
#endif
+/* we hold a pipe open in the parent, and the any child
+ processes wait for EOF on that pipe. This ensures that
+ children die when the parent dies */
+static int child_pipe[2];
+
/*
called when the process model is selected
*/
static void standard_model_init(struct tevent_context *ev)
{
+ pipe(child_pipe);
signal(SIGCHLD, SIG_IGN);
}
/*
+ handle EOF on the child pipe
+*/
+static void standard_pipe_handler(struct tevent_context *event_ctx, struct tevent_fd *fde,
+ uint16_t flags, void *private_data)
+{
+ DEBUG(10,("Child %d exiting\n", (int)getpid()));
+ exit(0);
+}
+
+/*
called when a listening socket becomes readable.
*/
static void standard_accept_connection(struct tevent_context *ev,
@@ -114,6 +130,10 @@ static void standard_accept_connection(struct tevent_context *ev,
DEBUG(0,("standard_accept_connection: tdb_reopen_all failed.\n"));
}
+ tevent_add_fd(ev2, ev2, child_pipe[0], TEVENT_FD_READ,
+ standard_pipe_handler, NULL);
+ close(child_pipe[1]);
+
/* Ensure that the forked children do not expose identical random streams */
set_need_random_reseed();
@@ -177,6 +197,10 @@ static void standard_new_task(struct tevent_context *ev,
DEBUG(0,("standard_accept_connection: tdb_reopen_all failed.\n"));
}
+ tevent_add_fd(ev2, ev2, child_pipe[0], TEVENT_FD_READ,
+ standard_pipe_handler, NULL);
+ close(child_pipe[1]);
+
/* Ensure that the forked children do not expose identical random streams */
set_need_random_reseed();
diff --git a/source4/smbd/server.c b/source4/smbd/server.c
index 635e84fafe..bb2571e819 100644
--- a/source4/smbd/server.c
+++ b/source4/smbd/server.c
@@ -38,6 +38,8 @@
#include "param/secrets.h"
#include "smbd/pidfile.h"
#include "param/param.h"
+#include "dsdb/samdb/samdb.h"
+#include "auth/session.h"
/*
recursively delete a directory tree
@@ -112,6 +114,7 @@ static void sig_term(int sig)
kill(-getpgrp(), SIGTERM);
}
#endif
+ DEBUG(0,("Exiting pid %d on SIGTERM\n", (int)getpid()));
exit(0);
}
@@ -157,6 +160,7 @@ static void server_stdin_handler(struct tevent_context *event_ctx, struct tevent
DEBUG(0,("%s: EOF on stdin - terminating\n", binary_name));
#if HAVE_GETPGRP
if (getpgrp() == getpid()) {
+ DEBUG(0,("Sending SIGTERM from pid %d\n", (int)getpid()));
kill(-getpgrp(), SIGTERM);
}
#endif
@@ -177,6 +181,18 @@ _NORETURN_ static void max_runtime_handler(struct tevent_context *ev,
}
/*
+ pre-open the sam ldb to ensure the schema has been loaded. This
+ saves a lot of time in child processes
+ */
+static void prime_samdb_schema(struct tevent_context *event_ctx)
+{
+ TALLOC_CTX *samdb_context;
+ samdb_context = talloc_new(event_ctx);
+ samdb_connect(samdb_context, event_ctx, cmdline_lp_ctx, system_session(samdb_context, cmdline_lp_ctx));
+ talloc_free(samdb_context);
+}
+
+/*
main server.
*/
static int binary_smbd_main(const char *binary_name, int argc, const char *argv[])
@@ -344,6 +360,8 @@ static int binary_smbd_main(const char *binary_name, int argc, const char *argv[
discard_const(binary_name));
}
+ prime_samdb_schema(event_ctx);
+
DEBUG(0,("%s: using '%s' process model\n", binary_name, model));
status = server_service_startup(event_ctx, cmdline_lp_ctx, model,
lp_server_services(cmdline_lp_ctx));
diff --git a/source4/torture/ldap/basic.c b/source4/torture/ldap/basic.c
index 3ed0b481ea..c2a26f81b8 100644
--- a/source4/torture/ldap/basic.c
+++ b/source4/torture/ldap/basic.c
@@ -217,7 +217,7 @@ static bool test_error_codes(struct torture_context *tctx,
WERROR err;
NTSTATUS status;
- printf("Testing error codes\n");
+ printf("Testing error codes - to make this test pass against SAMBA 4 you have to specify the target!\n");
if (!basedn) {
return false;
@@ -257,7 +257,7 @@ static bool test_error_codes(struct torture_context *tctx,
err = ad_error(rep->r.AddResponse.errormessage, &endptr);
err_code_str = win_errstr(err);
printf(" - Errorcode: %s; Reason: %s\n", err_code_str, endptr);
- if (torture_setting_bool(tctx, "samba4", false)) {
+ if (!torture_setting_bool(tctx, "samba4", false)) {
if ((!W_ERROR_EQUAL(err, WERR_DS_REFERRAL))
|| (rep->r.AddResponse.resultcode != 10)) {
return false;
@@ -269,18 +269,6 @@ static bool test_error_codes(struct torture_context *tctx,
}
}
- printf(" Try a wrong removal\n");
-
- msg->type = LDAP_TAG_DelRequest;
- msg->r.DelRequest.dn = "";
-
- req = ldap_request_send(conn, msg);
- if (!req) {
- return false;
- }
-
- status = ldap_result_one(req, &rep, LDAP_TAG_DelResponse);
-
printf(" Try a wrong modification\n");
msg->type = LDAP_TAG_ModifyRequest;
@@ -310,7 +298,7 @@ static bool test_error_codes(struct torture_context *tctx,
err = ad_error(rep->r.ModifyResponse.errormessage, &endptr);
err_code_str = win_errstr(err);
printf(" - Errorcode: %s; Reason: %s\n", err_code_str, endptr);
- if (torture_setting_bool(tctx, "samba4", false)) {
+ if (!torture_setting_bool(tctx, "samba4", false)) {
if ((!W_ERROR_EQUAL(err, WERR_INVALID_PARAM))
|| (rep->r.ModifyResponse.resultcode != 53)) {
return false;
@@ -349,7 +337,7 @@ static bool test_error_codes(struct torture_context *tctx,
err = ad_error(rep->r.DelResponse.errormessage, &endptr);
err_code_str = win_errstr(err);
printf(" - Errorcode: %s; Reason: %s\n", err_code_str, endptr);
- if (torture_setting_bool(tctx, "samba4", false)) {
+ if (!torture_setting_bool(tctx, "samba4", false)) {
if ((!W_ERROR_EQUAL(err, WERR_DS_OBJ_NOT_FOUND))
|| (rep->r.DelResponse.resultcode != 32)) {
return false;
diff --git a/source4/torture/raw/rename.c b/source4/torture/raw/rename.c
index e91c3b2319..15fed0e3d8 100644
--- a/source4/torture/raw/rename.c
+++ b/source4/torture/raw/rename.c
@@ -529,6 +529,7 @@ static bool test_dir_rename(struct torture_context *tctx, struct smbcli_state *c
const char *dname1 = BASEDIR "\\dir_for_rename";
const char *dname2 = BASEDIR "\\renamed_dir";
const char *fname = BASEDIR "\\dir_for_rename\\file.txt";
+ const char *sname = BASEDIR "\\dir_for_rename:a stream:$DATA";
bool ret = true;
int fnum = -1;
@@ -593,6 +594,55 @@ static bool test_dir_rename(struct torture_context *tctx, struct smbcli_state *c
status = smb_raw_rename(cli->tree, &ren_io);
CHECK_STATUS(status, NT_STATUS_ACCESS_DENIED);
+ /* Close the file and try the rename. */
+ smbcli_close(cli->tree, fnum);
+
+ status = smb_raw_rename(cli->tree, &ren_io);
+ CHECK_STATUS(status, NT_STATUS_OK);
+
+ /*
+ * Now try just holding a second handle on the directory and holding
+ * it open across a rename. This should be allowed.
+ */
+ io.ntcreatex.in.fname = dname2;
+ io.ntcreatex.in.open_disposition = NTCREATEX_DISP_OPEN_IF;
+
+ io.ntcreatex.in.access_mask = SEC_STD_READ_CONTROL |
+ SEC_FILE_READ_ATTRIBUTE | SEC_FILE_READ_EA | SEC_FILE_READ_DATA;
+
+ status = smb_raw_open(cli->tree, tctx, &io);
+ CHECK_STATUS(status, NT_STATUS_OK);
+ fnum = io.ntcreatex.out.file.fnum;
+
+ ren_io.generic.level = RAW_RENAME_RENAME;
+ ren_io.rename.in.pattern1 = dname2;
+ ren_io.rename.in.pattern2 = dname1;
+ ren_io.rename.in.attrib = 0;
+
+ status = smb_raw_rename(cli->tree, &ren_io);
+ CHECK_STATUS(status, NT_STATUS_OK);
+
+ /* close our handle to the directory. */
+ smbcli_close(cli->tree, fnum);
+
+ /*
+ * Now try opening a stream on the directory and holding it open
+ * across a rename. This should be allowed.
+ */
+ io.ntcreatex.in.fname = sname;
+
+ status = smb_raw_open(cli->tree, tctx, &io);
+ CHECK_STATUS(status, NT_STATUS_OK);
+ fnum = io.ntcreatex.out.file.fnum;
+
+ ren_io.generic.level = RAW_RENAME_RENAME;
+ ren_io.rename.in.pattern1 = dname1;
+ ren_io.rename.in.pattern2 = dname2;
+ ren_io.rename.in.attrib = 0;
+
+ status = smb_raw_rename(cli->tree, &ren_io);
+ CHECK_STATUS(status, NT_STATUS_OK);
+
done:
if (fnum != -1) {
diff --git a/source4/winbind/wb_init_domain.c b/source4/winbind/wb_init_domain.c
index 676746681f..1f560c17ce 100644
--- a/source4/winbind/wb_init_domain.c
+++ b/source4/winbind/wb_init_domain.c
@@ -211,7 +211,7 @@ static void init_domain_recv_netlogonpipe(struct composite_context *ctx)
if (!composite_is_ok(state->ctx)) {
return;
}
- talloc_steal(state->domain->netlogon_pipe, state->domain->netlogon_binding);
+ talloc_reparent(state, state->domain->netlogon_pipe, state->domain->netlogon_binding);
state->domain->lsa_binding = init_domain_binding(state, &ndr_table_lsarpc);
@@ -286,7 +286,7 @@ static void init_domain_recv_lsa_pipe(struct composite_context *ctx)
if (!composite_is_ok(state->ctx)) return;
talloc_steal(state->domain->libnet_ctx, state->domain->libnet_ctx->lsa.pipe);
- talloc_steal(state->domain->libnet_ctx->lsa.pipe, state->domain->lsa_binding);
+ talloc_reparent(state, state->domain->libnet_ctx->lsa.pipe, state->domain->lsa_binding);
state->domain->libnet_ctx->lsa.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
state->domain->libnet_ctx->lsa.name = state->domain->info->name;
@@ -399,7 +399,7 @@ static void init_domain_recv_samr(struct composite_context *ctx)
&state->domain->libnet_ctx->samr.handle);
if (!composite_is_ok(state->ctx)) return;
- talloc_steal(state->domain->libnet_ctx->samr.pipe, state->domain->samr_binding);
+ talloc_reparent(state, state->domain->libnet_ctx->samr.pipe, state->domain->samr_binding);
state->domain->libnet_ctx->samr.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
state->domain->libnet_ctx->samr.name = state->domain->info->name;
state->domain->libnet_ctx->samr.sid = dom_sid_dup(
diff --git a/testsuite/libsmbclient/src/Makefile b/testsuite/libsmbclient/src/Makefile
index 8b4658f7db..c8c0b673a3 100644
--- a/testsuite/libsmbclient/src/Makefile
+++ b/testsuite/libsmbclient/src/Makefile
@@ -2,7 +2,7 @@ CC = gcc
CFLAGS = -Wall -W -O2 -g -I../../../source/include
LFLAGS = -L../../../source/bin
-LIBS= -L/usr/lib -lsmbclient
+LIBS= -L/usr/lib -lsmbclient -ltalloc
INCPATH= -I. -I/usr/include -I./include
BIN_DIR=bin
@@ -99,7 +99,8 @@ G_STAT = $(BIN_DIR)/stat_1 \
$(BIN_DIR)/stat_3 \
$(BIN_DIR)/stat_4 \
$(BIN_DIR)/stat_5 \
- $(BIN_DIR)/stat_6
+ $(BIN_DIR)/stat_6 \
+ $(BIN_DIR)/stat_k
G_GETDENTS = $(BIN_DIR)/getdents_1 \
$(BIN_DIR)/getdents_2 \
@@ -521,6 +522,10 @@ $(BIN_DIR)/stat_6: stat/stat_6.o
@echo Linking $@
@$(CC) $(LFLAGS) -o $@ stat/stat_6.o $(INCPATH) $(LIBS)
+$(BIN_DIR)/stat_k: stat/stat_k.o
+ @echo Linking $@
+ @$(CC) $(LFLAGS) -o $@ stat/stat_k.o $(INCPATH) $(LIBS)
+
$(BIN_DIR)/getdents_1: getdents/getdents_1.o
@echo Linking $@
@$(CC) $(LFLAGS) -o $@ getdents/getdents_1.o $(INCPATH) $(LIBS)
diff --git a/testsuite/libsmbclient/src/stat/stat_k.c b/testsuite/libsmbclient/src/stat/stat_k.c
new file mode 100644
index 0000000000..168ccae018
--- /dev/null
+++ b/testsuite/libsmbclient/src/stat/stat_k.c
@@ -0,0 +1,91 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#include <unistd.h>
+#include <libsmbclient.h>
+
+#define MAX_BUFF_SIZE 255
+char g_workgroup[MAX_BUFF_SIZE];
+char g_username[MAX_BUFF_SIZE];
+char g_password[MAX_BUFF_SIZE];
+char g_server[MAX_BUFF_SIZE];
+char g_share[MAX_BUFF_SIZE];
+
+
+void auth_fn(const char *server, const char *share, char *workgroup, int wgmaxlen,
+ char *username, int unmaxlen, char *password, int pwmaxlen)
+{
+
+ strncpy(workgroup, g_workgroup, wgmaxlen - 1);
+
+ strncpy(username, g_username, unmaxlen - 1);
+
+ strncpy(password, g_password, pwmaxlen - 1);
+
+ strcpy(g_server, server);
+ strcpy(g_share, share);
+
+}
+
+int main(int argc, char** argv)
+{
+ int err = -1;
+ char url[MAX_BUFF_SIZE];
+ struct stat st;
+ char *user;
+ SMBCCTX *ctx;
+
+ bzero(g_workgroup,MAX_BUFF_SIZE);
+ bzero(url,MAX_BUFF_SIZE);
+
+ if ( argc == 2)
+ {
+ char *p;
+ user = getenv("USER");
+ if (!user) {
+ printf("no user??\n");
+ return 0;
+ }
+
+ printf("username: %s\n", user);
+
+ p = strchr(user, '\\');
+ if (! p) {
+ printf("BAD username??\n");
+ return 0;
+ }
+ strncpy(g_workgroup, user, strlen(user));
+ g_workgroup[p - user] = 0;
+ strncpy(g_username, p + 1, strlen(p + 1));
+ memset(g_password, 0, sizeof(char) * MAX_BUFF_SIZE);
+ strncpy(url,argv[1],strlen(argv[1]));
+
+ err = smbc_init(auth_fn, 10);
+ if (err) {
+ printf("init smbclient context failed!!\n");
+ return err;
+ }
+ /* Using null context actually get the old context. */
+ ctx = smbc_set_context(NULL);
+ smbc_setOptionUseKerberos(ctx, 1);
+ smbc_setOptionFallbackAfterKerberos(ctx, 1);
+ smbc_setWorkgroup(ctx, g_workgroup);
+ smbc_setUser(ctx, g_username);
+ err = smbc_stat(url, &st);
+
+ if ( err < 0 ) {
+ err = 1;
+ printf("stat failed!!\n");
+ }
+ else {
+ err = 0;
+ printf("stat succeeded!!\n");
+ }
+
+
+ }
+
+ return err;
+
+}