Compare commits

...

10 Commits
1.0b ... 1.0c

13 changed files with 48 additions and 25 deletions

Binary file not shown.

BIN
Makefile

Binary file not shown.

View File

@@ -31,6 +31,9 @@ Suite of EAP supplicants for Microsoft Windows - IEEE 802.1X plug-ins for enterp
- [CredWrite utility](https://github.com/Amebis/GEANTLink/tree/ver1.0/CredWrite) for automated user credential import to Credential Manager - [CredWrite utility](https://github.com/Amebis/GEANTLink/tree/ver1.0/CredWrite) for automated user credential import to Credential Manager
- [WLANManager utility](https://github.com/Amebis/GEANTLink/tree/ver1.0/WLANManager) to allow network profile configuration dialog shortcuts - [WLANManager utility](https://github.com/Amebis/GEANTLink/tree/ver1.0/WLANManager) to allow network profile configuration dialog shortcuts
## Download
Binaries are available for download [here](https://github.com/Amebis/GEANTLink/releases).
## Building ## Building
### Building Environment Requirements ### Building Environment Requirements
@@ -113,3 +116,6 @@ Command | Explanation
`nmake SetupDebug` | Builds a debug version of project and debug MSI setup files. The resulting files can be found in `output\Setup` folder. `nmake SetupDebug` | Builds a debug version of project and debug MSI setup files. The resulting files can be found in `output\Setup` folder.
The `/ls` flag can be appended to the commands above to reduce NMAKEs verbosity. You can combine multiple targets (i.e. nmake Unregister Clean). Please, see NMAKE reference for further reading. The `/ls` flag can be appended to the commands above to reduce NMAKEs verbosity. You can combine multiple targets (i.e. nmake Unregister Clean). Please, see NMAKE reference for further reading.
### Translating into your language
GÉANTLink is fully localizable. We kindly invite you to help [translating it on Transifex](https://www.transifex.com/eduroam_devel/geantlink/).

View File

@@ -90,7 +90,6 @@ static int WLANManager()
} }
// Launch WLAN profile config dialog. // Launch WLAN profile config dialog.
// Note: When a debugger is attached to this process the WlanUIEditProfile() will raise an exception and fail.
WLAN_REASON_CODE wlrc; WLAN_REASON_CODE wlrc;
DWORD dwResult = WlanUIEditProfile(WLAN_UI_API_VERSION, pwcArglist[2], &(interfaces->InterfaceInfo[i].InterfaceGuid), NULL, WLSecurityPage, NULL, &wlrc); DWORD dwResult = WlanUIEditProfile(WLAN_UI_API_VERSION, pwcArglist[2], &(interfaces->InterfaceInfo[i].InterfaceGuid), NULL, WLSecurityPage, NULL, &wlrc);
if (dwResult != ERROR_SUCCESS) { if (dwResult != ERROR_SUCCESS) {
@@ -119,6 +118,13 @@ int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In
UNREFERENCED_PARAMETER(lpCmdLine); UNREFERENCED_PARAMETER(lpCmdLine);
UNREFERENCED_PARAMETER(nCmdShow); UNREFERENCED_PARAMETER(nCmdShow);
int res = 0;
{
// Note: When a debugger is attached to this process, the WlanUIEditProfile() will raise an exception and fail.
// It was accidentially discovered, that COM initialization resolves this issue.
com_initializer com_init(NULL);
{ {
// Initialize Windows XP visual styles // Initialize Windows XP visual styles
INITCOMMONCONTROLSEX icc; INITCOMMONCONTROLSEX icc;
@@ -129,7 +135,8 @@ int CALLBACK WinMain(_In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In
pfnWlanReasonCodeToString = WlanReasonCodeToString; pfnWlanReasonCodeToString = WlanReasonCodeToString;
int res = WLANManager(); res = WLANManager();
}
assert(!_CrtDumpMemoryLeaks()); assert(!_CrtDumpMemoryLeaks());
return res; return res;

View File

@@ -29,7 +29,7 @@
// Product version as a single DWORD // Product version as a single DWORD
// Note: Used for version comparison within C/C++ code. // Note: Used for version comparison within C/C++ code.
// //
#define PRODUCT_VERSION 0x01001d00 #define PRODUCT_VERSION 0x01001e00
// //
// Product version by components // Product version by components
@@ -39,26 +39,26 @@
// //
#define PRODUCT_VERSION_MAJ 1 #define PRODUCT_VERSION_MAJ 1
#define PRODUCT_VERSION_MIN 0 #define PRODUCT_VERSION_MIN 0
#define PRODUCT_VERSION_REV 29 #define PRODUCT_VERSION_REV 30
#define PRODUCT_VERSION_BUILD 0 #define PRODUCT_VERSION_BUILD 0
// //
// Human readable product version and build year for UI // Human readable product version and build year for UI
// //
#define PRODUCT_VERSION_STR "1.0b" #define PRODUCT_VERSION_STR "1.0c"
#define PRODUCT_BUILD_YEAR_STR "2016" #define PRODUCT_BUILD_YEAR_STR "2017"
// //
// Numerical version presentation for ProductVersion propery in // Numerical version presentation for ProductVersion propery in
// MSI packages (syntax: N.N[.N[.N]]) // MSI packages (syntax: N.N[.N[.N]])
// //
#define PRODUCT_VERSION_INST "1.0.29" #define PRODUCT_VERSION_INST "1.0.30"
// //
// The product code for ProductCode property in MSI packages // The product code for ProductCode property in MSI packages
// Replace with new on every version change, regardless how minor it is. // Replace with new on every version change, regardless how minor it is.
// //
#define PRODUCT_VERSION_GUID "{7DCB9632-6524-4590-A16F-173FB117F494}" #define PRODUCT_VERSION_GUID "{263EA84A-04C5-4AD2-98DF-6A3650278D67}"
// //
// Product vendor // Product vendor

View File

@@ -692,5 +692,6 @@ inline size_t pksizeof(_In_ const eap::config_method::status_t &val)
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ eap::config_method::status_t &val) inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ eap::config_method::status_t &val)
{ {
val = (eap::config_method::status_t)0; // Reset higher bytes to zero before reading to lower byte.
cursor >> (unsigned char&)val; cursor >> (unsigned char&)val;
} }

View File

@@ -583,5 +583,6 @@ inline size_t pksizeof(_In_ const eap::credentials_pass::enc_alg_t &val)
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ eap::credentials_pass::enc_alg_t &val) inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ eap::credentials_pass::enc_alg_t &val)
{ {
val = (eap::credentials_pass::enc_alg_t)0; // Reset higher bytes to zero before reading to lower byte.
cursor >> (unsigned char&)val; cursor >> (unsigned char&)val;
} }

View File

@@ -1022,9 +1022,11 @@ inline size_t pksizeof(const winstd::cert_context &val)
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ winstd::cert_context &val) inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ winstd::cert_context &val)
{ {
DWORD dwCertEncodingType; DWORD dwCertEncodingType;
assert(sizeof(dwCertEncodingType) == sizeof(unsigned int));
cursor >> (unsigned int&)dwCertEncodingType; cursor >> (unsigned int&)dwCertEncodingType;
DWORD dwCertEncodedSize; DWORD dwCertEncodedSize;
assert(sizeof(dwCertEncodingType) == sizeof(unsigned int));
cursor >> (unsigned int&)dwCertEncodedSize; cursor >> (unsigned int&)dwCertEncodedSize;
if (dwCertEncodedSize) { if (dwCertEncodedSize) {
@@ -1051,6 +1053,7 @@ inline size_t pksizeof(_In_ const winstd::eap_type_t &val)
inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ winstd::eap_type_t &val) inline void operator>>(_Inout_ eap::cursor_in &cursor, _Out_ winstd::eap_type_t &val)
{ {
val = (winstd::eap_type_t)0; // Reset higher bytes to zero before reading to lower byte.
cursor >> (unsigned char&)val; cursor >> (unsigned char&)val;
} }

View File

@@ -55,7 +55,6 @@ wxTLSServerTrustPanelBase::wxTLSServerTrustPanelBase( wxWindow* parent, wxWindow
sb_root_ca_btn->Add( m_root_ca_add_file, 0, wxRIGHT|wxLEFT, 5 ); sb_root_ca_btn->Add( m_root_ca_add_file, 0, wxRIGHT|wxLEFT, 5 );
m_root_ca_remove = new wxButton( sb_server_trust->GetStaticBox(), wxID_ANY, _("&Remove CA"), wxDefaultPosition, wxDefaultSize, 0 ); m_root_ca_remove = new wxButton( sb_server_trust->GetStaticBox(), wxID_ANY, _("&Remove CA"), wxDefaultPosition, wxDefaultSize, 0 );
m_root_ca_remove->Enable( false );
m_root_ca_remove->SetToolTip( _("Removes selected certificate authorities from the list") ); m_root_ca_remove->SetToolTip( _("Removes selected certificate authorities from the list") );
sb_root_ca_btn->Add( m_root_ca_remove, 0, wxLEFT, 5 ); sb_root_ca_btn->Add( m_root_ca_remove, 0, wxLEFT, 5 );

View File

@@ -659,7 +659,7 @@
<property name="dock">Dock</property> <property name="dock">Dock</property>
<property name="dock_fixed">0</property> <property name="dock_fixed">0</property>
<property name="docking">Left</property> <property name="docking">Left</property>
<property name="enabled">0</property> <property name="enabled">1</property>
<property name="fg"></property> <property name="fg"></property>
<property name="floatable">1</property> <property name="floatable">1</property>
<property name="font"></property> <property name="font"></property>

View File

@@ -37,7 +37,7 @@ public:
protected: protected:
static wxCriticalSection s_lock; ///< Initialization lock static wxCriticalSection s_lock; ///< Initialization lock
static unsigned long s_init_ref_count; ///< Initialization reference counter static unsigned long s_init_ref_count; ///< Initialization reference counter
static wxLocale s_locale; ///< Locale static wxLocale *s_locale; ///< Locale
}; };
@@ -343,9 +343,10 @@ wxInitializerPeer::wxInitializerPeer(_In_ HINSTANCE instance)
// Do our wxWidgets configuration and localization initialization. // Do our wxWidgets configuration and localization initialization.
wxInitializeConfig(); wxInitializeConfig();
if (wxInitializeLocale(s_locale)) { s_locale = new wxLocale;
s_locale.AddCatalog(wxT("wxExtend") wxT(wxExtendVersion)); if (wxInitializeLocale(*s_locale)) {
s_locale.AddCatalog(wxT("EAPTTLSUI")); s_locale->AddCatalog(wxT("wxExtend") wxT(wxExtendVersion));
s_locale->AddCatalog(wxT("EAPTTLSUI"));
} }
} }
@@ -357,9 +358,14 @@ wxInitializerPeer::~wxInitializerPeer()
return; return;
wxEntryCleanup(); wxEntryCleanup();
if (s_locale) {
delete s_locale;
s_locale = NULL;
}
} }
wxCriticalSection wxInitializerPeer::s_lock; wxCriticalSection wxInitializerPeer::s_lock;
unsigned long wxInitializerPeer::s_init_ref_count = 0; unsigned long wxInitializerPeer::s_init_ref_count = 0;
wxLocale wxInitializerPeer::s_locale; wxLocale *wxInitializerPeer::s_locale = NULL;