I think it can be coded to look non-redundant too.. you just have to use the disk->src inside the virBufferAsprintf, like you are using disk->hosts->name. I saw Dan's comment abt using virURIPtr, so maybe things change with that.+ /* if IPv6 addr, use square brackets to enclose it */ + virBufferAsprintf(opt, "[%s]:%s", disk->hosts->name, disk->hosts->port); + } else { + virBufferAsprintf(opt, "%s:%s", disk->hosts->name, disk->hosts->port); + } + } + + /* append source path to gluster disk image */ + virBufferAsprintf(opt, "/%s", disk->src); + + /* if transport type is unix, server name is path to unix socket, ignore port */ + if (disk->hosts->transport == VIR_DOMAIN_DISK_PROTO_TRANS_UNIX) { + virBufferAsprintf(opt, "?socket=%s", disk->hosts->name); + }This can be clubbed as part of else clause to the above if condn (if (disk->hosts->transport != VIR_DOMAIN_DISK_PROTO_TRANS_UNIX)), that ways we avoid an un-necessary check of transport here. It also means that disk->src needs to be pulled inside the if & else clauses, which I feel should be ok.That was the only reason I kept it out of else. Isn't it better to avoid redundant code than replacing if with an else ?