Critics have remarked that those four worthies were truly peerless throughout the ages; yet the present falls short of the pastβthe ancients favored unadorned simplicity, whereas the moderns prefer refined elegance. Styles of substance and ornament rise and fall in succession, shifting with the changing mores of the times; such evolution is simply the natural order of things. The ideal lies in honoring antiquity without clashing with the present, and embracing modernity without succumbing to its flawsβembodying that perfect balance of substance and refinement that defines the true gentleman. There is surely no need to abandon a carved palace in favor of a cave dwelling, or to trade a jade carriage for a primitive cart with solid wooden wheels.
Current path: usr/include/sepol/
β Cloned to:
β¬οΈ Go up: /usr/include
#ifndef _SEPOL_PORTS_H_
#define _SEPOL_PORTS_H_
#include <sepol/handle.h>
#include <sepol/policydb.h>
#include <sepol/port_record.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Return the number of ports */
extern int sepol_port_count(sepol_handle_t * handle,
const sepol_policydb_t * p, unsigned int *response);
/* Check if a port exists */
extern int sepol_port_exists(sepol_handle_t * handle,
const sepol_policydb_t * policydb,
const sepol_port_key_t * key, int *response);
/* Query a port - returns the port, or NULL if not found */
extern int sepol_port_query(sepol_handle_t * handle,
const sepol_policydb_t * policydb,
const sepol_port_key_t * key,
sepol_port_t ** response);
/* Modify a port, or add it, if the key is not found */
extern int sepol_port_modify(sepol_handle_t * handle,
sepol_policydb_t * policydb,
const sepol_port_key_t * key,
const sepol_port_t * data);
/* Iterate the ports
* The handler may return:
* -1 to signal an error condition,
* 1 to signal successful exit
* 0 to signal continue */
extern int sepol_port_iterate(sepol_handle_t * handle,
const sepol_policydb_t * policydb,
int (*fn) (const sepol_port_t * port,
void *fn_arg), void *arg);
#ifdef __cplusplus
}
#endif
#endif