On Wed, Apr 10, 2013 at 08:08:59PM +0100, Sam Deane wrote:
> On the topic of SFTP, am I right in thinking that there's no way to retrieve 
> the error code from an SFTP quote command that has failed?
> 
> It seems that the error string returned by sftp_libssh2_strerror is output, 
> but not the code itself. 
> 
> It seems a little bit fiddly to have to parse the strings to figure out the 
> error, so I was wondering if the code can be returned in data->info.httpCode. 

That's what's returned by CURLINFO_RESPONSE_CODE, which is already used for
non-HTTP protocols, so it sounds like a reasonable extension to me. Please also
document this use in curl_easy_getinfo.3  Ideally, the response code for all
SFTP operations would be stored, not just failures in quoted commands. And
httpcode must be 0 in all cases when the command succeeds.

> I've done a little experimental hack to try this, and it seems to work ok, 
> but I wondered if there's something I'm missing? A slight abuse of the 
> httpCode field perhaps - but it doesn't appear to be used for anything else 
> with SFTP.
> 
> Have enclosed a small patch illustrating what I mean. It's probably in the 
> wrong format (sorry), but I can clean it up and send you a proper patch if 
> you think it's a sensible approach.

The patch format looks fine to me.

> +    Curl_safefree(sshc->quote_path1);
> +    if (free2)
> +        Curl_safefree(sshc->quote_path2);

sshc->quote_path2 should be NULL whenever it's not used, and it always needs to
be freed whenever it's non-NULL, so you should be able to remove free2 
altogether
and always call Curl_safefree on it.

>>> Dan
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to