sparse-tools/include/blksync.h

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); } }
*/