diff options
author | Adam Tkac <atkac@redhat.com> | 2010-08-11 15:28:01 +0000 |
---|---|---|
committer | Adam Tkac <atkac@redhat.com> | 2010-08-11 15:28:01 +0000 |
commit | 5522d61b7a7325bdcad49aa8ee878c05ddd0c241 (patch) | |
tree | 48f47db65138ffb67be1a9fa5c6468de1cd37868 /common/rfb/SSecurityPlain.cxx | |
parent | bacbbaa6973193e39cf7e40fe698d06962085cd4 (diff) | |
download | tigervnc-5522d61b7a7325bdcad49aa8ee878c05ddd0c241.tar.gz tigervnc-5522d61b7a7325bdcad49aa8ee878c05ddd0c241.zip |
[Cleanup] Ensure all files use LF as newline control character, not CR+LF.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4119 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'common/rfb/SSecurityPlain.cxx')
-rw-r--r-- | common/rfb/SSecurityPlain.cxx | 194 |
1 files changed, 97 insertions, 97 deletions
diff --git a/common/rfb/SSecurityPlain.cxx b/common/rfb/SSecurityPlain.cxx index 04eabe0d..6d0c67e9 100644 --- a/common/rfb/SSecurityPlain.cxx +++ b/common/rfb/SSecurityPlain.cxx @@ -1,97 +1,97 @@ -/* Copyright (C) 2005 Martin Koegler
- * Copyright (C) 2006 OCCAM Financial Technology
- *
- * This is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this software; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <rfb/SSecurityPlain.h>
-#include <rfb/SConnection.h>
-#include <rfb/Exception.h>
-#include <rdr/InStream.h>
-
-using namespace rfb;
-
-StringParameter PasswordValidator::plainUsers
-("PlainUsers",
- "Users permitted to access via Plain security type (including TLSPlain, X509Plain etc.)",
- "");
-
-bool PasswordValidator::validUser(const char* username)
-{
- CharArray users(strDup(plainUsers.getValueStr())), user;
- while (users.buf) {
- strSplit(users.buf, ',', &user.buf, &users.buf);
-#ifdef WIN32
- if(0==stricmp(user.buf, "*"))
- return true;
- if(0==stricmp(user.buf, username))
- return true;
-#else
- if(!strcmp (user.buf, "*"))
- return true;
- if(!strcmp (user.buf, username))
- return true;
-#endif
- }
- return false;
-}
-
-SSecurityPlain::SSecurityPlain(PasswordValidator* _valid)
-{
- valid=_valid;
- state=0;
-}
-
-bool SSecurityPlain::processMsg(SConnection* sc)
-{
- rdr::InStream* is = sc->getInStream();
- char* pw;
- char *uname;
- CharArray password;
-
- if(state==0)
- {
- if(!is->checkNoWait(8))
- return false;
- ulen=is->readU32();
- plen=is->readU32();
- state=1;
- }
- if(state==1)
- {
- if(is->checkNoWait(ulen+plen+2))
- return false;
- state=2;
- pw=new char[plen+1];
- uname=new char[ulen+1];
- username.replaceBuf(uname);
- password.replaceBuf(pw);
- is->readBytes(uname,ulen);
- is->readBytes(pw,plen);
- pw[plen]=0;
- uname[ulen]=0;
- plen=0;
- if(!valid->validate(sc,uname,pw))
- throw AuthFailureException("invalid password or username");
- return true;
- }
- return true;
-}
-
+/* Copyright (C) 2005 Martin Koegler + * Copyright (C) 2006 OCCAM Financial Technology + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this software; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, + * USA. + */ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <rfb/SSecurityPlain.h> +#include <rfb/SConnection.h> +#include <rfb/Exception.h> +#include <rdr/InStream.h> + +using namespace rfb; + +StringParameter PasswordValidator::plainUsers +("PlainUsers", + "Users permitted to access via Plain security type (including TLSPlain, X509Plain etc.)", + ""); + +bool PasswordValidator::validUser(const char* username) +{ + CharArray users(strDup(plainUsers.getValueStr())), user; + while (users.buf) { + strSplit(users.buf, ',', &user.buf, &users.buf); +#ifdef WIN32 + if(0==stricmp(user.buf, "*")) + return true; + if(0==stricmp(user.buf, username)) + return true; +#else + if(!strcmp (user.buf, "*")) + return true; + if(!strcmp (user.buf, username)) + return true; +#endif + } + return false; +} + +SSecurityPlain::SSecurityPlain(PasswordValidator* _valid) +{ + valid=_valid; + state=0; +} + +bool SSecurityPlain::processMsg(SConnection* sc) +{ + rdr::InStream* is = sc->getInStream(); + char* pw; + char *uname; + CharArray password; + + if(state==0) + { + if(!is->checkNoWait(8)) + return false; + ulen=is->readU32(); + plen=is->readU32(); + state=1; + } + if(state==1) + { + if(is->checkNoWait(ulen+plen+2)) + return false; + state=2; + pw=new char[plen+1]; + uname=new char[ulen+1]; + username.replaceBuf(uname); + password.replaceBuf(pw); + is->readBytes(uname,ulen); + is->readBytes(pw,plen); + pw[plen]=0; + uname[ulen]=0; + plen=0; + if(!valid->validate(sc,uname,pw)) + throw AuthFailureException("invalid password or username"); + return true; + } + return true; +} + |