new: add callback for serve command
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
#include "database.h"
|
||||
#include "mptp.h"
|
||||
#include "types.h"
|
||||
|
||||
#include <stdbool.h>
|
||||
@ -52,6 +53,7 @@ typedef bool (*lm_ctx_update_callback_t)(
|
||||
lm_ctx_t *ctx, lm_pkg_t *pkg, lm_ctx_update_state_t state, char *file, size_t current, size_t total, void *data);
|
||||
typedef bool (*lm_ctx_sync_callback_t)(
|
||||
lm_ctx_t *ctx, lm_pool_t *pool, lm_ctx_sync_state_t state, size_t current, size_t total, void *data);
|
||||
typedef bool (*lm_ctx_serve_callback_t)(lm_pool_t *pool, lm_mptp_t *packet, struct sockaddr *addr, void *data);
|
||||
typedef bool (*lm_ctx_ping_callback_t)(lm_ctx_t *ctx, lm_pool_t *pool, bool status, void *data);
|
||||
typedef lm_ctx_install_callback_t lm_ctx_remove_callback_t;
|
||||
typedef lm_ctx_install_callback_t lm_ctx_check_callback_t;
|
||||
@ -79,17 +81,20 @@ void lm_ctx_update_list_free(lm_ctx_update_list_t *list); // fr
|
||||
bool lm_ctx_update(lm_ctx_t *ctx, lm_pkg_t *pkg, lm_ctx_update_callback_t callback,
|
||||
void *data); // returns a list of packages to update
|
||||
|
||||
bool lm_ctx_removeable(lm_ctx_t *ctx, lm_pkg_t *pkg); // checks if a package is available for removal
|
||||
bool lm_ctx_remove(
|
||||
lm_ctx_t *ctx, lm_pkg_t *pkg, lm_ctx_remove_callback_t callback, void *data); // removes a single package
|
||||
|
||||
bool lm_ctx_download(lm_ctx_t *ctx, lm_pkg_t *pkg, lm_ctx_download_callback_t callback,
|
||||
void *data); // downloads a single package
|
||||
bool lm_ctx_install(
|
||||
lm_ctx_t *ctx, lm_pkg_t *pkg, lm_ctx_install_callback_t callback, void *data); // installs/updates a single package
|
||||
bool lm_ctx_remove(
|
||||
lm_ctx_t *ctx, lm_pkg_t *pkg, lm_ctx_remove_callback_t callback, void *data); // removes a single package
|
||||
bool lm_ctx_check(
|
||||
lm_ctx_t *ctx, lm_pkg_t *pkg, lm_ctx_check_callback_t callback, void *data); // checks a single package
|
||||
size_t lm_ctx_sync(lm_ctx_t *ctx, bool do_update, lm_ctx_sync_callback_t callback, void *data); // syncs all the pools
|
||||
void lm_ctx_ping(lm_ctx_t *ctx, lm_ctx_ping_callback_t callback, void *data); // pings all the pools
|
||||
bool lm_ctx_serve(lm_ctx_t *ctx, char *addr, uint8_t threads); // serves all the pools
|
||||
bool lm_ctx_serve(
|
||||
lm_ctx_t *ctx, char *addr, uint8_t threads, lm_ctx_serve_callback_t callback, void *data); // serves all the pools
|
||||
|
||||
/* ####################
|
||||
## pool fucntions ##
|
||||
|
@ -9,13 +9,6 @@
|
||||
#define POOL_INFO_PUBKEY "pubkey"
|
||||
#define POOL_INFO_MAINTAINER "maintainer"
|
||||
|
||||
typedef struct lm_pool_thread_arg {
|
||||
int sock;
|
||||
struct sockaddr addr;
|
||||
lm_mptp_t packet;
|
||||
lm_pool_t *pool;
|
||||
} lm_pool_thread_arg_t;
|
||||
|
||||
lm_pool_t *lm_pool_new(char *name, char *url);
|
||||
void lm_pool_test(lm_pool_t *pool);
|
||||
void lm_pool_free(lm_pool_t *pool);
|
||||
|
@ -33,7 +33,6 @@ bool parse_host(char *addr, char *host, uint16_t *port);
|
||||
bool copy_blocks(struct archive *w, struct archive *r);
|
||||
bool extract_archive(char *dst, char *src);
|
||||
bool mkdir_ifnot(char *path);
|
||||
void sockaddr_to_str(struct sockaddr *addr, char *str);
|
||||
|
||||
int join_multiple(char *res, const char *base, const char *pth, const char *pth2);
|
||||
int join(char *res, const char *base, const char *pth);
|
||||
|
Reference in New Issue
Block a user