[gq-commit] gq/src filter.c,1.19,1.20 filter.h,1.3,1.4
Status: Beta
Brought to you by:
sur5r
From: <sta...@us...> - 2003-10-05 13:39:41
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv4616 Modified Files: filter.c filter.h Log Message: * Got rid of many, many fixed size buffers. These might have been problematic with variable length characters (as in the standard UTF-8 encoding) * Many object types now have constructors and destructors of the form new_<type> and free_<type>. Use them instead of self-allocating and freeing memory as it was done before. Removed all such old style object handling Index: filter.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/filter.c,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** filter.c 4 Oct 2003 09:59:09 -0000 1.19 --- filter.c 5 Oct 2003 13:39:35 -0000 1.20 *************** *** 51,54 **** --- 51,78 ---- + struct gq_filter *new_filter() + { + struct gq_filter *filter; + + filter = g_malloc0(sizeof(struct gq_filter)); + + filter->name = g_strdup(""); + filter->ldapfilter = g_strdup(""); + filter->servername = g_strdup(""); + filter->basedn = g_strdup(""); + + return(filter); + } + + void free_filter(struct gq_filter *filter) + { + g_free_if(filter->name); + g_free_if(filter->ldapfilter); + g_free_if(filter->servername); + g_free_if(filter->basedn); + g_free(filter); + } + + struct gq_filter *check_filtername(const char *filtername) { *************** *** 136,141 **** /* populate the new filter */ filter = new_filter(); ! strncpy(filter->name, filtername, MAX_FILTERNAME_LEN - 1); ! strncpy(filter->ldapfilter, filterstring, MAX_LDAPFILTER_LEN - 1); free(filterstring); --- 160,165 ---- /* populate the new filter */ filter = new_filter(); ! g_free_and_dup(filter->name, filtername); ! g_free_and_dup(filter->ldapfilter, filterstring); free(filterstring); *************** *** 146,154 **** searchbase = gtk_editable_get_chars(GTK_EDITABLE(GTK_COMBO(searchbase_combo)->entry), 0, -1); ! strncpy(filter->servername, servername, MAX_SERVERNAME_LEN - 1); ! strncpy(filter->basedn, searchbase, MAX_DN_LEN - 1); ! g_free(servername); ! g_free(searchbase); } --- 170,178 ---- searchbase = gtk_editable_get_chars(GTK_EDITABLE(GTK_COMBO(searchbase_combo)->entry), 0, -1); ! g_free_if(filter->servername); ! filter->servername = servername; ! g_free_if(filter->basedn); ! filter->basedn = searchbase; } *************** *** 462,466 **** /* delete from internal filterlist */ config->filters = g_list_remove(config->filters, filter); ! FREE(filter, "struct gq_filter"); save_config(); --- 486,490 ---- /* delete from internal filterlist */ config->filters = g_list_remove(config->filters, filter); ! free_filter(filter); save_config(); *************** *** 785,789 **** single_warning_popup(msg); g_free(flattened); ! FREE(filter, "struct gq_filter"); return; } --- 809,813 ---- single_warning_popup(msg); g_free(flattened); ! free_filter(filter); return; } *************** *** 793,800 **** /* populate internal struct */ ! strncpy(filter->name, filtername, MAX_FILTERNAME_LEN - 1); ! strncpy(filter->servername, servername, MAX_SERVERNAME_LEN - 1); ! strncpy(filter->basedn, basedn, MAX_DN_LEN - 1); ! strncpy(filter->ldapfilter, flattened, MAX_LDAPFILTER_LEN - 1); /* there's no filter_clist if we got here through the menu */ --- 817,824 ---- /* populate internal struct */ ! g_free_and_dup(filter->name, filtername); ! g_free_and_dup(filter->servername, servername); ! g_free_and_dup(filter->basedn, basedn); ! g_free_and_dup(filter->ldapfilter, flattened); /* there's no filter_clist if we got here through the menu */ *************** *** 856,875 **** /* change filtername in internal struct, and in the filter clist window */ ! strncpy(filter->name, filtername, MAX_FILTERNAME_LEN - 1); gtk_clist_set_text(GTK_CLIST(filter_clist), row, 0, filtername); } if(strncasecmp(filter->servername, servername, MAX_SERVERNAME_LEN)) { ! strncpy(filter->servername, servername, MAX_SERVERNAME_LEN - 1); gtk_clist_set_text(GTK_CLIST(filter_clist), row, 1, servername); } if(strncasecmp(filter->basedn, basedn, MAX_DN_LEN)) { ! strncpy(filter->basedn, basedn, MAX_DN_LEN - 1); gtk_clist_set_text(GTK_CLIST(filter_clist), row, 2, basedn); } if(strncasecmp(filter->ldapfilter, flattened, MAX_LDAPFILTER_LEN)) { ! strncpy(filter->ldapfilter, flattened, MAX_LDAPFILTER_LEN - 1); gtk_clist_set_text(GTK_CLIST(filter_clist), row, 3, flattened); } --- 880,899 ---- /* change filtername in internal struct, and in the filter clist window */ ! g_free_and_dup(filter->name, filtername); gtk_clist_set_text(GTK_CLIST(filter_clist), row, 0, filtername); } if(strncasecmp(filter->servername, servername, MAX_SERVERNAME_LEN)) { ! g_free_and_dup(filter->servername, servername); gtk_clist_set_text(GTK_CLIST(filter_clist), row, 1, servername); } if(strncasecmp(filter->basedn, basedn, MAX_DN_LEN)) { ! g_free_and_dup(filter->basedn, basedn); gtk_clist_set_text(GTK_CLIST(filter_clist), row, 2, basedn); } if(strncasecmp(filter->ldapfilter, flattened, MAX_LDAPFILTER_LEN)) { ! g_free_and_dup(filter->ldapfilter, flattened); gtk_clist_set_text(GTK_CLIST(filter_clist), row, 3, flattened); } Index: filter.h =================================================================== RCS file: /cvsroot/gqclient/gq/src/filter.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** filter.h 29 Sep 2003 19:24:16 -0000 1.3 --- filter.h 5 Oct 2003 13:39:35 -0000 1.4 *************** *** 37,47 **** struct gq_filter { ! char name[MAX_FILTERNAME_LEN]; ! char ldapfilter[MAX_LDAPFILTER_LEN]; ! char servername[MAX_SERVERNAME_LEN]; ! char basedn[MAX_DN_LEN]; }; ! struct gq_filter *check_filtername(const char *filtername); --- 37,48 ---- struct gq_filter { ! char *name; ! char *ldapfilter; ! char *servername; ! char *basedn; }; ! struct gq_filter *new_filter(void); ! void free_filter(struct gq_filter *filter); struct gq_filter *check_filtername(const char *filtername); |