summaryrefslogtreecommitdiffstats
path: root/libmail/nntplogin.H
diff options
context:
space:
mode:
Diffstat (limited to 'libmail/nntplogin.H')
-rw-r--r--libmail/nntplogin.H66
1 files changed, 66 insertions, 0 deletions
diff --git a/libmail/nntplogin.H b/libmail/nntplogin.H
new file mode 100644
index 0000000..612048d
--- /dev/null
+++ b/libmail/nntplogin.H
@@ -0,0 +1,66 @@
+/*
+** Copyright 2003, Double Precision Inc.
+**
+** See COPYING for distribution information.
+*/
+#ifndef libmail_nntplogin_H
+#define libmail_nntplogin_H
+
+#include "libmail_config.h"
+
+#include "nntp.H"
+#include "logininfo.H"
+
+LIBMAIL_START
+
+//
+// Superclass of all NNTP tasks that must have a logged in connection
+//
+
+class mail::nntp::LoggedInTask : public mail::nntp::Task,
+ private loginInfo::callbackTarget {
+
+ void (mail::nntp::LoggedInTask::*responseFunc)(const char *);
+
+ bool loggingIn;
+
+public:
+ LoggedInTask(callback *callbackArg, nntp &myserverArg);
+ ~LoggedInTask();
+
+ void serverResponse(const char *message);
+ void installedTask();
+
+ virtual void loggedIn()=0;
+ virtual void processLine(const char *message)=0;
+
+ void fail(std::string);
+private:
+ void doFwdResponse(const char *);
+
+ void doGreeting(const char *);
+
+ void authinfoUser();
+ void authinfoPwd();
+
+ void authCompleted();
+
+ void doAuthUser(const char *);
+ void doAuthPwd(const char *);
+ void doModeReader1(const char *);
+ void doModeReader2(const char *);
+
+ void gotPassword(std::string);
+
+ void loginInfoCallback(std::string);
+ void loginInfoCallbackCancel();
+
+
+ void doTryAgain(const char *);
+
+ void loginCompleted();
+ void loginCompleted2();
+};
+
+LIBMAIL_END
+#endif