diff options
-rw-r--r-- | source3/include/proto.h | 3 | ||||
-rw-r--r-- | source3/rpc_client/cli_lsarpc.c | 2 | ||||
-rw-r--r-- | source3/rpcclient/cmd_samr.c | 2 | ||||
-rw-r--r-- | source3/rpcclient/cmd_srvsvc.c | 43 |
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")); |