[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] Add directory listing functions to util.[ch]. Watch the fe...
Update of /home/or/cvsroot/tor/src/common
In directory moria:/tmp/cvs-serv30407/src/common
Modified Files:
util.c util.h
Log Message:
Add directory listing functions to util.[ch]. Watch the features creep!
Index: util.c
===================================================================
RCS file: /home/or/cvsroot/tor/src/common/util.c,v
retrieving revision 1.217
retrieving revision 1.218
diff -u -d -r1.217 -r1.218
--- util.c 26 Aug 2005 18:40:44 -0000 1.217
+++ util.c 3 Sep 2005 04:40:05 -0000 1.218
@@ -19,10 +19,13 @@
#include "log.h"
#include "crypto.h"
#include "torint.h"
+#include "container.h"
#ifdef MS_WINDOWS
#include <io.h>
#include <direct.h>
+#else
+#include <dirent.h>
#endif
#ifdef HAVE_CTYPE_H
@@ -1106,6 +1109,29 @@
}
}
+/** Return a new list containing the filenames in the directory <b>dirname</b>.
+ * Return NULL on error or if <b>dirname</b> is not a directory.
+ */
+smartlist_t *
+tor_listdir(const char *dirname)
+{
+ DIR *d;
+ smartlist_t *result;
+ struct dirent *de;
+ if (!(d = opendir(dirname)))
+ return NULL;
+
+ result = smartlist_create();
+ while ((de = readdir(d))) {
+ if (!strcmp(de->d_name, ".") ||
+ !strcmp(de->d_name, ".."))
+ continue;
+ smartlist_add(result, tor_strdup(de->d_name));
+ }
+ closedir(d);
+ return result;
+}
+
/* =====
* Net helpers
* ===== */
Index: util.h
===================================================================
RCS file: /home/or/cvsroot/tor/src/common/util.h,v
retrieving revision 1.136
retrieving revision 1.137
diff -u -d -r1.136 -r1.137
--- util.h 26 Aug 2005 07:37:07 -0000 1.136
+++ util.h 3 Sep 2005 04:40:05 -0000 1.137
@@ -123,6 +123,7 @@
char *read_file_to_str(const char *filename, int bin);
char *parse_line_from_str(char *line, char **key_out, char **value_out);
char *expand_filename(const char *filename);
+struct smartlist_t *tor_listdir(const char *dirname);
/* Net helpers */
int is_internal_IP(uint32_t ip);