[pacman-dev] [PATCH] Add a fetch callback to allow front-end download support

Sebastian Nowicki sebnow at gmail.com
Thu Feb 19 14:11:13 EST 2009


On 20/02/2009, at 2:03 AM, Aaron Griffin wrote:

> On Thu, Feb 19, 2009 at 12:55 AM, Sebastian Nowicki  
> <sebnow at gmail.com> wrote:
>> This allows a frontend to define its own download algorithm so that  
>> the
>> libfetch dependency can be omitted without using an external process.
>> The callback will be used when if it is defined, otherwise the old
>> behavior applies.

Just noticed it should be s/when//.

> I like this, but my first thought is: why not extrapolate our current
> downloading as a "fetch callback" too? That way the check just needs a
> "!= NULL" before calling it, and it can be done on config parsing:

I had the same idea, but decided to leave it as is so that the two  
methods can be distinguished. Re-thinking it, they don't really need  
to be distinguished (in alpm), since the callback is used if the front- 
end specifies it either way, and the default could be the internal  
download function. It's quite late atm so I won't send the patch just  
now ;).

> //in initialization
> #ifdef INTERNAL_DOWNLOAD
>   fetchcb = internal_fetch;
> #else
>   fetchcb = NULL;
> #endif
> ...
> ...
> // in config parsing
> if(strcmp(blah, "XferCommand") == 0) {
>   fetchcb = use_xfercommand;
> }

Indeed, much simpler. It seems this makes download() unecessary as it  
would only call handle->fetchcb(), and as far as I can tell it only  
gets called in _alpm_download_single_file() and alpm_fetch_pkgurl().



More information about the pacman-dev mailing list