gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog libbase/URL.h server/sprite_ins...


From: Udo Giacomozzi
Subject: [Gnash-commit] gnash ChangeLog libbase/URL.h server/sprite_ins...
Date: Sat, 12 Jan 2008 12:48:07 +0000

CVSROOT:        /cvsroot/gnash
Module name:    gnash
Changes by:     Udo Giacomozzi <udog>   08/01/12 12:48:07

Modified files:
        .              : ChangeLog 
        libbase        : URL.h 
        server         : sprite_instance.cpp sprite_instance.h 

Log message:
        * libbase/URL.h: add set method for querystring
        * server/sprite_instance.{cpp,h}: implement GET and POST for 
          loadVariables()

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5384&r2=1.5385
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/URL.h?cvsroot=gnash&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.cpp?cvsroot=gnash&r1=1.442&r2=1.443
http://cvs.savannah.gnu.org/viewcvs/gnash/server/sprite_instance.h?cvsroot=gnash&r1=1.163&r2=1.164

Patches:
Index: ChangeLog
===================================================================
RCS file: /cvsroot/gnash/gnash/ChangeLog,v
retrieving revision 1.5384
retrieving revision 1.5385
diff -u -b -r1.5384 -r1.5385
--- ChangeLog   11 Jan 2008 18:35:49 -0000      1.5384
+++ ChangeLog   12 Jan 2008 12:48:06 -0000      1.5385
@@ -1,3 +1,9 @@
+2008-01-12 Udo Giacomozzi <address@hidden>
+
+       * libbase/URL.h: add set method for querystring
+       * server/sprite_instance.{cpp,h}: implement GET and POST for 
+         loadVariables()       
+
 2008-01-11 Sandro Santilli <address@hidden>
 
        * testsuite/generic-testrunner.sh: sleep a tenth (1/10)

Index: libbase/URL.h
===================================================================
RCS file: /cvsroot/gnash/gnash/libbase/URL.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- libbase/URL.h       13 Dec 2007 01:08:06 -0000      1.18
+++ libbase/URL.h       12 Jan 2008 12:48:06 -0000      1.19
@@ -86,6 +86,10 @@
        ///
        std::string querystring() const { return _querystring; }
 
+       /// Set the 'querystring' member of this URL to a new value
+  ///
+  void set_querystring(std::string value) { _querystring = value; } 
+
        /// Return the full absolute URL as a string.
        //
        /// TODO: make output operator and operator+ for strings

Index: server/sprite_instance.cpp
===================================================================
RCS file: /cvsroot/gnash/gnash/server/sprite_instance.cpp,v
retrieving revision 1.442
retrieving revision 1.443
diff -u -b -r1.442 -r1.443
--- server/sprite_instance.cpp  12 Jan 2008 11:04:33 -0000      1.442
+++ server/sprite_instance.cpp  12 Jan 2008 12:48:06 -0000      1.443
@@ -3934,20 +3934,58 @@
 }
 
 void 
-sprite_instance::loadVariables(const URL& url, short sendVarsMethod)
+sprite_instance::loadVariables(URL url, short sendVarsMethod)
 {
        // Check host security
        // will be done by LoadVariablesThread (down by getStream, that is)
        //if ( ! URLAccessManager::allow(url) ) return;
        
-       if ( sendVarsMethod )
+       std::string postdata = "";
+       
+       if ( sendVarsMethod )    // 1=GET, 2=POST
+       {
+       
+    typedef std::map<std::string, as_value> PropMap;
+    PropMap props;
+    dump_members(props);
+
+    std::string del = "";
+    std::string data = "";
+    
+    if ( sendVarsMethod == 1 ) {  // GET
+      if (url.querystring() != "")
+        del = "&";
+      else 
+        del = "?";
+    }
+    
+    for (PropMap::iterator i=props.begin(), e=props.end(); i!=e; ++i)
        {
-               log_unimpl(_("MovieClip.loadVariables() with GET/POST won't 
append vars for now"));
+      std::string name = i->first;
+      std::string value = url.encode(i->second.to_string());      
+            
+      // This is to filter movieclip properties from local variables. I am 
+      // sure there is a better way to do it [TODO]
+      if (name[0] == '_') continue;
+      if (name == "$version") continue;
+      
+      data += del + name + "=" + value;
+      
+      del = "&";
+        
+    }
+    
+    if ( sendVarsMethod == 1 )  // GET 
+      url.set_querystring(url.querystring() + data);
+    else
+    if ( sendVarsMethod == 2 )  // POST
+      postdata = data;
+       
        }
 
        try 
        {
-               _loadVariableRequests.push_back(new LoadVariablesThread(url));
+               _loadVariableRequests.push_back(new LoadVariablesThread(url, 
postdata));
                _loadVariableRequests.back()->process();
        }
        catch (NetworkException& ex)

Index: server/sprite_instance.h
===================================================================
RCS file: /cvsroot/gnash/gnash/server/sprite_instance.h,v
retrieving revision 1.163
retrieving revision 1.164
diff -u -b -r1.163 -r1.164
--- server/sprite_instance.h    2 Jan 2008 19:08:32 -0000       1.163
+++ server/sprite_instance.h    12 Jan 2008 12:48:07 -0000      1.164
@@ -594,7 +594,7 @@
        ///     If 1, GET will be used.
        ///     If 2, POST will be used.
        ///
-       void loadVariables(const URL& url, short sendVarsMethod=0);
+       void loadVariables(URL url, short sendVarsMethod=0);
 
        //
        // ActionScript support




reply via email to

[Prev in Thread] Current Thread [Next in Thread]