1 /* Copyright (C) 2005 Red Hat, Inc. */ 2 3 /* Object: semanage_port_t (Network Port) 4 * Object: semanage_port_key_t (Network Port Key) 5 * Implements: record_t (Database Record) 6 * Implements: record_key_t (Database Record Key) 7 */ 8 9 #include <sepol/context_record.h> 10 #include <sepol/port_record.h> 11 12 typedef sepol_context_t semanage_context_t; 13 typedef sepol_port_t semanage_port_t; 14 typedef sepol_port_key_t semanage_port_key_t; 15 #define _SEMANAGE_PORT_DEFINED_ 16 #define _SEMANAGE_CONTEXT_DEFINED_ 17 18 typedef semanage_port_t record_t; 19 typedef semanage_port_key_t record_key_t; 20 #define DBASE_RECORD_DEFINED 21 22 #include "port_internal.h" 23 #include "handle.h" 24 #include "database.h" 25 26 /* Key */ 27 int semanage_port_compare(const semanage_port_t * port, 28 const semanage_port_key_t * key) 29 { 30 31 return sepol_port_compare(port, key); 32 } 33 34 hidden_def(semanage_port_compare) 35 36 int semanage_port_compare2(const semanage_port_t * port, 37 const semanage_port_t * port2) 38 { 39 40 return sepol_port_compare2(port, port2); 41 } 42 43 hidden_def(semanage_port_compare2) 44 45 hidden int semanage_port_compare2_qsort(const semanage_port_t ** port, 46 const semanage_port_t ** port2) 47 { 48 49 return sepol_port_compare2(*port, *port2); 50 } 51 52 int semanage_port_key_create(semanage_handle_t * handle, 53 int low, int high, int proto, 54 semanage_port_key_t ** key_ptr) 55 { 56 57 return sepol_port_key_create(handle->sepolh, low, high, proto, key_ptr); 58 } 59 60 int semanage_port_key_extract(semanage_handle_t * handle, 61 const semanage_port_t * port, 62 semanage_port_key_t ** key_ptr) 63 { 64 65 return sepol_port_key_extract(handle->sepolh, port, key_ptr); 66 } 67 68 hidden_def(semanage_port_key_extract) 69 70 void semanage_port_key_free(semanage_port_key_t * key) 71 { 72 73 sepol_port_key_free(key); 74 } 75 76 hidden_def(semanage_port_key_free) 77 78 /* Protocol */ 79 int semanage_port_get_proto(const semanage_port_t * port) 80 { 81 82 return sepol_port_get_proto(port); 83 } 84 85 hidden_def(semanage_port_get_proto) 86 87 void semanage_port_set_proto(semanage_port_t * port, int proto) 88 { 89 90 sepol_port_set_proto(port, proto); 91 } 92 93 hidden_def(semanage_port_set_proto) 94 95 const char *semanage_port_get_proto_str(int proto) 96 { 97 98 return sepol_port_get_proto_str(proto); 99 } 100 101 hidden_def(semanage_port_get_proto_str) 102 103 /* Port */ 104 int semanage_port_get_low(const semanage_port_t * port) 105 { 106 107 return sepol_port_get_low(port); 108 } 109 110 hidden_def(semanage_port_get_low) 111 112 int semanage_port_get_high(const semanage_port_t * port) 113 { 114 115 return sepol_port_get_high(port); 116 } 117 118 hidden_def(semanage_port_get_high) 119 120 void semanage_port_set_port(semanage_port_t * port, int port_num) 121 { 122 123 sepol_port_set_port(port, port_num); 124 } 125 126 hidden_def(semanage_port_set_port) 127 128 void semanage_port_set_range(semanage_port_t * port, int low, int high) 129 { 130 131 sepol_port_set_range(port, low, high); 132 } 133 134 hidden_def(semanage_port_set_range) 135 136 /* Context */ 137 semanage_context_t *semanage_port_get_con(const semanage_port_t * port) 138 { 139 140 return sepol_port_get_con(port); 141 } 142 143 hidden_def(semanage_port_get_con) 144 145 int semanage_port_set_con(semanage_handle_t * handle, 146 semanage_port_t * port, semanage_context_t * con) 147 { 148 149 return sepol_port_set_con(handle->sepolh, port, con); 150 } 151 152 hidden_def(semanage_port_set_con) 153 154 /* Create/Clone/Destroy */ 155 int semanage_port_create(semanage_handle_t * handle, 156 semanage_port_t ** port_ptr) 157 { 158 159 return sepol_port_create(handle->sepolh, port_ptr); 160 } 161 162 hidden_def(semanage_port_create) 163 164 int semanage_port_clone(semanage_handle_t * handle, 165 const semanage_port_t * port, 166 semanage_port_t ** port_ptr) 167 { 168 169 return sepol_port_clone(handle->sepolh, port, port_ptr); 170 } 171 172 hidden_def(semanage_port_clone) 173 174 void semanage_port_free(semanage_port_t * port) 175 { 176 177 sepol_port_free(port); 178 } 179 180 hidden_def(semanage_port_free) 181 182 /* Port base functions */ 183 record_table_t SEMANAGE_PORT_RTABLE = { 184 .create = semanage_port_create, 185 .key_extract = semanage_port_key_extract, 186 .key_free = semanage_port_key_free, 187 .clone = semanage_port_clone, 188 .compare = semanage_port_compare, 189 .compare2 = semanage_port_compare2, 190 .compare2_qsort = semanage_port_compare2_qsort, 191 .free = semanage_port_free, 192 }; 193