/* * 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 */