aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/lib
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2022-03-17 22:56:32 -0800
committerDavid M. Syzdek <david@syzdek.net>2022-03-17 23:00:50 -0800
commite34592fe87781feb50aa75009b6f98d90606fdcd (patch)
treec7c7e03eda1e50043fd181ed7bfac0bfaf574cb8 /lib
parent812323c166cd3d696087752691729addebc2b1f4 (diff)
downloadtinyrad-e34592fe87781feb50aa75009b6f98d90606fdcd.tar.gz
tinyrad-e34592fe87781feb50aa75009b6f98d90606fdcd.tar.bz2
tinyrad-e34592fe87781feb50aa75009b6f98d90606fdcd.tar.xz
tinyrad-e34592fe87781feb50aa75009b6f98d90606fdcd.zip
libtinyrad: adding tinyrad_filetostr()
Diffstat (limited to 'lib')
-rw-r--r--lib/libtinyrad/lfile.c36
-rw-r--r--lib/libtinyrad/lfile.h7
2 files changed, 43 insertions, 0 deletions
diff --git a/lib/libtinyrad/lfile.c b/lib/libtinyrad/lfile.c
index 400fa81..eb2bb57 100644
--- a/lib/libtinyrad/lfile.c
+++ b/lib/libtinyrad/lfile.c
@@ -235,6 +235,42 @@ int tinyrad_file_init(
235 235
236 236
237int 237int
238tinyrad_filetostr(
239 char * dst,
240 const char * filename,
241 size_t size )
242{
243 int rc;
244 int fd;
245 struct stat sb;
246 size_t len;
247 ssize_t rlen;
248
249 assert(dst != NULL);
250 assert(size > 1);
251
252 if ((rc = tinyrad_stat(filename, &sb, S_IFREG)) != TRAD_SUCCESS)
253 return((int)rc);
254
255 len = (size > (size_t)(sb.st_size+1)) ? sb.st_size : (size - 1);
256
257 if ((fd = open(filename, O_RDONLY)) == -1)
258 return(TRAD_EACCES);
259
260 if ((rlen = read(fd, dst, len)) == -1)
261 {
262 close(fd);
263 return(TRAD_EUNKNOWN);
264 };
265 dst[rlen] = '\0';
266
267 close(fd);
268
269 return(TRAD_SUCCESS);
270}
271
272
273int
238tinyrad_readline( 274tinyrad_readline(
239 int fd, 275 int fd,
240 char * str, 276 char * str,
diff --git a/lib/libtinyrad/lfile.h b/lib/libtinyrad/lfile.h
index f6971e1..abd1f92 100644
--- a/lib/libtinyrad/lfile.h
+++ b/lib/libtinyrad/lfile.h
@@ -103,6 +103,13 @@ tinyrad_file_init(
103 103
104 104
105int 105int
106tinyrad_filetostr(
107 char * dst,
108 const char * filename,
109 size_t size );
110
111
112int
106tinyrad_stat( 113tinyrad_stat(
107 const char * path, 114 const char * path,
108 struct stat * sbpi, 115 struct stat * sbpi,