add new pa_readlink() API
authorLennart Poettering <lennart@poettering.net>
Mon, 29 Oct 2007 15:31:24 +0000 (15:31 +0000)
committerLennart Poettering <lennart@poettering.net>
Mon, 29 Oct 2007 15:31:24 +0000 (15:31 +0000)
git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@1974 fefdeb5f-60dc-0310-8127-8f9354f1896f

src/pulsecore/core-util.c
src/pulsecore/core-util.h

index a644b66..4962112 100644 (file)
@@ -1507,3 +1507,27 @@ void pa_close_pipe(int fds[2]) {
 
     fds[0] = fds[1] = -1;
 }
+
+char *pa_readlink(const char *p) {
+    size_t l = 100;
+
+    for (;;) {
+        char *c;
+        ssize_t n;
+
+        c = pa_xnew(char, l);
+
+        if ((n = readlink(p, c, l-1)) < 0) {
+            pa_xfree(c);
+            return NULL;
+        }
+
+        if (n < l-1) {
+            c[l-1] = 0;
+            return c;
+        }
+
+        pa_xfree(c);
+        l *= 2;
+    }
+}
index 0fe865e..d26cf24 100644 (file)
@@ -122,4 +122,6 @@ static inline unsigned pa_make_power_of_two(unsigned n) {
 
 void pa_close_pipe(int fds[2]);
 
+char *pa_readlink(const char *p);
+
 #endif