]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
chan_sip: DiffServ/ToS not only on UDP but also on TCP and TLS sockets.
authorAlexander Traud <pabstraud@compuserve.com>
Wed, 15 Apr 2020 06:20:46 +0000 (08:20 +0200)
committerGeorge Joseph <gjoseph@digium.com>
Thu, 16 Apr 2020 15:35:20 +0000 (10:35 -0500)
ASTERISK-27195
Reported by: Joshua Roys

Change-Id: I6e72ecb874200dec7a3865c7babaf5ac0d3101de

channels/chan_sip.c

index e4e077b6cbc9b6b354b504e5c17827f312b1c1f9..2b7929f4a941613179dd9e412792df7302fb6548 100644 (file)
@@ -29700,6 +29700,8 @@ static int sip_prepare_socket(struct sip_pvt *p)
                goto create_tcptls_session_fail;
        }
 
+       ast_set_qos(s->fd, global_tos_sip, global_cos_sip, "SIP");
+
        return s->fd;
 
 create_tcptls_session_fail:
@@ -33514,6 +33516,7 @@ static int reload_config(enum channelreloadreason reason)
                        if (setsockopt(sip_tcp_desc.accept_fd, SOL_SOCKET, SO_KEEPALIVE, &flags, sizeof(flags))) {
                                ast_log(LOG_ERROR, "Error enabling TCP keep-alive on sip socket: %s\n", strerror(errno));
                        }
+                       ast_set_qos(sip_tcp_desc.accept_fd, global_tos_sip, global_cos_sip, "SIP");
                }
        }
 
@@ -33541,6 +33544,7 @@ static int reload_config(enum channelreloadreason reason)
                                ast_log(LOG_ERROR, "Error enabling TCP keep-alive on sip socket: %s\n", strerror(errno));
                                sip_tls_desc.tls_cfg = NULL;
                        }
+                       ast_set_qos(sip_tls_desc.accept_fd, global_tos_sip, global_cos_sip, "SIP");
                }
        } else if (sip_tls_desc.tls_cfg->enabled) {
                sip_tls_desc.tls_cfg = NULL;