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)sys_getpid()%(unsigned)100);
+ name_trn_id = ((unsigned)time(NULL)%(unsigned)0x7FFF) + ((unsigned)getpid()%(unsigned)100);
}
name_trn_id = (name_trn_id+1) % (unsigned)0x7FFF;
return name_trn_id;
**************************************************************************/
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)
{
return;
}
- DEBUG(4,("reply_netbios_packet: sending a reply of packet type: %s %s to ip %s \
-for id %hu\n", packet_type, nmb_namestr(&orig_nmb->question.question_name),
- inet_ntoa(packet.ip), orig_nmb->header.name_trn_id));
+ DEBUG(4, ("reply_netbios_packet: sending a reply of packet type: %s "
+ "%s to ip %s for id %d\n", packet_type,
+ nmb_namestr(&orig_nmb->question.question_name),
+ inet_ntoa(packet.ip), orig_nmb->header.name_trn_id));
nmb->header.name_trn_id = orig_nmb->header.name_trn_id;
nmb->header.opcode = opcode;
void queue_packet(struct packet_struct *packet)
{
- DLIST_ADD_END(packet_queue, packet, struct packet_struct *);
+ DLIST_ADD_END(packet_queue, packet);
}
/****************************************************************************
rrec = find_response_record( &subrec, nmb->header.name_trn_id);
if(rrec == NULL) {
- DEBUG(3,("find_subnet_for_nmb_packet: response record not found for response id %hu\n",
- nmb->header.name_trn_id));
+ DEBUG(3, ("find_subnet_for_nmb_packet: response "
+ "record not found for response id %d\n",
+ nmb->header.name_trn_id));
nb_packet_dispatch(packet_server, p);
return NULL;
}
if(subrec == NULL) {
- DEBUG(0,("find_subnet_for_nmb_packet: subnet record not found for response id %hu\n",
- nmb->header.name_trn_id));
+ DEBUG(0, ("find_subnet_for_nmb_packet: subnet record "
+ "not found for response id %d\n",
+ nmb->header.name_trn_id));
return NULL;
}
return;
if(rrec == NULL) {
- DEBUG(0,("process_nmb_response: response packet received but no response record \
-found for id = %hu. Ignoring packet.\n", nmb->header.name_trn_id));
+ DEBUG(0, ("process_nmb_response: response packet received but "
+ "no response record found for id = %d. Ignoring "
+ "packet.\n", nmb->header.name_trn_id));
return;
}
if (fds == NULL) {
DEBUG(1, ("create_listen_pollfds: malloc fail for attrs. "
"size %d\n", count));
- SAFE_FREE(fds);
+ TALLOC_FREE(fds);
return true;
}
return True if the socket is dead
***************************************************************************/
-bool listen_for_packets(bool run_election)
+bool listen_for_packets(struct messaging_context *msg, bool run_election)
{
static struct pollfd *fds = NULL;
static struct socket_attributes *attrs = NULL;
event_add_to_poll_args(nmbd_event_context(), NULL,
&fds, &num_sockets, &timeout);
- pollrtn = sys_poll(fds, num_sockets, timeout);
+ pollrtn = poll(fds, num_sockets, timeout);
if (run_events_poll(nmbd_event_context(), pollrtn, fds, num_sockets)) {
return False;
#ifndef SYNC_DNS
if ((dns_fd != -1) && (dns_pollidx != -1) &&
(fds[dns_pollidx].revents & (POLLIN|POLLHUP|POLLERR))) {
- run_dns_queue();
+ run_dns_queue(msg);
}
#endif
continue;
}
- if ((is_loopback_ip_v4(packet->ip) || ismyip_v4(packet->ip)) &&
- packet->port == client_port)
- {
- if (client_port == DGRAM_PORT) {
- DEBUG(7,("discarding own dgram packet from %s:%d\n",
- inet_ntoa(packet->ip),packet->port));
- free_packet(packet);
- continue;
- }
-
- if (packet->packet.nmb.header.nm_flags.bcast) {
- DEBUG(7,("discarding own nmb bcast packet from %s:%d\n",
- inet_ntoa(packet->ip),packet->port));
- free_packet(packet);
- continue;
+ if (!IS_DC) {
+ if ((is_loopback_ip_v4(packet->ip) || ismyip_v4(packet->ip)) &&
+ packet->port == client_port)
+ {
+ if (client_port == DGRAM_PORT) {
+ DEBUG(7,("discarding own dgram packet from %s:%d\n",
+ inet_ntoa(packet->ip),packet->port));
+ free_packet(packet);
+ continue;
+ }
+
+ if (packet->packet.nmb.header.nm_flags.bcast) {
+ DEBUG(7,("discarding own nmb bcast packet from %s:%d\n",
+ inet_ntoa(packet->ip),packet->port));
+ free_packet(packet);
+ continue;
+ }
}
}