cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: A new callback function: XFERINFO ?

From: Daniel Stenberg <daniel_at_haxx.se>
Date: Sun, 16 Jun 2013 15:58:53 +0200 (CEST)

On Sat, 15 Jun 2013, NSRT Mail account. wrote:

Please remember that we don't top-post on this list.

> This patch looks pretty good to me.
>
> Regarding design mistakes, is there a good reason to also need to specify
> not to disable progress? (noprogress = 0) Why not imply it when specifying a
> callback?

I agree, but I'd then prefer to make it less similar to the old callback as
right now it is such a drop-in replacement that it would feel a bit wrong to
alter such a little thing as well with the new callback.

> Regarding unknown values, since we're switching to off_t, and off_t is
> signed, there is no sane meaning to its negative values. We just transfered
> -4225 bytes? Perhaps <0 can signify unknown, and 0 only means 0.

That's one way, sure. A little downside of using negative numbers is perhaps
for those who don't care and just want to do like today and show 0 until it
gets known...

Another way could be to pass on the information to the callback as a pointer
to a struct with a "known" bitfield:

  struct curl_xferinfo {
     curl_off_t dltotal;
     curl_off_t dlnow;
     curl_off_t ultotal;
     curl_off_t ulnow;
     unsigned int knowndata;
#define DLSIZE_KNOWN (1<<0)
#define ULSIZE_KNOWN (1<<1)
  }

And pass 0 while unknown like today, but also set the bitmask to tell wether
the field is truly 0 or rather unknown.

Something that struck me, is if we should take the opportunity to perhaps also
include "state" in such a struct? Oh and I just spotted than Dan F brought
pretty much the same idea, but yeah it might be even better to offer that in a
new getinfo-option...

-- 
  / daniel.haxx.se
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2013-06-16