diff options
author | Luke Leighton <lkcl@samba.org> | 1999-11-19 01:01:07 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1999-11-19 01:01:07 +0000 |
commit | 161c11e4bcd408064493c063b228aab589fd2a19 (patch) | |
tree | 611a376ca4d791851bec291fee1586506e48306d /source3/rpc_server | |
parent | 1c6c4e7e39bde99f8d312516ba530b905bc01da7 (diff) | |
download | samba-161c11e4bcd408064493c063b228aab589fd2a19.tar.gz samba-161c11e4bcd408064493c063b228aab589fd2a19.tar.bz2 samba-161c11e4bcd408064493c063b228aab589fd2a19.zip |
- bug in nmbd registering DOMAIN_NAME<1c> to WINS server; recursion
desired flag MUST be set in any NBT UDP packets sent to a WINS
server, else they will go to the WINS client side of the NT NetBIOS
kernel instead, and will get trashed.
- added \PIPE\browser server-side code.
(This used to be commit 8e406c1fa296c3f97b1cd7ddde7b5aeb9232b26e)
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_brs.c | 98 | ||||
-rw-r--r-- | source3/rpc_server/srv_pipe.c | 1 |
2 files changed, 99 insertions, 0 deletions
diff --git a/source3/rpc_server/srv_brs.c b/source3/rpc_server/srv_brs.c new file mode 100644 index 0000000000..c2abd28cf8 --- /dev/null +++ b/source3/rpc_server/srv_brs.c @@ -0,0 +1,98 @@ + +/* + * Unix SMB/Netbios implementation. + * Version 1.9. + * RPC Pipe client / server routines + * Copyright (C) Andrew Tridgell 1992-1999, + * Copyright (C) Luke Kenneth Casson Leighton 1996-1999, + * + * 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 02139, USA. + */ + + +#include "includes.h" +#include "nterr.h" + +extern int DEBUGLEVEL; +extern pstring global_myname; + + +/******************************************************************* + create_brs_info_100 + ********************************************************************/ +static void create_brs_info_100(BRS_INFO_100 *inf) +{ + DEBUG(5,("create_brs_info_100: %d\n", __LINE__)); + + make_brs_info_100(inf); +} + +/******************************************************************* + brs_reply_query_info + + only supports info level 100 at the moment. + + ********************************************************************/ +static void brs_reply_query_info(BRS_Q_QUERY_INFO *q_u, + prs_struct *rdata, + int status) +{ + BRS_R_QUERY_INFO r_u; + BRS_INFO_100 brs100; + + DEBUG(5,("brs_query_info: %d\n", __LINE__)); + + create_brs_info_100(&brs100); + make_brs_r_query_info(&r_u, q_u->switch_value1, &brs100, status); + + /* store the response in the SMB stream */ + brs_io_r_query_info("", &r_u, rdata, 0); + + DEBUG(5,("brs_query_info: %d\n", __LINE__)); +} + +/******************************************************************* + api_brs_query_info + ********************************************************************/ +static void api_brs_query_info( pipes_struct *p, prs_struct *data, + prs_struct *rdata ) +{ + BRS_Q_QUERY_INFO q_u; + + /* grab the net share enum */ + brs_io_q_query_info("", &q_u, data, 0); + + /* construct reply. always indicate success */ + brs_reply_query_info(&q_u, rdata, 0x0); +} + + +/******************************************************************* + \PIPE\brssvc commands + ********************************************************************/ +struct api_struct api_brs_cmds[] = +{ + { "BRS_Q_QUERY_INFO", BRS_QUERY_INFO, api_brs_query_info }, + { NULL , 0 , NULL } +}; + +/******************************************************************* + receives a browser pipe and responds. + ********************************************************************/ +BOOL api_brs_rpc(pipes_struct *p, prs_struct *data) +{ + return api_rpcTNP(p, "api_brssvc_rpc", api_brs_cmds, data); +} + diff --git a/source3/rpc_server/srv_pipe.c b/source3/rpc_server/srv_pipe.c index c6d9cf070e..075c9b0d37 100644 --- a/source3/rpc_server/srv_pipe.c +++ b/source3/rpc_server/srv_pipe.c @@ -402,6 +402,7 @@ static struct api_cmd api_fd_commands[] = { "samr", "lsass", api_samr_rpc }, { "srvsvc", "ntsvcs", api_srvsvc_rpc }, { "wkssvc", "ntsvcs", api_wkssvc_rpc }, + { "browser", "ntsvcs", api_brs_rpc }, { "svcctl", "ntsvcs", api_svcctl_rpc }, { "NETLOGON", "lsass", api_netlog_rpc }, { "winreg", "winreg", api_reg_rpc }, |