return -1;
strcpy(buf, var);
+ memcpy(&buf[strlen(var) + 1], val, len);
if ((ret = bcom_ioctl(skfd, ifname, WLC_SET_VAR, buf, sizeof(buf))))
return ret;
- memcpy(val, buf, len);
return 0;
}
/* Set operation mode */
ap = !nvram_match(wl_var("mode"), "sta") && !nvram_match(wl_var("mode"), "wet");
infra = !nvram_disabled(wl_var("infra"));
- wet = nvram_enabled(wl_var("wet")) || !nvram_match(wl_var("mode"), "wet");
+ wet = !ap && !nvram_disabled(wl_var("wet"));
wrq.u.mode = (!infra ? IW_MODE_ADHOC : (ap ? IW_MODE_MASTER : (wet ? IW_MODE_REPEAT : IW_MODE_INFRA)));
IW_SET_EXT_ERR(skfd, ifname, SIOCSIWMODE, &wrq, "Set Mode");