summaryrefslogtreecommitdiff
path: root/source3/rpcclient/cmd_brs.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/rpcclient/cmd_brs.c')
-rw-r--r--source3/rpcclient/cmd_brs.c96
1 files changed, 96 insertions, 0 deletions
diff --git a/source3/rpcclient/cmd_brs.c b/source3/rpcclient/cmd_brs.c
new file mode 100644
index 0000000000..f01ebc8f95
--- /dev/null
+++ b/source3/rpcclient/cmd_brs.c
@@ -0,0 +1,96 @@
+/*
+ Unix SMB/Netbios implementation.
+ Version 1.9.
+ NT Domain Authentication SMB / MSRPC client
+ Copyright (C) Andrew Tridgell 1994-1999
+ Copyright (C) Luke Kenneth Casson Leighton 1996-1999
+
+ 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 2 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, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+
+
+#ifdef SYSLOG
+#undef SYSLOG
+#endif
+
+#include "includes.h"
+#include "nterr.h"
+
+extern int DEBUGLEVEL;
+
+#define DEBUG_TESTING
+
+extern struct cli_state *smb_cli;
+
+extern FILE* out_hnd;
+
+
+/****************************************************************************
+Browser get info query
+****************************************************************************/
+void cmd_brs_query_info(struct client_info *info)
+{
+ uint16 nt_pipe_fnum;
+ fstring dest_brs;
+ fstring tmp;
+ BRS_INFO_100 ctr;
+ uint32 info_level = 100;
+
+ BOOL res = True;
+
+ bzero(&ctr, sizeof(ctr));
+
+ fstrcpy(dest_brs, "\\\\");
+ fstrcat(dest_brs, info->dest_host);
+ strupper(dest_brs);
+
+ if (next_token(NULL, tmp, NULL, sizeof(tmp)))
+ {
+ info_level = (uint32)strtol(tmp, (char**)NULL, 10);
+ }
+
+ DEBUG(4,("cmd_brs_query_info: server:%s info level: %d\n",
+ dest_brs, info_level));
+
+ DEBUG(5, ("cmd_brs_query_info: smb_cli->fd:%d\n", smb_cli->fd));
+
+ /* open LSARPC session. */
+ res = res ? cli_nt_session_open(smb_cli, PIPE_BROWSER, &nt_pipe_fnum) : False;
+
+ /* send info level: receive requested info. hopefully. */
+ res = res ? do_brs_query_info(smb_cli, nt_pipe_fnum,
+ dest_brs, info_level, &ctr) : False;
+
+ /* close the session */
+ cli_nt_session_close(smb_cli, nt_pipe_fnum);
+
+ if (res)
+ {
+ DEBUG(5,("cmd_brs_query_info: query succeeded\n"));
+
+#if 0
+ display_brs_info_100(out_hnd, ACTION_HEADER , &ctr);
+ display_brs_info_100(out_hnd, ACTION_ENUMERATE, &ctr);
+ display_brs_info_100(out_hnd, ACTION_FOOTER , &ctr);
+#endif
+
+ }
+ else
+ {
+ DEBUG(5,("cmd_brs_query_info: query failed\n"));
+ }
+}
+