
+/* parse inbound and outbound which are in the format of + * 'average,peak,burst', in which peak and burst are optional, + * thus 'average,,burst' and 'average,peak' are also legal. */ +static int parseRateStr(const char *rateStr, virRatePtr rate) +{ + char *average = NULL, *peak = NULL, *burst = NULL; + + average = (char *)rateStr;
I'd vote for const correctness here; So, either change average to be const char *, or leave it out and use passed rateStr directly instead.
used const char * in v3.
+ if (inboundStr || outboundStr) { + virBufferAsprintf(&buf, " <bandwidth>\n"); + if (inboundStr && inbound.average > 0) { + virBufferAsprintf(&buf, " <inbound average='%lld'", inbound.average); + if (inbound.peak > 0) + virBufferAsprintf(&buf, " peak='%lld'", inbound.peak); + if (inbound.burst > 0) + virBufferAsprintf(&buf, " burst='%lld'", inbound.burst); + virBufferAsprintf(&buf, "/>\n"); + } + if (outboundStr && outbound.average > 0) { + virBufferAsprintf(&buf, " <outbound average='%lld'", outbound.average); + if (outbound.peak > 0) + virBufferAsprintf(&buf, " peak='%lld'", outbound.peak); + if (outbound.burst > 0) + virBufferAsprintf(&buf, " burst='%lld'", outbound.burst); + virBufferAsprintf(&buf, "/>\n"); + } + virBufferAsprintf(&buf, " </bandwidth>\n"); + } +
Since [in|out]bound average, peak and burst are defined as unsigned long long, you can actually check for (outbound.peak) instead of (outbound.peak > 0), but you can leave it as-is. But I'd prefer to change print format from '%lld' to '%llu'. I am surprised my gcc does not warn about it.
changed format from '%lld' to '%llu'.
ACK with those nits fixed.
Thanks for you comments. -- Thanks, Hu Tao