diff options
author | Luke Leighton <lkcl@samba.org> | 1999-11-19 00:12:16 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1999-11-19 00:12:16 +0000 |
commit | 1c6c4e7e39bde99f8d312516ba530b905bc01da7 (patch) | |
tree | 68a5555a7ff60b4e67ffd7203a70e1bd28a712f6 /source3/include | |
parent | da517a3ff4c133a1475e8e63054201551d132436 (diff) | |
download | samba-1c6c4e7e39bde99f8d312516ba530b905bc01da7.tar.gz samba-1c6c4e7e39bde99f8d312516ba530b905bc01da7.tar.bz2 samba-1c6c4e7e39bde99f8d312516ba530b905bc01da7.zip |
added \PIPE\browser plus experimental brsinfo command. you wouldn't
believe the XXXX that MIGHT be involved in getting nt5rc2 to join
a samba domain...
(This used to be commit 569babb3935950c1b64396955541abf276cc1d92)
Diffstat (limited to 'source3/include')
-rw-r--r-- | source3/include/ntdomain.h | 1 | ||||
-rw-r--r-- | source3/include/proto.h | 21 | ||||
-rw-r--r-- | source3/include/rpc_brs.h | 81 | ||||
-rw-r--r-- | source3/include/smb.h | 3 |
4 files changed, 105 insertions, 1 deletions
diff --git a/source3/include/ntdomain.h b/source3/include/ntdomain.h index 4f6cc85905..67befd81dc 100644 --- a/source3/include/ntdomain.h +++ b/source3/include/ntdomain.h @@ -42,6 +42,7 @@ #include "rpc_srvsvc.h" #include "rpc_svcctl.h" #include "rpc_wkssvc.h" +#include "rpc_brs.h" #include "rpc_atsvc.h" #include "rpc_spoolss.h" #include "rpc_eventlog.h" diff --git a/source3/include/proto.h b/source3/include/proto.h index 38f868ef00..bd38d58136 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1741,6 +1741,12 @@ BOOL at_enum_jobs(struct cli_state *cli, uint16 fnum, BOOL at_query_job(struct cli_state *cli, uint16 fnum, char *server_name, uint32 jobid, AT_JOB_INFO *job, fstring command); +/*The following definitions come from rpc_client/cli_brs.c */ + +BOOL do_brs_query_info(struct cli_state *cli, uint16 fnum, + const char *server_name, uint32 switch_value, + void *id); + /*The following definitions come from rpc_client/cli_eventlog.c */ BOOL do_event_open(struct cli_state *cli, uint16 fnum, char *log, POLICY_HND *hnd); @@ -2182,6 +2188,17 @@ BOOL make_at_q_query_job(AT_Q_QUERY_JOB *q_q, char *server, uint32 jobid); BOOL at_io_q_query_job(char *desc, AT_Q_QUERY_JOB *q_q, prs_struct *ps, int depth); BOOL at_io_r_query_job(char *desc, AT_R_QUERY_JOB *r_q, prs_struct *ps, int depth); +/*The following definitions come from rpc_parse/parse_brs.c */ + +BOOL make_brs_q_query_info(BRS_Q_QUERY_INFO *q_u, + const char *server, uint16 switch_value) ; +BOOL brs_io_q_query_info(char *desc, BRS_Q_QUERY_INFO *q_u, prs_struct *ps, int depth); +BOOL make_brs_info_100(BRS_INFO_100 *inf); +BOOL make_brs_r_query_info(BRS_R_QUERY_INFO *r_u, + uint32 switch_value, void *inf, + int status) ; +BOOL brs_io_r_query_info(char *desc, BRS_R_QUERY_INFO *r_u, prs_struct *ps, int depth); + /*The following definitions come from rpc_parse/parse_eventlog.c */ BOOL make_eventlog_q_open(EVENTLOG_Q_OPEN *q_u, char *journal, char *unk); @@ -3395,6 +3412,10 @@ BOOL api_wkssvc_rpc(pipes_struct *p, prs_struct *data); void cmd_at(struct client_info *info); +/*The following definitions come from rpcclient/cmd_brs.c */ + +void cmd_brs_query_info(struct client_info *info); + /*The following definitions come from rpcclient/cmd_eventlog.c */ void cmd_eventlog(struct client_info *info); diff --git a/source3/include/rpc_brs.h b/source3/include/rpc_brs.h new file mode 100644 index 0000000000..36d89ec151 --- /dev/null +++ b/source3/include/rpc_brs.h @@ -0,0 +1,81 @@ +/* + Unix SMB/Netbios implementation. + Version 1.9. + SMB parameters and setup + 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. +*/ + +#ifndef _RPC_BRS_H /* _RPC_BRS_H */ +#define _RPC_BRS_H + + +/* brssvc pipe */ +#define BRS_QUERY_INFO 0x02 + + +/* BRS_Q_QUERY_INFO - probably a capabilities request */ +typedef struct q_brs_query_info_info +{ + uint32 ptr_srv_name; /* pointer (to server name?) */ + UNISTR2 uni_srv_name; /* unicode server name starting with '\\' */ + + uint16 switch_value1; /* info level 100 (0x64) */ + /* align */ + uint16 switch_value2; /* info level 100 (0x64) */ + + uint32 ptr; + uint32 pad1; + uint32 pad2; + +} BRS_Q_QUERY_INFO; + + +/* BRS_INFO_100 - level 100 info */ +typedef struct brs_info_100_info +{ + uint32 pad1; + uint32 ptr2; + uint32 pad2; + uint32 pad3; + +} BRS_INFO_100; + + +/* BRS_R_QUERY_INFO - probably a capabilities request */ +typedef struct r_brs_query_info_info +{ + uint16 switch_value1; /* 100 (0x64) - switch value */ + /* align */ + uint16 switch_value2; /* info level 100 (0x64) */ + + /* for now, only level 100 is supported. this should be an enum container */ + uint32 ptr_1; /* pointer 1 */ + + union + { + BRS_INFO_100 *brs100; /* browser info level 100 */ + void *id; + + } info; + + uint32 status; /* return status */ + +} BRS_R_QUERY_INFO; + +#endif /* _RPC_BRS_H */ + diff --git a/source3/include/smb.h b/source3/include/smb.h index dccc05ea6a..60bf7d715c 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -249,6 +249,7 @@ typedef char fstring[FSTRING_LEN]; /* pipe string names */ #define PIPE_LANMAN "\\PIPE\\LANMAN" +#define PIPE_BROWSER "\\PIPE\\browser" #define PIPE_SRVSVC "\\PIPE\\srvsvc" #define PIPE_SAMR "\\PIPE\\samr" #define PIPE_WINREG "\\PIPE\\winreg" @@ -261,7 +262,7 @@ typedef char fstring[FSTRING_LEN]; #define PIPE_LSARPC "\\PIPE\\lsarpc" #define PIPE_EPMAPPER "\\PIPE\\epmapper" #define PIPE_ATSVC "\\PIPE\\atsvc" -#define PIPE_SPOOLSS "\\pipe\\spoolss" +#define PIPE_SPOOLSS "\\PIPE\\spoolss" #define PIPE_EVENTLOG "\\PIPE\\EVENTLOG" /* 64 bit time (100usec) since ????? - cifs6.txt, section 3.5, page 30 */ |