forked from extern/wg-meshconf
added support for optional peer attributes, added __main__
This commit is contained in:
parent
6673a6d2f6
commit
559a51393b
14
wg_meshconf/__main__.py
Normal file
14
wg_meshconf/__main__.py
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""
|
||||||
|
Name: wg-meshconf __main__
|
||||||
|
Creator: K4YT3X
|
||||||
|
Date Created: May 21, 2021
|
||||||
|
Last Modified: May 21, 2021
|
||||||
|
"""
|
||||||
|
|
||||||
|
from .wg_meshconf import main
|
||||||
|
|
||||||
|
# launch the main function if it is not imported as a package
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
@ -60,6 +60,10 @@ PEER_ATTRIBUTES = [
|
|||||||
"PersistentKeepalive",
|
"PersistentKeepalive",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
PEER_OPTIONAL_ATTRIBUTES = [
|
||||||
|
"PersistentKeepalive",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class DatabaseManager:
|
class DatabaseManager:
|
||||||
def __init__(self, database_path: pathlib.Path):
|
def __init__(self, database_path: pathlib.Path):
|
||||||
@ -95,6 +99,7 @@ class DatabaseManager:
|
|||||||
Endpoint: str = None,
|
Endpoint: str = None,
|
||||||
AllowedIPs: list = None,
|
AllowedIPs: list = None,
|
||||||
ListenPort: int = None,
|
ListenPort: int = None,
|
||||||
|
PersistentKeepalive: int = None,
|
||||||
FwMark: str = None,
|
FwMark: str = None,
|
||||||
PrivateKey: str = None,
|
PrivateKey: str = None,
|
||||||
DNS: str = None,
|
DNS: str = None,
|
||||||
@ -133,6 +138,7 @@ class DatabaseManager:
|
|||||||
Endpoint: str = None,
|
Endpoint: str = None,
|
||||||
AllowedIPs: list = None,
|
AllowedIPs: list = None,
|
||||||
ListenPort: int = None,
|
ListenPort: int = None,
|
||||||
|
PersistentKeepalive: int = None,
|
||||||
FwMark: str = None,
|
FwMark: str = None,
|
||||||
PrivateKey: str = None,
|
PrivateKey: str = None,
|
||||||
DNS: str = None,
|
DNS: str = None,
|
||||||
@ -303,3 +309,9 @@ class DatabaseManager:
|
|||||||
else:
|
else:
|
||||||
allowed_ips = ", ".join(database["peers"][p]["Address"])
|
allowed_ips = ", ".join(database["peers"][p]["Address"])
|
||||||
config.write("AllowedIPs = {}\n".format(allowed_ips))
|
config.write("AllowedIPs = {}\n".format(allowed_ips))
|
||||||
|
|
||||||
|
for key in PEER_OPTIONAL_ATTRIBUTES:
|
||||||
|
if database["peers"][p].get(key) is not None:
|
||||||
|
config.write(
|
||||||
|
"{} = {}\n".format(key, database["peers"][p][key])
|
||||||
|
)
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
Name: wg-meshconf
|
Name: wg-meshconf
|
||||||
Creator: K4YT3X
|
Creator: K4YT3X
|
||||||
Date Created: July 19, 2020
|
Date Created: July 19, 2020
|
||||||
Last Modified: January 12, 2021
|
Last Modified: May 21, 2021
|
||||||
|
|
||||||
Licensed under the GNU General Public License Version 3 (GNU GPL v3),
|
Licensed under the GNU General Public License Version 3 (GNU GPL v3),
|
||||||
available at: https://www.gnu.org/licenses/gpl-3.0.txt
|
available at: https://www.gnu.org/licenses/gpl-3.0.txt
|
||||||
@ -52,6 +52,7 @@ def parse_arguments():
|
|||||||
)
|
)
|
||||||
addpeer.add_argument("--privatekey", help="private key of server interface")
|
addpeer.add_argument("--privatekey", help="private key of server interface")
|
||||||
addpeer.add_argument("--listenport", help="port to listen on", default=51820)
|
addpeer.add_argument("--listenport", help="port to listen on", default=51820)
|
||||||
|
addpeer.add_argument("--persistentkeepalive", help="set persistent keepalive interval")
|
||||||
addpeer.add_argument("--fwmark", help="fwmark for outgoing packets")
|
addpeer.add_argument("--fwmark", help="fwmark for outgoing packets")
|
||||||
addpeer.add_argument("--dns", help="server interface DNS servers")
|
addpeer.add_argument("--dns", help="server interface DNS servers")
|
||||||
addpeer.add_argument("--mtu", help="server interface MTU")
|
addpeer.add_argument("--mtu", help="server interface MTU")
|
||||||
@ -77,6 +78,7 @@ def parse_arguments():
|
|||||||
)
|
)
|
||||||
updatepeer.add_argument("--privatekey", help="private key of server interface")
|
updatepeer.add_argument("--privatekey", help="private key of server interface")
|
||||||
updatepeer.add_argument("--listenport", help="port to listen on")
|
updatepeer.add_argument("--listenport", help="port to listen on")
|
||||||
|
updatepeer.add_argument("--persistentkeepalive", help="set persistent keepalive interval")
|
||||||
updatepeer.add_argument("--fwmark", help="fwmark for outgoing packets")
|
updatepeer.add_argument("--fwmark", help="fwmark for outgoing packets")
|
||||||
updatepeer.add_argument("--dns", help="server interface DNS servers")
|
updatepeer.add_argument("--dns", help="server interface DNS servers")
|
||||||
updatepeer.add_argument("--mtu", help="server interface MTU")
|
updatepeer.add_argument("--mtu", help="server interface MTU")
|
||||||
@ -129,7 +131,7 @@ def parse_arguments():
|
|||||||
"--output",
|
"--output",
|
||||||
help="configuration file output directory",
|
help="configuration file output directory",
|
||||||
type=pathlib.Path,
|
type=pathlib.Path,
|
||||||
default=pathlib.Path(__file__).parent.absolute() / "output",
|
default=pathlib.Path.cwd() / "output",
|
||||||
)
|
)
|
||||||
|
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
@ -149,6 +151,7 @@ def main():
|
|||||||
args.endpoint,
|
args.endpoint,
|
||||||
args.allowedips,
|
args.allowedips,
|
||||||
args.listenport,
|
args.listenport,
|
||||||
|
args.persistentkeepalive,
|
||||||
args.fwmark,
|
args.fwmark,
|
||||||
args.privatekey,
|
args.privatekey,
|
||||||
args.dns,
|
args.dns,
|
||||||
@ -168,6 +171,7 @@ def main():
|
|||||||
args.endpoint,
|
args.endpoint,
|
||||||
args.allowedips,
|
args.allowedips,
|
||||||
args.listenport,
|
args.listenport,
|
||||||
|
args.persistentkeepalive,
|
||||||
args.fwmark,
|
args.fwmark,
|
||||||
args.privatekey,
|
args.privatekey,
|
||||||
args.dns,
|
args.dns,
|
||||||
@ -195,8 +199,3 @@ def main():
|
|||||||
"No command specified\nUse wg-meshconf --help to see available commands",
|
"No command specified\nUse wg-meshconf --help to see available commands",
|
||||||
file=sys.stderr,
|
file=sys.stderr,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# launch the main function if it is not imported as a package
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
||||||
|
Loading…
Reference in New Issue
Block a user