summaryrefslogtreecommitdiff
path: root/src/ua.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ua.c')
-rw-r--r--src/ua.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/ua.c b/src/ua.c
index 5aeb3bf..b6dab07 100644
--- a/src/ua.c
+++ b/src/ua.c
@@ -266,6 +266,16 @@ static void call_event_handler(struct call *call, enum call_event ev,
switch (ev) {
case CALL_EVENT_INCOMING:
+
+ if (contact_block_access(peeruri)) {
+
+ info("ua: blocked access: \"%s\"\n", peeruri);
+
+ ua_event(ua, UA_EVENT_CALL_CLOSED, call, str);
+ mem_deref(call);
+ break;
+ }
+
switch (ua->acc->answermode) {
case ANSWERMODE_EARLY:
@@ -1157,6 +1167,10 @@ int ua_init(const char *software, bool udp, bool tcp, bool tls,
play_init();
+ err = contact_init();
+ if (err)
+ return err;
+
/* Initialise Network */
err = net_init(&cfg->net, prefer_ipv6 ? AF_INET6 : AF_INET);
if (err) {
@@ -1219,6 +1233,7 @@ void ua_close(void)
net_close();
play_close();
ui_reset();
+ contact_close();
uag.evsock = mem_deref(uag.evsock);
uag.sock = mem_deref(uag.sock);