Would it be possible, without breaking the messenger paradigm very much, to provide some way of knowing which messages had not been delivered after a specified time?
i.e. pn_message_set_ttl ( message, seconds ); and then maybe int n_dead_letters = pn_messenger_expired ( messenger ); for ( i = 0 ; i < n_dead_letters; ++ i ) { pn_messenger_get_dead_letter ( messenger ); /* app does something with dead letter */ }