mirror of
https://github.com/samba-team/samba.git
synced 2025-02-04 17:47:26 +03:00
it now all compiles - so try enabling it by default and see what explodes on the build farm
(This used to be commit 5bb7e4f0f65edf1db20245f403cbe81833134240)
This commit is contained in:
parent
b5b9c46c0f
commit
c76dd14040
@ -213,7 +213,7 @@ typedef struct nttime_info
|
|||||||
are mixed up. This is especially important as we slowly convert Samba
|
are mixed up. This is especially important as we slowly convert Samba
|
||||||
from using BOOL for internal functions
|
from using BOOL for internal functions
|
||||||
*/
|
*/
|
||||||
#if defined(HAVE_IMMEDIATE_STRUCTURES) && defined(TRIDGE_TEST)
|
#if defined(HAVE_IMMEDIATE_STRUCTURES)
|
||||||
typedef struct {uint32 v;} NTSTATUS;
|
typedef struct {uint32 v;} NTSTATUS;
|
||||||
#define NT_STATUS(x) ((NTSTATUS) { x })
|
#define NT_STATUS(x) ((NTSTATUS) { x })
|
||||||
#define NT_STATUS_V(x) ((x).v)
|
#define NT_STATUS_V(x) ((x).v)
|
||||||
@ -223,7 +223,7 @@ typedef uint32 NTSTATUS;
|
|||||||
#define NT_STATUS_V(x) (x)
|
#define NT_STATUS_V(x) (x)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(HAVE_IMMEDIATE_STRUCTURES) && defined(TRIDGE_TEST)
|
#if defined(HAVE_IMMEDIATE_STRUCTURES)
|
||||||
typedef struct {uint32 v;} WERROR;
|
typedef struct {uint32 v;} WERROR;
|
||||||
#define W_ERROR(x) ((WERROR) { x })
|
#define W_ERROR(x) ((WERROR) { x })
|
||||||
#define W_ERROR_V(x) ((x).v)
|
#define W_ERROR_V(x) ((x).v)
|
||||||
|
@ -212,8 +212,8 @@ int smbc_errno(struct cli_state *c)
|
|||||||
status = cli_nt_error(c);
|
status = cli_nt_error(c);
|
||||||
ret = cli_errno_from_nt(status);
|
ret = cli_errno_from_nt(status);
|
||||||
|
|
||||||
DEBUG(3,("smbc errno 0x%08x -> %d\n",
|
DEBUG(3,("smbc errno %s -> %d\n",
|
||||||
status, ret));
|
get_nt_error_msg(status), ret));
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -66,7 +66,7 @@ BOOL dfs_io_r_dfs_exist(char *desc, DFS_R_DFS_EXIST *q_d, prs_struct *ps, int de
|
|||||||
if(!prs_align(ps))
|
if(!prs_align(ps))
|
||||||
return False;
|
return False;
|
||||||
|
|
||||||
if(!prs_ntstatus("exist flag", ps, 0, &q_d->status))
|
if(!prs_uint32("exist flag", ps, 0, &q_d->status))
|
||||||
return False;
|
return False;
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
|
@ -2445,7 +2445,7 @@ BOOL net_io_r_sam_sync(char *desc, uint8 sess_key[16],
|
|||||||
}
|
}
|
||||||
|
|
||||||
prs_align(ps);
|
prs_align(ps);
|
||||||
if (!prs_uint32("status", ps, depth, &r_s->status))
|
if (!prs_ntstatus("status", ps, depth, &(r_s->status)))
|
||||||
return False;
|
return False;
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
@ -2578,7 +2578,7 @@ BOOL net_io_r_sam_deltas(char *desc, uint8 sess_key[16],
|
|||||||
}
|
}
|
||||||
|
|
||||||
prs_align(ps);
|
prs_align(ps);
|
||||||
if (!prs_uint32("status", ps, depth, &r_s->status))
|
if (!prs_ntstatus("status", ps, depth, &r_s->status))
|
||||||
return False;
|
return False;
|
||||||
|
|
||||||
return True;
|
return True;
|
||||||
|
@ -27,15 +27,15 @@ extern pstring server;
|
|||||||
|
|
||||||
/* Check DFS is supported by the remote server */
|
/* Check DFS is supported by the remote server */
|
||||||
|
|
||||||
static uint32 cmd_dfs_exist(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_dfs_exist(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
BOOL dfs_exists;
|
BOOL dfs_exists;
|
||||||
uint32 result;
|
NTSTATUS result;
|
||||||
|
|
||||||
if (argc != 1) {
|
if (argc != 1) {
|
||||||
printf("Usage: %s\n", argv[0]);
|
printf("Usage: %s\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx = talloc_init())) {
|
if (!(mem_ctx = talloc_init())) {
|
||||||
@ -53,7 +53,7 @@ static uint32 cmd_dfs_exist(struct cli_state *cli, int argc, char **argv)
|
|||||||
|
|
||||||
result = cli_dfs_exist(cli, mem_ctx, &dfs_exists);
|
result = cli_dfs_exist(cli, mem_ctx, &dfs_exists);
|
||||||
|
|
||||||
if (result == NT_STATUS_OK)
|
if (NT_STATUS_IS_OK(result))
|
||||||
printf("dfs is %spresent\n", dfs_exists ? "" : "not ");
|
printf("dfs is %spresent\n", dfs_exists ? "" : "not ");
|
||||||
|
|
||||||
cli_nt_session_close(cli);
|
cli_nt_session_close(cli);
|
||||||
@ -63,17 +63,17 @@ done:
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32 cmd_dfs_add(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_dfs_add(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result;
|
NTSTATUS result;
|
||||||
char *entrypath, *servername, *sharename, *comment;
|
char *entrypath, *servername, *sharename, *comment;
|
||||||
uint32 flags = 0;
|
uint32 flags = 0;
|
||||||
|
|
||||||
if (argc != 5) {
|
if (argc != 5) {
|
||||||
printf("Usage: %s entrypath servername sharename comment\n",
|
printf("Usage: %s entrypath servername sharename comment\n",
|
||||||
argv[0]);
|
argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
entrypath = argv[1];
|
entrypath = argv[1];
|
||||||
@ -104,15 +104,15 @@ done:
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32 cmd_dfs_remove(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_dfs_remove(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result;
|
NTSTATUS result;
|
||||||
char *entrypath, *servername, *sharename;
|
char *entrypath, *servername, *sharename;
|
||||||
|
|
||||||
if (argc != 4) {
|
if (argc != 4) {
|
||||||
printf("Usage: %s entrypath servername sharename\n", argv[0]);
|
printf("Usage: %s entrypath servername sharename\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
entrypath = argv[1];
|
entrypath = argv[1];
|
||||||
@ -222,15 +222,16 @@ static void display_dfs_info_ctr(DFS_INFO_CTR *ctr)
|
|||||||
|
|
||||||
/* Enumerate dfs shares */
|
/* Enumerate dfs shares */
|
||||||
|
|
||||||
static uint32 cmd_dfs_enum(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_dfs_enum(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
DFS_INFO_CTR ctr;
|
DFS_INFO_CTR ctr;
|
||||||
uint32 result, info_level = 1;
|
NTSTATUS result;
|
||||||
|
uint32 info_level = 1;
|
||||||
|
|
||||||
if (argc > 2) {
|
if (argc > 2) {
|
||||||
printf("Usage: %s [info_level]\n", argv[0]);
|
printf("Usage: %s [info_level]\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc == 2)
|
if (argc == 2)
|
||||||
@ -238,7 +239,7 @@ static uint32 cmd_dfs_enum(struct cli_state *cli, int argc, char **argv)
|
|||||||
|
|
||||||
if (!(mem_ctx = talloc_init())) {
|
if (!(mem_ctx = talloc_init())) {
|
||||||
DEBUG(0,("cmd_dfs_enum: talloc_init failed\n"));
|
DEBUG(0,("cmd_dfs_enum: talloc_init failed\n"));
|
||||||
return NT_STATUS_UNSUCCESSFUL;
|
return NT_STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialise RPC connection */
|
/* Initialise RPC connection */
|
||||||
@ -251,9 +252,8 @@ static uint32 cmd_dfs_enum(struct cli_state *cli, int argc, char **argv)
|
|||||||
|
|
||||||
/* Call RPC function */
|
/* Call RPC function */
|
||||||
|
|
||||||
if ((result = cli_dfs_enum(cli, mem_ctx, info_level, &ctr))
|
result = cli_dfs_enum(cli, mem_ctx, info_level, &ctr);
|
||||||
== NT_STATUS_OK) {
|
if (NT_STATUS_IS_OK(result)) {
|
||||||
|
|
||||||
/* Print results */
|
/* Print results */
|
||||||
display_dfs_info_ctr(&ctr);
|
display_dfs_info_ctr(&ctr);
|
||||||
}
|
}
|
||||||
@ -265,17 +265,17 @@ done:
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32 cmd_dfs_getinfo(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_dfs_getinfo(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result;
|
NTSTATUS result;
|
||||||
char *entrypath, *servername, *sharename;
|
char *entrypath, *servername, *sharename;
|
||||||
uint32 info_level = 1;
|
uint32 info_level = 1;
|
||||||
DFS_INFO_CTR ctr;
|
DFS_INFO_CTR ctr;
|
||||||
|
|
||||||
if (argc < 4 || argc > 5) {
|
if (argc < 4 || argc > 5) {
|
||||||
printf("Usage: %s entrypath servername sharename [info_level]\n", argv[0]);
|
printf("Usage: %s entrypath servername sharename [info_level]\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
entrypath = argv[1];
|
entrypath = argv[1];
|
||||||
@ -300,12 +300,10 @@ static uint32 cmd_dfs_getinfo(struct cli_state *cli, int argc, char **argv)
|
|||||||
|
|
||||||
/* Call RPC function */
|
/* Call RPC function */
|
||||||
|
|
||||||
if ((result = cli_dfs_get_info(cli, mem_ctx, entrypath, servername,
|
result = cli_dfs_get_info(cli, mem_ctx, entrypath, servername,
|
||||||
sharename, info_level, &ctr))
|
sharename, info_level, &ctr);
|
||||||
== NT_STATUS_OK) {
|
if (NT_STATUS_IS_OK(result)) {
|
||||||
|
|
||||||
/* Print results */
|
/* Print results */
|
||||||
|
|
||||||
display_dfs_info_ctr(&ctr);
|
display_dfs_info_ctr(&ctr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,16 +24,16 @@
|
|||||||
|
|
||||||
extern int DEBUGLEVEL;
|
extern int DEBUGLEVEL;
|
||||||
|
|
||||||
static uint32 cmd_netlogon_logon_ctrl2(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_netlogon_logon_ctrl2(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
uint32 query_level = 1;
|
uint32 query_level = 1;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
|
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
printf("Usage: %s\n", argv[0]);
|
printf("Usage: %s\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx = talloc_init())) {
|
if (!(mem_ctx = talloc_init())) {
|
||||||
@ -48,8 +48,8 @@ static uint32 cmd_netlogon_logon_ctrl2(struct cli_state *cli, int argc,
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result = cli_netlogon_logon_ctrl2(cli, mem_ctx, query_level))
|
result = cli_netlogon_logon_ctrl2(cli, mem_ctx, query_level);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,18 +59,18 @@ static uint32 cmd_netlogon_logon_ctrl2(struct cli_state *cli, int argc,
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32 cmd_netlogon_logon_ctrl(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_netlogon_logon_ctrl(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
uint32 query_level = 1;
|
uint32 query_level = 1;
|
||||||
#endif
|
#endif
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
|
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
printf("Usage: %s\n", argv[0]);
|
printf("Usage: %s\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx = talloc_init())) {
|
if (!(mem_ctx = talloc_init())) {
|
||||||
@ -86,8 +86,8 @@ static uint32 cmd_netlogon_logon_ctrl(struct cli_state *cli, int argc,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
if ((result = cli_netlogon_logon_ctrl(cli, mem_ctx, query_level))
|
result = cli_netlogon_logon_ctrl(cli, mem_ctx, query_level);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -169,10 +169,10 @@ static void display_sam_sync(uint32 num_deltas, SAM_DELTA_HDR *hdr_deltas,
|
|||||||
|
|
||||||
/* Perform sam synchronisation */
|
/* Perform sam synchronisation */
|
||||||
|
|
||||||
static uint32 cmd_netlogon_sam_sync(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_netlogon_sam_sync(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
unsigned char trust_passwd[16];
|
unsigned char trust_passwd[16];
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 database_id = 0, num_deltas;
|
uint32 database_id = 0, num_deltas;
|
||||||
@ -181,7 +181,7 @@ static uint32 cmd_netlogon_sam_sync(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
if (argc > 2) {
|
if (argc > 2) {
|
||||||
printf("Usage: %s [database_id]\n", argv[0]);
|
printf("Usage: %s [database_id]\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc == 2)
|
if (argc == 2)
|
||||||
@ -219,9 +219,9 @@ static uint32 cmd_netlogon_sam_sync(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Synchronise sam database */
|
/* Synchronise sam database */
|
||||||
|
|
||||||
if ((result = cli_netlogon_sam_sync(cli, mem_ctx, database_id,
|
result = cli_netlogon_sam_sync(cli, mem_ctx, database_id,
|
||||||
&num_deltas, &hdr_deltas, &deltas))
|
&num_deltas, &hdr_deltas, &deltas);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -238,10 +238,10 @@ static uint32 cmd_netlogon_sam_sync(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Perform sam delta synchronisation */
|
/* Perform sam delta synchronisation */
|
||||||
|
|
||||||
static uint32 cmd_netlogon_sam_deltas(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_netlogon_sam_deltas(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
unsigned char trust_passwd[16];
|
unsigned char trust_passwd[16];
|
||||||
TALLOC_CTX *mem_ctx = NULL;
|
TALLOC_CTX *mem_ctx = NULL;
|
||||||
uint32 database_id, num_deltas, tmp;
|
uint32 database_id, num_deltas, tmp;
|
||||||
@ -251,7 +251,7 @@ static uint32 cmd_netlogon_sam_deltas(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
if (argc != 3) {
|
if (argc != 3) {
|
||||||
printf("Usage: %s database_id seqnum\n", argv[0]);
|
printf("Usage: %s database_id seqnum\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
database_id = atoi(argv[1]);
|
database_id = atoi(argv[1]);
|
||||||
@ -292,10 +292,10 @@ static uint32 cmd_netlogon_sam_deltas(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Synchronise sam database */
|
/* Synchronise sam database */
|
||||||
|
|
||||||
if ((result = cli_netlogon_sam_deltas(cli, mem_ctx, database_id,
|
result = cli_netlogon_sam_deltas(cli, mem_ctx, database_id,
|
||||||
seqnum, &num_deltas,
|
seqnum, &num_deltas,
|
||||||
&hdr_deltas, &deltas))
|
&hdr_deltas, &deltas);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -906,9 +906,9 @@ static void cmd_reg_get_key_sec(struct client_info *info)
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
nt registry shutdown
|
nt registry shutdown
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
static uint32 cmd_reg_shutdown(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_reg_shutdown(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
fstring msg;
|
fstring msg;
|
||||||
uint32 timeout = 20;
|
uint32 timeout = 20;
|
||||||
uint16 flgs = 0;
|
uint16 flgs = 0;
|
||||||
@ -973,7 +973,7 @@ static uint32 cmd_reg_shutdown(struct cli_state *cli, int argc, char **argv)
|
|||||||
/* create an entry */
|
/* create an entry */
|
||||||
result = cli_reg_shutdown(cli, mem_ctx, srv_name, msg, timeout, flgs);
|
result = cli_reg_shutdown(cli, mem_ctx, srv_name, msg, timeout, flgs);
|
||||||
|
|
||||||
if (result == NT_STATUS_OK)
|
if (NT_STATUS_IS_OK(result))
|
||||||
DEBUG(5,("cmd_reg_shutdown: query succeeded\n"));
|
DEBUG(5,("cmd_reg_shutdown: query succeeded\n"));
|
||||||
else
|
else
|
||||||
DEBUG(5,("cmd_reg_shutdown: query failed\n"));
|
DEBUG(5,("cmd_reg_shutdown: query failed\n"));
|
||||||
@ -989,9 +989,9 @@ done:
|
|||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
abort a shutdown
|
abort a shutdown
|
||||||
****************************************************************************/
|
****************************************************************************/
|
||||||
static uint32 cmd_reg_abort_shutdown(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_reg_abort_shutdown(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
int ret;
|
int ret;
|
||||||
char *srv_name;
|
char *srv_name;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
@ -1017,7 +1017,7 @@ static uint32 cmd_reg_abort_shutdown(struct cli_state *cli, int argc, char **arg
|
|||||||
|
|
||||||
result = cli_reg_abort_shutdown(cli, mem_ctx, srv_name);
|
result = cli_reg_abort_shutdown(cli, mem_ctx, srv_name);
|
||||||
|
|
||||||
if (result == NT_STATUS_OK)
|
if (NT_STATUS_IS_OK(result))
|
||||||
DEBUG(5,("cmd_reg_abort_shutdown: query succeeded\n"));
|
DEBUG(5,("cmd_reg_abort_shutdown: query succeeded\n"));
|
||||||
else
|
else
|
||||||
DEBUG(5,("cmd_reg_abort_shutdown: query failed\n"));
|
DEBUG(5,("cmd_reg_abort_shutdown: query failed\n"));
|
||||||
|
@ -138,7 +138,7 @@ void display_sam_info_1(SAM_ENTRY1 *e1, SAM_STR1 *s1)
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* Query user information
|
* Query user information
|
||||||
*/
|
*/
|
||||||
static uint32 cmd_samr_query_user(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_samr_query_user(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND connect_pol, domain_pol, user_pol;
|
POLICY_HND connect_pol, domain_pol, user_pol;
|
||||||
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
@ -154,7 +154,7 @@ static uint32 cmd_samr_query_user(struct cli_state *cli, int argc, char **argv)
|
|||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
printf("Usage: %s rid\n", argv[0]);
|
printf("Usage: %s rid\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
sscanf(argv[1], "%i", &user_rid);
|
sscanf(argv[1], "%i", &user_rid);
|
||||||
@ -177,27 +177,27 @@ static uint32 cmd_samr_query_user(struct cli_state *cli, int argc, char **argv)
|
|||||||
slprintf (server, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
slprintf (server, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
||||||
strupper (server);
|
strupper (server);
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol)) !=
|
&connect_pol);
|
||||||
NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_connect_pol = True;
|
got_connect_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_domain_pol = True;
|
got_domain_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_user(cli, mem_ctx, &domain_pol,
|
result = cli_samr_open_user(cli, mem_ctx, &domain_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
user_rid, &user_pol))
|
user_rid, &user_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -205,9 +205,9 @@ static uint32 cmd_samr_query_user(struct cli_state *cli, int argc, char **argv)
|
|||||||
|
|
||||||
ZERO_STRUCT(user_ctr);
|
ZERO_STRUCT(user_ctr);
|
||||||
|
|
||||||
if ((result = cli_samr_query_userinfo(cli, mem_ctx, &user_pol,
|
result = cli_samr_query_userinfo(cli, mem_ctx, &user_pol,
|
||||||
info_level, &user_ctr))
|
info_level, &user_ctr);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -270,10 +270,11 @@ static void display_group_info_ctr(GROUP_INFO_CTR *ctr)
|
|||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* Query group information
|
* Query group information
|
||||||
*/
|
*/
|
||||||
static uint32 cmd_samr_query_group(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_samr_query_group(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND connect_pol, domain_pol, group_pol;
|
POLICY_HND connect_pol, domain_pol, group_pol;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL, info_level = 1;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
|
uint32 info_level = 1;
|
||||||
BOOL got_connect_pol = False, got_domain_pol = False,
|
BOOL got_connect_pol = False, got_domain_pol = False,
|
||||||
got_group_pol = False;
|
got_group_pol = False;
|
||||||
GROUP_INFO_CTR group_ctr;
|
GROUP_INFO_CTR group_ctr;
|
||||||
@ -283,7 +284,7 @@ static uint32 cmd_samr_query_group(struct cli_state *cli, int argc, char **argv)
|
|||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
printf("Usage: %s rid\n", argv[0]);
|
printf("Usage: %s rid\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
group_rid = atoi(argv[1]);
|
group_rid = atoi(argv[1]);
|
||||||
@ -305,27 +306,27 @@ static uint32 cmd_samr_query_group(struct cli_state *cli, int argc, char **argv)
|
|||||||
slprintf (server, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
slprintf (server, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
||||||
strupper (server);
|
strupper (server);
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol)) !=
|
&connect_pol);
|
||||||
NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_connect_pol = True;
|
got_connect_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_domain_pol = True;
|
got_domain_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_group(cli, mem_ctx, &domain_pol,
|
result = cli_samr_open_group(cli, mem_ctx, &domain_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
group_rid, &group_pol))
|
group_rid, &group_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,9 +334,9 @@ static uint32 cmd_samr_query_group(struct cli_state *cli, int argc, char **argv)
|
|||||||
|
|
||||||
ZERO_STRUCT(group_ctr);
|
ZERO_STRUCT(group_ctr);
|
||||||
|
|
||||||
if ((result = cli_samr_query_groupinfo(cli, mem_ctx, &group_pol,
|
result = cli_samr_query_groupinfo(cli, mem_ctx, &group_pol,
|
||||||
info_level, &group_ctr))
|
info_level, &group_ctr);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -354,12 +355,12 @@ done:
|
|||||||
|
|
||||||
/* Query groups a user is a member of */
|
/* Query groups a user is a member of */
|
||||||
|
|
||||||
static uint32 cmd_samr_query_usergroups(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_samr_query_usergroups(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND connect_pol,
|
POLICY_HND connect_pol,
|
||||||
domain_pol,
|
domain_pol,
|
||||||
user_pol;
|
user_pol;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
BOOL got_connect_pol = False,
|
BOOL got_connect_pol = False,
|
||||||
got_domain_pol = False,
|
got_domain_pol = False,
|
||||||
got_user_pol = False;
|
got_user_pol = False;
|
||||||
@ -372,13 +373,13 @@ static uint32 cmd_samr_query_usergroups(struct cli_state *cli, int argc, char **
|
|||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
printf("Usage: %s rid\n", argv[0]);
|
printf("Usage: %s rid\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx=talloc_init()))
|
if (!(mem_ctx=talloc_init()))
|
||||||
{
|
{
|
||||||
DEBUG(0,("cmd_samr_query_usergroups: talloc_init returned NULL!\n"));
|
DEBUG(0,("cmd_samr_query_usergroups: talloc_init returned NULL!\n"));
|
||||||
return NT_STATUS_UNSUCCESSFUL;
|
return NT_STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
sscanf(argv[1], "%i", &user_rid);
|
sscanf(argv[1], "%i", &user_rid);
|
||||||
@ -395,35 +396,35 @@ static uint32 cmd_samr_query_usergroups(struct cli_state *cli, int argc, char **
|
|||||||
slprintf (server, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
slprintf (server, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
||||||
strupper (server);
|
strupper (server);
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol)) !=
|
&connect_pol);
|
||||||
NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_connect_pol = True;
|
got_connect_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_domain_pol = True;
|
got_domain_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_user(cli, mem_ctx, &domain_pol,
|
result = cli_samr_open_user(cli, mem_ctx, &domain_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
user_rid, &user_pol))
|
user_rid, &user_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_user_pol = True;
|
got_user_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_query_usergroups(cli, mem_ctx, &user_pol,
|
result = cli_samr_query_usergroups(cli, mem_ctx, &user_pol,
|
||||||
&num_groups, &user_gids))
|
&num_groups, &user_gids);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -445,10 +446,10 @@ static uint32 cmd_samr_query_usergroups(struct cli_state *cli, int argc, char **
|
|||||||
|
|
||||||
/* Query members of a group */
|
/* Query members of a group */
|
||||||
|
|
||||||
static uint32 cmd_samr_query_groupmem(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_samr_query_groupmem(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND connect_pol, domain_pol, group_pol;
|
POLICY_HND connect_pol, domain_pol, group_pol;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
BOOL got_connect_pol = False,
|
BOOL got_connect_pol = False,
|
||||||
got_domain_pol = False,
|
got_domain_pol = False,
|
||||||
got_group_pol = False;
|
got_group_pol = False;
|
||||||
@ -459,13 +460,13 @@ static uint32 cmd_samr_query_groupmem(struct cli_state *cli, int argc, char **ar
|
|||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
printf("Usage: %s rid\n", argv[0]);
|
printf("Usage: %s rid\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx=talloc_init()))
|
if (!(mem_ctx=talloc_init()))
|
||||||
{
|
{
|
||||||
DEBUG(0,("cmd_samr_query_groupmem: talloc_init returned NULL!\n"));
|
DEBUG(0,("cmd_samr_query_groupmem: talloc_init returned NULL!\n"));
|
||||||
return NT_STATUS_UNSUCCESSFUL;
|
return NT_STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
sscanf(argv[1], "%i", &group_rid);
|
sscanf(argv[1], "%i", &group_rid);
|
||||||
@ -482,36 +483,36 @@ static uint32 cmd_samr_query_groupmem(struct cli_state *cli, int argc, char **ar
|
|||||||
slprintf (server, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
slprintf (server, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
||||||
strupper (server);
|
strupper (server);
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol)) !=
|
&connect_pol);
|
||||||
NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_connect_pol = True;
|
got_connect_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_domain_pol = True;
|
got_domain_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_group(cli, mem_ctx, &domain_pol,
|
result = cli_samr_open_group(cli, mem_ctx, &domain_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
group_rid, &group_pol))
|
group_rid, &group_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_group_pol = True;
|
got_group_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_query_groupmem(cli, mem_ctx, &group_pol,
|
result = cli_samr_query_groupmem(cli, mem_ctx, &group_pol,
|
||||||
&num_members, &group_rids,
|
&num_members, &group_rids,
|
||||||
&group_attrs))
|
&group_attrs);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -533,11 +534,11 @@ static uint32 cmd_samr_query_groupmem(struct cli_state *cli, int argc, char **ar
|
|||||||
|
|
||||||
/* Enumerate domain groups */
|
/* Enumerate domain groups */
|
||||||
|
|
||||||
static uint32 cmd_samr_enum_dom_groups(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_samr_enum_dom_groups(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND connect_pol, domain_pol;
|
POLICY_HND connect_pol, domain_pol;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
BOOL got_connect_pol = False, got_domain_pol = False;
|
BOOL got_connect_pol = False, got_domain_pol = False;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 start_idx, size, num_dom_groups, i;
|
uint32 start_idx, size, num_dom_groups, i;
|
||||||
@ -545,7 +546,7 @@ static uint32 cmd_samr_enum_dom_groups(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
if (argc != 1) {
|
if (argc != 1) {
|
||||||
printf("Usage: %s\n", argv[0]);
|
printf("Usage: %s\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx = talloc_init())) {
|
if (!(mem_ctx = talloc_init())) {
|
||||||
@ -566,9 +567,9 @@ static uint32 cmd_samr_enum_dom_groups(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get sam policy handle */
|
/* Get sam policy handle */
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol)) !=
|
&connect_pol);
|
||||||
NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -576,10 +577,10 @@ static uint32 cmd_samr_enum_dom_groups(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get domain policy handle */
|
/* Get domain policy handle */
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -610,19 +611,20 @@ static uint32 cmd_samr_enum_dom_groups(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Query alias membership */
|
/* Query alias membership */
|
||||||
|
|
||||||
static uint32 cmd_samr_query_aliasmem(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_samr_query_aliasmem(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND connect_pol, domain_pol, alias_pol;
|
POLICY_HND connect_pol, domain_pol, alias_pol;
|
||||||
BOOL got_connect_pol = False, got_domain_pol = False,
|
BOOL got_connect_pol = False, got_domain_pol = False,
|
||||||
got_alias_pol = False;
|
got_alias_pol = False;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL, alias_rid, num_members, i;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
|
uint32 alias_rid, num_members, i;
|
||||||
DOM_SID *alias_sids;
|
DOM_SID *alias_sids;
|
||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
printf("Usage: %s rid\n", argv[0]);
|
printf("Usage: %s rid\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx=talloc_init())) {
|
if (!(mem_ctx=talloc_init())) {
|
||||||
@ -645,9 +647,9 @@ static uint32 cmd_samr_query_aliasmem(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Open SAMR handle */
|
/* Open SAMR handle */
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol)) !=
|
&connect_pol);
|
||||||
NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -655,10 +657,10 @@ static uint32 cmd_samr_query_aliasmem(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Open handle on domain */
|
/* Open handle on domain */
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -666,18 +668,18 @@ static uint32 cmd_samr_query_aliasmem(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Open handle on alias */
|
/* Open handle on alias */
|
||||||
|
|
||||||
if ((result = cli_samr_open_alias(cli, mem_ctx, &domain_pol,
|
result = cli_samr_open_alias(cli, mem_ctx, &domain_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
alias_rid, &alias_pol))
|
alias_rid, &alias_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_alias_pol = True;
|
got_alias_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_query_aliasmem(cli, mem_ctx, &alias_pol,
|
result = cli_samr_query_aliasmem(cli, mem_ctx, &alias_pol,
|
||||||
&num_members, &alias_sids))
|
&num_members, &alias_sids);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -701,11 +703,11 @@ static uint32 cmd_samr_query_aliasmem(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Query display info */
|
/* Query display info */
|
||||||
|
|
||||||
static uint32 cmd_samr_query_dispinfo(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_samr_query_dispinfo(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND connect_pol, domain_pol;
|
POLICY_HND connect_pol, domain_pol;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
BOOL got_connect_pol = False, got_domain_pol = False;
|
BOOL got_connect_pol = False, got_domain_pol = False;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 start_idx, max_entries, num_entries, i;
|
uint32 start_idx, max_entries, num_entries, i;
|
||||||
@ -715,13 +717,13 @@ static uint32 cmd_samr_query_dispinfo(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
if (argc != 1) {
|
if (argc != 1) {
|
||||||
printf("Usage: %s\n", argv[0]);
|
printf("Usage: %s\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx = talloc_init())) {
|
if (!(mem_ctx = talloc_init())) {
|
||||||
DEBUG(0, ("cmd_samr_query_dispinfo: talloc_init returned "
|
DEBUG(0, ("cmd_samr_query_dispinfo: talloc_init returned "
|
||||||
"NULL!\n"));
|
"NULL!\n"));
|
||||||
return NT_STATUS_UNSUCCESSFUL;
|
return NT_STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch_domain_sid(cli);
|
fetch_domain_sid(cli);
|
||||||
@ -736,9 +738,9 @@ static uint32 cmd_samr_query_dispinfo(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get sam policy handle */
|
/* Get sam policy handle */
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol))
|
&connect_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -746,10 +748,10 @@ static uint32 cmd_samr_query_dispinfo(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get domain policy handle */
|
/* Get domain policy handle */
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -786,11 +788,11 @@ static uint32 cmd_samr_query_dispinfo(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Query domain info */
|
/* Query domain info */
|
||||||
|
|
||||||
static uint32 cmd_samr_query_dominfo(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_samr_query_dominfo(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND connect_pol, domain_pol;
|
POLICY_HND connect_pol, domain_pol;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
BOOL got_connect_pol = False, got_domain_pol = False;
|
BOOL got_connect_pol = False, got_domain_pol = False;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint16 switch_value = 2;
|
uint16 switch_value = 2;
|
||||||
@ -798,7 +800,7 @@ static uint32 cmd_samr_query_dominfo(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
if (argc > 2) {
|
if (argc > 2) {
|
||||||
printf("Usage: %s [infolevel]\n", argv[0]);
|
printf("Usage: %s [infolevel]\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc == 2)
|
if (argc == 2)
|
||||||
@ -822,9 +824,9 @@ static uint32 cmd_samr_query_dominfo(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get sam policy handle */
|
/* Get sam policy handle */
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol))
|
&connect_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -832,10 +834,10 @@ static uint32 cmd_samr_query_dominfo(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get domain policy handle */
|
/* Get domain policy handle */
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -843,9 +845,9 @@ static uint32 cmd_samr_query_dominfo(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Query domain info */
|
/* Query domain info */
|
||||||
|
|
||||||
if ((result = cli_samr_query_dom_info(cli, mem_ctx, &domain_pol,
|
result = cli_samr_query_dom_info(cli, mem_ctx, &domain_pol,
|
||||||
switch_value, &ctr))
|
switch_value, &ctr);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -873,11 +875,11 @@ static uint32 cmd_samr_query_dominfo(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Create domain user */
|
/* Create domain user */
|
||||||
|
|
||||||
static uint32 cmd_samr_create_dom_user(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_samr_create_dom_user(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND connect_pol, domain_pol, user_pol;
|
POLICY_HND connect_pol, domain_pol, user_pol;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
BOOL got_connect_pol = False, got_domain_pol = False,
|
BOOL got_connect_pol = False, got_domain_pol = False,
|
||||||
got_user_pol = False;
|
got_user_pol = False;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
@ -887,7 +889,7 @@ static uint32 cmd_samr_create_dom_user(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
printf("Usage: %s username\n", argv[0]);
|
printf("Usage: %s username\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
acct_name = argv[1];
|
acct_name = argv[1];
|
||||||
@ -910,9 +912,9 @@ static uint32 cmd_samr_create_dom_user(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get sam policy handle */
|
/* Get sam policy handle */
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol))
|
&connect_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -920,10 +922,10 @@ static uint32 cmd_samr_create_dom_user(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get domain policy handle */
|
/* Get domain policy handle */
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -934,10 +936,10 @@ static uint32 cmd_samr_create_dom_user(struct cli_state *cli, int argc,
|
|||||||
acb_info = ACB_NORMAL;
|
acb_info = ACB_NORMAL;
|
||||||
unknown = 0xe005000b; /* No idea what this is - a permission mask? */
|
unknown = 0xe005000b; /* No idea what this is - a permission mask? */
|
||||||
|
|
||||||
if ((result = cli_samr_create_dom_user(cli, mem_ctx, &domain_pol,
|
result = cli_samr_create_dom_user(cli, mem_ctx, &domain_pol,
|
||||||
acct_name, acb_info, unknown,
|
acct_name, acb_info, unknown,
|
||||||
&user_pol, &user_rid))
|
&user_pol, &user_rid);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -956,11 +958,11 @@ static uint32 cmd_samr_create_dom_user(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Lookup sam names */
|
/* Lookup sam names */
|
||||||
|
|
||||||
static uint32 cmd_samr_lookup_names(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_samr_lookup_names(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
POLICY_HND connect_pol, domain_pol;
|
POLICY_HND connect_pol, domain_pol;
|
||||||
BOOL got_connect_pol = False, got_domain_pol = False;
|
BOOL got_connect_pol = False, got_domain_pol = False;
|
||||||
uint32 flags = 0x000003e8;
|
uint32 flags = 0x000003e8;
|
||||||
@ -970,7 +972,7 @@ static uint32 cmd_samr_lookup_names(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
printf("Usage: %s name1 [name2 [name3] [...]]\n", argv[0]);
|
printf("Usage: %s name1 [name2 [name3] [...]]\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx = talloc_init())) {
|
if (!(mem_ctx = talloc_init())) {
|
||||||
@ -990,18 +992,18 @@ static uint32 cmd_samr_lookup_names(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get sam policy and domain handles */
|
/* Get sam policy and domain handles */
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol))
|
&connect_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_connect_pol = True;
|
got_connect_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1015,10 +1017,10 @@ static uint32 cmd_samr_lookup_names(struct cli_state *cli, int argc,
|
|||||||
for (i = 0; i < argc - 1; i++)
|
for (i = 0; i < argc - 1; i++)
|
||||||
names[i] = argv[i + 1];
|
names[i] = argv[i + 1];
|
||||||
|
|
||||||
if ((result = cli_samr_lookup_names(cli, mem_ctx, &domain_pol,
|
result = cli_samr_lookup_names(cli, mem_ctx, &domain_pol,
|
||||||
flags, num_names, names,
|
flags, num_names, names,
|
||||||
&num_rids, &rids, &name_types))
|
&num_rids, &rids, &name_types);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1040,11 +1042,11 @@ static uint32 cmd_samr_lookup_names(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Lookup sam rids */
|
/* Lookup sam rids */
|
||||||
|
|
||||||
static uint32 cmd_samr_lookup_rids(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_samr_lookup_rids(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
POLICY_HND connect_pol, domain_pol;
|
POLICY_HND connect_pol, domain_pol;
|
||||||
BOOL got_connect_pol = False, got_domain_pol = False;
|
BOOL got_connect_pol = False, got_domain_pol = False;
|
||||||
uint32 flags = 0x000003e8;
|
uint32 flags = 0x000003e8;
|
||||||
@ -1054,7 +1056,7 @@ static uint32 cmd_samr_lookup_rids(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
printf("Usage: %s rid1 [rid2 [rid3] [...]]\n", argv[0]);
|
printf("Usage: %s rid1 [rid2 [rid3] [...]]\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx = talloc_init())) {
|
if (!(mem_ctx = talloc_init())) {
|
||||||
@ -1074,18 +1076,18 @@ static uint32 cmd_samr_lookup_rids(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get sam policy and domain handles */
|
/* Get sam policy and domain handles */
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol))
|
&connect_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
got_connect_pol = True;
|
got_connect_pol = True;
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1099,10 +1101,10 @@ static uint32 cmd_samr_lookup_rids(struct cli_state *cli, int argc,
|
|||||||
for (i = 0; i < argc - 1; i++)
|
for (i = 0; i < argc - 1; i++)
|
||||||
rids[i] = atoi(argv[i + 1]);
|
rids[i] = atoi(argv[i + 1]);
|
||||||
|
|
||||||
if ((result = cli_samr_lookup_rids(cli, mem_ctx, &domain_pol,
|
result = cli_samr_lookup_rids(cli, mem_ctx, &domain_pol,
|
||||||
flags, num_rids, rids,
|
flags, num_rids, rids,
|
||||||
&num_names, &names, &name_types))
|
&num_names, &names, &name_types);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1123,16 +1125,16 @@ static uint32 cmd_samr_lookup_rids(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Delete domain user */
|
/* Delete domain user */
|
||||||
|
|
||||||
static uint32 cmd_samr_delete_dom_user(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_samr_delete_dom_user(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
POLICY_HND connect_pol, domain_pol, user_pol;
|
POLICY_HND connect_pol, domain_pol, user_pol;
|
||||||
|
|
||||||
if (argc != 2) {
|
if (argc != 2) {
|
||||||
printf("Usage: %s username\n", argv[0]);
|
printf("Usage: %s username\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(mem_ctx = talloc_init())) {
|
if (!(mem_ctx = talloc_init())) {
|
||||||
@ -1152,16 +1154,16 @@ static uint32 cmd_samr_delete_dom_user(struct cli_state *cli, int argc,
|
|||||||
|
|
||||||
/* Get sam policy and domain handles */
|
/* Get sam policy and domain handles */
|
||||||
|
|
||||||
if ((result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
result = cli_samr_connect(cli, mem_ctx, MAXIMUM_ALLOWED_ACCESS,
|
||||||
&connect_pol))
|
&connect_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
result = cli_samr_open_domain(cli, mem_ctx, &connect_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
&domain_sid, &domain_pol))
|
&domain_sid, &domain_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1171,26 +1173,26 @@ static uint32 cmd_samr_delete_dom_user(struct cli_state *cli, int argc,
|
|||||||
uint32 *user_rids, num_rids, *name_types;
|
uint32 *user_rids, num_rids, *name_types;
|
||||||
uint32 flags = 0x000003e8;
|
uint32 flags = 0x000003e8;
|
||||||
|
|
||||||
if ((result = cli_samr_lookup_names(cli, mem_ctx, &domain_pol,
|
result = cli_samr_lookup_names(cli, mem_ctx, &domain_pol,
|
||||||
flags, 1, &argv[1],
|
flags, 1, &argv[1],
|
||||||
&num_rids, &user_rids,
|
&num_rids, &user_rids,
|
||||||
&name_types))
|
&name_types);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result = cli_samr_open_user(cli, mem_ctx, &domain_pol,
|
result = cli_samr_open_user(cli, mem_ctx, &domain_pol,
|
||||||
MAXIMUM_ALLOWED_ACCESS,
|
MAXIMUM_ALLOWED_ACCESS,
|
||||||
user_rids[0], &user_pol))
|
user_rids[0], &user_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Delete user */
|
/* Delete user */
|
||||||
|
|
||||||
if ((result = cli_samr_delete_dom_user(cli, mem_ctx, &user_pol))
|
result = cli_samr_delete_dom_user(cli, mem_ctx, &user_pol);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ BOOL get_short_archi(char *short_archi, char *long_archi)
|
|||||||
/**********************************************************************
|
/**********************************************************************
|
||||||
* dummy function -- placeholder
|
* dummy function -- placeholder
|
||||||
*/
|
*/
|
||||||
static uint32 cmd_spoolss_not_implemented (struct cli_state *cli,
|
static NTSTATUS cmd_spoolss_not_implemented (struct cli_state *cli,
|
||||||
int argc, char **argv)
|
int argc, char **argv)
|
||||||
{
|
{
|
||||||
printf ("(*) This command is not currently implemented.\n");
|
printf ("(*) This command is not currently implemented.\n");
|
||||||
@ -142,9 +142,9 @@ static void display_sec_desc(SEC_DESC *sec)
|
|||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* Get printer information
|
* Get printer information
|
||||||
*/
|
*/
|
||||||
static uint32 cmd_spoolss_open_printer_ex(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_open_printer_ex(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
pstring printername;
|
pstring printername;
|
||||||
fstring servername, user;
|
fstring servername, user;
|
||||||
POLICY_HND hnd;
|
POLICY_HND hnd;
|
||||||
@ -182,10 +182,10 @@ static uint32 cmd_spoolss_open_printer_ex(struct cli_state *cli, int argc, char
|
|||||||
result = cli_spoolss_open_printer_ex (cli, mem_ctx, printername, "",
|
result = cli_spoolss_open_printer_ex (cli, mem_ctx, printername, "",
|
||||||
MAXIMUM_ALLOWED_ACCESS, servername, user, &hnd);
|
MAXIMUM_ALLOWED_ACCESS, servername, user, &hnd);
|
||||||
|
|
||||||
if (result == NT_STATUS_OK) {
|
if (NT_STATUS_IS_OK(result)) {
|
||||||
printf ("Printer %s opened successfully\n", printername);
|
printf ("Printer %s opened successfully\n", printername);
|
||||||
result = cli_spoolss_close_printer (cli, mem_ctx, &hnd);
|
result = cli_spoolss_close_printer (cli, mem_ctx, &hnd);
|
||||||
if (result != NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
printf ("Error closing printer handle! (%s)\n", get_nt_error_msg(result));
|
printf ("Error closing printer handle! (%s)\n", get_nt_error_msg(result));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -332,10 +332,10 @@ static void display_print_info_3(PRINTER_INFO_3 *i3)
|
|||||||
|
|
||||||
/* Enumerate printers */
|
/* Enumerate printers */
|
||||||
|
|
||||||
static uint32 cmd_spoolss_enum_printers(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_enum_printers(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL,
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
info_level = 1;
|
uint32 info_level = 1;
|
||||||
PRINTER_INFO_CTR ctr;
|
PRINTER_INFO_CTR ctr;
|
||||||
int returned;
|
int returned;
|
||||||
uint32 i = 0;
|
uint32 i = 0;
|
||||||
@ -371,7 +371,7 @@ static uint32 cmd_spoolss_enum_printers(struct cli_state *cli, int argc, char **
|
|||||||
result = cli_spoolss_enum_printers(cli, mem_ctx, PRINTER_ENUM_LOCAL,
|
result = cli_spoolss_enum_printers(cli, mem_ctx, PRINTER_ENUM_LOCAL,
|
||||||
info_level, &returned, &ctr);
|
info_level, &returned, &ctr);
|
||||||
|
|
||||||
if (result == NT_STATUS_OK)
|
if (NT_STATUS_IS_OK(result))
|
||||||
{
|
{
|
||||||
if (!returned)
|
if (!returned)
|
||||||
printf ("No Printers printers returned.\n");
|
printf ("No Printers printers returned.\n");
|
||||||
@ -442,10 +442,10 @@ static void display_port_info_2(PORT_INFO_2 *i2)
|
|||||||
|
|
||||||
/* Enumerate ports */
|
/* Enumerate ports */
|
||||||
|
|
||||||
static uint32 cmd_spoolss_enum_ports(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_enum_ports(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL,
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
info_level = 1;
|
uint32 info_level = 1;
|
||||||
PORT_INFO_CTR ctr;
|
PORT_INFO_CTR ctr;
|
||||||
int returned;
|
int returned;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
@ -478,7 +478,7 @@ static uint32 cmd_spoolss_enum_ports(struct cli_state *cli, int argc, char **arg
|
|||||||
|
|
||||||
result = cli_spoolss_enum_ports(cli, mem_ctx, info_level, &returned, &ctr);
|
result = cli_spoolss_enum_ports(cli, mem_ctx, info_level, &returned, &ctr);
|
||||||
|
|
||||||
if (result == NT_STATUS_OK) {
|
if (NT_STATUS_IS_OK(result)) {
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < returned; i++) {
|
for (i = 0; i < returned; i++) {
|
||||||
@ -505,11 +505,11 @@ static uint32 cmd_spoolss_enum_ports(struct cli_state *cli, int argc, char **arg
|
|||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* Get printer information
|
* Get printer information
|
||||||
*/
|
*/
|
||||||
static uint32 cmd_spoolss_getprinter(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_getprinter(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND pol;
|
POLICY_HND pol;
|
||||||
uint32 result,
|
NTSTATUS result;
|
||||||
info_level = 1;
|
uint32 info_level = 1;
|
||||||
BOOL opened_hnd = False;
|
BOOL opened_hnd = False;
|
||||||
PRINTER_INFO_CTR ctr;
|
PRINTER_INFO_CTR ctr;
|
||||||
fstring printername,
|
fstring printername,
|
||||||
@ -547,17 +547,18 @@ static uint32 cmd_spoolss_getprinter(struct cli_state *cli, int argc, char **arg
|
|||||||
fstrcpy (user, cli->user_name);
|
fstrcpy (user, cli->user_name);
|
||||||
|
|
||||||
/* get a printer handle */
|
/* get a printer handle */
|
||||||
if ((result = cli_spoolss_open_printer_ex(
|
result = cli_spoolss_open_printer_ex(
|
||||||
cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, servername,
|
cli, mem_ctx, printername, "", MAXIMUM_ALLOWED_ACCESS, servername,
|
||||||
user, &pol)) != NT_STATUS_OK) {
|
user, &pol);
|
||||||
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
opened_hnd = True;
|
opened_hnd = True;
|
||||||
|
|
||||||
/* Get printer info */
|
/* Get printer info */
|
||||||
if ((result = cli_spoolss_getprinter(cli, mem_ctx, &pol, info_level, &ctr))
|
result = cli_spoolss_getprinter(cli, mem_ctx, &pol, info_level, &ctr);
|
||||||
!= NT_STATUS_OK) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -704,11 +705,11 @@ static void display_print_driver_3(DRIVER_INFO_3 *i1)
|
|||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* Get printer information
|
* Get printer information
|
||||||
*/
|
*/
|
||||||
static uint32 cmd_spoolss_getdriver(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_getdriver(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND pol;
|
POLICY_HND pol;
|
||||||
uint32 result,
|
NTSTATUS result;
|
||||||
info_level = 3;
|
uint32 info_level = 3;
|
||||||
BOOL opened_hnd = False;
|
BOOL opened_hnd = False;
|
||||||
PRINTER_DRIVER_CTR ctr;
|
PRINTER_DRIVER_CTR ctr;
|
||||||
fstring printername,
|
fstring printername,
|
||||||
@ -746,9 +747,9 @@ static uint32 cmd_spoolss_getdriver(struct cli_state *cli, int argc, char **argv
|
|||||||
info_level = atoi(argv[2]);
|
info_level = atoi(argv[2]);
|
||||||
|
|
||||||
/* Open a printer handle */
|
/* Open a printer handle */
|
||||||
if ((result=cli_spoolss_open_printer_ex (cli, mem_ctx, printername, "",
|
result=cli_spoolss_open_printer_ex (cli, mem_ctx, printername, "",
|
||||||
MAXIMUM_ALLOWED_ACCESS, servername, user, &pol)) != NT_STATUS_OK)
|
MAXIMUM_ALLOWED_ACCESS, servername, user, &pol);
|
||||||
{
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
printf ("Error opening printer handle for %s!\n", printername);
|
printf ("Error opening printer handle for %s!\n", printername);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -760,18 +761,7 @@ static uint32 cmd_spoolss_getdriver(struct cli_state *cli, int argc, char **argv
|
|||||||
{
|
{
|
||||||
result = cli_spoolss_getprinterdriver(cli, mem_ctx, &pol, info_level,
|
result = cli_spoolss_getprinterdriver(cli, mem_ctx, &pol, info_level,
|
||||||
archi_table[i].long_archi, &ctr);
|
archi_table[i].long_archi, &ctr);
|
||||||
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
switch (result)
|
|
||||||
{
|
|
||||||
case NT_STATUS_OK:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WERR_UNKNOWN_PRINTER_DRIVER:
|
|
||||||
continue;
|
|
||||||
|
|
||||||
default:
|
|
||||||
printf ("Error getting driver for %s [%s] - %s\n", printername,
|
|
||||||
archi_table[i].long_archi, get_nt_error_msg(result));
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -793,8 +783,6 @@ static uint32 cmd_spoolss_getdriver(struct cli_state *cli, int argc, char **argv
|
|||||||
printf("unknown info level %d\n", info_level);
|
printf("unknown info level %d\n", info_level);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -804,9 +792,6 @@ static uint32 cmd_spoolss_getdriver(struct cli_state *cli, int argc, char **argv
|
|||||||
cli_nt_session_close (cli);
|
cli_nt_session_close (cli);
|
||||||
talloc_destroy(mem_ctx);
|
talloc_destroy(mem_ctx);
|
||||||
|
|
||||||
if (result==WERR_UNKNOWN_PRINTER_DRIVER)
|
|
||||||
return NT_STATUS_OK;
|
|
||||||
else
|
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -814,10 +799,10 @@ static uint32 cmd_spoolss_getdriver(struct cli_state *cli, int argc, char **argv
|
|||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* Get printer information
|
* Get printer information
|
||||||
*/
|
*/
|
||||||
static uint32 cmd_spoolss_enum_drivers(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_enum_drivers(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result=0,
|
NTSTATUS result = NT_STATUS_OK;
|
||||||
info_level = 1;
|
uint32 info_level = 1;
|
||||||
PRINTER_DRIVER_CTR ctr;
|
PRINTER_DRIVER_CTR ctr;
|
||||||
fstring servername;
|
fstring servername;
|
||||||
uint32 i, j,
|
uint32 i, j,
|
||||||
@ -833,7 +818,7 @@ static uint32 cmd_spoolss_enum_drivers(struct cli_state *cli, int argc, char **a
|
|||||||
if (!(mem_ctx=talloc_init()))
|
if (!(mem_ctx=talloc_init()))
|
||||||
{
|
{
|
||||||
DEBUG(0,("cmd_spoolss_enum_drivers: talloc_init returned NULL!\n"));
|
DEBUG(0,("cmd_spoolss_enum_drivers: talloc_init returned NULL!\n"));
|
||||||
return NT_STATUS_UNSUCCESSFUL;
|
return NT_STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialise RPC connection */
|
/* Initialise RPC connection */
|
||||||
@ -862,7 +847,7 @@ static uint32 cmd_spoolss_enum_drivers(struct cli_state *cli, int argc, char **a
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
|
||||||
if (result != NT_STATUS_OK)
|
if (!NT_STATUS_IS_OK(result))
|
||||||
{
|
{
|
||||||
printf ("Error getting driver for environment [%s] - %s\n",
|
printf ("Error getting driver for environment [%s] - %s\n",
|
||||||
archi_table[i].long_archi, get_nt_error_msg(result));
|
archi_table[i].long_archi, get_nt_error_msg(result));
|
||||||
@ -899,11 +884,7 @@ static uint32 cmd_spoolss_enum_drivers(struct cli_state *cli, int argc, char **a
|
|||||||
cli_nt_session_close (cli);
|
cli_nt_session_close (cli);
|
||||||
talloc_destroy(mem_ctx);
|
talloc_destroy(mem_ctx);
|
||||||
|
|
||||||
if (result==WERR_UNKNOWN_PRINTER_DRIVER)
|
|
||||||
return NT_STATUS_OK;
|
|
||||||
else
|
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/****************************************************************************
|
/****************************************************************************
|
||||||
@ -923,9 +904,9 @@ static void display_printdriverdir_1(DRIVER_DIRECTORY_1 *i1)
|
|||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* Get printer driver directory information
|
* Get printer driver directory information
|
||||||
*/
|
*/
|
||||||
static uint32 cmd_spoolss_getdriverdir(struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_getdriverdir(struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result;
|
NTSTATUS result;
|
||||||
fstring env;
|
fstring env;
|
||||||
DRIVER_DIRECTORY_CTR ctr;
|
DRIVER_DIRECTORY_CTR ctr;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
@ -957,9 +938,8 @@ static uint32 cmd_spoolss_getdriverdir(struct cli_state *cli, int argc, char **a
|
|||||||
fstrcpy (env, "Windows NT x86");
|
fstrcpy (env, "Windows NT x86");
|
||||||
|
|
||||||
/* Get the directory. Only use Info level 1 */
|
/* Get the directory. Only use Info level 1 */
|
||||||
if ((result = cli_spoolss_getprinterdriverdir (cli, mem_ctx, 1, env, &ctr))
|
result = cli_spoolss_getprinterdriverdir (cli, mem_ctx, 1, env, &ctr);
|
||||||
!= NT_STATUS_OK)
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
{
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1082,10 +1062,10 @@ static BOOL init_drv_info_3_members (
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static uint32 cmd_spoolss_addprinterdriver (struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_addprinterdriver (struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result,
|
NTSTATUS result;
|
||||||
level = 3;
|
uint32 level = 3;
|
||||||
PRINTER_DRIVER_CTR ctr;
|
PRINTER_DRIVER_CTR ctr;
|
||||||
DRIVER_INFO_3 info3;
|
DRIVER_INFO_3 info3;
|
||||||
fstring arch;
|
fstring arch;
|
||||||
@ -1106,7 +1086,7 @@ static uint32 cmd_spoolss_addprinterdriver (struct cli_state *cli, int argc, cha
|
|||||||
if (!(mem_ctx=talloc_init()))
|
if (!(mem_ctx=talloc_init()))
|
||||||
{
|
{
|
||||||
DEBUG(0,("cmd_spoolss_addprinterdriver: talloc_init returned NULL!\n"));
|
DEBUG(0,("cmd_spoolss_addprinterdriver: talloc_init returned NULL!\n"));
|
||||||
return NT_STATUS_UNSUCCESSFUL;
|
return NT_STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Initialise RPC connection */
|
/* Initialise RPC connection */
|
||||||
@ -1136,9 +1116,8 @@ static uint32 cmd_spoolss_addprinterdriver (struct cli_state *cli, int argc, cha
|
|||||||
|
|
||||||
|
|
||||||
ctr.info3 = &info3;
|
ctr.info3 = &info3;
|
||||||
if ((result = cli_spoolss_addprinterdriver (cli, mem_ctx, level, &ctr))
|
result = cli_spoolss_addprinterdriver (cli, mem_ctx, level, &ctr);
|
||||||
!= NT_STATUS_OK)
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
{
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1154,10 +1133,10 @@ static uint32 cmd_spoolss_addprinterdriver (struct cli_state *cli, int argc, cha
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static uint32 cmd_spoolss_addprinterex (struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_addprinterex (struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result,
|
NTSTATUS result;
|
||||||
level = 2;
|
uint32 level = 2;
|
||||||
PRINTER_INFO_CTR ctr;
|
PRINTER_INFO_CTR ctr;
|
||||||
PRINTER_INFO_2 info2;
|
PRINTER_INFO_2 info2;
|
||||||
fstring servername;
|
fstring servername;
|
||||||
@ -1173,7 +1152,7 @@ static uint32 cmd_spoolss_addprinterex (struct cli_state *cli, int argc, char **
|
|||||||
if (!(mem_ctx=talloc_init()))
|
if (!(mem_ctx=talloc_init()))
|
||||||
{
|
{
|
||||||
DEBUG(0,("cmd_spoolss_addprinterex: talloc_init returned NULL!\n"));
|
DEBUG(0,("cmd_spoolss_addprinterex: talloc_init returned NULL!\n"));
|
||||||
return NT_STATUS_UNSUCCESSFUL;
|
return NT_STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1218,9 +1197,8 @@ static uint32 cmd_spoolss_addprinterex (struct cli_state *cli, int argc, char **
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
ctr.printers_2 = &info2;
|
ctr.printers_2 = &info2;
|
||||||
if ((result = cli_spoolss_addprinterex (cli, mem_ctx, level, &ctr))
|
result = cli_spoolss_addprinterex (cli, mem_ctx, level, &ctr);
|
||||||
!= NT_STATUS_OK)
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
{
|
|
||||||
cli_nt_session_close (cli);
|
cli_nt_session_close (cli);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -1235,11 +1213,11 @@ static uint32 cmd_spoolss_addprinterex (struct cli_state *cli, int argc, char **
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32 cmd_spoolss_setdriver (struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_setdriver (struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
POLICY_HND pol;
|
POLICY_HND pol;
|
||||||
uint32 result,
|
NTSTATUS result;
|
||||||
level = 2;
|
uint32 level = 2;
|
||||||
BOOL opened_hnd = False;
|
BOOL opened_hnd = False;
|
||||||
PRINTER_INFO_CTR ctr;
|
PRINTER_INFO_CTR ctr;
|
||||||
PRINTER_INFO_2 info2;
|
PRINTER_INFO_2 info2;
|
||||||
@ -1258,7 +1236,7 @@ static uint32 cmd_spoolss_setdriver (struct cli_state *cli, int argc, char **arg
|
|||||||
if (!(mem_ctx=talloc_init()))
|
if (!(mem_ctx=talloc_init()))
|
||||||
{
|
{
|
||||||
DEBUG(0,("cmd_spoolss_setdriver: talloc_init returned NULL!\n"));
|
DEBUG(0,("cmd_spoolss_setdriver: talloc_init returned NULL!\n"));
|
||||||
return NT_STATUS_UNSUCCESSFUL;
|
return NT_STATUS_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
slprintf (servername, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
slprintf (servername, sizeof(fstring)-1, "\\\\%s", cli->desthost);
|
||||||
@ -1276,10 +1254,9 @@ static uint32 cmd_spoolss_setdriver (struct cli_state *cli, int argc, char **arg
|
|||||||
|
|
||||||
|
|
||||||
/* get a printer handle */
|
/* get a printer handle */
|
||||||
if ((result = cli_spoolss_open_printer_ex(cli, mem_ctx, printername, "",
|
result = cli_spoolss_open_printer_ex(cli, mem_ctx, printername, "",
|
||||||
MAXIMUM_ALLOWED_ACCESS, servername, user, &pol))
|
MAXIMUM_ALLOWED_ACCESS, servername, user, &pol);
|
||||||
!= NT_STATUS_OK)
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
{
|
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1288,16 +1265,16 @@ static uint32 cmd_spoolss_setdriver (struct cli_state *cli, int argc, char **arg
|
|||||||
/* Get printer info */
|
/* Get printer info */
|
||||||
ZERO_STRUCT (info2);
|
ZERO_STRUCT (info2);
|
||||||
ctr.printers_2 = &info2;
|
ctr.printers_2 = &info2;
|
||||||
if ((result = cli_spoolss_getprinter(cli, mem_ctx, &pol, level, &ctr)) != NT_STATUS_OK)
|
result = cli_spoolss_getprinter(cli, mem_ctx, &pol, level, &ctr);
|
||||||
{
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
printf ("Unable to retrieve printer information!\n");
|
printf ("Unable to retrieve printer information!\n");
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set the printer driver */
|
/* set the printer driver */
|
||||||
init_unistr(&ctr.printers_2->drivername, argv[2]);
|
init_unistr(&ctr.printers_2->drivername, argv[2]);
|
||||||
if ((result = cli_spoolss_setprinter(cli, mem_ctx, &pol, level, &ctr, 0)) != NT_STATUS_OK)
|
result = cli_spoolss_setprinter(cli, mem_ctx, &pol, level, &ctr, 0);
|
||||||
{
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
printf ("SetPrinter call failed!\n");
|
printf ("SetPrinter call failed!\n");
|
||||||
goto done;;
|
goto done;;
|
||||||
}
|
}
|
||||||
@ -1315,9 +1292,9 @@ done:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static uint32 cmd_spoolss_deletedriver (struct cli_state *cli, int argc, char **argv)
|
static NTSTATUS cmd_spoolss_deletedriver (struct cli_state *cli, int argc, char **argv)
|
||||||
{
|
{
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
fstring servername;
|
fstring servername;
|
||||||
TALLOC_CTX *mem_ctx = NULL;
|
TALLOC_CTX *mem_ctx = NULL;
|
||||||
int i;
|
int i;
|
||||||
@ -1350,9 +1327,9 @@ static uint32 cmd_spoolss_deletedriver (struct cli_state *cli, int argc, char **
|
|||||||
for (i=0; archi_table[i].long_archi; i++)
|
for (i=0; archi_table[i].long_archi; i++)
|
||||||
{
|
{
|
||||||
/* make the call to remove the driver */
|
/* make the call to remove the driver */
|
||||||
if ((result = cli_spoolss_deleteprinterdriver(cli, mem_ctx,
|
result = cli_spoolss_deleteprinterdriver(cli, mem_ctx,
|
||||||
archi_table[i].long_archi, argv[1])) != NT_STATUS_OK)
|
archi_table[i].long_archi, argv[1]);
|
||||||
{
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
printf ("Failed to remove driver %s for arch [%s] - error %s!\n",
|
printf ("Failed to remove driver %s for arch [%s] - error %s!\n",
|
||||||
argv[1], archi_table[i].long_archi, get_nt_error_msg(result));
|
argv[1], archi_table[i].long_archi, get_nt_error_msg(result));
|
||||||
}
|
}
|
||||||
|
@ -182,17 +182,17 @@ static void display_srv_info_102(SRV_INFO_102 *sv102)
|
|||||||
|
|
||||||
/* Server query info */
|
/* Server query info */
|
||||||
|
|
||||||
static uint32 cmd_srvsvc_srv_query_info(struct cli_state *cli, int argc,
|
static NTSTATUS cmd_srvsvc_srv_query_info(struct cli_state *cli, int argc,
|
||||||
char **argv)
|
char **argv)
|
||||||
{
|
{
|
||||||
uint32 info_level = 101;
|
uint32 info_level = 101;
|
||||||
SRV_INFO_CTR ctr;
|
SRV_INFO_CTR ctr;
|
||||||
TALLOC_CTX *mem_ctx;
|
TALLOC_CTX *mem_ctx;
|
||||||
uint32 result = NT_STATUS_UNSUCCESSFUL;
|
NTSTATUS result = NT_STATUS_UNSUCCESSFUL;
|
||||||
|
|
||||||
if (argc > 2) {
|
if (argc > 2) {
|
||||||
printf("Usage: %s [infolevel]\n", argv[0]);
|
printf("Usage: %s [infolevel]\n", argv[0]);
|
||||||
return 0;
|
return NT_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (argc == 2)
|
if (argc == 2)
|
||||||
@ -210,9 +210,9 @@ static uint32 cmd_srvsvc_srv_query_info(struct cli_state *cli, int argc,
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((result = cli_srvsvc_net_srv_get_info(cli, mem_ctx, info_level,
|
result = cli_srvsvc_net_srv_get_info(cli, mem_ctx, info_level,
|
||||||
&ctr)
|
&ctr);
|
||||||
!= NT_STATUS_OK)) {
|
if (!NT_STATUS_IS_OK(result)) {
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,9 +92,8 @@ static BOOL cacls_open_policy_hnd(void)
|
|||||||
/* Some systems don't support SEC_RIGHTS_MAXIMUM_ALLOWED,
|
/* Some systems don't support SEC_RIGHTS_MAXIMUM_ALLOWED,
|
||||||
but NT sends 0x2000000 so we might as well do it too. */
|
but NT sends 0x2000000 so we might as well do it too. */
|
||||||
|
|
||||||
if (cli_lsa_open_policy(&lsa_cli, lsa_cli.mem_ctx, True,
|
if (!NT_STATUS_IS_OK(cli_lsa_open_policy(&lsa_cli, lsa_cli.mem_ctx, True,
|
||||||
GENERIC_EXECUTE_ACCESS, &pol)
|
GENERIC_EXECUTE_ACCESS, &pol))) {
|
||||||
!= NT_STATUS_OK) {
|
|
||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,8 +117,8 @@ static void SidToString(fstring str, DOM_SID *sid)
|
|||||||
/* Ask LSA to convert the sid to a name */
|
/* Ask LSA to convert the sid to a name */
|
||||||
|
|
||||||
if (!cacls_open_policy_hnd() ||
|
if (!cacls_open_policy_hnd() ||
|
||||||
cli_lsa_lookup_sids(&lsa_cli, lsa_cli.mem_ctx, &pol, 1, sid, &names, &types,
|
!NT_STATUS_IS_OK(cli_lsa_lookup_sids(&lsa_cli, lsa_cli.mem_ctx, &pol, 1, sid, &names,
|
||||||
&num_names) != NT_STATUS_OK ||
|
&types, &num_names)) ||
|
||||||
!names || !names[0]) {
|
!names || !names[0]) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -142,8 +141,8 @@ static BOOL StringToSid(DOM_SID *sid, char *str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!cacls_open_policy_hnd() ||
|
if (!cacls_open_policy_hnd() ||
|
||||||
cli_lsa_lookup_names(&lsa_cli, lsa_cli.mem_ctx, &pol, 1, &str, &sids, &types,
|
!NT_STATUS_IS_OK(cli_lsa_lookup_names(&lsa_cli, lsa_cli.mem_ctx, &pol, 1, &str,
|
||||||
&num_sids) != NT_STATUS_OK) {
|
&sids, &types, &num_sids))) {
|
||||||
result = False;
|
result = False;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user