<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/84f97ca201c6705d0b8e4d73e8566b76c7ff2a3c">https://github.com/macports/macports-base/commit/84f97ca201c6705d0b8e4d73e8566b76c7ff2a3c</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 84f97ca  pextlib       : Support custom HTTP headers
</span>84f97ca is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 84f97ca201c6705d0b8e4d73e8566b76c7ff2a3c
</span>Author: Chris Jones <jonesc@hep.phy.cam.ac.uk>
AuthorDate: Wed Aug 15 16:47:25 2018 +0100

<span style='display:block; white-space:pre;color:#404040;'>    pextlib       : Support custom HTTP headers
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    portlivecheck : Add new livecheck.curloptions option. Default is :-
</span><span style='display:block; white-space:pre;color:#404040;'>    {{ "--append-http-header"
</span><span style='display:block; white-space:pre;color:#404040;'>       "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" }}
</span>---
 src/pextlib1.0/curl.c         | 27 +++++++++++++++++++++++++++
 src/port1.0/portlivecheck.tcl |  7 +++++--
 2 files changed, 32 insertions(+), 2 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/curl.c b/src/pextlib1.0/curl.c
</span><span style='display:block; white-space:pre;color:#808080;'>index d8202bf..70d3e81 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/curl.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/curl.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -178,6 +178,9 @@ CurlFetchCmd(Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[])
</span>           };
                char* effectiveURL = NULL;
                char* userAgent = PACKAGE_NAME "/" PACKAGE_VERSION " libcurl/" LIBCURL_VERSION;
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                const int MAXHTTPHEADERS = 100;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           int numHTTPHeaders = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           const char* httpHeaders[MAXHTTPHEADERS];
</span>           int optioncrsr;
                int lastoption;
                const char* theURL;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -240,6 +243,26 @@ CurlFetchCmd(Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[])
</span>                                   theResult = TCL_ERROR;
                                        break;
                                }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                        } else if (strcmp(theOption, "--append-http-header") == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           /* check we also have the parameter */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (optioncrsr < lastoption) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   optioncrsr++;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   if ( numHTTPHeaders < MAXHTTPHEADERS ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                     httpHeaders[numHTTPHeaders++] = Tcl_GetString(objv[optioncrsr]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                     Tcl_SetResult(interp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                       "curl fetch: Too many --append-http-header options",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                       TCL_STATIC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                     theResult = TCL_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                     break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   Tcl_SetResult(interp,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                           "curl fetch: --append-http-header option requires a parameter",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                           TCL_STATIC);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   theResult = TCL_ERROR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           }
</span>                   } else if (strcmp(theOption, "--progress") == 0) {
                                /* check we also have the parameter */
                                if (optioncrsr < lastoption) {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -466,6 +489,10 @@ CurlFetchCmd(Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[])
</span> 
                /* Clear the Pragma: no-cache header */
                headers = curl_slist_append(headers, "Pragma:");
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                /* Append any optional headers */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           for ( int iH = 0; iH < numHTTPHeaders; ++iH ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             headers = curl_slist_append(headers, httpHeaders[iH]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span>           theCurlCode = curl_easy_setopt(theHandle, CURLOPT_HTTPHEADER, headers);
                if (theCurlCode != CURLE_OK) {
                        theResult = SetResultFromCurlErrorCode(interp, theCurlCode);
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portlivecheck.tcl b/src/port1.0/portlivecheck.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 0b88cc4..602ff89 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portlivecheck.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portlivecheck.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -45,7 +45,7 @@ namespace eval portlivecheck {
</span> }
 
 # define options
<span style='display:block; white-space:pre;background:#ffe0e0;'>-options livecheck.url livecheck.type livecheck.md5 livecheck.regex livecheck.name livecheck.distname livecheck.version livecheck.ignore_sslcert
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options livecheck.url livecheck.type livecheck.md5 livecheck.regex livecheck.name livecheck.distname livecheck.version livecheck.ignore_sslcert livecheck.curloptions
</span> 
 # defaults
 default livecheck.url {$homepage}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -56,10 +56,12 @@ default livecheck.name default
</span> default livecheck.distname default
 default livecheck.version {$version}
 default livecheck.ignore_sslcert no
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default livecheck.curloptions {{ "--append-http-header" "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" }}
</span> 
 proc portlivecheck::livecheck_main {args} {
     global livecheck.url livecheck.type livecheck.md5 livecheck.regex livecheck.name livecheck.distname livecheck.version \
            livecheck.ignore_sslcert \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+           livecheck.curloptions \
</span>            homepage portpath workpath \
            master_sites name subport distfiles
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -75,7 +77,7 @@ proc portlivecheck::livecheck_main {args} {
</span> 
     ui_debug "Port (livecheck) version is ${livecheck.version}"
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set curl_options {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set curl_options ${livecheck.curloptions}
</span>     if {[tbool livecheck.ignore_sslcert]} {
         lappend curl_options "--ignore-ssl-cert"
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -144,6 +146,7 @@ proc portlivecheck::livecheck_main {args} {
</span>         "regexm" {
             # single and multiline regex
             ui_debug "Fetching ${livecheck.url}"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_debug "Using CURL options ${curl_options}"
</span>             set updated -1
             if {[catch {curl fetch {*}$curl_options ${livecheck.url} $tempfile} error]} {
                 ui_error "cannot check if $subport was updated ($error)"
</pre><pre style='margin:0'>

</pre>