aboutsummaryrefslogtreecommitdiffstats
path: root/mail/exim/files
diff options
context:
space:
mode:
authorkrion <krion@FreeBSD.org>2005-03-03 05:50:48 +0800
committerkrion <krion@FreeBSD.org>2005-03-03 05:50:48 +0800
commit9efff6bb4528b0dc676371068bd524bb53c809c5 (patch)
treeb73ba5fb9cb72c82d506f36dd0bb4b1c0591d388 /mail/exim/files
parentdce8402b157818f478e66a8f1003f09ee8bf78a1 (diff)
downloadfreebsd-ports-gnome-9efff6bb4528b0dc676371068bd524bb53c809c5.tar.gz
freebsd-ports-gnome-9efff6bb4528b0dc676371068bd524bb53c809c5.tar.zst
freebsd-ports-gnome-9efff6bb4528b0dc676371068bd524bb53c809c5.zip
Update to 4.50
* Remove WITH/WITHOUT_EXISCAN variable, since exiscan code was merged into exim-4.50 * Introduce two new variables: WITH_CONTENT_SCAN and WITH_OLD_DEMIME. * Enable WITH_OLD_DEMIME by default to preserve backward compatibility with deprecated "demime" ACL condition. For Exim itself, setting WITH_OLD_DEMIME forces WITH_CONTENT_SCAN to be set. * Remove POST-INSTALL-NOTES.exiscan-acl and xpatch-exiscan2 patches. * Add experimental-spec.txt into docs, to inform about experimental features. PR: ports/78168 Submitted by: krion Approved by: maintainer is currently MIA
Diffstat (limited to 'mail/exim/files')
-rw-r--r--mail/exim/files/POST-INSTALL-NOTES.exiscan-acl13
-rw-r--r--mail/exim/files/xpatch-exiscan2596
2 files changed, 0 insertions, 609 deletions
diff --git a/mail/exim/files/POST-INSTALL-NOTES.exiscan-acl b/mail/exim/files/POST-INSTALL-NOTES.exiscan-acl
deleted file mode 100644
index 2cd1fc11363c..000000000000
--- a/mail/exim/files/POST-INSTALL-NOTES.exiscan-acl
+++ /dev/null
@@ -1,13 +0,0 @@
-This installation of Exim includes Exiscan content scanning support,
-from http://duncanthrax.net/exiscan-acl/, which is documented in
-%%DOCSDIR%%/exiscan-acl-spec.txt. The ports tree
-includes various content scanners that might be useful, e.g.
-mail/p5-Mail-SpamAssassin and security/clamav.
-
-Notes for enabling malware scanning with the excellent clamd scanner
-are in %%DOCSDIR%%/POST-INSTALL-NOTES.clamd.
-
-When Exiscan is actually enabled in the Exim configure file, great
-care should be taken to test upgrades, since Exiscan updates tend
-to not maintain backward compatibility.
-
diff --git a/mail/exim/files/xpatch-exiscan2 b/mail/exim/files/xpatch-exiscan2
deleted file mode 100644
index 534f6b8dbc7b..000000000000
--- a/mail/exim/files/xpatch-exiscan2
+++ /dev/null
@@ -1,596 +0,0 @@
-diff -u scripts/MakeLinks scripts/MakeLinks
---- scripts/MakeLinks Sat Jul 17 11:12:00 2004
-+++ scripts/MakeLinks Sat Jul 17 11:34:48 2004
-@@ -187,7 +187,7 @@
- ln -s ../src/osfunctions.h osfunctions.h
- ln -s ../src/spam.h spam.h
- ln -s ../src/spf.h spf.h
--ln -s ../src/srs.h srs.h
-+ln -s ../src/srs.h srs.h
- ln -s ../src/store.h store.h
- ln -s ../src/structs.h structs.h
- ln -s ../src/tnef.h tnef.h
-diff -u src/expand.c src/expand.c
---- src/expand.c Sat Jul 17 11:12:00 2004
-+++ src/expand.c Sat Jul 17 11:37:42 2004
-@@ -454,8 +454,6 @@
- #endif
- { "spool_directory", vtype_stringptr, &spool_directory },
- #ifdef SRS
-- { "srs_db_address", vtype_stringptr, &srs_db_address },
-- { "srs_db_key", vtype_stringptr, &srs_db_key },
- { "srs_orig_recipient", vtype_stringptr, &srs_orig_recipient },
- { "srs_orig_sender", vtype_stringptr, &srs_orig_sender },
- { "srs_recipient", vtype_stringptr, &srs_recipient },
-diff -u src/globals.c src/globals.c
---- src/globals.c Sat Jul 17 11:12:00 2004
-+++ src/globals.c Sat Jul 17 11:38:52 2004
-@@ -987,9 +987,12 @@
- uschar *spool_directory = US SPOOL_DIRECTORY
- "\0<--------------Space to patch spool_directory->";
- #ifdef SRS
--uschar *srs_config = NULL;
--uschar *srs_db_address = NULL;
--uschar *srs_db_key = NULL;
-+BOOL srs_alwaysrewrite = FALSE;
-+int srs_hashlength = -1;
-+int srs_hashmin = -1;
-+int srs_maxage = -1;
-+uschar *srs_secrets = NULL;
-+uschar *srs_separator = NULL;
- uschar *srs_orig_recipient = NULL;
- uschar *srs_orig_sender = NULL;
- uschar *srs_recipient = NULL;
-diff -u src/globals.h src/globals.h
---- src/globals.h Sat Jul 17 11:12:00 2004
-+++ src/globals.h Sat Jul 17 11:43:06 2004
-@@ -596,13 +596,16 @@
- #endif
- extern uschar *spool_directory; /* Name of spool directory */
- #ifdef SRS
--extern uschar *srs_config; /* SRS config secret:max age:hash length:use timestamp:use hash */
--extern uschar *srs_db_address; /* SRS db address */
--extern uschar *srs_db_key; /* SRS db key */
--extern uschar *srs_orig_sender; /* SRS original sender */
--extern uschar *srs_orig_recipient; /* SRS original recipient */
--extern uschar *srs_recipient; /* SRS recipient */
--extern uschar *srs_status; /* SRS staus */
-+extern BOOL srs_alwaysrewrite; /* Rewrite for all domains */
-+extern int srs_hashlength; /* Hash length to generate */
-+extern int srs_hashmin; /* Hash length to check */
-+extern int srs_maxage; /* Max age for SRS address */
-+extern uschar *srs_secrets; /* List of SRS secrets */
-+extern uschar *srs_separator; /* Separator for SRS addresses */
-+extern uschar *srs_orig_sender; /* SRS original sender */
-+extern uschar *srs_orig_recipient; /* SRS original recipient */
-+extern uschar *srs_recipient; /* SRS recipient */
-+extern uschar *srs_status; /* SRS status */
- #endif
- extern int string_datestamp_offset;/* After insertion by string_format */
- extern BOOL strip_excess_angle_brackets; /* Surrounding route-addrs */
-diff -u src/readconf.c src/readconf.c
---- src/readconf.c Sat Jul 17 11:12:00 2004
-+++ src/readconf.c Sat Jul 17 11:44:21 2004
-@@ -325,7 +325,12 @@
- { "split_spool_directory", opt_bool, &split_spool_directory },
- { "spool_directory", opt_stringptr, &spool_directory },
- #ifdef SRS
-- { "srs_config", opt_stringptr, &srs_config },
-+ { "srs_alwaysrewrite", opt_bool, &srs_alwaysrewrite },
-+ { "srs_hashlength", opt_int, &srs_hashlength },
-+ { "srs_hashmin", opt_int, &srs_hashmin },
-+ { "srs_maxage", opt_int, &srs_maxage },
-+ { "srs_secrets", opt_stringptr, &srs_secrets },
-+ { "srs_separator", opt_stringptr, &srs_separator },
- #endif
- { "strip_excess_angle_brackets", opt_bool, &strip_excess_angle_brackets },
- { "strip_trailing_dot", opt_bool, &strip_trailing_dot },
-diff -u src/routers/redirect.c src/routers/redirect.c
---- src/routers/redirect.c Sat Jul 17 11:12:00 2004
-+++ src/routers/redirect.c Sat Jul 17 12:26:47 2004
-@@ -98,13 +98,7 @@
- (void *)offsetof(redirect_router_options_block, skip_syntax_errors) },
- #ifdef SRS
- { "srs", opt_stringptr,
-- (void *)offsetof(redirect_router_options_block, srs) },
-- { "srs_alias", opt_stringptr,
-- (void *)offsetof(redirect_router_options_block, srs_alias) },
-- { "srs_condition", opt_stringptr,
-- (void *)offsetof(redirect_router_options_block, srs_condition) },
-- { "srs_db", opt_stringptr,
-- (void *)offsetof(redirect_router_options_block, srs_db) },
-+ (void *)offsetof(redirect_router_options_block, srs) },
- #endif
- { "syntax_errors_text", opt_stringptr,
- (void *)offsetof(redirect_router_options_block, syntax_errors_text) },
-@@ -141,9 +135,6 @@
- NULL, /* owngroups */
- #ifdef SRS
- NULL, /* srs */
-- NULL, /* srs_condition */
-- NULL, /* srs_db */
-- NULL, /* srs_alias */
- #endif
- 022, /* modemask */
- RDO_REWRITE, /* bit_options */
-@@ -538,39 +532,33 @@
- ugid.gid_set = TRUE;
- }
-
--
- #ifdef SRS
- /* For reverse SRS, fill the srs_recipient expandsion variable,
- on failure, return decline/fail as relevant */
-
-- if(ob->srs != NULL)
-+if (ob->srs != NULL)
- {
-- BOOL usesrs = TRUE;
--
-- if(ob->srs_condition != NULL)
-- usesrs = expand_check_condition(ob->srs_condition, "srs_condition expansion failed", NULL);
--
-- if(usesrs)
-- if(Ustrcmp(ob->srs, "reverse") == 0 || Ustrcmp(ob->srs, "reverseandforward") == 0)
-- {
-- uschar *res;
-- int n_srs;
--
-- srs_orig_recipient = addr->address;
-- eximsrs_init();
-- if(ob->srs_db)
-- eximsrs_db_set(TRUE, ob->srs_db);
-- if((n_srs = eximsrs_reverse(&res, addr->address)) != OK)
-- return n_srs;
-- srs_recipient = res;
-- eximsrs_done();
-- DEBUG(D_any)
-- debug_printf("SRS: Recipient '%s' rewriteen to '%s'\n", srs_orig_recipient, srs_recipient);
-- }
-+ if (Ustrcmp(ob->srs, "reverse") == 0 || Ustrcmp(ob->srs, "reverseandforward") == 0)
-+ {
-+ uschar *res;
-+ int ret;
-+ DEBUG(D_route)
-+ debug_printf("SRS: (Forward) \n");
-+
-+ srs_orig_recipient = addr->address;
-+ eximsrs_init();
-+ ret = eximsrs_reverse(&res, addr->address);
-+ if (ret != OK)
-+ return ret;
-+ srs_recipient = res;
-+ eximsrs_done();
-+ DEBUG(D_route)
-+ debug_printf("SRS: Recipient '%s' rewritten to '%s'\n",
-+ srs_orig_recipient, srs_recipient);
-+ }
- }
- #endif
-
--
- /* Call the function that interprets redirection data, either inline or from a
- file. This is a separate function so that the system filter can use it. It will
- run the function in a subprocess if necessary. If qualify_preserve_domain is
-@@ -798,33 +789,23 @@
- #ifdef SRS
- /* On successful redirection, check for SRS forwarding and adjust sender */
-
-- if(ob->srs != NULL)
-+if (ob->srs != NULL)
- {
-- BOOL usesrs = TRUE;
--
-- if(ob->srs_condition != NULL)
-- usesrs = expand_check_condition(ob->srs_condition, "srs_condition expansion failed", NULL);
--
-- if(usesrs)
-- if((Ustrcmp(ob->srs, "forward") == 0 || Ustrcmp(ob->srs, "reverseandforward") == 0) && !verify)
-- {
-- uschar *res;
-- uschar *usedomain;
-- int n_srs;
--
-- srs_orig_sender = sender_address;
-- eximsrs_init();
-- if(ob->srs_db)
-- eximsrs_db_set(FALSE, ob->srs_db);
--
-- if(ob->srs_alias != NULL ? (usedomain = expand_string(ob->srs_alias)) == NULL : 1)
-- usedomain = deliver_domain;
--
-- if((n_srs = eximsrs_forward(&res, sender_address, usedomain)) != OK)
-- return n_srs;
-- sender_address = res;
-- DEBUG(D_any)
-- debug_printf("SRS: Sender '%s' rewritten to '%s'\n", srs_orig_sender, sender_address);
-+ if ((Ustrcmp(ob->srs, "forward") == 0 || Ustrcmp(ob->srs, "reverseandforward") == 0) && !verify )
-+ {
-+ uschar *res;
-+ int ret;
-+ DEBUG(D_route)
-+ debug_printf("SRS: (Forward) \n");
-+ srs_orig_sender = sender_address;
-+ eximsrs_init();
-+ ret = eximsrs_forward(&res, sender_address, deliver_domain);
-+ if (ret != OK)
-+ return ret;
-+ sender_address = res;
-+ DEBUG(D_route)
-+ debug_printf("SRS: Sender '%s' rewritten to '%s'\n",
-+ srs_orig_sender, sender_address);
- }
- }
- #endif
-diff -u src/routers/redirect.h src/routers/redirect.h
---- src/routers/redirect.h Sat Jul 17 11:12:00 2004
-+++ src/routers/redirect.h Sat Jul 17 11:55:47 2004
-@@ -33,9 +33,6 @@
-
- #ifdef SRS
- uschar *srs;
-- uschar *srs_condition;
-- uschar *srs_db;
-- uschar *srs_alias;
- #endif
-
- int modemask;
-diff -u src/srs.c src/srs.c
---- src/srs.c Sat Jul 17 11:12:00 2004
-+++ src/srs.c Sat Jul 17 12:28:31 2004
-@@ -5,205 +5,127 @@
- /* This file is an extension to Exim and is not part of the standard
- Exim distribution */
-
--/* (c)2004 Miles Wilton <miles@mirtol.com> */
-+/* (c) 2004 Shevek
-+ * Based on work by Miles Wilton <miles@mirtol.com>
-+ * Updated by Shevek to use libsrs2
-+ * Sorry Miles, I was in a roaring hurry, but we still need the
-+ * help!
-+ */
-
- /* License: GPL */
-
-+#include "exim.h"
-
- #ifdef SRS
-
--#include <srs_alt.h>
-+#include <srs2.h>
-
--#include "exim.h"
- #include "srs.h"
-
--srs_t *srs = NULL;
--uschar *srs_db_forward = NULL;
--uschar *srs_db_reverse = NULL;
-+#define SRS_WARN_UNLESS(x) do { \
-+ int __ret = (x); \
-+ if (__ret != SRS_SUCCESS) \
-+ DEBUG(D_any) \
-+ debug_printf("srs: %s\n", srs_strerror(__ret)); \
-+ } while(0)
-+
-+srs_t *srs = NULL;
-+
-+int
-+eximsrs_init()
-+{
-+ char sbuf[1024];
-+ uschar *list;
-+ int co;
-+
-+ char *secret;
-+
-+ if (srs == NULL) {
-+ srs = srs_new();
-+
-+ if (srs_secrets == NULL) {
-+ log_write(0, LOG_MAIN | LOG_PANIC,
-+ "SRS: No secrets specified");
-+ return DEFER;
-+ }
-+
-+ /* Get config */
-+ list = srs_secrets;
-+
-+ co = 0;
-+ while ((secret = string_nextinlist(&list, &co,
-+ sbuf, sizeof(sbuf))) != NULL) {
-+ SRS_WARN_UNLESS(srs_add_secret(srs, secret));
-+ }
-+
-+ SRS_WARN_UNLESS(srs_set_alwaysrewrite(srs, srs_alwaysrewrite));
-+ if (srs_hashlength != -1)
-+ SRS_WARN_UNLESS(srs_set_hashlength(srs, srs_hashlength));
-+ if (srs_hashmin != -1)
-+ SRS_WARN_UNLESS(srs_set_hashmin(srs, srs_hashmin));
-+ if (srs_maxage != -1)
-+ SRS_WARN_UNLESS(srs_set_maxage(srs, srs_maxage));
-+ if (srs_separator != NULL)
-+ SRS_WARN_UNLESS(srs_set_separator(srs, srs_separator[0]));
-+
-+ DEBUG(D_any)
-+ debug_printf("SRS initialised\n");
-+ }
-+
-+ return OK;
-+}
-+
-+int
-+eximsrs_done()
-+{
-+ if (srs != NULL)
-+ srs_free(srs);
-+ srs = NULL;
-+ return OK;
-+}
-+
-+int
-+eximsrs_forward(uschar **result, uschar *sender, uschar *domain)
-+{
-+ char res[1024];
-+ int ret;
-+
-+ ret = srs_forward(srs, res, sizeof(res), sender, domain);
-+ if (ret != SRS_SUCCESS) {
-+ DEBUG(D_any)
-+ debug_printf("srs_forward failed (%s, %s): %s\n",
-+ sender, domain, srs_strerror(ret));
-+ return DEFER;
-+ }
-+
-+ *result = string_copy(res);
-+ return OK;
-+}
-+
-+int
-+eximsrs_reverse(uschar **result, uschar *sender)
-+{
-+ char res[1024];
-+ int ret;
-+
-+ ret = srs_reverse(srs, res, sizeof(res), sender);
-+ if (ret != SRS_SUCCESS) {
-+ switch (SRS_ERROR_TYPE(ret)) {
-+ case SRS_ERRTYPE_CONFIG:
-+ /* This should never happen */
-+ return DEFER;
-+ case SRS_ERRTYPE_INPUT:
-+ /* This should never happen */
-+ return DEFER;
-+ case SRS_ERRTYPE_SYNTAX:
-+ return DECLINE;
-+ case SRS_ERRTYPE_SRS:
-+ return FAIL;
-+ }
-+ }
-
-+ *result = string_copy(res);
-
--/* srs_init just initialises libsrs and creates (if necessary)
-- an srs object to use for all srs calls in this instance */
--
--int eximsrs_init()
--{
-- int co;
-- uschar *list = srs_config;
-- char secret_buf[SRS_MAX_SECRET_LENGTH];
-- char *secret;
-- char sbuf[4];
-- char *sbufp;
-- int hashlen, maxage;
--
--
-- if(!srs)
-- {
-- // Check config
-- if(!srs_config)
-- {
-- log_write(0, LOG_MAIN | LOG_PANIC,
-- "SRS Configuration Error");
-- return DEFER;
-- }
--
-- // Get config
-- co = 0;
-- if((secret = string_nextinlist(&list, &co, secret_buf,
-- SRS_MAX_SECRET_LENGTH)) == NULL)
-- {
-- log_write(0, LOG_MAIN | LOG_PANIC,
-- "SRS Configuration Error: No secret specified");
-- return DEFER;
-- }
--
-- if((sbufp = string_nextinlist(&list, &co, sbuf, sizeof(sbuf))) == NULL)
-- maxage = 31;
-- else
-- maxage = atoi(sbuf);
-- if(maxage < 0 || maxage > 365)
-- {
-- log_write(0, LOG_MAIN | LOG_PANIC,
-- "SRS Configuration Error: Invalid maximum timestamp age");
-- return DEFER;
-- }
--
-- if((sbufp = string_nextinlist(&list, &co, sbuf, sizeof(sbuf))) == NULL)
-- hashlen = 6;
-- else
-- hashlen = atoi(sbuf);
-- if(hashlen < 1 || hashlen > 20)
-- {
-- log_write(0, LOG_MAIN | LOG_PANIC,
-- "SRS Configuration Error: Invalid hash length");
-- return DEFER;
-- }
--
--
-- if((srs = srs_open(secret, strnlen(secret, SRS_MAX_SECRET_LENGTH),
-- maxage, hashlen, hashlen)) == NULL)
-- {
-- log_write(0, LOG_MAIN | LOG_PANIC,
-- "Failed to allocate SRS memory");
-- return DEFER;
-- }
--
--
-- if((sbufp = string_nextinlist(&list, &co, sbuf, sizeof(sbuf))) != NULL)
-- srs_set_option(srs, SRS_OPTION_USETIMESTAMP, atoi(sbuf));
--
-- if((sbufp = string_nextinlist(&list, &co, sbuf, sizeof(sbuf))) != NULL)
-- srs_set_option(srs, SRS_OPTION_USEHASH, atoi(sbuf));
--
-- DEBUG(D_any)
-- debug_printf("SRS initialized\n");
-- }
--
-- return OK;
--}
--
--
--int eximsrs_done()
--{
-- if(srs)
-- srs_close(srs);
--
-- srs = NULL;
--
-- return OK;
--}
--
--
--int eximsrs_forward(uschar **result, uschar *orig_sender, uschar *domain)
--{
-- char res[512];
-- int n;
--
-- if((n = srs_forward(srs, orig_sender, domain, res, sizeof(res))) & SRS_RESULT_FAIL)
-- {
-- DEBUG(D_any)
-- debug_printf("srs_forward failed (%s, %s): %s\n", orig_sender, domain, srs_geterrormsg(n));
-- return DEFER;
-- }
--
-- *result = string_copy(res);
-- return OK;
--}
--
--
--int eximsrs_reverse(uschar **result, uschar *address)
--{
-- char res[512];
-- int n;
--
-- if((n = srs_reverse(srs, address, res, sizeof(res))) & SRS_RESULT_FAIL)
-- {
-- DEBUG(D_any)
-- debug_printf("srs_reverse failed (%s): %s\n", address, srs_geterrormsg(n));
-- if(n == SRS_RESULT_NOTSRS || n == SRS_RESULT_BADSRS)
-- return DECLINE;
-- if(n == SRS_RESULT_BADHASH || n == SRS_RESULT_BADTIMESTAMP || n == SRS_RESULT_TIMESTAMPEXPIRED)
-- return FAIL;
-- return DEFER;
-- }
--
-- *result = string_copy(res);
-- return OK;
-+ return OK;
- }
--
--
--int eximsrs_db_set(BOOL reverse, uschar *srs_db)
--{
-- if(reverse)
-- srs_db_reverse = string_copy(srs_db);
-- else
-- srs_db_forward = string_copy(srs_db);
--
-- if(srs_set_db_functions(srs, eximsrs_db_insert, eximsrs_db_lookup) * SRS_RESULT_FAIL)
-- return DEFER;
--
-- return OK;
--}
--
--
--srs_result eximsrs_db_insert(srs_t *srs, char *data, uint data_len, char *result, uint result_len)
--{
-- uschar *res;
-- char buf[64];
--
-- srs_db_address = string_copyn(data, data_len);
-- if(srs_generate_unique_id(srs, srs_db_address, buf, 64) & SRS_RESULT_FAIL)
-- return DEFER;
--
-- srs_db_key = string_copyn(buf, 16);
--
-- if((res = expand_string(srs_db_forward)) == NULL)
-- return SRS_RESULT_DBERROR;
--
-- if(result_len < 17)
-- return SRS_RESULT_DBERROR;
--
-- strncpy(result, srs_db_key, result_len);
--
-- return SRS_RESULT_OK;
--}
--
--
--srs_result eximsrs_db_lookup(srs_t *srs, char *data, uint data_len, char *result, uint result_len)
--{
-- uschar *res;
--
-- srs_db_key = string_copyn(data, data_len);
-- if((res = expand_string(srs_db_reverse)) == NULL)
-- return SRS_RESULT_DBERROR;
--
-- if(Ustrlen(res) >= result_len)
-- return SRS_RESULT_ADDRESSTOOLONG;
--
-- strncpy(result, res, result_len);
--
-- return SRS_RESULT_OK;
--}
--
--
- #endif
--
-diff -u src/srs.h src/srs.h
---- src/srs.h Sat Jul 17 11:12:00 2004
-+++ src/srs.h Sat Jul 17 11:58:51 2004
-@@ -5,28 +5,28 @@
- /* This file is an extension to Exim and is not part of the standard
- Exim distribution */
-
--/* ©2004 Miles Wilton <miles@mirtol.com> */
-+/* (c) 2004 Shevek
-+ * Based on work by Miles Wilton <miles@mirtol.com>
-+ * Updated by Shevek to use libsrs2
-+ * Sorry Miles, I was in a roaring hurry, but we still need the
-+ * help!
-+ */
-
- /* License: GPL */
-
- #ifndef __SRS_H__
--
- #define __SRS_H__ 1
-
--
- #ifdef SRS
-
- #include "mytypes.h"
--#include <srs_alt.h>
-+#include <srs2.h>
-
- int eximsrs_init();
- int eximsrs_done();
- int eximsrs_forward(uschar **result, uschar *orig_sender, uschar *domain);
- int eximsrs_reverse(uschar **result, uschar *address);
--int eximsrs_db(BOOL reverse, uschar *srs_db);
-
--srs_result eximsrs_db_insert(srs_t *srs, char *data, uint data_len, char *result, uint result_len);
--srs_result eximsrs_db_lookup(srs_t *srs, char *data, uint data_len, char *result, uint result_len);
-
- #endif
-