blob: a57d730bb4b6d18809ae532c30687e45da31d9a1 (
plain) (
tree)
|
|
/*
# 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 <sys/types.h>
#include <cstring>
#include <QString>
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_ */
|