summaryrefslogtreecommitdiff
path: root/common
AgeCommit message (Collapse)AuthorFilesLines
2010-01-21REFARRAY: New referenced array objectDmitri Pal9-2/+802
This object allows creation the arrays with the reference count. Usefull when there are many instances of some object have to reference dynamically allocated array which is common for all these instances. In case of ELAPI the event object keeps a referecne to the common array of the sinks in the fail over order. We decided that it will be a common object not specific only to ELAPI. All the review concerns related to this object have been addressed in this patch. It also has been moved to the common area.
2010-01-21INI: Added method to get string list with empty valuesDmitri Pal3-54/+117
The original implementation was compressing the list, throwing away empty strings. The function that did that was pretty brain damaging. I cleaned it up and adjusted so that it could return list with empty values and without them. The old function was turned into a wrapper and a new high level function was intorduced to provide ability to get both empty and non empty strings.
2010-01-21Use version.m4 for setting the SSSD versionStephen Gallagher1-1/+2
This is the preferred way of setting the version in a file, as autotools will properly monitor this file for changes and rerun autoconf/configure when necessary to update the version. This means that we don't need to manually perform an autoreconf in order to build a new RPM
2010-01-20Split off libdhash into a shared libraryStephen Gallagher5-9/+16
Right now, the pkg-config checks for the system version of libdhash are forcibly disabled, requiring the SSSD to build it from its own tree. In the future, when we split the libraries off from the SSSD, it will be easy to switch this check to the external library.
2010-01-20License libdhash under the LGPLStephen Gallagher3-0/+844
2009-12-15Add elapi_ut.conf to the list of dist filesSumit Bose2-3/+4
Some newlines are added, too.
2009-12-10INI Correcting build warnings.Dmitri Pal2-8/+7
The previous patch included "config.h" into the public header which caused all sorts of redefinitions and warnings.
2009-12-10INI: Cleaning FIXME comments.Dmitri Pal3-7/+16
Added configurable key length. Changed comments for the functions that are currently not used and reserved for future functionality.
2009-12-10COLLECTION: Cleaning FIXME commentsDmitri Pal3-20/+2
I scanned through the code and made sure that the FIXME comments are either addressed or a corresponding ticket exists. I removed two comments that had "FIXME" in them. The tickets for those comments are #72 and #308.
2009-12-10COLLECTION Create reference to the top level collectionDmitri Pal3-21/+47
This patch adds ability to create a reference to the top level collection. Previously one could get reference only to collection inside other collection. With this change it becomes possible to have two pointers to the same top level collection from multiple places. COLLECTION Adding comment. COLLECTION: Some tracing
2009-12-10COMMON Improvements to the trace macroDmitri Pal1-9/+15
Added more distingushable indication to the trace messages that represent errors.
2009-12-08Add comments to document latest changesSimo Sorce1-0/+7
2009-12-08dhash: Add private pointer for delete callbackSimo Sorce4-13/+35
Also pass a flag to the delete callback to tell it if this is a normal entry removal or we are cleaning up the tbale definitively.
2009-12-08Run dhash testsStephen Gallagher1-0/+2
Previously we were only building them but not running them.
2009-12-08Change dhash API to be talloc-friendlySimo Sorce3-39/+78
2009-12-01Revert "Remove ELAPI from build and tarball"Stephen Gallagher1-2/+3
This reverts commit 9a446ad6d6445ed22f0d5132a241a3c8be5e1008.
2009-12-01Revert "Stop configuring ELAPI"Stephen Gallagher1-1/+1
This reverts commit a7360aa07780133b77c7fa0ab629b5e660e1e49a.
2009-12-01Stop configuring ELAPIStephen Gallagher1-1/+1
2009-12-01Remove ELAPI from build and tarballStephen Gallagher1-3/+2
Until such time as ELAPI is in a usable state, it makes no sense to be building and distributing it in the tarball. This patch will disable it from building and inclusion in the tarball.
2009-10-29Clean up warnings in dhash testsStephen Gallagher2-9/+9
2009-10-16ELAPI Compatibility code for getifaddr()Dmitri Pal10-20/+357
Addreses ticket #94 Actually works pretty well. To try use --enable-compat when build ELAPI. It will use compatibility code instead of getifaddr(). The trick in the elapi_ioctl.h with memory allocation is taken from Stevens book.
2009-10-05ELAPI Fixed the host name resolutionDmitri Pal2-13/+111
The issue was that the host IP was recorded twice, once as a main address and another as IP alias. It seemed that the IP was returned as name but the issue turned out to be different. See https://fedorahosted.org/sssd/ticket/207.
2009-10-05ELAPI Rename variables and functions not to use word templateDmitri Pal7-113/+113
Addressing Ticket #191. Renamed all varibles from 'template' to 'tpl'. Used 'tplt' in function names instead of 'templete'.
2009-10-05INI Add config_from_fd() to ini_configStephen Gallagher3-22/+239
Patch adds ability to read configuration using already open file descriptor. Started by Steve G and refined a bit by me.
2009-10-05ELAPI Fixing warnings in the exampleDmitri Pal1-2/+9
2009-10-05ELAPI Resolving message attributeDmitri Pal8-57/+536
This patch continues work started with the previous patch. It resolves message attribute. Message attribute is a special attribute in the event that may contain references to other attributes in the event. When message is resolved the references are replaced with actual values of the referenced attributes.
2009-10-05ELAPI Event resolverDmitri Pal14-95/+828
Started working on the async processing and realised that I need to have a good copy of the event with all the fields resolved so this patch has some foundation for the async functions (module elapi_async.c) but they are mostly stubbed out. The actual code will be added down the road. Instead the patch focuses on the code introduced in elapi_resolve.c module and the use of the functions from it. It also adds the implementation of the high level calls that initialize ELAPI with the external callbacks to be used during async processing (elapi_log.c).
2009-10-05COLLECTION Enhancing hashing and iteration functionsDmitri Pal4-8/+76
2009-10-05COLLECTION Making iterations pinnableDmitri Pal4-7/+220
This is a feature that helps ELAPI. It makes lookup of the fields that need to be resolved for every event a bit faster. The idea is to be able to put a 'pin' into a specific place while iterating the collection and make this place a new "wrap around" place for the collection. This means that next time you iterate this collection you will start iterating from the next item and the item you got before pin will be last in your iteration cycle. Here is the example: Assume you have two collections that you need to compare and perform some action on collection 1 based on the presense of the item in collection 2. Collection1 = A, B, C, D, E. F Collection2 = A, C, F The usual approach is to try A from collection 1 against A, B, C from collection 2. "A" will be found right away. But to find "F" it has to be compared to "A" and "C" first. The fact that the collections are to some extent ordered can in some cases help to reduce the number of comparisons. If we found "C" in the list we can put a "pin" into the collection there causing the iterator to warp at this "pin" point. Since "D" and "E" are not in the second collection we will have to make same amount of comparisons in traditional or "pinned" case to not find them. To find "F" in pinned case there will be just one comparison. Traditional case = 1 + 3 + 2 + 3 + 3 + 3 = 15 Pinned case = 1 + 3 + 1 + 3 + 3 + 1 = 12 It is a 20% comparison reduction.
2009-10-05COLLECTION Realigning collection codeDmitri Pal4-330/+372
Created a new module to hold functions related to iterator and iterating collections. Planning to add new functions but the main collection module is already too big. So this patch just moves code around and fixes the build making foundation for the next patch.
2009-10-05COLLECTION Adding item comparison and sortingDmitri Pal7-5/+697
Needed item comparison functions and realized that the easiest way to test them would be using sorting. Since there already been a ticket #73 to do that I added function to sort collection based on different properties of the item. COLLECTION Fixing issues with comparisons COLLECTION Adding do-while to macro
2009-09-21ELAPI: Ticket 161: Initialize structures with calloc instead of enumerating ↵Jakub Hrozek5-36/+6
members
2009-09-21ELAPI: fix varargs call, update unit testsJakub Hrozek3-8/+58
2009-09-16ELAPI: Fix dispatcher structure initializationJakub Hrozek1-10/+1
2009-09-15Include m4 directories in tarballStephen Gallagher7-5/+20
Necessary for RPM builds on RHEL5
2009-09-15INI Error handling and interface cleanupDmitri Pal2-30/+86
Inspired by issue #173 I reviewed the other function of the interface and found a lot of problems with its error handling. Also made INI use collection public interfaces.
2009-09-11Add 'make tests' targetStephen Gallagher8-0/+21
2009-09-11ELAPI Better separation from collection internals.Dmitri Pal1-20/+24
This patch eliminates the need to include collection's private header and uses only public interface.
2009-09-11COLLECTION Functions to deal with hashDmitri Pal3-17/+71
The hashing logic was internal to the collection item. But if someone wants to effectively deal with the items and compare the property to a string he should compare hashes first. But it was not possible without the provided functions. As a result some of the ELAPI modules had to take advantage of knowledge of the item structure. This is bad. So this patch lays foundation for refactoring of the ELAPI code that was using internals of the item directly (file_util.c mostly). Also patch adds a unit test that was required for testing new functionality and for ticket #83
2009-09-10COLLECTION Improvements to copy functionsDmitri Pal4-51/+191
This patch adds better options for copying collections in flat mode. It allows caller of the interface to control prefixing of the fields when one collection is appended to another. It also avoids creating prefixes when the collection is simply copied in flat mode. Also for ELAPI I realized that the most efficient way to deal with the "resolved" event (event where all templeted values are actually replaced with the real values) is to add a callback capability to a copy collection function so that the callback can be used to modify the data (resolve it) while the copy operation is in progress. This approach eliminates the need for separate set of lookups after the event is already copied.
2009-09-09COLLECTION Copy collection flat with concatenated namesDmitri Pal5-239/+365
This patch addresses several issues: a) Adds capability to add or copy the collections in flattened mode but construct names of attributes in dotted notation. For example when you append collection "sub" with items "foo" and "bar" previously you could add them as "foo" and "bar" not you can flatten them and the names will be "sub.foo" and "sub.bar" this allows better processing of the attributes in the elapi message. b) Removes old implemntation of the copy collection function. c) Removes the col_set_timestamp, this functionality has been moved to ELAPI long ago. d) Updates collection unit test. e) Updates elapi to use new functionality f) Updates elapi unit test Have run under valgrind with no problems.
2009-09-08ELAPI Laying foundation for the async processingDmitri Pal6-90/+175
A relatively small patch aligning headers and a small portion of code for upcoming implementation of the async event processing. Cleanup of the test config file.
2009-09-08ELAPI Adding file provider and CSV formatDmitri Pal20-139/+2250
This patch creates the infrastructure for logging of the event from the top of the interface to the bottom. It is a start. A lot of functionality is left aside. The attempt of this patch is pass event from caller of the ELAPI interface via targets to sinks then to providers and do serialization creating entity that is ready to be written to a file. It also implements more specific provider related configuration parameters. Also it addresses couple suggestions that were brought up against previous patch. ELAPI Correcting issues This patch addresses the issues found during the review of the previous patches and addresses ticket #166.
2009-09-08ELAPI sinks and providersDmitri Pal9-143/+1016
This patch drills down to the next level of ELAPI functionality. I adds the creation and loading of the sinks. It also implements a skeleton for the first low level provider which will be capable of writing to a file. The configuration ini file is extended to define new configuration parameters and their meanings.
2009-09-03configure cleanupsSumit Bose5-5/+7
- replaced mailing list address - let sssd base components read version from VERSION
2009-08-21ELAPI Shortening namesDmitri Pal4-154/+152
Per ticket #118 shortened naimes of some functions and structs I added into ELAPI during last big functional patch . There is no plan to do a global shortening of all names but miving forward I will try to make them shorter than I used to.
2009-08-20COMMON Fixes to return values, errno, leaksDmitri Pal7-62/+69
Started looking at the ticket #107 related to traverse functions. Realized that the return values are not consistent. That ovelapped with the work that I wanted to do for ticket #103 - errno cleanup. So I (across collection, INI and ELAPI): * Made the return codes consistent (where found) * Removed errno where it is not needed While was testing used valgrind and found a nasty problem when the value was added to collection with overwriting duplicates the count was decreased improperly. Fixing collection.c to not decrease count made valgrind happy. While I was debugging this I also spotted several build warnings in trace statements when the " exp ? v1 : v2 " was used. Fixed those. In ini_config.c there was a trace stament that used variable after it was freed. Removed trace stament.
2009-08-20ELAPI: Adding concept of targetsDmitri Pal15-162/+899
The targets are the destinations which caller wants to send the events to. The sinks are now on the second level under targets and constitute a so called fail over chain for a target. Such approach eliminates the need for complex routing function. The dispatcher keeps the list of targets in a collection. The element in the collection is the target context. Also gispatcher keeps the list of the sinks in a separate collection. Each target context has a list of the sinks associated with this target. But those are just pointers (at least for now) to the sinks form the list kept by dispatcher. I had to add some internal debug callbacks to be able to see that all the internals of the dispatcher are actually in order. See the conttent of config file for more comments. Also see information posted on SSSD wiki. https://fedorahosted.org/sssd/wiki/WikiPage/ELAPIInterface
2009-08-17TRACE: Making sure trace is safe to output NULL stringsDmitri Pal2-99/+6
Patch adds checks for NULL to the trace macros. It also eliminates the unused trace.h in the collection directory.
2009-08-12ELAPI Next round of functionality - logging part of the interfaceDmitri Pal14-263/+1522
a) Added the main logging interface which allows creating dispatcher and logging messages or events. Can't actully log anything yet since the sinks are stubbed out. b) Made default template be a part of the default dispatcher. c) Updated UNIT test. d) Some of the calls are stubbed out but they are there to indicate where next round of work will be.