Exemplo n.º 1
0
static char *sig_to_msg(struct blk *blk, int save_path)
{
	static char msg[128];
	snprintf(msg, sizeof(msg),
		"%016"PRIX64 "%s%s",
		blk->fingerprint,
		bytes_to_md5str(blk->md5sum),
		save_path?bytes_to_savepathstr_with_sig(blk->savepath):"");
	return msg;
}
Exemplo n.º 2
0
int rblk_retrieve_data(const char *datpath, struct blk *blk)
{
    static char fulldatpath[256]="";
    static struct rblk *rblks=NULL;
    char *cp;
    unsigned int datno;
    struct rblk *rblk;

    snprintf(fulldatpath, sizeof(fulldatpath),
             "%s/%s", datpath, bytes_to_savepathstr_with_sig(blk->savepath));

//printf("x: %s\n", fulldatpath);
    if(!(cp=strrchr(fulldatpath, '/')))
    {
        logp("Could not parse data path: %s\n", fulldatpath);
        return -1;
    }
    *cp=0;
    cp++;
    datno=strtoul(cp, NULL, 16);
//printf("y: %s\n", fulldatpath);

    if(!rblks
            && !(rblks=(struct rblk *)
                       calloc_w(RBLK_MAX, sizeof(struct rblk), __func__)))
        return -1;

    if(!(rblk=get_rblk(rblks, fulldatpath)))
    {
        return -1;
    }

//	printf("lookup: %s (%s)\n", fulldatpath, cp);
    if(datno>rblk->readbuflen)
    {
        logp("dat index %d is greater than readbuflen: %d\n",
             datno, rblk->readbuflen);
        return -1;
    }
    blk->data=rblk->readbuf[datno].buf;
    blk->length=rblk->readbuf[datno].len;
//	printf("length: %d\n", blk->length);

    return 0;
}