dlist: remove unneeded type argument from DLIST_ADD_END()
[samba.git] / source3 / nmbd / nmbd_packets.c
index 0324c9dd4274402d31d2088785f79bd94f3a1762..b608354e7b1460e55aa08ef2d0653d2bd7c0c2d8 100644 (file)
@@ -94,12 +94,12 @@ static int find_subnet_mailslot_fd_for_address( struct in_addr local_ip )
 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';
@@ -145,12 +145,12 @@ static void debug_browse_data(const char *outbuf, int len)
   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;
@@ -242,7 +242,7 @@ static struct packet_struct *create_and_init_netbios_packet(struct nmb_name *nmb
 **************************************************************************/
 
 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;
@@ -335,7 +335,7 @@ static bool initiate_name_query_packet_from_wins_server( struct packet_struct *p
 **************************************************************************/
 
 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;
 
@@ -359,7 +359,7 @@ static bool initiate_name_register_packet( struct packet_struct *packet,
 **************************************************************************/
 
 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;
@@ -387,7 +387,7 @@ for name %s IP %s (bcast=%s) to IP %s\n",
 **************************************************************************/
 
 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;
 
@@ -411,7 +411,7 @@ static bool initiate_name_refresh_packet( struct packet_struct *packet,
 **************************************************************************/
 
 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;
 
@@ -484,7 +484,7 @@ struct response_record *queue_register_name( struct subnet_record *subrec,
                           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;
@@ -535,7 +535,7 @@ struct response_record *queue_register_name( struct subnet_record *subrec,
 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)
 {
@@ -602,7 +602,7 @@ struct response_record *queue_register_multihomed_name( struct subnet_record *su
                                                        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)
 {
@@ -660,7 +660,7 @@ struct response_record *queue_release_name( struct subnet_record *subrec,
                                            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)
 {
@@ -963,9 +963,10 @@ void reply_netbios_packet(struct packet_struct *orig_packet,
                        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;
@@ -1032,7 +1033,7 @@ for id %hu\n", packet_type, nmb_namestr(&orig_nmb->question.question_name),
 
 void queue_packet(struct packet_struct *packet)
 {
-       DLIST_ADD_END(packet_queue, packet, struct packet_struct *);
+       DLIST_ADD_END(packet_queue, packet);
 }
 
 /****************************************************************************
@@ -1435,15 +1436,17 @@ static struct subnet_record *find_subnet_for_nmb_packet( struct packet_struct *p
 
                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;
                }
 
@@ -1565,8 +1568,9 @@ static void process_nmb_response(struct packet_struct *p)
                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;
        }
 
@@ -1723,7 +1727,7 @@ static bool create_listen_pollfds(struct pollfd **pfds,
        if (fds == NULL) {
                DEBUG(1, ("create_listen_pollfds: malloc fail for attrs. "
                          "size %d\n", count));
-               SAFE_FREE(fds);
+               TALLOC_FREE(fds);
                return true;
        }
 
@@ -1864,7 +1868,7 @@ static void free_processed_packet_list(struct processed_packet **pp_processed_pa
   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;
@@ -1935,7 +1939,7 @@ bool listen_for_packets(bool run_election)
        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;
@@ -1948,7 +1952,7 @@ bool listen_for_packets(bool run_election)
 #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
 
@@ -1995,21 +1999,23 @@ bool listen_for_packets(bool run_election)
                        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;
+                               }
                        }
                }