diff options
Diffstat (limited to 'kdesu/client.h')
-rw-r--r-- | kdesu/client.h | 207 |
1 files changed, 0 insertions, 207 deletions
diff --git a/kdesu/client.h b/kdesu/client.h deleted file mode 100644 index 420d5dadd..000000000 --- a/kdesu/client.h +++ /dev/null @@ -1,207 +0,0 @@ -/* vi: ts=8 sts=4 sw=4 - * - * $Id$ - * - * This file is part of the KDE project, module tdesu. - * Copyright (C) 1999,2000 Geert Jansen <jansen@kde.org> - * - * This is free software; you can use this library under the GNU Library - * General Public License, version 2. See the file "COPYING.LIB" for the - * exact licensing terms. - * - * client.h: client to access tdesud. - */ - -#ifndef __KDE_su_Client_h_Included__ -#define __KDE_su_Client_h_Included__ - -#include <tqglobal.h> -#include <kdelibs_export.h> - -#ifdef Q_OS_UNIX - -#include <sys/types.h> -#include <sys/socket.h> -#include <sys/un.h> - -#include <tqcstring.h> -#include <tqvaluelist.h> - -typedef TQValueList<TQCString> QCStringList; - -/** - * A client class to access tdesud, the KDE su daemon. Kdesud can assist in - * password caching in two ways: - * - * @li For high security passwords, like for su and ssh, it executes the - * password requesting command for you. It feeds the password to the - * command, without ever returning it to you, the user. The daemon should - * be installed setgid nogroup, in order to be able to act as an inaccessible, - * trusted 3rd party. - * See exec, setPass, delCommand. - * - * @li For lower security passwords, like web and ftp passwords, it can act - * as a persistent storage for string variables. These variables are - * returned to the user, and the daemon doesn't need to be setgid nogroup - * for this. - * See setVar, delVar, delGroup. - */ - -class KDESU_EXPORT KDEsuClient { -public: - KDEsuClient(); - ~KDEsuClient(); - - /** - * Lets tdesud execute a command. If the daemon does not have a password - * for this command, this will fail and you need to call setPass(). - * - * @param command The command to execute. - * @param user The user to run the command as. - * @param options Extra options. - * @param env Extra environment variables. - * @return Zero on success, -1 on failure. - */ - int exec(const TQCString &command, const TQCString &user, const TQCString &options=0, const QCStringList &env=QCStringList()); - - /** - * Wait for the last command to exit and return the exit code. - * @return Exit code of last command, -1 on failure. - */ - int exitCode(); - - /** - * Set root's password, lasts one session. - * - * @param pass Root's password. - * @param timeout The time that a password will live. - * @return Zero on success, -1 on failure. - */ - int setPass(const char *pass, int timeout); - - /** - * Set the target host (optional). - */ - int setHost(const TQCString &host); - - /** - * Set the desired priority (optional), see StubProcess. - */ - int setPriority(int priority); - - /** - * Set the desired scheduler (optional), see StubProcess. - */ - int setScheduler(int scheduler); - - /** - * Remove a password for a user/command. - * @param command The command. - * @param user The user. - * @return zero on success, -1 on an error - */ - int delCommand(const TQCString &command, const TQCString &user); - - /** - * Set a persistent variable. - * @param key The name of the variable. - * @param value Its value. - * @param timeout The timeout in seconds for this key. Zero means - * no timeout. - * @param group Make the key part of a group. See delGroup. - * @return zero on success, -1 on failure. - */ - int setVar(const TQCString &key, const TQCString &value, int timeout=0, const TQCString &group=0); - - /** - * Get a persistent variable. - * @param key The name of the variable. - * @return Its value. - */ - TQCString getVar(const TQCString &key); - - /** - * Gets all the keys that are membes of the given group. - * @param group the group name of the variables. - * @return a list of the keys in the group. - */ - TQValueList<TQCString> getKeys(const TQCString &group); - - /** - * Returns true if the specified group exists is - * cached. - * - * @param group the group key - * @return true if the group is found - */ - bool findGroup(const TQCString &group); - - /** - * Delete a persistent variable. - * @param key The name of the variable. - * @return zero on success, -1 on failure. - */ - int delVar(const TQCString &key); - - /** - * Delete all persistent variables with the given key. - * - * A specicalized variant of delVar(TQCString) that removes all - * subsets of the cached varaibles given by @p key. In order for all - * cached variables related to this key to be deleted properly, the - * value given to the @p group argument when the setVar function - * was called, must be a subset of the argument given here and the key - * - * @note Simply supplying the group key here WILL not necessarily - * work. If you only have a group key, then use delGroup instead. - * - * @param special_key the name of the variable. - * @return zero on success, -1 on failure. - */ - int delVars(const TQCString &special_key); - - /** - * Delete all persistent variables in a group. - * - * @param group the group name. See setVar. - * @return - */ - int delGroup(const TQCString &group); - - /** - * Ping tdesud. This can be used for diagnostics. - * @return Zero on success, -1 on failure - */ - int ping(); - - /** - * Stop the daemon. - */ - int stopServer(); - - /** - * Try to start up tdesud - */ - int startServer(); - - /** - * Returns true if the server is safe (installed setgid), false otherwise. - */ - bool isServerSGID(); - -private: - int connect(); - - int sockfd; - TQCString sock; - - int command(const TQCString &cmd, TQCString *result=0L); - TQCString escape(const TQCString &str); - - class KDEsuClientPrivate; - KDEsuClientPrivate *d; -}; - -#endif //Q_OS_UNIX - -#endif //__KDE_su_Client_h_Included__ |