ant-http/lib/plugin.h

62 lines
1.0 KiB
C
Raw Normal View History

2017-07-29 22:00:34 +02:00
#ifndef PLUGIN_H
#define PLUGIN_H
2020-08-25 17:04:17 +02:00
#include <sys/stat.h>
2020-08-25 16:40:24 +02:00
#include "utils.h"
#include "handle.h"
2015-10-22 11:39:11 +02:00
2017-07-29 22:00:34 +02:00
char* config_dir();
2015-10-22 11:39:11 +02:00
/*Default function for plugin*/
2018-09-26 11:07:48 +02:00
// init the plugin
2019-11-13 17:00:11 +01:00
void init();
void destroy();
void* handle(void*);
plugin_header_t* meta();
void use_raw_body();
2019-11-13 17:00:11 +01:00
/*
STATIC PART, should be included in any plugin
*/
2019-11-19 17:07:04 +01:00
#ifdef PLUGIN_IMPLEMENT
2023-01-11 22:18:45 +01:00
#define PLUGIN_PANIC(a,...) \
ERROR("%s: "a,__plugin__.name, ##__VA_ARGS__); \
__plugin__.status = ANTD_PLUGIN_PANNIC;
2019-11-13 17:00:11 +01:00
static plugin_header_t __plugin__;
// private function
2023-01-15 18:21:42 +01:00
void __init_plugin__(plugin_header_t* pl, dictionary_t* conf){
(void) memcpy(&__plugin__, pl, sizeof(plugin_header_t));
2023-01-11 22:18:45 +01:00
__plugin__.status = ANTD_PLUGIN_READY;
2019-11-13 17:00:11 +01:00
init();
};
void use_raw_body()
{
__plugin__.raw_body = 1;
}
plugin_header_t* meta()
{
return &__plugin__;
}
char* config_dir()
{
struct stat st;
char* path = __s("%s%s%s", __plugin__.pdir,DIR_SEP, __plugin__.name);
if (stat(path, &st) == -1)
mkdir(path, 0755);
return path;
}
void __release__()
{
destroy();
}
2017-07-29 22:00:34 +02:00
#endif
2019-11-19 17:07:04 +01:00
#endif