about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard Nyberg <rnyberg@murmeldjur.se>2005-06-28 16:54:45 +0000
committerRichard Nyberg <rnyberg@murmeldjur.se>2005-06-28 16:54:45 +0000
commitc375a922364dbcfb1fda640868e9c76cccea0e62 (patch)
tree13e5b924bff6a33f9737aa3ebfa4e39ade75c006
parent2131b9c00eafbdbce6890272fd4df9bac6d41e2f (diff)
downloadbtpd-c375a922364dbcfb1fda640868e9c76cccea0e62.tar.gz
btpd-c375a922364dbcfb1fda640868e9c76cccea0e62.zip
Rename TAILQ to BTPDQ to avoid macro redefinition,
which may happen if some other header includes sys/queue.h.

-rw-r--r--btpd/btpd.c20
-rw-r--r--btpd/btpd.h4
-rw-r--r--btpd/cli_if.c2
-rw-r--r--btpd/net.c78
-rw-r--r--btpd/net.h8
-rw-r--r--btpd/peer.c32
-rw-r--r--btpd/peer.h8
-rw-r--r--btpd/policy.c102
-rw-r--r--btpd/queue.h66
-rw-r--r--btpd/torrent.c24
-rw-r--r--btpd/torrent.h8
-rw-r--r--btpd/tracker_req.c2
12 files changed, 177 insertions, 177 deletions
diff --git a/btpd/btpd.c b/btpd/btpd.c
index db069d5..dfbf8d9 100644
--- a/btpd/btpd.c
+++ b/btpd/btpd.c
@@ -111,13 +111,13 @@ btpd_init(void)
 
     btpd.logmask = BTPD_L_BTPD | BTPD_L_ERROR;
 
-    TAILQ_INIT(&btpd.kids);
+    BTPDQ_INIT(&btpd.kids);
 
     btpd.ntorrents = 0;
-    TAILQ_INIT(&btpd.cm_list);
+    BTPDQ_INIT(&btpd.cm_list);
 
-    TAILQ_INIT(&btpd.readq);
-    TAILQ_INIT(&btpd.writeq);
+    BTPDQ_INIT(&btpd.readq);
+    BTPDQ_INIT(&btpd.writeq);
 
     btpd.port = 6881;
 
@@ -145,9 +145,9 @@ btpd_shutdown(void)
 {
     struct torrent *tp;
 
-    tp = TAILQ_FIRST(&btpd.cm_list);
+    tp = BTPDQ_FIRST(&btpd.cm_list);
     while (tp != NULL) {
-        struct torrent *next = TAILQ_NEXT(tp, entry);
+        struct torrent *next = BTPDQ_NEXT(tp, entry);
         torrent_unload(tp);
         tp = next;
     }
@@ -170,11 +170,11 @@ child_cb(int signal, short type, void *arg)
 
     while ((pid = waitpid(-1, &status, WNOHANG)) > 0) {
 	if (WIFEXITED(status) || WIFSIGNALED(status)) {
-	    struct child *kid = TAILQ_FIRST(&btpd.kids);
+	    struct child *kid = BTPDQ_FIRST(&btpd.kids);
 	    while (kid != NULL && kid->pid != pid)
-		kid = TAILQ_NEXT(kid, entry);
+		kid = BTPDQ_NEXT(kid, entry);
 	    assert(kid != NULL);
-	    TAILQ_REMOVE(&btpd.kids, kid, entry);
+	    BTPDQ_REMOVE(&btpd.kids, kid, entry);
 	    kid->child_done(kid);
 	}
     }
@@ -189,7 +189,7 @@ heartbeat_cb(int sd, short type, void *arg)
 
     btpd.seconds++;
 
-    TAILQ_FOREACH(tp, &btpd.cm_list, entry)
+    BTPDQ_FOREACH(tp, &btpd.cm_list, entry)
 	cm_by_second(tp);
 
     net_by_second();
diff --git a/btpd/btpd.h b/btpd/btpd.h
index a82b3fe..4a9d2de 100644
--- a/btpd/btpd.h
+++ b/btpd/btpd.h
@@ -28,10 +28,10 @@ struct child {
     pid_t pid;
     void *data;
     void (*child_done)(struct child *child);
-    TAILQ_ENTRY(child) entry;
+    BTPDQ_ENTRY(child) entry;
 };
 
-TAILQ_HEAD(child_tq, child);
+BTPDQ_HEAD(child_tq, child);
 
 struct btpd {
     uint8_t peer_id[20];
diff --git a/btpd/cli_if.c b/btpd/cli_if.c
index 8b94f97..07662fe 100644
--- a/btpd/cli_if.c
+++ b/btpd/cli_if.c
@@ -36,7 +36,7 @@ cmd_stat(int argc, const char *args, FILE *fp)
     errdie(buf_print(&iob, "9:ntorrentsi%ue", btpd.ntorrents));
     errdie(buf_print(&iob, "7:secondsi%lue", btpd.seconds));
     errdie(buf_swrite(&iob, "8:torrentsl"));
-    TAILQ_FOREACH(tp, &btpd.cm_list, entry) {
+    BTPDQ_FOREACH(tp, &btpd.cm_list, entry) {
         uint32_t seen_npieces = 0;
         for (uint32_t i = 0; i < tp->meta.npieces; i++)
             if (tp->piece_count[i] > 0)
diff --git a/btpd/net.c b/btpd/net.c
index 458c591..6a444a4 100644
--- a/btpd/net.c
+++ b/btpd/net.c
@@ -33,7 +33,7 @@ net_read_cb(int sd, short type, void *arg)
 	btpd.ibw_left -= p->reader->read(p, btpd.ibw_left);
     } else {
 	p->flags |= PF_ON_READQ;
-	TAILQ_INSERT_TAIL(&btpd.readq, p, rq_entry);
+	BTPDQ_INSERT_TAIL(&btpd.readq, p, rq_entry);
     }
 }
 
@@ -47,7 +47,7 @@ net_write_cb(int sd, short type, void *arg)
 	btpd.obw_left -= net_write(p, btpd.obw_left);
     } else {
 	p->flags |= PF_ON_WRITEQ;
-	TAILQ_INSERT_TAIL(&btpd.writeq, p, wq_entry);
+	BTPDQ_INSERT_TAIL(&btpd.writeq, p, wq_entry);
     }
 }
 
@@ -92,21 +92,21 @@ net_unsend_piece(struct peer *p, struct piece_req *req)
 {
     struct iob_link *piece;
 
-    TAILQ_REMOVE(&p->p_reqs, req, entry);
+    BTPDQ_REMOVE(&p->p_reqs, req, entry);
 
-    piece = TAILQ_NEXT(req->head, entry);
-    TAILQ_REMOVE(&p->outq, piece, entry);
+    piece = BTPDQ_NEXT(req->head, entry);
+    BTPDQ_REMOVE(&p->outq, piece, entry);
     piece->kill_buf(&piece->iob);
     free(piece);
 
-    TAILQ_REMOVE(&p->outq, req->head, entry);
+    BTPDQ_REMOVE(&p->outq, req->head, entry);
     req->head->kill_buf(&req->head->iob);
     free(req->head);
     free(req);
 
-    if (TAILQ_EMPTY(&p->outq)) {
+    if (BTPDQ_EMPTY(&p->outq)) {
 	if (p->flags & PF_ON_WRITEQ) {
-	    TAILQ_REMOVE(&btpd.writeq, p, wq_entry);
+	    BTPDQ_REMOVE(&btpd.writeq, p, wq_entry);
 	    p->flags &= ~PF_ON_WRITEQ;
 	} else
 	    event_del(&p->out_ev);
@@ -135,7 +135,7 @@ net_write(struct peer *p, unsigned long wmax)
     limited = wmax > 0;
 
     niov = 0;
-    assert((iol = TAILQ_FIRST(&p->outq)) != NULL);
+    assert((iol = BTPDQ_FIRST(&p->outq)) != NULL);
     while (niov < NIOV && iol != NULL
 	   && (!limited || (limited && wmax > 0))) {
 	iov[niov].iov_base = iol->iob.buf + iol->iob.buf_off;
@@ -146,7 +146,7 @@ net_write(struct peer *p, unsigned long wmax)
 	    wmax -= iov[niov].iov_len;
 	}
 	niov++;
-	iol = TAILQ_NEXT(iol, entry);
+	iol = BTPDQ_NEXT(iol, entry);
     }
 
 again:
@@ -167,29 +167,29 @@ again:
     bcount = nwritten;
     p->rate_from_me[btpd.seconds % RATEHISTORY] += nwritten;
 
-    req = TAILQ_FIRST(&p->p_reqs);
-    iol = TAILQ_FIRST(&p->outq);
+    req = BTPDQ_FIRST(&p->p_reqs);
+    iol = BTPDQ_FIRST(&p->outq);
     while (bcount > 0) {
 	if (req != NULL && req->head == iol) {
-	    struct iob_link *piece = TAILQ_NEXT(req->head, entry);
-	    struct piece_req *next = TAILQ_NEXT(req, entry);
-	    TAILQ_REMOVE(&p->p_reqs, req, entry);
+	    struct iob_link *piece = BTPDQ_NEXT(req->head, entry);
+	    struct piece_req *next = BTPDQ_NEXT(req, entry);
+	    BTPDQ_REMOVE(&p->p_reqs, req, entry);
 	    free(req);
 	    req = next;
 	    p->tp->uploaded += piece->iob.buf_len;
 	}
 	if (bcount >= iol->iob.buf_len - iol->iob.buf_off) {
 	    bcount -= iol->iob.buf_len - iol->iob.buf_off;
-	    TAILQ_REMOVE(&p->outq, iol, entry);
+	    BTPDQ_REMOVE(&p->outq, iol, entry);
 	    iol->kill_buf(&iol->iob);
 	    free(iol);
-	    iol = TAILQ_FIRST(&p->outq);
+	    iol = BTPDQ_FIRST(&p->outq);
 	} else {
 	    iol->iob.buf_off += bcount;
 	    bcount = 0;
 	}
     }
-    if (!TAILQ_EMPTY(&p->outq))
+    if (!BTPDQ_EMPTY(&p->outq))
 	event_add(&p->out_ev, NULL);
     else if (p->flags & PF_WRITE_CLOSE) {
 	btpd_log(BTPD_L_CONN, "Closed because of write flag.\n");
@@ -202,9 +202,9 @@ again:
 void
 net_send(struct peer *p, struct iob_link *iol)
 {
-    if (TAILQ_EMPTY(&p->outq))
+    if (BTPDQ_EMPTY(&p->outq))
 	event_add(&p->out_ev, NULL);
-    TAILQ_INSERT_TAIL(&p->outq, iol, entry);
+    BTPDQ_INSERT_TAIL(&p->outq, iol, entry);
 }
 
 void
@@ -243,7 +243,7 @@ net_send_piece(struct peer *p, uint32_t index, uint32_t begin,
     req->begin = begin;
     req->length = blen;
     req->head = head;
-    TAILQ_INSERT_TAIL(&p->p_reqs, req, entry);
+    BTPDQ_INSERT_TAIL(&p->p_reqs, req, entry);
 }
 
 void
@@ -368,7 +368,7 @@ net_read(struct peer *p, char *buf, size_t len)
 	}
     } else if (nread == 0) {
 	btpd_log(BTPD_L_CONN, "conn closed by other side.\n");
-	if (!TAILQ_EMPTY(&p->outq))
+	if (!BTPDQ_EMPTY(&p->outq))
 	    p->flags |= PF_WRITE_CLOSE;
 	else
 	    peer_kill(p);
@@ -437,7 +437,7 @@ read_piece(struct peer *p, unsigned long rmax)
     p->rate_to_me[btpd.seconds % RATEHISTORY] += nread;
     p->tp->downloaded += nread;
     if (rd->iob.buf_off == rd->iob.buf_len) {
-	struct piece_req *req = TAILQ_FIRST(&p->my_reqs);
+	struct piece_req *req = BTPDQ_FIRST(&p->my_reqs);
 	if (req != NULL &&
 	    req->index == rd->index &&
 	    req->begin == rd->begin &&
@@ -619,7 +619,7 @@ net_generic_read(struct peer *p, unsigned long rmax)
 		uint32_t begin = net_read32(buf + off + 9);
 		uint32_t length = msg_len - 9;
 #if 0
-		struct piece_req *req = TAILQ_FIRST(&p->my_reqs);
+		struct piece_req *req = BTPDQ_FIRST(&p->my_reqs);
 		if (req == NULL)
 		    goto bad_data;
 		if (!(index == req->index &&
@@ -631,7 +631,7 @@ net_generic_read(struct peer *p, unsigned long rmax)
 		    off_t cbegin = index * p->tp->meta.piece_length + begin;
 		    p->tp->downloaded += length;
 		    p->rate_to_me[btpd.seconds % RATEHISTORY] += length;
-		    struct piece_req *req = TAILQ_FIRST(&p->my_reqs);
+		    struct piece_req *req = BTPDQ_FIRST(&p->my_reqs);
 		    if (req != NULL &&
 			req->index == index &&
 			req->begin == begin &&
@@ -677,7 +677,7 @@ net_generic_read(struct peer *p, unsigned long rmax)
 		btpd_log(BTPD_L_MSG, "cancel: %u, %u, %u\n",
 		    index, begin, length);
 
-		req = TAILQ_FIRST(&p->p_reqs);
+		req = BTPDQ_FIRST(&p->p_reqs);
 		while (req != NULL) {
 		    if (req->index == index &&
 			req->begin == begin &&
@@ -686,7 +686,7 @@ net_generic_read(struct peer *p, unsigned long rmax)
 			net_unsend_piece(p, req);
 			break;
 		    }
-		    req = TAILQ_NEXT(req, entry);
+		    req = BTPDQ_NEXT(req, entry);
 		}
 	    } else
 		got_part = 1;
@@ -771,12 +771,12 @@ net_shake_read(struct peer *p, unsigned long rmax)
 	else if (hs->incoming) {
 	    struct torrent *tp = torrent_get_by_hash(in->buf + 28);
 #if 0
-	    tp = TAILQ_FIRST(&btpd.cm_list);
+	    tp = BTPDQ_FIRST(&btpd.cm_list);
 	    while (tp != NULL) {
 		if (bcmp(in->buf + 28, tp->meta.info_hash, 20) == 0)
 		    break;
 		else
-		    tp = TAILQ_NEXT(tp, entry);
+		    tp = BTPDQ_NEXT(tp, entry);
 	    }
 #endif
 	    if (tp != NULL) {
@@ -920,8 +920,8 @@ net_by_second(void)
     struct torrent *tp;
     int ri = btpd.seconds % RATEHISTORY;
 
-    TAILQ_FOREACH(tp, &btpd.cm_list, entry) {
-	TAILQ_FOREACH(p, &tp->peers, cm_entry) {
+    BTPDQ_FOREACH(tp, &btpd.cm_list, entry) {
+	BTPDQ_FOREACH(p, &tp->peers, cm_entry) {
 	    p->rate_to_me[ri] = 0;
 	    p->rate_from_me[ri] = 0;
 	}
@@ -931,28 +931,28 @@ net_by_second(void)
     btpd.ibw_left = btpd.ibwlim;
 
     if (btpd.ibwlim > 0) {
-	while ((p = TAILQ_FIRST(&btpd.readq)) != NULL && btpd.ibw_left > 0) {
-	    TAILQ_REMOVE(&btpd.readq, p, rq_entry);
+	while ((p = BTPDQ_FIRST(&btpd.readq)) != NULL && btpd.ibw_left > 0) {
+	    BTPDQ_REMOVE(&btpd.readq, p, rq_entry);
 	    p->flags &= ~PF_ON_READQ;
 	    btpd.ibw_left -= p->reader->read(p, btpd.ibw_left);
 	}
     } else {
-	while ((p = TAILQ_FIRST(&btpd.readq)) != NULL) {
-	    TAILQ_REMOVE(&btpd.readq, p, rq_entry);
+	while ((p = BTPDQ_FIRST(&btpd.readq)) != NULL) {
+	    BTPDQ_REMOVE(&btpd.readq, p, rq_entry);
 	    p->flags &= ~PF_ON_READQ;
 	    p->reader->read(p, 0);
 	}
     }
 
     if (btpd.obwlim) {
-	while ((p = TAILQ_FIRST(&btpd.writeq)) != NULL && btpd.obw_left > 0) {
-	    TAILQ_REMOVE(&btpd.writeq, p, wq_entry);
+	while ((p = BTPDQ_FIRST(&btpd.writeq)) != NULL && btpd.obw_left > 0) {
+	    BTPDQ_REMOVE(&btpd.writeq, p, wq_entry);
 	    p->flags &= ~PF_ON_WRITEQ;
 	    btpd.obw_left -=  net_write(p, btpd.obw_left);
 	}
     } else {
-	while ((p = TAILQ_FIRST(&btpd.writeq)) != NULL) {
-	    TAILQ_REMOVE(&btpd.writeq, p, wq_entry);
+	while ((p = BTPDQ_FIRST(&btpd.writeq)) != NULL) {
+	    BTPDQ_REMOVE(&btpd.writeq, p, wq_entry);
 	    p->flags &= ~PF_ON_WRITEQ;
 	    net_write(p, 0);
 	}
diff --git a/btpd/net.h b/btpd/net.h
index e9b6b3b..bd61360 100644
--- a/btpd/net.h
+++ b/btpd/net.h
@@ -12,12 +12,12 @@
 #define MSG_CANCEL	8
 
 struct iob_link {
-    TAILQ_ENTRY(iob_link) entry;
+    BTPDQ_ENTRY(iob_link) entry;
     void (*kill_buf)(struct io_buffer *);
     struct io_buffer iob;
 };
 
-TAILQ_HEAD(io_tq, iob_link);
+BTPDQ_HEAD(io_tq, iob_link);
 
 struct peer;
 
@@ -67,10 +67,10 @@ struct generic_reader {
 struct piece_req {
     uint32_t index, begin, length;
     struct iob_link *head; /* Pointer to outgoing piece. */
-    TAILQ_ENTRY(piece_req) entry;
+    BTPDQ_ENTRY(piece_req) entry;
 };
 
-TAILQ_HEAD(piece_req_tq, piece_req);
+BTPDQ_HEAD(piece_req_tq, piece_req);
 
 void net_connection_cb(int sd, short type, void *arg);
 void net_by_second(void);
diff --git a/btpd/peer.c b/btpd/peer.c
index 18bfda5..9c7720e 100644
--- a/btpd/peer.c
+++ b/btpd/peer.c
@@ -24,30 +24,30 @@ peer_kill(struct peer *p)
     if (p->flags & PF_ATTACHED)
 	cm_on_lost_peer(p);
     if (p->flags & PF_ON_READQ)
-	TAILQ_REMOVE(&btpd.readq, p, rq_entry);
+	BTPDQ_REMOVE(&btpd.readq, p, rq_entry);
     if (p->flags & PF_ON_WRITEQ)
-	TAILQ_REMOVE(&btpd.writeq, p, wq_entry);
+	BTPDQ_REMOVE(&btpd.writeq, p, wq_entry);
 
     close(p->sd);
     event_del(&p->in_ev);
     event_del(&p->out_ev);
 
-    iol = TAILQ_FIRST(&p->outq);
+    iol = BTPDQ_FIRST(&p->outq);
     while (iol != NULL) {
-	struct iob_link *next = TAILQ_NEXT(iol, entry);
+	struct iob_link *next = BTPDQ_NEXT(iol, entry);
 	iol->kill_buf(&iol->iob);
 	free(iol);
 	iol = next;
     }
-    req = TAILQ_FIRST(&p->p_reqs);
+    req = BTPDQ_FIRST(&p->p_reqs);
     while (req != NULL) {
-	struct piece_req *next = TAILQ_NEXT(req, entry);
+	struct piece_req *next = BTPDQ_NEXT(req, entry);
 	free(req);
 	req = next;
     }
-    req = TAILQ_FIRST(&p->my_reqs);
+    req = BTPDQ_FIRST(&p->my_reqs);
     while (req != NULL) {
-	struct piece_req *next = TAILQ_NEXT(req, entry);
+	struct piece_req *next = BTPDQ_NEXT(req, entry);
 	free(req);
 	req = next;
     }
@@ -66,7 +66,7 @@ peer_request(struct peer *p, uint32_t index, uint32_t begin, uint32_t len)
     req->index = index;
     req->begin = begin;
     req->length = len;
-    TAILQ_INSERT_TAIL(&p->my_reqs, req, entry);
+    BTPDQ_INSERT_TAIL(&p->my_reqs, req, entry);
     net_send_request(p, req);
 }
 
@@ -75,15 +75,15 @@ peer_cancel(struct peer *p, uint32_t index, uint32_t begin, uint32_t len)
 {
     struct piece_req *req;
 again:
-    req = TAILQ_FIRST(&p->my_reqs);
+    req = BTPDQ_FIRST(&p->my_reqs);
     while (req != NULL &&
 	   !(index == req->index &&
 	     begin == req->begin &&
 	     len == req->length))
-	req = TAILQ_NEXT(req, entry);
+	req = BTPDQ_NEXT(req, entry);
     if (req != NULL) {
 	net_send_cancel(p, req);
-	TAILQ_REMOVE(&p->my_reqs, req, entry);
+	BTPDQ_REMOVE(&p->my_reqs, req, entry);
 	free(req);
 	goto again;
     }
@@ -107,7 +107,7 @@ peer_choke(struct peer *p)
 {
     struct piece_req *req;
 
-    while ((req = TAILQ_FIRST(&p->p_reqs)) != NULL)
+    while ((req = BTPDQ_FIRST(&p->p_reqs)) != NULL)
 	net_unsend_piece(p, req);
 
     p->flags |= PF_I_CHOKE;
@@ -141,9 +141,9 @@ peer_create_common(int sd)
 
     p->sd = sd;
     p->flags = PF_I_CHOKE | PF_P_CHOKE;
-    TAILQ_INIT(&p->p_reqs);
-    TAILQ_INIT(&p->my_reqs);
-    TAILQ_INIT(&p->outq);
+    BTPDQ_INIT(&p->p_reqs);
+    BTPDQ_INIT(&p->my_reqs);
+    BTPDQ_INIT(&p->outq);
 
     event_set(&p->out_ev, p->sd, EV_WRITE, net_write_cb, p);
     event_set(&p->in_ev, p->sd, EV_READ, net_read_cb, p);
diff --git a/btpd/peer.h b/btpd/peer.h
index dd89d1b..3bfbc04 100644
--- a/btpd/peer.h
+++ b/btpd/peer.h
@@ -35,13 +35,13 @@ struct peer {
     unsigned long rate_to_me[RATEHISTORY];
     unsigned long rate_from_me[RATEHISTORY];
 
-    TAILQ_ENTRY(peer) cm_entry;
+    BTPDQ_ENTRY(peer) cm_entry;
 
-    TAILQ_ENTRY(peer) rq_entry;
-    TAILQ_ENTRY(peer) wq_entry;
+    BTPDQ_ENTRY(peer) rq_entry;
+    BTPDQ_ENTRY(peer) wq_entry;
 };
 
-TAILQ_HEAD(peer_tq, peer);
+BTPDQ_HEAD(peer_tq, peer);
 
 void peer_unchoke(struct peer *p);
 void peer_choke(struct peer *p);
diff --git a/btpd/policy.c b/btpd/policy.c
index 1b53a37..8056149 100644
--- a/btpd/policy.c
+++ b/btpd/policy.c
@@ -43,7 +43,7 @@ static void
 cm_assign_requests_eg(struct peer *peer)
 {
     struct piece *piece;
-    TAILQ_FOREACH(piece, &peer->tp->getlst, entry) {
+    BTPDQ_FOREACH(piece, &peer->tp->getlst, entry) {
 	if (has_bit(peer->piece_field, piece->index)) {
 	    peer_want(peer, piece->index);
 	    if ((peer->flags & PF_P_CHOKE) == 0)
@@ -55,13 +55,13 @@ cm_assign_requests_eg(struct peer *peer)
 static void
 cm_unassign_requests_eg(struct peer *peer)
 {
-    struct piece_req *req = TAILQ_FIRST(&peer->my_reqs);
+    struct piece_req *req = BTPDQ_FIRST(&peer->my_reqs);
     while (req != NULL) {
-	struct piece_req *next = TAILQ_NEXT(req, entry);
+	struct piece_req *next = BTPDQ_NEXT(req, entry);
 	free(req);
 	req = next;
     }
-    TAILQ_INIT(&peer->my_reqs);
+    BTPDQ_INIT(&peer->my_reqs);
 }
 
 static void
@@ -70,7 +70,7 @@ cm_enter_endgame(struct torrent *tp)
     struct peer *peer;
     btpd_log(BTPD_L_POL, "Entering end game\n");
     tp->endgame = 1;
-    TAILQ_FOREACH(peer, &tp->peers, cm_entry)
+    BTPDQ_FOREACH(peer, &tp->peers, cm_entry)
 	cm_assign_requests_eg(peer);
 }
 
@@ -85,13 +85,13 @@ cm_should_schedule(struct torrent *tp)
 {
     if (!tp->endgame) {
 	int should = 1;
-	struct piece *p = TAILQ_FIRST(&tp->getlst);
+	struct piece *p = BTPDQ_FIRST(&tp->getlst);
 	while (p != NULL) {
 	    if (!piece_full(p)) {
 		should = 0;
 		break;
 	    }
-	    p = TAILQ_NEXT(p, entry);
+	    p = BTPDQ_NEXT(p, entry);
 	}
 	return should;
     } else
@@ -105,7 +105,7 @@ cm_on_peerless_piece(struct torrent *tp, struct piece *piece)
 	assert(tp->piece_count[piece->index] == 0);
 	btpd_log(BTPD_L_POL, "peerless piece %u\n", piece->index);
 	msync(tp->imem, tp->isiz, MS_ASYNC);
-	TAILQ_REMOVE(&tp->getlst, piece, entry);
+	BTPDQ_REMOVE(&tp->getlst, piece, entry);
 	free(piece);
 	if (cm_should_schedule(tp))
 	    cm_schedule_piece(tp);
@@ -150,7 +150,7 @@ choke_alg(struct torrent *tp)
 
     psort = (struct peer **)btpd_malloc(tp->npeers * sizeof(p));
     i = 0;
-    TAILQ_FOREACH(p, &tp->peers, cm_entry)
+    BTPDQ_FOREACH(p, &tp->peers, cm_entry)
 	psort[i++] = p;
     
     if (tp->have_npieces == tp->meta.npieces)
@@ -190,13 +190,13 @@ next_optimistic(struct torrent *tp, struct peer *np)
     if (np != NULL)
 	tp->optimistic = np;
     else if (tp->optimistic == NULL)
-	tp->optimistic = TAILQ_FIRST(&tp->peers);
+	tp->optimistic = BTPDQ_FIRST(&tp->peers);
     else {
-	np = TAILQ_NEXT(tp->optimistic, cm_entry);
+	np = BTPDQ_NEXT(tp->optimistic, cm_entry);
 	if (np != NULL)
 	    tp->optimistic = np;
 	else
-	    tp->optimistic = TAILQ_FIRST(&tp->peers);
+	    tp->optimistic = BTPDQ_FIRST(&tp->peers);
     }
     assert(tp->optimistic != NULL);
     choke_alg(tp);
@@ -257,9 +257,9 @@ cm_on_piece_ann(struct peer *peer, uint32_t piece)
     if (has_bit(tp->piece_field, piece))
 	return;
 
-    p = TAILQ_FIRST(&tp->getlst);
+    p = BTPDQ_FIRST(&tp->getlst);
     while (p != NULL && p->index != piece)
-	p = TAILQ_NEXT(p, entry);
+	p = BTPDQ_NEXT(p, entry);
 
     if (p != NULL && tp->endgame) {
 	peer_want(peer, p->index);
@@ -267,7 +267,7 @@ cm_on_piece_ann(struct peer *peer, uint32_t piece)
 	    cm_on_download(peer);
     } else if (p != NULL && !piece_full(p)) {
 	peer_want(peer, p->index);
-	if ((peer->flags & PF_P_CHOKE) == 0 && TAILQ_EMPTY(&peer->my_reqs))
+	if ((peer->flags & PF_P_CHOKE) == 0 && BTPDQ_EMPTY(&peer->my_reqs))
 	    cm_on_download(peer);
     } else if (p == NULL && cm_should_schedule(tp))
 	cm_schedule_piece(tp);
@@ -282,18 +282,18 @@ cm_on_lost_peer(struct peer *peer)
     tp->npeers--;
     peer->flags &= ~PF_ATTACHED;
     if (tp->npeers == 0) {
-	TAILQ_REMOVE(&tp->peers, peer, cm_entry);
+	BTPDQ_REMOVE(&tp->peers, peer, cm_entry);
 	tp->optimistic = NULL;
 	tp->choke_time = tp->opt_time = 0;
     } else if (tp->optimistic == peer) {
-	struct peer *next = TAILQ_NEXT(peer, cm_entry);
-	TAILQ_REMOVE(&tp->peers, peer, cm_entry);
+	struct peer *next = BTPDQ_NEXT(peer, cm_entry);
+	BTPDQ_REMOVE(&tp->peers, peer, cm_entry);
 	next_optimistic(peer->tp, next);
     } else if ((peer->flags & (PF_P_WANT|PF_I_CHOKE)) == PF_P_WANT) {
-	TAILQ_REMOVE(&tp->peers, peer, cm_entry);
+	BTPDQ_REMOVE(&tp->peers, peer, cm_entry);
 	cm_on_unupload(peer);
     } else {
-	TAILQ_REMOVE(&tp->peers, peer, cm_entry);
+	BTPDQ_REMOVE(&tp->peers, peer, cm_entry);
     }
 
     for (size_t i = 0; i < peer->tp->meta.npieces; i++)
@@ -303,8 +303,8 @@ cm_on_lost_peer(struct peer *peer)
     if ((peer->flags & (PF_I_WANT|PF_P_CHOKE)) == PF_I_WANT)
 	cm_on_undownload(peer);
 
-    for (piece = TAILQ_FIRST(&tp->getlst); piece;
-	 piece = TAILQ_NEXT(piece, entry)) {
+    for (piece = BTPDQ_FIRST(&tp->getlst); piece;
+	 piece = BTPDQ_NEXT(piece, entry)) {
 	if (has_bit(peer->piece_field, piece->index) &&
 	    tp->piece_count[piece->index] == 0)
 	    cm_on_peerless_piece(tp, piece);
@@ -320,13 +320,13 @@ cm_on_new_peer(struct peer *peer)
     peer->flags |= PF_ATTACHED;
 
     if (tp->npeers == 1) {
-	TAILQ_INSERT_HEAD(&tp->peers, peer, cm_entry);
+	BTPDQ_INSERT_HEAD(&tp->peers, peer, cm_entry);
 	next_optimistic(peer->tp, peer);
     } else {
 	if (random() > RAND_MAX / 3)
-	    TAILQ_INSERT_AFTER(&tp->peers, tp->optimistic, peer, cm_entry);
+	    BTPDQ_INSERT_AFTER(&tp->peers, tp->optimistic, peer, cm_entry);
 	else
-	    TAILQ_INSERT_TAIL(&tp->peers, peer, cm_entry);
+	    BTPDQ_INSERT_TAIL(&tp->peers, peer, cm_entry);
     }
 }
 
@@ -336,7 +336,7 @@ missing_piece(struct torrent *tp, uint32_t index)
     struct piece *p;
     if (has_bit(tp->piece_field, index))
 	return 0;
-    TAILQ_FOREACH(p, &tp->getlst, entry)
+    BTPDQ_FOREACH(p, &tp->getlst, entry)
 	if (p->index == index)
 	    return 0;
     return 1;
@@ -380,17 +380,17 @@ activate_piece_peers(struct torrent *tp, struct piece *piece)
 {
     struct peer *peer;
     assert(!piece_full(piece) && tp->endgame == 0);
-    TAILQ_FOREACH(peer, &tp->peers, cm_entry)
+    BTPDQ_FOREACH(peer, &tp->peers, cm_entry)
 	if (has_bit(peer->piece_field, piece->index))
 	    peer_want(peer, piece->index);
-    peer = TAILQ_FIRST(&tp->peers);
+    peer = BTPDQ_FIRST(&tp->peers);
     while (peer != NULL && !piece_full(piece)) {
 	if ((peer->flags & (PF_P_CHOKE|PF_I_WANT)) == PF_I_WANT &&
-	    TAILQ_EMPTY(&peer->my_reqs)) {
+	    BTPDQ_EMPTY(&peer->my_reqs)) {
 	    //
 	    cm_on_download(peer);
 	}
-	peer = TAILQ_NEXT(peer, cm_entry);
+	peer = BTPDQ_NEXT(peer, cm_entry);
     }
 }
 
@@ -444,7 +444,7 @@ cm_schedule_piece(struct torrent *tp)
 
     btpd_log(BTPD_L_POL, "scheduled piece: %u.\n", min_i);
     piece = alloc_piece(tp, min_i);
-    TAILQ_INSERT_HEAD(&tp->getlst, piece, entry);
+    BTPDQ_INSERT_HEAD(&tp->getlst, piece, entry);
     if (piece->ngot == piece->nblocks) {
 	cm_on_piece(tp, piece);
 	if (cm_should_schedule(tp))
@@ -466,7 +466,7 @@ cm_on_piece_full(struct torrent *tp, struct piece *piece)
 
     if (cm_should_schedule(tp))
 	cm_schedule_piece(tp);
-    TAILQ_FOREACH(p, &tp->peers, cm_entry) {
+    BTPDQ_FOREACH(p, &tp->peers, cm_entry) {
 	if (has_bit(p->piece_field, piece->index))
 	    peer_unwant(p, piece->index);
     }
@@ -479,11 +479,11 @@ cm_assign_request(struct peer *peer)
     unsigned i;
     uint32_t start, len;
 
-    piece = TAILQ_FIRST(&peer->tp->getlst);
+    piece = BTPDQ_FIRST(&peer->tp->getlst);
     while (piece != NULL) {
 	if (!piece_full(piece) && has_bit(peer->piece_field, piece->index))
 	    break;
-	piece = TAILQ_NEXT(piece, entry);
+	piece = BTPDQ_NEXT(piece, entry);
     }
 
     if (piece == NULL)
@@ -531,20 +531,20 @@ void
 cm_unassign_requests(struct peer *peer)
 {
     struct torrent *tp = peer->tp;
-    struct piece *piece = TAILQ_FIRST(&tp->getlst);
+    struct piece *piece = BTPDQ_FIRST(&tp->getlst);
 
     while (piece != NULL) {
 	int was_full = piece_full(piece);
 
-	struct piece_req *req = TAILQ_FIRST(&peer->my_reqs);
+	struct piece_req *req = BTPDQ_FIRST(&peer->my_reqs);
 	while (req != NULL) {
-	    struct piece_req *next = TAILQ_NEXT(req, entry);
+	    struct piece_req *next = BTPDQ_NEXT(req, entry);
 
 	    if (piece->index == req->index) {
 		assert(has_bit(piece->down_field, req->begin / BLOCKLEN));
 		clear_bit(piece->down_field, req->begin / BLOCKLEN);
 		piece->nbusy--;
-		TAILQ_REMOVE(&peer->my_reqs, req, entry);
+		BTPDQ_REMOVE(&peer->my_reqs, req, entry);
 		free(req);
 	    }
 	    
@@ -554,10 +554,10 @@ cm_unassign_requests(struct peer *peer)
 	if (was_full && !piece_full(piece))
 	    cm_on_piece_unfull(tp, piece);
 
-	piece = TAILQ_NEXT(piece, entry);
+	piece = BTPDQ_NEXT(piece, entry);
     }
 
-    assert(TAILQ_EMPTY(&peer->my_reqs));
+    assert(BTPDQ_EMPTY(&peer->my_reqs));
 }
 
 static int
@@ -631,12 +631,12 @@ cm_on_piece(struct torrent *tp, struct piece *piece)
 	    tracker_req(tp, TR_COMPLETED);
 	}
 	msync(tp->imem, tp->isiz, MS_ASYNC);
-	TAILQ_FOREACH(p, &tp->peers, cm_entry)
+	BTPDQ_FOREACH(p, &tp->peers, cm_entry)
 	    peer_have(p, piece->index);
 	if (tp->endgame)
-	    TAILQ_FOREACH(p, &tp->peers, cm_entry)
+	    BTPDQ_FOREACH(p, &tp->peers, cm_entry)
 		peer_unwant(p, piece->index);
-	TAILQ_REMOVE(&tp->getlst, piece, entry);
+	BTPDQ_REMOVE(&tp->getlst, piece, entry);
 	free(piece);
     } else if (tp->endgame) {
 	struct peer *p;
@@ -645,7 +645,7 @@ cm_on_piece(struct torrent *tp, struct piece *piece)
 	for (unsigned i = 0; i < piece->nblocks; i++)
 	    clear_bit(piece->have_field, i);
 	piece->ngot = 0;
-	TAILQ_FOREACH(p, &tp->peers, cm_entry)
+	BTPDQ_FOREACH(p, &tp->peers, cm_entry)
 	    if (has_bit(p->piece_field, piece->index) &&
 		(p->flags & PF_P_CHOKE) == 0) {
 		//
@@ -659,7 +659,7 @@ cm_on_piece(struct torrent *tp, struct piece *piece)
 	    assert(!has_bit(piece->down_field, i));
 	}
 	msync(tp->imem, tp->isiz, MS_ASYNC);
-	TAILQ_REMOVE(&tp->getlst, piece, entry);
+	BTPDQ_REMOVE(&tp->getlst, piece, entry);
 	free(piece);
 	if (cm_should_schedule(tp))
 	    cm_schedule_piece(tp);
@@ -670,11 +670,11 @@ void
 cm_on_block(struct peer *peer)
 {
     struct torrent *tp = peer->tp;
-    struct piece_req *req = TAILQ_FIRST(&peer->my_reqs);
-    struct piece *piece = TAILQ_FIRST(&tp->getlst);
+    struct piece_req *req = BTPDQ_FIRST(&peer->my_reqs);
+    struct piece *piece = BTPDQ_FIRST(&tp->getlst);
     unsigned block = req->begin / BLOCKLEN;
     while (piece != NULL && piece->index != req->index)
-        piece = TAILQ_NEXT(piece, entry);
+        piece = BTPDQ_NEXT(piece, entry);
     set_bit(piece->have_field, block);
     clear_bit(piece->down_field, block);
     piece->ngot++;
@@ -685,10 +685,10 @@ cm_on_block(struct peer *peer)
 	uint32_t length = req->length;
 	struct peer *p;
 
-	TAILQ_REMOVE(&peer->my_reqs, req, entry);
+	BTPDQ_REMOVE(&peer->my_reqs, req, entry);
 	free(req);
 
-	TAILQ_FOREACH(p, &tp->peers, cm_entry) {
+	BTPDQ_FOREACH(p, &tp->peers, cm_entry) {
 	    if (has_bit(p->piece_field, index) &&
 		(peer->flags & PF_P_CHOKE) == 0)
 		peer_cancel(p, index, begin, length);
@@ -696,7 +696,7 @@ cm_on_block(struct peer *peer)
 	if (piece->ngot == piece->nblocks)
 	    cm_on_piece(tp, piece);
     } else {
-	TAILQ_REMOVE(&peer->my_reqs, req, entry);
+	BTPDQ_REMOVE(&peer->my_reqs, req, entry);
 	free(req);
 	if (piece->ngot == piece->nblocks)
 	    cm_on_piece(tp, piece);
diff --git a/btpd/queue.h b/btpd/queue.h
index e05a35a..9027eb1 100644
--- a/btpd/queue.h
+++ b/btpd/queue.h
@@ -9,73 +9,73 @@
 /*
  * Tail queue declarations.
  */
-#define	TAILQ_HEAD(name, type)						\
+#define	BTPDQ_HEAD(name, type)						\
 struct name {								\
 	struct type *tqh_first;	/* first element */			\
 	struct type **tqh_last;	/* addr of last next element */		\
 }
 
-#define	TAILQ_HEAD_INITIALIZER(head)					\
+#define	BTPDQ_HEAD_INITIALIZER(head)					\
 	{ NULL, &(head).tqh_first }
 
-#define	TAILQ_ENTRY(type)						\
+#define	BTPDQ_ENTRY(type)						\
 struct {								\
 	struct type *tqe_next;	/* next element */			\
 	struct type **tqe_prev;	/* address of previous next element */	\
 }
 
-#define	TAILQ_EMPTY(head)	((head)->tqh_first == NULL)
+#define	BTPDQ_EMPTY(head)	((head)->tqh_first == NULL)
 
-#define	TAILQ_FIRST(head)	((head)->tqh_first)
+#define	BTPDQ_FIRST(head)	((head)->tqh_first)
 
-#define	TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
+#define	BTPDQ_NEXT(elm, field) ((elm)->field.tqe_next)
 
-#define	TAILQ_FOREACH(var, head, field)					\
-	for ((var) = TAILQ_FIRST((head));				\
+#define	BTPDQ_FOREACH(var, head, field)					\
+	for ((var) = BTPDQ_FIRST((head));				\
 	    (var);							\
-	    (var) = TAILQ_NEXT((var), field))
+	    (var) = BTPDQ_NEXT((var), field))
 
-#define	TAILQ_INIT(head) do {						\
-	TAILQ_FIRST((head)) = NULL;					\
-	(head)->tqh_last = &TAILQ_FIRST((head));			\
+#define	BTPDQ_INIT(head) do {						\
+	BTPDQ_FIRST((head)) = NULL;					\
+	(head)->tqh_last = &BTPDQ_FIRST((head));			\
 } while (0)
 
-#define	TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
-	if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
-		TAILQ_NEXT((elm), field)->field.tqe_prev = 		\
-		    &TAILQ_NEXT((elm), field);				\
+#define	BTPDQ_INSERT_AFTER(head, listelm, elm, field) do {		\
+	if ((BTPDQ_NEXT((elm), field) = BTPDQ_NEXT((listelm), field)) != NULL)\
+		BTPDQ_NEXT((elm), field)->field.tqe_prev = 		\
+		    &BTPDQ_NEXT((elm), field);				\
 	else {								\
-		(head)->tqh_last = &TAILQ_NEXT((elm), field);		\
+		(head)->tqh_last = &BTPDQ_NEXT((elm), field);		\
 	}								\
-	TAILQ_NEXT((listelm), field) = (elm);				\
-	(elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field);		\
+	BTPDQ_NEXT((listelm), field) = (elm);				\
+	(elm)->field.tqe_prev = &BTPDQ_NEXT((listelm), field);		\
 } while (0)
 
-#define	TAILQ_INSERT_HEAD(head, elm, field) do {			\
-	if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL)	\
-		TAILQ_FIRST((head))->field.tqe_prev =			\
-		    &TAILQ_NEXT((elm), field);				\
+#define	BTPDQ_INSERT_HEAD(head, elm, field) do {			\
+	if ((BTPDQ_NEXT((elm), field) = BTPDQ_FIRST((head))) != NULL)	\
+		BTPDQ_FIRST((head))->field.tqe_prev =			\
+		    &BTPDQ_NEXT((elm), field);				\
 	else								\
-		(head)->tqh_last = &TAILQ_NEXT((elm), field);		\
-	TAILQ_FIRST((head)) = (elm);					\
-	(elm)->field.tqe_prev = &TAILQ_FIRST((head));			\
+		(head)->tqh_last = &BTPDQ_NEXT((elm), field);		\
+	BTPDQ_FIRST((head)) = (elm);					\
+	(elm)->field.tqe_prev = &BTPDQ_FIRST((head));			\
 } while (0)
 
-#define	TAILQ_INSERT_TAIL(head, elm, field) do {			\
-	TAILQ_NEXT((elm), field) = NULL;				\
+#define	BTPDQ_INSERT_TAIL(head, elm, field) do {			\
+	BTPDQ_NEXT((elm), field) = NULL;				\
 	(elm)->field.tqe_prev = (head)->tqh_last;			\
 	*(head)->tqh_last = (elm);					\
-	(head)->tqh_last = &TAILQ_NEXT((elm), field);			\
+	(head)->tqh_last = &BTPDQ_NEXT((elm), field);			\
 } while (0)
 
-#define	TAILQ_REMOVE(head, elm, field) do {				\
-	if ((TAILQ_NEXT((elm), field)) != NULL)				\
-		TAILQ_NEXT((elm), field)->field.tqe_prev = 		\
+#define	BTPDQ_REMOVE(head, elm, field) do {				\
+	if ((BTPDQ_NEXT((elm), field)) != NULL)				\
+		BTPDQ_NEXT((elm), field)->field.tqe_prev = 		\
 		    (elm)->field.tqe_prev;				\
 	else {								\
 		(head)->tqh_last = (elm)->field.tqe_prev;		\
 	}								\
-	*(elm)->field.tqe_prev = TAILQ_NEXT((elm), field);		\
+	*(elm)->field.tqe_prev = BTPDQ_NEXT((elm), field);		\
 } while (0)
 
 #endif
diff --git a/btpd/torrent.c b/btpd/torrent.c
index a45f15a..f1fd6f9 100644
--- a/btpd/torrent.c
+++ b/btpd/torrent.c
@@ -44,8 +44,8 @@ torrent_load3(const char *file, struct metainfo *mi, char *mem, size_t memsiz)
 
     tp->piece_count = btpd_calloc(mi->npieces, sizeof(tp->piece_count[0]));
  
-    TAILQ_INIT(&tp->peers);
-    TAILQ_INIT(&tp->getlst);
+    BTPDQ_INIT(&tp->peers);
+    BTPDQ_INIT(&tp->getlst);
 
     tp->imem = mem;
     tp->isiz = memsiz;
@@ -61,7 +61,7 @@ torrent_load3(const char *file, struct metainfo *mi, char *mem, size_t memsiz)
     tp->meta = *mi;
     free(mi);
 
-    TAILQ_INSERT_TAIL(&btpd.cm_list, tp, entry);
+    BTPDQ_INSERT_TAIL(&btpd.cm_list, tp, entry);
 
     tracker_req(tp, TR_STARTED);
     btpd.ntorrents++;
@@ -153,17 +153,17 @@ torrent_unload(struct torrent *tp)
 
     tracker_req(tp, TR_STOPPED);
 
-    peer = TAILQ_FIRST(&tp->peers);
+    peer = BTPDQ_FIRST(&tp->peers);
     while (peer != NULL) {
-        struct peer *next = TAILQ_NEXT(peer, cm_entry);
+        struct peer *next = BTPDQ_NEXT(peer, cm_entry);
         peer->flags &= ~PF_ATTACHED;
         peer_kill(peer);
         peer = next;
     }
 
-    piece = TAILQ_FIRST(&tp->getlst);
+    piece = BTPDQ_FIRST(&tp->getlst);
     while (piece != NULL) {
-	struct piece *next = TAILQ_NEXT(piece, entry);
+	struct piece *next = BTPDQ_NEXT(piece, entry);
 	free(piece);
 	piece = next;
     }
@@ -174,7 +174,7 @@ torrent_unload(struct torrent *tp)
 
     munmap(tp->imem, tp->isiz);
 
-    TAILQ_REMOVE(&btpd.cm_list, tp, entry);
+    BTPDQ_REMOVE(&btpd.cm_list, tp, entry);
     free(tp);
     btpd.ntorrents--;
 }
@@ -223,13 +223,13 @@ int
 torrent_has_peer(struct torrent *tp, const uint8_t *id)
 {
     int has = 0;
-    struct peer *p = TAILQ_FIRST(&tp->peers);
+    struct peer *p = BTPDQ_FIRST(&tp->peers);
     while (p != NULL) {
 	if (bcmp(p->id, id, 20) == 0) {
 	    has = 1;
 	    break;
 	}
-	p = TAILQ_NEXT(p, cm_entry);
+	p = BTPDQ_NEXT(p, cm_entry);
     }
     return has;
 }
@@ -237,8 +237,8 @@ torrent_has_peer(struct torrent *tp, const uint8_t *id)
 struct torrent *
 torrent_get_by_hash(const uint8_t *hash)
 {
-    struct torrent *tp = TAILQ_FIRST(&btpd.cm_list);
+    struct torrent *tp = BTPDQ_FIRST(&btpd.cm_list);
     while (tp != NULL && bcmp(hash, tp->meta.info_hash, 20) != 0)
-	tp = TAILQ_NEXT(tp, entry);
+	tp = BTPDQ_NEXT(tp, entry);
     return tp;
 }
diff --git a/btpd/torrent.h b/btpd/torrent.h
index 66d5512..c9d5d2c 100644
--- a/btpd/torrent.h
+++ b/btpd/torrent.h
@@ -11,16 +11,16 @@ struct piece {
     uint8_t *have_field;
     uint8_t *down_field;
 
-    TAILQ_ENTRY(piece) entry;
+    BTPDQ_ENTRY(piece) entry;
 };
 
-TAILQ_HEAD(piece_tq, piece);
+BTPDQ_HEAD(piece_tq, piece);
 
 struct torrent {
     const char *relpath;
     struct metainfo meta;
 
-    TAILQ_ENTRY(torrent) entry;
+    BTPDQ_ENTRY(torrent) entry;
 
     void *imem;
     size_t isiz;
@@ -48,7 +48,7 @@ struct torrent {
     struct piece_tq getlst;
 };
 
-TAILQ_HEAD(torrent_tq, torrent);
+BTPDQ_HEAD(torrent_tq, torrent);
 
 off_t torrent_bytes_left(struct torrent *tp);
 
diff --git a/btpd/tracker_req.c b/btpd/tracker_req.c
index b84a2da..0db0a6a 100644
--- a/btpd/tracker_req.c
+++ b/btpd/tracker_req.c
@@ -285,7 +285,7 @@ tracker_req(struct torrent *tp, enum tr_event tr_event)
     child = (struct child *)(req + 1);
     child->data = req;
     child->child_done = tracker_done;
-    TAILQ_INSERT_TAIL(&btpd.kids, child, entry);
+    BTPDQ_INSERT_TAIL(&btpd.kids, child, entry);
 
     child->pid = fork();
     if (child->pid < 0) {