00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef SBUILD_AUTH_CONV_TTY_H
00021 #define SBUILD_AUTH_CONV_TTY_H
00022
00023 #include <sys/types.h>
00024 #include <sys/wait.h>
00025 #include <grp.h>
00026 #include <pwd.h>
00027 #include <unistd.h>
00028
00029 #include <security/pam_appl.h>
00030 #include <security/pam_misc.h>
00031
00032 #include "sbuild-auth-conv.h"
00033
00034 namespace sbuild
00035 {
00049 class AuthConvTty : public AuthConv
00050 {
00051 public:
00053 AuthConvTty();
00055 virtual ~AuthConvTty();
00056
00057 virtual time_t get_warning_timeout ();
00058 virtual void set_warning_timeout (time_t timeout);
00059
00060 virtual time_t get_fatal_timeout ();
00061 virtual void set_fatal_timeout (time_t timeout);
00062
00063 virtual bool conversation (message_list& messages);
00064
00065 private:
00075 int get_delay ();
00076
00095 std::string * read_string (std::string message,
00096 bool echo);
00097
00099 time_t warning_timeout;
00101 time_t fatal_timeout;
00103 time_t start_time;
00104 };
00105
00106 }
00107
00108 #endif
00109
00110
00111
00112
00113
00114