Implemented ticket #185: Added pj_file_flush() to file I/O API to flush file buffers
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@1074 74dad513-b988-da41-8d7b-12977e46ad98
diff --git a/pjlib/src/pj/config.c b/pjlib/src/pj/config.c
index 66e72fa..75ab36f 100644
--- a/pjlib/src/pj/config.c
+++ b/pjlib/src/pj/config.c
@@ -21,7 +21,7 @@
#include <pj/ioqueue.h>
static const char *id = "config.c";
-const char *PJ_VERSION = "0.5.10.1-trunk";
+const char *PJ_VERSION = "0.5.10.2-trunk";
PJ_DEF(void) pj_dump_config(void)
{
diff --git a/pjlib/src/pj/file_io_ansi.c b/pjlib/src/pj/file_io_ansi.c
index a242581..6d340ce 100644
--- a/pjlib/src/pj/file_io_ansi.c
+++ b/pjlib/src/pj/file_io_ansi.c
@@ -154,4 +154,14 @@
return PJ_SUCCESS;
}
+PJ_DEF(pj_status_t) pj_file_flush(pj_oshandle_t fd)
+{
+ int rc;
+ rc = fflush((FILE*)fd);
+ if (rc == EOF) {
+ return PJ_RETURN_OS_ERROR(errno);
+ }
+
+ return PJ_SUCCESS;
+}
diff --git a/pjlib/src/pj/file_io_win32.c b/pjlib/src/pj/file_io_win32.c
index 2497be6..2784849 100644
--- a/pjlib/src/pj/file_io_win32.c
+++ b/pjlib/src/pj/file_io_win32.c
@@ -204,3 +204,17 @@
return PJ_SUCCESS;
}
+PJ_DEF(pj_status_t) pj_file_flush(pj_oshandle_t fd)
+{
+ BOOL rc;
+
+ rc = FlushFileBuffers(fd);
+
+ if (!rc) {
+ DWORD dwStatus = GetLastError();
+ if (dwStatus != 0)
+ return PJ_RETURN_OS_ERROR(dwStatus);
+ }
+
+ return PJ_SUCCESS;
+}