s4:torture:smb2: remove an unused variable from torture_smb2_setinfo()
[samba.git] / source4 / nbt_server / nbt_server.h
index d7c85d77f2f0234bd3cf1fc5fe56a1c1a1a82cb9..c80e5bfca0789f974ce0857a92d3b3adfb53550f 100644 (file)
@@ -7,7 +7,7 @@
    
    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
+   the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.
    
    This program is distributed in the hope that it will be useful,
    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.
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
 
-#include "libcli/nbt/libnbt.h"
+#include "../libcli/nbt/libnbt.h"
+#include "libcli/wrepl/winsrepl.h"
+#include "libcli/dgram/libdgram.h"
+#include "librpc/gen_ndr/irpc.h"
+#include "lib/messaging/irpc.h"
 
 /* 
    a list of our registered names on each interface
 */
-struct nbt_iface_name {
-       struct nbt_iface_name *next, *prev;
-       struct nbt_interface *iface;
+struct nbtd_iface_name {
+       struct nbtd_iface_name *next, *prev;
+       struct nbtd_interface *iface;
        struct nbt_name name;
        uint16_t nb_flags;
        struct timeval registration_time;
        uint32_t ttl;
+
+       /* if registered with a wins server, then this lists the server being
+          used */
+       const char *wins_server;
 };
 
+struct nbtd_wins_wack_state;
 
 /* a list of network interfaces we are listening on */
-struct nbt_interface {
-       struct nbt_interface *next, *prev;
-       struct nbt_server *nbtsrv;
+struct nbtd_interface {
+       struct nbtd_interface *next, *prev;
+       struct nbtd_server *nbtsrv;
        const char *ip_address;
        const char *bcast_address;
        const char *netmask;
        struct nbt_name_socket *nbtsock;
-       struct nbt_iface_name *names;
+       struct nbt_dgram_socket *dgmsock;
+       struct nbtd_iface_name *names;
+       struct nbtd_wins_wack_state *wack_queue;
 };
 
 
 /*
   top level context structure for the nbt server
 */
-struct nbt_server {
+struct nbtd_server {
        struct task_server *task;
 
        /* the list of local network interfaces */
-       struct nbt_interface *interfaces;
+       struct nbtd_interface *interfaces;
 
        /* broadcast interface used for receiving packets only */
-       struct nbt_interface *bcast_interface;
+       struct nbtd_interface *bcast_interface;
+
+       /* wins client interface - used for registering and refreshing
+          our names with a WINS server */
+       struct nbtd_interface *wins_interface;
+
+       struct wins_server *winssrv;
+
+       struct nbtd_statistics stats;
+
+       struct ldb_context *sam_ctx;
 };
 
 
 
 /* check a condition on an incoming packet */
-#define NBT_ASSERT_PACKET(packet, src_address, test) do { \
+#define NBTD_ASSERT_PACKET(packet, src, test) do { \
        if (!(test)) { \
-               nbtd_bad_packet(packet, src_address, #test); \
+               nbtd_bad_packet(packet, src, #test); \
                return; \
        } \
 } while (0)
+
+struct interface;
+#include "nbt_server/nbt_server_proto.h"