multi-notify: add check macro
No binary (build failed)
—
(log yok)
| @@ -2798,7 +2798,7 @@ static CURLMcode multi_perform(struct Curl_multi *multi, | |
| if(multi_ischanged(multi, TRUE)) | |
| process_pending_handles(multi); | |
| - | if(!returncode) |
| + | if(!returncode && CURL_MNTFY_HAS_ENTRIES(multi)) |
| returncode = Curl_mntfy_dispatch_all(multi); | |
| /* | |
| @@ -3195,7 +3195,7 @@ out: | |
| if(multi_ischanged(multi, TRUE)) | |
| process_pending_handles(multi); | |
| - | if(!mresult) |
| + | if(!mresult && CURL_MNTFY_HAS_ENTRIES(multi)) |
| mresult = Curl_mntfy_dispatch_all(multi); | |
| if(running_handles) { | |
| @@ -174,6 +174,7 @@ void Curl_mntfy_add(struct Curl_easy *data, unsigned int type) | |
| mntfy_chunk_append(tail, data, (uint32_t)type); | |
| else | |
| multi->ntfy.failure = CURLM_OUT_OF_MEMORY; | |
| + | multi->ntfy.has_entries = TRUE; |
| } | |
| } | |
| @@ -201,5 +202,7 @@ CURLMcode Curl_mntfy_dispatch_all(struct Curl_multi *multi) | |
| multi->ntfy.failure = CURLM_OK; /* reset, once delivered */ | |
| return mresult; | |
| } | |
| + | else |
| + | multi->ntfy.has_entries = FALSE; |
| return CURLM_OK; | |
| } | |
| @@ -33,9 +33,10 @@ struct curl_multi_ntfy { | |
| curl_notify_callback ntfy_cb; | |
| void *ntfy_cb_data; | |
| struct uint32_bset enabled; | |
| - | CURLMcode failure; |
| struct mntfy_chunk *head; | |
| struct mntfy_chunk *tail; | |
| + | CURLMcode failure; |
| + | BIT(has_entries); |
| }; | |
| void Curl_mntfy_init(struct Curl_multi *multi); | |
| @@ -53,6 +54,8 @@ void Curl_mntfy_add(struct Curl_easy *data, unsigned int type); | |
| Curl_mntfy_add((d), (t)); \ | |
| } while(0) | |
| + | #define CURL_MNTFY_HAS_ENTRIES(m) ((m)->ntfy.has_entries) |
| + | |
| CURLMcode Curl_mntfy_dispatch_all(struct Curl_multi *multi); | |
| #endif /* HEADER_CURL_MULTI_NTFY_H */ | |