diff options
author | Gerald Carter <jerry@samba.org> | 2003-08-14 21:14:28 +0000 |
---|---|---|
committer | Gerald Carter <jerry@samba.org> | 2003-08-14 21:14:28 +0000 |
commit | 11777e6a3085a996ab2c5fa3db34d8834401c24e (patch) | |
tree | 920eb81311c3e2026bb06acf552f5dd6ced9b857 /source3/rpc_server/srv_dfs.c | |
parent | bb6dff2cb1599882ed6142c3617560b6e9755841 (diff) | |
download | samba-11777e6a3085a996ab2c5fa3db34d8834401c24e.tar.gz samba-11777e6a3085a996ab2c5fa3db34d8834401c24e.tar.bz2 samba-11777e6a3085a996ab2c5fa3db34d8834401c24e.zip |
Attempt at fixing bug #283. There however is no solution.
There is a workaround documented in the bug report.
This patch does:
* add server support for the LSA_DS UUID on the lsarpc pipe
* store a list of context_ids/api_structs in the pipe_struct
so that we don't have to lookup the function table for a pipe.
We just match the context_id. Note that a dce/rpc alter_context
does not destroy the previous context so it is possible to
have multiple bindings active on the same pipe. Observed from
standalone win2k sp4 client.
* added server code for DsROleGetPrimaryDOmainInfo() but disabled it
since it causes problems enumerating users and groups from a 2ksp4
domain member in a Samba domain.
(This used to be commit 96bc2abfcb0dd0912696fad76e43cb217b33e061)
Diffstat (limited to 'source3/rpc_server/srv_dfs.c')
-rw-r--r-- | source3/rpc_server/srv_dfs.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/source3/rpc_server/srv_dfs.c b/source3/rpc_server/srv_dfs.c index 27bb0732b4..6c35917e61 100644 --- a/source3/rpc_server/srv_dfs.c +++ b/source3/rpc_server/srv_dfs.c @@ -157,17 +157,23 @@ static BOOL api_dfs_enum(pipes_struct *p) /******************************************************************* \pipe\netdfs commands ********************************************************************/ - -NTSTATUS rpc_dfs_init(void) +static struct api_struct api_netdfs_cmds[] = { - struct api_struct api_netdfs_cmds[] = - { {"DFS_EXIST", DFS_EXIST, api_dfs_exist }, {"DFS_ADD", DFS_ADD, api_dfs_add }, {"DFS_REMOVE", DFS_REMOVE, api_dfs_remove }, {"DFS_GET_INFO", DFS_GET_INFO, api_dfs_get_info }, {"DFS_ENUM", DFS_ENUM, api_dfs_enum } - }; +}; + +void netdfs_get_pipe_fns( struct api_struct **fns, int *n_fns ) +{ + *fns = api_netdfs_cmds; + *n_fns = sizeof(api_netdfs_cmds) / sizeof(struct api_struct); +} + +NTSTATUS rpc_dfs_init(void) +{ return rpc_pipe_register_commands(SMB_RPC_INTERFACE_VERSION, "netdfs", "netdfs", api_netdfs_cmds, sizeof(api_netdfs_cmds) / sizeof(struct api_struct)); } |