Packages

Enhanced flexible sockets library optimized for TURN server usage with robust error handling, rate limiting, and monitoring.

Current section

Files

Jump to
xturn_sockets lib socket_supervisor.ex
Raw

lib/socket_supervisor.ex

### ----------------------------------------------------------------------
###
### Copyright (c) 2013 - 2020 Jahred Love and Xirsys LLC <experts@xirsys.com>
###
### All rights reserved.
###
### XTurn is licensed by Xirsys under the Apache
### License, Version 2.0. (the "License");
###
### you may not use this file except in compliance with the License.
### You may obtain a copy of the License at
###
### http://www.apache.org/licenses/LICENSE-2.0
###
### Unless required by applicable law or agreed to in writing, software
### distributed under the License is distributed on an "AS IS" BASIS,
### WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
### See the License for the specific language governing permissions and
### limitations under the License.
###
### See LICENSE for the full license text.
###
### ----------------------------------------------------------------------
defmodule Xirsys.Sockets.SockSupervisor do
use Supervisor
require Logger
def start_link() do
:supervisor.start_link({:local, __MODULE__}, __MODULE__, [])
end
def start_child(sock, cb, ssl) do
:supervisor.start_child(__MODULE__, [sock, cb, ssl])
end
def terminate_child(child) do
:supervisor.terminate_child(__MODULE__, child)
end
def init([]) do
tree = [worker(Xirsys.Sockets.Client, [], restart: :temporary)]
supervise(tree, strategy: :simple_one_for_one)
end
end