+2020-02-26 Konrad Kleine <kkleine@redhat.com>
+
+ * debuginfod-client.c (debuginfod_query_server): Handle curl's
+ response code correctly when DEBUGINFOD_URLS begin with file://
+
2020-02-25 Frank Ch. Eigler <fche@redhat.com>
* debuginfod.cxx (parse_opt): Treat -R as if -Z.rpm .
else
{
/* Query completed without an error. Confirm that the
- response code is 200 and set verified_handle. */
- long resp_code = 500;
- CURLcode curl_res;
-
- curl_res = curl_easy_getinfo(target_handle,
- CURLINFO_RESPONSE_CODE,
- &resp_code);
+ response code is 200 when using HTTP/HTTPS and 0 when
+ using file:// and set verified_handle. */
- if (curl_res == CURLE_OK
- && resp_code == 200
- && msg->easy_handle != NULL)
+ if (msg->easy_handle != NULL)
{
- verified_handle = msg->easy_handle;
- break;
+ char *effective_url = NULL;
+ long resp_code = 500;
+ CURLcode ok1 = curl_easy_getinfo (target_handle,
+ CURLINFO_EFFECTIVE_URL,
+ &effective_url);
+ CURLcode ok2 = curl_easy_getinfo (target_handle,
+ CURLINFO_RESPONSE_CODE,
+ &resp_code);
+ if(ok1 == CURLE_OK && ok2 == CURLE_OK && effective_url)
+ {
+ if (strncmp (effective_url, "http", 4) == 0)
+ if (resp_code == 200)
+ {
+ verified_handle = msg->easy_handle;
+ break;
+ }
+ if (strncmp (effective_url, "file", 4) == 0)
+ if (resp_code == 0)
+ {
+ verified_handle = msg->easy_handle;
+ break;
+ }
+ }
}
}
}
+2020-02-26 Konrad Kleine <kkleine@redhat.com>
+
+ * run-debuginfod-find.sh: added tests for DEBUGINFOD_URLS beginning
+ with "file://"
+
2020-02-21 Mark Wielaard <mark@klomp.org>
* Makefile.am (TESTS_ENVIRONMENT): Explicitly unset DEBUGINFOD_URLS.
if [ $PID2 -ne 0 ]; then kill $PID2; wait $PID2; fi
if [ $PID3 -ne 0 ]; then kill $PID3; wait $PID3; fi
- rm -rf F R D L Z ${PWD}/.client_cache*
+ rm -rf F R D L Z ${PWD}/mocktree ${PWD}/.client_cache*
exit_cleanup
}
wait $PID3
PID3=0
+########################################################################
+# Test fetching a file using file:// . No debuginfod server needs to be run for
+# this test.
+local_dir=${PWD}/mocktree/buildid/aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd/source/my/path
+mkdir -p ${local_dir}
+echo "int main() { return 0; }" > ${local_dir}/main.c
+
+# first test that is doesn't work, when no DEBUGINFOD_URLS is set
+DEBUGINFOD_URLS=""
+testrun ${abs_top_builddir}/debuginfod/debuginfod-find source aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd /my/path/main.c && false || true
+
+# Now test is with proper DEBUGINFOD_URLS
+DEBUGINFOD_URLS="file://${PWD}/mocktree/"
+filename=`testrun ${abs_top_builddir}/debuginfod/debuginfod-find source aaaaaaaaaabbbbbbbbbbccccccccccdddddddddd /my/path/main.c`
+cmp $filename ${local_dir}/main.c
+
exit 0