Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleaned up logging and replaced sprintf with snprintf #9

Closed
wants to merge 2 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 19 additions & 18 deletions src/fts-backend-xapian-functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -537,8 +537,7 @@ static void fts_backend_xapian_oldbox(struct xapian_fts_backend *backend)
/* End Performance calculator*/

i_info("Done indexing '%s' (%d msgs in %d ms, rate: %.1f)",backend->oldbox,backend->perf_nb,dt,r);
i_free(backend->oldbox);
backend->oldbox=NULL;
i_free_and_null(backend->oldbox);
}
}

Expand All @@ -550,8 +549,7 @@ static int fts_backend_xapian_unset_box(struct xapian_fts_backend *backend)

if(backend->db != NULL)
{
i_free(backend->db);
backend->db = NULL;
i_free_and_null(backend->db);
}

if(backend->dbw !=NULL)
Expand Down Expand Up @@ -588,8 +586,8 @@ static int fts_backend_xapian_set_box(struct xapian_fts_backend *backend, struct
fts_mailbox_get_guid(box, &mb );

int l=strlen(backend->path)+strlen(mb)+5;
backend->db = (char *)i_malloc(l*sizeof(char));
sprintf(backend->db,"%s/db_%s",backend->path,mb);
backend->db = (char *)i_malloc(l);
snprintf(backend->db,l,"%s/db_%s",backend->path,mb);

backend->box = box;
backend->nb_updates=0;
Expand Down Expand Up @@ -630,16 +628,18 @@ static bool fts_backend_xapian_check_read(struct xapian_fts_backend *backend)
i_info("FTS Xapian: Tried to create an existing db '%s'",backend->db);
}
}

try
{
backend->dbr = new Xapian::Database(backend->db);
}
catch(Xapian::Error e)
{
i_error("FTS Xapian: Can not open RO index (%s) %s",backend->box->name,backend->db);
i_error("XapianError:%s",e.get_msg().c_str());
i_error("XapianError: %s",e.get_msg().c_str());
return false;
}

return true;
}

Expand All @@ -660,7 +660,7 @@ static bool fts_backend_xapian_check_write(struct xapian_fts_backend *backend)
catch(Xapian::Error e)
{
i_error("FTS Xapian: Can't open RW index (%s) %s",backend->box->name,backend->db);
i_error("XapianError:%s",e.get_msg().c_str());
i_error("XapianError: %s",e.get_msg().c_str());
return false;
}
return true;
Expand Down Expand Up @@ -717,7 +717,7 @@ XResultSet * fts_backend_xapian_query(Xapian::Database * dbx, XQuerySet * query,
}
catch(Xapian::Error e)
{
i_error("XapianError:%s",e.get_msg().c_str());
i_error("XapianError: %s",e.get_msg().c_str());
}
return set;
}
Expand All @@ -727,7 +727,7 @@ bool fts_backend_xapian_index_hdr(Xapian::WritableDatabase * dbx, uint uid, cons
try
{
XQuerySet xq(false);
char u[20]; sprintf(u,"%d",uid);
char u[20]; snprintf(u,20,"%d",uid);
xq.add("uid",u);
XResultSet *result=fts_backend_xapian_query(dbx,&xq,1);

Expand All @@ -736,7 +736,7 @@ bool fts_backend_xapian_index_hdr(Xapian::WritableDatabase * dbx, uint uid, cons
if(result->size<1)
{
doc.add_value(1,Xapian::sortable_serialise(uid));
sprintf(u,"Q%d",uid);
snprintf(u,20,"Q%d",uid);
doc.add_term(u);
docid=dbx->add_document(doc);
}
Expand All @@ -763,11 +763,12 @@ bool fts_backend_xapian_index_hdr(Xapian::WritableDatabase * dbx, uint uid, cons
XHeaderTerm xhs(p,f,strcmp(h,"XMID")==0);
xhs.add(data);

char *t = (char*)i_malloc(sizeof(char)*(xhs.maxlength+6));
int l=xhs.maxlength+6;
char *t = (char*)i_malloc(l);

for(int i=0;i<xhs.size;i++)
{
sprintf(t,"%s%s",h,xhs.data[i]);
snprintf(t,l,"%s%s",h,xhs.data[i]);
try
{
doc.add_term(t);
Expand All @@ -785,7 +786,7 @@ bool fts_backend_xapian_index_hdr(Xapian::WritableDatabase * dbx, uint uid, cons
catch(Xapian::Error e)
{
i_error("fts_backend_xapian_index_hdr (%s) -> %s",field,data);
i_error("XapianError:%s",e.get_msg().c_str());
i_error("XapianError: %s",e.get_msg().c_str());
}
return false;
}
Expand All @@ -795,7 +796,7 @@ bool fts_backend_xapian_index_text(Xapian::WritableDatabase * dbx,uint uid, cons
try
{
XQuerySet xq(false);
char u[20]; sprintf(u,"%d",uid);
char u[20]; snprintf(u,20,"%d",uid);
xq.add("uid",u);
XResultSet * result=fts_backend_xapian_query(dbx,&xq,1);

Expand All @@ -804,7 +805,7 @@ bool fts_backend_xapian_index_text(Xapian::WritableDatabase * dbx,uint uid, cons
if(result->size<1)
{
doc.add_value(1,Xapian::sortable_serialise(uid));
sprintf(u,"Q%d",uid);
snprintf(u,20,"Q%d",uid);
doc.add_term(u);
docid=dbx->add_document(doc);
}
Expand Down Expand Up @@ -837,7 +838,7 @@ bool fts_backend_xapian_index_text(Xapian::WritableDatabase * dbx,uint uid, cons
catch(Xapian::Error e)
{
i_error("fts_backend_xapian_index_text");
i_error("XapianError:%s",e.get_msg().c_str());
i_error("XapianError: %s",e.get_msg().c_str());
}
return false;
}
Expand Down Expand Up @@ -874,7 +875,7 @@ static int fts_backend_xapian_empty_db(const char *fpath, const struct stat *sb,
}
catch(Xapian::Error e)
{
i_error("XapianError:%s",e.get_msg().c_str());
i_error("XapianError: %s",e.get_msg().c_str());
}
}
return 0;
Expand Down
30 changes: 14 additions & 16 deletions src/fts-backend-xapian.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,35 +79,35 @@ static int fts_backend_xapian_init(struct fts_backend *_backend, const char **er
}
else
{
i_error("fts_xapian: Invalid setting: %s", *tmp);
i_error("FTS Xapian: Invalid setting: %s", *tmp);
return -1;
}
}
if(backend->partial<2)
{
i_error("fts_xapian: 'partial' can not be null (try partial=2)");
i_error("FTS Xapian: 'partial' can not be null (try partial=2)");
return -1;
}
if(backend->full<1)
{
i_error("fts_xapian: 'full' can not be null (try full=20)");
i_error("FTS Xapian: 'full' can not be null (try full=20)");
return -1;
}
if(backend->partial > backend->full)
{
i_error("fts_xapian: 'full' must be equal or greater than 'partial'");
i_error("FTS Xapian: 'full' must be equal or greater than 'partial'");
return -1;
}
if(backend->full > 50)
{
i_error("fts_xapian: 'full' above 50 is not realistic");
i_error("FTS Xapian: 'full' above 50 is not realistic");
return -1;
}

const char * path = mailbox_list_get_root_forced(_backend->ns->list, MAILBOX_LIST_PATH_TYPE_INDEX);
int l=strlen(path)+strlen(XAPIAN_FILE_PREFIX)+1;
backend->path = (char *)i_malloc((l+1)*sizeof(char));
sprintf(backend->path,"%s/%s",path,XAPIAN_FILE_PREFIX);
int l=strlen(path)+strlen(XAPIAN_FILE_PREFIX)+2;
backend->path = (char *)i_malloc(l);
snprintf(backend->path,l,"%s/%s",path,XAPIAN_FILE_PREFIX);

// i_info("FTS Xapian: Partial=%d, Full=%d DB_PATH=%s",backend->partial,backend->full,backend->path);

Expand All @@ -116,7 +116,7 @@ static int fts_backend_xapian_init(struct fts_backend *_backend, const char **er
{
if (mailbox_list_mkdir_root(backend->backend.ns->list, backend->path, MAILBOX_LIST_PATH_TYPE_INDEX) < 0)
{
i_error("fts_xapian: can not create '%s'",backend->path);
i_error("FTS Xapian: can not create '%s'",backend->path);
return -1;
}
}
Expand All @@ -131,10 +131,8 @@ static void fts_backend_xapian_deinit(struct fts_backend *_backend)

fts_backend_xapian_unset_box(backend);

if(backend->oldbox != NULL) i_free(backend->oldbox);
backend->oldbox = NULL;
if(backend->path != NULL) i_free(backend->path);
backend->path = NULL;
if(backend->oldbox != NULL) i_free_and_null(backend->oldbox);
if(backend->path != NULL) i_free_and_null(backend->path);

i_free(backend);
}
Expand All @@ -156,7 +154,7 @@ static int fts_backend_xapian_get_last_uid(struct fts_backend *_backend,

if(!fts_backend_xapian_check_read(backend))
{
i_error("FTX Xapian : get_last_uid: can not open DB %s",backend->db);
i_error("FTS Xapian: get_last_uid: can not open DB %s",backend->db);
return -1;
}

Expand All @@ -167,7 +165,7 @@ static int fts_backend_xapian_get_last_uid(struct fts_backend *_backend,
catch(Xapian::Error e)
{
i_error("fts_backend_xapian_get_last_uid %s",backend->box->name);
i_error("XapianError:%s",e.get_msg().c_str());
i_error("XapianError: %s",e.get_msg().c_str());
return -1;
}
i_info("Get last UID of %s = %d",backend->box->name,*last_uid_r);
Expand Down Expand Up @@ -221,7 +219,7 @@ static void fts_backend_xapian_update_expunge(struct fts_backend_update_context
try
{
char s[20];
sprintf(s,"Q%d",uid);
snprintf(s,20,"Q%d",uid);
backend->dbw->delete_document(s);
}
catch(Xapian::Error e)
Expand Down