return dest;
} /* char *sstrncpy */
-/* ssnprintf returns zero on success, one if truncation occurred
- and a negative integer onerror. */
+/* ssnprintf returns result from vsnprintf conistent with snprintf */
int ssnprintf(char *str, size_t sz, const char *format, ...) {
va_list ap;
va_start(ap, format);
va_end(ap);
- if (ret < 0) {
- return ret;
- }
- return (size_t)ret >= sz;
+ return ret;
} /* int ssnprintf */
char *ssnprintf_alloc(char const *format, ...) /* {{{ */
return 0;
}
-ssize_t read_file_contents(const char *filename, char *buf, size_t bufsize) {
+ssize_t read_file_contents(const char *filename, void *buf, size_t bufsize) {
FILE *fh;
ssize_t ret;
return ret;
}
+ssize_t read_text_file_contents(const char *filename, char *buf,
+ size_t bufsize) {
+ ssize_t ret = read_file_contents(filename, buf, bufsize - 1);
+ if (ret < 0)
+ return ret;
+
+ buf[ret] = '\0';
+ return ret + 1;
+}
+
counter_t counter_diff(counter_t old_value, counter_t new_value) {
counter_t diff;
service_number = (int)ntohs(sa->sin6_port);
}
- if ((service_number > 0) && (service_number <= 65535))
+ if (service_number > 0)
break;
}
freeaddrinfo(ai_list);
- if ((service_number > 0) && (service_number <= 65535))
+ if (service_number > 0)
return service_number;
return -1;
} /* int service_name_to_port_number */