-rw-r--r-- | libopie2/opienet/opcap.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/libopie2/opienet/opcap.cpp b/libopie2/opienet/opcap.cpp index 012c0a3..4d786f5 100644 --- a/libopie2/opienet/opcap.cpp +++ b/libopie2/opienet/opcap.cpp | |||
@@ -807,56 +807,65 @@ bool OWaveLanManagementPacket::canCFP_REQ() const | |||
807 | 807 | ||
808 | 808 | ||
809 | bool OWaveLanManagementPacket::canPrivacy() const | 809 | bool OWaveLanManagementPacket::canPrivacy() const |
810 | { | 810 | { |
811 | return CAPABILITY_PRIVACY( EXTRACT_LE_16BITS( &_body->capability_info ) ); | 811 | return CAPABILITY_PRIVACY( EXTRACT_LE_16BITS( &_body->capability_info ) ); |
812 | } | 812 | } |
813 | 813 | ||
814 | 814 | ||
815 | /*====================================================================================== | 815 | /*====================================================================================== |
816 | * OWaveLanManagementSSID | 816 | * OWaveLanManagementSSID |
817 | *======================================================================================*/ | 817 | *======================================================================================*/ |
818 | 818 | ||
819 | OWaveLanManagementSSID::OWaveLanManagementSSID( const unsigned char* end, const struct ssid_t* data, QObject* parent ) | 819 | OWaveLanManagementSSID::OWaveLanManagementSSID( const unsigned char* end, const struct ssid_t* data, QObject* parent ) |
820 | :QObject( parent, "802.11 SSID" ), _data( data ) | 820 | :QObject( parent, "802.11 SSID" ), _data( data ) |
821 | { | 821 | { |
822 | odebug << "OWaveLanManagementSSID()" << oendl; | 822 | odebug << "OWaveLanManagementSSID()" << oendl; |
823 | } | 823 | } |
824 | 824 | ||
825 | 825 | ||
826 | OWaveLanManagementSSID::~OWaveLanManagementSSID() | 826 | OWaveLanManagementSSID::~OWaveLanManagementSSID() |
827 | { | 827 | { |
828 | } | 828 | } |
829 | 829 | ||
830 | 830 | ||
831 | QString OWaveLanManagementSSID::ID() const | 831 | QString OWaveLanManagementSSID::ID( bool decloak ) const |
832 | { | 832 | { |
833 | int length = _data->length; | 833 | int length = _data->length; |
834 | if ( length > 32 ) length = 32; | 834 | if ( length > 32 ) length = 32; |
835 | char essid[length+1]; | 835 | char essid[length+1]; |
836 | memcpy( &essid, &_data->ssid, length ); | 836 | memcpy( &essid, &_data->ssid, length ); |
837 | essid[length] = 0x0; | 837 | essid[length] = 0x0; |
838 | return essid; | 838 | if ( !decloak || length < 2 || essid[0] != '\0' ) return essid; |
839 | odebug << "OWaveLanManagementSSID:ID(): SSID is cloaked - decloaking..." << oendl; | ||
840 | |||
841 | QString decloakedID; | ||
842 | for ( int i = 1; i < length; ++i ) | ||
843 | { | ||
844 | if ( essid[i] >= 32 && essid[i] <= 126 ) decloakedID.append( essid[i] ); | ||
845 | else decloakedID.append( '.' ); | ||
846 | } | ||
847 | return decloakedID; | ||
839 | } | 848 | } |
840 | 849 | ||
841 | 850 | ||
842 | /*====================================================================================== | 851 | /*====================================================================================== |
843 | * OWaveLanManagementRates | 852 | * OWaveLanManagementRates |
844 | *======================================================================================*/ | 853 | *======================================================================================*/ |
845 | 854 | ||
846 | OWaveLanManagementRates::OWaveLanManagementRates( const unsigned char* end, const struct rates_t* data, QObject* parent ) | 855 | OWaveLanManagementRates::OWaveLanManagementRates( const unsigned char* end, const struct rates_t* data, QObject* parent ) |
847 | :QObject( parent, "802.11 Rates" ), _data( data ) | 856 | :QObject( parent, "802.11 Rates" ), _data( data ) |
848 | { | 857 | { |
849 | odebug << "OWaveLanManagementRates()" << oendl; | 858 | odebug << "OWaveLanManagementRates()" << oendl; |
850 | } | 859 | } |
851 | 860 | ||
852 | 861 | ||
853 | OWaveLanManagementRates::~OWaveLanManagementRates() | 862 | OWaveLanManagementRates::~OWaveLanManagementRates() |
854 | { | 863 | { |
855 | } | 864 | } |
856 | 865 | ||
857 | /*====================================================================================== | 866 | /*====================================================================================== |
858 | * OWaveLanManagementCF | 867 | * OWaveLanManagementCF |
859 | *======================================================================================*/ | 868 | *======================================================================================*/ |
860 | 869 | ||
861 | OWaveLanManagementCF::OWaveLanManagementCF( const unsigned char* end, const struct cf_t* data, QObject* parent ) | 870 | OWaveLanManagementCF::OWaveLanManagementCF( const unsigned char* end, const struct cf_t* data, QObject* parent ) |
862 | :QObject( parent, "802.11 CF" ), _data( data ) | 871 | :QObject( parent, "802.11 CF" ), _data( data ) |