2020-08-11 11:41:07 +03:00
/*
*
* Unix SMB / CIFS implementation .
*
* Type definitions for interfaces
*
* Copyright ( c ) 2020 Andreas Schneider < asn @ samba . org >
* This program is free software : you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation , either version 3 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 General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program . If not , see < http : //www.gnu.org/licenses/>.
*/
# ifndef _INTERFACE_H
# define _INTERFACE_H
# include <system/network.h>
2024-03-05 13:15:11 +03:00
# define IFACE_NONE_OPTION 0x00000000U
# define IFACE_DYNAMIC_OPTION 0x00000001U
2020-08-11 11:41:07 +03:00
bool ismyaddr ( const struct sockaddr * ip ) ;
bool ismyip_v4 ( struct in_addr ip ) ;
bool is_local_net ( const struct sockaddr * from ) ;
void setup_linklocal_scope_id ( struct sockaddr * pss ) ;
bool is_local_net_v4 ( struct in_addr from ) ;
int iface_count ( void ) ;
int iface_count_v4_nl ( void ) ;
const struct in_addr * first_ipv4_iface ( void ) ;
struct interface * get_interface ( int n ) ;
const struct sockaddr_storage * iface_n_sockaddr_storage ( int n ) ;
const struct in_addr * iface_n_ip_v4 ( int n ) ;
const struct in_addr * iface_n_bcast_v4 ( int n ) ;
const struct sockaddr_storage * iface_n_bcast ( int n ) ;
const struct sockaddr_storage * iface_ip ( const struct sockaddr * ip ) ;
bool iface_local ( const struct sockaddr * ip ) ;
void load_interfaces ( void ) ;
void gfree_interfaces ( void ) ;
bool interfaces_changed ( void ) ;
2024-03-05 13:32:23 +03:00
bool interface_ifindex_exists_with_options ( int if_index , uint32_t options ) ;
2020-08-11 11:41:07 +03:00
# endif /* _INTERFACE_H */