[xmppd-dev] commit r1559 - trunk/jabberd14/resolver
mail at jabberd.org
mail at jabberd.org
Mon Oct 19 20:33:45 CEST 2009
Author: mawis
Date: Mon Oct 19 20:33:44 2009
New Revision: 1559
Log:
Logging start and end of jobs
Modified:
trunk/jabberd14/resolver/resolver.cc
trunk/jabberd14/resolver/resolver.h
trunk/jabberd14/resolver/resolver_job.cc
Modified: trunk/jabberd14/resolver/resolver.cc
==============================================================================
--- trunk/jabberd14/resolver/resolver.cc Sun Mar 22 02:40:21 2009 (r1558)
+++ trunk/jabberd14/resolver/resolver.cc Mon Oct 19 20:33:44 2009 (r1559)
@@ -157,7 +157,7 @@
// drop type='error', bounce everything else
if (packet_type && Glib::ustring(packet_type) == "error") {
- log_warn(dp->host, "Looping DNS request. Dropped: %s", xmlnode_serialize_string(dp->x, xmppd::ns_decl_list(), 0));
+ log(xmppd::warn) << "Looping DNS request. Dropped: " << xmlnode_serialize_string(dp->x, xmppd::ns_decl_list(), 0);
xmlnode_free(dp->x);
} else {
deliver_fail(dp, N_("Looping DNS request. Dropped."));
@@ -174,6 +174,7 @@
// store the packet, so that we can forward it when it has been resolved, and start resolving
pending_jobs[dp->host] = new resolver_job(*this, dp);
+ log(xmppd::notice) << "Created new resolver job: " << *(pending_jobs[dp->host]);
pending_jobs[dp->host]->register_result_callback(sigc::mem_fun(*this, &xmppd::resolver::resolver::handle_completed_job));
return r_DONE;
}
@@ -188,7 +189,7 @@
dnsresultto = to.c_str();
}
- pkt = xmlnode_wrap_ns(pkt, "route", NULL, NULL);
+ pkt = xmlnode_wrap_ns(pkt, "route", NULL, NS_SERVER);
xmlnode_put_attrib_ns(pkt, "to", NULL, NULL, dnsresultto);
xmlnode_put_attrib_ns(pkt, "ip", NULL, NULL, ips.c_str());
}
@@ -210,6 +211,8 @@
// get the resolved ips
Glib::ustring ips = job.get_result();
+ log(xmppd::notice) << "Finished resolver job: " << job;
+
// resend the packets
for (std::list<dpacket>::const_iterator p = packets.begin(); p != packets.end(); ++p) {
resend_packet((*p)->x, ips, resend_host);
Modified: trunk/jabberd14/resolver/resolver.h
==============================================================================
--- trunk/jabberd14/resolver/resolver.h Sun Mar 22 02:40:21 2009 (r1558)
+++ trunk/jabberd14/resolver/resolver.h Mon Oct 19 20:33:44 2009 (r1559)
@@ -240,8 +240,27 @@
* listeners to get notified if the resolver_job is finished
*/
std::list<sigc::signal<void, resolver_job&> > result_listeners;
+
+ /**
+ * timestamp when the resolver job has been generated
+ */
+ time_t timestamp;
+
+ /**
+ * ID of the resolver job
+ */
+ long serial;
+
+ /**
+ * the next serial that will be used for a new job
+ */
+ static long next_serial;
+
+ friend std::ostream& operator<<(std::ostream& out, resolver_job& job);
};
+ std::ostream& operator<<(std::ostream& out, resolver_job& job);
+
/**
* @brief resolver component implementation
*
Modified: trunk/jabberd14/resolver/resolver_job.cc
==============================================================================
--- trunk/jabberd14/resolver/resolver_job.cc Sun Mar 22 02:40:21 2009 (r1558)
+++ trunk/jabberd14/resolver/resolver_job.cc Mon Oct 19 20:33:44 2009 (r1559)
@@ -34,7 +34,12 @@
namespace xmppd {
namespace resolver {
- resolver_job::resolver_job(resolver& owner, dpacket dp) : owner(owner) {
+ long resolver_job::next_serial = 1;
+
+ resolver_job::resolver_job(resolver& owner, dpacket dp) : owner(owner), serial(next_serial++) {
+ // remember when this job has been generated
+ std::time(×tamp);
+
// sanity check
if (!dp->host) {
throw std::invalid_argument("dpacket has no host");
@@ -283,5 +288,12 @@
xmppd::jabberid resolver_job::get_resend_host() const {
return current_service->get_resend_host();
}
+
+ std::ostream& operator<<(std::ostream& out, resolver_job& job) {
+ time_t now = std::time(NULL);
+ out << "JOB#" << job.serial << "(" << (now-job.timestamp) << " s): ";
+ out << job.destination << " " << job.get_result();
+ return out;
+ }
}
}
More information about the dev
mailing list