[libvirt] [PATCH 07/11] Remove bogus port handling code in virsh

Eric Blake eblake at redhat.com
Fri Nov 19 18:23:00 UTC 2010


On 11/12/2010 09:22 AM, Daniel P. Berrange wrote:
> The "find-storage-pool-sources-as" command takes two arguments,
> a hostname and a port number. For some reason the code would
> also then look for a port number appended to the hostname
> string by searching for ':'. This totally breaks if the user
> gives an IPv6 address, and is redundant, since you can already
> provide a port as a separate argument
> 
> * tools/virsh.c: Remove bogus port number handling code
> ---
>  tools/virsh.c |   11 ++---------
>  1 files changed, 2 insertions(+), 9 deletions(-)
> 
> diff --git a/tools/virsh.c b/tools/virsh.c
> index 69a42e8..a840758 100644
> --- a/tools/virsh.c
> +++ b/tools/virsh.c
> @@ -5772,15 +5772,8 @@ cmdPoolDiscoverSourcesAs(vshControl * ctl, const vshCmd * cmd ATTRIBUTE_UNUSED)
>      if (host) {
>          size_t hostlen = strlen(host);
>          char *port = vshCommandOptString(cmd, "port", &found);
> -        if (!found) {
> -            port = strrchr(host, ':');
> -            if (port) {
> -                if (*(++port))
> -                    hostlen = port - host - 1;
> -                else
> -                    port = NULL;
> -            }
> -        }
> +        if (!found)
> +            port = NULL;

Slight change which may break existing scripts that used an undocumented
method, but makes sense given that the documentation calls out both
arguments, and in light of IPv6 hostnames.

>          virBuffer buf = VIR_BUFFER_INITIALIZER;
>          virBufferAddLit(&buf, "<source>\n");
>          virBufferVSprintf(&buf, "  <host name='%.*s'",(int)hostlen, host);

However, given that we are no longer computing hostlen as anything other
than strlen(host), I would recommend that you respin this patch to
completely get rid of hostlen, and use %s instead of %.*s.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20101119/19c2ddd0/attachment-0001.sig>


More information about the libvir-list mailing list