diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2010-10-01 12:32:01 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2010-10-01 12:32:01 +0200 |
commit | 9696cdef34f5d033564138fb9d4afb87daa6b1be (patch) | |
tree | 7a80fb698e32d171ce6dc16f9ecb196fc5c315b1 /runtime | |
parent | 0ee524c391d017225049542fffe572d7de7d1512 (diff) | |
download | rsyslog-9696cdef34f5d033564138fb9d4afb87daa6b1be.tar.gz rsyslog-9696cdef34f5d033564138fb9d4afb87daa6b1be.tar.xz rsyslog-9696cdef34f5d033564138fb9d4afb87daa6b1be.zip |
omhdfs: files now kept inside a hashtable for use by multiple actions
Note:compiles, but not yet tested
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/hashtable.h | 4 | ||||
-rw-r--r-- | runtime/hashtable/hashtable.c | 27 |
2 files changed, 30 insertions, 1 deletions
diff --git a/runtime/hashtable.h b/runtime/hashtable.h index b90781ab..0f980127 100644 --- a/runtime/hashtable.h +++ b/runtime/hashtable.h @@ -196,4 +196,6 @@ hashtable_destroy(struct hashtable *h, int free_values); * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ + */ +unsigned int hash_from_string(void *k) ; +int key_equals_string(void *key1, void *key2); diff --git a/runtime/hashtable/hashtable.c b/runtime/hashtable/hashtable.c index a10e3bc6..e2a2b3f4 100644 --- a/runtime/hashtable/hashtable.c +++ b/runtime/hashtable/hashtable.c @@ -241,6 +241,33 @@ hashtable_destroy(struct hashtable *h, int free_values) free(h); } +/* some generic hash functions */ + +/* one provided by Aaaron Wiebe based on perl's hashng algorithm + * (so probably pretty generic). Not for excessively large strings! + */ +unsigned int +hash_from_string(void *k) +{ + int len; + char *rkey = (char*) k; + unsigned hashval = 1; + + len = (int) strlen(rkey); + while (len--) + hashval = hashval * 33 + *rkey++; + + return hashval; +} + + +int +key_equals_string(void *key1, void *key2) +{ + return strcmp(key1, key2); +} + + /* * Copyright (c) 2002, Christopher Clark * All rights reserved. |