struct subnet_record;
struct nmb_data {
- uint16 nb_flags; /* Netbios flags. */
+ uint16_t nb_flags; /* Netbios flags. */
int num_ips; /* Number of ip entries. */
struct in_addr *ip; /* The ip list for this name. */
/* used for server information: client, nameserv and ipc */
struct server_info_struct {
fstring name;
- uint32 type;
+ uint32_t type;
fstring comment;
fstring domain; /* used ONLY in ipc.c NOT namework.c */
bool server_added; /* used ONLY in ipc.c NOT namework.c */
bool RunningElection;
bool needelection;
int ElectionCount;
- uint32 ElectionCriterion;
+ uint32_t ElectionCriterion;
/* Domain master browser info. Used for efficient syncs. */
struct nmb_name dmb_name;
typedef void (*register_name_success_function)( struct subnet_record *,
struct userdata_struct *,
struct nmb_name *,
- uint16,
+ uint16_t,
int,
struct in_addr);
typedef void (*register_name_fail_function)( struct subnet_record *,
typedef void (*refresh_name_success_function)( struct subnet_record *,
struct userdata_struct *,
struct nmb_name *,
- uint16,
+ uint16_t,
int,
struct in_addr);
typedef void (*refresh_name_fail_function)( struct subnet_record *,
struct response_record *next;
struct response_record *prev;
- uint16 response_id;
+ uint16_t response_id;
/* Callbacks for packets received or not. */
response_function resp_fn;
#include "../librpc/gen_ndr/svcctl.h"
#include "nmbd/nmbd.h"
-extern uint16 samba_nb_type; /* Samba's NetBIOS type. */
+extern uint16_t samba_nb_type; /* Samba's NetBIOS type. */
static void become_domain_master_browser_bcast(const char *);
static void become_domain_master_stage2(struct subnet_record *subrec,
struct userdata_struct *userdata,
struct nmb_name *registered_name,
- uint16 nb_flags,
+ uint16_t nb_flags,
int ttl, struct in_addr registered_ip)
{
unstring regname;
#include "nmbd/nmbd.h"
#include "../librpc/gen_ndr/svcctl.h"
-extern uint16 samba_nb_type; /* Samba's NetBIOS name type. */
+extern uint16_t samba_nb_type; /* Samba's NetBIOS name type. */
/*******************************************************************
Utility function to add a name to the unicast subnet, or add in
******************************************************************/
void insert_permanent_name_into_unicast( struct subnet_record *subrec,
- struct nmb_name *nmbname, uint16 nb_type )
+ struct nmb_name *nmbname, uint16_t nb_type )
{
unstring name;
struct name_record *namerec;
static void become_local_master_stage2(struct subnet_record *subrec,
struct userdata_struct *userdata,
struct nmb_name *registered_name,
- uint16 nb_flags,
+ uint16_t nb_flags,
int ttl, struct in_addr registered_ip)
{
int i = 0;
static void become_local_master_stage1(struct subnet_record *subrec,
struct userdata_struct *userdata,
struct nmb_name *registered_name,
- uint16 nb_flags,
+ uint16_t nb_flags,
int ttl, struct in_addr registered_ip)
{
char *work_name = userdata->data;
while (numnames--) {
unstring qname;
- uint16 nb_flags;
+ uint16_t nb_flags;
int name_type;
pull_ascii_nstring(qname, sizeof(qname), p);
while (numnames--) {
unstring qname;
- uint16 nb_flags;
+ uint16_t nb_flags;
int name_type;
pull_ascii_nstring(qname, sizeof(qname), p);
**************************************************************************/
static void send_election_dgram(struct subnet_record *subrec, const char *workgroup_name,
- uint32 criterion, int timeup,const char *server_name)
+ uint32_t criterion, int timeup,const char *server_name)
{
char outbuf[1024];
unstring srv_name;
******************************************************************/
static bool win_election(struct work_record *work, int version,
- uint32 criterion, int timeup, const char *server_name)
+ uint32_t criterion, int timeup, const char *server_name)
{
int mytimeup = time(NULL) - StartupTime;
- uint32 mycriterion = work->ElectionCriterion;
+ uint32_t mycriterion = work->ElectionCriterion;
/* If local master is false then never win in election broadcasts. */
if(!lp_local_master()) {
{
struct dgram_packet *dgram = &p->packet.dgram;
int version = CVAL(buf,0);
- uint32 criterion = IVAL(buf,1);
+ uint32_t criterion = IVAL(buf,1);
int timeup = IVAL(buf,5)/1000;
unstring server_name;
struct work_record *work;
struct dgram_packet *dgram = &p->packet.dgram;
int ttl = IVAL(buf,1)/1000;
unstring announce_name;
- uint32 servertype = IVAL(buf,23);
+ uint32_t servertype = IVAL(buf,23);
fstring comment;
struct work_record *work;
struct server_record *servrec;
int ttl = IVAL(buf,1)/1000;
unstring workgroup_announce_name;
unstring master_name;
- uint32 servertype = IVAL(buf,23);
+ uint32_t servertype = IVAL(buf,23);
struct work_record *work;
unstring source_name;
unstring dest_name;
struct dgram_packet *dgram = &p->packet.dgram;
int ttl = IVAL(buf,1)/1000;
unstring server_name;
- uint32 servertype = IVAL(buf,23);
+ uint32_t servertype = IVAL(buf,23);
fstring comment;
unstring work_name;
struct work_record *work = NULL;
void process_lm_host_announce(struct subnet_record *subrec, struct packet_struct *p, const char *buf, int len)
{
struct dgram_packet *dgram = &p->packet.dgram;
- uint32 servertype = IVAL(buf,1);
+ uint32_t servertype = IVAL(buf,1);
int osmajor=CVAL(buf,5); /* major version of node software */
int osminor=CVAL(buf,6); /* minor version of node software */
int ttl = SVAL(buf,7);
struct work_record *work,
struct nmb_name *send_to_name,
unsigned char max_number_requested,
- uint32 token, struct in_addr sendto_ip,
+ uint32_t token, struct in_addr sendto_ip,
int port)
{
char outbuf[1024];
struct dgram_packet *dgram = &p->packet.dgram;
struct work_record *work;
unsigned char max_number_requested = CVAL(buf,0);
- uint32 token = IVAL(buf,1); /* Sender's key index for the workgroup. */
+ uint32_t token = IVAL(buf,1); /* Sender's key index for the workgroup. */
int name_type = dgram->dest_name.name_type;
unstring workgroup_name;
struct subnet_record *search_subrec = subrec;
struct nmb_name *question = &nmb->question.question_name;
unstring qname;
bool bcast = nmb->header.nm_flags.bcast;
- uint16 nb_flags = get_nb_flags(nmb->additional->rdata);
+ uint16_t nb_flags = get_nb_flags(nmb->additional->rdata);
bool group = (nb_flags & NB_GROUP) ? True : False;
struct name_record *namerec;
int rcode = 0;
struct nmb_packet *nmb = &p->packet.nmb;
struct nmb_name *question = &nmb->question.question_name;
bool bcast = nmb->header.nm_flags.bcast;
- uint16 nb_flags = get_nb_flags(nmb->additional->rdata);
+ uint16_t nb_flags = get_nb_flags(nmb->additional->rdata);
bool group = (nb_flags & NB_GROUP) ? True : False;
struct name_record *namerec = NULL;
int ttl = nmb->additional->ttl;
if(name_type == -1) {
/* Add the (0) and (0x20) names directly into the namelist for this subnet. */
- (void)add_name_to_subnet(subrec,name,0x00,(uint16)NB_ACTIVE,PERMANENT_TTL,source,1,&ipaddr);
- (void)add_name_to_subnet(subrec,name,0x20,(uint16)NB_ACTIVE,PERMANENT_TTL,source,1,&ipaddr);
+ (void)add_name_to_subnet(subrec,name,0x00,(uint16_t)NB_ACTIVE,PERMANENT_TTL,source,1,&ipaddr);
+ (void)add_name_to_subnet(subrec,name,0x20,(uint16_t)NB_ACTIVE,PERMANENT_TTL,source,1,&ipaddr);
} else {
/* Add the given name type to the subnet namelist. */
- (void)add_name_to_subnet(subrec,name,name_type,(uint16)NB_ACTIVE,PERMANENT_TTL,source,1,&ipaddr);
+ (void)add_name_to_subnet(subrec,name,name_type,(uint16_t)NB_ACTIVE,PERMANENT_TTL,source,1,&ipaddr);
}
}
#include "../librpc/gen_ndr/svcctl.h"
#include "nmbd/nmbd.h"
-extern uint16 samba_nb_type; /* Samba's NetBIOS type. */
+extern uint16_t samba_nb_type; /* Samba's NetBIOS type. */
/****************************************************************************
Fail to become a Logon server on a subnet.
static void become_logon_server_success(struct subnet_record *subrec,
struct userdata_struct *userdata,
struct nmb_name *registered_name,
- uint16 nb_flags,
+ uint16_t nb_flags,
int ttl, struct in_addr registered_ip)
{
unstring reg_name;
#include "includes.h"
#include "nmbd/nmbd.h"
-extern uint16 samba_nb_type; /* Samba's NetBIOS type. */
+extern uint16_t samba_nb_type; /* Samba's NetBIOS type. */
/****************************************************************************
Fail funtion when registering my netbios names.
******************************************************************/
static void insert_refresh_name_into_unicast( struct subnet_record *subrec,
- struct nmb_name *nmbname, uint16 nb_type )
+ struct nmb_name *nmbname, uint16_t nb_type )
{
struct name_record *namerec;
#include "system/filesys.h"
#include "nmbd/nmbd.h"
-uint16 samba_nb_type = 0; /* samba's NetBIOS name type */
+uint16_t samba_nb_type = 0; /* samba's NetBIOS name type */
/**************************************************************************
bool add_name_to_subnet( struct subnet_record *subrec,
const char *name,
int type,
- uint16 nb_flags,
+ uint16_t nb_flags,
int ttl,
enum name_source source,
int num_ips,
void standard_success_register(struct subnet_record *subrec,
struct userdata_struct *userdata,
- struct nmb_name *nmbname, uint16 nb_flags, int ttl,
+ struct nmb_name *nmbname, uint16_t nb_flags, int ttl,
struct in_addr registered_ip)
{
struct name_record *namerec;
struct nmb_name *answer_name = &nmb->answers->rr_name;
struct nmb_packet *sent_nmb = &rrec->packet->packet.nmb;
int ttl = 0;
- uint16 nb_flags = 0;
+ uint16_t nb_flags = 0;
struct in_addr register_ip;
fstring reg_name;
failure, and go into our standard name refresh mode. This
copes with all the wins servers being down */
if (wins_srv_is_dead(rrec->packet->ip, register_ip)) {
- uint16 nb_flags = get_nb_flags(sent_nmb->additional->rdata);
+ uint16_t nb_flags = get_nb_flags(sent_nmb->additional->rdata);
int ttl = sent_nmb->additional->ttl;
standard_success_register(subrec, userdata, nmbname, nb_flags, ttl, register_ip);
bool bcast = sent_nmb->header.nm_flags.bcast;
bool success = False;
struct nmb_name *question_name = &sent_nmb->question.question_name;
- uint16 nb_flags = 0;
+ uint16_t nb_flags = 0;
int ttl = 0;
struct in_addr registered_ip;
****************************************************************************/
static void multihomed_register_one(struct nmb_name *nmbname,
- uint16 nb_flags,
+ uint16_t nb_flags,
register_name_success_function success_fn,
register_name_fail_function fail_fn,
struct in_addr ip,
{
struct nmb_packet *sent_nmb = &rrec->packet->packet.nmb;
struct nmb_name *nmbname = &sent_nmb->question.question_name;
- uint16 nb_flags = get_nb_flags(sent_nmb->additional->rdata);
+ uint16_t nb_flags = get_nb_flags(sent_nmb->additional->rdata);
struct userdata_struct *userdata = rrec->userdata;
const char *tag;
struct in_addr last_ip;
Try and register one of our names on the unicast subnet - multihomed.
****************************************************************************/
-static void multihomed_register_name(struct nmb_name *nmbname, uint16 nb_flags,
+static void multihomed_register_name(struct nmb_name *nmbname, uint16_t nb_flags,
register_name_success_function success_fn,
register_name_fail_function fail_fn)
{
****************************************************************************/
void register_name(struct subnet_record *subrec,
- const char *name, int type, uint16 nb_flags,
+ const char *name, int type, uint16_t nb_flags,
register_name_success_function success_fn,
register_name_fail_function fail_fn,
struct userdata_struct *userdata)
Get/Set problematic nb_flags as network byte order 16 bit int.
**************************************************************************/
-uint16 get_nb_flags(char *buf)
+uint16_t get_nb_flags(char *buf)
{
- return ((((uint16)*buf)&0xFFFF) & NB_FLGMSK);
+ return ((((uint16_t)*buf)&0xFFFF) & NB_FLGMSK);
}
-void set_nb_flags(char *buf, uint16 nb_flags)
+void set_nb_flags(char *buf, uint16_t nb_flags)
{
*buf++ = ((nb_flags & NB_FLGMSK) & 0xFF);
*buf = '\0';
Generates the unique transaction identifier
**************************************************************************/
-static uint16 name_trn_id=0;
+static uint16_t name_trn_id=0;
-static uint16 generate_name_trn_id(void)
+static uint16_t generate_name_trn_id(void)
{
if (!name_trn_id) {
name_trn_id = ((unsigned)time(NULL)%(unsigned)0x7FFF) + ((unsigned)getpid()%(unsigned)100);
**************************************************************************/
static bool create_and_init_additional_record(struct packet_struct *packet,
- uint16 nb_flags,
+ uint16_t nb_flags,
const struct in_addr *register_ip)
{
struct nmb_packet *nmb = &packet->packet.nmb;
**************************************************************************/
static bool initiate_name_register_packet( struct packet_struct *packet,
- uint16 nb_flags, const struct in_addr *register_ip)
+ uint16_t nb_flags, const struct in_addr *register_ip)
{
struct nmb_packet *nmb = &packet->packet.nmb;
**************************************************************************/
static bool initiate_multihomed_name_register_packet(struct packet_struct *packet,
- uint16 nb_flags, struct in_addr *register_ip)
+ uint16_t nb_flags, struct in_addr *register_ip)
{
struct nmb_packet *nmb = &packet->packet.nmb;
fstring second_ip_buf;
**************************************************************************/
static bool initiate_name_refresh_packet( struct packet_struct *packet,
- uint16 nb_flags, struct in_addr *refresh_ip)
+ uint16_t nb_flags, struct in_addr *refresh_ip)
{
struct nmb_packet *nmb = &packet->packet.nmb;
**************************************************************************/
static bool initiate_name_release_packet( struct packet_struct *packet,
- uint16 nb_flags, struct in_addr *release_ip)
+ uint16_t nb_flags, struct in_addr *release_ip)
{
struct nmb_packet *nmb = &packet->packet.nmb;
register_name_fail_function fail_fn,
struct userdata_struct *userdata,
struct nmb_name *nmbname,
- uint16 nb_flags)
+ uint16_t nb_flags)
{
struct packet_struct *p;
struct response_record *rrec;
void queue_wins_refresh(struct nmb_name *nmbname,
response_function resp_fn,
timeout_response_function timeout_fn,
- uint16 nb_flags,
+ uint16_t nb_flags,
struct in_addr refresh_ip,
const char *tag)
{
register_name_fail_function fail_fn,
struct userdata_struct *userdata,
struct nmb_name *nmbname,
- uint16 nb_flags,
+ uint16_t nb_flags,
struct in_addr register_ip,
struct in_addr wins_ip)
{
release_name_fail_function fail_fn,
struct userdata_struct *userdata,
struct nmb_name *nmbname,
- uint16 nb_flags,
+ uint16_t nb_flags,
struct in_addr release_ip,
struct in_addr dest_ip)
{
#include "nmbd/nmbd.h"
struct sam_database_info {
- uint32 index;
- uint32 serial_lo, serial_hi;
- uint32 date_lo, date_hi;
+ uint32_t index;
+ uint32_t serial_lo, serial_hi;
+ uint32_t date_lo, date_hi;
};
/**
**************************************************************************/
static struct response_record *find_response_record_on_subnet(
- struct subnet_record *subrec, uint16 id)
+ struct subnet_record *subrec, uint16_t id)
{
struct response_record *rrec = NULL;
**************************************************************************/
struct response_record *find_response_record(struct subnet_record **ppsubrec,
- uint16 id)
+ uint16_t id)
{
struct response_record *rrec = NULL;
struct server_record *servrec)
{
/* Ensure we don't have the prohibited bit set. */
- uint32 type = servrec->serv.type & ~SV_TYPE_LOCAL_LIST_ONLY;
+ uint32_t type = servrec->serv.type & ~SV_TYPE_LOCAL_LIST_ONLY;
DEBUG(3,("send_local_master_announcement: type %x for name %s on subnet %s for workgroup %s\n",
type, lp_netbios_name(), subrec->subnet_name, work->work_group));
struct server_record *servrec)
{
/* Ensure we don't have the prohibited bits set. */
- uint32 type = servrec->serv.type & ~SV_TYPE_LOCAL_LIST_ONLY;
+ uint32_t type = servrec->serv.type & ~SV_TYPE_LOCAL_LIST_ONLY;
DEBUG(3,("send_host_announcement: type %x for host %s on subnet %s for workgroup %s\n",
type, servrec->serv.name, subrec->subnet_name, work->work_group));
struct server_record *servrec, int lm_interval)
{
/* Ensure we don't have the prohibited bits set. */
- uint32 type = servrec->serv.type & ~SV_TYPE_LOCAL_LIST_ONLY;
+ uint32_t type = servrec->serv.type & ~SV_TYPE_LOCAL_LIST_ONLY;
DEBUG(3,("send_lm_host_announcement: type %x for host %s on subnet %s for workgroup %s, ttl: %d\n",
type, servrec->serv.name, subrec->subnet_name, work->work_group, lm_interval));
out this server record from an earlier subnet.
******************************************************************/
-static uint32 write_this_server_name( struct subnet_record *subrec,
+static uint32_t write_this_server_name( struct subnet_record *subrec,
struct work_record *work,
struct server_record *servrec)
{
broadcast subnets.
******************************************************************/
-static uint32 write_this_workgroup_name( struct subnet_record *subrec,
+static uint32_t write_this_workgroup_name( struct subnet_record *subrec,
struct work_record *work)
{
struct subnet_record *ssub;
Write out the browse.dat file.
******************************************************************/
-void write_browse_list_entry(XFILE *fp, const char *name, uint32 rec_type,
+void write_browse_list_entry(XFILE *fp, const char *name, uint32_t rec_type,
const char *local_master_browser_name, const char *description)
{
fstring tmp;
struct server_record *servrec;
char *fname;
char *fnamenew;
- uint32 stype;
+ uint32_t stype;
int i;
XFILE *fp;
bool list_changed = force_write;
for (work = subrec->workgrouplist; work ; work = work->next) {
/* Write out a workgroup record for a workgroup. */
- uint32 wg_type = write_this_workgroup_name( subrec, work);
+ uint32_t wg_type = write_this_workgroup_name( subrec, work);
if(wg_type) {
write_browse_list_entry(fp, work->work_group, wg_type,
/* Now write out any server records a workgroup may have. */
for (servrec = work->serverlist; servrec ; servrec = servrec->next) {
- uint32 serv_type;
+ uint32_t serv_type;
/* We have already written our names here. */
if(is_myname(servrec->serv.name))
struct subnet_record *remote_broadcast_subnet = NULL;
struct subnet_record *wins_server_subnet = NULL;
-extern uint16 samba_nb_type; /* Samba's NetBIOS name type. */
+extern uint16_t samba_nb_type; /* Samba's NetBIOS name type. */
/****************************************************************************
Add a subnet into the list.
Note sname and comment are in UNIX codepage format.
******************************************************************/
-static void callback(const char *sname, uint32 stype,
+static void callback(const char *sname, uint32_t stype,
const char *comment, void *state)
{
x_fprintf(fp,"\"%s\" %08X \"%s\"\n", sname, stype, comment);
{
fstring unix_workgroup;
struct cli_state *cli;
- uint32 local_type = local ? SV_TYPE_LOCAL_LIST_ONLY : 0;
+ uint32_t local_type = local ? SV_TYPE_LOCAL_LIST_ONLY : 0;
struct sockaddr_storage ss;
NTSTATUS status;
**********************************************************************/
static void complete_one(struct sync_record *s,
- char *sname, uint32 stype, char *comment)
+ char *sname, uint32_t stype, char *comment)
{
struct work_record *work;
struct server_record *servrec;
struct packet_struct *original_packet;
struct subnet_record *orig_broadcast_subnet;
struct name_record *namerec = NULL;
- uint16 nb_flags;
+ uint16_t nb_flags;
int num_ips;
int i;
int ttl = 3600; /* By default one hour in the cache. */
static struct name_record *wins_record_to_name_record(TDB_DATA key, TDB_DATA data)
{
struct name_record *namerec = NULL;
- uint16 nb_flags;
+ uint16_t nb_flags;
unsigned char nr_src;
- uint32 death_time, refresh_time;
- uint32 id_low, id_high;
- uint32 saddr;
- uint32 wins_flags;
- uint32 num_ips;
+ uint32_t death_time, refresh_time;
+ uint32_t id_low, id_high;
+ uint32_t saddr;
+ uint32_t wins_flags;
+ uint32_t num_ips;
size_t len;
int i;
TDB_DATA data;
size_t len = 0;
int i;
- uint32 id_low = (namerec->data.id & 0xFFFFFFFF);
- uint32 id_high = (namerec->data.id >> 32) & 0xFFFFFFFF;
+ uint32_t id_low = (namerec->data.id & 0xFFFFFFFF);
+ uint32_t id_high = (namerec->data.id >> 32) & 0xFFFFFFFF;
ZERO_STRUCT(data);
len = (2 + 1 + (7*4)); /* "wbddddddd" */
len += (namerec->data.num_ips * 4);
- data.dptr = (uint8 *)SMB_MALLOC(len);
+ data.dptr = (uint8_t *)SMB_MALLOC(len);
if (!data.dptr) {
return data;
}
len = tdb_pack(data.dptr, data.dsize, "wbddddddd",
namerec->data.nb_flags,
(unsigned char)namerec->data.source,
- (uint32)namerec->data.death_time,
- (uint32)namerec->data.refresh_time,
+ (uint32_t)namerec->data.death_time,
+ (uint32_t)namerec->data.refresh_time,
id_low,
id_high,
- (uint32)namerec->data.wins_ip.s_addr,
- (uint32)namerec->data.wins_flags,
- (uint32)namerec->data.num_ips );
+ (uint32_t)namerec->data.wins_ip.s_addr,
+ (uint32_t)namerec->data.wins_flags,
+ (uint32_t)namerec->data.num_ips );
for (i = 0; i < namerec->data.num_ips; i++) {
SIVAL(data.dptr, len + (i*4), namerec->data.ip[i].s_addr);
pull_ascii_nstring(keydata, sizeof(unstring), nmbname->name);
(void)strupper_m(keydata);
keydata[sizeof(unstring)] = nmbname->name_type;
- key.dptr = (uint8 *)keydata;
+ key.dptr = (uint8_t *)keydata;
key.dsize = sizeof(keydata);
return key;
struct nmb_packet *nmb = &p->packet.nmb;
struct nmb_name *question = &nmb->question.question_name;
bool bcast = nmb->header.nm_flags.bcast;
- uint16 nb_flags = get_nb_flags(nmb->additional->rdata);
+ uint16_t nb_flags = get_nb_flags(nmb->additional->rdata);
bool group = (nb_flags & NB_GROUP) ? True : False;
struct name_record *namerec = NULL;
int ttl = get_ttl_from_packet(nmb);
struct nmb_packet *nmb = &p->packet.nmb;
struct nmb_name *question = &nmb->question.question_name;
bool bcast = nmb->header.nm_flags.bcast;
- uint16 nb_flags = get_nb_flags(nmb->additional->rdata);
+ uint16_t nb_flags = get_nb_flags(nmb->additional->rdata);
int ttl = get_ttl_from_packet(nmb);
struct name_record *namerec = NULL;
struct in_addr from_ip;
struct nmb_packet *nmb = &p->packet.nmb;
struct nmb_name *question = &nmb->question.question_name;
bool bcast = nmb->header.nm_flags.bcast;
- uint16 nb_flags = get_nb_flags(nmb->additional->rdata);
+ uint16_t nb_flags = get_nb_flags(nmb->additional->rdata);
int ttl = get_ttl_from_packet(nmb);
struct name_record *namerec = NULL;
struct in_addr from_ip;
struct nmb_packet *nmb = &p->packet.nmb;
struct nmb_name *question = &nmb->question.question_name;
bool bcast = nmb->header.nm_flags.bcast;
- uint16 nb_flags = get_nb_flags(nmb->additional->rdata);
+ uint16_t nb_flags = get_nb_flags(nmb->additional->rdata);
struct name_record *namerec = NULL;
struct in_addr from_ip;
bool releasing_group_name = (nb_flags & NB_GROUP) ? True : False;
#include "../librpc/gen_ndr/svcctl.h"
#include "nmbd/nmbd.h"
-extern uint16 samba_nb_type;
+extern uint16_t samba_nb_type;
int workgroup_count = 0; /* unique index key: one for each workgroup */