* [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI options list @ 2016-08-09 9:48 Prasanna Kumar Kalever 2016-08-10 7:42 ` Markus Armbruster 2016-10-29 12:24 ` Jeff Cody 0 siblings, 2 replies; 5+ messages in thread From: Prasanna Kumar Kalever @ 2016-08-09 9:48 UTC (permalink / raw) To: qemu-devel; +Cc: armbru, eblake, jcody, areis, vbellur, Prasanna Kumar Kalever After introduction of qapi schema in gluster block driver code, the port type is now string as per InetSocketAddress { 'struct': 'InetSocketAddress', 'data': { 'host': 'str', 'port': 'str', '*to': 'uint16', '*ipv4': 'bool', '*ipv6': 'bool' } } but the current code still treats it as QEMU_OPT_NUMBER, hence fixing port to accept QEMU_OPT_STRING. Credits: Markus Armbruster <armbru@redhat.com> Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> --- block/gluster.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/block/gluster.c b/block/gluster.c index edde1ad..e6afa48 100644 --- a/block/gluster.c +++ b/block/gluster.c @@ -161,7 +161,7 @@ static QemuOptsList runtime_tcp_opts = { }, { .name = GLUSTER_OPT_PORT, - .type = QEMU_OPT_NUMBER, + .type = QEMU_OPT_STRING, .help = "port number on which glusterd is listening (default 24007)", }, { -- 2.7.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI options list 2016-08-09 9:48 [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI options list Prasanna Kumar Kalever @ 2016-08-10 7:42 ` Markus Armbruster 2016-08-10 13:04 ` Jeff Cody 2016-10-29 12:24 ` Jeff Cody 1 sibling, 1 reply; 5+ messages in thread From: Markus Armbruster @ 2016-08-10 7:42 UTC (permalink / raw) To: Prasanna Kumar Kalever; +Cc: qemu-devel, vbellur, jcody, areis Prasanna Kumar Kalever <prasanna.kalever@redhat.com> writes: > After introduction of qapi schema in gluster block driver code, the port > type is now string as per InetSocketAddress > > { 'struct': 'InetSocketAddress', > 'data': { > 'host': 'str', > 'port': 'str', > '*to': 'uint16', > '*ipv4': 'bool', > '*ipv6': 'bool' } } > > but the current code still treats it as QEMU_OPT_NUMBER, hence fixing port > to accept QEMU_OPT_STRING. > > Credits: Markus Armbruster <armbru@redhat.com> Commonly written as Suggested-by: Markus Armbruster <armbru@redhat.com> > Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> > --- > block/gluster.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/block/gluster.c b/block/gluster.c > index edde1ad..e6afa48 100644 > --- a/block/gluster.c > +++ b/block/gluster.c > @@ -161,7 +161,7 @@ static QemuOptsList runtime_tcp_opts = { > }, > { > .name = GLUSTER_OPT_PORT, > - .type = QEMU_OPT_NUMBER, > + .type = QEMU_OPT_STRING, > .help = "port number on which glusterd is listening (default 24007)", > }, > { The difference between QEMU_OPT_NUMBER and QEMU_OPT_STRING: * The string value is stored for both. For QEMU_OPT_NUMBER, we additionally parse the string as decimal number (this can fail, obviously), and store the result as uint64_t. See qemu_opt_parse(). * qemu_opt_get() & friends return the stored string for both. * qemu_opt_get_number() & friends require QEMU_OPT_NUMBER and return the stored number. * qemu_opts_print() prints the stored string (with comma doubled) for QEMU_OPT_STRING, and the stored number for QEMU_OPT_NUMBER. Your patch works, because: * We get the value only with qemu_opt_get(). The only effect we get from QEMU_OPT_NUMBER is qemu_opt_parse() failure. * "[PATCH v2 1/1] block/gluster: improve defense over string to int conversion" fixes the conversion port string to port number to detect errors. With QEMU_OPT_NUMBER, this can't actually fail, because qemu_opt_parse() fails first. With QEMU_OPT_STRING, it can. The commit message should explain this. I'd squash the two patches together, because a decent commit message for the squash will probably be simpler than separate ones. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI options list 2016-08-10 7:42 ` Markus Armbruster @ 2016-08-10 13:04 ` Jeff Cody 2016-08-10 13:54 ` Markus Armbruster 0 siblings, 1 reply; 5+ messages in thread From: Jeff Cody @ 2016-08-10 13:04 UTC (permalink / raw) To: Markus Armbruster; +Cc: Prasanna Kumar Kalever, qemu-devel, vbellur, areis On Wed, Aug 10, 2016 at 09:42:04AM +0200, Markus Armbruster wrote: > Prasanna Kumar Kalever <prasanna.kalever@redhat.com> writes: > > > After introduction of qapi schema in gluster block driver code, the port > > type is now string as per InetSocketAddress > > > > { 'struct': 'InetSocketAddress', > > 'data': { > > 'host': 'str', > > 'port': 'str', > > '*to': 'uint16', > > '*ipv4': 'bool', > > '*ipv6': 'bool' } } > > > > but the current code still treats it as QEMU_OPT_NUMBER, hence fixing port > > to accept QEMU_OPT_STRING. > > > > Credits: Markus Armbruster <armbru@redhat.com> > > Commonly written as > Suggested-by: Markus Armbruster <armbru@redhat.com> > > > Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> > > --- > > block/gluster.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/block/gluster.c b/block/gluster.c > > index edde1ad..e6afa48 100644 > > --- a/block/gluster.c > > +++ b/block/gluster.c > > @@ -161,7 +161,7 @@ static QemuOptsList runtime_tcp_opts = { > > }, > > { > > .name = GLUSTER_OPT_PORT, > > - .type = QEMU_OPT_NUMBER, > > + .type = QEMU_OPT_STRING, > > .help = "port number on which glusterd is listening (default 24007)", > > }, > > { > > The difference between QEMU_OPT_NUMBER and QEMU_OPT_STRING: > > * The string value is stored for both. For QEMU_OPT_NUMBER, we > additionally parse the string as decimal number (this can fail, > obviously), and store the result as uint64_t. See qemu_opt_parse(). > > * qemu_opt_get() & friends return the stored string for both. > > * qemu_opt_get_number() & friends require QEMU_OPT_NUMBER and return the > stored number. > > * qemu_opts_print() prints the stored string (with comma doubled) for > QEMU_OPT_STRING, and the stored number for QEMU_OPT_NUMBER. > > Your patch works, because: > > * We get the value only with qemu_opt_get(). The only effect we get > from QEMU_OPT_NUMBER is qemu_opt_parse() failure. > > * "[PATCH v2 1/1] block/gluster: improve defense over string to int > conversion" fixes the conversion port string to port number to detect > errors. With QEMU_OPT_NUMBER, this can't actually fail, because > qemu_opt_parse() fails first. With QEMU_OPT_STRING, it can. > > The commit message should explain this. > > I'd squash the two patches together, because a decent commit message for > the squash will probably be simpler than separate ones. Are these two patches intended for 2.7? ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI options list 2016-08-10 13:04 ` Jeff Cody @ 2016-08-10 13:54 ` Markus Armbruster 0 siblings, 0 replies; 5+ messages in thread From: Markus Armbruster @ 2016-08-10 13:54 UTC (permalink / raw) To: Jeff Cody; +Cc: areis, Prasanna Kumar Kalever, qemu-devel, vbellur Jeff Cody <jcody@redhat.com> writes: > On Wed, Aug 10, 2016 at 09:42:04AM +0200, Markus Armbruster wrote: >> Prasanna Kumar Kalever <prasanna.kalever@redhat.com> writes: >> >> > After introduction of qapi schema in gluster block driver code, the port >> > type is now string as per InetSocketAddress >> > >> > { 'struct': 'InetSocketAddress', >> > 'data': { >> > 'host': 'str', >> > 'port': 'str', >> > '*to': 'uint16', >> > '*ipv4': 'bool', >> > '*ipv6': 'bool' } } >> > >> > but the current code still treats it as QEMU_OPT_NUMBER, hence fixing port >> > to accept QEMU_OPT_STRING. >> > >> > Credits: Markus Armbruster <armbru@redhat.com> >> >> Commonly written as >> Suggested-by: Markus Armbruster <armbru@redhat.com> >> >> > Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> >> > --- >> > block/gluster.c | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/block/gluster.c b/block/gluster.c >> > index edde1ad..e6afa48 100644 >> > --- a/block/gluster.c >> > +++ b/block/gluster.c >> > @@ -161,7 +161,7 @@ static QemuOptsList runtime_tcp_opts = { >> > }, >> > { >> > .name = GLUSTER_OPT_PORT, >> > - .type = QEMU_OPT_NUMBER, >> > + .type = QEMU_OPT_STRING, >> > .help = "port number on which glusterd is listening (default 24007)", >> > }, >> > { >> >> The difference between QEMU_OPT_NUMBER and QEMU_OPT_STRING: >> >> * The string value is stored for both. For QEMU_OPT_NUMBER, we >> additionally parse the string as decimal number (this can fail, >> obviously), and store the result as uint64_t. See qemu_opt_parse(). >> >> * qemu_opt_get() & friends return the stored string for both. >> >> * qemu_opt_get_number() & friends require QEMU_OPT_NUMBER and return the >> stored number. >> >> * qemu_opts_print() prints the stored string (with comma doubled) for >> QEMU_OPT_STRING, and the stored number for QEMU_OPT_NUMBER. >> >> Your patch works, because: >> >> * We get the value only with qemu_opt_get(). The only effect we get >> from QEMU_OPT_NUMBER is qemu_opt_parse() failure. >> >> * "[PATCH v2 1/1] block/gluster: improve defense over string to int >> conversion" fixes the conversion port string to port number to detect >> errors. With QEMU_OPT_NUMBER, this can't actually fail, because >> qemu_opt_parse() fails first. With QEMU_OPT_STRING, it can. >> >> The commit message should explain this. >> >> I'd squash the two patches together, because a decent commit message for >> the squash will probably be simpler than separate ones. > > Are these two patches intended for 2.7? Back when I suggested this work, I had hoped it could still make 2.7 as a followup fix, but 1. the bug has turned out to be merely latent , and 2. it's -rc3. I guess we need to punt them to 2.8. ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI options list 2016-08-09 9:48 [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI options list Prasanna Kumar Kalever 2016-08-10 7:42 ` Markus Armbruster @ 2016-10-29 12:24 ` Jeff Cody 1 sibling, 0 replies; 5+ messages in thread From: Jeff Cody @ 2016-10-29 12:24 UTC (permalink / raw) To: Prasanna Kumar Kalever; +Cc: qemu-devel, armbru, eblake, vbellur On Tue, Aug 09, 2016 at 03:18:14PM +0530, Prasanna Kumar Kalever wrote: > After introduction of qapi schema in gluster block driver code, the port > type is now string as per InetSocketAddress > > { 'struct': 'InetSocketAddress', > 'data': { > 'host': 'str', > 'port': 'str', > '*to': 'uint16', > '*ipv4': 'bool', > '*ipv6': 'bool' } } > > but the current code still treats it as QEMU_OPT_NUMBER, hence fixing port > to accept QEMU_OPT_STRING. > > Credits: Markus Armbruster <armbru@redhat.com> > > Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com> > --- > block/gluster.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/block/gluster.c b/block/gluster.c > index edde1ad..e6afa48 100644 > --- a/block/gluster.c > +++ b/block/gluster.c > @@ -161,7 +161,7 @@ static QemuOptsList runtime_tcp_opts = { > }, > { > .name = GLUSTER_OPT_PORT, > - .type = QEMU_OPT_NUMBER, > + .type = QEMU_OPT_STRING, > .help = "port number on which glusterd is listening (default 24007)", > }, > { > -- > 2.7.4 > Thanks, Applied to my block branch: git://github.com/codyprime/qemu-kvm-jtc.git block [Changed 'Credits' to 'Suggested-by'] -Jeff ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-10-29 12:24 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-08-09 9:48 [Qemu-devel] [PATCH v1 1/1] block/gluster: fix port type in the QAPI options list Prasanna Kumar Kalever 2016-08-10 7:42 ` Markus Armbruster 2016-08-10 13:04 ` Jeff Cody 2016-08-10 13:54 ` Markus Armbruster 2016-10-29 12:24 ` Jeff Cody
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).