2 * Copyright (C) 2015 "IoT.bzh"
3 * Author "Fulup Ar Foll"
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #include "local-def.h"
22 STATIC json_object* pingSample (AFB_session *session, AFB_request *request, void* handle) {
24 json_object *response;
28 // request all query key/value
29 len = getQueryAll (request, query, sizeof(query));
30 if (len == 0) strcpy (query,"NoSearchQueryList");
32 // check if we have some post data
33 if (request->post == NULL) request->post="NoData";
35 // return response to caller
36 response = jsonNewMessage(AFB_SUCCESS, "Ping Binder Daemon %d query={%s} PostData: \'%s\' ", pingcount++, query, request->post);
38 if (verbose) fprintf(stderr, "%d: \n", pingcount);
42 STATIC json_object* pingFail (AFB_session *session, AFB_request *request, void* handle) {
46 STATIC json_object* pingBug (AFB_session *session, AFB_request *request, void* handle) {
49 fprintf (stderr, "Use --timeout=10 to trap error\n");
54 // should never return
63 STATIC AFB_restapi pluginApis[]= {
64 {"ping" , (AFB_apiCB)pingSample , "Ping Application Framework",NULL},
65 {"pingnull" , (AFB_apiCB)pingFail , "Return NULL", NULL},
66 {"pingbug" , (AFB_apiCB)pingBug , "Do a Memory Violation", NULL},
67 {"ctx-store", (AFB_apiCB)pingSample , "Verbose Mode", NULL},
68 {"ctx-load" , (AFB_apiCB)pingSample , "Verbose Mode", NULL},
73 PUBLIC AFB_plugin *dbusRegister (AFB_session *session) {
74 AFB_plugin *plugin = malloc (sizeof (AFB_plugin));
75 plugin->type = AFB_PLUGIN;
76 plugin->info = "Application Framework Binder Service";
77 plugin->prefix= "dbus";
78 plugin->apis = pluginApis;