You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
113 lines
3.1 KiB
113 lines
3.1 KiB
/*****************************************************************************
|
|
* ports.c: special ports block list
|
|
*****************************************************************************
|
|
* Copyright © 2019 Rémi Denis-Courmont
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation; either version 2.1 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with this program; if not, write to the Free Software Foundation,
|
|
* Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
|
|
*****************************************************************************/
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
# include <config.h>
|
|
#endif
|
|
|
|
#include <stdbool.h>
|
|
#include <stdlib.h>
|
|
#include "transport.h"
|
|
#include <vlc_common.h>
|
|
|
|
/* Must be in ascending order */
|
|
static const unsigned short blocked_ports[] = {
|
|
1, // tcpmux
|
|
7, // echo
|
|
9, // discard
|
|
11, // systat
|
|
13, // daytime
|
|
15, // netstat
|
|
17, // QOTD
|
|
19, // character generator
|
|
20, // FTP data
|
|
21, // FTP access
|
|
22, // SSH
|
|
23, // Telnet
|
|
25, // SMTP
|
|
37, // time
|
|
42, // name
|
|
43, // nicname
|
|
53, // DNS
|
|
77, // priv-rjs
|
|
79, // finger
|
|
87, // ttylink
|
|
95, // supdup
|
|
101, // hostriame
|
|
102, // iso-tsap
|
|
103, // gppitnp
|
|
104, // acr-nema
|
|
109, // POP2
|
|
110, // POP3
|
|
111, // Sun RPC
|
|
113, // auth
|
|
115, // SFTP
|
|
117, // UUCP path service
|
|
119, // NNTP (i.e. Usenet)
|
|
123, // NTP
|
|
135, // DCE endpoint resolution
|
|
139, // NetBIOS
|
|
143, // IMAP2
|
|
179, // BGP
|
|
389, // LDAP
|
|
465, // SMTP/TLS
|
|
512, // remote exec
|
|
513, // remote login
|
|
514, // remote shell
|
|
515, // printer
|
|
526, // tempo
|
|
530, // courier
|
|
531, // chat
|
|
532, // netnews
|
|
540, // UUCP
|
|
556, // remotefs
|
|
563, // NNTP/TLS
|
|
587, // Submission (i.e. first hop SMTP)
|
|
601, // rsyslog
|
|
636, // LDAP/TLS
|
|
993, // LDAP/TLS
|
|
995, // POP3/TLS
|
|
2049, // NFS
|
|
3659, // Apple SASL
|
|
4045, // NFS RPC lockd
|
|
6000, // X11
|
|
6665, // IRC
|
|
6666, // IRC
|
|
6667, // IRC
|
|
6668, // IRC
|
|
6669, // IRC
|
|
};
|
|
|
|
static int portcmp(const void *key, const void *entry)
|
|
{
|
|
const unsigned *port = key;
|
|
const unsigned short *blocked_port = entry;
|
|
|
|
return ((int)*port) - ((int)*blocked_port);
|
|
}
|
|
|
|
bool vlc_http_port_blocked(unsigned port)
|
|
{
|
|
if (port > 0xffff)
|
|
return true;
|
|
|
|
return bsearch(&port, blocked_ports, ARRAY_SIZE(blocked_ports),
|
|
sizeof (unsigned short), portcmp) != NULL;
|
|
}
|
|
|