From 1e9404e6eccbabcc0341647a834c2b025795ab7d Mon Sep 17 00:00:00 2001 From: wangyu- Date: Fri, 29 Dec 2017 05:41:04 -0600 Subject: [PATCH] add luci-app-udp2raw and udp2raw-openwrt-makefile --- third-party/luci-app-udp2raw/LICENSE | 622 ++++++++++++++++++ third-party/luci-app-udp2raw/Makefile | 76 +++ .../files/luci/controller/udp2raw.lua | 30 + .../files/luci/i18n/udp2raw.zh-cn.lmo | Bin 0 -> 1364 bytes .../files/luci/i18n/udp2raw.zh-cn.po | 120 ++++ .../files/luci/model/cbi/udp2raw/general.lua | 38 ++ .../model/cbi/udp2raw/servers-details.lua | 96 +++ .../files/luci/model/cbi/udp2raw/servers.lua | 56 ++ .../files/luci/view/udp2raw_status.htm | 39 ++ .../files/root/etc/config/udp2raw | 16 + .../files/root/etc/init.d/udp2raw | 121 ++++ .../files/root/etc/uci-defaults/luci-udp2raw | 25 + .../luci-app-udp2raw/luci-app-udp2raw1.jpg | Bin 0 -> 87254 bytes .../luci-app-udp2raw/luci-app-udp2raw2.jpg | Bin 0 -> 91137 bytes .../luci-app-udp2raw/luci-app-udp2raw3.jpg | Bin 0 -> 152168 bytes .../luci-app-udp2raw/tools/po2lmo/Makefile | 12 + .../tools/po2lmo/src/po2lmo.c | 247 +++++++ .../tools/po2lmo/src/template_lmo.c | 328 +++++++++ .../tools/po2lmo/src/template_lmo.h | 92 +++ third-party/udp2raw-openwrt-makefile/LICENSE | 21 + third-party/udp2raw-openwrt-makefile/Makefile | 56 ++ 21 files changed, 1995 insertions(+) create mode 100644 third-party/luci-app-udp2raw/LICENSE create mode 100644 third-party/luci-app-udp2raw/Makefile create mode 100644 third-party/luci-app-udp2raw/files/luci/controller/udp2raw.lua create mode 100644 third-party/luci-app-udp2raw/files/luci/i18n/udp2raw.zh-cn.lmo create mode 100644 third-party/luci-app-udp2raw/files/luci/i18n/udp2raw.zh-cn.po create mode 100644 third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/general.lua create mode 100644 third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/servers-details.lua create mode 100644 third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/servers.lua create mode 100644 third-party/luci-app-udp2raw/files/luci/view/udp2raw_status.htm create mode 100644 third-party/luci-app-udp2raw/files/root/etc/config/udp2raw create mode 100644 third-party/luci-app-udp2raw/files/root/etc/init.d/udp2raw create mode 100644 third-party/luci-app-udp2raw/files/root/etc/uci-defaults/luci-udp2raw create mode 100644 third-party/luci-app-udp2raw/luci-app-udp2raw1.jpg create mode 100644 third-party/luci-app-udp2raw/luci-app-udp2raw2.jpg create mode 100644 third-party/luci-app-udp2raw/luci-app-udp2raw3.jpg create mode 100644 third-party/luci-app-udp2raw/tools/po2lmo/Makefile create mode 100644 third-party/luci-app-udp2raw/tools/po2lmo/src/po2lmo.c create mode 100644 third-party/luci-app-udp2raw/tools/po2lmo/src/template_lmo.c create mode 100644 third-party/luci-app-udp2raw/tools/po2lmo/src/template_lmo.h create mode 100644 third-party/udp2raw-openwrt-makefile/LICENSE create mode 100644 third-party/udp2raw-openwrt-makefile/Makefile diff --git a/third-party/luci-app-udp2raw/LICENSE b/third-party/luci-app-udp2raw/LICENSE new file mode 100644 index 0000000..e963df8 --- /dev/null +++ b/third-party/luci-app-udp2raw/LICENSE @@ -0,0 +1,622 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + diff --git a/third-party/luci-app-udp2raw/Makefile b/third-party/luci-app-udp2raw/Makefile new file mode 100644 index 0000000..8ce589e --- /dev/null +++ b/third-party/luci-app-udp2raw/Makefile @@ -0,0 +1,76 @@ +# +# Copyright (C) 2016-2017 Jian Chang +# +# This is free software, licensed under the GNU General Public License v3. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=luci-app-udp2raw +PKG_VERSION:=1.0.0 +PKG_RELEASE:=1 + +PKG_LICENSE:=GPLv3 +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Jian Chang + +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/luci-app-udp2raw + SECTION:=luci + CATEGORY:=LuCI + SUBMENU:=3. Applications + TITLE:=LuCI Support for udp2raw-tunnel + PKGARCH:=all + DEPENDS:=+udp2raw-tunnel +endef + +define Package/luci-app-udp2raw/description + LuCI Support for udp2raw-tunnel. +endef + +define Build/Prepare + $(foreach po,$(wildcard ${CURDIR}/files/luci/i18n/*.po), \ + po2lmo $(po) $(PKG_BUILD_DIR)/$(patsubst %.po,%.lmo,$(notdir $(po)));) +endef + +define Build/Configure +endef + +define Build/Compile +endef + +define Package/luci-app-udp2raw/postinst +#!/bin/sh +if [ -z "$${IPKG_INSTROOT}" ]; then + ( . /etc/uci-defaults/luci-udp2raw ) && rm -f /etc/uci-defaults/luci-udp2raw + rm -rf /tmp/luci-indexcache /tmp/luci-modulecache +fi +exit 0 +endef + +define Package/luci-app-udp2raw/conffiles +/etc/config/udp2raw +endef + +define Package/luci-app-udp2raw/install + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n + $(INSTALL_DATA) $(PKG_BUILD_DIR)/udp2raw.*.lmo $(1)/usr/lib/lua/luci/i18n/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller + $(INSTALL_DATA) ./files/luci/controller/*.lua $(1)/usr/lib/lua/luci/controller/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/udp2raw + $(INSTALL_DATA) ./files/luci/model/cbi/udp2raw/*.lua $(1)/usr/lib/lua/luci/model/cbi/udp2raw/ + $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view + $(INSTALL_DATA) ./files/luci/view/*.htm $(1)/usr/lib/lua/luci/view/ + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_CONF) ./files/root/etc/config/udp2raw $(1)/etc/config/udp2raw + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/root/etc/init.d/udp2raw $(1)/etc/init.d/udp2raw + $(INSTALL_DIR) $(1)/etc/uci-defaults + $(INSTALL_BIN) ./files/root/etc/uci-defaults/luci-udp2raw $(1)/etc/uci-defaults/luci-udp2raw +endef + +$(eval $(call BuildPackage,luci-app-udp2raw)) diff --git a/third-party/luci-app-udp2raw/files/luci/controller/udp2raw.lua b/third-party/luci-app-udp2raw/files/luci/controller/udp2raw.lua new file mode 100644 index 0000000..81d1f01 --- /dev/null +++ b/third-party/luci-app-udp2raw/files/luci/controller/udp2raw.lua @@ -0,0 +1,30 @@ +module("luci.controller.udp2raw", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/udp2raw") then + return + end + + entry({"admin", "services", "udp2raw"}, + firstchild(), _("udp2raw-tunnel")).dependent = false + + entry({"admin", "services", "udp2raw", "general"}, + cbi("udp2raw/general"), _("Settings"), 1) + + entry({"admin", "services", "udp2raw", "servers"}, + arcombine(cbi("udp2raw/servers"), cbi("udp2raw/servers-details")), + _("Servers Manage"), 2).leaf = true + + entry({"admin", "services", "udp2raw", "status"}, call("action_status")) +end + +local function is_running(name) + return luci.sys.call("pidof %s >/dev/null" %{name}) == 0 +end + +function action_status() + luci.http.prepare_content("application/json") + luci.http.write_json({ + running = is_running("udp2raw") + }) +end diff --git a/third-party/luci-app-udp2raw/files/luci/i18n/udp2raw.zh-cn.lmo b/third-party/luci-app-udp2raw/files/luci/i18n/udp2raw.zh-cn.lmo new file mode 100644 index 0000000000000000000000000000000000000000..e25325de0821449545710424e3005f4229cfaf7e GIT binary patch literal 1364 zcma)5eN06Le%Z_H0jAHj=DMCXe44a*xe&DFb`>h{Y;32q8!j`mZ7R$M?D!QHteBa=bm z^pI$Wa8k=|yvs;!0nu{NVSn9TIrR)C^5N!Up(FA)s~hW@Ycz7+(Jp7(WatD!h!GPr zVJhFUy)4mpqKEf-V<7_>KTJ%PI3Bh&K#e|P=(rv+P*()T*CP%^U2}bIW^S%3FHe=9 zuPP`|6&9-2uU9aQ&L&q>A86jANO;qbxlGNTDS{svAnu+;KfDhl5+b@FHFOc5BOy$* zaDe|^_y6h>#h4uncicJiju+H9J4@Af{OltnYUe|4yadT_TQeTu#xoHq10|C#NPc*X z`nCh>P^oFZmNca_zT5$d33d%@EmA~TNS$}1;<%TXDRtCF?BZ(b}0 zZbeCzCY>apSeFESF8J~%RNvLonEldjrQ*3F;QLW2RTp|U@5)vhfCG%z*vO>CnY93YDY&$$<*&5x-d}jkk1@VawQQ5( z$zIHt)Pt|lm*2SW)CwQV5<$sKNA<%8zkb+?ePrfR`mFhm`JYNZK)(z8c?Yc>)fD$( zo7pT@7=SJF6<|Rzc#tqJ9o&j`g7nywjZ8tI9D)Eeun->@a12Y_N+RZ)xyrt z&X<1nt(U&?Zd6a9pXE_rC|WhVXMSZXFuSjmxyzrbYjS4a2VRSkUcSAsF?4bFP57A^ zr+){MgmULL;4`RY!llM~<&}sA`@7hFd{af>{Cmesz#j!qkK6T+)D7OA2NqCizg?T? pes#KG4!9PTdh?IA-q-7gwjxgz_&v9b2TLm3)3bs9M9Hvz<6pM!bj|<( literal 0 HcmV?d00001 diff --git a/third-party/luci-app-udp2raw/files/luci/i18n/udp2raw.zh-cn.po b/third-party/luci-app-udp2raw/files/luci/i18n/udp2raw.zh-cn.po new file mode 100644 index 0000000..fb20472 --- /dev/null +++ b/third-party/luci-app-udp2raw/files/luci/i18n/udp2raw.zh-cn.po @@ -0,0 +1,120 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8\n" + +msgid "udp2raw-tunnel" +msgstr "udp2raw 隧道" + +msgid "Settings" +msgstr "设置" + +msgid "Servers Manage" +msgstr "服务器管理" + +msgid "Running Status" +msgstr "运行状态" + +msgid "Binary Version" +msgstr "文件版本" + +msgid "Build Time" +msgstr "编译时间" + +msgid "Invalid Binary File." +msgstr "可执行文件无效。" + +msgid "RUNNING" +msgstr "运行中" + +msgid "NOT RUNNING" +msgstr "未运行" + +msgid "General Settings" +msgstr "基本设置" + +msgid "Server" +msgstr "服务器" + +msgid "Disable" +msgstr "停用" + +msgid "Run Daemon as User" +msgstr "以该用户启动" + +msgid "Alias" +msgstr "别名" + +msgid "None" +msgstr "无" + +msgid "Server Address" +msgstr "服务器地址" + +msgid "Listen Address" +msgstr "监听地址" + +msgid "Edit Server" +msgstr "编辑服务器" + +msgid "Alias(optional)" +msgstr "别名(可选)" + +msgid "Server Port" +msgstr "服务器端口" + +msgid "Local Listen Host" +msgstr "本地监听地址" + +msgid "Local Listen Port" +msgstr "本地监听端口" + +msgid "Raw Mode" +msgstr "Raw 方式" + +msgid "Password" +msgstr "密码" + +msgid "Cipher Mode" +msgstr "加密方式" + +msgid "Auth Mode" +msgstr "认证方式" + +msgid "Auto Rule" +msgstr "自动规则" + +msgid "Auto add (and delete) iptables rule." +msgstr "自动添加/删除 iptables 规则。" + +msgid "Keep Rule" +msgstr "保持规则" + +msgid "Monitor iptables and auto re-add if necessary." +msgstr "监视 iptables 并在必要时重新添加规则。" + +msgid "seq Mode" +msgstr "seq 模式" + +msgid "seq increase mode for faketcp." +msgstr "用于 faketcp 的 seq 增加方式。" + +msgid "Lower Level" +msgstr "" + +msgid "Send packets at OSI level 2, format: \"eth0#00:11:22:33:44:55\", or \"auto\"." +msgstr "在 OSI 模型第二层发送数据包,格式:\"eth0#00:11:22:33:44:55\",或 \"auto\"。" + +msgid "Source-IP" +msgstr "源IP" + +msgid "Force source-ip for Raw Socket." +msgstr "在原始数据包中强制指定源IP。" + +msgid "Source-Port" +msgstr "源端口" + +msgid "Force source-port for Raw Socket, TCP/UDP only." +msgstr "在原始数据包中强制指定源端口,仅用于 TCP/UDP。" + +msgid "Log Level" +msgstr "日志级别" + diff --git a/third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/general.lua b/third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/general.lua new file mode 100644 index 0000000..a4d3430 --- /dev/null +++ b/third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/general.lua @@ -0,0 +1,38 @@ +local m, s, o +local uci = luci.model.uci.cursor() +local servers = {} + +local function has_bin(name) + return luci.sys.call("command -v %s >/dev/null" %{name}) == 0 +end + +if not has_bin("udp2raw") then + return Map("udp2raw", "%s - %s" %{translate("udp2raw-tunnel"), + translate("Settings")}, 'udp2raw-tunnel binary file not found.') +end + +uci:foreach("udp2raw", "servers", function(s) + if s.server_addr and s.server_port then + servers[#servers+1] = {name = s[".name"], alias = s.alias or "%s:%s" %{s.server_addr, s.server_port}} + end +end) + +m = Map("udp2raw", "%s - %s" %{translate("udp2raw-tunnel"), translate("Settings")}) +m:append(Template("udp2raw_status")) + +s = m:section(NamedSection, "general", "general", translate("General Settings")) +s.anonymous = true +s.addremove = false + +o = s:option(ListValue, "server", translate("Server")) +o:value("nil", translate("Disable")) +for _, s in ipairs(servers) do o:value(s.name, s.alias) end +o.default = "nil" +o.rmempty = false + +o = s:option(ListValue, "daemon_user", translate("Run Daemon as User")) +for u in luci.util.execi("cat /etc/passwd | cut -d ':' -f1") do o:value(u) end +o.default = "root" +o.rmempty = false + +return m diff --git a/third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/servers-details.lua b/third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/servers-details.lua new file mode 100644 index 0000000..ba961d1 --- /dev/null +++ b/third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/servers-details.lua @@ -0,0 +1,96 @@ +local m, s, o +local sid = arg[1] + +local raw_modes = { + "faketcp", + "udp", + "icmp", +} + +local cipher_modes = { + "aes128cbc", + "xor", + "none", +} + +local auth_modes = { + "md5", + "crc32", + "simple", + "none", +} + +m = Map("udp2raw", "%s - %s" %{translate("udp2raw-tunnel"), translate("Edit Server")}) +m.redirect = luci.dispatcher.build_url("admin/services/udp2raw/servers") +m.sid = sid + +if m.uci:get("udp2raw", sid) ~= "servers" then + luci.http.redirect(m.redirect) + return +end + +s = m:section(NamedSection, sid, "servers") +s.anonymous = true +s.addremove = false + +o = s:option(Value, "alias", translate("Alias(optional)")) + +o = s:option(Value, "server_addr", translate("Server")) +o.datatype = "host" +o.rmempty = false + +o = s:option(Value, "server_port", translate("Server Port")) +o.datatype = "port" +o.placeholder = "8080" + +o = s:option(Value, "listen_addr", translate("Local Listen Host")) +o.datatype = "ipaddr" +o.placeholder = "127.0.0.1" + +o = s:option(Value, "listen_port", translate("Local Listen Port")) +o.datatype = "port" +o.placeholder = "2080" + +o = s:option(ListValue, "raw_mode", translate("Raw Mode")) +for _, v in ipairs(raw_modes) do o:value(v, v:lower()) end +o.default = "faketcp" +o.rmempty = false + +o = s:option(Value, "key", translate("Password")) +o.password = true + +o = s:option(ListValue, "cipher_mode", translate("Cipher Mode")) +for _, v in ipairs(cipher_modes) do o:value(v, v:lower()) end +o.default = "aes128cbc" + +o = s:option(ListValue, "auth_mode", translate("Auth Mode")) +for _, v in ipairs(auth_modes) do o:value(v, v:lower()) end +o.default = "md5" + +o = s:option(Flag, "auto_rule", translate("Auto Rule"), translate("Auto add (and delete) iptables rule.")) +o.enabled = "1" +o.disabled = "0" +o.default = "1" + +o = s:option(Flag, "keep_rule", translate("Keep Rule"), translate("Monitor iptables and auto re-add if necessary.")) +o.enabled = "1" +o.disabled = "0" +o:depends("auto_rule", "1") + +o = s:option(Value, "seq_mode", translate("seq Mode"), translate("seq increase mode for faketcp.")) +o.datatype = "range(0,4)" +o.placeholder = "3" + +o = s:option(Value, "lower_level", translate("Lower Level"), translate("Send packets at OSI level 2, format: \"eth0#00:11:22:33:44:55\", or \"auto\".")) + +o = s:option(Value, "source_ip", translate("Source-IP"), translate("Force source-ip for Raw Socket.")) +o.datatype = "ipaddr" + +o = s:option(Value, "source_port", translate("Source-Port"), translate("Force source-port for Raw Socket, TCP/UDP only.")) +o.datatype = "port" + +o = s:option(Value, "log_level", translate("Log Level")) +o.datatype = "range(0,6)" +o.placeholder = "4" + +return m diff --git a/third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/servers.lua b/third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/servers.lua new file mode 100644 index 0000000..34be005 --- /dev/null +++ b/third-party/luci-app-udp2raw/files/luci/model/cbi/udp2raw/servers.lua @@ -0,0 +1,56 @@ +local m, s, o + +m = Map("udp2raw", "%s - %s" %{translate("udp2raw-tunnel"), translate("Servers Manage")}) + +s = m:section(TypedSection, "servers") +s.anonymous = true +s.addremove = true +s.sortable = true +s.template = "cbi/tblsection" +s.extedit = luci.dispatcher.build_url("admin/services/udp2raw/servers/%s") +function s.create(...) + local sid = TypedSection.create(...) + if sid then + luci.http.redirect(s.extedit % sid) + return + end +end + +o = s:option(DummyValue, "alias", translate("Alias")) +function o.cfgvalue(...) + return Value.cfgvalue(...) or translate("None") +end + +o = s:option(DummyValue, "_server_address", translate("Server Address")) +function o.cfgvalue(self, section) + local server_addr = m.uci:get("udp2raw", section, "server_addr") or "?" + local server_port = m.uci:get("udp2raw", section, "server_port") or "8080" + return "%s:%s" %{server_addr, server_port} +end + +o = s:option(DummyValue, "_listen_address", translate("Listen Address")) +function o.cfgvalue(self, section) + local listen_addr = m.uci:get("udp2raw", section, "listen_addr") or "127.0.0.1" + local listen_port = m.uci:get("udp2raw", section, "listen_port") or "2080" + return "%s:%s" %{listen_addr, listen_port} +end + +o = s:option(DummyValue, "raw_mode", translate("Raw Mode")) +function o.cfgvalue(...) + local v = Value.cfgvalue(...) + return v and v:lower() or "faketcp" +end + +o = s:option(DummyValue, "cipher_mode", translate("Cipher Mode")) +function o.cfgvalue(...) + local v = Value.cfgvalue(...) + return v and v:lower() or "aes128cbc" +end + +o = s:option(DummyValue, "auth_mode", translate("Auth Mode")) +function o.cfgvalue(...) + local v = Value.cfgvalue(...) + return v and v:lower() or "md5" +end + +return m diff --git a/third-party/luci-app-udp2raw/files/luci/view/udp2raw_status.htm b/third-party/luci-app-udp2raw/files/luci/view/udp2raw_status.htm new file mode 100644 index 0000000..964b117 --- /dev/null +++ b/third-party/luci-app-udp2raw/files/luci/view/udp2raw_status.htm @@ -0,0 +1,39 @@ +<% +local function get_udp2raw_version(name) + local info = luci.util.split(luci.sys.exec("%s -h 2>/dev/null" %{name}), "\n") + local version = string.match(info[2], "git version:(%w+)") + local build = string.match(info[2], "build date:(.+)") + return info[1] == "udp2raw-tunnel" and version or "", info[1] == "udp2raw-tunnel" and build or "" +end + +local udp2raw_version, udp2raw_build = get_udp2raw_version("udp2raw") +-%> + +
+ <%:Running Status%> + + + + + + <% if udp2raw_build ~= "" then -%> + + <% end -%> + +
<%:Binary Version%> + <% if udp2raw_version == "" then -%> + <%:Invalid Binary File.%> + <% else -%> + <%=pcdata(udp2raw_version)%> + <%- end %> +
<%:Build Time%><%=pcdata(udp2raw_build)%>
<%:Running Status%><%:Collecting data...%>
+
+ + diff --git a/third-party/luci-app-udp2raw/files/root/etc/config/udp2raw b/third-party/luci-app-udp2raw/files/root/etc/config/udp2raw new file mode 100644 index 0000000..8a27625 --- /dev/null +++ b/third-party/luci-app-udp2raw/files/root/etc/config/udp2raw @@ -0,0 +1,16 @@ + +config general 'general' + option server 'nil' + option daemon_user 'root' + +config servers 'default' + option server_addr '' + option server_port '8080' + option listen_addr '127.0.0.1' + option listen_port '2080' + option raw_mode 'faketcp' + option key '' + option cipher_mode 'aes128cbc' + option auth_mode 'md5' + option auto_rule '1' + diff --git a/third-party/luci-app-udp2raw/files/root/etc/init.d/udp2raw b/third-party/luci-app-udp2raw/files/root/etc/init.d/udp2raw new file mode 100644 index 0000000..3733b66 --- /dev/null +++ b/third-party/luci-app-udp2raw/files/root/etc/init.d/udp2raw @@ -0,0 +1,121 @@ +#!/bin/sh /etc/rc.common + +START=88 +USE_PROCD=1 + +UDP2RAW=udp2raw + +_log() { + local level="$1" + local msg="$2" + + logger -p "daemon.${level}" -t "$UDP2RAW" "$msg" +} + +gen_client_config_file() { + local config_file="$1" + echo "# auto-generated config file from /etc/config/udp2raw" > $config_file + + echo "-c" >> $config_file + echo "-l ${listen_addr}:${listen_port}" >> $config_file && _log "info" "listening on: ${listen_addr}:${listen_port}" + echo "-r ${server_addr}:${server_port}" >> $config_file && _log "info" "remote address: ${server_addr}:${server_port}" + + [ -n "$raw_mode" ] && echo "--raw-mode ${raw_mode}" >> $config_file && _log "info" "raw-mode: ${raw_mode}" + [ -n "$key" ] && echo "--key ${key}" >> $config_file + [ -n "$cipher_mode" ] && echo "--cipher-mode ${cipher_mode}" >> $config_file && _log "info" "cipher-mode: ${cipher_mode}" + [ -n "$auth_mode" ] && echo "--auth-mode ${auth_mode}" >> $config_file && _log "info" "auth-mode: ${auth_mode}" + + [ "$auto_rule" -ne 0 ] && echo "--auto-rule" >> $config_file && _log "info" "auto-rule: true" + [ "$auto_rule" -ne 0 -a "$keep_rule" -ne 0 ] && echo "--keep-rule" >> $config_file && _log "info" "keep-rule: true" + + [ -n "$seq_mode" ] && echo "--seq-mode ${seq_mode}" >> $config_file && _log "info" "seq-mode: ${seq_mode}" + [ -n "$lower_level" ] && echo "--lower-level ${lower_level}" >> $config_file && _log "info" "lower-level: ${lower_level}" + [ -n "$source_ip" ] && echo "--source-ip ${source_ip}" >> $config_file + [ -n "$source_port" ] && echo "--source-port ${source_port}" >> $config_file + + [ -n "$log_level" ] && echo "--log-level ${log_level}" >> $config_file + echo "--disable-color" >> $config_file + _log "info" "running from ${daemon_user} user" +} + +validate_config_section() { + uci_validate_section "$UDP2RAW" general "$1" \ + 'server:uciname' \ + 'daemon_user:string:root' +} + +validate_server_section() { + uci_validate_section "$UDP2RAW" servers "$1" \ + 'server_addr:host' \ + 'server_port:port:8080' \ + 'listen_addr:ipaddr:127.0.0.1' \ + 'listen_port:port:2080' \ + 'raw_mode:or("faketcp", "udp", "icmp"):faketcp' \ + 'key:string' \ + 'cipher_mode:or("aes128cbc", "xor", "none"):aes128cbc' \ + 'auth_mode:or("md5", "crc32", "simple", "none"):md5' \ + 'auto_rule:bool:1' \ + 'keep_rule:bool:0' \ + 'seq_mode:range(0,4)' \ + 'lower_level:string' \ + 'source_ip:ipaddr' \ + 'source_port:port' \ + 'log_level:range(0,6)' +} + +start_udp2raw_instance() { + local section="$1" + + if ! validate_config_section "$section" ; then + _log "err" "Config validate failed." + return 1 + fi + + if [ -z "$server" ] || [ "$server" = "nil" ]; then + return 0 + elif ! validate_server_section "$server"; then + _log "err" "Server config validation failed." + return 1 + elif [ -z "$server_addr" ]; then + _log "err" "Server address validation failed." + return 1 + fi + + is_ipv6_address() { + echo "$1" | grep -q ":" + } + + is_ipv6_address "$server_addr" && server_addr="[${server_addr}]" + is_ipv6_address "$listen_addr" && listen_addr="[${listen_addr}]" + + _log "notice" "udp2raw-tunnel start." + [ -d /var/etc ] || mkdir -p /var/etc + local config_file=/var/etc/${UDP2RAW}.${server}.conf + + if ! ( gen_client_config_file "$config_file" ); then + _log "err" "Can't create config file". + return 1 + fi + + procd_open_instance + procd_set_param command /usr/bin/udp2raw + procd_append_param command --conf-file "$config_file" + procd_set_param respawn + procd_set_param file "$config_file" + procd_set_param user "$daemon_user" + procd_set_param pidfile /var/run/${UDP2RAW}.${server}.pid + procd_close_instance +} + +service_triggers() { + procd_add_reload_trigger "$UDP2RAW" +} + +start_service() { + config_load "$UDP2RAW" + config_foreach start_udp2raw_instance "general" +} + +stop_service() { + _log "notice" "udp2raw-tunnel stop." +} diff --git a/third-party/luci-app-udp2raw/files/root/etc/uci-defaults/luci-udp2raw b/third-party/luci-app-udp2raw/files/root/etc/uci-defaults/luci-udp2raw new file mode 100644 index 0000000..c04688e --- /dev/null +++ b/third-party/luci-app-udp2raw/files/root/etc/uci-defaults/luci-udp2raw @@ -0,0 +1,25 @@ +#!/bin/sh + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@udp2raw[-1] + add ucitrack udp2raw + set ucitrack.@udp2raw[-1].init=udp2raw + commit ucitrack +EOF + +general=$(uci -q get udp2raw.@general[-1]) + +if [ -z "$general" ]; then + uci -q add udp2raw general +fi + +if [ ."$general" != ."general" ]; then + uci -q batch <<-EOF >/dev/null + rename udp2raw.@general[-1]="general" + set udp2raw.general.server="nil" + commit udp2raw + EOF +fi + +rm -rf /tmp/luci-indexcache /tmp/luci-modulecache +exit 0 diff --git a/third-party/luci-app-udp2raw/luci-app-udp2raw1.jpg b/third-party/luci-app-udp2raw/luci-app-udp2raw1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b44fbd5c88acc6b669a213ea1096d5f7e2f7be5f GIT binary patch literal 87254 zcmeFZcUTkM*C-mgbU})A6c7**>Agu45Ru+NdKc-TMnOQ4B3+6g0s>MZy%Qi5>C$@% zReC}RfrN1KzVCO>J@>okJm=o~$N7HWxlWRKCVOV~%vyWxwO7BMy

})Kb?}2jJlW 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%0D#h(@m}b4C#6_}tRHG`(dhbK4tsuAa>I|QYy~dh# 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 literal 0 HcmV?d00001 diff --git a/third-party/luci-app-udp2raw/luci-app-udp2raw3.jpg b/third-party/luci-app-udp2raw/luci-app-udp2raw3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b8b4e30c4d81e1488473d1491a48390ff059694c GIT binary patch literal 152168 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 B`}P0; literal 0 HcmV?d00001 diff --git a/third-party/luci-app-udp2raw/tools/po2lmo/Makefile b/third-party/luci-app-udp2raw/tools/po2lmo/Makefile new file mode 100644 index 0000000..ad2c133 --- /dev/null +++ b/third-party/luci-app-udp2raw/tools/po2lmo/Makefile @@ -0,0 +1,12 @@ + +INSTALL = install +PREFIX = /usr/bin + +po2lmo: src/po2lmo.o src/template_lmo.o + $(CC) $(LDFLAGS) -o src/po2lmo src/po2lmo.o src/template_lmo.o + +install: + $(INSTALL) -m 755 src/po2lmo $(PREFIX) + +clean: + $(RM) src/po2lmo src/*.o diff --git a/third-party/luci-app-udp2raw/tools/po2lmo/src/po2lmo.c b/third-party/luci-app-udp2raw/tools/po2lmo/src/po2lmo.c new file mode 100644 index 0000000..0da792b --- /dev/null +++ b/third-party/luci-app-udp2raw/tools/po2lmo/src/po2lmo.c @@ -0,0 +1,247 @@ +/* + * lmo - Lua Machine Objects - PO to LMO conversion tool + * + * Copyright (C) 2009-2012 Jo-Philipp Wich + * + * 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. + */ + +#include "template_lmo.h" + +static void die(const char *msg) +{ + fprintf(stderr, "Error: %s\n", msg); + exit(1); +} + +static void usage(const char *name) +{ + fprintf(stderr, "Usage: %s input.po output.lmo\n", name); + exit(1); +} + +static void print(const void *ptr, size_t size, size_t nmemb, FILE *stream) +{ + if( fwrite(ptr, size, nmemb, stream) == 0 ) + die("Failed to write stdout"); +} + +static int extract_string(const char *src, char *dest, int len) +{ + int pos = 0; + int esc = 0; + int off = -1; + + for( pos = 0; (pos < strlen(src)) && (pos < len); pos++ ) + { + if( (off == -1) && (src[pos] == '"') ) + { + off = pos + 1; + } + else if( off >= 0 ) + { + if( esc == 1 ) + { + switch (src[pos]) + { + case '"': + case '\\': + off++; + break; + } + dest[pos-off] = src[pos]; + esc = 0; + } + else if( src[pos] == '\\' ) + { + dest[pos-off] = src[pos]; + esc = 1; + } + else if( src[pos] != '"' ) + { + dest[pos-off] = src[pos]; + } + else + { + dest[pos-off] = '\0'; + break; + } + } + } + + return (off > -1) ? strlen(dest) : -1; +} + +static int cmp_index(const void *a, const void *b) +{ + uint32_t x = ((const lmo_entry_t *)a)->key_id; + uint32_t y = ((const lmo_entry_t *)b)->key_id; + + if (x < y) + return -1; + else if (x > y) + return 1; + + return 0; +} + +static void print_uint32(uint32_t x, FILE *out) +{ + uint32_t y = htonl(x); + print(&y, sizeof(uint32_t), 1, out); +} + +static void print_index(void *array, int n, FILE *out) +{ + lmo_entry_t *e; + + qsort(array, n, sizeof(*e), cmp_index); + + for (e = array; n > 0; n--, e++) + { + print_uint32(e->key_id, out); + print_uint32(e->val_id, out); + print_uint32(e->offset, out); + print_uint32(e->length, out); + } +} + +int main(int argc, char *argv[]) +{ + char line[4096]; + char key[4096]; + char val[4096]; + char tmp[4096]; + int state = 0; + int offset = 0; + int length = 0; + int n_entries = 0; + void *array = NULL; + lmo_entry_t *entry = NULL; + uint32_t key_id, val_id; + + FILE *in; + FILE *out; + + if( (argc != 3) || ((in = fopen(argv[1], "r")) == NULL) || ((out = fopen(argv[2], "w")) == NULL) ) + usage(argv[0]); + + memset(line, 0, sizeof(key)); + memset(key, 0, sizeof(val)); + memset(val, 0, sizeof(val)); + + while( (NULL != fgets(line, sizeof(line), in)) || (state >= 2 && feof(in)) ) + { + if( state == 0 && strstr(line, "msgid \"") == line ) + { + switch(extract_string(line, key, sizeof(key))) + { + case -1: + die("Syntax error in msgid"); + case 0: + state = 1; + break; + default: + state = 2; + } + } + else if( state == 1 || state == 2 ) + { + if( strstr(line, "msgstr \"") == line || state == 2 ) + { + switch(extract_string(line, val, sizeof(val))) + { + case -1: + state = 4; + break; + default: + state = 3; + } + } + else + { + switch(extract_string(line, tmp, sizeof(tmp))) + { + case -1: + state = 2; + break; + default: + strcat(key, tmp); + } + } + } + else if( state == 3 ) + { + switch(extract_string(line, tmp, sizeof(tmp))) + { + case -1: + state = 4; + break; + default: + strcat(val, tmp); + } + } + + if( state == 4 ) + { + if( strlen(key) > 0 && strlen(val) > 0 ) + { + key_id = sfh_hash(key, strlen(key)); + val_id = sfh_hash(val, strlen(val)); + + if( key_id != val_id ) + { + n_entries++; + array = realloc(array, n_entries * sizeof(lmo_entry_t)); + entry = (lmo_entry_t *)array + n_entries - 1; + + if (!array) + die("Out of memory"); + + entry->key_id = key_id; + entry->val_id = val_id; + entry->offset = offset; + entry->length = strlen(val); + + length = strlen(val) + ((4 - (strlen(val) % 4)) % 4); + + print(val, length, 1, out); + offset += length; + } + } + + state = 0; + memset(key, 0, sizeof(key)); + memset(val, 0, sizeof(val)); + } + + memset(line, 0, sizeof(line)); + } + + print_index(array, n_entries, out); + + if( offset > 0 ) + { + print_uint32(offset, out); + fsync(fileno(out)); + fclose(out); + } + else + { + fclose(out); + unlink(argv[2]); + } + + fclose(in); + return(0); +} diff --git a/third-party/luci-app-udp2raw/tools/po2lmo/src/template_lmo.c b/third-party/luci-app-udp2raw/tools/po2lmo/src/template_lmo.c new file mode 100644 index 0000000..27205a7 --- /dev/null +++ b/third-party/luci-app-udp2raw/tools/po2lmo/src/template_lmo.c @@ -0,0 +1,328 @@ +/* + * lmo - Lua Machine Objects - Base functions + * + * Copyright (C) 2009-2010 Jo-Philipp Wich + * + * 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. + */ + +#include "template_lmo.h" + +/* + * Hash function from http://www.azillionmonkeys.com/qed/hash.html + * Copyright (C) 2004-2008 by Paul Hsieh + */ + +uint32_t sfh_hash(const char *data, int len) +{ + uint32_t hash = len, tmp; + int rem; + + if (len <= 0 || data == NULL) return 0; + + rem = len & 3; + len >>= 2; + + /* Main loop */ + for (;len > 0; len--) { + hash += sfh_get16(data); + tmp = (sfh_get16(data+2) << 11) ^ hash; + hash = (hash << 16) ^ tmp; + data += 2*sizeof(uint16_t); + hash += hash >> 11; + } + + /* Handle end cases */ + switch (rem) { + case 3: hash += sfh_get16(data); + hash ^= hash << 16; + hash ^= data[sizeof(uint16_t)] << 18; + hash += hash >> 11; + break; + case 2: hash += sfh_get16(data); + hash ^= hash << 11; + hash += hash >> 17; + break; + case 1: hash += *data; + hash ^= hash << 10; + hash += hash >> 1; + } + + /* Force "avalanching" of final 127 bits */ + hash ^= hash << 3; + hash += hash >> 5; + hash ^= hash << 4; + hash += hash >> 17; + hash ^= hash << 25; + hash += hash >> 6; + + return hash; +} + +uint32_t lmo_canon_hash(const char *str, int len) +{ + char res[4096]; + char *ptr, prev; + int off; + + if (!str || len >= sizeof(res)) + return 0; + + for (prev = ' ', ptr = res, off = 0; off < len; prev = *str, off++, str++) + { + if (isspace(*str)) + { + if (!isspace(prev)) + *ptr++ = ' '; + } + else + { + *ptr++ = *str; + } + } + + if ((ptr > res) && isspace(*(ptr-1))) + ptr--; + + return sfh_hash(res, ptr - res); +} + +lmo_archive_t * lmo_open(const char *file) +{ + int in = -1; + uint32_t idx_offset = 0; + struct stat s; + + lmo_archive_t *ar = NULL; + + if (stat(file, &s) == -1) + goto err; + + if ((in = open(file, O_RDONLY)) == -1) + goto err; + + if ((ar = (lmo_archive_t *)malloc(sizeof(*ar))) != NULL) + { + memset(ar, 0, sizeof(*ar)); + + ar->fd = in; + ar->size = s.st_size; + + fcntl(ar->fd, F_SETFD, fcntl(ar->fd, F_GETFD) | FD_CLOEXEC); + + if ((ar->mmap = mmap(NULL, ar->size, PROT_READ, MAP_SHARED, ar->fd, 0)) == MAP_FAILED) + goto err; + + idx_offset = ntohl(*((const uint32_t *) + (ar->mmap + ar->size - sizeof(uint32_t)))); + + if (idx_offset >= ar->size) + goto err; + + ar->index = (lmo_entry_t *)(ar->mmap + idx_offset); + ar->length = (ar->size - idx_offset - sizeof(uint32_t)) / sizeof(lmo_entry_t); + ar->end = ar->mmap + ar->size; + + return ar; + } + +err: + if (in > -1) + close(in); + + if (ar != NULL) + { + if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) + munmap(ar->mmap, ar->size); + + free(ar); + } + + return NULL; +} + +void lmo_close(lmo_archive_t *ar) +{ + if (ar != NULL) + { + if ((ar->mmap != NULL) && (ar->mmap != MAP_FAILED)) + munmap(ar->mmap, ar->size); + + close(ar->fd); + free(ar); + + ar = NULL; + } +} + + +lmo_catalog_t *_lmo_catalogs = NULL; +lmo_catalog_t *_lmo_active_catalog = NULL; + +int lmo_load_catalog(const char *lang, const char *dir) +{ + DIR *dh = NULL; + char pattern[16]; + char path[PATH_MAX]; + struct dirent *de = NULL; + + lmo_archive_t *ar = NULL; + lmo_catalog_t *cat = NULL; + + if (!lmo_change_catalog(lang)) + return 0; + + if (!dir || !(dh = opendir(dir))) + goto err; + + if (!(cat = malloc(sizeof(*cat)))) + goto err; + + memset(cat, 0, sizeof(*cat)); + + snprintf(cat->lang, sizeof(cat->lang), "%s", lang); + snprintf(pattern, sizeof(pattern), "*.%s.lmo", lang); + + while ((de = readdir(dh)) != NULL) + { + if (!fnmatch(pattern, de->d_name, 0)) + { + snprintf(path, sizeof(path), "%s/%s", dir, de->d_name); + ar = lmo_open(path); + + if (ar) + { + ar->next = cat->archives; + cat->archives = ar; + } + } + } + + closedir(dh); + + cat->next = _lmo_catalogs; + _lmo_catalogs = cat; + + if (!_lmo_active_catalog) + _lmo_active_catalog = cat; + + return 0; + +err: + if (dh) closedir(dh); + if (cat) free(cat); + + return -1; +} + +int lmo_change_catalog(const char *lang) +{ + lmo_catalog_t *cat; + + for (cat = _lmo_catalogs; cat; cat = cat->next) + { + if (!strncmp(cat->lang, lang, sizeof(cat->lang))) + { + _lmo_active_catalog = cat; + return 0; + } + } + + return -1; +} + +static lmo_entry_t * lmo_find_entry(lmo_archive_t *ar, uint32_t hash) +{ + unsigned int m, l, r; + uint32_t k; + + l = 0; + r = ar->length - 1; + + while (1) + { + m = l + ((r - l) / 2); + + if (r < l) + break; + + k = ntohl(ar->index[m].key_id); + + if (k == hash) + return &ar->index[m]; + + if (k > hash) + { + if (!m) + break; + + r = m - 1; + } + else + { + l = m + 1; + } + } + + return NULL; +} + +int lmo_translate(const char *key, int keylen, char **out, int *outlen) +{ + uint32_t hash; + lmo_entry_t *e; + lmo_archive_t *ar; + + if (!key || !_lmo_active_catalog) + return -2; + + hash = lmo_canon_hash(key, keylen); + + for (ar = _lmo_active_catalog->archives; ar; ar = ar->next) + { + if ((e = lmo_find_entry(ar, hash)) != NULL) + { + *out = ar->mmap + ntohl(e->offset); + *outlen = ntohl(e->length); + return 0; + } + } + + return -1; +} + +void lmo_close_catalog(const char *lang) +{ + lmo_archive_t *ar, *next; + lmo_catalog_t *cat, *prev; + + for (prev = NULL, cat = _lmo_catalogs; cat; prev = cat, cat = cat->next) + { + if (!strncmp(cat->lang, lang, sizeof(cat->lang))) + { + if (prev) + prev->next = cat->next; + else + _lmo_catalogs = cat->next; + + for (ar = cat->archives; ar; ar = next) + { + next = ar->next; + lmo_close(ar); + } + + free(cat); + break; + } + } +} diff --git a/third-party/luci-app-udp2raw/tools/po2lmo/src/template_lmo.h b/third-party/luci-app-udp2raw/tools/po2lmo/src/template_lmo.h new file mode 100644 index 0000000..57f59aa --- /dev/null +++ b/third-party/luci-app-udp2raw/tools/po2lmo/src/template_lmo.h @@ -0,0 +1,92 @@ +/* + * lmo - Lua Machine Objects - General header + * + * Copyright (C) 2009-2012 Jo-Philipp Wich + * + * 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. + */ + +#ifndef _TEMPLATE_LMO_H_ +#define _TEMPLATE_LMO_H_ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#if (defined(__GNUC__) && defined(__i386__)) +#define sfh_get16(d) (*((const uint16_t *) (d))) +#else +#define sfh_get16(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8)\ + +(uint32_t)(((const uint8_t *)(d))[0]) ) +#endif + + +struct lmo_entry { + uint32_t key_id; + uint32_t val_id; + uint32_t offset; + uint32_t length; +} __attribute__((packed)); + +typedef struct lmo_entry lmo_entry_t; + + +struct lmo_archive { + int fd; + int length; + uint32_t size; + lmo_entry_t *index; + char *mmap; + char *end; + struct lmo_archive *next; +}; + +typedef struct lmo_archive lmo_archive_t; + + +struct lmo_catalog { + char lang[6]; + struct lmo_archive *archives; + struct lmo_catalog *next; +}; + +typedef struct lmo_catalog lmo_catalog_t; + + +uint32_t sfh_hash(const char *data, int len); +uint32_t lmo_canon_hash(const char *data, int len); + +lmo_archive_t * lmo_open(const char *file); +void lmo_close(lmo_archive_t *ar); + + +extern lmo_catalog_t *_lmo_catalogs; +extern lmo_catalog_t *_lmo_active_catalog; + +int lmo_load_catalog(const char *lang, const char *dir); +int lmo_change_catalog(const char *lang); +int lmo_translate(const char *key, int keylen, char **out, int *outlen); +void lmo_close_catalog(const char *lang); + +#endif diff --git a/third-party/udp2raw-openwrt-makefile/LICENSE b/third-party/udp2raw-openwrt-makefile/LICENSE new file mode 100644 index 0000000..6e53158 --- /dev/null +++ b/third-party/udp2raw-openwrt-makefile/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2017 Yu Wang (wangyucn at gmail.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/third-party/udp2raw-openwrt-makefile/Makefile b/third-party/udp2raw-openwrt-makefile/Makefile new file mode 100644 index 0000000..22f7673 --- /dev/null +++ b/third-party/udp2raw-openwrt-makefile/Makefile @@ -0,0 +1,56 @@ +# +# Copyright (c) 2017 Yu Wang +# +# This is free software, licensed under the MIT. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=udp2raw-tunnel +PKG_VERSION:=20171125.0 +PKG_RELEASE:=1 + +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://github.com/wangyu-/udp2raw-tunnel.git +PKG_SOURCE_VERSION:=b35edf74865275cdc970384681a1a076d3a8d0e1 +PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz + +PKG_LICENSE:=MIT +PKG_LICENSE_FILES:=LICENSE +PKG_MAINTAINER:=Yu Wang + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) + +PKG_BUILD_PARALLEL:=1 + +include $(INCLUDE_DIR)/package.mk + +define Package/udp2raw-tunnel + SECTION:=net + CATEGORY:=Network + TITLE:=Tunnel which turns UDP Traffic into Encrypted FakeTCP/UDP/ICMP Traffic + URL:=https://github.com/wangyu-/udp2raw-tunnel +endef + +define Package/udp2raw-tunnel/description + udp2raw-tunnel is a tunnel which turns UDP Traffic into Encrypted FakeTCP/UDP/ICMP Traffic by using Raw Socket. +endef + +MAKE_FLAGS += cross2 + +define Build/Prepare + $(PKG_UNPACK) + sed -i 's/cc_cross=.*/cc_cross=$(TARGET_CXX)/g' $(PKG_BUILD_DIR)/makefile + sed -i '/\*gitversion/d' $(PKG_BUILD_DIR)/makefile + echo 'const char *gitversion = "$(PKG_SOURCE_VERSION)";' > $(PKG_BUILD_DIR)/git_version.h + $(Build/Patch) +endef + +define Package/udp2raw-tunnel/install + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/udp2raw_cross $(1)/usr/bin/udp2raw +endef + +$(eval $(call BuildPackage,udp2raw-tunnel))