[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit
Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/app/goahead/interface5.0/zte_web_safe.c b/ap/app/goahead/interface5.0/zte_web_safe.c
new file mode 100644
index 0000000..55b48ca
--- /dev/null
+++ b/ap/app/goahead/interface5.0/zte_web_safe.c
@@ -0,0 +1,171 @@
+#include "zte_web_interface.h"
+
+
+
+
+data_safe_result_type_t zte_Safe_isMacValid(char *str)
+{
+ int i, len = strlen(str);
+ if (len != 17)
+ return 0;
+
+ for (i = 0; i < 5; i++) {
+ if ((!isxdigit(str[i * 3])) || (!isxdigit(str[i * 3 + 1])) || (str[i * 3 + 2] != ':'))
+ return 0;
+ }
+ return (isxdigit(str[15]) && isxdigit(str[16])) ? 1 : 0;
+}
+
+
+data_safe_result_type_t zte_Safe_isIpValid(char *str)
+{
+ struct in_addr addr; /*lint !e565 !e1080*/
+ if ((! strcmp(T("any"), str)) || (! strcmp(T("any/0"), str)))
+ return 1;
+
+ if (!(inet_aton(str, &addr))) {
+ slog(MISC_PRINT, SLOG_DEBUG, "isIpValid(): %s is not a valid IP address.\n", str); /*lint !e26*/
+ return 0;
+ }
+ return 1;
+}
+
+data_safe_result_type_t zte_Safe_isNumOnly(char *str)
+{
+ int i, len = strlen(str);
+ for (i = 0; i < len; i++) {
+ if ((str[i] >= '0' && str[i] <= '9'))
+ continue;
+ return 0;
+ }
+ return 1;
+}
+
+
+data_safe_result_type_t zte_Safe_noSpecialChar(char *str)
+{
+ int i = 0;
+ int len = 0;
+ if (NULL == str) {
+ return 0;
+ }
+ len = strlen(str);
+ for (i = 0; i < len; i++) {
+ if (zte_Safe_valid_SpecialChar(str[i]) != 0) {
+ continue;
+ } else {
+ return 0;
+ }
+ }
+ return 1;
+
+}
+
+data_safe_result_type_t zte_Safe_noSpecialChar_other(char *str)
+{
+ int i = 0;
+ int len = 0;
+ if (NULL == str) {
+ return 0;
+ }
+ len = strlen(str);
+ for (i = 0; i < len; i++) {
+ if (zte_Safe_valid_SpecialChar_other(str[i]) != 0) {
+ continue;
+ } else {
+ return 0;
+ }
+ }
+ return 1;
+
+}
+
+
+data_safe_result_type_t zte_Safe_isStringOnly(char *str)
+{
+ int i = 0;
+ int len = 0;
+ if (NULL == str) {
+ return 0;
+ }
+ len = strlen(str);
+ for (i = 0; i < len; i++) {
+ if ((str[i] <= 'Z' && str[i] >= 'A')
+ || (str[i] <= 'z' && str[i] >= 'a')
+ )
+ continue;
+ else {
+ return 0;
+ }
+
+ }
+ return 1;
+}
+
+data_safe_result_type_t zte_Safe_isNumorStringOnly(char *str)
+{
+ int i = 0;
+ int len = 0;
+ if (NULL == str) {
+ return 0;
+ }
+ len = strlen(str);
+ for (i = 0; i < len; i++) {
+ if ((str[i] <= 'Z' && str[i] >= 'A') || (str[i] <= 'z' && str[i] >= 'a') || (str[i] <= '9' && str[i] >= '0'))
+ continue;
+ else {
+ return 0;
+ }
+
+ }
+ return 1;
+}
+
+int zte_Safe_valid_SpecialChar(char single_data)
+{
+ if (single_data == '"') return 0;
+ else if (single_data == '\'') return 0;
+ else if (single_data == '<') return 0;
+ else if (single_data == '>') return 0;
+ else if (single_data == '\\') return 0;
+ else return 1;
+}
+
+int zte_Safe_valid_SpecialChar_other(char single_data)
+{
+ if (single_data == '&') return 0;
+ else if (single_data == '<') return 0;
+ else if (single_data == '>') return 0;
+ else if (single_data == '\\') return 0;
+ else if (single_data == '\'') return 0;
+ else if (single_data == '/') return 0;
+ else return 1;
+}
+
+
+
+int zte_valid_length_str(char *string_s, int min, int max)/*lint !e123*/
+{
+ int str_len = 0;
+ str_len = strlen(string_s);
+ if (str_len < min || str_len > max) { /*lint !e123*/
+ return -1;
+ } else {
+ return 1;
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+