summaryrefslogtreecommitdiffstats
path: root/runtime/srutils.c
diff options
context:
space:
mode:
authorRainer Gerhards <rgerhards@adiscon.com>2009-06-16 13:59:09 +0200
committerRainer Gerhards <rgerhards@adiscon.com>2009-06-16 13:59:09 +0200
commitb5f3387357ffa11e238ddfe0fa38af4fffba6081 (patch)
tree80447feb5aac91ca4d515ae373167efca4dea9ca /runtime/srutils.c
parentcf1289737659a8a807419b51566613c9fb776005 (diff)
parentaef1a38fe8c7472362904b2f90c67113b21034ab (diff)
downloadrsyslog-b5f3387357ffa11e238ddfe0fa38af4fffba6081.tar.gz
rsyslog-b5f3387357ffa11e238ddfe0fa38af4fffba6081.tar.xz
rsyslog-b5f3387357ffa11e238ddfe0fa38af4fffba6081.zip
Merge branch 'omfile' into v5-devel
Note that this was NOT a trivial merge, and there may be some issues. This needs to be seen when we continue developing. Conflicts: runtime/msg.h runtime/obj.h runtime/queue.c runtime/srUtils.h runtime/stream.c runtime/stream.h runtime/wti.c tests/Makefile.am tools/omfile.c tools/syslogd.c
Diffstat (limited to 'runtime/srutils.c')
-rw-r--r--runtime/srutils.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/runtime/srutils.c b/runtime/srutils.c
index d01ca20d..5407531f 100644
--- a/runtime/srutils.c
+++ b/runtime/srutils.c
@@ -553,6 +553,33 @@ int getSubString(uchar **ppSrc, char *pDst, size_t DstSize, char cSep)
}
+/* get the size of a file or return appropriate error code. If an error is returned,
+ * *pSize content is undefined.
+ * rgerhards, 2009-06-12
+ */
+rsRetVal
+getFileSize(uchar *pszName, off_t *pSize)
+{
+ int ret;
+ struct stat statBuf;
+ DEFiRet;
+
+ ret = stat((char*) pszName, &statBuf);
+ if(ret == -1) {
+ switch(errno) {
+ case EACCES: ABORT_FINALIZE(RS_RET_NO_FILE_ACCESS);
+ case ENOTDIR:
+ case ENOENT: ABORT_FINALIZE(RS_RET_FILE_NOT_FOUND);
+ default: ABORT_FINALIZE(RS_RET_FILE_NO_STAT);
+ }
+ }
+
+ *pSize = statBuf.st_size;
+
+finalize_it:
+ RETiRet;
+}
+
/* vim:set ai:
*/