You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When executing an sftp request with the multi interface, it doesn't seem to complete if the request fails due to an authentication error. It seems easy enough to reproduce with the hiperfifo example. After starting hiperfifo, I send the url "sftp://s@localhost/var/l", which results in the following output:
Creating named pipe "hiper.fifo"
Now, pipe some URL's into > hiper.fifo
Adding easy 0x7fe5a9807800 to multi 0x7fe5a9405350 (sftp://s@localhost/var/l)
multi_timer_cb: Setting timeout to 1 ms
Trying 127.0.0.1...
Progress: sftp://s@localhost/var/l (0/0)
Progress: sftp://s@localhost/var/l (0/0)
socket callback: s=7 e=0x7fe5a9807800 what=OUT Adding data: OUT
multi_timer_cb: Setting timeout to 1 ms
REMAINING: 1
Connected to localhost (127.0.0.1) port 22 (#0)
Progress: sftp://s@localhost/var/l (0/0)
Progress: sftp://s@localhost/var/l (0/0)
socket callback: s=7 e=0x7fe5a9807800 what=IN Changing action from OUT to IN
REMAINING: 1
multi_timer_cb: Setting timeout to 1 ms
REMAINING: 1
Progress: sftp://s@localhost/var/l (0/0)
multi_timer_cb: Setting timeout to 198 ms
REMAINING: 1
Progress: sftp://s@localhost/var/l (0/0)
REMAINING: 1
Progress: sftp://s@localhost/var/l (0/0)
REMAINING: 1
Progress: sftp://s@localhost/var/l (0/0)
REMAINING: 1
No identity would match
Progress: sftp://s@localhost/var/l (0/0)
REMAINING: 1
^C
Note that the last message is "No identity would match", but the REMAINING count is still one. So, the request is still active. Compare this to the output of curl against the same url:
Note the "Authentication failure" message that shows up here, but not in multi mode. So, it seems like the final state transition is not happening. It also looks like the problem does not occur in all multi-mode interfaces, it might just be when using curl_multi_socket_action(). I tried to write a test program that used curl_multi_wait()/curl_multi_perform() and that seemed to work.
The text was updated successfully, but these errors were encountered:
The SSH state machine didn't clear the 'rc' variable appropriately in a
two places which prevented it from looping the way it should. And it
lacked an 'else' statement that made it possible to erroneously get
stuck in the SSH_AUTH_AGENT state.
Reported-by: Tim Stack
Closescurl#357
lockbot
locked as resolved and limited conversation to collaborators
May 7, 2018
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
When executing an sftp request with the multi interface, it doesn't seem to complete if the request fails due to an authentication error. It seems easy enough to reproduce with the hiperfifo example. After starting hiperfifo, I send the url "sftp://s@localhost/var/l", which results in the following output:
Note that the last message is "No identity would match", but the REMAINING count is still one. So, the request is still active. Compare this to the output of curl against the same url:
Note the "Authentication failure" message that shows up here, but not in multi mode. So, it seems like the final state transition is not happening. It also looks like the problem does not occur in all multi-mode interfaces, it might just be when using curl_multi_socket_action(). I tried to write a test program that used curl_multi_wait()/curl_multi_perform() and that seemed to work.
The text was updated successfully, but these errors were encountered: