You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2007/03/22 20:33:47 UTC

svn commit: r521416 - in /tomcat/connectors/trunk/jk/native/common: jk_map.c jk_map.h

Author: mturk
Date: Thu Mar 22 12:33:46 2007
New Revision: 521416

URL: http://svn.apache.org/viewvc?view=rev&rev=521416
Log:
Added function to read a simple name=value property file without the syntax checks.

Modified:
    tomcat/connectors/trunk/jk/native/common/jk_map.c
    tomcat/connectors/trunk/jk/native/common/jk_map.h

Modified: tomcat/connectors/trunk/jk/native/common/jk_map.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_map.c?view=diff&rev=521416&r1=521415&r2=521416
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_map.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_map.c Thu Mar 22 12:33:46 2007
@@ -674,7 +674,7 @@
                             strncpy(to, m->names[i], remain);
                             *(to+remain)   = '.';
                             *(to+remain+1) = '\0';
-    
+
                             rc = jk_map_resolve_references(m, m->values[i], 0, depth+1, l);
                             if (rc == JK_FALSE) {
                                 break;
@@ -757,3 +757,78 @@
     }
     return rc;
 }
+
+int jk_map_load_property(jk_map_t *m, const char *str, jk_logger_t *l)
+{
+    int rc = JK_TRUE;
+    char buf[LENGTH_OF_LINE + 1];
+    char *prp = &buf[0];
+
+    if (strlen(str) > LENGTH_OF_LINE) {
+        jk_log(l, JK_LOG_WARNING,
+               "Line to long (%d > %d), ignoring entry",
+               strlen(str), LENGTH_OF_LINE);
+        return JK_FALSE;
+    }
+
+    strcpy(prp, str);
+    if (trim(prp)) {
+        char *v = strchr(prp, '=');
+        if (v) {
+            *v = '\0';
+            v++;
+            trim(prp);
+            trim(v);
+            if (strlen(v) && strlen(prp)) {
+                v = jk_pool_strdup(&m->p, v);
+                if (v) {
+                    jk_map_put(m, prp, v, NULL);
+                }
+                else {
+                    JK_LOG_NULL_PARAMS(l);
+                    rc = JK_FALSE;
+                }
+            }
+        }
+    }
+    return rc;
+}
+
+
+int jk_map_load_properties(jk_map_t *m, const char *f, time_t *modified, jk_logger_t *l)
+{
+    int rc = JK_FALSE;
+
+    if (m && f) {
+        struct stat statbuf;
+        FILE *fp;
+        if ((rc = stat(f, &statbuf)) == -1)
+            return JK_FALSE;
+#ifdef AS400
+        fp = fopen(f, "r, o_ccsid=0");
+#else
+        fp = fopen(f, "r");
+#endif
+
+        if (fp) {
+            char buf[LENGTH_OF_LINE + 1];
+            char *prp;
+
+            rc = JK_TRUE;
+
+            while (NULL != (prp = fgets(buf, LENGTH_OF_LINE, fp))) {
+                trim_prp_comment(prp);
+                if (*prp) {
+                    if ((rc = jk_map_load_property(m, prp, l)) == JK_FALSE)
+                        break;
+                }
+            }
+            fclose(fp);
+            if (modified)
+                *modified = statbuf.st_mtime;
+        }
+    }
+
+    return rc;
+}
+

Modified: tomcat/connectors/trunk/jk/native/common/jk_map.h
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_map.h?view=diff&rev=521416&r1=521415&r2=521416
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_map.h (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_map.h Thu Mar 22 12:33:46 2007
@@ -72,9 +72,13 @@
 
 void *jk_map_value_at(jk_map_t *m, int idex);
 
+int jk_map_load_property(jk_map_t *m, const char *str, jk_logger_t *l);
+
+int jk_map_load_properties(jk_map_t *m, const char *f, time_t *modified, jk_logger_t *l);
+
 /**
  *  Replace $(property) in value.
- * 
+ *
  */
 char *jk_map_replace_properties(jk_map_t *m, const char *value);
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org