Skip to content
Snippets Groups Projects
common.h 2.12 KiB
#ifndef COMMON_ZTE_H
#define COMMON_ZTE_H

#include <stdlib.h>
#include <stdio.h>
#include <stdbool.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <signal.h>
#include <time.h>
#include <limits.h>
#include <libubox/list.h>
#include <libubox/uloop.h>
#include <ctype.h>
#include <json-c/json.h>
#include <string.h>
#include <libubox/blobmsg.h>
#include <libubox/blobmsg_json.h>
#include <libubus.h>
#include <libxml2/libxml/parser.h>
#include <libxml/xpath.h>
#include <libxml/xpathInternals.h>

#include "libmobile_wrapper.h"

extern int debug;
extern struct device *global_dev;
extern struct ubus_context *global_ctx;

#define debug_print(...)                  \
	do {                                  \
		if (debug)                        \
			fprintf(stderr, __VA_ARGS__); \
	} while (0)

#define TAG_CONTENT_SIZE 100

struct write_result
{
	char *data;
	int pos;
};


char *get_ip(char *if_name);
/**
 * Function: print_to_ubus
 *
 * Prints a json_object pointer's json structure to ubus.
 *
 * Parameters:
 * 		parsed_response - A struct json_object pointer to json structure to be printed to ubus.
 * 		ctx - Ubus context containing connection.
 * 		req - Information for from the ubus request.
 *
 * Returns:
 * 		0 On success.
 * 		-1 On failure.
 */
int print_to_ubus(struct json_object *parsed_response, struct ubus_context *ctx, struct ubus_request_data *req);

/**
 * Function: json_to_blob
 *
 * Parses a json_object pointer to a corresponding blob buffer.
 *
 * Parameters:
 * 		response - json_object pointer to be replicated in a blob buffer.
 * 		bb - The blob buffer pointer to hold the results.
 *
 */
void json_to_blob(struct json_object *response, struct blob_buf *bb);

char *xml_parser(struct write_result *result, char *tag);
struct json_object *xml_to_json_converter(struct write_result *result);
int isdigits(const char *pin);
int validate_puk_format(char *puk);
int validate_pin_format(char *pin);
int pin_status(struct blob_buf *bb, struct device *dev);
int check_response(struct json_object *response);
struct json_object *get_json_string_object_by_key(json_object *json_obj, char *string);
#endif