summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Adding couple functions to value objectDmitri Pal2012-10-173-1/+85
| | | | | | | | | The patch adds function to get the length of the concatenated value. It also adds a convenince print function that is convenint in debugging the values inside configuration object. Patch also add checkes for input values that can be passed by pointer.
* No need to copy file in configure any moreDmitri Pal2012-10-171-2/+1
| | | | File is copied from the test itself.
* Fix permission checking unit testStephen Gallagher2012-10-173-38/+159
| | | | | | | | | The unit test was broken. The wrong function was used. To make sure everything is correct I also added a convenience function to print the internals if the file context object. The unit test is fixed to use relative paths consitently. Also added nice statements at the beggining and the end of the unit test functions where they were missing.
* Update version numbers for ding-libs-0.2.91 releaseding_libs-0_2_91Jan Zeleny2012-05-153-13/+13
|
* Properly handle file permissions for ini_parse_ut startup_test()Stephen Gallagher2012-05-151-17/+6
|
* Fix issue when running make distcheckStephen Gallagher2012-05-154-12/+8
| | | | | | | | When running 'make distcheck', all files in the $srcdir are set to read-only, to ensure that the build does not modify the source. However, this broke our ability to test file permissions. We will now copy the file to the builddir and do the tests there, where we have control.
* Update version numbers for ding-libs 0.1.3 releaseStephen Gallagher2012-04-251-3/+3
|
* Bump version for 0.1.3 releaseStephen Gallagher2012-04-252-2/+2
|
* Ensure error_string() never returns NULLSumit Bose2012-04-251-1/+12
| | | | | | A Coverity check indicated that ther are platforms where strerror() will return NULL for unknown, e.g. negative error numbers. Chances are that these platforms will have problems with NULL arguments to printf() too.
* * Resolves: bug #735464 Fix the loop limit used to initialize the table ↵John Dennis2012-04-253-77/+182
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | directory, was based on count, now limited to segment_count. * Do not pre-allocate all buckets based on requested table size. This defeats the point of a dynamic hash table which adjusts it's memory usage depending upon the number of items it holds. Pre-allocation also runs afoul of the table contraction logic, if the table is pre-allocated to a large size it will subsequently try to compact it negating the pre-allocation. Now the initial allocation is restricted to one directory segment (i.e. table->segment_count == 1) * If the caller did not specify the directory_bits and segment_bits then compute them from the requested table size. The directory_size and segment_size must be powers of 2 to accmodate fast arithmetic. An optimal maximum number of buckets would be equal to the anticipated table size. If there were no collisions that would mean each item would be located in it's own bucket whose chain length is 1, the item would be immediatly found upon indexing into the bucket table. * There is a requirment there be at least one directory segment, however contract_table() failed to enforce this requirement. Add a check to enforce the requirement. * If hash_create() or hash_create_ex() failed it left the tbl parameter uninitialized but returned an error code. Now upon failure tbl is initialized to NULL as well as returning an error code. * Clean up how the directory and segment sizes were computed. It had been using a loop and shifting 1 bit at a time, now it shifts all the bits in one operation and assures at least one directory and segment are allocated. * In the event of an early exit from hash_create_ex() due to an error make sure all previously allocated resources are cleaned up by calling hash_destroy(). There was only one place this was missing. hash_destroy() blindly assumed the table had a directory, normally it would unless hash_destroy was called due to an early exit in hash_create_ex(). Modify hash_destroy() to check for the existence of the directory before cleaning up the directory contents. * Update the function documentation in dhash.h to explain each parameter of hash_create() and hash_create_ex(). * Enhance dhash_test.c - To output the random seed used to intialize the random number generator and add command line option to set the random seed. This permits recreating a failed test run. - Add command line parameter to set the initial table size. - Use proper string to long conversion routines when reading command line parameters (e.g. strtoul() instead of atoi()) - Add logic to make sure each test value is unique. * Add additional information to the debug output to show the computed directory_bits, segment_bits, sizes, etc. * Adjust the debug_level conditionals to be less verbose.
* Use right macroDmitri Pal2012-04-051-1/+1
| | | | Use correct macro instead of type casting.
* Add missing cleanup in unit testDmitri Pal2012-04-051-1/+23
|
* Add missing assertion macroDmitri Pal2012-04-051-0/+1
|
* Do not debug paddingDmitri Pal2012-04-051-0/+3
| | | | | | | | The header structure might contain padding to align data on the boundary of the word. It is unsafe to always print the header data as it might be uninitialized. I do not want to remove it as it might be handy some day so I prefer to #ifdef it.
* Exposing functionsDmitri Pal2012-04-053-2/+10
| | | | | This patch makes two internal functions resusable from different source modules.
* Initialize variables in loopsDmitri Pal2012-04-053-1/+8
| | | | | | | | | It occured to me that one of the issues that Coverity did not like (and I could not understand what it is complaining about) is related to intializing the variables in the loop. This patch adds initialization in the loops. Also there was an initialization missing in the ini_configobj.c
* Rename error print functionDmitri Pal2012-04-053-10/+6
| | | | | | | | | | All config file processing functions start with "ini_config". The only function that does not comply is ini_print_errors. We can't rename it since it is a part of the current active interface. I marked that function needs to be removed when we remove old interface and created a copy with the correct name. I also updated unit test accordingly.
* Tests for access and changesDmitri Pal2012-04-051-0/+283
| | | | | Patch adds two functions. One tests permissions, another validates if the file has changed or not.
* Function to check for changesDmitri Pal2012-04-052-2/+36
| | | | Added function to detect changes to the configuration file.
* Check access functionDmitri Pal2012-04-052-0/+110
| | | | | | Added check access constants and the check access function. The function is effectively copied from ini_metadata.c The flags are copied from ini_config.h
* Metadata collection is goneDmitri Pal2012-04-053-77/+76
| | | | | | | | | | | | After some more thinking I decided not to use metadata collection. It seems to be an overhead. Patch does following: * Replaces metadata collection in file context structure with standard file stats * Removes all operations against old metadata collection * Defines new flags for data to collect * Creates a function that consolidates common operations between open and reopen functions.
* Function to reopen fileDmitri Pal2012-04-052-0/+89
| | | | | This patch would allow to reopen file and create a new context based on the old one.
* Separate close and destroyDmitri Pal2012-04-053-12/+31
| | | | Allow closing file without destroying the context.
* Fix indentention in the switch statementDmitri Pal2012-04-051-11/+20
| | | | Spotted style violation.
* Test for all section merge modesDmitri Pal2012-04-051-13/+201
| | | | | | New test reads smerge.conf in all possible modes and compares the combined result with the sexpect.conf function.
* Test DETECT mode and use new fileDmitri Pal2012-04-051-7/+23
| | | | | | Patch adds smerge.conf file to the list of files to test and adds test for the DETECT mode for inidividual values.
* New test files for section mergeDmitri Pal2012-04-053-1/+680
| | | | | | | smerge.conf - test file sexpect.conf - file contains output of the smerge.conf processed in different merge modes for sections and values
* Return error in DETECT modeDmitri Pal2012-04-051-0/+11
| | | | | If in merge DETECT mode and there were no parsing errors return error if there were merge collisions.
* Refactor section processingDmitri Pal2012-04-051-9/+111
| | | | | | This patch adds functionality to respect merge section flags and to process section collisions differently dpending on these flags.
* Use section line numberDmitri Pal2012-04-051-2/+5
| | | | | Use section line number for error reporting about the section collisions.
* Enhance value processingDmitri Pal2012-04-051-49/+116
| | | | | | | | | This patch refactores the value processing function so that it can be used both in normal mode when velues need to be constrcuted and saved into the current section (po->sec) and in the merge mode when values are already constructed and need to be saved into a po->merge_sec.
* Preparing for merging sectionsDmitri Pal2012-04-051-0/+177
| | | | | | | | Patch implements three functions: * Function to detect a collision between two section names. * Function to empty section from all its keys * Function to add values one by one from one section to another.
* Change parse_error to use save_errorDmitri Pal2012-04-051-11/+12
| | | | | | * Changed parse_error to use save_error function created in previous commit. * Fixed comment to be more clear.
* Add save_error functionDmitri Pal2012-04-051-0/+28
| | | | Create a function to add error into error list.
* Add new vars to parse structureDmitri Pal2012-04-051-1/+13
| | | | | Adding new varibles to the internal parsing structure and initializing them.
* New merge flagsDmitri Pal2012-04-052-3/+12
| | | | | | | Adding "DETECT" merge modes. These modes would be useable for dry run cases to detect if there are any potential merge conflicts. Patch just defines new constans and adds input checks.
* New error codes and messagesDmitri Pal2012-04-052-9/+57
| | | | | | | | Patch consists of two parts: * Adding new constants for error messages to ini_configobj.h file * Making ini_print.c use this header file instead of the old one. Converting this to enums is tracked as a separate ticket.
* Fixing coverity issues 10078 & 10079Dmitri Pal2012-04-051-4/+6
| | | | | The fact that the other_test could return EOK on error was the actual problem.
* path_utils: path_concat should return empty string on ENOBUFSStephen Gallagher2012-03-083-15/+55
| | | | Also clean up the code a bit and add more comments
* INI: Silence compilation warningsJakub Hrozek2012-03-062-1/+1
| | | | | * Do not set ext_data parameter to NULL * include a private header to avoid implicit declarations
* path_utils: Handle "/" in path_concatStephen Gallagher2012-03-062-2/+19
|
* path_utils: handle off-by-one error in path_concat()Stephen Gallagher2012-03-062-5/+15
| | | | https://fedorahosted.org/sssd/ticket/1230
* Fixing dereferencing NULLDmitri Pal2011-11-172-2/+71
| | | | | | This is the issue found by Coverity. If the proprty is NULL but type is not there is dereferencing of the NULL veriable in the check.
* Coverity issue 10075Dmitri Pal2011-01-171-0/+11
| | | | | Previous fix was not complete. Secondary scan revealed other issues.
* Coverity issue 10042Dmitri Pal2011-01-171-0/+1
| | | | | | Previous fix was not complete. New scan revealed potential memory leak in case of coding error. Low severity but still a bug...
* Adding missing constDmitri Pal2011-01-031-1/+1
| | | | One liner to eliminate compilation warning.
* Freeing memory used for source dirDmitri Pal2011-01-031-2/+5
| | | | | | | | I decided not to redo the whole test. It would have been too much work. Just cleaned the code a bit and freed allocated memory. It is Coverity issue 10075.
* Free newly created value in case of errorDmitri Pal2011-01-031-0/+2
| | | | | | The newly created value object was not freed in case of an error. Coverity issue 10076.
* Initialize simple bufferDmitri Pal2011-01-031-5/+10
| | | | | | | | | Allocating simple buffer is not enough. It needs to be initialized with something. The patch does exactly this for the case when the empty comment string is represented by a NULL value in the function input variable. Coverity issue 10073.
* Initializing variables in testDmitri Pal2011-01-031-5/+5
| | | | | Addresses coverity issue 10048. Patch should apply to master and 0.1.x.