409f28f9cb
FossilOrigin-Name: 37b224636147511617d495c35527b1ba8cc2ccde6a234c8b69de3c4af13bfd2d
71 lines
1.7 KiB
C
71 lines
1.7 KiB
C
/*
|
|
* Treebird - Lightweight frontend for Pleroma
|
|
*
|
|
* Licensed under the BSD 3-Clause License
|
|
*/
|
|
|
|
#ifndef PATH_H
|
|
#define PATH_H
|
|
#include "session.h"
|
|
#include <mastodont.h>
|
|
#include <stddef.h>
|
|
#include "env.h"
|
|
#include "cgi.h"
|
|
#include "request.h"
|
|
|
|
#define PATH_ARGS REQUEST_T req, struct session* ssn, mastodont_t* api, char** data
|
|
#define PATH_ARGS_PASS req, ssn, api, data
|
|
|
|
struct path_info
|
|
{
|
|
char* path;
|
|
int (*callback)(PATH_ARGS);
|
|
};
|
|
|
|
/// Struct for use with mastodont-c, passed as an argument usually
|
|
struct path_args_data
|
|
{
|
|
REQUEST_T req;
|
|
struct session* ssn;
|
|
mastodont_t* api;
|
|
/// Need to manually free this or whatever
|
|
void* data;
|
|
};
|
|
|
|
/**
|
|
* Allocates a path_args_data struct.
|
|
*
|
|
* Used for mastodont-c callbacks essentially.
|
|
*
|
|
* @param req Request.
|
|
* @param ssn Session data.
|
|
* @param api API data. Usually a reference.
|
|
* @param data Any custom data, must be manually free'd
|
|
* @return Allocated struct, or NULL on error. Free with path_args_data_destroy
|
|
*/
|
|
struct path_args_data* path_args_data_create(REQUEST_T req,
|
|
struct session* ssn,
|
|
mastodont_t* api,
|
|
void* data);
|
|
|
|
/**
|
|
* Destroys the path args and struct created by @struct path_args_data_create
|
|
*
|
|
* @param ref To be destroyed.
|
|
*/
|
|
void path_args_data_destroy(struct path_args_data* ref);
|
|
|
|
int handle_paths(
|
|
REQUEST_T req,
|
|
struct session* ssn,
|
|
mastodont_t* api,
|
|
struct path_info* paths,
|
|
size_t paths_len);
|
|
|
|
int parse_path(REQUEST_T req,
|
|
struct session* ssn,
|
|
mastodont_t* api,
|
|
struct path_info* path_info);
|
|
|
|
#endif // PATH_H
|