gnash-commit
[Top][All Lists]
Advanced

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

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


From: Rob Savoye
Subject: [Gnash-commit] gnash libbase/URL.h libbase/URL.cpp ChangeLog
Date: Sat, 14 Jun 2008 22:12:15 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Rob Savoye <rsavoye>    08/06/14 22:12:15

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

Log message:
                * libbase/URL.h: Add method to return the port number, and 
another
                one to fix the hostname if there is a port number attached.
                * libbase/URL.cpp: Properly parse the optional port number 
instead
                of blindly adding it to the hostname.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/URL.h?cvsroot=gnash&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/gnash/libbase/URL.cpp?cvsroot=gnash&r1=1.44&r2=1.45
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.6931&r2=1.6932

Patches:
Index: libbase/URL.h
===================================================================
RCS file: /sources/gnash/gnash/libbase/URL.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- libbase/URL.h       5 May 2008 06:28:00 -0000       1.23
+++ libbase/URL.h       14 Jun 2008 22:12:13 -0000      1.24
@@ -63,6 +63,13 @@
        ///
        const std::string& hostname() const { return _host; }
 
+       /// Return the 'port' member of this URL, as a string
+       //
+       /// NOTE: return the empty string if the port isn't specified,
+        /// as this is an optional field.
+       ///
+       const std::string& port() const { return _port; }
+
        /// Return the 'path' member of this URL, as a string
        const std::string& path() const { return _path; }
 
@@ -156,6 +163,9 @@
        /// Extract anchor from path
        void split_anchor_from_path();
 
+       /// Extract tcp/ip port from path
+       void split_port_from_host();
+
        /// Extract and parse query string from path
        void split_querystring_from_path();
 
@@ -168,13 +178,10 @@
        void normalize_path(std::string& path);
 
        std::string _proto;
-
        std::string _host;
-
+       std::string _port;
        std::string _path;
-
        std::string _anchor;
-
        std::string _querystring;
 };
 

Index: libbase/URL.cpp
===================================================================
RCS file: /sources/gnash/gnash/libbase/URL.cpp,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -b -r1.44 -r1.45
--- libbase/URL.cpp     15 Feb 2008 21:07:20 -0000      1.44
+++ libbase/URL.cpp     14 Jun 2008 22:12:13 -0000      1.45
@@ -98,6 +98,9 @@
        // Extract anchor from path, if any
        split_anchor_from_path();
 
+       // Extract the port number from the hostname, if any
+       split_port_from_host();
+
        split_querystring_from_path();
 
        normalize_path(_path);
@@ -209,6 +212,7 @@
        {
                _proto = baseurl._proto;
                _host = baseurl._host;
+                _port= baseurl._port;
                _path = baseurl._path;
                _anchor = relative_url.substr(1);
                return;
@@ -300,6 +304,9 @@
 
                split_anchor_from_path();
 
+                // Extract the port number from the hostname, if any
+                split_port_from_host();
+
                split_querystring_from_path();
 
                normalize_path(_path);
@@ -312,7 +319,13 @@
 string
 URL::str() const
 {
-       string ret = _proto + "://" + _host + _path;
+        string ret = _proto + "://" + _host;
+       if ( _port != "" )
+       {
+               ret += ":" + _port;
+       }
+    
+        ret += _path;
        if ( _querystring != "" )
        {
                ret += "?" + _querystring;
@@ -341,6 +354,21 @@
 
 /*private*/
 void
+URL::split_port_from_host()
+{
+       assert(_port == "");
+
+       // Extract anchor from path, if any
+       string::size_type hashpos = _host.find(':');
+       if ( hashpos != string::npos )
+       {
+               _port = _host.substr(hashpos+1);
+               _host.erase(hashpos);
+       }
+}
+
+/*private*/
+void
 URL::split_querystring_from_path()
 {
        assert(_querystring == "");

Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.6931
retrieving revision 1.6932
diff -u -b -r1.6931 -r1.6932
--- ChangeLog   14 Jun 2008 17:49:19 -0000      1.6931
+++ ChangeLog   14 Jun 2008 22:12:14 -0000      1.6932
@@ -1,3 +1,10 @@
+2008-06-14  Rob Savoye  <address@hidden>
+
+       * libbase/URL.h: Add method to return the port number, and another
+       one to fix the hostname if there is a port number attached.
+       * libbase/URL.cpp: Properly parse the optional port number instead
+       of blindly adding it to the hostname.
+
 2008-03-14 Markus Gothe <address@hidden>
 
        * libnet/{handler, network, cque}.h: Added DSOEXPORT.




reply via email to

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