Skip to content
Snippets Groups Projects
Commit a54e9da5ba50 authored by jfp's avatar jfp
Browse files

WIP version

parent e6264028111c
Branches
No related tags found
1 merge request!1rmqplus.c initial version
......@@ -59,7 +59,69 @@
unsigned long UnixTime;
struct tm *UnixTmPtr;
int rmqplus();
/*
*
*/
static cJSON *cjson_create_root(void) {
cJSON *root = cJSON_CreateObject();
cJSON *obj;
obj = cJSON_AddObjectToObject(root, "header");
obj = cJSON_AddObjectToObject(root, "in");
obj = cJSON_AddObjectToObject(root, "out");
return root;
}
int rmqplus() {
cJSON *cjson_root, *cjson_in, *cjson_out, *cjson_header, *cjson_obj;
char *cptr, *cname, *cvalue;
/*********/
/* begin */
/*********/
cjson_root = cjson_create_root();
cjson_in = cJSON_GetObjectItem(cjson_root, "in");
cjson_out = cJSON_GetObjectItem(cjson_root, "out");
cjson_header = cJSON_GetObjectItem(cjson_root, "header");
fprintf(stdout,
"Content-Type: application/json\n\
Expires: Thu, 01 Jan 1970 00:00:01 GMT\n\
\n\
");
/* list all CGIplus variables names and values one-by-one */
while (cptr = CgiLibVar("*")) {
if (!((toupper(*cptr) == 'F' &&
!strncmp(cptr, "FORM_", 5)) ||
(toupper(*cptr) == 'K' &&
!strncmp(cptr, "KEY_", 4)))) {
cjson_obj = cjson_header;
} else {
cjson_obj = cjson_in;
}
cname = cptr;
cvalue = strchr(cptr, '=');
if (cvalue) {
*cvalue = '\0';
++cvalue;
if (!cJSON_AddItemToObject(cjson_obj, cname,
cJSON_CreateString(cvalue))) {
cJSON_Delete(cjson_root);
fputs("{\"status\": 0}\n", stdout);
return (0);
}
}
}
fputs(cJSON_PrintUnformatted(cjson_root), stdout);
fputs("\n", stdout);
cJSON_Delete(cjson_root);
return (1);
}
/*
* Main routine, just use an infinite loop calling rmqplus
......@@ -69,6 +131,8 @@
/*********/
/* begin */
/*********/
if ((stdout = freopen("SYS$OUTPUT", "w", stdout, "ctx=bin")) == NULL)
exit(vaxc$errno);
if (getenv("RMQPLUS$DBUG"))
Debug = 1;
......@@ -96,59 +160,3 @@
exit(SS$_NORMAL);
}
/*
*
*/
static cJSON *cjson_create_root(void) {
cJSON *root = cJSON_CreateObject();
cJSON *obj;
obj = cJSON_AddObjectToObject(root, "in");
obj = cJSON_AddObjectToObject(root, "out");
return root;
}
int rmqplus() {
cJSON *cjson_root, *cjson_in, *cjson_out;
char *cptr, *cname, *cvalue;
/*********/
/* begin */
/*********/
if (Debug)
fprintf(stdout, "rmqplus()\n");
cjson_root = cjson_create_root();
cjson_in = cJSON_GetObjectItem(cjson_root, "in");
cjson_out = cJSON_GetObjectItem(cjson_root, "out");
fprintf(stdout,
"Content-Type: application/json\n\
Expires: Thu, 01 Jan 1970 00:00:01 GMT\n\
\n\
");
/* list all CGIplus variables names and values one-by-one */
while (cptr = CgiLibVar("*")) {
cname = cptr;
cvalue = strchr(cptr, '=');
if (cvalue) {
*cvalue = '\0';
++cvalue;
if (! cJSON_AddItemToObject(cjson_in, cname, cJSON_CreateString(cvalue))) {
cJSON_Delete(cjson_root);
fputs("{\"status\": 0}\n", stdout);
return (0);
}
}
}
fputs(cJSON_PrintUnformatted(cjson_root), stdout);
fputs("\n", stdout);
cJSON_Delete(cjson_root);
return (1);
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment