non-blocking active FTP: cleanup multi state usage

Backpedaled out the funny double-change of state in the multi state
machine by adding a new argument to the do_more() function to signal
completion. This way it can remain in the DO_MORE state properly until
done. Long term, the entire DO_MORE logic should be moved into the FTP
code and be hidden from the multi code as the logic is only used for
FTP.
This commit is contained in:
Daniel Stenberg
2011-12-20 12:52:24 +01:00
parent c834213ad5
commit dfdac61522
5 changed files with 63 additions and 41 deletions

View File

@@ -512,7 +512,7 @@ struct Curl_async {
/* These function pointer types are here only to allow easier typecasting
within the source when we need to cast between data pointers (such as NULL)
and function pointers. */
typedef CURLcode (*Curl_do_more_func)(struct connectdata *);
typedef CURLcode (*Curl_do_more_func)(struct connectdata *, bool *);
typedef CURLcode (*Curl_done_func)(struct connectdata *, CURLcode, bool);