Newer
Older
#ifndef COMMON_ZTE_H
#define COMMON_ZTE_H
Jakob Olsson
committed
#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 <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 struct device *global_dev;
if (debug) \
fprintf(stderr, __VA_ARGS__); \
} while (0)
/**
Jakob Olsson
committed
* 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.
*/
Jakob Olsson
committed
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);
Jakob Olsson
committed
/**
* Function: isdigits
*
* Checks if a string is made up entirely out of digits.
*
* Parameters:
* str - the string to check for digits.
*
* Returns:
* true if the string is made up entirely out of digits.
* false if the string contains any non-digit character.
*/
int isdigits(const char *str);
/**
* Function: validate_puk_format
*
* Checks whether a given PUK code is of valid format or not.
*
* Parameters:
* puk - the string to check for structure validity
*
* Returns:
* 0 if the string is of valid format.
* -1 on invalid format.
*/
int validate_puk_format(char *puk);
Jakob Olsson
committed
/**
* Function: validate_pin_format
*
* Checks whether a given PIN code is of valid format or not.
*
* Parameters:
* pin - the string to check for structure validity
*
* Returns:
* 0 if the string is of valid format.
* -1 on invalid format.
*/
int validate_pin_format(char *pin);
/**
* Function: pin_status
*
* Provides an error response to be used to print a message if the call fails
* due to pin being disabled. Up to the caller whether the print this message or
* not (depending on the necessity of pin to be disabled or enabled for the feature).
*
* Parameters:
* bb - pointer to the buff.
* dev - the device containing the currently active device.
*
* Returns:
* 0 if the string is of valid format.
* -1 on invalid format.
*/
int pin_status(struct blob_buf *bb, struct device *dev);
/**
* Function: check_response
*
* Determines whether the dongle API response was successful or not. Requires the
* response to be in the format of {"result": "success"} or {"result": "failure"}.
*
* Parameters:
* response - the json response to parse for success or failure.
*
* Returns:
* 0 if the response contained success.
* -1 if the response contained failure.
*/
int check_response(struct json_object *response);
struct json_object *get_json_string_object_by_key(json_object *json_obj, char *string);
/**
* Function: remove_newline
*
* Replaces the first newline character ('\n') found by a null-terminating byte ('\0').
*
* Parameters:
* response - the json response to parse for success or failure.
*
* Returns:
* 0 if the response contained success.
* -1 if the response contained failure.
*
* IMPORTANT NOTE
* Will alter the input string!
*/
void remove_newline(char *input);