On Tue, Feb 23, 2016 at 01:19:38PM +0000, Daniel P. Berrange wrote: > On Thu, Feb 18, 2016 at 07:40:12AM -0500, John Ferlan wrote: > > > > > > On 02/12/2016 08:59 AM, Ján Tomko wrote: > > > Just like safewrite, but calls strlen first to figure out > > > the length of the string. > > > --- > > > src/conf/virchrdev.c | 2 +- > > > src/libvirt_private.syms | 1 + > > > src/lxc/lxc_process.c | 4 ++-- > > > src/network/leaseshelper.c | 2 +- > > > src/openvz/openvz_conf.c | 15 ++++++--------- > > > src/qemu/qemu_domain.c | 2 +- > > > src/util/vircommand.c | 4 ++-- > > > src/util/virfile.c | 9 ++++++++- > > > src/util/virfile.h | 1 + > > > src/util/virlog.c | 6 +++--- > > > src/util/virpidfile.c | 4 ++-- > > > src/util/virxml.c | 17 ++++++----------- > > > tools/vsh.c | 4 +--- > > > 13 files changed, 35 insertions(+), 36 deletions(-) > > > > > > > Conflicted about this one - the difference between the two appears to be > > 'safewrite' will write a some length of a string (e.g. a counted length) > > while safewrite_str writes the entire string. To make things more > > interesting some safewrite calls use sizeof instead of strlen, but in > > reality are just writing everything in the buffer. > > > > So, perhaps 'safewrite_all' or 'safewrite_full' better describes the new > > functionality? > > I don't think we need any new function actually. > > Just add this to existing safewrite() method: > > if (len == -1) > len = strlen(data) > > and then update the callers which pass a NULL terminated string > to just pass -1. This matches our behaviour with virBuffer APIs > which acccept a length of -1. In fact for the case where the caller passes a literal string we could add #define safewritelit(fd_, literal_string_) \ safewrite(fd_, "" literal_string_ "", sizeof(literal_string_) - 1) which moves the performance hit of strlen() to be compile time instead of runtime. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list