MXS-1220: Add GET support for service listeners
The service listeners can now be queried as a separate resource. This is the first step towards the creation and destruction of listeners.
This commit is contained in:
parent
844ba6edd3
commit
60526f15b8
@ -279,6 +279,20 @@ HttpResponse cb_get_service(const HttpRequest& request)
|
||||
return HttpResponse(MHD_HTTP_INTERNAL_SERVER_ERROR);
|
||||
}
|
||||
|
||||
HttpResponse cb_get_service_listeners(const HttpRequest& request)
|
||||
{
|
||||
SERVICE* service = service_find(request.uri_part(1).c_str());
|
||||
json_t* json = service_to_json(service, request.host());
|
||||
|
||||
// The 'listeners' key is always defined
|
||||
json_t* listeners = json_incref(json_object_get(json, CN_LISTENERS));
|
||||
ss_dassert(listeners);
|
||||
|
||||
json_decref(json);
|
||||
|
||||
return HttpResponse(MHD_HTTP_OK, listeners);
|
||||
}
|
||||
|
||||
HttpResponse cb_all_filters(const HttpRequest& request)
|
||||
{
|
||||
return HttpResponse(MHD_HTTP_OK, filter_list_to_json(request.host()));
|
||||
@ -398,6 +412,8 @@ public:
|
||||
|
||||
m_get.push_back(SResource(new Resource(cb_all_services, 1, "services")));
|
||||
m_get.push_back(SResource(new Resource(cb_get_service, 2, "services", ":service")));
|
||||
m_get.push_back(SResource(new Resource(cb_get_service_listeners, 3,
|
||||
"services", ":service", "listeners")));
|
||||
|
||||
m_get.push_back(SResource(new Resource(cb_all_filters, 1, "filters")));
|
||||
m_get.push_back(SResource(new Resource(cb_get_filter, 2, "filters", ":filter")));
|
||||
|
@ -2473,18 +2473,19 @@ json_t* service_to_json(const SERVICE* service, const char* host)
|
||||
/** Add service parameters */
|
||||
json_object_set_new(rval, CN_PARAMETERS, service_parameters_to_json(service));
|
||||
|
||||
/** Add listeners */
|
||||
json_t* arr = json_array();
|
||||
|
||||
if (service->ports)
|
||||
{
|
||||
json_t* arr = json_array();
|
||||
|
||||
for (SERV_LISTENER* p = service->ports; p; p = p->next)
|
||||
{
|
||||
json_array_append_new(arr, listener_to_json(p));
|
||||
}
|
||||
|
||||
json_object_set_new(rval, CN_LISTENERS, arr);
|
||||
}
|
||||
|
||||
json_object_set_new(rval, CN_LISTENERS, arr);
|
||||
|
||||
/** Store relationships to other objects */
|
||||
json_t* rel = json_object();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user