#include "wifi_mgr.h"
#define KEY_PRIV "priv"
-#define KEY_NETWORK_ENTER "Select"
-#define AP_NAME_LENTH 256
+#define AP_NAME_LENGTH 256
+
+/*
+ * TODO: should MIN_PWD_LENGTH be changed to 8?
+ *
+ * http://standards.ieee.org/getieee802/download/802.11i-2004.pdf, H.4.1:
+ * _A pass-phrase is a sequence of between 8 and 63 ASCII-encoded characters._
+ */
+#define MIN_PWD_LENGTH 1
#define TXT_PASSCODE "Network passcode"
#define TXT_ENTER_PASSCODE "Enter the network password"
Evas_Object *entry;
Evas_Object *dim_ly;
Evas_Object *ctxpopup;
- char ap_name[AP_NAME_LENTH + 1];
+ char ap_name[AP_NAME_LENGTH + 1];
char *ap_pwd;
};
wifi_mgr_get_ap_info(ap, &ap_info);
- if (!strncmp(priv->ap_name, ap_info.essid, AP_NAME_LENTH)) {
+ if (!strncmp(priv->ap_name, ap_info.essid, AP_NAME_LENGTH)) {
ret = wifi_mgr_set_passphrase(ap, priv->ap_pwd);
if (ret != RET_SUCCESS) {
_ERR("wifi_mgr_set_passphrase() failed.");
Evas_Event_Key_Down *ev;
struct _priv *priv;
int ret;
+ char *pwd;
if (!ei || !data) {
- _ERR("ei or data is NULL");
+ _ERR("Invalid parameter");
return;
}
return;
}
- if (!strcmp(ev->keyname, KEY_NETWORK_ENTER)) {
+ if (!strcmp(ev->keyname, KEY_ENTER_REMOTE)
+ || !strcmp(ev->keyname, KEY_ENTER)) {
+ pwd = elm_entry_markup_to_utf8(elm_entry_entry_get(obj));
+ if (!pwd || strlen(pwd) < MIN_PWD_LENGTH) {
+ _DBG("Invalid passcode is provided");
+ free(pwd);
+ _show_invalid_pwd_popup(priv);
+ return;
+ }
+
if (priv->ap_pwd) {
free(priv->ap_pwd);
priv->ap_pwd = NULL;
}
-
- priv->ap_pwd = strdup(elm_entry_entry_get(obj));
- if (!priv->ap_pwd) {
- _ERR("the passcode in entry is NULL.");
- _show_invalid_pwd_popup(priv);
- return;
- }
+ priv->ap_pwd = strdup(pwd);
+ free(pwd);
ret = _wifi_connect_ap(priv);
if (ret != RET_SUCCESS) {
- _ERR("connect ap");
+ _DBG("Connection failed");
_show_confirm_popup(priv);
- return;
}
}
}
priv->vmgr = vmgr;
ap_info = data;
- strncpy(priv->ap_name, ap_info->essid, AP_NAME_LENTH);
+ strncpy(priv->ap_name, ap_info->essid, AP_NAME_LENGTH);
base = util_add_layout(priv->win, UG_NETWORK_EDJ_FILE,
GRP_WIFI_PASSCODE_BASE);