On Sun, Oct 16, 2016 at 4:00 AM, Max Reitz <mre...@redhat.com> wrote:
> On 15.10.2016 11:04, Ashijeet Acharya wrote:
>> Add InetSocketAddress compatibility to SSH driver.
>> Add a new option "server" to the SSH block driver which then accepts
>> a InetSocketAddress.
>> "host" and "port" are supported as legacy options and are mapped to
>> their InetSocketAddress representation.
>> Signed-off-by: Ashijeet Acharya <ashijeetacha...@gmail.com>
>> block/ssh.c | 83
>> 1 file changed, 74 insertions(+), 9 deletions(-)
>> /* Open the socket and connect. */
>> s->sock = inet_connect(s->hostport, errp);
>> @@ -634,7 +698,8 @@ static int connect_to_ssh(BDRVSSHState *s, QDict
>> /* Check the remote host's key against known_hosts. */
>> - ret = check_host_key(s, host, port, host_key_check, errp);
>> + ret = check_host_key(s, s->inet->host, port, host_key_check,
> But then you're still using the port here... And I can't come up with a
> way (not even a bad one) to get the numeric port. Maybe interpret the
> addrinfo in inet_connect_saddr()? But getting that information out would
> be ugly, if even possible...
> So maybe the best is to keep it this way and put a FIXME above the
> atoi() call. :-/
Kevin, I believe (after talking with Max) that regarding the atoi()
issue, I can't use any string to integer function since it won't
succeed for cases like port = 'ssh' and putting a FIXME over it seems
to be the only option. But Max did warn me, though, to get everybody's
opinion before I do so. So I am awaiting your response on this one.
Much better will be if you have a workaround solution in mind!! :-)