2001-02-26 23:06:25 +03:00
/*
2002-01-30 09:08:46 +03:00
* Unix SMB / CIFS implementation .
2001-02-26 23:06:25 +03:00
* RPC Pipe client / server routines
2006-09-21 03:49:13 +04:00
*
* Copyright ( C ) Andrew Tridgell 1992 - 1997 ,
* Copyright ( C ) Gerald ( Jerry ) Carter 2006.
2001-02-26 23:06:25 +03:00
*
* 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 .
*/
/* This is the implementation of the wks interface. */
# include "includes.h"
2002-07-15 14:35:28 +04:00
# undef DBGC_CLASS
# define DBGC_CLASS DBGC_RPC_SRV
2001-02-26 23:06:25 +03:00
/*******************************************************************
2006-09-20 23:26:21 +04:00
Fill in the valiues for the struct wkssvc_NetWkstaInfo100 .
2001-02-26 23:06:25 +03:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2006-09-20 23:26:21 +04:00
static void create_wks_info_100 ( struct wkssvc_NetWkstaInfo100 * info100 )
2001-02-26 23:06:25 +03:00
{
pstring my_name ;
pstring domain ;
2002-11-13 02:20:50 +03:00
pstrcpy ( my_name , global_myname ( ) ) ;
2003-07-03 23:11:31 +04:00
strupper_m ( my_name ) ;
2001-02-26 23:06:25 +03:00
pstrcpy ( domain , lp_workgroup ( ) ) ;
2003-07-03 23:11:31 +04:00
strupper_m ( domain ) ;
2006-09-20 23:26:21 +04:00
info100 - > platform_id = 0x000001f4 ; /* unknown */
info100 - > version_major = lp_major_announce_version ( ) ;
info100 - > version_minor = lp_minor_announce_version ( ) ;
info100 - > server_name = talloc_strdup ( info100 , my_name ) ;
info100 - > domain_name = talloc_strdup ( info100 , domain ) ;
2001-02-26 23:06:25 +03:00
2006-09-20 23:26:21 +04:00
return ;
2001-02-26 23:06:25 +03:00
}
2006-09-20 23:26:21 +04:00
/********************************************************************
2001-02-26 23:06:25 +03:00
only supports info level 100 at the moment .
2006-09-20 23:26:21 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _wkssvc_NetWkstaGetInfo ( pipes_struct * p , const char * server_name , uint32_t level ,
union wkssvc_NetWkstaInfo * info )
{
struct wkssvc_NetWkstaInfo100 * wks100 = NULL ;
/* We only support info level 100 currently */
if ( level ! = 100 ) {
2006-09-21 00:45:23 +04:00
return WERR_UNKNOWN_LEVEL ;
2006-09-20 23:26:21 +04:00
}
if ( ( wks100 = TALLOC_ZERO_P ( p - > mem_ctx , struct wkssvc_NetWkstaInfo100 ) ) = = NULL ) {
2006-09-21 00:45:23 +04:00
return WERR_NOMEM ;
2006-09-20 23:26:21 +04:00
}
2006-09-20 21:56:50 +04:00
2006-09-20 23:26:21 +04:00
create_wks_info_100 ( wks100 ) ;
info - > info100 = wks100 ;
2006-09-21 00:45:23 +04:00
return WERR_OK ;
2006-09-20 23:26:21 +04:00
}
/********************************************************************
2006-09-20 21:56:50 +04:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2006-09-20 23:26:21 +04:00
WERROR _wkssvc_NetWkstaSetInfo ( pipes_struct * p , const char * server_name ,
uint32_t level , union wkssvc_NetWkstaInfo * info ,
uint32_t * parm_error )
2006-09-20 21:56:50 +04:00
{
2006-09-20 23:26:21 +04:00
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
2006-09-20 21:56:50 +04:00
2006-09-20 23:26:21 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2006-09-20 21:56:50 +04:00
2006-09-20 23:26:21 +04:00
WERROR _wkssvc_NetWkstaEnumUsers ( pipes_struct * p , const char * server_name ,
uint32_t level ,
union WKS_USER_ENUM_UNION * users ,
uint32_t prefmaxlen , uint32_t * entriesread ,
uint32_t * totalentries ,
uint32_t * resumehandle )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
2001-02-26 23:06:25 +03:00
2006-09-20 23:26:21 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRWKSTAUSERGETINFO ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRWKSTAUSERSETINFO ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _wkssvc_NetWkstaTransportEnum ( pipes_struct * p , const char * server_name , uint32_t * level , union wkssvc_NetWkstaTransportCtr * ctr , uint32_t max_buffer , uint32_t * totalentries , uint32_t * resume_handle )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRWKSTATRANSPORTADD ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRWKSTATRANSPORTDEL ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRUSEADD ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRUSEGETINFO ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRUSEDEL ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRUSEENUM ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRMESSAGEBUFFERSEND ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRWORKSTATIONSTATISTICSGET ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRLOGONDOMAINNAMEADD ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRLOGONDOMAINNAMEDEL ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRJOINDOMAIN ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRUNJOINDOMAIN ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRRENAMEMACHINEINDOMAIN ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRVALIDATENAME ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRGETJOININFORMATION ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRGETJOINABLEOUS ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _wkssvc_NetrJoinDomain2 ( pipes_struct * p , const char * server_name , const char * domain_name , const char * account_name , const char * admin_account , struct wkssvc_PasswordBuffer * encrypted_password , uint32_t join_flags )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _wkssvc_NetrUnjoinDomain2 ( pipes_struct * p , const char * server_name , const char * account , struct wkssvc_PasswordBuffer * encrypted_password , uint32_t unjoin_flags )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _wkssvc_NetrRenameMachineInDomain2 ( pipes_struct * p , const char * server_name , const char * NewMachineName , const char * Account , struct wkssvc_PasswordBuffer * EncryptedPassword , uint32_t RenameOptions )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRVALIDATENAME2 ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRGETJOINABLEOUS2 ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
2006-09-20 21:56:50 +04:00
2006-09-20 23:26:21 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _wkssvc_NetrAddAlternateComputerName ( pipes_struct * p , const char * server_name , const char * NewAlternateMachineName , const char * Account , struct wkssvc_PasswordBuffer * EncryptedPassword , uint32_t Reserved )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
2006-09-20 21:56:50 +04:00
2006-09-20 23:26:21 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2006-09-20 21:56:50 +04:00
2006-09-20 23:26:21 +04:00
WERROR _wkssvc_NetrRemoveAlternateComputerName ( pipes_struct * p , const char * server_name , const char * AlternateMachineNameToRemove , const char * Account , struct wkssvc_PasswordBuffer * EncryptedPassword , uint32_t Reserved )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
2006-09-20 21:56:50 +04:00
}
2006-09-20 23:26:21 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRSETPRIMARYCOMPUTERNAME ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
WERROR _WKSSVC_NETRENUMERATECOMPUTERNAMES ( pipes_struct * p )
{
/* FIXME: Add implementation code here */
return WERR_NOT_SUPPORTED ;
}