| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
The patch contains two major pieces of work:
* The beginning of the new INI interface
significantly re-thought and reworked.
* The implementation of the file object.
Parsing was adjusted to use this object.
|
|
|
|
|
|
|
|
|
|
| |
I realized that the new high level interface should be
defined in one file instead of being scattered in many headers.
I would have to eventuallu eliminate ini_configobj.h too
and move everything to the new interface in ini_config.h.
This patch renames couple functions to be consistent
with the naming convention and removes ini_parse.h header.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The parser is added to the existing module.
The old parsing functuion will be removed when we
switch to the new interface.
Parser logic:
* There is one high level function that wraps the
parser interface. It is at the bottom of the module.
ini_parse_config();
* Internally it creates a perser object
and then runs parser on it.
* At the end parser object is destroyed.
* This object stores the state of the parser.
* The parser has an action queue
* There are several actions that parser can perform
- read line
- inspect read line
- record an error
- process last comment in the file (POST)
* Each action handler determines what to do next
depending upon what has happened.
* Read handler reads lines and enqueues inspection action
in case of success or error action in case of failure.
* Inspection action parses last read line and
treats it either is a:
* Comment
* Section
* New key + value
* Continuation of the value
In case of error the error action is enqueued.
* Error can be fatal or non fatal. It depend on the error_level
flag passed in. If the error is non fatal the read action is
enqueued otherwise parser stops.
* The POST action is a special action to handle comment at
the bottom of the file. The comment is stored with the
value it preceeds so in case there is a comment at
the bottom of the file a special value needs to be created
to hold just the comment.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Value object is an object that combines
a potentially multiline value
comment and some statistical information
regarding a configuration value.
Patch includes:
Source
Header
Unit test
Makefile changes
|
|
|
|
|
|
|
|
|
| |
Comment object will store
the comments found in the INI file.
It is based on the ref_array
interface.
Fixing review comments for comment obj.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Time came to split ini_config.c
into many much smaller pieces.
1) ini_parse.c - will have parsing functions
2) ini_get_value.c - will have single value
interpretation functions
3) ini_get_array.c - will have array interpretation
functions.
4) ini_print.c - error printing
5) ini_defines.h - common constants
6) ini_parse.h header for parsing functions
7) ini_list.c - will have list processing functions
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch:
1) Adds the definition of the metadata interface
to the header file. The functions that were exposed
for no good reason are now hidden.
2) Previously exposed functions and their descriptions
are removed from the public header and placed into
the source code for now.
3) The function that reads the config file no longer
tries to close file in case of error.
4) Lines collection is still passed in into the reading
function but as a collection itself not as a pointer
to it.
5) All the parts related to processing lines are currently
ifdefed using HAVE_VALIDATION that is currently is not defined.
This is done to disable creation of the lines collection
utill it is actually needed. I did not want to blindly remove
it though and loose already done work that will be useful
in future.
6) Version of the library and interface is updated
7) New header and source modules are introduced to hold functions
related to the meta data. They are mostly stubbed out.
This is incomplete patch. It builds and make check runs.
It is created just to simplify the review a bit.
|
| |
|
| |
|
|
|
|
| |
Necessary for RPM builds on RHEL5
|
| |
|
|
|
|
|
| |
Also adds support for running ini_config_ut under a parallel build
directory.
|
|
|
|
|
|
| |
Previously, only the SSSD server components were being built with
compile-time warnings enabled. This patch will ensure that all
components in common and sss_client are also built the same way.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LT_INIT is supported only on Libtool >= 2.0, so I reverted it to
using AC_PROG_LIBTOOL.
Also reorganized how the common libraries were being built. Now
they are treated as libtool convenience libraries instead of
installable libraries (the --with-singlelib configure flag can
still be used to generate a combined, installable DSO)
I cleaned up the set of files being installed by automake, so the
list of things we need to remove before packaging the RPM is now
only the .la files associated with our own plugins.
|
| |
|
|
|
|
|
|
| |
Allow configuration and build of individual SSSD utility libraries
from their own subdirectories. Building all utilities is still
possible recursively from the common root.
|
|
|
|
|
|
| |
We were missing several BuildRequires for the autotools. Also, we
were linking against two external libraries in the common code
that we do not actually use.
|
|
|
|
|
|
|
|
|
| |
Allows building shared or static libraries using autotools and
provides a pkg-config file to simplify inclusion into other parts
of the project (or other projects in the future)
For now, we will statically link the collection library and INI
parser.
|
|
|
|
|
|
| |
Adds ini subdirectory so it will be built, adds some clarification
to the README, makes the configure --help more clear about the
trace level and enables -Wall reporting.
|
|
|