Re: Save link as... silent failure on gopher protocol
Diego <[email protected]> Sun, 12 Jul 2026 21:56:35 +0200
| Newsgroups | gmane.comp.web.dillo.devel |
|---|---|
| Message-ID | <CAD0qOrTrFeSRXshpVf=YoDNzKdvHGEMsx4amVZZDjLhfO6-=Bg@mail.gmail.com> |
--===============5786957469510144123== Content-Type: multipart/alternative; boundary="000000000000da163906566f5fdf" --000000000000da163906566f5fdf Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Very thanks. I await. Chers Diego. El dom, 12 jul 2026 a las 21:46, Rodrigo Arias (<[email protected]>) escribi=C3=B3: > Hi, > > On Thu, Jul 09, 2026 at 01:37:14AM +0200, Diego wrote: > >=C2=BFCan i have some feedback? =C2=BFDo the patchs work for you? =C2=BF= do it seem a > >practical idea? =C2=BFetc? > > Thanks, I received the patches but I haven't had time to look at this > yet, I have have it in my queue. > > Best, > Rodrigo. > > > > >cheers! > >Diego. > > > > > >El vie, 3 jul 2026 a las 14:17, Diego (<[email protected]>) > escribi=C3=B3: > > > >> Hello, I'm sending two patches with an idea to solve this problem. > >> It's a proof of concept that I'm offering to develop and complete, > >> although I have very little free time. > >> > >> The first patch works with the latest dillo release (3.3.0) but also > works > >> with the current repository. > >> It implements changes in dillo, download.dpi, and the file and data DP= Is > >> as examples. > >> The second patch works with the latest gopher.dpi repository. > >> > >> The main idea is that the DPIs that handle protocols save the URL and > >> write the file themselves, coordinating with download.dpi and dillo. > >> > >> To do this, they implement a new DPI command: `save_url` > >> d_cmd =3D a_Dpip_build_cmd("cmd=3D%s url=3D%s destination=3D%s", "save= _url", > url, > >> dl_dest); > >> > >> Dillo initiates a download, sending it to download.dpi as before. If > it's > >> HTTP* or FTP*, it downloads directly as it does now. Otherwise, it wil= l > >> send a `save_url` command to Dillo to coordinate. This allows Dillo to > >> notify the user, verify the security of the change, etc.Currently, Dil= lo > >> only checks if there's a DPI that handles the requested protocol. > >> > >> (A new function (`a_Dpiapi_is_service_handled(server_str)`) queries > `dpid` > >> without executing the DPI. No code is modified in `dpid`. Modifying > `dpid` > >> or executing the DPI would allow querying the capabilities of the DPIs= , > but > >> it doesn't seem necessary.) > >> > >> - If a DPI is present, it sends the `save_url` command to the DPI that > >> coordinates with `download.dpi` via a secondary channel so that > downloads > >> can continue even if all Dillo windows are closed. > >> > >> - If the protocol isn't handled, it notifies download.dpi through the > >> secondary channel (this reduces the amount of code). > >> > >> The next step would be to implement `save_url` in other protocol DPIs. > >> > >> A possible change to download.dpi once all is done is to leave > >> download.dpi it as just a GUI for DPIs and extract the code to downloa= d > >> HTTP to a DPI. (There's already ftp.dpi) > >> > >> One last thing: can you recommend a simple Git manual? > >> > >> > >> Saludos > >> Diego. > >> > >> El lun, 25 may 2026 a las 21:23, Rodrigo Arias (<[email protected]>) > >> escribi=C3=B3: > >> > >>> Hi, > >>> > >>> On Mon, May 25, 2026 at 09:25:58AM -0700, Ben Collver wrote: > >>> >Good day, > >>> > > >>> >I am using dillo 3.3.0 on Slackware64 15.0. > >>> > > >>> >If I open a gopher directory, right-click on an item, and click > >>> >Save link as..., this opens a file save dialog. If i click OK, it > >>> >dismisses the dialog. I expected it to save something, but it > >>> >creates no new files. > >>> > > >>> >Gopher URI: gopher://gopher.pglaf.org/1/4/0/2/8/40282/ > >>> >Top item: 40282-0 > >>> > > >>> >I found the following workaround: > >>> > > >>> >* Left click 40282-0 > >>> >* Click Save button in browser toolbar > >>> > > >>> >This creates a new file as expected. > >>> > >>> Yes, this is a known limitation of the downloads in Dillo. Using the > >>> "Save link as" to fetch a new resource will use wget under the hood, > >>> which only allows http(s). You can see the message in the console: > >>> > >>> > UIcmd_save: /tmp/40282-0.txt > >>> > ** WARNING **: Ignoring download request for > >>> > 'gopher://gopher.pglaf.org/0/4/0/2/8/40282/40282-0.txt': not in > cache > >>> > and not downloadable. > >>> > >>> Browsing to the target file makes the gopher plugin fetch the file an= d > >>> place it in the Dillo cache (you can see it in about:cache). Then > saving > >>> the current page (or going back and clicking the "Save link as" entry= ) > >>> works because it fetches it from the cache. > >>> > >>> It is planned to solve this some time in the future, but involves > >>> complex changes. In the meanwhile, you can use this workaround. > >>> > >>> Best, > >>> Rodrigo. > >>> _______________________________________________ > >>> Dillo-dev mailing list -- dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected] > >>> To unsubscribe send an email to dillo-dev-leave-lx9mn2B4QYRWk0Htik3J/[email protected] > >>> > >> > > >_______________________________________________ > >Dillo-dev mailing list -- dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected] > >To unsubscribe send an email to dillo-dev-leave-lx9mn2B4QYRWk0Htik3J/[email protected] > > _______________________________________________ > Dillo-dev mailing list -- dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected] > To unsubscribe send an email to dillo-dev-leave-lx9mn2B4QYRWk0Htik3J/[email protected] > --000000000000da163906566f5fdf Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>Very thanks.</div><div>I await.<br></div><div><br></d= iv><div><br></div><div>Chers<br></div><div>Diego.<br></div></div><br><div c= lass=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" class=3D"gmail_= attr">El dom, 12 jul 2026 a las 21:46, Rodrigo Arias (<<a href=3D"mailto= :[email protected]">[email protected]</a>>) escribi=C3=B3:<br></div><b= lockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-le= ft:1px solid rgb(204,204,204);padding-left:1ex">Hi,<br> <br> On Thu, Jul 09, 2026 at 01:37:14AM +0200, Diego wrote:<br> >=C2=BFCan i have some feedback? =C2=BFDo the patchs work for you? =C2= =BFdo it seem a<br> >practical idea? =C2=BFetc?<br> <br> Thanks, I received the patches but I haven't had time to look at this <= br> yet, I have have it in my queue.<br> <br> Best,<br> Rodrigo.<br> <br> ><br> >cheers!<br> >Diego.<br> ><br> ><br> >El vie, 3 jul 2026 a las 14:17, Diego (<<a href=3D"mailto:darkspirit= [email protected]" target=3D"_blank">[email protected]</a>>) escribi= =C3=B3:<br> ><br> >> Hello, I'm sending two patches with an idea to solve this prob= lem.<br> >> It's a proof of concept that I'm offering to develop and c= omplete,<br> >> although I have very little free time.<br> >><br> >> The first patch works with the latest dillo release (3.3.0) but al= so works<br> >> with the current repository.<br> >> It implements changes in dillo, download.dpi, and the file and dat= a DPIs<br> >> as examples.<br> >> The second patch works with the latest gopher.dpi repository.<br> >><br> >> The main idea is that the DPIs that handle protocols save the URL = and<br> >> write the file themselves, coordinating with download.dpi and dill= o.<br> >><br> >> To do this, they implement a new DPI command: `save_url`<br> >> d_cmd =3D a_Dpip_build_cmd("cmd=3D%s url=3D%s destination=3D%= s", "save_url", url,<br> >> dl_dest);<br> >><br> >> Dillo initiates a download, sending it to download.dpi as before. = If it's<br> >> HTTP* or FTP*, it downloads directly as it does now. Otherwise, it= will<br> >> send a `save_url` command to Dillo to coordinate. This allows Dill= o to<br> >> notify the user, verify the security of the change, etc.Currently,= Dillo<br> >> only checks if there's a DPI that handles the requested protoc= ol.<br> >><br> >> (A new function (`a_Dpiapi_is_service_handled(server_str)`) querie= s `dpid`<br> >> without executing the DPI. No code is modified in `dpid`. Modifyin= g `dpid`<br> >> or executing the DPI would allow querying the capabilities of the = DPIs, but<br> >> it doesn't seem necessary.)<br> >><br> >> - If a DPI is present, it sends the `save_url` command to the DPI = that<br> >> coordinates with `download.dpi` via a secondary channel so that do= wnloads<br> >> can continue even if all Dillo windows are closed.<br> >><br> >> - If the protocol isn't handled, it notifies download.dpi thro= ugh the<br> >> secondary channel (this reduces the amount of code).<br> >><br> >> The next step would be to implement `save_url` in other protocol D= PIs.<br> >><br> >> A possible change to download.dpi once all is done is to leave<br> >> download.dpi it as just a GUI for DPIs and extract the code to dow= nload<br> >> HTTP to a DPI. (There's already ftp.dpi)<br> >><br> >> One last thing: can you recommend a simple Git manual?<br> >><br> >><br> >> Saludos<br> >> Diego.<br> >><br> >> El lun, 25 may 2026 a las 21:23, Rodrigo Arias (<<a href=3D"mai= lto:[email protected]" target=3D"_blank">[email protected]</a>>)<br> >> escribi=C3=B3:<br> >><br> >>> Hi,<br> >>><br> >>> On Mon, May 25, 2026 at 09:25:58AM -0700, Ben Collver wrote:<b= r> >>> >Good day,<br> >>> ><br> >>> >I am using dillo 3.3.0 on Slackware64 15.0.<br> >>> ><br> >>> >If I open a gopher directory, right-click on an item, and = click<br> >>> >Save link as..., this opens a file save dialog.=C2=A0 If i= click OK, it<br> >>> >dismisses the dialog.=C2=A0 I expected it to save somethin= g, but it<br> >>> >creates no new files.<br> >>> ><br> >>> >Gopher URI:=C2=A0 gopher://<a href=3D"http://gopher.pglaf.= org/1/4/0/2/8/40282/" rel=3D"noreferrer" target=3D"_blank">gopher.pglaf.org= /1/4/0/2/8/40282/</a><br> >>> >Top item:=C2=A0 =C2=A0 40282-0<br> >>> ><br> >>> >I found the following workaround:<br> >>> ><br> >>> >* Left click 40282-0<br> >>> >* Click Save button in browser toolbar<br> >>> ><br> >>> >This creates a new file as expected.<br> >>><br> >>> Yes, this is a known limitation of the downloads in Dillo. Usi= ng the<br> >>> "Save link as" to fetch a new resource will use wget= under the hood,<br> >>> which only allows http(s). You can see the message in the cons= ole:<br> >>><br> >>> > UIcmd_save: /tmp/40282-0.txt<br> >>> > ** WARNING **: Ignoring download request for<br> >>> > 'gopher://<a href=3D"http://gopher.pglaf.org/0/4/0/2/= 8/40282/40282-0.txt" rel=3D"noreferrer" target=3D"_blank">gopher.pglaf.org/= 0/4/0/2/8/40282/40282-0.txt</a>': not in cache<br> >>> > and not downloadable.<br> >>><br> >>> Browsing to the target file makes the gopher plugin fetch the = file and<br> >>> place it in the Dillo cache (you can see it in about:cache). T= hen saving<br> >>> the current page (or going back and clicking the "Save li= nk as" entry)<br> >>> works because it fetches it from the cache.<br> >>><br> >>> It is planned to solve this some time in the future, but invol= ves<br> >>> complex changes. In the meanwhile, you can use this workaround= .<br> >>><br> >>> Best,<br> >>> Rodrigo.<br> >>> _______________________________________________<br> >>> Dillo-dev mailing list -- <a href=3D"mailto:dillo-dev@mailman3= .com" target=3D"_blank">dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected]</a><br> >>> To unsubscribe send an email to <a href=3D"mailto:dillo-dev-le= ave-lx9mn2B4QYRWk0Htik3J/[email protected]" target=3D"_blank">dillo-dev-leave-lx9mn2B4QYRWk0Htik3J/[email protected]</a><br> >>><br> >><br> <br> >_______________________________________________<br> >Dillo-dev mailing list -- <a href=3D"mailto:dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected]" tar= get=3D"_blank">dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected]</a><br> >To unsubscribe send an email to <a href=3D"mailto:dillo-dev-leave@mailm= an3.com" target=3D"_blank">dillo-dev-leave-lx9mn2B4QYRWk0Htik3J/[email protected]</a><br> <br> _______________________________________________<br> Dillo-dev mailing list -- <a href=3D"mailto:dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected]" target= =3D"_blank">dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected]</a><br> To unsubscribe send an email to <a href=3D"mailto:dillo-dev-leave@mailman3.= com" target=3D"_blank">dillo-dev-leave-lx9mn2B4QYRWk0Htik3J/[email protected]</a><br> </blockquote></div> --000000000000da163906566f5fdf-- --===============5786957469510144123== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Dillo-dev mailing list -- dillo-dev-lx9mn2B4QYRWk0Htik3J/[email protected] To unsubscribe send an email to dillo-dev-leave-lx9mn2B4QYRWk0Htik3J/[email protected] --===============5786957469510144123==--