# -*- coding: utf-8 -*-1# This program is free software; you can redistribute it and/or modify2# it under the terms of the GNU General Public License as published by3# the Free Software Foundation; either version 2 of the License, or4# (at your option) any later version.5#6# This program is distributed in the hope that it will be useful,7# but WITHOUT ANY WARRANTY; without even the implied warranty of8# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the9# GNU General Public License for more details.10#11# You should have received a copy of the GNU General Public License12# along with this program; if not, write to the Free Software13# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,14# MA 02110-1301, USA.15#16# Author: Mauro Soria1718import ssl19import socket2021from lib.core.settings import SOCKET_TIMEOUT222324def detect_scheme(host, port):25if not port:26raise ValueError2728s = socket.socket()29s.settimeout(SOCKET_TIMEOUT)30conn = ssl.create_default_context().wrap_socket(s, server_hostname=host)3132try:33conn.connect((host, port))34conn.close()35return "https"36except Exception:37return "http"383940