You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by am...@apache.org on 2011/03/15 21:04:53 UTC

svn commit: r1081921 - in /trafficserver/traffic/trunk/lib/tsconfig: Makefile.am TsBuilder.cc TsErrataUtil.cc test-1.tsconfig test-tsconfig.cc

Author: amc
Date: Tue Mar 15 20:04:53 2011
New Revision: 1081921

URL: http://svn.apache.org/viewvc?rev=1081921&view=rev
Log:
TS-708

Added:
    trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig
    trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc
Modified:
    trafficserver/traffic/trunk/lib/tsconfig/Makefile.am
    trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc
    trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc

Modified: trafficserver/traffic/trunk/lib/tsconfig/Makefile.am
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/Makefile.am?rev=1081921&r1=1081920&r2=1081921&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/Makefile.am (original)
+++ trafficserver/traffic/trunk/lib/tsconfig/Makefile.am Tue Mar 15 20:04:53 2011
@@ -17,11 +17,13 @@
 #  limitations under the License.
 
 noinst_LIBRARIES = libtsconfig.a
+noinst_PROGRAMS = test-tsconfig
 
 AM_YFLAGS = -d -p tsconfig
 
 AM_CPPFLAGS = \
-  -I$(top_srcdir)/lib
+  -I$(top_srcdir)/lib \
+  -fPIC
 
 BUILT_SOURCES = \
   TsConfigGrammar.c TsConfigGrammar.h TsConfigGrammar.hpp \
@@ -43,6 +45,10 @@ libtsconfig_a_SOURCES = \
   TsValue.cc \
   TsValue.h
 
+test_tsconfig_SOURCES = test-tsconfig.cc
+
+test_tsconfig_LDADD = libtsconfig.a
+
 # Strip to just the enum in the ts::config namespace so we can use
 # it more easily in C++.
 TsConfigGrammar.hpp: TsConfigGrammar.h

Modified: trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc?rev=1081921&r1=1081920&r2=1081921&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc (original)
+++ trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc Tue Mar 15 20:04:53 2011
@@ -39,6 +39,8 @@ size_t unescape_string(char* text, size_
     char* src = dst + 1; // skip escape char
     for ( *dst++ = *src++ ; src < limit ; ++src )
       if ('\\' != *src) *dst++ = *src;
+      else if (++src < limit) *dst++ = *src;
+      else *dst++ = '\\'; // trailing backslash.
     zret = dst - text;
   }
   return zret;
@@ -194,8 +196,8 @@ void Builder::literalValue(Token const& 
     } else if (STRING == token._type) {
         ++text._ptr, text._size -= 2;  // Don't include the quotes.
         text._size = unescape_string(text._ptr, text._size);
+        text._ptr[text._size] = 0; // OK because we have the trailing quote.
         cv = _v.makeString(text, _name);
-        token._s[token._n-1] = 0;
     } else {
         msg::logf(_errata, msg::WARN, PRE "Unexpected literal type %d.", token._type);
     }

Modified: trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc?rev=1081921&r1=1081920&r2=1081921&view=diff
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc (original)
+++ trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc Tue Mar 15 20:04:53 2011
@@ -147,21 +147,21 @@ logf_errno(Errata::Code code, char const
   Errata zret;
   va_list rest;
   va_start(rest, format);
-  return vlogf_errno(zret, Errata::Id(), code, format, rest);
+  return vlogf_errno(zret, 0, code, format, rest);
 }
 
 Errata
 logf_errno(Errata& errata, Errata::Code code, char const* format, ...) {
   va_list rest;
   va_start(rest, format);
-  return vlogf_errno(errata, Errata::Id(), code, format, rest);
+  return vlogf_errno(errata, 0, code, format, rest);
 }
 
 Errata
 logf_errno(RvBase& rv, Errata::Code code, char const* format, ...) {
     va_list rest;
     va_start(rest, format);
-    return vlogf_errno(rv._errata, Errata::Id(), code, format, rest);
+    return vlogf_errno(rv._errata, 0, code, format, rest);
 }
 // ------------------------------------------------------
 }} // namespace ts::msg

Added: trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig?rev=1081921&view=auto
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig (added)
+++ trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig Tue Mar 15 20:04:53 2011
@@ -0,0 +1,18 @@
+thing-1 = {
+  name = "0\12\\\345678\9";
+}
+
+list = (
+  {
+    prop1 = "Bob";
+    prop2 = "Dave";
+  },
+  {
+    prop1 = "Bobby";
+    prop2 = "Davy";
+  },
+  {
+    prop1 = "Robert";
+    prop2 = "David";
+  }
+)
\ No newline at end of file

Added: trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc?rev=1081921&view=auto
==============================================================================
--- trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc (added)
+++ trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc Tue Mar 15 20:04:53 2011
@@ -0,0 +1,29 @@
+# include "tsconfig/TsValue.h"
+# include <stdio.h>
+# include <iostream>
+
+using ts::config::Configuration;
+using ts::config::Value;
+
+inline std::ostream& operator << ( std::ostream& s, ts::ConstBuffer const& b ) {
+  if (b._ptr) s.write(b._ptr, b._size);
+  else s << b._size;
+  return s;
+}
+
+int main(int argc, char ** argv) {
+  printf("Testing TsConfig\n");
+  ts::Rv<Configuration> cv = Configuration::loadFromPath("test-1.tsconfig");
+  if (cv.isOK()) {
+    Value v = cv.result().find("thing-1.name");
+    if (v) {
+      std::cout << "thing-1.name = " << v.getText() << std::endl;
+    } else {
+      std::cout << "Failed to find 'name' in 'thing-1'" << std::endl;
+    }
+  } else {
+    std::cout << "Load failed" << std::endl
+              << cv.errata()
+      ;
+  }
+}



Re: svn commit: r1081921 - in /trafficserver/traffic/trunk/lib/tsconfig: Makefile.am TsBuilder.cc TsErrataUtil.cc test-1.tsconfig test-tsconfig.cc

Posted by Igor Galić <i....@brainsware.org>.

----- Original Message -----
> Author: amc
> Date: Tue Mar 15 20:04:53 2011
> New Revision: 1081921
> 
> URL: http://svn.apache.org/viewvc?rev=1081921&view=rev
> Log:
> TS-708
> 
> Added:
>     trafficserver/traffic/trunk/lib/tsconfig/test-1.tsconfig
>     trafficserver/traffic/trunk/lib/tsconfig/test-tsconfig.cc
> Modified:
>     trafficserver/traffic/trunk/lib/tsconfig/Makefile.am
>     trafficserver/traffic/trunk/lib/tsconfig/TsBuilder.cc
>     trafficserver/traffic/trunk/lib/tsconfig/TsErrataUtil.cc
> 
> Modified: trafficserver/traffic/trunk/lib/tsconfig/Makefile.am
> URL:
> http://svn.apache.org/viewvc/trafficserver/traffic/trunk/lib/tsconfig/Makefile.am?rev=1081921&r1=1081920&r2=1081921&view=diff
> ==============================================================================
> --- trafficserver/traffic/trunk/lib/tsconfig/Makefile.am (original)
> +++ trafficserver/traffic/trunk/lib/tsconfig/Makefile.am Tue Mar 15
> 20:04:53 2011
> @@ -17,11 +17,13 @@
>  #  limitations under the License.
>  
>  noinst_LIBRARIES = libtsconfig.a
> +noinst_PROGRAMS = test-tsconfig
>  
>  AM_YFLAGS = -d -p tsconfig
>  
>  AM_CPPFLAGS = \
> -  -I$(top_srcdir)/lib
> +  -I$(top_srcdir)/lib \
> +  -fPIC

This seems out of place here.
Shouldn't it depend on pic_mode?
Aside from that, -fPIC is non-portable either


But this isn't the only place where we can find it:

i.galic@panic ~/Projects/asf/trafficserver (svn)-[trunk:1081925] % ack -li 'fpic|fpie' **/* | sort -u
build/tcl.m4
configure.ac
lib/tsconfig/Makefile.am
test/plugin/Makefile.am
test/SDKtest/client/api/Makefile.am
test/SDKtest/synth_server/api/Makefile.am
tools/tsxs.in

However, we can ignore the .m4 and the .ac and the tsxs.in.
Given that test/ is outdated, this only leaves us with
lib/tsconfig/Makefile.am

i

-- 
Igor Galić

Tel: +43 (0) 664 886 22 883
Mail: i.galic@brainsware.org
URL: http://brainsware.org/