| /* | |
| * IP common code | |
| * | |
| * This file is part of FFmpeg. | |
| * | |
| * FFmpeg 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. | |
| * | |
| * FFmpeg 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 FFmpeg; if not, write to the Free Software * Foundation, Inc., | |
| * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
| */ | |
| #ifndef AVFORMAT_IP_H | |
| #define AVFORMAT_IP_H | |
| #include "network.h" | |
| /** | |
| * Structure for storing IP (UDP) source filters or block lists. | |
| */ | |
| typedef struct IPSourceFilters { | |
| int nb_include_addrs; | |
| int nb_exclude_addrs; | |
| struct sockaddr_storage *include_addrs; | |
| struct sockaddr_storage *exclude_addrs; | |
| } IPSourceFilters; | |
| /** | |
| * Checks the source address against a given IP source filter. | |
| * @return 0 if packet should be processed based on the filter, 1 if the packet | |
| * can be dropped. | |
| */ | |
| int ff_ip_check_source_lists(struct sockaddr_storage *source_addr_ptr, IPSourceFilters *s); | |
| /** | |
| * Resolves hostname into an addrinfo structure. | |
| * @return addrinfo structure which should be freed by the user, NULL in case | |
| * of error. | |
| */ | |
| struct addrinfo *ff_ip_resolve_host(void *log_ctx, | |
| const char *hostname, int port, | |
| int type, int family, int flags); | |
| /** | |
| * Parses the address[,address] source list in buf and adds it to the filters | |
| * in the IPSourceFilters structure. | |
| * @return 0 on success, < 0 AVERROR code on error. | |
| */ | |
| int ff_ip_parse_sources(void *log_ctx, const char *buf, IPSourceFilters *filters); | |
| /** | |
| * Parses the address[,address] source block list in buf and adds it to the | |
| * filters in the IPSourceFilters structure. | |
| * @return 0 on success, < 0 AVERROR code on error. | |
| */ | |
| int ff_ip_parse_blocks(void *log_ctx, const char *buf, IPSourceFilters *filters); | |
| /** | |
| * Resets the IP filter list and frees the internal fields of an | |
| * IPSourceFilters structure. | |
| */ | |
| void ff_ip_reset_filters(IPSourceFilters *filters); | |
| #endif /* AVFORMAT_IP_H */ |