summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/include/proto.h3
-rw-r--r--source3/rpc_client/cli_lsarpc.c2
-rw-r--r--source3/rpcclient/cmd_samr.c2
-rw-r--r--source3/rpcclient/cmd_srvsvc.c43
4 files changed, 32 insertions, 18 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h
index f391f19879..4326cb4762 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -3189,6 +3189,9 @@ void cmd_sam_enum_groups(struct client_info *info);
/*The following definitions come from rpcclient/cmd_srvsvc.c */
+BOOL net_srv_get_info(struct client_info *info,
+ uint32 info_level,
+ SRV_INFO_CTR *ctr);
void cmd_srv_query_info(struct client_info *info);
void cmd_srv_enum_conn(struct client_info *info);
void cmd_srv_enum_shares(struct client_info *info);
diff --git a/source3/rpc_client/cli_lsarpc.c b/source3/rpc_client/cli_lsarpc.c
index 45ec91d37c..002e98572d 100644
--- a/source3/rpc_client/cli_lsarpc.c
+++ b/source3/rpc_client/cli_lsarpc.c
@@ -407,7 +407,7 @@ BOOL lsa_lookup_sids(struct cli_state *cli, uint16 fnum,
if (p && r_l.status != 0 &&
r_l.status != 0x107 &&
- r_l.status != 0xC0000000 | NT_STATUS_NONE_MAPPED)
+ r_l.status != (0xC0000000 | NT_STATUS_NONE_MAPPED))
{
/* report error code */
DEBUG(1,("LSA_LOOKUP_SIDS: %s\n", get_nt_error_msg(r_l.status)));
diff --git a/source3/rpcclient/cmd_samr.c b/source3/rpcclient/cmd_samr.c
index 08dedac701..1d29403842 100644
--- a/source3/rpcclient/cmd_samr.c
+++ b/source3/rpcclient/cmd_samr.c
@@ -1676,7 +1676,7 @@ void cmd_sam_query_dominfo(struct client_info *info)
BOOL res = True;
fstring info_str;
uint32 switch_value = 2;
- uint32 ace_perms = 0x304; /* absolutely no idea. */
+ uint32 ace_perms = 0x02000000; /* absolutely no idea. */
SAM_UNK_CTR ctr;
sid_to_string(sid, &info->dom.level5_sid);
diff --git a/source3/rpcclient/cmd_srvsvc.c b/source3/rpcclient/cmd_srvsvc.c
index c433908e20..547b39b2b8 100644
--- a/source3/rpcclient/cmd_srvsvc.c
+++ b/source3/rpcclient/cmd_srvsvc.c
@@ -41,43 +41,54 @@ extern FILE* out_hnd;
/****************************************************************************
server get info query
****************************************************************************/
-void cmd_srv_query_info(struct client_info *info)
+BOOL net_srv_get_info(struct client_info *info,
+ uint32 info_level,
+ SRV_INFO_CTR *ctr)
{
uint16 nt_pipe_fnum;
fstring dest_srv;
- fstring tmp;
- SRV_INFO_CTR ctr;
- uint32 info_level = 101;
BOOL res = True;
- bzero(&ctr, sizeof(ctr));
-
fstrcpy(dest_srv, "\\\\");
fstrcat(dest_srv, info->dest_host);
strupper(dest_srv);
- if (next_token(NULL, tmp, NULL, sizeof(tmp)-1))
- {
- info_level = (uint32)strtol(tmp, (char**)NULL, 10);
- }
-
- DEBUG(4,("cmd_srv_query_info: server:%s info level: %d\n",
+ DEBUG(4,("net_srv_get_info: server:%s info level: %d\n",
dest_srv, (int)info_level));
- DEBUG(5, ("cmd_srv_query_info: smb_cli->fd:%d\n", smb_cli->fd));
-
/* open LSARPC session. */
res = res ? cli_nt_session_open(smb_cli, PIPE_SRVSVC, &nt_pipe_fnum) : False;
/* send info level: receive requested info. hopefully. */
res = res ? do_srv_net_srv_get_info(smb_cli, nt_pipe_fnum,
- dest_srv, info_level, &ctr) : False;
+ dest_srv, info_level, ctr) : False;
/* close the session */
cli_nt_session_close(smb_cli, nt_pipe_fnum);
- if (res)
+ return res;
+}
+
+/****************************************************************************
+server get info query
+****************************************************************************/
+void cmd_srv_query_info(struct client_info *info)
+{
+ uint32 info_level = 101;
+ SRV_INFO_CTR ctr;
+ fstring tmp;
+
+ bzero(&ctr, sizeof(ctr));
+
+ if (next_token(NULL, tmp, NULL, sizeof(tmp)-1))
+ {
+ info_level = (uint32)strtol(tmp, (char**)NULL, 10);
+ }
+
+ DEBUG(5, ("cmd_srv_query_info: smb_cli->fd:%d\n", smb_cli->fd));
+
+ if (net_srv_get_info(info, info_level, &ctr))
{
DEBUG(5,("cmd_srv_query_info: query succeeded\n"));