1998-09-26 01:01:52 +04:00
/*
Unix SMB / Netbios implementation .
Version 1.9 .
NT Domain Authentication SMB / MSRPC client
Copyright ( C ) Andrew Tridgell 1994 - 1997
Copyright ( C ) Luke Kenneth Casson Leighton 1996 - 1997
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 0213 9 , 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 ;
/****************************************************************************
workstation get info query
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
void cmd_wks_query_info ( struct client_info * info )
{
1998-12-07 23:23:41 +03:00
uint16 nt_pipe_fnum ;
1998-09-26 01:01:52 +04:00
fstring dest_wks ;
fstring tmp ;
WKS_INFO_100 ctr ;
uint32 info_level = 100 ;
BOOL res = True ;
bzero ( & ctr , sizeof ( ctr ) ) ;
1998-09-26 01:20:37 +04:00
fstrcpy ( dest_wks , " \\ \\ " ) ;
fstrcat ( dest_wks , info - > dest_host ) ;
1998-09-26 01:01:52 +04:00
strupper ( dest_wks ) ;
1998-09-26 01:20:37 +04:00
if ( next_token ( NULL , tmp , NULL , sizeof ( tmp ) ) )
1998-09-26 01:01:52 +04:00
{
1998-10-17 02:01:57 +04:00
info_level = ( uint32 ) strtol ( tmp , ( char * * ) NULL , 10 ) ;
1998-09-26 01:01:52 +04:00
}
1998-09-26 03:24:28 +04:00
DEBUG ( 4 , ( " cmd_wks_query_info: server:%s info level: %d \n " ,
1998-09-26 01:01:52 +04:00
dest_wks , info_level ) ) ;
DEBUG ( 5 , ( " cmd_wks_query_info: smb_cli->fd:%d \n " , smb_cli - > fd ) ) ;
/* open LSARPC session. */
1998-12-07 23:23:41 +03:00
res = res ? cli_nt_session_open ( smb_cli , PIPE_WKSSVC , & nt_pipe_fnum ) : False ;
1998-09-26 01:01:52 +04:00
/* send info level: receive requested info. hopefully. */
1998-12-07 23:23:41 +03:00
res = res ? do_wks_query_info ( smb_cli , nt_pipe_fnum ,
1998-09-26 01:01:52 +04:00
dest_wks , info_level , & ctr ) : False ;
/* close the session */
1998-12-07 23:23:41 +03:00
cli_nt_session_close ( smb_cli , nt_pipe_fnum ) ;
1998-09-26 01:01:52 +04:00
if ( res )
{
DEBUG ( 5 , ( " cmd_wks_query_info: query succeeded \n " ) ) ;
#if 0
1998-09-26 01:20:37 +04:00
display_wks_info_100 ( out_hnd , ACTION_HEADER , & ctr ) ;
display_wks_info_100 ( out_hnd , ACTION_ENUMERATE , & ctr ) ;
display_wks_info_100 ( out_hnd , ACTION_FOOTER , & ctr ) ;
1998-09-26 01:01:52 +04:00
# endif
}
else
{
DEBUG ( 5 , ( " cmd_wks_query_info: query failed \n " ) ) ;
}
}