a9fde73d32daf74780765442de44324061b01d66
markd
  Sun Jan 22 22:13:52 2023 -0800
Add URL resolver plugin functionality to allow an external program to convert
cloud URLs (s3:, gs: drs:, or really any non-HTTP RUL) to http/https URLs.
This can include signed URLs.  The cloud URL is used to index the UDC cache
rather than the resolved URL.  This allows for re-resolving signed URLs
if they time out.

Joint work by Max and Markd

diff --git src/htslib/hfile_net.c src/htslib/hfile_net.c
index d6452d1..ded19fc 100644
--- src/htslib/hfile_net.c
+++ src/htslib/hfile_net.c
@@ -97,17 +97,18 @@
     if (fp->netfp == NULL) { hfile_destroy((hFILE *) fp); return NULL; }
 
     fp->base.backend = &net_backend;
     return &fp->base;
 }
 
 int hfile_plugin_init_net(struct hFILE_plugin *self)
 {
     static const struct hFILE_scheme_handler handler =
         { hopen_net, hfile_always_remote, "knetfile", 0 };
 
     self->name = "knetfile";
     hfile_add_scheme_handler("https", &handler);
     hfile_add_scheme_handler("http", &handler);
     hfile_add_scheme_handler("ftp",  &handler);
+    hfile_add_scheme_handler("drs",  &handler);
     return 0;
 }