Mercurial > prosody-modules
annotate mod_portcheck/mod_portcheck.lua @ 4897:42a362a2bf51
mod_portcheck: Shell command to check if ports are open
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Fri, 18 Feb 2022 18:35:45 +0100 |
| parents | |
| children | adecfb36349e |
| rev | line source |
|---|---|
|
4897
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
1 module:set_global(); |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
2 local portmanager = require "core.portmanager"; |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
3 |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
4 local commands = module:shared("admin_shell/commands") |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
5 |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
6 function commands.portcheck(session, line) |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
7 for desc, interface, port in line:gmatch("%s(%[?([%x:.]+)%]?:(%d+))") do |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
8 if interface == "*" then |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
9 interface = "0.0.0.0"; |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
10 end |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
11 assert(portmanager.get_service_at(interface, tonumber(port)), desc); |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
12 end |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
13 session.print "OK"; |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
14 end |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
15 |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
16 function module.unload() |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
17 commands.portcheck = nil; |
|
42a362a2bf51
mod_portcheck: Shell command to check if ports are open
Kim Alvefur <zash@zash.se>
parents:
diff
changeset
|
18 end |
