summaryrefslogtreecommitdiffstats
path: root/runtime
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2010-10-01 12:32:01 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2010-10-01 12:32:01 +0200
commit9696cdef34f5d033564138fb9d4afb87daa6b1be (patch)
tree7a80fb698e32d171ce6dc16f9ecb196fc5c315b1 /runtime
parent0ee524c391d017225049542fffe572d7de7d1512 (diff)
downloadrsyslog-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.h4
-rw-r--r--runtime/hashtable/hashtable.c27
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.