#include "local-def.h"
-STATIC json_object* pingAfbs (AFB_plugin *plugin, AFB_session *session, AFB_request *request) {
- static pingcount=0;
+STATIC json_object* pingSample (AFB_session *session, AFB_request *request, void* handle) {
+ static pingcount = 0;
json_object *response;
- response = jsonNewMessage(AFB_SUCCESS, "Ping Application Framework %d", pingcount++);
+ 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)pingAfbs ,"Ping Application Framework"},
- {"ctx-store", (AFB_apiCB)pingSample ,"Verbose Mode"},
- {"ctx-load" , (AFB_apiCB)pingSample ,"Verbose Mode"},
+ {"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;