gnash-commit
[Top][All Lists]
Advanced

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

[Gnash-commit] gnash server/asobj/SharedObject.cpp ChangeLog


From: Rob Savoye
Subject: [Gnash-commit] gnash server/asobj/SharedObject.cpp ChangeLog
Date: Fri, 21 Dec 2007 00:56:07 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Rob Savoye <rsavoye>    07/12/21 00:56:07

Modified files:
        server/asobj   : SharedObject.cpp 
        .              : ChangeLog 

Log message:
                * server/asobj/SharedObject.cpp: Use the domain name as part of 
the
                path for the .sol files. This avoids name collision.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/server/asobj/SharedObject.cpp?cvsroot=gnash&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5236&r2=1.5237

Patches:
Index: server/asobj/SharedObject.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/asobj/SharedObject.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- server/asobj/SharedObject.cpp       20 Dec 2007 21:50:09 -0000      1.17
+++ server/asobj/SharedObject.cpp       21 Dec 2007 00:56:06 -0000      1.18
@@ -21,6 +21,10 @@
 #include "config.h"
 #endif
 
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
 #include "amf.h"
 #include "sol.h"
 #include "SharedObject.h"
@@ -47,6 +51,10 @@
 
 namespace gnash {
 
+#ifndef MAXHOSTNAMELEN
+#define MAXHOSTNAMELEN 64
+#endif
+
 as_value sharedobject_clear(const fn_call& fn);
 as_value sharedobject_flush(const fn_call& fn);
 as_value sharedobject_getlocal(const fn_call& fn);
@@ -198,10 +206,7 @@
     PropsSerializer props(sol, vm);
     ptr->visitPropertyValues(props);
     // We only want to access files in this directory
-    string newspec = rcfile.getSOLSafeDir();
-    if (newspec.size() == 0) {
-        newspec = "./";
-    }
+    string newspec; 
     newspec += obj->getFilespec();
     sol.writeFile(newspec, obj->getObjectName().c_str());
     
@@ -239,7 +244,35 @@
     if (newspec.size() == 0) {
         newspec = "./";
     } 
+    
+    char *domain;
+    domain = new char[MAXHOSTNAMELEN+1];
+    memset(domain, 0, MAXHOSTNAMELEN+1);
+//     if (getdomainname(domain, MAXHOSTNAMELEN) == -1) {
+//         log_error("Couldn't get domain name! %s", strerror(errno));
+//     }
+
+
+    string url_s;
+    const URL& baseurl = get_base_url();
+    URL url(url_s, baseurl);
+    log_msg(_("BASE URL=%s (%s)"), baseurl.str().c_str(), 
url.hostname().c_str());
+    
+    if (url.hostname().size() == 0) {
+        strcpy(domain, "localhost");
+    }
+    
+    newspec += domain;
+    int ret = mkdir(newspec.c_str(), S_IRUSR|S_IWUSR|S_IXUSR);
+    newspec += "/";
+    if ((errno != EEXIST) && (ret != 0)) {
+        log_error("Couldn't create directory for .sol files: %s\n\t%s",
+                  newspec.c_str(), strerror(errno));
+        return as_value(false);
+    }
+    
     newspec += obj->getFilespec();
+    obj->setFilespec(newspec);
     log_security("Opening SharedObject file: %s", newspec.c_str());    
 
     SOL sol;

Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5236
retrieving revision 1.5237
diff -u -b -r1.5236 -r1.5237
--- ChangeLog   21 Dec 2007 00:55:23 -0000      1.5236
+++ ChangeLog   21 Dec 2007 00:56:07 -0000      1.5237
@@ -1,3 +1,8 @@
+2007-12-20  Rob Savoye  <address@hidden>
+
+       * server/asobj/SharedObject.cpp: Use the domain name as part of the
+       path for the .sol files. This avoids name collision.
+       
 2007-12-20 Sandro Santilli <address@hidden>
 
        * libbase/LoadThread.h: add warnings about getBytesTotal() use




reply via email to

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