summaryrefslogtreecommitdiffstats
path: root/kdepasswd/passwd.h
blob: a0c27a5a9b12f5390221089a4e8d7f24f99910f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/* vi: ts=8 sts=4 sw=4
 *
 * $Id$
 *
 * This file is part of the KDE project, module kdesu.
 * Copyright (C) 2000 Geert Jansen <[email protected]>
 */

#ifndef __Passwd_h_Included__
#define __Passwd_h_Included__

#include <qcstring.h>
#include <kdesu/process.h>

/**
 * A C++ API to passwd.
 */

class PasswdProcess
    : public PtyProcess
{
public:
    PasswdProcess(QCString user=0);
    ~PasswdProcess();

    enum Errors { PasswdNotFound=1, PasswordIncorrect, PasswordNotGood };

    int checkCurrent(const char *oldpass);
    int exec(const char *oldpass, const char *newpass, int check=0);

    QCString error() { return m_Error; }

private:
    bool isPrompt(QCString line, const char *word=0L);
    int ConversePasswd(const char *oldpass, const char *newpass,
	    int check);

    QCString m_User, m_Error;
    bool bOtherUser;
};


#endif // __Passwd_h_Included__