Compare commits
2 commits
19ae6e9dcb
...
e065c4f8ef
Author | SHA1 | Date | |
---|---|---|---|
|
e065c4f8ef | ||
b2ca9fb81a |
2 changed files with 8 additions and 1 deletions
4
libtel.c
4
libtel.c
|
@ -1,4 +1,5 @@
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
@ -54,8 +55,9 @@ int tel_get_addr(char *ip, char *port, struct sockaddr **addr, socklen_t *addr_l
|
||||||
int res = getaddrinfo(ip, port, &hints, &info);
|
int res = getaddrinfo(ip, port, &hints, &info);
|
||||||
if(res != 0) return res;
|
if(res != 0) return res;
|
||||||
|
|
||||||
*addr = info->ai_addr;
|
*addr = malloc(info->ai_addrlen);
|
||||||
*addr_len = info->ai_addrlen;
|
*addr_len = info->ai_addrlen;
|
||||||
|
memcpy(*addr, info->ai_addr, info->ai_addrlen);
|
||||||
|
|
||||||
freeaddrinfo(info);
|
freeaddrinfo(info);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
5
teld.c
5
teld.c
|
@ -157,6 +157,7 @@ void client_pickup(struct call_buf *call_buf, int stream) {
|
||||||
union tel_sa_any remote_addr;
|
union tel_sa_any remote_addr;
|
||||||
socklen_t remote_addr_len = sizeof(union tel_sa_any);
|
socklen_t remote_addr_len = sizeof(union tel_sa_any);
|
||||||
res = tel_read_sockaddr(stream, &remote_addr, &remote_addr_len);
|
res = tel_read_sockaddr(stream, &remote_addr, &remote_addr_len);
|
||||||
|
if(res < 0) goto err;
|
||||||
|
|
||||||
int idx = call_buf_search(call_buf, &remote_addr);
|
int idx = call_buf_search(call_buf, &remote_addr);
|
||||||
if(idx < 0) {
|
if(idx < 0) {
|
||||||
|
@ -175,6 +176,10 @@ void client_pickup(struct call_buf *call_buf, int stream) {
|
||||||
};
|
};
|
||||||
close(fd);
|
close(fd);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
err:
|
||||||
|
printf("error picking up call: %s\n", strerror(errno));
|
||||||
|
tel_write_err(stream, strerror(errno));
|
||||||
}
|
}
|
||||||
|
|
||||||
void client_call(int stream, struct config cfg) {
|
void client_call(int stream, struct config cfg) {
|
||||||
|
|
Loading…
Reference in a new issue