class ConnectionFilter {
public:
virtual bool verifyConnection(Socket* s) = 0;
+ virtual ~ConnectionFilter() {}
};
class SocketListener {
class FdInStreamBlockCallback {
public:
virtual void blockCallback() = 0;
+ virtual ~FdInStreamBlockCallback() {}
};
class FdInStream : public InStream {
{ return validUser(username) ? validateInternal(sc, username, password) : false; }
static StringParameter plainUsers;
+ virtual ~PasswordValidator() { }
+
protected:
virtual bool validateInternal(SConnection* sc, const char *username, const char *password)=0;
static bool validUser(const char* username);
virtual int getType() const { return secTypePlain; };
virtual const char* getUserName() const { return username.buf; }
+ virtual ~SSecurityPlain() { }
+
private:
PasswordValidator* valid;
unsigned int ulen, plen, state;
// getVncAuthPasswd() fills buffer of given password and readOnlyPassword.
// If there was no read only password in the file, readOnlyPassword buffer is null.
virtual void getVncAuthPasswd(PlainPasswd *password, PlainPasswd *readOnlyPassword)=0;
+
+ virtual ~VncAuthPasswdGetter() { }
};
class VncAuthPasswdParameter : public VncAuthPasswdGetter, BinaryParameter {
// appropriate interval.
// If the handler returns false then the Timer is cancelled.
virtual bool handleTimeout(Timer* t) = 0;
+
+ virtual ~Callback() {}
};
// checkTimeouts()
// case no user name will be retrieved. The caller MUST delete [] the
// result(s).
virtual void getUserPasswd(char** user, char** password)=0;
+
+ virtual ~UserPasswdGetter() {}
};
}
#endif