/* * Copyright 2009 Oracle. All rights reserved. * * This file is part of nfs-utils. * * nfs-utils is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * nfs-utils is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with nfs-utils. If not, see . */ /* * NSM for Linux. */ #ifndef NFS_UTILS_SUPPORT_NSM_H #define NFS_UTILS_SUPPORT_NSM_H #include #include #include #include #include #include "sm_inter.h" typedef unsigned int (*nsm_populate_t)(const char *hostname, const struct sockaddr *sap, const struct mon *mon, const time_t timestamp); /* file.c */ extern _Bool nsm_setup_pathnames(const char *progname, const char *parentdir); extern _Bool nsm_is_default_parentdir(void); extern _Bool nsm_drop_privileges(const int pidfd); extern int nsm_get_state(_Bool update); extern void nsm_update_kernel_state(const int state); extern unsigned int nsm_retire_monitored_hosts(void); extern unsigned int nsm_load_monitor_list(nsm_populate_t func); extern unsigned int nsm_load_notify_list(nsm_populate_t func); extern _Bool nsm_insert_monitored_host(const char *hostname, const struct sockaddr *sap, const struct mon *m); extern void nsm_delete_monitored_host(const char *hostname); extern void nsm_delete_notified_host(const char *hostname); extern size_t nsm_priv_to_hex(const char *priv, char *buf, const size_t buflen); #endif /* !NFS_UTILS_SUPPORT_NSM_H */