s3: Remove some unused code
authorVolker Lendecke <vl@samba.org>
Wed, 5 Jan 2011 13:50:21 +0000 (14:50 +0100)
committerVolker Lendecke <vl@samba.org>
Fri, 7 Jan 2011 19:16:05 +0000 (20:16 +0100)
source3/include/proto.h
source3/libsmb/clidgram.c
source3/libsmb/clidgram.h
source3/libsmb/namequery.c
source3/libsmb/nmblib.c
source3/libsmb/unexpected.c
source3/nmbd/nmbd.c
source3/nmbd/nmbd_packets.c
source3/winbindd/winbindd_wins.c

index a67f2b46909694b66caf7596778e2665893b0444..0775acd21da28002e67c78232d2b52130c3c8418 100644 (file)
@@ -2792,9 +2792,6 @@ bool nmb_name_equal(struct nmb_name *n1, struct nmb_name *n2);
 int build_packet(char *buf, size_t buflen, struct packet_struct *p);
 bool send_packet(struct packet_struct *p);
 struct packet_struct *receive_packet(int fd,enum packet_type type,int t);
-struct packet_struct *receive_nmb_packet(int fd, int t, int trn_id);
-struct packet_struct *receive_dgram_packet(int fd, int t,
-               const char *mailslot_name);
 bool match_mailslot_name(struct packet_struct *p, const char *mailslot_name);
 int matching_len_bits(unsigned char *p1, unsigned char *p2, size_t len);
 void sort_query_replies(char *data, int n, struct in_addr ip);
@@ -2936,13 +2933,6 @@ NTSTATUS change_trust_account_password( const char *domain, const char *remote_m
 
 /* The following definitions come from libsmb/unexpected.c  */
 
-bool is_requested_send_packet(struct packet_struct *p);
-bool store_outstanding_send_packet(struct packet_struct *p);
-void unexpected_packet(struct packet_struct *p);
-void clear_unexpected(time_t t);
-struct packet_struct *receive_unexpected(enum packet_type packet_type, int id,
-                                        const char *mailslot_name);
-
 struct nb_packet_server;
 struct nb_packet_reader;
 
index 57fbd71da5f635f42303abb1830cf4f8ca54c1ce..d46aadc8029dccf88760f6f84384d9c4c5eba362 100644 (file)
@@ -174,48 +174,6 @@ fail:
        return ret;
 }
 
-bool send_getdc_request(struct messaging_context *msg_ctx,
-                       const struct sockaddr_storage *dc_ss,
-                       const char *domain_name,
-                       const struct dom_sid *sid,
-                       uint32_t nt_version,
-                       int dgm_id)
-{
-       struct packet_struct p;
-       pid_t nmbd_pid;
-       char *my_mailslot;
-       struct in_addr dc_ip;
-       NTSTATUS status;
-
-       if ((nmbd_pid = pidfile_pid("nmbd")) == 0) {
-               DEBUG(3, ("No nmbd found\n"));
-               return False;
-       }
-
-       if (dc_ss->ss_family != AF_INET) {
-               return false;
-       }
-       dc_ip = ((struct sockaddr_in *)dc_ss)->sin_addr;
-
-       my_mailslot = mailslot_name(talloc_tos(), dc_ip);
-       if (my_mailslot == NULL) {
-               return NULL;
-       }
-
-       if (!prep_getdc_request(dc_ss, domain_name, sid, nt_version,
-                               my_mailslot, dgm_id, &p)) {
-               TALLOC_FREE(my_mailslot);
-               return false;
-       }
-
-       status = messaging_send_buf(msg_ctx, pid_to_procid(nmbd_pid),
-                                   MSG_SEND_PACKET,
-                                   (uint8 *)&p, sizeof(p));
-       TALLOC_FREE(my_mailslot);
-
-       return NT_STATUS_IS_OK(status);
-}
-
 static bool parse_getdc_response(
        struct packet_struct *packet,
        TALLOC_CTX *mem_ctx,
@@ -313,47 +271,6 @@ static bool parse_getdc_response(
        return True;
 }
 
-bool receive_getdc_response(TALLOC_CTX *mem_ctx,
-                           const struct sockaddr_storage *dc_ss,
-                           const char *domain_name,
-                           int dgm_id,
-                           uint32_t *nt_version,
-                           const char **dc_name,
-                           struct netlogon_samlogon_response **samlogon_response)
-{
-       struct packet_struct *packet = NULL;
-       char *my_mailslot = NULL;
-       struct in_addr dc_ip;
-       bool ret;
-
-
-       if (dc_ss->ss_family != AF_INET) {
-               return false;
-       }
-
-       dc_ip = ((struct sockaddr_in *)dc_ss)->sin_addr;
-
-       my_mailslot = mailslot_name(mem_ctx, dc_ip);
-       if (!my_mailslot) {
-               return false;
-       }
-
-       packet = receive_unexpected(DGRAM_PACKET, dgm_id, my_mailslot);
-
-       if (packet == NULL) {
-               DEBUG(5, ("Did not receive packet for %s\n", my_mailslot));
-               return False;
-       }
-
-       DEBUG(5, ("Received packet for %s\n", my_mailslot));
-
-       ret = parse_getdc_response(packet, mem_ctx, domain_name, nt_version,
-                                  dc_name, samlogon_response);
-
-       free_packet(packet);
-       return ret;
-}
-
 struct nbt_getdc_state {
        struct tevent_context *ev;
        struct messaging_context *msg_ctx;
index 3ddf9d6b1acfc962324a943aaf95e17a061ccbd5..640a590248b66b85860015ad83895bbf6aed5685 100644 (file)
@@ -2,20 +2,6 @@
 
 /* The following definitions come from libsmb/clidgram.c  */
 
-bool send_getdc_request(struct messaging_context *msg_ctx,
-                       const struct sockaddr_storage *dc_ss,
-                       const char *domain_name,
-                       const struct dom_sid *sid,
-                       uint32_t nt_version,
-                       int dgm_id);
-bool receive_getdc_response(TALLOC_CTX *mem_ctx,
-                           const struct sockaddr_storage *dc_ss,
-                           const char *domain_name,
-                           int dgm_id,
-                           uint32_t *nt_version,
-                           const char **dc_name,
-                           struct netlogon_samlogon_response **reply);
-
 struct tevent_req *nbt_getdc_send(TALLOC_CTX *mem_ctx,
                                  struct tevent_context *ev,
                                  struct messaging_context *msg_ctx,
index ab98a12146eb4c46908d084eebd5f98d58569837..e7dd22ad108edfb9ac8a3d15aad2d53fd61342b0 100644 (file)
@@ -657,32 +657,6 @@ static NTSTATUS nb_trans_recv(struct tevent_req *req,
        return NT_STATUS_OK;
 }
 
-/****************************************************************************
- Try and send a request to nmbd to send a packet_struct packet first.
- If this fails, use send_packet().
-**************************************************************************/
-
-static bool send_packet_request(struct packet_struct *p)
-{
-       struct messaging_context *msg_ctx = server_messaging_context();
-       if (msg_ctx) {
-               pid_t nmbd_pid = pidfile_pid("nmbd");
-
-               if (nmbd_pid) {
-                       /* Try nmbd. */
-                       if (NT_STATUS_IS_OK(messaging_send_buf(msg_ctx,
-                                       pid_to_procid(nmbd_pid),
-                                       MSG_SEND_PACKET,
-                                       (uint8_t *)p,
-                                       sizeof(struct packet_struct)))) {
-                               return true;
-                       }
-               }
-       }
-
-       return send_packet(p);
-}
-
 /****************************************************************************
  Do a NBT node status query on an open socket and return an array of
  structures holding the returned names or NULL if the query failed.
index fd011ebf27945338e592140c1d39ab14527b15b1..ae7ad996b387a4fbcd6250431ebfed63809c417d 100644 (file)
@@ -1132,52 +1132,12 @@ struct packet_struct *receive_packet(int fd,enum packet_type type,int t)
        return(NULL);
 }
 
-/****************************************************************************
- Receive a UDP/137 packet either via UDP or from the unexpected packet
- queue. The packet must be a reply packet and have the specified trn_id.
- The timeout is in milliseconds.
-***************************************************************************/
-
-struct packet_struct *receive_nmb_packet(int fd, int t, int trn_id)
-{
-       struct packet_struct *p;
-
-       p = receive_packet(fd, NMB_PACKET, t);
-
-       if (p && p->packet.nmb.header.response &&
-                       p->packet.nmb.header.name_trn_id == trn_id) {
-               return p;
-       }
-       if (p)
-               free_packet(p);
-
-       /* try the unexpected packet queue */
-       return receive_unexpected(NMB_PACKET, trn_id, NULL);
-}
-
 /****************************************************************************
  Receive a UDP/138 packet either via UDP or from the unexpected packet
  queue. The packet must be a reply packet and have the specified mailslot name
  The timeout is in milliseconds.
 ***************************************************************************/
 
-struct packet_struct *receive_dgram_packet(int fd, int t,
-               const char *mailslot_name)
-{
-       struct packet_struct *p;
-
-       p = receive_packet(fd, DGRAM_PACKET, t);
-
-       if (p && match_mailslot_name(p, mailslot_name)) {
-               return p;
-       }
-       if (p)
-               free_packet(p);
-
-       /* try the unexpected packet queue */
-       return receive_unexpected(DGRAM_PACKET, 0, mailslot_name);
-}
-
 /****************************************************************************
  See if a datagram has the right mailslot name.
 ***************************************************************************/
index 4543ffe7c65d20a177292b296341abe3ae74a9bd..c05af9ba8aa0622fd03c9c525971a2a1a24a8bb6 100644 (file)
 #include "includes.h"
 #include "lib/async_req/async_sock.h"
 
-static struct tdb_wrap *tdbd = NULL;
-
-/* the key type used in the unexpected packet database */
-struct unexpected_key {
-       enum packet_type packet_type;
-       time_t timestamp;
-       int count;
-};
-
-struct pending_unexpected {
-       struct pending_unexpected *prev, *next;
-       enum packet_type packet_type;
-       int id;
-       time_t timeout;
-};
-
-static struct pending_unexpected *pu_list;
-
-/****************************************************************************
- This function is called when nmbd has received an unexpected packet.
- It checks against the list of outstanding packet transaction id's
- to see if it should be stored in the unexpected.tdb.
-**************************************************************************/
-
-static struct pending_unexpected *find_unexpected_packet(struct packet_struct *p)
-{
-       struct pending_unexpected *pu;
-
-       if (!p) {
-               return NULL;
-       }
-
-       for (pu = pu_list; pu; pu = pu->next) {
-               if (pu->packet_type == p->packet_type) {
-                       int id = (p->packet_type == DGRAM_PACKET) ?
-                               p->packet.dgram.header.dgm_id :
-                               p->packet.nmb.header.name_trn_id;
-                       if (id == pu->id) {
-                               DEBUG(10,("find_unexpected_packet: found packet "
-                                       "with id = %d\n", pu->id ));
-                               return pu;
-                       }
-               }
-       }
-
-       return NULL;
-}
-
-
-/****************************************************************************
- This function is called when nmbd has been given a packet to send out.
- It stores a list of outstanding packet transaction id's and the timeout
- when they should be removed.
-**************************************************************************/
-
-bool store_outstanding_send_packet(struct packet_struct *p)
-{
-       struct pending_unexpected *pu = NULL;
-
-       if (!p) {
-               return false;
-       }
-
-       pu = find_unexpected_packet(p);
-       if (pu) {
-               /* This is a resend, and we haven't received a
-                  reply yet ! Ignore it. */
-               return false;
-       }
-
-       pu = SMB_MALLOC_P(struct pending_unexpected);
-       if (!pu || !p) {
-               return false;
-       }
-
-       ZERO_STRUCTP(pu);
-       pu->packet_type = p->packet_type;
-       pu->id = (p->packet_type == DGRAM_PACKET) ?
-                       p->packet.dgram.header.dgm_id :
-                       p->packet.nmb.header.name_trn_id;
-       pu->timeout = time(NULL) + 15;
-
-       DLIST_ADD_END(pu_list, pu, struct pending_unexpected *);
-
-       DEBUG(10,("store_outstanding_unexpected_packet: storing packet "
-               "with id = %d\n", pu->id ));
-
-       return true;
-}
-
-/****************************************************************************
- Return true if this is a reply to a packet we were requested to send.
-**************************************************************************/
-
-bool is_requested_send_packet(struct packet_struct *p)
-{
-       return (find_unexpected_packet(p) != NULL);
-}
-
-/****************************************************************************
- This function is called when nmbd has received an unexpected packet.
- It checks against the list of outstanding packet transaction id's
- to see if it should be stored in the unexpected.tdb. Don't store if
- not found.
-**************************************************************************/
-
-static bool should_store_unexpected_packet(struct packet_struct *p)
-{
-       struct pending_unexpected *pu = find_unexpected_packet(p);
-
-       if (!pu) {
-               return false;
-       }
-
-       /* Remove the outstanding entry. */
-       DLIST_REMOVE(pu_list, pu);
-       SAFE_FREE(pu);
-       return true;
-}
-
-/****************************************************************************
- All unexpected packets are passed in here, to be stored in a unexpected
- packet database. This allows nmblookup and other tools to receive packets
- erroneously sent to the wrong port by broken MS systems.
-**************************************************************************/
-
-void unexpected_packet(struct packet_struct *p)
-{
-       static int count;
-       TDB_DATA kbuf, dbuf;
-       struct unexpected_key key;
-       char buf[1024];
-       int len=0;
-       uint32_t enc_ip;
-
-       if (!should_store_unexpected_packet(p)) {
-               DEBUG(10,("Not storing unexpected packet\n"));
-               return;
-       }
-
-       DEBUG(10,("unexpected_packet: storing packet\n"));
-
-       if (!tdbd) {
-               tdbd = tdb_wrap_open(NULL, lock_path("unexpected.tdb"), 0,
-                                    TDB_CLEAR_IF_FIRST|TDB_DEFAULT|TDB_INCOMPATIBLE_HASH,
-                                    O_RDWR | O_CREAT, 0644);
-               if (!tdbd) {
-                       DEBUG(0,("Failed to open unexpected.tdb\n"));
-                       return;
-               }
-       }
-
-       memset(buf,'\0',sizeof(buf));
-
-       /* Encode the ip addr and port. */
-       enc_ip = ntohl(p->ip.s_addr);
-       SIVAL(buf,0,enc_ip);
-       SSVAL(buf,4,p->port);
-
-       len = build_packet(&buf[6], sizeof(buf)-6, p) + 6;
-
-       ZERO_STRUCT(key);       /* needed for potential alignment */
-
-       key.packet_type = p->packet_type;
-       key.timestamp = p->timestamp;
-       key.count = count++;
-
-       kbuf.dptr = (uint8_t *)&key;
-       kbuf.dsize = sizeof(key);
-       dbuf.dptr = (uint8_t *)buf;
-       dbuf.dsize = len;
-
-       tdb_store(tdbd->tdb, kbuf, dbuf, TDB_REPLACE);
-}
-
-
-static time_t lastt;
-
-/****************************************************************************
- Delete the record if it is too old.
-**************************************************************************/
-
-static int traverse_fn(TDB_CONTEXT *ttdb, TDB_DATA kbuf, TDB_DATA dbuf, void *state)
-{
-       struct unexpected_key key;
-
-       if (kbuf.dsize != sizeof(key)) {
-               tdb_delete(ttdb, kbuf);
-       }
-
-       memcpy(&key, kbuf.dptr, sizeof(key));
-
-       if (lastt - key.timestamp > NMBD_UNEXPECTED_TIMEOUT) {
-               tdb_delete(ttdb, kbuf);
-       }
-
-       return 0;
-}
-
-
-/****************************************************************************
- Delete all old unexpected packets.
-**************************************************************************/
-
-void clear_unexpected(time_t t)
-{
-       struct pending_unexpected *pu, *pu_next;
-
-       for (pu = pu_list; pu; pu = pu_next) {
-               pu_next = pu->next;
-               if (pu->timeout < t) {
-                       DLIST_REMOVE(pu_list, pu);
-                       SAFE_FREE(pu);
-               }
-       }
-
-       if (!tdbd) return;
-
-       if ((lastt != 0) && (t < lastt + NMBD_UNEXPECTED_TIMEOUT))
-               return;
-
-       lastt = t;
-
-       tdb_traverse(tdbd->tdb, traverse_fn, NULL);
-}
-
-struct receive_unexpected_state {
-       struct packet_struct *matched_packet;
-       int match_id;
-       enum packet_type match_type;
-       const char *match_name;
-};
-
-/****************************************************************************
- tdb traversal fn to find a matching 137 packet.
-**************************************************************************/
-
-static int traverse_match(TDB_CONTEXT *ttdb, TDB_DATA kbuf, TDB_DATA dbuf,
-                         void *private_data)
-{
-       struct receive_unexpected_state *state =
-               (struct receive_unexpected_state *)private_data;
-       struct unexpected_key key;
-       struct in_addr ip;
-       uint32_t enc_ip;
-       int port;
-       struct packet_struct *p;
-
-       if (kbuf.dsize != sizeof(key)) {
-               return 0;
-       }
-
-       memcpy(&key, kbuf.dptr, sizeof(key));
-
-       if (key.packet_type != state->match_type) return 0;
-
-       if (dbuf.dsize < 6) {
-               return 0;
-       }
-
-       /* Decode the ip addr and port. */
-       enc_ip = IVAL(dbuf.dptr,0);
-       ip.s_addr = htonl(enc_ip);
-       port = SVAL(dbuf.dptr,4);
-
-       p = parse_packet((char *)&dbuf.dptr[6],
-                       dbuf.dsize-6,
-                       state->match_type,
-                       ip,
-                       port);
-       if (!p)
-               return 0;
-
-       if ((state->match_type == NMB_PACKET &&
-            p->packet.nmb.header.name_trn_id == state->match_id) ||
-           (state->match_type == DGRAM_PACKET &&
-            match_mailslot_name(p, state->match_name) &&
-            p->packet.dgram.header.dgm_id == state->match_id)) {
-               state->matched_packet = p;
-               tdb_delete(ttdb, kbuf);
-               return -1;
-       }
-
-       free_packet(p);
-
-       return 0;
-}
-
-/****************************************************************************
- Check for a particular packet in the unexpected packet queue.
-**************************************************************************/
-
-struct packet_struct *receive_unexpected(enum packet_type packet_type, int id,
-                                        const char *mailslot_name)
-{
-       struct tdb_wrap *tdb2;
-       struct receive_unexpected_state state;
-
-       tdb2 = tdb_wrap_open(talloc_tos(), lock_path("unexpected.tdb"), 0, 0,
-                            O_RDWR, 0);
-       if (!tdb2) return NULL;
-
-       state.matched_packet = NULL;
-       state.match_id = id;
-       state.match_type = packet_type;
-       state.match_name = mailslot_name;
-
-       tdb_traverse(tdb2->tdb, traverse_match, &state);
-
-       TALLOC_FREE(tdb2);
-
-       return state.matched_packet;
-}
-
 static const char *nmbd_socket_dir(void)
 {
        return lp_parm_const_string(-1, "nmbd", "socket dir", "/tmp/.nmbd");
index 89590c11d55a3bf1894b6ace1ffae371d113f91e..b2230c3e048380b469b93763c7060881eed38377 100644 (file)
@@ -460,9 +460,7 @@ static void msg_nmbd_send_packet(struct messaging_context *msg,
                p->packet.dgram.header.source_port = 138;
        }
 
-       if (store_outstanding_send_packet(p)) {
-               send_packet(p);
-       }
+       send_packet(p);
 }
 
 /**************************************************************************** **
@@ -658,12 +656,6 @@ static void process(void)
                if (lp_enhanced_browsing())
                        sync_all_dmbs(t);
 
-               /*
-                * clear the unexpected packet queue 
-                */
-
-               clear_unexpected(t);
-
                /* check for new network interfaces */
 
                reload_interfaces(t);
index c2a5204fac9a9eb157cc1b85e71c41552ba20377..73ee1411046eaf01fe0f9c7ca290645fc172dcb2 100644 (file)
@@ -1223,7 +1223,6 @@ static void process_dgram(struct packet_struct *p)
        /* If we aren't listening to the destination name then ignore the packet */
        if (!listening(p,&dgram->dest_name)) {
                        nb_packet_dispatch(packet_server, p);
-                       unexpected_packet(p);
                        DEBUG(5,("process_dgram: ignoring dgram packet sent to name %s from %s\n",
                                nmb_namestr(&dgram->dest_name), inet_ntoa(p->ip)));
                        return;
@@ -1231,7 +1230,6 @@ static void process_dgram(struct packet_struct *p)
 
        if (dgram->header.msg_type != 0x10 && dgram->header.msg_type != 0x11 && dgram->header.msg_type != 0x12) {
                nb_packet_dispatch(packet_server, p);
-               unexpected_packet(p);
                /* Don't process error packets etc yet */
                DEBUG(5,("process_dgram: ignoring dgram packet sent to name %s from IP %s as it is \
 an error packet of type %x\n", nmb_namestr(&dgram->dest_name), inet_ntoa(p->ip), dgram->header.msg_type));
@@ -1318,7 +1316,6 @@ packet sent to name %s from IP %s\n",
        }
 
        nb_packet_dispatch(packet_server, p);
-       unexpected_packet(p);
 }
 
 /****************************************************************************
@@ -1439,7 +1436,6 @@ static struct subnet_record *find_subnet_for_nmb_packet( struct packet_struct *p
                        DEBUG(3,("find_subnet_for_nmb_packet: response record not found for response id %hu\n",
                                nmb->header.name_trn_id));
                        nb_packet_dispatch(packet_server, p);
-                       unexpected_packet(p);
                        return NULL;
                }
 
@@ -1927,7 +1923,6 @@ bool listen_for_packets(bool run_election)
                const char *packet_name;
                int client_fd;
                int client_port;
-               bool is_requested_send_reply = false;
 
                if (sock_array[i] == -1) {
                        continue;
@@ -1956,8 +1951,6 @@ bool listen_for_packets(bool run_election)
                        continue;
                }
 
-               is_requested_send_reply = is_requested_send_packet(packet);
-
                /*
                 * If we got a packet on the broadcast socket and interfaces
                 * only is set then check it came from one of our local nets.
@@ -1971,8 +1964,7 @@ bool listen_for_packets(bool run_election)
                        continue;
                }
 
-               if (!is_requested_send_reply &&
-                   (is_loopback_ip_v4(packet->ip) || ismyip_v4(packet->ip)) &&
+               if ((is_loopback_ip_v4(packet->ip) || ismyip_v4(packet->ip)) &&
                    packet->port == client_port)
                {
                        if (client_port == DGRAM_PORT) {
index 164816ce2e03bd957f7035229b8a7ed7a2be8bbe..adfe55247c7d740379500acc65c9179e20b73eca 100644 (file)
 #undef DBGC_CLASS
 #define DBGC_CLASS DBGC_WINBIND
 
-/* Use our own create socket code so we don't recurse.... */
-
-static int wins_lookup_open_socket_in(void)
-{
-       struct sockaddr_in sock;
-       int val=1;
-       int res;
-
-       memset((char *)&sock,'\0',sizeof(sock));
-
-#ifdef HAVE_SOCK_SIN_LEN
-       sock.sin_len = sizeof(sock);
-#endif
-       sock.sin_port = 0;
-       sock.sin_family = AF_INET;
-       sock.sin_addr.s_addr = interpret_addr("0.0.0.0");
-       res = socket(AF_INET, SOCK_DGRAM, 0);
-       if (res == -1)
-               return -1;
-
-       if (setsockopt(res,SOL_SOCKET,SO_REUSEADDR,(char *)&val,sizeof(val))) {
-               close(res);
-               return -1;
-       }
-#ifdef SO_REUSEPORT
-       if (setsockopt(res,SOL_SOCKET,SO_REUSEPORT,(char *)&val,sizeof(val))) {
-               close(res);
-               return -1;
-       }
-#endif /* SO_REUSEPORT */
-
-       /* now we've got a socket - we need to bind it */
-
-       if (bind(res, (struct sockaddr *)(void *)&sock, sizeof(sock)) < 0) {
-               close(res);
-               return(-1);
-       }
-
-       set_socket_options(res,"SO_BROADCAST");
-
-       return res;
-}
-
-
 static struct node_status *lookup_byaddr_backend(TALLOC_CTX *mem_ctx,
                                                 const char *addr, int *count)
 {