Skip to content

Commit e4d33e7

Browse files
authored
Merge branch 'OpenSIPS:master' into reduced_context_switching
2 parents 42d44a6 + d089b9c commit e4d33e7

File tree

1,876 files changed

+131991
-77963
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,876 files changed

+131991
-77963
lines changed

.github/pull_request_template.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<!--
2+
Thanks for submitting a pull request!
3+
In order to consider and evaluate your PR, it is mandatory to provide detailed information about (1) what is the issue the PR addresses, (2) how the PR is solving the issue (logic and coding), (3) what are (if any) limitations of the proposed PR and (4) if there are any known side-effects/ backward compatibility issues/SIP interoperability issues.
4+
Note that if the PR is missing information, it might take longer to be merged, as extra resources have to be allocated by the maintainers to reverse engineer the changes, understand them, understand the motivation, etc. That is why it is important to provide as much information as possible.
5+
-->
6+
7+
**Summary**
8+
<!-- Summary of the PR - what the PR is aiming to solve -->
9+
10+
**Details**
11+
<!--
12+
Details about the content of the PR - is it a bug fix, a new feature or perhaps a hack? Explain the **motivation** for making this change.
13+
What existing problem does the pull request solve? Is this a particular problem (i.e. only some particular scenarios are affected, only some UACs, etc) or a generic one?
14+
Do not assume others understand what you're trying to do and provide as much information as you may have.
15+
-->
16+
17+
**Solution**
18+
<!-- Explain how your PR fixes the problem. Are there any remaining concerns that might need to be addressed? -->
19+
20+
**Compatibility**
21+
<!-- Does your change break other scenarios, or do they need to be migrated in order to work similarly? -->
22+
23+
**Closing issues**
24+
<!-- Put `closes #XXXX` in your comment to auto-close the issue that your PR fixes (if such). -->

.github/workflows/cifuzz.yml

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: CIFuzz
2+
on: [push, pull_request]
3+
jobs:
4+
Fuzzing:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- name: Build Fuzzers
8+
id: build
9+
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
10+
with:
11+
oss-fuzz-project-name: 'opensips'
12+
dry-run: false
13+
language: c
14+
- name: Run Fuzzers
15+
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
16+
with:
17+
oss-fuzz-project-name: 'opensips'
18+
fuzz-seconds: 600
19+
dry-run: false
20+
- name: Upload Crash
21+
uses: actions/upload-artifact@v1
22+
if: failure() && steps.build.outcome == 'success'
23+
with:
24+
name: artifacts
25+
path: ./out/artifacts

.github/workflows/main.yml

+75
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# This is a basic workflow to help you get started with Actions
2+
3+
name: Main CI
4+
5+
# Controls when the action will run.
6+
on:
7+
# Triggers the workflow on all push or pull request events
8+
push:
9+
pull_request:
10+
11+
# Allows you to run this workflow manually from the Actions tab
12+
workflow_dispatch:
13+
14+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
15+
jobs:
16+
# This workflow contains a single job called "build"
17+
build:
18+
# The type of runner that the job will run on
19+
runs-on: ${{ matrix.os }}
20+
env:
21+
COMPILER: ${{ matrix.compiler }}
22+
BUILD_OS: ${{ matrix.os }}
23+
24+
strategy:
25+
matrix:
26+
os: [ubuntu-20.04, ubuntu-18.04]
27+
compiler: ['gcc', 'clang', 'gcc-9', 'gcc-10', 'clang-9', 'clang-10']
28+
include:
29+
- os: ubuntu-18.04
30+
compiler: 'gcc-i386-cross'
31+
- os: ubuntu-18.04
32+
compiler: 'clang-i386-cross'
33+
- os: ubuntu-18.04
34+
compiler: 'gcc-mips64-cross'
35+
- os: ubuntu-18.04
36+
compiler: 'gcc-arm32-cross'
37+
- os: ubuntu-18.04
38+
compiler: 'gcc-arm64-cross'
39+
- os: ubuntu-22.04
40+
compiler: 'gcc'
41+
- os: ubuntu-22.04
42+
compiler: 'clang'
43+
- os: ubuntu-22.04
44+
compiler: 'gcc-11'
45+
- os: ubuntu-22.04
46+
compiler: 'gcc-12'
47+
- os: ubuntu-22.04
48+
compiler: 'clang-11'
49+
- os: ubuntu-22.04
50+
compiler: 'clang-12'
51+
- os: ubuntu-22.04
52+
compiler: 'clang-13'
53+
54+
# Steps represent a sequence of tasks that will be executed as part of the job
55+
steps:
56+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
57+
- uses: actions/checkout@v3
58+
with:
59+
submodules: recursive
60+
61+
- name: before_install
62+
run: sh -x scripts/build/install_depends.sh
63+
64+
- name: script
65+
run: sh -x scripts/build/do_build.sh
66+
67+
- name: Notify slack fail
68+
if: failure() && github.repository == 'OpenSIPS/opensips'
69+
env:
70+
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
71+
uses: voxmedia/github-action-slack-notify-build@v1
72+
with:
73+
channel: devel
74+
status: FAILED
75+
color: danger

.github/workflows/stale.yml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Mark stale issues and pull requests
2+
3+
on:
4+
schedule:
5+
- cron: '27 6 * * *'
6+
7+
jobs:
8+
stale:
9+
10+
runs-on: ubuntu-latest
11+
permissions:
12+
issues: write
13+
pull-requests: write
14+
15+
steps:
16+
- uses: actions/stale@v4
17+
with:
18+
repo-token: ${{ secrets.GITHUB_TOKEN }}
19+
stale-issue-message: 'Any updates here? No progress has been made in the last 15 days, marking as stale. Will close this issue if no further updates are made in the next 30 days.'
20+
close-issue-message: 'Marking as closed due to lack of progress for more than 30 days. If this issue is still relevant, please re-open it with additional details.'
21+
exempt-issue-labels: 'fixed,improvement,low-priority,high-priority,feature request'
22+
stale-issue-label: 'stale'
23+
days-before-issue-stale: 15
24+
days-before-issue-close: 30
25+
stale-pr-message: 'Any updates here? No progress has been made in the last 30 days, marking as stale.'
26+
days-before-pr-stale: 30
27+
exempt-all-pr-assignees: true

.gitignore

+4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
*.o
22
*.d
33
*.so
4+
*.a
45
*.sw?
56
tags
67
cscope*
@@ -24,6 +25,9 @@ cscope*
2425
/mem/mem_stats.c
2526
/mem/mem_stats.h
2627

28+
# /modules/
29+
modules/tls_wolfssl/lib
30+
2731
# miscellaneous files
2832
core
2933
core.*

.gitmodules

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "modules/wolfssl/lib/wolfssl"]
2+
path = modules/tls_wolfssl/lib/wolfssl
3+
url = https://github.com/wolfSSL/wolfssl.git

.lgtm.yml

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
extraction:
3+
cpp:
4+
prepare:
5+
packages:
6+
- flex
7+
- bison
8+
- libsqlite3-dev
9+
- libsctp-dev
10+
- libradcli-dev
11+
- libhiredis-dev
12+
- unixodbc-dev
13+
- libconfuse-dev
14+
- libmysqlclient-dev
15+
- libexpat1-dev
16+
- libxml2-dev
17+
- libpq-dev
18+
- zlib1g-dev
19+
- libperl-dev
20+
- libsnmp-dev
21+
- libdb-dev
22+
- libldap2-dev
23+
- libcurl4-gnutls-dev
24+
- libgeoip-dev
25+
- libpcre3-dev
26+
- libmemcached-dev
27+
- libmicrohttpd-dev
28+
- librabbitmq-dev
29+
- liblua5.1-0-dev
30+
- libncurses5-dev
31+
- libjson-c-dev
32+
- uuid-dev
33+
before_index:
34+
- export FASTER=1
35+
- export NICER=0
36+
index:
37+
build_command: make exclude_modules="db_oracle osp sngtc cachedb_cassandra cachedb_couchbase cachedb_mongodb auth_jwt" all
38+

.travis.yml

+90-45
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,93 @@
11
language: c
2-
compiler:
3-
- gcc
4-
- clang
5-
sudo: false
2+
os: linux
3+
dist: bionic
64
addons:
7-
apt:
8-
packages:
9-
- flex
10-
- bison
11-
- libsqlite3-dev
12-
- libsctp-dev
13-
- libradcli-dev
14-
- libhiredis-dev
15-
- unixodbc-dev
16-
- libconfuse-dev
17-
- libmysqlclient-dev
18-
- libexpat1-dev
19-
- libxml2-dev
20-
- libpq-dev
21-
- zlib1g-dev
22-
- libperl-dev
23-
- libsnmp-dev
24-
- libdb-dev
25-
- libldap2-dev
26-
- libcurl4-gnutls-dev
27-
- libgeoip-dev
28-
- libpcre3-dev
29-
- libmemcached-dev
30-
- libmicrohttpd-dev
31-
- librabbitmq-dev
32-
- liblua5.1-0-dev
33-
- libncurses5-dev
34-
- libjson0-dev
35-
- uuid-dev
36-
# - libjwt-dev
37-
script: CC_EXTRA_OPTS=-Werror FASTER=1 NICER=0 make \
38-
exclude_modules="db_oracle osp sngtc cachedb_cassandra cachedb_couchbase cachedb_mongodb auth_jwt" all
5+
apt:
6+
packages:
7+
- flex
8+
- bison
9+
- libsqlite3-dev
10+
- libsctp-dev
11+
- libradcli-dev
12+
- libhiredis-dev
13+
- unixodbc-dev
14+
- libconfuse-dev
15+
- libmysqlclient-dev
16+
- libexpat1-dev
17+
- libxml2-dev
18+
- libpq-dev
19+
- zlib1g-dev
20+
- libperl-dev
21+
- libsnmp-dev
22+
- libdb-dev
23+
- libldap2-dev
24+
- libcurl4-gnutls-dev
25+
- libgeoip-dev
26+
- libpcre3-dev
27+
- libmemcached-dev
28+
- libmicrohttpd-dev
29+
- librabbitmq-dev
30+
- liblua5.1-0-dev
31+
- libncurses5-dev
32+
- libjson-c-dev
33+
- uuid-dev
34+
- python-dev
35+
- libmaxminddb-dev
36+
# - libjwt-dev
37+
before_install: sh -x scripts/build/install_depends.sh
38+
script: sh -x scripts/build/do_build.sh
3939
notifications:
40-
irc:
41-
channels:
42-
- "chat.freenode.net#opensips"
43-
on_success: change
44-
on_failure: always
45-
slack:
46-
secure: MnRvw68QpJHUSZ/IRGUlAjQ62xs3LtEZ0g3pG7Bms0XotuK+YxmSZh7BgV61utuya295LTvdWZQYiutJ4+iPKdF7Mb1KCzaUbY6nrGaIbqif10CKwfIFRsENMhYUKOXdvg52103GNq3/V3/6PGX7Jtiaox9lHcfRhvljs+cUgSk=
47-
on_success: change
48-
on_failure: always
40+
irc:
41+
channels:
42+
- "chat.freenode.net#opensips"
43+
on_success: change
44+
on_failure: always
45+
slack:
46+
secure: MnRvw68QpJHUSZ/IRGUlAjQ62xs3LtEZ0g3pG7Bms0XotuK+YxmSZh7BgV61utuya295LTvdWZQYiutJ4+iPKdF7Mb1KCzaUbY6nrGaIbqif10CKwfIFRsENMhYUKOXdvg52103GNq3/V3/6PGX7Jtiaox9lHcfRhvljs+cUgSk=
47+
on_success: change
48+
on_failure: always
49+
jobs:
50+
include:
51+
- name: "Build with GCC 7 @ Ubuntu 16"
52+
dist: xenial
53+
compiler: gcc
54+
env: COMPILER=gcc
55+
- name: "Build with Clang 7 @ Ubuntu 16"
56+
dist: xenial
57+
compiler: clang
58+
env: COMPILER=clang
59+
- name: "Build with GCC 7 @ Ubuntu 18"
60+
compiler: gcc
61+
env: COMPILER=gcc
62+
- name: "Build with GCC 9 @ Ubuntu 18"
63+
compiler: gcc
64+
env: COMPILER=gcc-9
65+
- name: "Build with GCC 10 @ Ubuntu 18"
66+
compiler: gcc
67+
env: COMPILER=gcc-10
68+
- name: "Build with Clang 7 @ Ubuntu 18"
69+
compiler: clang
70+
env: COMPILER=clang
71+
- name: "Build with Clang 9 @ Ubuntu 18"
72+
compiler: clang
73+
env: COMPILER=clang-9
74+
- name: "Build with Clang 10 @ Ubuntu 18"
75+
compiler: clang
76+
env: COMPILER=clang-10
77+
- name: "Build with GCC 7 @ Ubuntu 18 (ARM64)"
78+
compiler: gcc
79+
arch: arm64
80+
env: COMPILER=gcc
81+
- name: "Build with Clang 7 @ Ubuntu 18 (ARM64)"
82+
compiler: clang
83+
arch: arm64
84+
env: COMPILER=clang
85+
- name: "Build Core with GCC 7 @ Ubuntu 18 (i386)"
86+
compiler: gcc
87+
env: COMPILER=gcc-i386-cross
88+
- name: "Build Core with Clang 7 @ Ubuntu 18 (i386)"
89+
compiler: clang
90+
env: COMPILER=clang-i386-cross
91+
- name: "Build Core with GCC 7 @ Ubuntu 18 (MIPS64)"
92+
compiler: gcc
93+
env: COMPILER=gcc-mips64-cross

Makefile

+7-1
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,15 @@ $(modules):
193193

194194
.PHONY: modules
195195
modules: $(deps_gen)
196+
@set -e; \
197+
for r in $(all_misclibs); do \
198+
echo "" ; \
199+
echo "" ; \
200+
$(MAKE) -j -C $$r ; \
201+
done
196202
ifeq (,$(FASTER))
197203
@set -e; \
198-
for r in $(modules) "" ; do \
204+
for r in $(all_misclibs) $(modules); do \
199205
if [ -n "$$r" ]; then \
200206
if [ -d "$$r" ]; then \
201207
echo "" ; \

0 commit comments

Comments
 (0)