diff options
author | Gerald Carter <jerry@samba.org> | 2007-05-31 17:59:04 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:23:02 -0500 |
commit | 97a164ba96d48a81d5e24dda6b866a4d78ea1a78 (patch) | |
tree | c796745013a8bae5105b17761b6cc9af895030ed /source3/rpc_server | |
parent | 1a13bb5112dc51d6d7da801e9a7dd2655f067a6f (diff) | |
download | samba-97a164ba96d48a81d5e24dda6b866a4d78ea1a78.tar.gz samba-97a164ba96d48a81d5e24dda6b866a4d78ea1a78.tar.bz2 samba-97a164ba96d48a81d5e24dda6b866a4d78ea1a78.zip |
r23274: merge CloseEventlog() pidl conversion from 3.0.26 && fix a few init call renames for svcctl in the previous commit
(This used to be commit ebcae48ec10fefa74efcc3563cff50e3b9c2388c)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_eventlog.c | 46 | ||||
-rw-r--r-- | source3/rpc_server/srv_eventlog_nt.c | 145 | ||||
-rw-r--r-- | source3/rpc_server/srv_pipe.c | 4 |
3 files changed, 165 insertions, 30 deletions
diff --git a/source3/rpc_server/srv_eventlog.c b/source3/rpc_server/srv_eventlog.c index ae15d43f4b..1492e67109 100644 --- a/source3/rpc_server/srv_eventlog.c +++ b/source3/rpc_server/srv_eventlog.c @@ -1,7 +1,8 @@ /* * Unix SMB/CIFS implementation. * RPC Pipe client / server routines - * Copyright (C) Marcin Krzysztof Porwit 2005. + * Copyright (C) Marcin Krzysztof Porwit 2005. + * Copyright (C) Gerald Carter 2005 - 2007 * * 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 @@ -23,6 +24,23 @@ #undef DBGC_CLASS #define DBGC_CLASS DBGC_RPC_SRV +static BOOL proxy_eventlog_call(pipes_struct *p, uint8 opnum) +{ + struct api_struct *fns; + int n_fns; + + eventlog_get_pipe_fns(&fns, &n_fns); + + if (opnum >= n_fns) + return False; + + if (fns[opnum].opnum != opnum) { + smb_panic("EVENTLOG function table not sorted\n"); + } + + return fns[opnum].fn(p); +} + static BOOL api_eventlog_open_eventlog(pipes_struct *p) { EVENTLOG_Q_OPEN_EVENTLOG q_u; @@ -50,27 +68,7 @@ static BOOL api_eventlog_open_eventlog(pipes_struct *p) static BOOL api_eventlog_close_eventlog(pipes_struct *p) { - EVENTLOG_Q_CLOSE_EVENTLOG q_u; - EVENTLOG_R_CLOSE_EVENTLOG r_u; - prs_struct *data = &p->in_data.data; - prs_struct *rdata = &p->out_data.rdata; - - ZERO_STRUCT(q_u); - ZERO_STRUCT(r_u); - - if (!(eventlog_io_q_close_eventlog("", &q_u, data, 0))) { - DEBUG(0, ("eventlog_io_q_close_eventlog: unable to unmarshall EVENTLOG_Q_CLOSE_EVENTLOG.\n")); - return False; - } - - r_u.status = _eventlog_close_eventlog(p, &q_u, &r_u); - - if (!(eventlog_io_r_close_eventlog("", &r_u, rdata, 0))) { - DEBUG(0, ("eventlog_io_r_close_eventlog: unable to marshall EVENTLOG_R_CLOSE_EVENTLOG.\n")); - return False; - } - - return True; + return proxy_eventlog_call( p, DCERPC_EVENTLOG_CLOSEEVENTLOG ); } static BOOL api_eventlog_get_num_records(pipes_struct *p) @@ -186,14 +184,14 @@ struct api_struct api_eventlog_cmds[] = {"EVENTLOG_CLEAREVENTLOG", EVENTLOG_CLEAREVENTLOG, api_eventlog_clear_eventlog } }; -NTSTATUS rpc_eventlog_init(void) +NTSTATUS rpc_eventlog2_init(void) { return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "eventlog", "eventlog", api_eventlog_cmds, sizeof(api_eventlog_cmds)/sizeof(struct api_struct)); } -void eventlog_get_pipe_fns(struct api_struct **fns, int *n_fns) +void eventlog2_get_pipe_fns(struct api_struct **fns, int *n_fns) { *fns = api_eventlog_cmds; *n_fns = sizeof(api_eventlog_cmds) / sizeof(struct api_struct); diff --git a/source3/rpc_server/srv_eventlog_nt.c b/source3/rpc_server/srv_eventlog_nt.c index 753772642a..85990055dd 100644 --- a/source3/rpc_server/srv_eventlog_nt.c +++ b/source3/rpc_server/srv_eventlog_nt.c @@ -658,11 +658,9 @@ NTSTATUS _eventlog_clear_eventlog( pipes_struct * p, /******************************************************************** ********************************************************************/ -NTSTATUS _eventlog_close_eventlog( pipes_struct * p, - EVENTLOG_Q_CLOSE_EVENTLOG * q_u, - EVENTLOG_R_CLOSE_EVENTLOG * r_u ) +NTSTATUS _eventlog_CloseEventLog( pipes_struct * p, struct eventlog_CloseEventLog *r ) { - return elog_close( p, &q_u->handle ); + return elog_close( p, r->in.handle ); } /******************************************************************** @@ -801,3 +799,142 @@ NTSTATUS _eventlog_get_num_records( pipes_struct * p, return NT_STATUS_OK; } + +NTSTATUS _eventlog_ClearEventLogW(pipes_struct *p, struct eventlog_ClearEventLogW *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_BackupEventLogW(pipes_struct *p, struct eventlog_BackupEventLogW *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_DeregisterEventSource(pipes_struct *p, struct eventlog_DeregisterEventSource *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_GetNumRecords(pipes_struct *p, struct eventlog_GetNumRecords *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_GetOldestRecord(pipes_struct *p, struct eventlog_GetOldestRecord *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_ChangeNotify(pipes_struct *p, struct eventlog_ChangeNotify *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_OpenEventLogW(pipes_struct *p, struct eventlog_OpenEventLogW *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_RegisterEventSourceW(pipes_struct *p, struct eventlog_RegisterEventSourceW *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_OpenBackupEventLogW(pipes_struct *p, struct eventlog_OpenBackupEventLogW *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_ReadEventLogW(pipes_struct *p, struct eventlog_ReadEventLogW *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_ReportEventW(pipes_struct *p, struct eventlog_ReportEventW *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_ClearEventLogA(pipes_struct *p, struct eventlog_ClearEventLogA *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_BackupEventLogA(pipes_struct *p, struct eventlog_BackupEventLogA *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_OpenEventLogA(pipes_struct *p, struct eventlog_OpenEventLogA *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_RegisterEventSourceA(pipes_struct *p, struct eventlog_RegisterEventSourceA *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_OpenBackupEventLogA(pipes_struct *p, struct eventlog_OpenBackupEventLogA *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_ReadEventLogA(pipes_struct *p, struct eventlog_ReadEventLogA *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_ReportEventA(pipes_struct *p, struct eventlog_ReportEventA *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_RegisterClusterSvc(pipes_struct *p, struct eventlog_RegisterClusterSvc *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_DeregisterClusterSvc(pipes_struct *p, struct eventlog_DeregisterClusterSvc *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_WriteClusterEvents(pipes_struct *p, struct eventlog_WriteClusterEvents *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_GetLogIntormation(pipes_struct *p, struct eventlog_GetLogIntormation *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + +NTSTATUS _eventlog_FlushEventLog(pipes_struct *p, struct eventlog_FlushEventLog *r) +{ + p->rng_fault_state = True; + return NT_STATUS_NOT_IMPLEMENTED; +} + diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c index 83c059d36c..8aab80db72 100644 --- a/source3/rpc_server/srv_pipe.c +++ b/source3/rpc_server/srv_pipe.c @@ -2380,10 +2380,10 @@ void get_pipe_fns( int idx, struct api_struct **fns, int *n_fns ) netdfs_get_pipe_fns( &cmds, &n_cmds ); break; case PI_SVCCTL: - svcctl_get_pipe_fns( &cmds, &n_cmds ); + svcctl2_get_pipe_fns( &cmds, &n_cmds ); break; case PI_EVENTLOG: - eventlog_get_pipe_fns( &cmds, &n_cmds ); + eventlog2_get_pipe_fns( &cmds, &n_cmds ); break; case PI_UNIXINFO: unixinfo_get_pipe_fns( &cmds, &n_cmds ); |