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
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _wkssvc_NetWkstaGetInfo ( pipes_struct * p , struct wkssvc_NetWkstaGetInfo * r )
2006-09-20 23:26:21 +04:00
{
struct wkssvc_NetWkstaInfo100 * wks100 = NULL ;
/* We only support info level 100 currently */
2007-01-18 13:18:59 +03:00
if ( r - > in . 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 ) ;
2007-01-18 13:18:59 +03:00
r - > out . info - > info100 = wks100 ;
2006-09-20 23:26:21 +04:00
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
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _wkssvc_NetWkstaSetInfo ( pipes_struct * p , struct wkssvc_NetWkstaSetInfo * r )
2006-09-20 21:56:50 +04:00
{
2006-09-20 23:26:21 +04:00
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
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
2007-01-18 13:18:59 +03:00
WERROR _wkssvc_NetWkstaEnumUsers ( pipes_struct * p , struct wkssvc_NetWkstaEnumUsers * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
2001-02-26 23:06:25 +03:00
2006-09-20 23:26:21 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRWKSTAUSERGETINFO ( pipes_struct * p , struct WKSSVC_NETRWKSTAUSERGETINFO * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRWKSTAUSERSETINFO ( pipes_struct * p , struct WKSSVC_NETRWKSTAUSERSETINFO * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _wkssvc_NetWkstaTransportEnum ( pipes_struct * p , struct wkssvc_NetWkstaTransportEnum * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRWKSTATRANSPORTADD ( pipes_struct * p , struct WKSSVC_NETRWKSTATRANSPORTADD * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRWKSTATRANSPORTDEL ( pipes_struct * p , struct WKSSVC_NETRWKSTATRANSPORTDEL * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRUSEADD ( pipes_struct * p , struct WKSSVC_NETRUSEADD * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRUSEGETINFO ( pipes_struct * p , struct WKSSVC_NETRUSEGETINFO * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRUSEDEL ( pipes_struct * p , struct WKSSVC_NETRUSEDEL * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRUSEENUM ( pipes_struct * p , struct WKSSVC_NETRUSEENUM * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRMESSAGEBUFFERSEND ( pipes_struct * p , struct WKSSVC_NETRMESSAGEBUFFERSEND * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRWORKSTATIONSTATISTICSGET ( pipes_struct * p , struct WKSSVC_NETRWORKSTATIONSTATISTICSGET * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRLOGONDOMAINNAMEADD ( pipes_struct * p , struct WKSSVC_NETRLOGONDOMAINNAMEADD * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRLOGONDOMAINNAMEDEL ( pipes_struct * p , struct WKSSVC_NETRLOGONDOMAINNAMEDEL * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRJOINDOMAIN ( pipes_struct * p , struct WKSSVC_NETRJOINDOMAIN * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRUNJOINDOMAIN ( pipes_struct * p , struct WKSSVC_NETRUNJOINDOMAIN * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRRENAMEMACHINEINDOMAIN ( pipes_struct * p , struct WKSSVC_NETRRENAMEMACHINEINDOMAIN * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRVALIDATENAME ( pipes_struct * p , struct WKSSVC_NETRVALIDATENAME * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRGETJOININFORMATION ( pipes_struct * p , struct WKSSVC_NETRGETJOININFORMATION * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRGETJOINABLEOUS ( pipes_struct * p , struct WKSSVC_NETRGETJOINABLEOUS * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _wkssvc_NetrJoinDomain2 ( pipes_struct * p , struct wkssvc_NetrJoinDomain2 * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _wkssvc_NetrUnjoinDomain2 ( pipes_struct * p , struct wkssvc_NetrUnjoinDomain2 * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _wkssvc_NetrRenameMachineInDomain2 ( pipes_struct * p , struct wkssvc_NetrRenameMachineInDomain2 * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRVALIDATENAME2 ( pipes_struct * p , struct WKSSVC_NETRVALIDATENAME2 * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRGETJOINABLEOUS2 ( pipes_struct * p , struct WKSSVC_NETRGETJOINABLEOUS2 * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
2006-09-20 21:56:50 +04:00
2006-09-20 23:26:21 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _wkssvc_NetrAddAlternateComputerName ( pipes_struct * p , struct wkssvc_NetrAddAlternateComputerName * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
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
2007-01-18 13:18:59 +03:00
WERROR _wkssvc_NetrRemoveAlternateComputerName ( pipes_struct * p , struct wkssvc_NetrRemoveAlternateComputerName * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
2006-09-20 21:56:50 +04:00
}
2006-09-20 23:26:21 +04:00
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRSETPRIMARYCOMPUTERNAME ( pipes_struct * p , struct WKSSVC_NETRSETPRIMARYCOMPUTERNAME * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}
/********************************************************************
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2007-01-18 13:18:59 +03:00
WERROR _WKSSVC_NETRENUMERATECOMPUTERNAMES ( pipes_struct * p , struct WKSSVC_NETRENUMERATECOMPUTERNAMES * r )
2006-09-20 23:26:21 +04:00
{
/* FIXME: Add implementation code here */
2006-10-10 12:39:11 +04:00
p - > rng_fault_state = True ;
2006-09-20 23:26:21 +04:00
return WERR_NOT_SUPPORTED ;
}