new: implement more pool stuff, start working on package functions

This commit is contained in:
ngn
2024-06-26 22:33:20 +03:00
parent 92bc029d0a
commit 6ef1bf0b12
22 changed files with 947 additions and 563 deletions

View File

@ -34,6 +34,14 @@ typedef enum lm_error {
LM_ERR_MPTPNotLast = 30,
LM_ERR_NoPort = 31,
LM_ERR_PoolInfoBad = 32,
LM_ERR_ArcWBlockFail = 33,
LM_ERR_ArcRBlockFail = 34,
LM_ERR_ArcOpenFail = 35,
LM_ERR_ArcWHeaderFail = 36,
LM_ERR_ArcWEntryFail = 37,
LM_ERR_GetCwdFail = 38,
LM_ERR_PoolListDirFail = 39,
} lm_error_t;
typedef struct lm_error_desc {

View File

@ -127,7 +127,6 @@ bool lm_mptp_set_data(lm_mptp_t *packet, char *data, size_t size);
bool lm_mptp_set_host(lm_mptp_t *packet, char *host);
bool lm_mptp_get_host(lm_mptp_t *packet, char *host);
bool lm_mptp_get_data(lm_mptp_t *packet, char *data);
int lm_mptp_socket(char *addr, uint16_t port, struct sockaddr *saddr);
void lm_mptp_copy(lm_mptp_t *dst, lm_mptp_t *src);
bool lm_mptp_verify(lm_mptp_t *packet);

8
include/pkg.h Normal file
View File

@ -0,0 +1,8 @@
#pragma once
#include "types.h"
#include <stdbool.h>
lm_pkg_t *lm_pkg_new();
void lm_pkg_free(lm_pkg_t *pkg);
bool lm_pkg_data_load(lm_pkg_t *pkg, char *file);

View File

@ -1,6 +1,7 @@
#pragma once
#include "mptp.h"
#include "types.h"
#include <stdbool.h>
#include <sys/socket.h>
@ -13,8 +14,12 @@ typedef struct lm_pool_thread_arg {
lm_pool_t *lm_pool_new(char *name, char *url);
void lm_pool_test(lm_pool_t *pool);
bool lm_pool_info_load(lm_pool_t *pool, char *file);
void lm_pool_info_free(lm_pool_t *pool);
void lm_pool_free(lm_pool_t *pool);
void lm_pool_serve_thread(void *arg);
void lm_pool_serve(lm_pool_t *pool, lm_mptp_t *packet, int sock, struct sockaddr *addr);
bool lm_pool_add(lm_pool_t *pool, lm_pkg_t *pkg);
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);
void lm_pool_serve(lm_pool_t *pool, lm_mptp_t *packet, int sock, struct sockaddr *addr);
void lm_pool_serve_thread(void *arg);

View File

@ -3,6 +3,15 @@
#include <stdbool.h>
#include <stddef.h>
typedef struct lm_pkg {
struct lm_pkg *next;
char *name;
char *desc;
char **depends;
char *version;
size_t size;
} lm_pkg_t;
typedef struct lm_pool_info {
char *maintainer;
char *pubkey;
@ -14,6 +23,7 @@ typedef struct lm_pool {
struct lm_pool *next;
lm_pool_info_t info;
lm_url_t url;
lm_pkg_t *pkg;
bool available;
char *name;
} lm_pool_t;

View File

@ -14,3 +14,4 @@ bool is_letter(char c);
bool is_digit(char c);
bool copy_to_buffer(void *buffer, void *src, size_t size, ssize_t *total, ssize_t *used);
bool copy_from_buffer(void *dst, void *buffer, size_t size, ssize_t *total, ssize_t *used);
bool extract_archive(char *dst, char *src);