aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/network/config/ltq-vdsl-app/Makefile2
-rw-r--r--package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c40
2 files changed, 23 insertions, 19 deletions
diff --git a/package/network/config/ltq-vdsl-app/Makefile b/package/network/config/ltq-vdsl-app/Makefile
index 6ea103de8d..0051f39b31 100644
--- a/package/network/config/ltq-vdsl-app/Makefile
+++ b/package/network/config/ltq-vdsl-app/Makefile
@@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=ltq-vdsl-app
PKG_VERSION:=4.17.18.6
-PKG_RELEASE:=9
+PKG_RELEASE:=$(AUTORELEASE)
PKG_BASE_NAME:=dsl_cpe_control
PKG_SOURCE:=$(PKG_BASE_NAME)_vrx-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=@OPENWRT
diff --git a/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c b/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c
index 9137d797f9..ab18c9d4d6 100644
--- a/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c
+++ b/package/network/config/ltq-vdsl-app/src/src/dsl_cpe_ubus.c
@@ -477,32 +477,28 @@ static void g997_xtu_system_enabling(int fd, standard_t *standard) {
m_str("standard", str);
}
-static vector_t get_vector_status() {
+static void get_vector_status(int fd, vector_t *status) {
+ *status = VECTOR_UNKNOWN;
+
#ifdef INCLUDE_DSL_CPE_API_VRX
- int fd = open(DSL_CPE_DSL_LOW_DEV "/0", O_RDWR, 0644);
if (fd < 0)
- return VECTOR_UNKNOWN;
-
- IOCTL_MEI_dsmStatus_t out;
- memset(&out, 0, sizeof(IOCTL_MEI_dsmStatus_t));
- int ret = ioctl(fd, FIO_MEI_DSM_STATUS_GET, &out);
- close(fd);
+ return;
- if (ret)
- return VECTOR_UNKNOWN;
+ IOCTL(IOCTL_MEI_dsmStatus_t, FIO_MEI_DSM_STATUS_GET);
switch (out.eVectorStatus) {
case e_MEI_VECTOR_STAT_OFF:
- return VECTOR_OFF;
+ *status = VECTOR_OFF;
+ break;
case e_MEI_VECTOR_STAT_ON_DS:
- return VECTOR_ON_DS;
+ *status = VECTOR_ON_DS;
+ break;
case e_MEI_VECTOR_STAT_ON_DS_US:
- return VECTOR_ON_DS_US;
+ *status = VECTOR_ON_DS_US;
+ break;
default:
- return VECTOR_UNKNOWN;
+ break;
};
-#else
- return VECTOR_UNKNOWN;
#endif
}
@@ -720,7 +716,7 @@ static int metrics(struct ubus_context *ctx, struct ubus_object *obj,
struct ubus_request_data *req, const char *method,
struct blob_attr *msg)
{
- int fd;
+ int fd, fd_mei;
void *c, *c2;
standard_t standard = STD_UNKNOWN;
profile_t profile = PROFILE_UNKNOWN;
@@ -734,6 +730,12 @@ static int metrics(struct ubus_context *ctx, struct ubus_object *obj,
if (fd < 0)
return UBUS_STATUS_UNKNOWN_ERROR;
+#ifdef INCLUDE_DSL_CPE_API_VRX
+ fd_mei = open(DSL_CPE_DSL_LOW_DEV "/0", O_RDWR, 0644);
+#else
+ fd_mei = -1;
+#endif
+
blob_buf_init(&b, 0);
version_information(fd);
@@ -749,7 +751,7 @@ static int metrics(struct ubus_context *ctx, struct ubus_object *obj,
if (standard == STD_G_993_2) {
band_plan_status(fd, &profile);
- vector = get_vector_status();
+ get_vector_status(fd_mei, &vector);
}
describe_mode(standard, profile, vector);
@@ -803,6 +805,8 @@ static int metrics(struct ubus_context *ctx, struct ubus_object *obj,
ubus_send_reply(ctx, req, b.head);
+ if (fd_mei >= 0)
+ close(fd_mei);
close(fd);
return 0;