Signed-off-by: Colin McCabe <cmccabe@xxxxxxxxxxxxxx> --- lib/common.c | 29 +++++++++++++++-------------- 1 files changed, 15 insertions(+), 14 deletions(-) diff --git a/lib/common.c b/lib/common.c index 68f60f8..db20e2a 100644 --- a/lib/common.c +++ b/lib/common.c @@ -1,4 +1,5 @@ +#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> @@ -61,26 +62,26 @@ const char *cld_errstr(enum cle_err_codes ecode) */ int cld_readport(const char *fname) { - enum { LEN = 11 }; - char buf[LEN+1]; long port; - int fd; - int rc; + gchar *buf; + GError *err = NULL; + gsize len; - if ((fd = open(fname, O_RDONLY)) == -1) - return -errno; - rc = read(fd, buf, LEN); - close(fd); - if (rc < 0) - return -errno; - if (rc == 0) - return -EPIPE; - buf[rc] = 0; + if (!g_file_get_contents(fname, &buf, &len, &err)) { + fprintf(stderr, "Unable to read port file: %s\n", + err->message); + g_error_free(err); + return -EIO; + } + if (len == 0) { + g_free(buf); + return -EPIPE; + } port = strtol(buf, NULL, 10); + g_free(buf); if (port <= 0 || port >= 65636) return -EDOM; return (int)port; } - -- 1.6.2.5 -- To unsubscribe from this list: send the line "unsubscribe hail-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html