network.h

Go to the documentation of this file.
00001 /************************************* */
00002 /* Rule Set Based Access Control       */
00003 /* Author and (c) 1999-2004:           */
00004 /*   Amon Ott <ao@rsbac.org>           */
00005 /* Network helper functions            */
00006 /* Last modified: 07/Dec/2004          */
00007 /************************************* */
00008 
00009 #ifndef __RSBAC_NETWORK_H
00010 #define __RSBAC_NETWORK_H
00011 
00012 #include <rsbac/types.h>
00013 #include <rsbac/network_types.h>
00014 #include <linux/net.h>
00015 #include <linux/in.h>
00016 #include <linux/un.h>
00017 #include <net/sock.h>
00018 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
00019 #include <net/inet_sock.h>
00020 #endif
00021 #include <net/af_unix.h>
00022 #include <net/route.h>
00023 
00024 /* functions */
00025 
00026 int rsbac_ta_net_list_all_netdev(rsbac_list_ta_number_t ta_number, rsbac_netdev_id_t ** id_pp);
00027 
00028 static inline int rsbac_net_list_all_netdev(rsbac_netdev_id_t ** id_pp)
00029   {
00030     return rsbac_ta_net_list_all_netdev(0, id_pp);
00031   }
00032 
00033 __u32 rsbac_net_make_mask_u32(__u8 valid_bits);
00034 
00035 int rsbac_net_compare_data(void * data1, void * data2);
00036 
00037 int rsbac_net_get_id(
00038          rsbac_list_ta_number_t ta_number,
00039   struct rsbac_net_description_t * desc_p,
00040          rsbac_net_temp_id_t * id_p);
00041 
00042 // void rsbac_net_obj_cleanup(rsbac_net_obj_id_t netobj);
00043 
00044 int rsbac_ta_net_lookup_templates(
00045          rsbac_list_ta_number_t ta_number,
00046   struct rsbac_net_obj_desc_t * netobj_p,
00047          rsbac_net_temp_id_t * local_temp_p,
00048          rsbac_net_temp_id_t * remote_temp_p);
00049 
00050 static inline int rsbac_net_lookup_templates(
00051   struct rsbac_net_obj_desc_t * netobj_p,
00052          rsbac_net_temp_id_t * local_temp_p,
00053          rsbac_net_temp_id_t * remote_temp_p)
00054   {
00055     return rsbac_ta_net_lookup_templates(0, netobj_p, local_temp_p, remote_temp_p);
00056   }
00057 
00058 int rsbac_ta_net_template(
00059   rsbac_list_ta_number_t ta_number,
00060   enum rsbac_net_temp_syscall_t call,
00061   rsbac_net_temp_id_t id,
00062   union rsbac_net_temp_syscall_data_t * data_p);
00063 
00064 static inline int rsbac_net_template(enum rsbac_net_temp_syscall_t call,
00065                        rsbac_net_temp_id_t id,
00066                        union rsbac_net_temp_syscall_data_t * data_p)
00067   {
00068     return rsbac_ta_net_template(0, call, id, data_p);
00069   }
00070 
00071 int rsbac_ta_net_list_all_template(rsbac_list_ta_number_t ta_number,
00072                                    rsbac_net_temp_id_t ** id_pp);
00073 
00074 static inline int rsbac_net_list_all_template(rsbac_net_temp_id_t ** id_pp)
00075   {
00076     return rsbac_ta_net_list_all_template(0, id_pp);
00077   }
00078 
00079 int rsbac_ta_net_template_exist(rsbac_list_ta_number_t ta_number, rsbac_net_temp_id_t temp);
00080 
00081 static inline int rsbac_net_template_exist(rsbac_net_temp_id_t temp)
00082   {
00083     return rsbac_ta_net_template_exist(0, temp);
00084   }
00085 
00086 /* Whether request should be checked for remote endpoint */
00087 int rsbac_net_remote_request(enum rsbac_adf_request_t request);
00088 
00089 #endif

Generated on Sun May 21 14:30:49 2006 for RSBAC by  doxygen 1.4.2