Improve detection of USSD codes

This commit is contained in:
Pierre Pronchery 2015-12-28 16:51:57 +01:00
parent e30c0f8c35
commit 41aee78420
2 changed files with 8 additions and 4 deletions

View File

@ -4278,10 +4278,14 @@ static int _is_ussd_code(char const * number)
if(number == NULL || number[0] != '*') if(number == NULL || number[0] != '*')
return 0; return 0;
for(number++; *number != '\0'; number++) for(number++; *number != '\0'; number++)
if((*number >= '0' && *number <= '9') || *number == '*') if(*number == '#')
{
if(*(number + 1) == '\0')
return 1;
continue;
}
else if((*number >= '0' && *number <= '9') || *number == '*')
continue; continue;
else if(*number == '#' && *(number + 1) == '\0')
return 1;
else else
return 0; return 0;
return 0; return 0;

View File

@ -31,7 +31,7 @@ static int _ussd(void)
{ {
int ret = 0; int ret = 0;
const char * codes[] = { "*100#", "*109*72348937857623#" }; const char * codes[] = { "*100#", "*109*72348937857623#" };
const char * notcodes[] = { "*#06#" }; const char * notcodes[] = { "*#06#0" };
size_t i; size_t i;
for(i = 0; i < sizeof(codes) / sizeof(*codes); i++) for(i = 0; i < sizeof(codes) / sizeof(*codes); i++)