yasnd/yasnd.h

55 lines
1.6 KiB
C

#ifndef YASND_H
#define YASND_H
// Debug verbosity
#define DEBUG_BASE 1
#define DEBUG_ALL 2
#include <sys/types.h>
#include <sys/wait.h>
#include <signal.h>
#include <stdbool.h>
#include <string.h>
#include <gammu.h>
#define _GNU_SOURCE
#include <sched.h>
// Structure, that described single checked host
typedef struct {
char* hostname; // address of host
pid_t helper_pid; // pid of helper('pinger') child process
int fail_count; // how many times in a row host was unreachable
bool alert_sent; // variable, that changed when host goes online/offline
} host_decl;
// Structure, that described single IPC message
typedef struct {
long mtype; /* Message type */
char mtext[100];
} mymsgbuf;
// External functions
extern void log_event(const char *message);
extern void log_debug(const char *message,int verbosity);
extern void* allocate_memory(int bytes);
extern bool check_gammu_error(GSM_Error err);
extern bool gammu_init();
extern bool gammu_send_sms(const char* message);
extern void ipc_init();
extern void ipc_free();
extern int send_message(int qid, mymsgbuf* qbuf);
// External variables
extern int hosts_count; // count of hosts
extern int debug_flag;
extern GSM_Error error; // structure to store possible gammu errors
extern GSM_StateMachine *state_machine; // structure to interact with mobile phones
extern char* recipient_number;
extern char* phone_device; // phone device for gammu, for example: "/dev/ttyACM0"
extern char* phone_model; // gammu phone model, for example: "at"
extern char* phone_connection; // gammu phone connection type, for example: "at"
extern int qid;
extern pid_t ipc_clone_pid;
#endif