2005-02-16 10:03:18 +00:00
/*
Unix SMB / CIFS implementation .
structures for WINS replication client library
Copyright ( C ) Andrew Tridgell 2005
2010-03-05 14:17:08 +01:00
Copyright ( C ) Stefan Metzmacher 2005 - 2010
2005-02-16 10:03:18 +00: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
2007-07-10 02:07:03 +00:00
the Free Software Foundation ; either version 3 of the License , or
2005-02-16 10:03:18 +00:00
( 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
2007-07-10 02:07:03 +00:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2005-02-16 10:03:18 +00:00
*/
2006-03-16 00:23:11 +00:00
# include "librpc/gen_ndr/nbt.h"
# include "librpc/gen_ndr/winsrepl.h"
2005-02-16 10:03:18 +00:00
2010-03-05 15:49:27 +01:00
struct wrepl_request ;
2010-03-05 18:30:10 +01:00
struct wrepl_socket ;
2005-02-16 10:03:18 +00:00
2005-12-12 21:31:42 +00:00
struct wrepl_send_ctrl {
2007-08-27 18:10:19 +00:00
bool send_only ;
bool disconnect_after_send ;
2005-12-12 21:31:42 +00:00
} ;
2005-02-18 23:13:51 +00:00
/*
setup an association
*/
struct wrepl_associate {
struct {
uint32_t assoc_ctx ;
2008-03-26 20:06:12 +01:00
uint16_t major_version ;
2005-02-18 23:13:51 +00:00
} out ;
} ;
2005-10-06 14:38:07 +00:00
/*
setup an association
*/
struct wrepl_associate_stop {
struct {
uint32_t assoc_ctx ;
uint32_t reason ;
} in ;
} ;
2005-02-18 23:13:51 +00:00
/*
pull the partner table
*/
struct wrepl_pull_table {
struct {
uint32_t assoc_ctx ;
} in ;
struct {
uint32_t num_partners ;
struct wrepl_wins_owner * partners ;
} out ;
} ;
2005-09-29 14:00:07 +00:00
# define WREPL_NAME_TYPE(flags) (flags & WREPL_FLAGS_RECORD_TYPE)
# define WREPL_NAME_STATE(flags) ((flags & WREPL_FLAGS_RECORD_STATE)>>2)
2005-09-29 22:06:24 +00:00
# define WREPL_NAME_NODE(flags) ((flags & WREPL_FLAGS_NODE_TYPE)>>5)
2007-10-06 22:28:14 +00:00
# define WREPL_NAME_IS_STATIC(flags) ((flags & WREPL_FLAGS_IS_STATIC)?true:false)
2005-09-29 14:00:07 +00:00
# define WREPL_NAME_FLAGS(type, state, node, is_static) \
2005-09-29 22:06:24 +00:00
( type | ( state < < 2 ) | ( node < < 5 ) | \
2005-09-29 14:00:07 +00:00
( is_static ? WREPL_FLAGS_IS_STATIC : 0 ) )
2010-03-03 09:45:01 +01:00
struct wrepl_address {
const char * owner ;
const char * address ;
} ;
struct wrepl_name {
struct nbt_name name ;
enum wrepl_name_type type ;
enum wrepl_name_state state ;
enum wrepl_name_node node ;
bool is_static ;
uint32_t raw_flags ;
uint64_t version_id ;
const char * owner ;
uint32_t num_addresses ;
struct wrepl_address * addresses ;
} ;
2005-02-18 23:13:51 +00:00
/*
a full pull replication
*/
struct wrepl_pull_names {
struct {
uint32_t assoc_ctx ;
struct wrepl_wins_owner partner ;
} in ;
struct {
uint32_t num_names ;
2010-03-03 09:45:01 +01:00
struct wrepl_name * names ;
2005-02-18 23:13:51 +00:00
} out ;
} ;
2005-12-28 15:38:36 +00:00
2010-03-05 18:30:10 +01:00
struct tstream_context ;
2007-12-10 18:41:55 +01:00
2005-12-28 15:38:36 +00:00
# include "libcli/wrepl/winsrepl_proto.h"