79 lines
1.9 KiB
C
79 lines
1.9 KiB
C
//
|
|
// Created by haraldwolff on 07.08.22.
|
|
//
|
|
|
|
#pragma once
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
#include <unistd.h>
|
|
#include <stdarg.h>
|
|
#include <pthread.h>
|
|
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
#include <netdb.h>
|
|
|
|
#include <merkle.h>
|
|
|
|
|
|
|
|
#define error(e, msg, ...) { fprintf(stderr, msg, __VA_ARGS__); fflush(stderr); return e; }
|
|
#define fatal(msg, ...) { fprintf(stderr, msg, __VA_ARGS__ ); fflush(stderr); exit(EXIT_FAILURE); }
|
|
|
|
/*
|
|
|
|
int blksync_handshake(bsync_engine_t *engine);
|
|
|
|
int bs_recv(int socket, void *buffer, int size);
|
|
int bs_send(int socket, const void *buffer, int size);
|
|
int read_block(bsync_engine_t *engine, long offset, char *block, int blocksize);
|
|
int write_block(bsync_engine_t *engine, long offset, char *block, int blocksize);
|
|
|
|
int bs_receiver(bsync_engine_t *engine);
|
|
int bs_recv_linear(bsync_engine_t *engine);
|
|
int bs_recv_merkle(bsync_engine_t *engine);
|
|
|
|
int bs_sender(bsync_engine_t *engine);
|
|
int bs_send_linear(bsync_engine_t *engine);
|
|
int bs_send_merkle(bsync_engine_t *engine);
|
|
|
|
int bs_test(bsync_engine_t *engine);
|
|
|
|
int bs_merkle_build(bsync_engine_t *engine, merkle_t **merkle);
|
|
|
|
|
|
char* ntounit(long l, char *p);
|
|
void dump_engine(bsync_engine_t *engine);
|
|
int dump_engine_state(bsync_engine_t *engine);
|
|
|
|
void bs_time_set(bs_time_t* dst, int seconds);
|
|
|
|
static inline void assert(int r, char *msg) {
|
|
if (r < 0) {
|
|
if (msg)
|
|
fprintf(stderr, msg, r);
|
|
if (errno)
|
|
fprintf(stderr, "errno=%d %s", errno, strerror(errno));
|
|
fflush(stderr);
|
|
}
|
|
}
|
|
|
|
static inline char* format(char *msg, ...){
|
|
va_list val;
|
|
static char _msg[2048];
|
|
|
|
va_start(val, msg);
|
|
vsnprintf(_msg, sizeof(_msg), msg, val);
|
|
va_end(val);
|
|
return _msg;
|
|
}
|
|
|
|
#define assert_r(r, msg) { if (r<0) { assert(r, msg); return r; } }
|
|
#define assert_x(r, msg) { if (r<0) { assert(r, msg); exit(EXIT_FAILURE); } }
|
|
*/
|