From f6100159e49f3cc087bc757fe5b175cbd0019437 Mon Sep 17 00:00:00 2001 From: James Maki Date: Wed, 12 May 2010 13:23:59 -0500 Subject: add gps to serial example --- src/utils.c | 82 +++++++++++++++++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 37 deletions(-) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index 6f98ab0..7a15427 100644 --- a/src/utils.c +++ b/src/utils.c @@ -32,7 +32,8 @@ #include "log.h" #include "utils.h" -int systemf(const char *fmt, ...) { +int systemf(const char *fmt, ...) +{ int err; va_list ap; char *buf; @@ -40,7 +41,7 @@ int systemf(const char *fmt, ...) { va_start(ap, fmt); err = vasprintf(&buf, fmt, ap); va_end(ap); - if(err == -1) { + if (err == -1) { log_error("out of memory"); return -1; } @@ -53,27 +54,29 @@ int systemf(const char *fmt, ...) { return err; } -ssize_t safe_read(int fd, void *buf, size_t count) { +ssize_t safe_read(int fd, void *buf, size_t count) +{ ssize_t n; do { n = read(fd, buf, count); - } while(n < 0 && errno == EINTR); + } while (n < 0 && errno == EINTR); return n; } -ssize_t safe_readn(int fd, void *buf, size_t len) { +ssize_t safe_readn(int fd, void *buf, size_t len) +{ ssize_t cc; ssize_t total; total = 0; - while(len) { + while (len) { cc = safe_read(fd, buf, len); - if(cc < 0) { - if(total) { + if (cc < 0) { + if (total) { return total; } return cc; @@ -87,58 +90,62 @@ ssize_t safe_readn(int fd, void *buf, size_t len) { return total; } -ssize_t safe_write(int fd, const void *buf, size_t count) { +ssize_t safe_write(int fd, const void *buf, size_t count) +{ ssize_t n; do { n = write(fd, buf, count); - } while(n < 0 && errno == EINTR); + } while (n < 0 && errno == EINTR); return n; } -ssize_t full_write(int fd, const void *buf, size_t len) { +ssize_t full_write(int fd, const void *buf, size_t len) +{ ssize_t cc; ssize_t total; total = 0; - while(len) { + while (len) { cc = safe_write(fd, buf, len); - if(cc < 0) { - if(total) { + if (cc < 0) { + if (total) { return total; } return cc; } total += cc; - buf = ((const char *)buf) + cc; + buf = ((const char *) buf) + cc; len -= cc; } return total; } -int set_nonblocking(int fd) { +int set_nonblocking(int fd) +{ int err; err = fcntl(fd, F_GETFL, 0); - if(err < 0) { - log_warning("fcntl(fd, F_GETFL, 0) failed: errno %d", errno); + if (err < 0) { + log_warning("fcntl(fd, F_GETFL, 0) failed: %m"); return err; } err = fcntl(fd, F_SETFL, err | O_NONBLOCK); - if(err < 0) { - log_warning("fcntl(fd, F_SETFL, opts | O_NONBLOCK) failed: errno %d", errno); + if (err < 0) { + log_warning("fcntl(fd, F_SETFL, opts | O_NONBLOCK) failed: %m"); return err; } return err; } -int host_to_inet(const char *host, struct in_addr *in) { +int host_to_inet(const char *host, struct in_addr *in) +{ struct hostent h; struct hostent *hp; char buf[1024]; @@ -146,7 +153,7 @@ int host_to_inet(const char *host, struct in_addr *in) { int err; err = gethostbyname_r(host, &h, buf, sizeof(buf), &hp, &herrno); - if(hp == NULL) { + if (hp == NULL) { log_error("gethostbyname_r: %d", herrno); return -1; } @@ -156,33 +163,34 @@ int host_to_inet(const char *host, struct in_addr *in) { return 0; } -int inet_conn_str(char *host, int port, int type) { - struct hostent h; +int inet_conn_str(const char *host, int port, int type) +{ + struct hostent h; struct hostent *hp; char buf[1024]; int herrno; int err; err = gethostbyname_r(host, &h, buf, sizeof(buf), &hp, &herrno); - if(hp == NULL) { + if (hp == NULL) { log_error("gethostbyname_r: %d", herrno); return -1; } int sd = socket(PF_INET, type, 0); - if(sd == -1) { - log_error("socket: %d", errno); + if (sd == -1) { + log_error("socket: %m"); return -1; } struct sockaddr_in serv_addr; - serv_addr.sin_family = AF_INET; + serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(port); memcpy(&serv_addr.sin_addr.s_addr, h.h_addr_list[0], 4); err = connect(sd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)); - if(err == -1) { - log_error("connect: %d", errno); + if (err == -1) { + log_error("connect: %m"); close(sd); return -1; } @@ -190,28 +198,28 @@ int inet_conn_str(char *host, int port, int type) { return sd; } -int inet_conn_ia(struct in_addr *host, int port, int type) { +int inet_conn_ia(struct in_addr *host, int port, int type) +{ int err; int sd = socket(PF_INET, type, 0); - if(sd == -1) { - log_error("socket: %d", errno); + if (sd == -1) { + log_error("socket: %m"); return -1; } struct sockaddr_in serv_addr; memset(&serv_addr, 0, sizeof(serv_addr)); - serv_addr.sin_family = AF_INET; + serv_addr.sin_family = AF_INET; serv_addr.sin_port = htons(port); serv_addr.sin_addr.s_addr = host->s_addr; err = connect(sd, (struct sockaddr *) &serv_addr, sizeof(serv_addr)); - if(err == -1) { - log_error("connect: %d", errno); + if (err == -1) { + log_error("connect: %m"); close(sd); return -1; } return sd; } - -- cgit v1.2.3