|
@@ -24,7 +24,7 @@ extern "C" {
|
|
|
|
|
|
#include <numeric> //inner_product
|
|
|
#include <functional> //plus, equal_to, not2
|
|
|
-#include <string>
|
|
|
+#include <string>
|
|
|
#include <stdexcept>
|
|
|
|
|
|
|
|
@@ -33,25 +33,25 @@ extern "C" {
|
|
|
AMQPPublisher amqp;
|
|
|
|
|
|
/* IPv4 callouts */
|
|
|
-int pkt4_receive(CalloutHandle& handle)
|
|
|
+int pkt4_receive(CalloutHandle& handle)
|
|
|
{
|
|
|
Pkt4Ptr query;
|
|
|
handle.getArgument("query4", query);
|
|
|
|
|
|
- amqp.publish(query->toText());
|
|
|
+ amqp.publish("pkt4_receive => query: " + query->toText());
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-int pkt4_send(CalloutHandle& handle)
|
|
|
+int pkt4_send(CalloutHandle& handle)
|
|
|
{
|
|
|
Pkt4Ptr response;
|
|
|
Pkt4Ptr query;
|
|
|
handle.getArgument("response4", response);
|
|
|
handle.getArgument("query4", query);
|
|
|
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish(response->toText());
|
|
|
+ amqp.publish("pkt4_send => query: " + query->toText() +
|
|
|
+ ", response: " + response->toText());
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
@@ -62,10 +62,10 @@ int subnet4_select(CalloutHandle& handle) {
|
|
|
Subnet4Ptr subnet;
|
|
|
handle.getArgument("query4", query);
|
|
|
handle.getArgument("subnet4", subnet);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("subnet4_select: " + subnet->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("subnet4_select => query: " + query->toText() +
|
|
|
+ ", subnet: " + subnet->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -79,11 +79,11 @@ int lease4_select(CalloutHandle& handle) {
|
|
|
handle.getArgument("subnet4", subnet);
|
|
|
handle.getArgument("fake_allocation", fake_allocation);
|
|
|
handle.getArgument("lease4", lease);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("lease4_select: " + subnet->toText());
|
|
|
- amqp.publish("lease4_select: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease4_select => query: " + query->toText() +
|
|
|
+ ", subnet: " + subnet->toText() +
|
|
|
+ ", lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -95,11 +95,11 @@ int lease4_renew(CalloutHandle& handle) {
|
|
|
handle.getArgument("query4", query);
|
|
|
handle.getArgument("subnet4", subnet);
|
|
|
handle.getArgument("lease4", lease);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("lease4_renew: " + subnet->toText());
|
|
|
- amqp.publish("lease4_renew: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease4_renew => query: " + query->toText() +
|
|
|
+ ", subnet: " + subnet->toText() +
|
|
|
+ ", lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -109,10 +109,10 @@ int lease4_release(CalloutHandle& handle) {
|
|
|
Lease4Ptr lease;
|
|
|
handle.getArgument("query4", query);
|
|
|
handle.getArgument("lease4", lease);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("lease4_release: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease4_release => query: " + query->toText() +
|
|
|
+ ", lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -122,10 +122,10 @@ int lease4_decline(CalloutHandle& handle) {
|
|
|
Lease4Ptr lease;
|
|
|
handle.getArgument("query4", query);
|
|
|
handle.getArgument("lease4", lease);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("lease4_decline: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease4_decline => query: " + query->toText() +
|
|
|
+ ", lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -135,9 +135,9 @@ int lease4_expire(CalloutHandle& handle) {
|
|
|
bool remove_lease;
|
|
|
handle.getArgument("lease4", lease);
|
|
|
handle.getArgument("remove_lease", remove_lease);
|
|
|
-
|
|
|
- amqp.publish("lease4_expire: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease4_expire => lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -145,9 +145,9 @@ int lease4_recover(CalloutHandle& handle) {
|
|
|
std::vector<std::string> env;
|
|
|
Lease4Ptr lease;
|
|
|
handle.getArgument("lease4", lease);
|
|
|
-
|
|
|
- amqp.publish("lease4_recover: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease4_recover => lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -156,9 +156,9 @@ int pkt6_receive(CalloutHandle& handle) {
|
|
|
std::vector<std::string> env;
|
|
|
Pkt6Ptr query;
|
|
|
handle.getArgument("query6", query);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("pkt6_receive => query: " + query->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -167,10 +167,10 @@ int pkt6_send(CalloutHandle& handle) {
|
|
|
Pkt6Ptr query, response;
|
|
|
handle.getArgument("query6", query);
|
|
|
handle.getArgument("response6", response);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish(response->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("pkt6_send => query: " + query->toText() +
|
|
|
+ ", response: " + response->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -180,10 +180,10 @@ int subnet6_select(CalloutHandle& handle) {
|
|
|
Subnet6Ptr subnet;
|
|
|
handle.getArgument("query6", query);
|
|
|
handle.getArgument("subnet6", subnet);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("subnet6_select: " + subnet->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("subnet6_select => query: " + query->toText() +
|
|
|
+ ", subnet: " + subnet->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -197,11 +197,11 @@ int lease6_select(CalloutHandle& handle) {
|
|
|
handle.getArgument("subnet6", subnet);
|
|
|
handle.getArgument("fake_allocation", fake_allocation);
|
|
|
handle.getArgument("lease6", lease);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("lease6_select: " + subnet->toText());
|
|
|
- amqp.publish("lease6_select: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease6_select => query: " + query->toText() +
|
|
|
+ ", subnet: " + subnet->toText() +
|
|
|
+ ", lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -213,20 +213,21 @@ int lease6_renew(CalloutHandle& handle) {
|
|
|
boost::shared_ptr<Option6IA> ia_pd;
|
|
|
handle.getArgument("query6", query);
|
|
|
handle.getArgument("lease6", lease);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("lease6_renew: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ std::string message = "lease6_renew => query: " + query->toText() +
|
|
|
+ ", lease: " + lease->toText();
|
|
|
try {
|
|
|
handle.getArgument("ia_na", ia_na);
|
|
|
- amqp.publish("lease6_renew: " + ia_na->toText());
|
|
|
+ message = message + ", ia_na: " + ia_na->toText();
|
|
|
} catch (const NoSuchArgument&) { }
|
|
|
-
|
|
|
+
|
|
|
try {
|
|
|
handle.getArgument("ia_pd", ia_pd);
|
|
|
- amqp.publish("lease6_renew: " + ia_pd->toText());
|
|
|
+ message = message + ", ia_pd: " + ia_pd->toText();
|
|
|
} catch (const NoSuchArgument&) { }
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish(message);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -238,20 +239,21 @@ int lease6_rebind(CalloutHandle& handle) {
|
|
|
boost::shared_ptr<Option6IA> ia_pd;
|
|
|
handle.getArgument("query6", query);
|
|
|
handle.getArgument("lease6", lease);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("lease6_rebind: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ std::string message = "lease6_rebind => query: " + query->toText() +
|
|
|
+ ", lease: " + lease->toText();
|
|
|
try {
|
|
|
handle.getArgument("ia_na", ia_na);
|
|
|
- amqp.publish("lease6_rebind: " + ia_na->toText());
|
|
|
+ message = message + ", ia_na: " + ia_na->toText();
|
|
|
} catch (const NoSuchArgument&) { }
|
|
|
-
|
|
|
+
|
|
|
try {
|
|
|
handle.getArgument("ia_pd", ia_pd);
|
|
|
- amqp.publish("lease6_rebind: " + ia_pd->toText());
|
|
|
+ message = message + ", ia_pd: " + ia_pd->toText();
|
|
|
} catch (const NoSuchArgument&) { }
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish(message);
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -261,10 +263,10 @@ int lease6_decline(CalloutHandle& handle) {
|
|
|
Lease6Ptr lease;
|
|
|
handle.getArgument("query6", query);
|
|
|
handle.getArgument("lease6", lease);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("lease6_decline: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease6_decline => query: " + query->toText() +
|
|
|
+ ", lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -274,10 +276,10 @@ int lease6_release(CalloutHandle& handle) {
|
|
|
Lease6Ptr lease;
|
|
|
handle.getArgument("query6", query);
|
|
|
handle.getArgument("lease6", lease);
|
|
|
-
|
|
|
- amqp.publish(query->toText());
|
|
|
- amqp.publish("lease6_release: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease6_release => query: " + query->toText() +
|
|
|
+ ", lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -287,9 +289,9 @@ int lease6_expire(CalloutHandle& handle) {
|
|
|
bool remove_lease;
|
|
|
handle.getArgument("lease6", lease);
|
|
|
handle.getArgument("remove_lease", remove_lease);
|
|
|
-
|
|
|
- amqp.publish("lease6_expire: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease6_expire => lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -297,9 +299,9 @@ int lease6_recover(CalloutHandle& handle) {
|
|
|
std::vector<std::string> env;
|
|
|
Lease6Ptr lease;
|
|
|
handle.getArgument("lease6", lease);
|
|
|
-
|
|
|
- amqp.publish("lease6_recover: " + lease->toText());
|
|
|
-
|
|
|
+
|
|
|
+ amqp.publish("lease6_recover => lease: " + lease->toText());
|
|
|
+
|
|
|
return 0;
|
|
|
}
|
|
|
|