fix: TCP network issues
This commit is contained in:
@ -3,6 +3,7 @@
|
||||
#include "mptp.h"
|
||||
#include "pool.h"
|
||||
|
||||
#include <signal.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
typedef struct lm_ctx {
|
||||
@ -95,9 +96,9 @@ bool lm_ctx_check(
|
||||
lm_ctx_t *ctx, lm_entry_t *entry, 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, lm_ctx_serve_callback_t callback, void *data); // serves all the pools
|
||||
//
|
||||
bool lm_ctx_serve(lm_ctx_t *ctx, char *addr, uint8_t threads, __sighandler_t handler, lm_ctx_serve_callback_t callback,
|
||||
void *data); // serves all the pools
|
||||
|
||||
/* ##############################
|
||||
## temp directory fucntions ##
|
||||
############################## */
|
||||
|
@ -107,7 +107,7 @@ typedef struct lm_mptp_header {
|
||||
uint16_t flags;
|
||||
uint8_t host_size;
|
||||
uint8_t data_size;
|
||||
} lm_mptp_header_t;
|
||||
} __attribute__((packed)) lm_mptp_header_t;
|
||||
|
||||
typedef struct lm_mptp {
|
||||
lm_mptp_header_t header;
|
||||
@ -117,10 +117,10 @@ typedef struct lm_mptp {
|
||||
|
||||
typedef bool (*lm_mptp_transfer_callback_t)(char *path, size_t current, size_t total, void *data);
|
||||
|
||||
#define MPTP_FLAGS_VERSION(m) (((m)->header.flags & 0xFF00) >> 8)
|
||||
#define MPTP_FLAGS_TYPE(m) (((m)->header.flags & 0x0080) >> 1)
|
||||
#define MPTP_FLAGS_CODE(m) (((m)->header.flags & 0x0070) >> 4)
|
||||
#define MPTP_FLAGS_LAST(m) (((m)->header.flags & 0x0008) >> 3)
|
||||
#define MPTP_FLAGS_VERSION(m) (((m)->header.flags >> 8) & 0xFF)
|
||||
#define MPTP_FLAGS_TYPE(m) (((m)->header.flags >> 7) & 0x01)
|
||||
#define MPTP_FLAGS_CODE(m) (((m)->header.flags >> 3) & 0x0F)
|
||||
#define MPTP_FLAGS_LAST(m) (((m)->header.flags >> 2) & 0x01)
|
||||
|
||||
#define MPTP_IS_REQUEST(m) (MPTP_FLAGS_TYPE(m) == 0)
|
||||
#define MPTP_IS_LAST(m) (MPTP_FLAGS_LAST(m) == 1)
|
||||
@ -131,6 +131,7 @@ 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);
|
||||
bool lm_mptp_socket_opts(int sock);
|
||||
void lm_mptp_copy(lm_mptp_t *dst, lm_mptp_t *src);
|
||||
bool lm_mptp_verify(lm_mptp_t *packet);
|
||||
void lm_mptp_close(int sock);
|
||||
|
@ -8,6 +8,9 @@
|
||||
#include <stdio.h>
|
||||
|
||||
#define _(x) gettext(x)
|
||||
#define BINARY(b) \
|
||||
(b & 128 ? '1' : '0'), (b & 64 ? '1' : '0'), (b & 32 ? '1' : '0'), (b & 16 ? '1' : '0'), (b & 8 ? '1' : '0'), \
|
||||
(b & 4 ? '1' : '0'), (b & 2 ? '1' : '0'), (b & 1 ? '1' : '0')
|
||||
|
||||
bool contains(char *str, char s);
|
||||
bool eq(char *s1, char *s2);
|
||||
@ -33,6 +36,8 @@ bool package_version_valid(char *name);
|
||||
bool package_name_valid(char *name);
|
||||
|
||||
void pdebug(const char *func, const char *fmt, ...);
|
||||
void pdebug_binary(char *data, size_t len);
|
||||
|
||||
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);
|
||||
|
Reference in New Issue
Block a user