diff options
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, ¤t_pos, &st); + finished = !dptr_SearchDir(dirptr, resume_name, ¤t_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; + +} |