--- libaitsync/src/patch.c 2011/05/09 14:36:33 1.2 +++ libaitsync/src/patch.c 2012/11/13 14:19:39 1.4 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: patch.c,v 1.2 2011/05/09 14:36:33 misho Exp $ +* $Id: patch.c,v 1.4 2012/11/13 14:19:39 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -12,7 +12,7 @@ terms: All of the documentation and software included in the ELWIX and AITNET Releases is copyrighted by ELWIX - Sofia/Bulgaria -Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 +Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 by Michael Pounov . All rights reserved. Redistribution and use in source and binary forms, with or without @@ -47,7 +47,16 @@ SUCH DAMAGE. #include "patch.h" -int sync_buildPatch(void * __restrict buf, u_int buflen, struct tagPiece ** __restrict arr) +/* + * sync_buildPatch() - Build patch from buffer to pieces array + * + * @buf = Input buffer + * @buflen = Buffer length + * @arr = Array from pieces + * return: -1 error, != -1 num pieces +*/ +int +sync_buildPatch(void * __restrict buf, u_int buflen, struct tagPiece ** __restrict arr) { void *pos; sync_chunk_t *prefix, *suffix; @@ -60,7 +69,7 @@ int sync_buildPatch(void * __restrict buf, u_int bufle a = malloc(sizeof(struct tagPiece)); if (!a) { - SETERR; + LOGERR; return -1; } else memset(a, 0, sizeof(struct tagPiece)); @@ -68,13 +77,15 @@ int sync_buildPatch(void * __restrict buf, u_int bufle for (pos = buf, i = 0; len && pos < buf + buflen; i++) { a = realloc(a, sizeof(struct tagPiece) * (i + 2)); if (!a) { - SETERR; + LOGERR; return -1; } else { memset(&a[i + 1], 0, sizeof(struct tagPiece)); - // printf("%d.prefix_pos=%p len=%d\n", i, pos, len); +#if 0 + printf("start: %d.prefix_pos=%p len=%d\n", i, pos, len); +#endif - // prefix chunk + /* prefix chunk */ prefix = pos; if (prefix->sc_magic != DLTSYNC_MAGIC) { if (a) { @@ -87,9 +98,11 @@ int sync_buildPatch(void * __restrict buf, u_int bufle pos += sizeof(sync_chunk_t); len -= sizeof(sync_chunk_t); } - // printf("%d.prefix=%p pos=%p len=%d\n", i, a[i].pfx, pos, len); +#if 0 + printf("prefix: %d.prefix=%p pos=%p len=%d\n", i, a[i].pfx, pos, len); +#endif - // data + /* data */ if (!len) { if (a) { free(a); @@ -101,9 +114,11 @@ int sync_buildPatch(void * __restrict buf, u_int bufle pos += prefix->sc_len; len -= prefix->sc_len; } - // printf("%d.data=%p pos=%p len=%d\n", i, a[i].buf, pos, len); +#if 0 + printf("data: %d.data=%p pos=%p len=%d\n", i, a[i].buf, pos, len); +#endif - // if find sync chunk + /* if find sync chunk */ if (len) { suffix = pos; if (SIGSYNC_MAGIC == suffix->sc_magic) { @@ -111,7 +126,9 @@ int sync_buildPatch(void * __restrict buf, u_int bufle pos += sizeof(sync_chunk_t); len -= sizeof(sync_chunk_t); } - // printf("%d.data=%p pos=%p len=%d\n", i, a[i].sfx, pos, len); +#if 0 + printf("suffix: %d.data=%p pos=%p len=%d\n", i, a[i].sfx, pos, len); +#endif } } }