view.h File Reference

This file contains functions to enable named views that can hold local zone authority service. More...

#include "util/rbtree.h"
#include "util/locks.h"

Data Structures

struct  views
 Views storage, shared. More...
 
struct  view
 View. More...
 

Functions

struct viewsviews_create (void)
 Create views storage. More...
 
void views_delete (struct views *v)
 Delete views storage. More...
 
int views_apply_cfg (struct views *v, struct config_file *cfg)
 Apply config settings; Takes care of locking. More...
 
int view_cmp (const void *v1, const void *v2)
 Compare two view entries in rbtree. More...
 
void view_delete (struct view *v)
 Delete one view. More...
 
void views_print (struct views *v)
 Debug helper. More...
 
struct viewviews_find_view (struct views *vs, const char *name, int write)
 Find a view by name. More...
 

Detailed Description

This file contains functions to enable named views that can hold local zone authority service.

Function Documentation

◆ views_create()

struct views* views_create ( void  )

Create views storage.

Returns
new struct or NULL on error.

References views::lock, rbtree_init(), view_cmp(), and views::vtree.

Referenced by daemon_fork(), respip_view_conf_data_test(), and view_and_respipchecks().

◆ views_delete()

void views_delete ( struct views v)

Delete views storage.

Parameters
vviews to delete.

References views::lock, traverse_postorder(), and views::vtree.

Referenced by daemon_cleanup(), and respip_view_conf_data_test().

◆ views_apply_cfg()

◆ view_cmp()

int view_cmp ( const void *  v1,
const void *  v2 
)

Compare two view entries in rbtree.

Sort canonical.

Parameters
v1view 1
v2view 2
Returns
: negative, positive or 0 comparison value.

References view::name.

Referenced by views_create().

◆ view_delete()

void view_delete ( struct view v)

Delete one view.

Parameters
vview to delete.

References view::local_zones, local_zones_delete(), view::lock, view::name, view::respip_set, and respip_set_delete().

Referenced by views_enter_view_name().

◆ views_print()

void views_print ( struct views v)

Debug helper.

Print all views Takes care of locking.

Parameters
vthe views tree

◆ views_find_view()

struct view* views_find_view ( struct views vs,
const char *  name,
int  write 
)

Find a view by name.

Parameters
vsviews
namename of the view we are looking for
write1 for obtaining write lock on found view, 0 for read lock
Returns
: locked view or NULL.

Find a view by name.

References rbnode_type::key, views::lock, view::lock, view::name, view::node, rbtree_search(), and views::vtree.

Referenced by do_view_data_add(), do_view_data_remove(), do_view_list_local_data(), do_view_list_local_zones(), do_view_zone_add(), do_view_zone_remove(), respip_view_conf_data_test(), and respip_views_apply_cfg().