[Development] Use SecurityType also as configuration for VeNCrypt.

Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4102 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/CSecurityVeNCrypt.cxx b/common/rfb/CSecurityVeNCrypt.cxx
index 94af48d..39a95f4 100644
--- a/common/rfb/CSecurityVeNCrypt.cxx
+++ b/common/rfb/CSecurityVeNCrypt.cxx
@@ -30,7 +30,6 @@
 #include <rfb/CSecurityVeNCrypt.h>

 #include <rfb/CSecurityVncAuth.h>

 #include <rfb/LogWriter.h>

-#include <rfb/SSecurityVeNCrypt.h>

 #include <list>

 

 using namespace rfb;

@@ -147,14 +146,14 @@
 

     /* make a choice and send it to the server, meanwhile set up the stack */

     if (!haveChosenType) {

-      chosenType = 0;

+      chosenType = secTypeInvalid;

       U8 i;

       list<U32>::iterator j;

       list<U32> preferredList;

 

       /* Try preferred choice */

-      SSecurityVeNCrypt::getSecTypes(&preferredList);

-	  

+      preferredList = security->GetEnabledExtSecTypes();

+

       for (j = preferredList.begin(); j != preferredList.end(); j++) {

 	for (i = 0; i < nAvailableTypes; i++) {

 	  if (*j == availableTypes[i]) {

@@ -163,29 +162,19 @@
 	  }

 	}

 

-	if (chosenType)

+	if (chosenType != secTypeInvalid)

 	  break;

       }

 

       vlog.debug("Choosing security type %s (%d)", secTypeName(chosenType),

 		 chosenType);

-      /* Set up the stack according to the chosen type: */

-      switch (chosenType) {

-	case secTypeTLSNone:

-	case secTypeTLSVnc:

-	case secTypeTLSPlain:

-	case secTypeX509None:

-	case secTypeX509Vnc:

-	case secTypeX509Plain:

-	  csecurity = CSecurityVeNCrypt::getCSecurityStack(chosenType);

-	  break;

 

-	case secTypeInvalid:

-	case secTypeVeNCrypt: /* would cause looping */

-	default:

-	  throw AuthFailureException("No valid VeNCrypt sub-type");

-      }

-      

+      /* Set up the stack according to the chosen type: */

+      if (chosenType == secTypeInvalid || chosenType == secTypeVeNCrypt)

+	throw AuthFailureException("No valid VeNCrypt sub-type");

+

+      csecurity = CSecurityVeNCrypt::getCSecurityStack(chosenType);

+

       /* send chosen type to server */

       os->writeU32(chosenType);

       os->flush();