* Parse a string (change)
*
*/
-#if YAJL_MAJOR >= 2
static int mode_string_cb(void *params_, const unsigned char *val, size_t len) {
-#else
-static int mode_string_cb(void *params_, const unsigned char *val, unsigned int len) {
-#endif
struct mode_json_params *params = (struct mode_json_params*) params_;
if (!strcmp(params->cur_key, "change")) {
* Essentially we just save it in the parsing-state
*
*/
-#if YAJL_MAJOR >= 2
static int mode_map_key_cb(void *params_, const unsigned char *keyVal, size_t keyLen) {
-#else
-static int mode_map_key_cb(void *params_, const unsigned char *keyVal, unsigned int keyLen) {
-#endif
struct mode_json_params *params = (struct mode_json_params*) params_;
FREE(params->cur_key);
}
/* A datastructure to pass all these callbacks to yajl */
-yajl_callbacks mode_callbacks = {
- NULL,
- NULL,
- NULL,
- NULL,
- NULL,
- &mode_string_cb,
- NULL,
- &mode_map_key_cb,
- NULL,
- NULL,
- NULL
+static yajl_callbacks mode_callbacks = {
+ .yajl_string = mode_string_cb,
+ .yajl_map_key = mode_map_key_cb,
};
/*
yajl_handle handle;
yajl_status state;
-#if YAJL_MAJOR < 2
- yajl_parser_config parse_conf = { 0, 0 };
-
- handle = yajl_alloc(&mode_callbacks, &parse_conf, NULL, (void*) ¶ms);
-#else
handle = yajl_alloc(&mode_callbacks, NULL, (void*) ¶ms);
-#endif
state = yajl_parse(handle, (const unsigned char*) json, strlen(json));
case yajl_status_ok:
break;
case yajl_status_client_canceled:
-#if YAJL_MAJOR < 2
- case yajl_status_insufficient_data:
-#endif
case yajl_status_error:
ELOG("Could not parse mode-event!\n");
exit(EXIT_FAILURE);