X-Git-Url: http://www.project-moonshot.org/gitweb/?p=trust_router.git;a=blobdiff_plain;f=trp%2Ftrps.c;h=b737aba7ab2279fc6efed2016c6fa43cd5d183f4;hp=83461d99bdcd2ce5d45b1d6d5c508fa72254e7d4;hb=e404e4c6cbddaca8fcb9a563ce20fb19d6a722a3;hpb=d3d9b0eb4b1718cad404236d589fff2f16de2c37 diff --git a/trp/trps.c b/trp/trps.c index 83461d9..b737aba 100644 --- a/trp/trps.c +++ b/trp/trps.c @@ -265,13 +265,13 @@ TRP_RC trps_send_msg(TRPS_INSTANCE *trps, TRP_PEER *peer, const char *msg) /* get the connection for this peer */ trpc=trps_find_trpc(trps, peer); - /* instead, let's let that happen and then clear the queue when an attempt to - * connect fails */ + /* The peer connection (trpc) usually exists even if the connection is down. + * We will queue messages even if the connection is down. To prevent this from + * endlessly increasing the size of the queue, the trpc handler needs to clear + * its queue periodically, even if it is unable to send the messages + */ if (trpc==NULL) { tr_warning("trps_send_msg: skipping message queued for missing TRP client entry."); - } else if (trpc->shutting_down) { - tr_debug("trps_send_msg: skipping message because TRP client is shutting down."); - rc = TRP_SUCCESS; /* it's ok that this didn't get sent, the connection will be gone in a moment */ } else { mq_msg=tr_mq_msg_new(tmp_ctx, TR_MQMSG_TRPC_SEND, TR_MQ_PRIO_NORMAL); msg_dup=talloc_strdup(mq_msg, msg); /* get local copy in mq_msg context */