Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
209 commits
Select commit Hold shift + click to select a range
43f3923
Committer: Zhuofei Wang <semigodking@gmail.com>
Jan 12, 2013
374d45e
Many changes.
semigodking Jan 12, 2013
068ba5f
1. Remove redundant code in autosocks.c.
semigodking Jan 13, 2013
08d6a6f
Enhanced 'autosocks5' to allow connect to target via proxy when
semigodking Jan 13, 2013
9490f08
Commit missing changes in utils.h made during last update.
semigodking Jan 13, 2013
ab1df26
Update README
semigodking Jan 13, 2013
2efe35c
Updated README and config examples.
semigodking Jan 14, 2013
8b49c38
1. Update circuit reset timer to be 1 second
semigodking Jan 15, 2013
022f654
Move implementation of 'direct' method from redsocks.c into direct.c.
semigodking Jan 15, 2013
ccff117
Fix build error due to introduce of direct.c.
semigodking Jan 16, 2013
f1d7c81
New feature: connect to target via socks5 proxy automatically when
semigodking Mar 4, 2013
0d8eb7a
Restore subsystems removed by mistake.
semigodking Mar 7, 2013
1e591b5
Fix missing subsystems.
semigodking Mar 7, 2013
a818ff4
Introduce new method 'autohttp-connect'.
semigodking Mar 20, 2013
e792db7
Update Makefile and README.
semigodking May 7, 2013
aad8c81
Update Makefile to remove optimization for MIPS.
semigodking May 7, 2013
396e1ea
Fix: hung half-closed connections never get closed.
semigodking Aug 22, 2013
e3afb4a
Fix: Copying buffer starting with non-zero offset fails
semigodking Aug 22, 2013
cdbb1bb
Fix: confirm before circuit reset is received.
semigodking Aug 31, 2013
99772ae
Introduce audit to clean up hung connections.
semigodking Oct 18, 2013
308d12f
Make autoproxy feature independ on proxy implementation.
semigodking Oct 22, 2013
7372476
Make autoproxy feature independ on proxy implementation.
semigodking Oct 22, 2013
7946805
Merge branch 'master' into devel
semigodking Oct 22, 2013
238a64b
Allow config timeout and introduce cache stale.
semigodking Nov 4, 2013
b10d6eb
Merge branch 'master' into devel
semigodking Nov 4, 2013
9927378
Fix adding redundant IP to cache. Add quick detection to stale IP in …
semigodking Nov 14, 2013
65507fe
Merge branch 'master' into devel
semigodking Nov 15, 2013
f3662ab
Fix crash when working with GoAgent while autoproxy is ON.
semigodking Nov 16, 2013
d1e3ff3
Merge branch 'master' into devel
semigodking Nov 16, 2013
3f2b926
Fix: only monitor child process in daemon mode.
semigodking Mar 22, 2014
64dfe9e
Always try to connect target directly with short timeout for cached I…
semigodking Mar 27, 2014
7ded649
Enable timeout for outgoing relay connection
semigodking Mar 27, 2014
50234c0
Change version number to 0.51
semigodking Apr 4, 2014
4b8ce8d
fix proxy request
V-E-O Dec 11, 2014
218fca0
Merge pull request #2 from V-E-O/master
semigodking Dec 12, 2014
d950079
Rewrite the program and drop support to libevent 1.x.
semigodking Dec 16, 2014
40178d3
Minor fixes.
semigodking Dec 31, 2014
de412cc
Introduce transparent UDP to TCP DNS request redirector.
semigodking Feb 13, 2015
df76a17
Add missing files and bug fix.
semigodking Feb 13, 2015
f43d320
Refine code and make autoproxy much configurable
semigodking Feb 17, 2015
14d2766
Add support to shadowsocks proxy(IPv4 TCP only)
semigodking Feb 17, 2015
0971e57
Fix: http-relay not work
semigodking Feb 19, 2015
e1f866b
Fix: segments fault caused by 'redudp'.
semigodking Feb 24, 2015
bf96693
Enhance IP cache to support persistence
semigodking Feb 28, 2015
60fe38b
Fix bugs and increase performance of shadowsocks.
semigodking Feb 28, 2015
a1f86a2
Improve performance of shadowsocks
semigodking Mar 1, 2015
9277d6b
Fix decryption failure in shadowsocks
semigodking Mar 1, 2015
79f52d9
Change README
semigodking Mar 7, 2015
eb6fe2f
Fix: segment fault when subsystem initialization fail
semigodking Mar 18, 2015
ddfc411
Refine code for shadowsocks TCP.
semigodking Mar 19, 2015
df555c9
Simplify IP parsing and correct subsystem init sequence
semigodking Mar 23, 2015
c3e3d60
Decouple proxy impl. for UDP from redudp like redsocks
semigodking Apr 1, 2015
b713402
typo
xcodebuild Apr 1, 2015
d029a21
Merge pull request #5 from CodeFalling/patch-1
semigodking Apr 1, 2015
6dd7778
ipcache use 'uint16_t'
Emong Apr 12, 2015
05d718e
Merge pull request #6 from Emong/patch-1
semigodking Apr 13, 2015
318bca6
Add support to Shadowsocks UDP. Bug fix to redudp.
semigodking Apr 13, 2015
15da7ff
Critical update, see full commit message for details.
semigodking Apr 12, 2015
03123cc
Fix: Segv when redsocks failed to setup socket for relay
semigodking Apr 20, 2015
917a374
Do not disable read if SHUT_RD is set
semigodking Apr 21, 2015
d01c2a3
Fix: UDP transparent proxy with TPROXY not working
semigodking May 8, 2015
1cc4fdd
Merge pull request #1 from semigodking/master
rampageX Jul 10, 2015
ffad0b5
Make git ignore generated files
semigodking Jul 17, 2015
68a479e
Handle log level correctly and efficiently
semigodking Aug 7, 2015
81058be
Update README.md
soffchen Aug 22, 2015
bcec95f
Merge pull request #22 from soffchen/master
semigodking Aug 22, 2015
fef52e0
Version bump - 0.65 and update docs.
semigodking Oct 16, 2015
4f92aaf
Merge branch 'master' of https://github.com/semigodking/redsocks
semigodking Oct 16, 2015
02a53ce
Introduce support of NAT Traversal
semigodking Oct 16, 2015
f7fee97
add static compile support
rampageX Dec 30, 2015
be5e45a
Merge pull request #33 from rampageX/master
semigodking Dec 30, 2015
3d766d7
multiple definition of `md5_finish'
rampageX Dec 30, 2015
c8777ee
Merge remote-tracking branch 'refs/remotes/semigodking/master'
rampageX Dec 30, 2015
4c4d562
Merge branch 'master' of git://github.com/rampageX/redsocks into ramp…
semigodking Dec 31, 2015
3329748
Merge pull request #34 from rampageX/master
semigodking Dec 31, 2015
e43b595
Merge remote-tracking branch 'refs/remotes/semigodking/master'
rampageX Dec 31, 2015
4f61713
Remove code for self-protection
semigodking Jan 6, 2016
5ef3fa0
Ignore SIGPIPE for whole application
semigodking Jan 6, 2016
c41ad2b
Performance Optimization
semigodking Jan 15, 2016
02ffec4
Fix: UDP redirector uses blocking sockets
semigodking Jan 20, 2016
084c05f
multiple definition of `md5_init'
rampageX Feb 19, 2016
d01ceb6
show crypt lib used when -v set
rampageX Feb 19, 2016
e76c96d
Merge pull request #38 from rampageX/master
semigodking Feb 19, 2016
92801f4
Fix: memory leaks in 'tcpdns'
semigodking Feb 23, 2016
58ab445
Fix: use after free in 'tcpdns'.
semigodking Feb 29, 2016
5b970ed
Fix: bugs in 'http-relay'
semigodking Mar 8, 2016
e8a9b55
Merge remote branch 'darkk/redsocks/master'
semigodking Mar 9, 2016
f2b132d
Fix: socket close order
semigodking Mar 9, 2016
fa3deac
Fix: incorrect timeout value used by 'tcpdns'
semigodking Mar 15, 2016
dceddf2
Fix: errors when compile with MUSL C lib
semigodking Mar 15, 2016
09ffb10
Fix: SEGV when dumping/auditing in partly-initialized case
semigodking Mar 19, 2016
7291654
Fix: audit signle end connection
semigodking Mar 20, 2016
79df541
Misc. updates
semigodking Mar 21, 2016
d9a5799
Fix: mark client socket in nonblocking
semigodking Apr 8, 2016
eaf51e4
Enhance 'tcpdns'
semigodking Apr 8, 2016
2a93e7e
Make logs more informative
semigodking Apr 8, 2016
2254280
Fix memory leak in Basic http-auth
semigodking Apr 13, 2016
181b6d8
Increase range of IP cache stale time to 32-bit value
semigodking Apr 15, 2016
4f9ee0e
Fix: potential crash due to dropping client twice
semigodking Apr 15, 2016
76e99d7
Reduce memory consumption
semigodking Apr 12, 2016
65e518f
Fix: crash if compiled with PolarSSL
semigodking Apr 22, 2016
5ef53fe
Defer init of crypto contexts in shadowsocks until relay connected
semigodking Apr 22, 2016
104a76f
Handle shutdown properly
semigodking Apr 27, 2016
fa33298
Apply KEEPALIVE to all TCP connections
semigodking May 5, 2016
8b9228e
Wait for network ready before further initializations
semigodking Jul 28, 2015
151f09c
Add TPROXY support to redsocks
semigodking Sep 13, 2016
6acef13
Add FreeBSD Compatibility
semigodking Sep 13, 2016
c9ccdfa
Fix: 'tcpdns' does not work sometimes
semigodking Oct 3, 2016
79e7b99
Allow specify outgoing interface for autoproxy
semigodking Oct 14, 2015
94c8a8c
Fix: SEGV if redsocks2 is built with libevent 2.1+
semigodking Jun 13, 2016
01c58b1
Switch to libevent2 API
semigodking Jun 24, 2016
03b4825
Remove debugging code
semigodking Oct 15, 2016
d3f53ec
Fix: TCPDNS does not accept request with additional records
semigodking Dec 3, 2016
bc2706a
Bump version to 0.66
semigodking Dec 3, 2016
82a4fb3
Clean compiler warnings on x64 platform
semigodking Feb 27, 2017
4b6b488
Add support of TCP Fast Open to shadowsocks
semigodking Feb 17, 2017
0b6d35d
Add source files required for building with Android NDK
semigodking Mar 6, 2017
4253aa9
Merge branch 'darkk/redsocks' (early part)
semigodking Mar 7, 2017
2e7d093
Emit better errors from config file parser
darkk Mar 17, 2016
94a9421
Mention `nogroup' name difference between RedHat-like and Debian-like…
darkk Mar 21, 2016
b12b102
Fix: shadowsocks not work with non-TFO enabled servers
semigodking Mar 15, 2017
e1824c8
Introduce HTTPS proxy support and fix some bugs
semigodking Jun 8, 2017
0b352a2
Failed to compile with libevent 2.0 if HTTPS proxy enabled
semigodking Jun 9, 2017
499ea4f
Fix: missing link library
semigodking Jun 9, 2017
1d0ddc0
Allow SSLv2
semigodking Jun 10, 2017
097fbf6
Fix bugs in HTTPS proxy
semigodking Jun 10, 2017
2ac71a5
Do not access bufferevent internals when compiling with Libevent 2.1+
semigodking Jun 16, 2017
07b4fae
ALlow specify remote DNS server port for TCPDNS.
semigodking Jul 23, 2017
98331d5
fixing MacOS Sierra 10.12 compilation
VixsTy Jul 29, 2017
d8267a9
fixing MacOS Sierra 10.12 compilation
VixsTy Jul 29, 2017
9ddeb03
update README.md with MacOS
VixsTy Jul 29, 2017
7dd0875
Merge branch 'master' of github.com:VixsTy/redsocks
VixsTy Jul 29, 2017
6d0c588
make clean, clean object and let binary
VixsTy Jul 29, 2017
d30099b
deleting xnu. Makefile will download them
VixsTy Jul 29, 2017
e4a71a7
fix my mistitling in README.md
VixsTy Jul 29, 2017
5bcc55e
fix « auto » commentary deleted
VixsTy Jul 30, 2017
c88f593
revert deletion of portable dependency maker
VixsTy Jul 30, 2017
d2917aa
force /bin/bash shell on MacOS
VixsTy Jul 30, 2017
9f565d5
add xnu folder to ignore file
VixsTy Jul 30, 2017
9896e82
fix echo interpretation of backslash with /bin/bash
VixsTy Jul 30, 2017
3052eea
Merge pull request #74 from VixsTy/master
semigodking Jul 30, 2017
2c00e59
Fix: build failure on Ubuntu 17.04 with ENABLE_HTTPS_PROXY=true
semigodking Jan 3, 2018
5f4c051
Fix: program exits abnormally in daemon mode on FreeBSD 11.
semigodking Jan 11, 2018
70f6c68
Fix: IP in ipcache not identified as blocked
semigodking Jan 21, 2018
10a4678
Add patch to compile with newer OpenSSL (#85)
akamensky Mar 7, 2018
d608c45
Fix: memory leaks caused by wrong flag set in shadowsocks
semigodking Jul 13, 2018
e7ff18b
Simplify TFO support
semigodking Jul 13, 2018
4133bcf
Add SO_REUSEPORT support
semigodking Sep 28, 2018
f72fc2a
Fix: compiling error when no SO_REUSEPORT support
semigodking Dec 31, 2018
53cad23
Bump version to 0.67
semigodking Jan 19, 2019
6f58724
refine build with openssl 1.1.0+ (#114)
rampageX Mar 13, 2019
3ac1504
revise Makefile (#115)
rampageX Mar 13, 2019
a40e60b
Fix: compiler error: missing terminating " character
semigodking Mar 23, 2019
b9cafa9
Fix: No rule to make target 'gen/version.c'
semigodking Apr 20, 2019
3f41aa2
One step to support IPv6
semigodking Sep 25, 2019
ea2b56a
One more step to support IPv6
semigodking Sep 26, 2019
513576a
Fix bugs introduced during moving to IPv6
semigodking Oct 2, 2019
8fcc880
Fix compile failure with gcc 8.3 (#128)
hqvv Oct 12, 2019
7c8715d
Fix: unknown key <bind>
semigodking Oct 23, 2019
7a2f8ad
Fix TCPDNS config error
semigodking Nov 14, 2019
3a46f2f
Fix: redudp failing to extract original destination address
semigodking Nov 22, 2019
4cc0fef
Fix: wrong size and address type in socks5-udp
semigodking Nov 23, 2019
cba154c
Create ccpp.yml
semigodking Nov 23, 2019
d32011d
Fix: shadowsocks not working
semigodking Nov 23, 2019
9b915ac
Fix: Link failure on Ubuntu
semigodking Nov 23, 2019
ebbd1d0
Update ccpp.yml
semigodking Nov 23, 2019
46b2314
Fix: TFO not working
semigodking Nov 25, 2019
8d1f95d
update CI action
semigodking Nov 28, 2019
fdd4fe2
Allow redsocks bind to IPv6 address
semigodking Feb 23, 2020
dad894d
Fix: IPv6 support in shadowsocks-udp
semigodking Feb 25, 2020
c23af86
Fix: core dump caused by IPv6 address formatting
semigodking Feb 27, 2020
986229a
Fix: IPv6 can not get dest address
semigodking Feb 27, 2020
abeae8f
Add IPv6 support to socks5 subsystem
semigodking Feb 29, 2020
ad2732e
Add IPv6 support to redudp
semigodking Mar 1, 2020
fd8aad1
Fix: Failed to get dest address
semigodking Mar 1, 2020
6a793f5
Fix: broken redudp
semigodking Mar 1, 2020
2b8fe69
Fix: redudp generates get origin address warning with IPv4
semigodking Mar 1, 2020
a11c058
Fix build for macos (#143)
livelazily Mar 10, 2020
d94c245
two commits for fix bugs on macos 10.15 & openssl 1.1: (#146)
HaoH May 10, 2020
c35c942
add license, Apache-2.0
chenrui333 Jul 5, 2020
7797a93
Merge pull request #149 from chenrui333/add-apache-2.0
semigodking Jul 5, 2020
5729647
Try to make redsocks2 working with FreeBSD 12
semigodking Nov 13, 2020
088914b
Fix: error in bind on FreeBSD
semigodking Nov 24, 2020
7152914
Github actions for build on FreeBSD
semigodking Nov 25, 2020
45c881e
Add build status to README
semigodking Nov 25, 2020
1951b49
Allow 'direct' to forward connections to specific destination
semigodking Dec 29, 2020
c1676bc
Fix UDP source address compare
semigodking May 29, 2023
5a1b533
Fix linux build action
semigodking Jun 3, 2023
4ac3b77
Fix linux build action
semigodking Jun 3, 2023
2db0ba8
Fix Linux build action again
semigodking Jun 3, 2023
7fe2741
Update redsocks.conf.example (#188)
pato-pan Aug 2, 2023
99b1122
Accept hostname in 'relay'
semigodking Sep 20, 2023
1b532b3
Compatible with non-standard HTTP proxies
semigodking Sep 21, 2023
198cca2
Remove staled patch
semigodking Sep 28, 2023
285e77f
Create release build with CI (#190)
semigodking Oct 13, 2023
b9af495
Ensure SO_REUSEPORT is applied if enabled
semigodking Nov 26, 2023
6bd8a9c
Use latest FreeBSD CI
semigodking Nov 9, 2023
11f7304
Fix: wrong error message emitted while parsing config
semigodking Nov 26, 2023
72d17ef
Remove GoAgent part from README
semigodking Nov 26, 2023
699babb
Emit better message for not supported type in redudp
semigodking Nov 26, 2023
a8d9efb
Redudp supports IPv6
semigodking Nov 26, 2023
92dbff0
Fix: wrong port number in redudp log while closing socket
semigodking Jan 27, 2024
c8e1e6c
Many improvements to socks5 support
semigodking Nov 26, 2023
82fa950
added support for FreeBSD/OpenBSD (#201)
ge9 Jun 29, 2024
2ca4052
Bump version to 0.70
semigodking Sep 7, 2024
3c1f0a9
Fix: gcc-14 point type checking error (#207)
CesarRoaldes Nov 4, 2024
f1837c8
revert a change in DST.ADDR and DST.PORT of UDP Associate request (#2…
ge9 Dec 4, 2024
5d2db3e
Bump version to 0.71
semigodking Dec 5, 2024
fca7722
Fix IPv6 bind() error in bound_udp_get() (#213)
ge9 Dec 12, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions .github/workflows/freebsd_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: freebsd_build

on: [push]

jobs:
build:
runs-on: ubuntu-22.04
name: A job to run test FreeBSD
# env:
steps:
- uses: actions/checkout@v2
- name: Build in FreeBSD
id: test
uses: vmactions/freebsd-vm@v1
with:
# envs: 'MYTOKEN MYTOKEN2'
usesh: true
prepare: pkg install -y curl libevent gmake
run: |
pwd
freebsd-version
gmake DISABLE_SHADOWSOCKS=1
19 changes: 19 additions & 0 deletions .github/workflows/linux_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: linux_build

on: [push]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: install depends
run: |
sudo apt update
sudo apt install -y gnupg2
echo "deb http://security.ubuntu.com/ubuntu bionic-security main" | sudo tee -a /etc/apt/sources.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
sudo apt update
sudo apt install -y libssl1.0-dev libevent-dev
- name: Build
run: make
29 changes: 29 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: tagged-release

on:
push:
tags:
- "release-*"

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: install depends
run: |
sudo apt update
sudo apt install -y gnupg2
echo "deb http://security.ubuntu.com/ubuntu bionic-security main" | sudo tee -a /etc/apt/sources.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
sudo apt update
sudo apt install -y libssl1.0-dev libevent-dev zlib1g-dev
- name: Build
run: |
mkdir release
make ENABLE_STATIC=1
mv redsocks2 release/redsocks2-`arch`-${{github.ref_name}}
- name: Release
uses: softprops/action-gh-release@v1
with:
files: release/*
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
*.o
config.h
tags
redsocks
redsocks2
gen/
.depend
xnu/
201 changes: 201 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS

APPENDIX: How to apply the Apache License to your work.

To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright [yyyy] [name of copyright owner]

Licensed 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.
Loading