Defines | Functions

vlc_acl.h File Reference

Go to the source code of this file.

Defines

#define ACL_Create(a, b)   ACL_Create(VLC_OBJECT(a), b)
#define ACL_Duplicate(a, b)   ACL_Duplicate(VLC_OBJECT(a),b)
#define ACL_AddHost(a, b, c)   ACL_AddNet(a,b,-1,c)

Functions

VLC_API int ACL_Check (vlc_acl_t *p_acl, const char *psz_ip)
 Check if a given address passes an access control list.
VLC_API vlc_acl_tACL_Create (vlc_object_t *p_this, bool b_allow) VLC_USED VLC_MALLOC
 Creates an empty ACL.
VLC_API vlc_acl_tACL_Duplicate (vlc_object_t *p_this, const vlc_acl_t *p_acl) VLC_USED VLC_MALLOC
 Perform a deep copy of an existing ACL.
VLC_API void ACL_Destroy (vlc_acl_t *p_acl)
 Releases all resources associated with an ACL object.
VLC_API int ACL_AddNet (vlc_acl_t *p_acl, const char *psz_ip, int i_len, bool b_allow)
 Adds an item to an ACL.
VLC_API int ACL_LoadFile (vlc_acl_t *p_acl, const char *path)
 Reads ACL entries from a file.

Define Documentation

#define ACL_AddHost (   a,
  b,
  c 
)    ACL_AddNet(a,b,-1,c)

Referenced by ACL_LoadFile().

#define ACL_Create (   a,
  b 
)    ACL_Create(VLC_OBJECT(a), b)
#define ACL_Duplicate (   a,
  b 
)    ACL_Duplicate(VLC_OBJECT(a),b)

Referenced by httpd_UrlNewPrivate().


Function Documentation

VLC_API int ACL_AddNet ( vlc_acl_t p_acl,
const char *  psz_ip,
int  i_len,
bool  b_allow 
)

Adds an item to an ACL.

Items are always matched in the same order as they are added.

References ACL_Resolve(), vlc_acl_entry_t::b_allow, vlc_acl_entry_t::host, vlc_acl_entry_t::i_bits_mask, vlc_acl_entry_t::i_bytes_match, vlc_acl_t::i_size, vlc_acl_t::p_entries, and vlc_acl_t::p_owner.

Referenced by ACL_LoadFile().

VLC_API int ACL_Check ( vlc_acl_t p_acl,
const char *  psz_ip 
)

Check if a given address passes an access control list.

Parameters:
p_acl pre-existing ACL to match the address against
psz_ip numeric IPv4/IPv6 address
Returns:
0 if the first matching ACL entry is an access grant, 1 if the first matching ACL entry is a denial of access, -1 on error.

References ACL_Resolve(), vlc_acl_entry_t::b_allow, vlc_acl_t::b_allow_default, vlc_acl_entry_t::host, vlc_acl_entry_t::i_bits_mask, vlc_acl_entry_t::i_bytes_match, vlc_acl_t::i_size, vlc_acl_t::p_entries, and vlc_acl_t::p_owner.

Referenced by httpd_HostThread().

VLC_API vlc_acl_t* ACL_Create ( vlc_object_t p_this,
bool  b_allow 
)

Creates an empty ACL.

Parameters:
b_allow whether to grant (true) or deny (false) access by default (ie if none of the ACL entries matched).
Returns:
an ACL object. NULL in case of error.

References vlc_acl_t::b_allow_default, vlc_acl_t::i_size, vlc_acl_t::p_entries, vlc_acl_t::p_owner, and vlc_object_hold.

VLC_API void ACL_Destroy ( vlc_acl_t p_acl  ) 

Releases all resources associated with an ACL object.

References vlc_acl_t::p_entries, vlc_acl_t::p_owner, and vlc_object_release.

Referenced by httpd_UrlDelete().

VLC_API vlc_acl_t* ACL_Duplicate ( vlc_object_t p_this,
const vlc_acl_t p_acl 
)

Perform a deep copy of an existing ACL.

Parameters:
p_this object to attach the copy to.
p_acl ACL object to be copied.
Returns:
a new ACL object, or NULL on error.

References vlc_acl_t::b_allow_default, vlc_acl_t::i_size, vlc_acl_t::p_entries, vlc_acl_t::p_owner, and vlc_object_hold.

VLC_API int ACL_LoadFile ( vlc_acl_t p_acl,
const char *  psz_path 
)

Reads ACL entries from a file.

Parameters:
p_acl ACL object in which to insert parsed entries.
psz_patch filename from which to parse entries.
Returns:
0 on success, -1 on error.

References ACL_AddHost, ACL_AddNet(), msg_Dbg, msg_Err, msg_Warn, vlc_acl_t::p_owner, and vlc_fopen().

 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines