Software /
code /
prosody
Comparison
plugins/mod_admin_telnet.lua @ 10644:6c4ab1b87588
mod_admin_telnet: Avoid indexing missing socket (thanks tmolitor)
if `sock` was nil it would still proceed with SNI and ALPN checks
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Wed, 05 Feb 2020 23:29:39 +0100 |
parent | 10620:09d98cd38fe2 |
child | 10657:197ba9539390 |
comparison
equal
deleted
inserted
replaced
10643:417eadd0f567 | 10644:6c4ab1b87588 |
---|---|
578 if session.secure then | 578 if session.secure then |
579 local sock = session.conn and session.conn.socket and session.conn:socket(); | 579 local sock = session.conn and session.conn.socket and session.conn:socket(); |
580 if sock and sock.info then | 580 if sock and sock.info then |
581 local info = sock:info(); | 581 local info = sock:info(); |
582 line[#line+1] = ("(%s with %s)"):format(info.protocol, info.cipher); | 582 line[#line+1] = ("(%s with %s)"):format(info.protocol, info.cipher); |
583 if sock.getsniname then | |
584 local name = sock:getsniname(); | |
585 if name then | |
586 line[#line+1] = ("(SNI:%q)"):format(name); | |
587 end | |
588 end | |
589 if sock.getalpn then | |
590 local proto = sock:getalpn(); | |
591 if proto then | |
592 line[#line+1] = ("(ALPN:%q)"):format(proto); | |
593 end | |
594 end | |
583 else | 595 else |
584 line[#line+1] = "(cipher info unavailable)"; | 596 line[#line+1] = "(cipher info unavailable)"; |
585 end | |
586 if sock.getsniname then | |
587 local name = sock:getsniname(); | |
588 if name then | |
589 line[#line+1] = ("(SNI:%q)"):format(name); | |
590 end | |
591 end | |
592 if sock.getalpn then | |
593 local proto = sock:getalpn(); | |
594 if proto then | |
595 line[#line+1] = ("(ALPN:%q)"):format(proto); | |
596 end | |
597 end | 597 end |
598 else | 598 else |
599 line[#line+1] = "(insecure)"; | 599 line[#line+1] = "(insecure)"; |
600 end | 600 end |
601 return table.concat(line, " "); | 601 return table.concat(line, " "); |