2003-08-13 01:53:07 +00:00
/*
Unix SMB / CIFS implementation .
client message handling routines
Copyright ( C ) Andrew Tridgell 1994 - 1998
Copyright ( C ) James J Myers 2003 < myersjj @ samba . org >
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 .
*/
# include "includes.h"
/****************************************************************************
start a message sequence
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2004-02-08 00:51:07 +00:00
BOOL cli_message_start ( struct cli_tree * tree , char * host , char * username ,
int * grp )
2003-08-13 01:53:07 +00:00
{
struct cli_request * req ;
2004-02-08 00:51:07 +00:00
req = cli_request_setup ( tree , SMBsendstrt , 0 , 0 ) ;
2003-08-13 01:53:07 +00:00
cli_req_append_string ( req , username , STR_TERMINATE ) ;
cli_req_append_string ( req , host , STR_TERMINATE ) ;
if ( ! cli_request_send ( req ) | |
! cli_request_receive ( req ) | |
2004-02-08 00:51:07 +00:00
cli_is_error ( tree ) ) {
2003-08-13 01:53:07 +00:00
cli_request_destroy ( req ) ;
return False ;
}
* grp = SVAL ( req - > in . vwv , VWV ( 0 ) ) ;
cli_request_destroy ( req ) ;
return True ;
}
/****************************************************************************
send a message
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2004-02-08 00:51:07 +00:00
BOOL cli_message_text ( struct cli_tree * tree , char * msg , int len , int grp )
2003-08-13 01:53:07 +00:00
{
struct cli_request * req ;
2004-02-08 00:51:07 +00:00
req = cli_request_setup ( tree , SMBsendtxt , 1 , 0 ) ;
2003-08-13 01:53:07 +00:00
SSVAL ( req - > out . vwv , VWV ( 0 ) , grp ) ;
cli_req_append_bytes ( req , msg , len ) ;
if ( ! cli_request_send ( req ) | |
! cli_request_receive ( req ) | |
2004-02-08 00:51:07 +00:00
cli_is_error ( tree ) ) {
2003-08-13 01:53:07 +00:00
cli_request_destroy ( req ) ;
return False ;
}
cli_request_destroy ( req ) ;
return True ;
}
/****************************************************************************
end a message
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2004-02-08 00:51:07 +00:00
BOOL cli_message_end ( struct cli_tree * tree , int grp )
2003-08-13 01:53:07 +00:00
{
struct cli_request * req ;
2004-02-08 00:51:07 +00:00
req = cli_request_setup ( tree , SMBsendend , 1 , 0 ) ;
2003-08-13 01:53:07 +00:00
SSVAL ( req - > out . vwv , VWV ( 0 ) , grp ) ;
if ( ! cli_request_send ( req ) | |
! cli_request_receive ( req ) | |
2004-02-08 00:51:07 +00:00
cli_is_error ( tree ) ) {
2003-08-13 01:53:07 +00:00
cli_request_destroy ( req ) ;
return False ;
}
cli_request_destroy ( req ) ;
return True ;
}