[sr-dev] git:master: modules_k/domain: did column of domain table is by default NULL

admin at sip-router.org admin at sip-router.org
Tue Apr 3 15:25:08 CEST 2012


Module: sip-router
Branch: master
Commit: a12f916596057443ad8c5824af1a1d4e03cb7ce0
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=a12f916596057443ad8c5824af1a1d4e03cb7ce0

Author: Juha Heinanen <jh at tutpro.com>
Committer: Juha Heinanen <jh at tutpro.com>
Date:   Tue Apr  3 14:30:03 2012 +0300

modules_k/domain:  did column of domain table is by default NULL

- In order to make migration from 3.2 easier, allow did column of domain
  table to be NULL.  If NULL, value of did is assumed to be same as
  value of domain.

---

 lib/srdb1/schema/domain.xml           |    6 +++---
 modules_k/domain/README               |    3 ++-
 modules_k/domain/doc/domain_admin.xml |    4 +++-
 modules_k/domain/domain.c             |   33 +++++++++++++++++++--------------
 4 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/lib/srdb1/schema/domain.xml b/lib/srdb1/schema/domain.xml
index 7e6a6aa..83be326 100644
--- a/lib/srdb1/schema/domain.xml
+++ b/lib/srdb1/schema/domain.xml
@@ -39,9 +39,9 @@
         <name>did</name>
         <type>string</type>
         <size>&domain_len;</size>
-        <description>Domain id</description>
-        <default/>
-        <natural/>
+        <description>Domain id.  Value of did column may be NULL, which
+	means that it has the same value as domain column.</description>
+        <null/>
     </column>
 
     <column>
diff --git a/modules_k/domain/README b/modules_k/domain/README
index aa9bf2f..e57406e 100644
--- a/modules_k/domain/README
+++ b/modules_k/domain/README
@@ -174,7 +174,8 @@ modparam("domain", "domain_attrs_table", "local_domain_attributes")
 3.4. did_col (string)
 
    Name of column containing domain id (did) of domain in domain and
-   domain_attrs tables.
+   domain_attrs tables. In domain table, a did column value may be NULL,
+   which means that it has same value as domain column.
 
    Default value is “did”.
 
diff --git a/modules_k/domain/doc/domain_admin.xml b/modules_k/domain/doc/domain_admin.xml
index 9d89555..f11466e 100644
--- a/modules_k/domain/doc/domain_admin.xml
+++ b/modules_k/domain/doc/domain_admin.xml
@@ -102,7 +102,9 @@ modparam("domain", "domain_attrs_table", "local_domain_attributes")
 		<title><varname>did_col</varname> (string)</title>
 		<para>
 		Name of column containing domain id (did) of domain in domain
-		and domain_attrs tables.
+		and domain_attrs tables.  In domain table, a did column value
+		may be NULL, which means that it has same value as
+		domain column.
 		</para>
 		<para>
 		Default value is <quote>did</quote>.
diff --git a/modules_k/domain/domain.c b/modules_k/domain/domain.c
index 61e2b07..82d4b41 100644
--- a/modules_k/domain/domain.c
+++ b/modules_k/domain/domain.c
@@ -414,8 +414,8 @@ int reload_tables ( void )
     domain_dbf.free_result(db_handle, res);
     res = NULL;
 
-    cols[0] = &did_col;
-    cols[1] = &domain_col;
+    cols[0] = &domain_col;
+    cols[1] = &did_col;
     
     if (domain_dbf.use_table(db_handle, &domain_table) < 0) {
 	LM_ERR("error while trying to use domain table\n");
@@ -437,26 +437,31 @@ int reload_tables ( void )
 
 	if ((VAL_NULL(ROW_VALUES(row)) == 1) ||
 	    (VAL_TYPE(ROW_VALUES(row)) != DB1_STRING)) {
-	    LM_ERR("did at row <%u> is null or not string\n", i);
+	    LM_ERR("domain at row <%u> is null or not string\n", i);
 	    goto err;
 	}
-	did.s = (char *)VAL_STRING(ROW_VALUES(row));
-	did.len = strlen(did.s);
-	if (did.len == 0) {
-	    LM_ERR("did at row <%u> is empty string\n", i);
+	domain.s = (char *)VAL_STRING(ROW_VALUES(row));
+	domain.len = strlen(domain.s);
+	if (domain.len == 0) {
+	    LM_ERR("domain at row <%u> is empty string\n", i);
 	    goto err;
 	}
 
-	if ((VAL_NULL(ROW_VALUES(row) + 1) == 1) ||
+	if ((VAL_NULL(ROW_VALUES(row) + 1) != 1) &&
 	    (VAL_TYPE(ROW_VALUES(row) + 1) != DB1_STRING)) {
-	    LM_ERR("domain at row <%u> is null or not string\n", i);
+	    LM_ERR("did at row <%u> is not null or string\n", i);
 	    goto err;
 	}
-	domain.s = (char *)VAL_STRING(ROW_VALUES(row) + 1);
-	domain.len = strlen(domain.s);
-	if (domain.len == 0) {
-	    LM_ERR("domain at row <%u> is empty string\n", i);
-	    goto err;
+	if (VAL_NULL(ROW_VALUES(row) + 1) == 1) {
+	    did.s = domain.s;
+	    did.len = domain.len;
+	} else {
+	    did.s = (char *)VAL_STRING(ROW_VALUES(row) + 1);
+	    did.len = strlen(did.s);
+	    if (did.len == 0) {
+		LM_ERR("did at row <%u> is empty string\n", i);
+		goto err;
+	    }
 	}
 
 	LM_INFO("inserting <did/domain> = <%s/%s> into hash table\n",




More information about the sr-dev mailing list