/* # Copyright (c) 2009 - OpenSLX Project, Computer Center University of Freiburg # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING # # If you have any feedback please consult http://openslx.org/feedback and # send your suggestions, praise, or complaints to feedback@openslx.org # # General information about OpenSLX can be found at http://openslx.org/ # -------------------------------------------------------------------------- # pvsPrivInputSocket.h: # - Centralize knowledge of socket address and connection options # for pvsprivinputd - interface # -------------------------------------------------------------------------- */ #ifndef PVSPRIVINPUTSOCKET_H_ #define PVSPRIVINPUTSOCKET_H_ #include #include #include class QSettings; /** * Load \c pvsprivinputd's configuration. This keeps a cached copy. */ QSettings* pvsPrivInputGetSettings(); /** * Update the cached configuration copy kept by pvsPrivInputGetSettings(). */ QSettings* pvsPrivInputReopenSettings(); /** * Hardcoded to \c /etc/pvsprivinputd.conf */ QString pvsPrivInputGetSettingsPath(); /** * Retrieve the path at which \c pvsprivinputd listens for datagrams from * its configuration. */ QString pvsPrivInputGetSocketAddress(); /** * Enable the receiving of sender credentials on a \c unix(7) socket. */ bool pvsPrivInputEnableReceiveCredentials(int sock); /** * Make a \c unix(7) socket that is suitable for sending authenticated * datagrams to \c pvsprivinputd. */ int pvsPrivInputMakeClientSocket(); /** * Make a listening \c unix(7) socket at the address specified by * pvsPrivInputGetSocketAddress() that receives sender credentials. */ int pvsPrivInputMakeServerSocket(); /** * Send an authenticated message on a \c unix(7) socket. */ bool pvsPrivInputSendMessage(int sock, void* buf, size_t len, int* err = 0); /** * Receive an authenticated message on a \c unix(7) socket. */ bool pvsPrivInputRecvMessage(int sock, void* buf, size_t& len, pid_t& pid, uid_t& uid, gid_t& gid, int* err = 0); #endif /* PVSPRIVINPUTSOCKET_H_ */