2
Unix SMB/CIFS implementation.
6
Copyright (C) Andrew Tridgell 2005
8
This program is free software; you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation; either version 3 of the License, or
11
(at your option) any later version.
13
This program is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
GNU General Public License for more details.
18
You should have received a copy of the GNU General Public License
19
along with this program. If not, see <http://www.gnu.org/licenses/>.
22
#include "../libcli/nbt/libnbt.h"
23
#include "libcli/wrepl/winsrepl.h"
24
#include "libcli/dgram/libdgram.h"
25
#include "librpc/gen_ndr/irpc.h"
26
#include "lib/messaging/irpc.h"
29
a list of our registered names on each interface
31
struct nbtd_iface_name {
32
struct nbtd_iface_name *next, *prev;
33
struct nbtd_interface *iface;
36
struct timeval registration_time;
39
/* if registered with a wins server, then this lists the server being
41
const char *wins_server;
44
struct nbtd_wins_wack_state;
46
/* a list of network interfaces we are listening on */
47
struct nbtd_interface {
48
struct nbtd_interface *next, *prev;
49
struct nbtd_server *nbtsrv;
50
const char *ip_address;
51
const char *bcast_address;
53
struct nbt_name_socket *nbtsock;
54
struct nbt_dgram_socket *dgmsock;
55
struct nbtd_iface_name *names;
56
struct nbtd_wins_wack_state *wack_queue;
61
top level context structure for the nbt server
64
struct task_server *task;
66
/* the list of local network interfaces */
67
struct nbtd_interface *interfaces;
69
/* broadcast interface used for receiving packets only */
70
struct nbtd_interface *bcast_interface;
72
/* wins client interface - used for registering and refreshing
73
our names with a WINS server */
74
struct nbtd_interface *wins_interface;
76
struct wins_server *winssrv;
78
struct nbtd_statistics stats;
80
struct ldb_context *sam_ctx;
85
/* check a condition on an incoming packet */
86
#define NBTD_ASSERT_PACKET(packet, src, test) do { \
88
nbtd_bad_packet(packet, src, #test); \
94
#include "nbt_server/nbt_server_proto.h"