/*************************************************************************
* (C) 2010 AITNET ltd - Sofia/Bulgaria - <misho@aitbg.com>
* by Michael Pounov <misho@openbsd-bg.org>
*
* $Author: misho $
* $Id: aitsync.h,v 1.1 2010/03/24 16:00:15 misho Exp $
*
*************************************************************************/
#ifndef __AITSYNC_H
#define __AITSYNC_H
#include <sys/types.h>
#include <openssl/md5.h>
#define CHUNK_MAX 2048
#define DLTSYNC_MAGIC 0xD34DC0D3
#define SIGSYNC_MAGIC 0xDEADBEEF
typedef struct tagSyncChunk {
u_int sc_magic;
u_long sc_id;
off_t sc_off;
size_t sc_len;
u_int sc_roll;
u_char sc_cksum[MD5_DIGEST_LENGTH];
} sync_chunk_t;
// -------------------------------------------------------
// sync_GetErrno() Get error code of last operation
inline int sync_GetErrno();
// sync_GetError() Get error text of last operation
inline const char *sync_GetError();
// -------------------------------------------------------
/*
* syncSignature() Calculate and create signature for diff
* @csInput = Input patched file name for calculating check sums
* @csSig = Output Signature file name
* return: -1 error, 0 ok
*/
int syncSignature(const char *csInput, const char *csSig);
/*
* syncDelta() Create Delta patch file
* @csInput = Input original source file name for make delta patch file
* @csSig = Input Signature file name
* @csDelta = Output Delta patch file name
* @compress = Compress output, 0 not compressed
* return: -1 error, 0 ok, create delta patch, 1 ok, no differences and not create patch
*/
int syncDelta(const char *csInput, const char *csSig, const char *csDelta, int compress);
/*
* syncPatch() Apply delta patch file to target
* @csInput = Input target file name for patch
* @csDelta = Input Delta patch file name
* @csPatch = After applied patch create new alternate target file, if != NULL
* @compress = Compress output, 0 not compressed
* return: -1 error, 0 ok, create delta patch, 1 ok, no differences and not create patch
*/
int syncPatch(const char *csInput, const char *csDelta, const char *csPatch, int compress);
#endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>