summaryrefslogtreecommitdiff
path: root/source3/rpcclient
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1999-11-19 00:12:16 +0000
committerLuke Leighton <lkcl@samba.org>1999-11-19 00:12:16 +0000
commit1c6c4e7e39bde99f8d312516ba530b905bc01da7 (patch)
tree68a5555a7ff60b4e67ffd7203a70e1bd28a712f6 /source3/rpcclient
parentda517a3ff4c133a1475e8e63054201551d132436 (diff)
downloadsamba-1c6c4e7e39bde99f8d312516ba530b905bc01da7.tar.gz
samba-1c6c4e7e39bde99f8d312516ba530b905bc01da7.tar.bz2
samba-1c6c4e7e39bde99f8d312516ba530b905bc01da7.zip
added \PIPE\browser plus experimental brsinfo command. you wouldn't
believe the XXXX that MIGHT be involved in getting nt5rc2 to join a samba domain... (This used to be commit 569babb3935950c1b64396955541abf276cc1d92)
Diffstat (limited to 'source3/rpcclient')
-rw-r--r--source3/rpcclient/cmd_brs.c96
-rw-r--r--source3/rpcclient/rpcclient.c6
2 files changed, 102 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"));
+ }
+}
+
diff --git a/source3/rpcclient/rpcclient.c b/source3/rpcclient/rpcclient.c
index 1103a76d91..7e246b1bfc 100644
--- a/source3/rpcclient/rpcclient.c
+++ b/source3/rpcclient/rpcclient.c
@@ -270,6 +270,12 @@ commands[] =
{COMPL_NONE, COMPL_NONE}
},
{
+ "brsinfo",
+ cmd_brs_query_info,
+ "Browser Query Info",
+ {COMPL_NONE, COMPL_NONE}
+ },
+ {
"wksinfo",
cmd_wks_query_info,
"Workstation Query Info",