new: debug and version macros, cleaning up client/server APIs

This commit is contained in:
ngn
2024-06-28 20:51:56 +03:00
parent 6c2f34e8d5
commit 3b19e2840b
25 changed files with 231 additions and 128 deletions

View File

@ -22,6 +22,8 @@
// clang-format on
#define LM_VERSION "24.00"
#include "ctx.h"
#include "error.h"
#include "pool.h"

View File

@ -140,4 +140,7 @@ bool lm_mptp_client_recv(int sock, lm_mptp_t *packet);
int lm_mptp_server_listen(char *addr, uint16_t port);
bool lm_mptp_server_verify(lm_mptp_t *packet);
bool lm_mptp_server_recv(int sock, lm_mptp_t *packet, struct sockaddr *addr);
bool lm_mptp_server_send(int sock, lm_mptp_t *packet, struct sockaddr *adrr);
bool lm_mptp_server_send(int sock, lm_mptp_t *packet, struct sockaddr *addr);
bool lm_mptp_sendfile(int sock, struct sockaddr *addr, char *path);
bool lm_mptp_recvfile(int sock, char *path);

View File

@ -21,6 +21,10 @@ void lm_pool_test(lm_pool_t *pool);
void lm_pool_free(lm_pool_t *pool);
bool lm_pool_add(lm_pool_t *pool, lm_pkg_t *pkg);
void lm_pool_paths_set_info(lm_pool_t *pool, char *info_path);
void lm_pool_paths_set_list(lm_pool_t *pool, char *list_path);
void lm_pool_paths_free(lm_pool_t *pool);
bool lm_pool_info_load(lm_pool_t *pool, char *file);
bool lm_pool_info_get(lm_pool_t *pool, char *file);
void lm_pool_info_free(lm_pool_t *pool);

View File

@ -16,12 +16,17 @@ typedef struct lm_pool_info {
char *maintainer;
char *pubkey;
size_t size;
char *file;
} lm_pool_info_t;
typedef struct lm_pool_paths {
char *list;
char *info;
} lm_pool_paths_t;
typedef struct lm_pool {
struct lm_pool *next;
lm_pool_info_t info;
lm_pool_paths_t paths;
lm_url_t url;
lm_pkg_t *pkg;
bool available;
@ -29,10 +34,9 @@ typedef struct lm_pool {
} lm_pool_t;
typedef struct lm_ctx {
lm_pool_t *pools; // pool list
char *root; // root path for package installtion
char *temp; // temp path
char *data; // package database path
bool debug; // is debug output enabled?
lm_pool_t *pools; // pool list
char *root; // root path for package installtion
char *temp; // temp path
char *data; // package database path
const char *version; // libmp version (read-only)
} lm_ctx_t;

View File

@ -1,12 +1,13 @@
#pragma once
#include "types.h"
#include <libintl.h>
#include <netinet/in.h>
#include <stdbool.h>
#include <stdio.h>
#define _(x) gettext(x)
void pdebug(lm_ctx_t *ctx, const char *func, const char *fmt, ...);
void pdebug(const char *func, const char *fmt, ...);
bool parse_host(char *addr, char *host, uint16_t *port);
bool contains(char *str, char s);
bool eq(char *s1, char *s2);
@ -21,3 +22,5 @@ bool is_file(char *path);
bool is_dir(char *path);
bool can_read(char *path);
bool can_write(char *path);
bool mkdir_ifnot(char *path);
void sockaddr_to_str(struct sockaddr *addr, char *str);