return;
}
- desc->accept_fd = socket(ast_sockaddr_is_ipv6(&desc->local_address) ?
+ desc->accept_fd = ast_socket_nonblock(ast_sockaddr_is_ipv6(&desc->local_address) ?
AF_INET6 : AF_INET, SOCK_STREAM, 0);
if (desc->accept_fd < 0) {
ast_log(LOG_ERROR, "Unable to allocate socket for %s: %s\n", desc->name, strerror(errno));
ast_log(LOG_ERROR, "Unable to listen for %s!\n", desc->name);
goto error;
}
- ast_fd_set_flags(desc->accept_fd, O_NONBLOCK);
if (ast_pthread_create_background(&desc->master, NULL, desc->accept_fn, desc)) {
ast_log(LOG_ERROR, "Unable to launch thread for %s on %s: %s\n",
desc->name,
udptl->tx[i].buf_len = -1;
}
- if ((udptl->fd = socket(ast_sockaddr_is_ipv6(addr) ?
+ if ((udptl->fd = ast_socket_nonblock(ast_sockaddr_is_ipv6(addr) ?
AF_INET6 : AF_INET, SOCK_DGRAM, 0)) < 0) {
ast_free(udptl);
ast_log(LOG_WARNING, "Unable to allocate socket: %s\n", strerror(errno));
return NULL;
}
- ast_fd_set_flags(udptl->fd, O_NONBLOCK);
#ifdef SO_NO_CHECK
if (cfg->general->nochecksums)
ast_sockaddr_set_port(&addrs[i], AGI_PORT);
}
- if ((s = socket(addrs[i].ss.ss_family, SOCK_STREAM, IPPROTO_TCP)) < 0) {
+ if ((s = ast_socket_nonblock(addrs[i].ss.ss_family, SOCK_STREAM, IPPROTO_TCP)) < 0) {
ast_log(LOG_WARNING, "Unable to create socket: %s\n", strerror(errno));
continue;
}
- if (ast_fd_set_flags(s, O_NONBLOCK)) {
- close(s);
- continue;
- }
-
if (ast_connect(s, &addrs[i]) && errno == EINPROGRESS) {
if (handle_connection(agiurl, addrs[i], s)) {
static int create_new_socket(const char *type, int af)
{
- int sock = socket(af, SOCK_DGRAM, 0);
+ int sock = ast_socket_nonblock(af, SOCK_DGRAM, 0);
if (sock < 0) {
- if (!type) {
- type = "RTP/RTCP";
- }
ast_log(LOG_WARNING, "Unable to allocate %s socket: %s\n", type, strerror(errno));
- } else {
- ast_fd_set_flags(sock, O_NONBLOCK);
+ return sock;
+ }
+
#ifdef SO_NO_CHECK
- if (nochecksums) {
- setsockopt(sock, SOL_SOCKET, SO_NO_CHECK, &nochecksums, sizeof(nochecksums));
- }
-#endif
+ if (nochecksums) {
+ setsockopt(sock, SOL_SOCKET, SO_NO_CHECK, &nochecksums, sizeof(nochecksums));
}
+#endif
return sock;
}
static void *pthread_timer_open(void)
{
struct pthread_timer *timer;
- int i;
if (!(timer = ao2_alloc(sizeof(*timer), pthread_timer_destructor))) {
errno = ENOMEM;
timer->pipe[PIPE_READ] = timer->pipe[PIPE_WRITE] = -1;
timer->state = TIMER_STATE_IDLE;
- if (pipe(timer->pipe)) {
+ if (ast_pipe_nonblock(timer->pipe)) {
ao2_ref(timer, -1);
return NULL;
}
- for (i = 0; i < ARRAY_LEN(timer->pipe); ++i) {
- ast_fd_set_flags(timer->pipe[i], O_NONBLOCK);
- }
-
ao2_lock(pthread_timers);
if (!ao2_container_count(pthread_timers)) {
ast_mutex_lock(&timing_thread.lock);