|
|
|
@ -85,11 +85,7 @@ static void ast_netsock_destroy(struct ast_netsock *netsock)
|
|
|
|
|
|
|
|
|
|
struct ast_netsock_list *ast_netsock_list_alloc(void)
|
|
|
|
|
{
|
|
|
|
|
struct ast_netsock_list *res;
|
|
|
|
|
|
|
|
|
|
res = calloc(1, sizeof(*res));
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
return ast_calloc(1, sizeof(struct ast_netsock_list));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int ast_netsock_init(struct ast_netsock_list *list)
|
|
|
|
@ -149,12 +145,13 @@ struct ast_netsock *ast_netsock_bindaddr(struct ast_netsock_list *list, struct i
|
|
|
|
|
if (setsockopt(netsocket, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)))
|
|
|
|
|
ast_log(LOG_WARNING, "Unable to set TOS to %d\n", tos);
|
|
|
|
|
|
|
|
|
|
ns = ast_calloc(1, sizeof(struct ast_netsock));
|
|
|
|
|
if (ns) {
|
|
|
|
|
if (!(ns = ast_calloc(1, sizeof(struct ast_netsock)))) {
|
|
|
|
|
close(netsocket);
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Establish I/O callback for socket read */
|
|
|
|
|
ioref = ast_io_add(ioc, netsocket, callback, AST_IO_IN, ns);
|
|
|
|
|
if (!ioref) {
|
|
|
|
|
ast_log(LOG_WARNING, "Out of memory!\n");
|
|
|
|
|
if (!(ioref = ast_io_add(ioc, netsocket, callback, AST_IO_IN, ns))) {
|
|
|
|
|
close(netsocket);
|
|
|
|
|
free(ns);
|
|
|
|
|
return NULL;
|
|
|
|
@ -166,10 +163,6 @@ struct ast_netsock *ast_netsock_bindaddr(struct ast_netsock_list *list, struct i
|
|
|
|
|
ns->data = data;
|
|
|
|
|
memcpy(&ns->bindaddr, bindaddr, sizeof(ns->bindaddr));
|
|
|
|
|
ASTOBJ_CONTAINER_LINK(list, ns);
|
|
|
|
|
} else {
|
|
|
|
|
ast_log(LOG_WARNING, "Out of memory!\n");
|
|
|
|
|
close(netsocket);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ns;
|
|
|
|
|
}
|
|
|
|
|