static unsigned long read_proc_value(const char *path)
{
int ret, fd;
+ ssize_t size_ret;
long r_val;
unsigned long val = 0;
char buf[64];
goto error;
}
- ret = read(fd, buf, sizeof(buf));
- if (ret < 0) {
+ size_ret = lttng_read(fd, buf, sizeof(buf));
+ /*
+ * Allow reading a file smaller than buf, but keep space for
+ * final \0.
+ */
+ if (size_ret < 0 || size_ret >= sizeof(buf)) {
PERROR("read proc failed");
goto error_close;
}
+ buf[size_ret] = '\0';
errno = 0;
r_val = strtol(buf, NULL, 10);
LTTNG_HIDDEN
void lttcomm_inet_init(void)
{
- unsigned long syn_retries, fin_timeout, syn_timeout;
+ unsigned long syn_retries, fin_timeout, syn_timeout, env;
+
+ env = lttcomm_get_network_timeout();
+ if (env) {
+ lttcomm_inet_tcp_timeout = env;
+ goto end;
+ }
/* Assign default value and see if we can change it. */
lttcomm_inet_tcp_timeout = DEFAULT_INET_TCP_TIMEOUT;
max_t(unsigned long, syn_timeout, fin_timeout),
lttcomm_inet_tcp_timeout);
+end:
DBG("TCP inet operation timeout set to %lu sec", lttcomm_inet_tcp_timeout);
}