Example #1
0
int manio_close(struct manio **manio)
{
	int ret=0;
//	int fd;
	if(!manio || !*manio) return ret;
	if(sort_and_write_hooks_and_dindex(*manio))
		ret=-1;
/*
	There is no gzfileno()
	if((fd=fzp_fileno((*manio)->fzp))<0)
	{
		logp("Could not get fileno in %s for %s: %s\n", __func__,
			(*manio)->manifest, strerror(errno));
		ret=-1;
	}
	if(fsync(fd))
	{
		logp("Error in fsync in %s for %s: %s\n", __func__,
			(*manio)->manifest, strerror(errno));
		ret=-1;
	}
*/
	if(fzp_close(&((*manio)->fzp)))
		ret=-1;
	sync();
	manio_free_content(*manio);
	free_v((void **)manio);
	return ret;
}
Example #2
0
int manio_free(struct manio **manio)
{
	int ret=0;
	if(!manio || !*manio) return ret;
	if(manio_free_content(*manio)) ret=-1;
	free_v((void **)manio);
	return ret;
}
Example #3
0
static int manio_init(struct manio *manio, const char *directory, const char *mode)
{
	if(manio_free_content(manio)) return -1;
	if(!(manio->directory=strdup_w(directory, __func__)))
		return -1;
	if(manio_set_mode(manio, mode)) return -1;
	manio_set_protocol(manio, PROTO_2);
	return 0;
}