diff --git a/net/siproxd/Makefile b/net/siproxd/Makefile index a2d58a8..489e36f 100644 --- a/net/siproxd/Makefile +++ b/net/siproxd/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2014-2015 OpenWrt.org +# Copyright (C) 2014-2018 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=siproxd -PKG_VERSION:=0.8.1 -PKG_RELEASE:=5 +PKG_VERSION:=0.8.2 +PKG_RELEASE:=2 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=@SF/siproxd -PKG_MD5SUM:=1a6f9d13aeb2d650375c9a346ac6cbaf +PKG_HASH:=526ce491b0cc189e2766c62432aff3ebb995e551d7261ea32c02a90c7bf7ccd0 PKG_FIXUP:=autoreconf PKG_INSTALL:=1 @@ -48,11 +48,11 @@ endef CONFIGURE_ARGS+= \ --with-libosip-prefix="$(STAGING_DIR)/usr" \ + --disable-ltdl-convenience \ --disable-doc MAKE_FLAGS+= \ - SUBDIRS="src scripts contrib" \ - LIBLTDL="$(STAGING_DIR)/usr/lib/libltdl.la" \ + SUBDIRS="src scripts contrib" define Package/siproxd/install $(INSTALL_DIR) $(1)/usr/sbin @@ -72,18 +72,23 @@ define BuildPlugin define Package/siproxd-mod-$(1)/install $(INSTALL_DIR) $$(1)/usr/lib/siproxd - $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/siproxd/plugin_$(1)*.so* $$(1)/usr/lib/siproxd + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/siproxd/plugin_$(1).so $$(1)/usr/lib/siproxd endef $$(eval $$(call BuildPackage,siproxd-mod-$(1))) endef $(eval $(call BuildPackage,siproxd)) +$(eval $(call BuildPlugin,codecfilter)) $(eval $(call BuildPlugin,defaulttarget)) $(eval $(call BuildPlugin,demo)) $(eval $(call BuildPlugin,fix_bogus_via)) +$(eval $(call BuildPlugin,fix_DTAG)) +$(eval $(call BuildPlugin,fix_fbox_anoncall)) $(eval $(call BuildPlugin,logcall)) $(eval $(call BuildPlugin,prefix)) $(eval $(call BuildPlugin,regex)) $(eval $(call BuildPlugin,shortdial)) +$(eval $(call BuildPlugin,stripheader)) $(eval $(call BuildPlugin,stun)) +$(eval $(call BuildPlugin,siptrunk)) diff --git a/net/siproxd/files/siproxd.config b/net/siproxd/files/siproxd.config index b65148c..49b16ad 100644 --- a/net/siproxd/files/siproxd.config +++ b/net/siproxd/files/siproxd.config @@ -1,3 +1,25 @@ config siproxd general - option if_inbound lan - option if_outbound wan + # Custom options allow using OpenWRT network names, and defaults should + # work out-of-the-box. If your SIP devices do not REGISTER externally, + # you may also need to open firewall ports: tcp/udp 5060, udp 7070-7089. + option interface_inbound lan + option interface_outbound wan + +# All other documented siproxd configuration directives are supported. Use +# a UCI 'option' for single-instance directives, and UCI 'list' entries for +# directives that allow multiple instances, per the examples below. + + # Define low-level network devices, overriding interface_in/outbound: +# option if_inbound eth0 +# option if_outbound ppp0 + + # Enable DEBUG logging for configuration messages: +# option debug_level 0x00000100 +# option silence_log 0 + + # Load two plugins: one that logs SIP call details to syslog, and one + # that strips out G.729, GSM codecs: +# list load_plugin 'plugin_logcall.so' +# list load_plugin 'plugin_codecfilter.so' +# list plugin_codecfilter_blacklist G729 +# list plugin_codecfilter_blacklist GSM diff --git a/net/siproxd/files/siproxd.init b/net/siproxd/files/siproxd.init index 1ad6e0f..deb61cf 100644 --- a/net/siproxd/files/siproxd.init +++ b/net/siproxd/files/siproxd.init @@ -7,226 +7,166 @@ START=50 SERVICE_USE_PID=1 siproxd_bin="/usr/sbin/siproxd" -siproxd_conf_dir="/var/etc" +siproxd_conf_dir="/var/etc/siproxd" siproxd_conf_prefix="$siproxd_conf_dir/siproxd-" siproxd_registration_dir="/var/lib/siproxd" +siproxd_registration_prefix="$siproxd_registration_dir/siproxd-" siproxd_pid_dir="/var/run/siproxd" -deal_with_lists () { - echo "$2" = "$1" >> "$siproxd_conf_prefix$cfg" + +# Check if a UCI option is set, or else apply a provided default. + +default_conf() { + local opt="$1" + local default="$2" + local val + + config_get "$opt" "$sec" "$opt" + eval "val=\"\${$opt}\"" + + [ -z "$val" ] || return 0 + [ -n "$default" ] || return 0 + echo "$opt" = "$default" >> "$siproxd_conf_prefix$sec.conf" } -start_instance() { - local cfg="$1" +# Use user-friendly network names (e.g. "wan", "lan") from options +# 'interface_inbound' and 'interface_outbound', but use standard siproxd +# parameters 'if_inbound' and 'if_outbound' if explicitly set. - config_get if_inbound "$cfg" if_inbound - config_get if_outbound "$cfg" if_outbound - config_get host_outbound "$cfg" host_outbound - config_get hosts_allow_reg "$cfg" hosts_allow_reg - config_get hosts_allow_sip "$cfg" hosts_allow_sip - config_get hosts_deny_sip "$cfg" hosts_deny_sip - config_get sip_listen_port "$cfg" sip_listen_port 5060 - config_get_bool daemonize "$cfg" daemonize 1 - config_get silence_log "$cfg" silence_log 4 - config_get user "$cfg" user nobody - config_get chrootjail "$cfg" chrootjail - config_get registration_file "$cfg" registration_file "$siproxd_registration_dir/siproxd_registrations-$cfg" - config_get autosave_registrations "$cfg" autosave_registrations 300 - config_get pid_file "$cfg" pid_file "$siproxd_pid_dir/siproxd-$cfg.pid" - config_get_bool rtp_proxy_enable "$cfg" rtp_proxy_enable 1 - config_get rtp_port_low "$cfg" rtp_port_low 7070 - config_get rtp_port_high "$cfg" rtp_port_high 7089 - config_get rtp_timeout "$cfg" rtp_timeout 300 - config_get rtp_dscp "$cfg" rtp_dscp 46 - config_get sip_dscp "$cfg" sip_dscp 0 - config_get rtp_input_dejitter "$cfg" rtp_input_dejitter 0 - config_get rtp_output_dejitter "$cfg" rtp_output_dejitter 0 - config_get tcp_timeout "$cfg" tcp_timeout 600 - config_get tcp_connect_timeout "$cfg" tcp_connect_timeout 500 - config_get tcp_keepalive "$cfg" tcp_keepalive 20 - config_get default_expires "$cfg" default_expires 600 - config_get proxy_auth_realm "$cfg" proxy_auth_realm - config_get proxy_auth_passwd "$cfg" proxy_auth_passwd - config_get proxy_auth_pwfile "$cfg" proxy_auth_pwfile - config_get debug_level "$cfg" debug_level 0x00000000 - config_get debug_port "$cfg" debug_port 0 - config_get mask_host "$cfg" mask_host - config_get masked_host "$cfg" masked_host - config_get ua_string "$cfg" ua_string Siproxd-UA - config_get use_rport "$cfg" use_rport 0 - config_get outbound_proxy_host "$cfg" outbound_proxy_host - config_get outbound_proxy_port "$cfg" outbound_proxy_port - config_get outbound_domain_name "$cfg" outbound_domain_name - config_get outbound_domain_host "$cfg" outbound_domain_host - config_get outbound_domain_port "$cfg" outbound_domain_port +setup_networks() { + local sec="$1" + local _int_inbound + local _int_outbound + local _dev_inbound + local _dev_outbound - if [ -f "$siproxd_conf_prefix$cfg" ]; then - rm "$siproxd_conf_prefix$cfg" - fi - if [ -n "$if_inbound" ]; then - echo if_inbound = "$if_inbound" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$if_outbound" ]; then - echo if_outbound = "$if_outbound" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$host_outbound" ]; then - echo host_outbound = "$host_outbound" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$hosts_allow_reg" ]; then - echo hosts_allow_reg = "$hosts_allow_reg" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$hosts_allow_sip" ]; then - echo hosts_allow_sip = "$hosts_allow_sip" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$hosts_deny_sip" ]; then - echo hosts_deny_sip = "$hosts_deny_sip" >> "$siproxd_conf_prefix$cfg" - fi - echo sip_listen_port = "$sip_listen_port" >> "$siproxd_conf_prefix$cfg" - echo daemonize = "$daemonize" >> "$siproxd_conf_prefix$cfg" - echo silence_log = "$silence_log" >> "$siproxd_conf_prefix$cfg" - echo user = "$user" >> "$siproxd_conf_prefix$cfg" - if [ -n "$chrootjail" ]; then - if [ ! -d "$chrootjail" ]; then - mkdir -p "$chrootjail" - chmod 0755 "$chrootjail" - fi - echo chrootjail = "$chrootjail" >> "$siproxd_conf_prefix$cfg" - fi - echo registration_file = "$registration_file" >> "$siproxd_conf_prefix$cfg" - echo autosave_registrations = "$autosave_registrations" >> "$siproxd_conf_prefix$cfg" + config_get _int_inbound "$sec" interface_inbound + config_get _int_outbound "$sec" interface_outbound - echo pid_file = "$pid_file" >> "$siproxd_conf_prefix$cfg" - echo rtp_proxy_enable = "$rtp_proxy_enable" >> "$siproxd_conf_prefix$cfg" - echo rtp_port_low = "$rtp_port_low" >> "$siproxd_conf_prefix$cfg" - echo rtp_port_high = "$rtp_port_high" >> "$siproxd_conf_prefix$cfg" - echo rtp_timeout = "$rtp_timeout" >> "$siproxd_conf_prefix$cfg" - echo rtp_dscp = "$rtp_dscp" >> "$siproxd_conf_prefix$cfg" - echo sip_dscp = "$sip_dscp" >> "$siproxd_conf_prefix$cfg" - echo rtp_input_dejitter = "$rtp_input_dejitter" >> "$siproxd_conf_prefix$cfg" - echo rtp_output_dejitter = "$rtp_output_dejitter" >> "$siproxd_conf_prefix$cfg" - echo tcp_timeout = "$tcp_timeout" >> "$siproxd_conf_prefix$cfg" - echo tcp_connect_timeout = "$tcp_connect_timeout" >> "$siproxd_conf_prefix$cfg" - echo tcp_keepalive = "$tcp_keepalive" >> "$siproxd_conf_prefix$cfg" - echo default_expires = "$default_expires" >> "$siproxd_conf_prefix$cfg" - if [ -n "$proxy_auth_realm" ]; then - echo proxy_auth_realm = "$proxy_auth_realm" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$proxy_auth_passwd" ]; then - echo proxy_auth_passwd = "$proxy_auth_passwd" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$proxy_auth_pwfile" ]; then - echo proxy_auth_pwfile = "$proxy_auth_pwfile" >> "$siproxd_conf_prefix$cfg" - fi - echo debug_level = "$debug_level" >> "$siproxd_conf_prefix$cfg" - echo debug_port = "$debug_port" >> "$siproxd_conf_prefix$cfg" - if [ -n "$mask_host" ]; then - echo mask_host = "$mask_host" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$masked_host" ]; then - echo masked_host = "$masked_host" >> "$siproxd_conf_prefix$cfg" - fi - echo ua_string = "$ua_string" >> "$siproxd_conf_prefix$cfg" - echo use_rport = "$use_rport" >> "$siproxd_conf_prefix$cfg" - if [ -n "$outbound_proxy_host" ]; then - echo outbound_proxy_host = "$outbound_proxy_host" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$outbound_proxy_port" ]; then - echo outbound_proxy_port = "$outbound_proxy_port" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$outbound_domain_name" ]; then - echo outbound_domain_name = "$outbound_domain_name" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$outbound_domain_host" ]; then - echo outbound_domain_host = "$outbound_domain_host" >> "$siproxd_conf_prefix$cfg" - fi - if [ -n "$outbound_domain_port" ]; then - echo outbound_domain_port = "$outbound_domain_port" >> "$siproxd_conf_prefix$cfg" - fi + network_get_physdev _dev_inbound $_int_inbound + network_get_physdev _dev_outbound $_int_outbound - # handle plugins - config_get plugindir "$cfg" plugindir "/usr/lib/siproxd/" - echo plugindir = "$plugindir" >> "$siproxd_conf_prefix$cfg" + default_conf if_inbound $_dev_inbound + default_conf if_outbound $_dev_outbound +} - config_list_foreach "$cfg" 'load_plugin' deal_with_lists "load_plugin" +# Apply default values to key options if unset in user's UCI config. - # plugin_demo.so - config_get plugin_demo_string "$cfg" plugin_demo_string - if [ -n "$plugin_demo_string" ]; then - echo plugin_demo_string = "$plugin_demo_string" >> "$siproxd_conf_prefix$cfg" - fi +apply_defaults() { + local sec="$1" - # plugin_shortdial.so - config_get plugin_shortdial_akey "$cfg" plugin_shortdial_akey - if [ -n "$plugin_shortdial_akey" ]; then - echo plugin_shortdial_akey = "$plugin_shortdial_akey" >> "$siproxd_conf_prefix$cfg" - fi - config_list_foreach "$cfg" 'plugin_shortdial_entry' deal_with_lists "plugin_shortdial_entry" + default_conf sip_listen_port 5060 + default_conf daemonize 1 + default_conf silence_log 1 + default_conf user nobody + default_conf registration_file "$siproxd_registration_prefix$sec.reg" + default_conf autosave_registrations 300 + default_conf pid_file "$siproxd_pid_dir/siproxd-$sec.pid" + default_conf rtp_proxy_enable 1 + default_conf rtp_port_low 7070 + default_conf rtp_port_high 7089 + default_conf rtp_timeout 300 + default_conf rtp_dscp 46 + default_conf sip_dscp 0 + default_conf rtp_input_dejitter 0 + default_conf rtp_output_dejitter 0 + default_conf tcp_timeout 600 + default_conf tcp_connect_timeout 500 + default_conf tcp_keepalive 20 + default_conf default_expires 600 + default_conf debug_level 0x00000000 + default_conf debug_port 0 + default_conf ua_string Siproxd-UA + default_conf use_rport 0 + default_conf plugindir "/usr/lib/siproxd/" +} - # plugin_defaulttarget.so - config_get_bool plugin_defaulttarget_log "$cfg" plugin_defaulttarget_log - if [ -n "$plugin_defaulttarget_log" ]; then - echo plugin_defaulttarget_log = "$plugin_defaulttarget_log" >> "$siproxd_conf_prefix$cfg" - fi - config_get plugin_defaulttarget_target "$cfg" plugin_defaulttarget_target - if [ -n "$plugin_defaulttarget_target" ]; then - echo plugin_defaulttarget_target = "$plugin_defaulttarget_target" >> "$siproxd_conf_prefix$cfg" - fi +# Setup callbacks for parsing siproxd sections, options, and lists. +# This avoids hardcoding all supported siproxd configuration parameters. - # plugin_fix_bogus_via.so - config_get plugin_fix_bogus_via_networks "$cfg" plugin_fix_bogus_via_networks - if [ -n "$plugin_fix_bogus_via_networks" ]; then - echo plugin_fix_bogus_via_networks = "$plugin_fix_bogus_via_networks" >> "$siproxd_conf_prefix$cfg" - fi +siproxd_cb() { + config_cb() { + local _int_inbound + local _int_outbound + local _dev_inbound + local _dev_outbound - # plugin_stun.so - config_get plugin_stun_server "$cfg" plugin_stun_server - if [ -n "$plugin_stun_server" ]; then - echo plugin_stun_server = "$plugin_stun_server" >> "$siproxd_conf_prefix$cfg" - fi - config_get plugin_stun_port "$cfg" plugin_stun_port - if [ -n "$plugin_stun_port" ]; then - echo plugin_stun_port = "$plugin_stun_port" >> "$siproxd_conf_prefix$cfg" - fi - config_get plugin_stun_period "$cfg" plugin_stun_period - if [ -n "$plugin_stun_period" ]; then - echo plugin_stun_period = "$plugin_stun_period" >> "$siproxd_conf_prefix$cfg" - fi + case "$1" in + # Initialize section processing and save section name. + "siproxd") + sec="$2" + if [ -f "$siproxd_conf_prefix$sec.conf" ]; then + rm "$siproxd_conf_prefix$sec.conf" + fi + echo "# auto-generated config file from /etc/config/siproxd" > \ + "$siproxd_conf_prefix$sec.conf" + ;; + # Parse OpenWRT interface names (e.g. "wan") and apply defaults, + # using saved section name. + "") + local chrootjail + local pid_file - # plugin_prefix.so - config_get plugin_prefix_akey "$cfg" plugin_prefix_akey - if [ -n "$plugin_prefix_akey" ]; then - echo plugin_prefix_akey = "$plugin_prefix_akey" >> "$siproxd_conf_prefix$cfg" - fi + setup_networks "$sec" + apply_defaults "$sec" - # plugin_regex.so - config_list_foreach "$cfg" 'plugin_regex_desc' deal_with_lists "plugin_regex_desc" - config_list_foreach "$cfg" 'plugin_regex_pattern' deal_with_lists "plugin_regex_pattern" - config_list_foreach "$cfg" 'plugin_regex_replace' deal_with_lists "plugin_regex_replace" + config_get chrootjail "$sec" chrootjail + if [ -n "$chrootjail" ]; then + if [ ! -d "$chrootjail" ]; then + mkdir -p "$chrootjail" + chmod 0755 "$chrootjail" + fi + fi - SERVICE_PID_FILE="$pid_file" \ - service_start $siproxd_bin --config "$siproxd_conf_prefix$cfg" + config_get pid_file "$sec" pid_file + SERVICE_PID_FILE="$pid_file" service_start \ + $siproxd_bin --config "$siproxd_conf_prefix$sec.conf" + ;; + esac + return 0 + } + + option_cb() { + # These 2 OpenWRT-specific options are handled in post-processing. + case "$1" in + "interface_inbound"|"interface_outbound") return 0 ;; + esac + # Other options match siproxd docs, so write directly to config. + [ -n "$2" ] && echo "$1" = "$2" >> "$siproxd_conf_prefix$sec.conf" + return 0 + } + + list_cb() { + # All list items match siproxd docs, so write directly to config. + [ -n "$2" ] && echo "$1" = "$2" >> "$siproxd_conf_prefix$sec.conf" + return 0 + } } stop_instance() { - local cfg="$1" + local sec="$1" - config_get pid_file "$cfg" pid_file "$siproxd_pid_dir/siproxd-$cfg.pid" + config_get pid_file "$sec" pid_file "$siproxd_pid_dir/siproxd-$sec.pid" SERVICE_PID_FILE="$pid_file" \ service_stop $siproxd_bin } start() { - mkdir -m 0755 -p "$siproxd_conf_dir" - mkdir -m 0755 -p "$siproxd_registration_dir" - [ -d "$siproxd_pid_dir" ] || { - mkdir -m 0755 -p "$siproxd_pid_dir" - chmod 0750 "$siproxd_pid_dir" - chown nobody:nogroup "$siproxd_pid_dir" - } + mkdir -p "$siproxd_conf_dir" + chmod 755 "$siproxd_conf_dir" + mkdir -p "$siproxd_registration_dir" + chmod 700 "$siproxd_registration_dir" + chown nobody:nogroup "$siproxd_registration_dir" + + mkdir -p "$siproxd_pid_dir" + chmod 700 "$siproxd_pid_dir" + chown nobody:nogroup "$siproxd_pid_dir" + + . /lib/functions/network.sh + siproxd_cb config_load 'siproxd' - config_foreach start_instance 'siproxd' } stop() { diff --git a/net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch b/net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch deleted file mode 100644 index 20f3b6b..0000000 --- a/net/siproxd/patches/010-fix-bogus-libltdl-dependency.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -77,8 +77,8 @@ plugin_regex_la_LDFLAGS = -module -avoid - # else Cygwin goes beserk when building...) - # - sbin_PROGRAMS = siproxd --siproxd_LDFLAGS=-export-dynamic --siproxd_LDADD = $(LIBLTDL) $(DLOPENPLUGINS) -+siproxd_LDFLAGS=-export-dynamic -lltdl -+siproxd_LDADD = $(DLOPENPLUGINS) - siproxd_SOURCES = siproxd.c proxy.c register.c sock.c utils.c \ - sip_utils.c sip_layer.c log.c readconf.c rtpproxy.c \ - rtpproxy_relay.c accessctl.c route_processing.c \ ---- a/src/Makefile.in -+++ b/src/Makefile.in -@@ -326,8 +326,8 @@ plugin_prefix_la_LDFLAGS = -module -avoi - # - plugin_regex_la_SOURCES = plugin_regex.c - plugin_regex_la_LDFLAGS = -module -avoid-version -shrext '.so' --siproxd_LDFLAGS = -export-dynamic --siproxd_LDADD = $(LIBLTDL) $(DLOPENPLUGINS) -+siproxd_LDFLAGS = -export-dynamic -lltdl -+siproxd_LDADD = $(DLOPENPLUGINS) - siproxd_SOURCES = siproxd.c proxy.c register.c sock.c utils.c \ - sip_utils.c sip_layer.c log.c readconf.c rtpproxy.c \ - rtpproxy_relay.c accessctl.c route_processing.c \ diff --git a/net/siproxd/patches/010-syslog-msg.patch b/net/siproxd/patches/010-syslog-msg.patch new file mode 100644 index 0000000..0e00e0b --- /dev/null +++ b/net/siproxd/patches/010-syslog-msg.patch @@ -0,0 +1,20 @@ +--- a/src/log.c ++++ b/src/log.c +@@ -77,7 +77,7 @@ + static pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER; + + void log_init(void) { +- openlog(NULL,LOG_NDELAY|LOG_PID,LOG_DAEMON); ++ openlog("siproxd",LOG_NDELAY|LOG_PID,LOG_DAEMON); + } + + void log_end(void) { +@@ -257,7 +257,7 @@ + va_copy(ap_copy, ap); + vsnprintf(outbuf, sizeof(outbuf), format, ap_copy); + va_end(ap_copy); +- syslog(LOG_USER|level, "%s:%i %s%s", file, line, label, outbuf); ++ syslog(LOG_DAEMON|level, "%s:%i %s%s", file, line, label, outbuf); + return; + } + diff --git a/net/siproxd/patches/011-include-sys-time.patch b/net/siproxd/patches/011-include-sys-time.patch deleted file mode 100644 index 81fabda..0000000 --- a/net/siproxd/patches/011-include-sys-time.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- siproxd-0.8.1/src/dejitter.c -+++ siproxd-0.8.1/src/dejitter.c -@@ -24,6 +24,7 @@ - - #include - #include -+#include - #include - - #include diff --git a/net/siproxd/patches/100-musl-compat.patch b/net/siproxd/patches/100-musl-compat.patch index 5e0c1da..8d7bf8e 100644 --- a/net/siproxd/patches/100-musl-compat.patch +++ b/net/siproxd/patches/100-musl-compat.patch @@ -1,31 +1,13 @@ --- a/src/resolve.c +++ b/src/resolve.c -@@ -30,6 +30,7 @@ +@@ -28,8 +28,10 @@ + #include + #endif ++#include #include #include +#include #include "log.h" ---- a/src/dejitter.c -+++ b/src/dejitter.c -@@ -21,6 +21,7 @@ - #include "config.h" - - #include -+#include - - #include - #include ---- a/src/plugins.c -+++ b/src/plugins.c -@@ -20,6 +20,8 @@ - - #include "config.h" - -+#include -+ - #include - #include - #include