Diff
Not logged in

Differences From Artifact [34c15c37b8]:

To Artifact [2dae113b30]:


1529
1530
1531
1532
1533
1534
1535










1536
1537
1538
1539
1540
1541
1542
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552







+
+
+
+
+
+
+
+
+
+







    #
    variable allowInsecureUri; # DEFAULT: false

    if {![info exists allowInsecureUri]} then {
      set allowInsecureUri false
    }

    #
    # NOTE: Emit diagnostic messages when the [::http::geturl] procedure is
    #       about to be called?
    #
    variable verboseGetUrl; # DEFAULT: false

    if {![info exists verboseGetUrl]} then {
      set verboseGetUrl false
    }

    #
    # NOTE: Is this HTTP request processor allowed to use plain HTTP if/when
    #       the server responds with an HTTP redirect location to an original
    #       URI that was HTTPS?  Otherwise, a script error will result.
    #
    variable allowInsecureRedirect; # DEFAULT: false

1728
1729
1730
1731
1732
1733
1734










1735
1736
1737
1738
1739
1740
1741
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761







+
+
+
+
+
+
+
+
+
+







  }

  if {![isEagle]} then {
    ###########################################################################
    ############################# BEGIN Tcl ONLY ##############################
    ###########################################################################

    #
    # NOTE: This procedure emits a message to the HTTP client log.  The string
    #       argument is the content of the message to emit.
    #
    proc pageLog { string } {
      catch {
        tclLog [appendArgs [pid] " : " [clock seconds] " : http : " $string]
      }
    }

    #
    # NOTE: This procedure was stolen from the "getEagle.tcl" script.  It is
    #       designed to emit a progress indicator while an HTTP request is
    #       being processed.  The channel argument is the Tcl channel where
    #       the progress indicator should be emitted.  The type argument is
    #       the single-character progress indicator.  The milliseconds
    #       argument is the number of milliseconds to wait until the next
1782
1783
1784
1785
1786
1787
1788






1789
1790
1791
1792
1793
1794
1795
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821







+
+
+
+
+
+








      #
      # NOTE: This variable is used to determine if plain HTTP is allowed if
      #       the "tls" package is not available.
      #
      variable allowInsecureUri

      #
      # NOTE: This variable is used to determine if a diagnostic message is
      #       emitted when [::http::geturl] is about to be called.
      #
      variable verboseGetUrl

      #
      # NOTE: This variable is used to determine if plain HTTP is allowed if
      #       an HTTP redirect response contains an HTTP URI and the original
      #       URI was HTTPS.
      #
      variable allowInsecureRedirect

1840
1841
1842
1843
1844
1845
1846









1847
1848
1849
1850
1851
1852
1853
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888







+
+
+
+
+
+
+
+
+







      #
      set redirectCount 0

      while {1} {
        #
        # NOTE: Issue the HTTP request now, grabbing the resulting token.
        #
        if {$verboseGetUrl} then {
          #
          # NOTE: Emit important diagnostic information related to this
          #       HTTP request here.  This may be enhanced in the future.
          #
          pageLog [appendArgs \
              "attempting to download URL \"" $uri \"...]
        }

        set token [eval [list ::http::geturl $uri] $args]

        #
        # NOTE: Grab the HTTP response code and data now as they are needed
        #       in almost all cases.
        #
        set code [::http::ncode $token]; set data [::http::data $token]