/* * Copyright (C) 2015 "IoT.bzh" * Author "Fulup Ar Foll" * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include "local-def.h" STATIC json_object* pingSample (AFB_session *session, AFB_request *request, void* handle) { static pingcount = 0; json_object *response; char query [512]; int len; // request all query key/value len = getQueryAll (request, query, sizeof(query)); if (len == 0) strcpy (query,"NoSearchQueryList"); // check if we have some post data if (request->post == NULL) request->post="NoData"; // return response to caller response = jsonNewMessage(AFB_SUCCESS, "Ping Binder Daemon %d query={%s} PostData: \'%s\' ", pingcount++, query, request->post); if (verbose) fprintf(stderr, "%d: \n", pingcount); return (response); } STATIC json_object* pingFail (AFB_session *session, AFB_request *request, void* handle) { return NULL; } STATIC json_object* pingBug (AFB_session *session, AFB_request *request, void* handle) { int a,b,c; fprintf (stderr, "Use --timeout=10 to trap error\n"); b=4; c=0; a=b/c; // should never return return NULL; } STATIC struct { void * somedata; } handle; STATIC AFB_restapi pluginApis[]= { {"ping" , (AFB_apiCB)pingSample , "Ping Application Framework",NULL}, {"pingnull" , (AFB_apiCB)pingFail , "Return NULL", NULL}, {"pingbug" , (AFB_apiCB)pingBug , "Do a Memory Violation", NULL}, {"ctx-store", (AFB_apiCB)pingSample , "Verbose Mode", NULL}, {"ctx-load" , (AFB_apiCB)pingSample , "Verbose Mode", NULL}, {0,0,0} }; PUBLIC AFB_plugin *dbusRegister (AFB_session *session) { AFB_plugin *plugin = malloc (sizeof (AFB_plugin)); plugin->type = AFB_PLUGIN; plugin->info = "Application Framework Binder Service"; plugin->prefix= "dbus"; plugin->apis = pluginApis; return (plugin); };