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(__MODULE__, [], name: __MODULE__)
end
def start_child(sock, cb, ssl) do
spec = %{
id: Xirsys.Sockets.Client,
start: {Xirsys.Sockets.Client, :start_link, [sock, cb, ssl]},
restart: :temporary
}
Supervisor.start_child(__MODULE__, spec)
end
def terminate_child(child) do
Supervisor.terminate_child(__MODULE__, child)
end
def init([]) do
children = []
Supervisor.init(children, strategy: :simple_one_for_one)
end
end