diff options
author | Adam Tkac <atkac@redhat.com> | 2010-07-20 15:10:16 +0000 |
---|---|---|
committer | Adam Tkac <atkac@redhat.com> | 2010-07-20 15:10:16 +0000 |
commit | 0c77e51de8f78a7e50e443ee8a1890a6a2834a67 (patch) | |
tree | 62925663cc80404121a685c2062ea94219186339 /common/rfb/Security.cxx | |
parent | 00b395a4101fba5c35708fc8071d82962cb1866d (diff) | |
download | tigervnc-0c77e51de8f78a7e50e443ee8a1890a6a2834a67.tar.gz tigervnc-0c77e51de8f78a7e50e443ee8a1890a6a2834a67.zip |
[Development] Use U32 as internal SecurityType type.
Signed-off-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4097 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'common/rfb/Security.cxx')
-rw-r--r-- | common/rfb/Security.cxx | 46 |
1 files changed, 35 insertions, 11 deletions
diff --git a/common/rfb/Security.cxx b/common/rfb/Security.cxx index 7049439d..063e5dd1 100644 --- a/common/rfb/Security.cxx +++ b/common/rfb/Security.cxx @@ -62,9 +62,33 @@ Security::Security(void) delete secTypesStr; } -void Security::EnableSecType(U8 secType) +const std::list<rdr::U8> Security::GetEnabledSecTypes(void) { - list<U8>::iterator i; + list<rdr::U8> result; + list<U32>::iterator i; + + for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++) + if (*i < 0x100) + result.push_back(*i); + + return result; +} + +const std::list<rdr::U32> Security::GetEnabledExtSecTypes(void) +{ + list<rdr::U32> result; + list<U32>::iterator i; + + for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++) + if (*i >= 0x100) + result.push_back(*i); + + return result; +} + +void Security::EnableSecType(U32 secType) +{ + list<U32>::iterator i; for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++) if (*i == secType) @@ -73,9 +97,9 @@ void Security::EnableSecType(U8 secType) enabledSecTypes.push_back(secType); } -bool Security::IsSupported(U8 secType) +bool Security::IsSupported(U32 secType) { - list<U8>::iterator i; + list<U32>::iterator i; for (i = enabledSecTypes.begin(); i != enabledSecTypes.end(); i++) if (*i == secType) @@ -84,7 +108,7 @@ bool Security::IsSupported(U8 secType) return false; } -SSecurity* Security::GetSSecurity(U8 secType) +SSecurity* Security::GetSSecurity(U32 secType) { if (!IsSupported(secType)) goto bail; @@ -101,7 +125,7 @@ bail: throw Exception("Security type not supported"); } -CSecurity* Security::GetCSecurity(U8 secType) +CSecurity* Security::GetCSecurity(U32 secType) { assert (CSecurity::upg != NULL); /* (upg == NULL) means bug in the viewer */ @@ -120,7 +144,7 @@ bail: throw Exception("Security type not supported"); } -rdr::U8 rfb::secTypeNum(const char* name) +rdr::U32 rfb::secTypeNum(const char* name) { if (strcasecmp(name, "None") == 0) return secTypeNone; if (strcasecmp(name, "VncAuth") == 0) return secTypeVncAuth; @@ -133,7 +157,7 @@ rdr::U8 rfb::secTypeNum(const char* name) return secTypeInvalid; } -const char* rfb::secTypeName(rdr::U8 num) +const char* rfb::secTypeName(rdr::U32 num) { switch (num) { case secTypeNone: return "None"; @@ -148,13 +172,13 @@ const char* rfb::secTypeName(rdr::U8 num) } } -std::list<rdr::U8> rfb::parseSecTypes(const char* types_) +std::list<rdr::U32> rfb::parseSecTypes(const char* types_) { - std::list<rdr::U8> result; + std::list<rdr::U32> result; CharArray types(strDup(types_)), type; while (types.buf) { strSplit(types.buf, ',', &type.buf, &types.buf); - rdr::U8 typeNum = secTypeNum(type.buf); + rdr::U32 typeNum = secTypeNum(type.buf); if (typeNum != secTypeInvalid) result.push_back(typeNum); } |