]> granicus.if.org Git - curl/commitdiff
remove the usage of setvbuf() and use fflush() instead if no buffering should
authorDaniel Stenberg <daniel@haxx.se>
Fri, 4 Jul 2003 17:16:34 +0000 (17:16 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 4 Jul 2003 17:16:34 +0000 (17:16 +0000)
be done on the output

src/main.c

index 6b84f3f33a8d8d6c249ce82359abb48638fee557..a40bc8be7509b67cfbf8bee78bb853aa0615c128 100644 (file)
@@ -2063,6 +2063,7 @@ struct OutStruct {
 
 int my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
 {
+  int rc;
   struct OutStruct *out=(struct OutStruct *)stream;
   struct Configurable *config = out->config;
   if(out && !out->stream) {
@@ -2070,12 +2071,6 @@ int my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
     out->stream=fopen(out->filename, "wb");
     if(!out->stream)
       return -1; /* failure */
-    if(config->nobuffer) {
-      /* disable output buffering */
-#ifdef HAVE_SETVBUF
-      setvbuf(out->stream, NULL, _IONBF, 0);
-#endif
-    }
   }
 
   if(config->recvpersecond) {
@@ -2098,7 +2093,13 @@ int my_fwrite(void *buffer, size_t size, size_t nmemb, void *stream)
     config->lastrecvtime = now;
   }
 
-  return fwrite(buffer, size, nmemb, out->stream);
+  rc = fwrite(buffer, size, nmemb, out->stream);
+  
+  if(config->nobuffer)
+    /* disable output buffering */
+    fflush(out->stream);
+  
+  return rc;
 }
 
 struct InStruct {