Advertisement
Guest User

Untitled

a guest
May 30th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. int MatchVal(const char *string, char *pattern,char *outval)
  2. {
  3.     int    status;
  4.     regex_t    re;
  5.     regmatch_t pm;
  6.  
  7.     if (regcomp(&re, pattern, REG_EXTENDED) != 0) {
  8.         printf("can't compile\n");
  9.         return 0;      /* report error */
  10.     }
  11.     status = regexec(&re, string, 1, &pm, 0);
  12.     regfree(&re);
  13.     if(status==0){
  14.         //printf("ok,  pm.rm_so: %d  pm.rm_eo: %d   diff: %d\n", (u32)(pm.rm_so), (u32)(pm.rm_eo),(u32)(pm.rm_eo-pm.rm_so));
  15.         memcpy(outval,&string[pm.rm_so],(pm.rm_eo-pm.rm_so+1));
  16.         return 1;
  17.     }else printf("not value found\n");
  18.     return 0;      /* report error */
  19. }
  20.  
  21. #define WEBBUFF_SIZE 16*1024
  22. int ProcessorRequest(BROWSERENTRY  mymedia,char *output){
  23.     char *webbuff=NULL;
  24.     char address[260];
  25.     char searchstr[260];
  26.     char test[260];
  27.     int i=0;
  28.     int j=0;
  29.  
  30.     webbuff=(char *)malloc(WEBBUFF_SIZE);
  31.     if(webbuff==NULL)return 0;
  32.    
  33.     memset(test,0,sizeof(test));
  34.     memset(webbuff,0,WEBBUFF_SIZE);
  35.     memset(searchstr,0,sizeof(searchstr));
  36.     ShowAction("Requesting From Processor");
  37.     usleep(1000);
  38.    
  39.     strcpy(address,mymedia.processor);
  40.     strcat(address,"?url=");
  41.     strcat(address,mymedia.filename);
  42.  
  43.     i=http_request(address,NULL,(u8 *)webbuff,WEBBUFF_SIZE,true);
  44.  
  45.     memset(address,0,sizeof(address));
  46.     memset(searchstr,0,sizeof(searchstr));
  47.  
  48.     for(i=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++); //bypass length
  49.     for(;webbuff[i]!='\0' && (webbuff[i]=='\n' || webbuff[i]=='\r');i++); // delete all next \n \r
  50.  
  51.     for(j=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++,j++) //copy address
  52.             address[j]=webbuff[i];
  53.     address[j]='\0';
  54.     for(;webbuff[i]!='\0' && (webbuff[i]=='\n' || webbuff[i]=='\r');i++); // delete all next \n \r
  55.  
  56.     if(strncmp(address,"http:",5)!=0) return 0; //bad address
  57.  
  58.     for(j=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++,j++) //copy search string
  59.         searchstr[j]=webbuff[i];
  60.     searchstr[j]='\0';
  61.  
  62.     memset(webbuff,0,WEBBUFF_SIZE);
  63.     http_request(address,NULL,(u8 *)webbuff,WEBBUFF_SIZE,false);
  64.  
  65.     memset(test,0,sizeof(test));
  66.     if(MatchVal(webbuff,searchstr,test)){
  67.         test[strlen(test)-1]='\0';
  68.         strcpy(address,mymedia.processor);
  69.         strcat(address,"?v1=");
  70.         strcat(address,&test[18]);
  71.         memset(webbuff,0,WEBBUFF_SIZE);
  72.         http_request(address,NULL,(u8 *)webbuff,WEBBUFF_SIZE,false);
  73.         for(i=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++); //bypass length
  74.         for(;webbuff[i]!='\0' && (webbuff[i]=='\n' || webbuff[i]=='\r');i++); // delete all next \n \r
  75.         for(j=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++,j++) //copy address
  76.             output[j]=webbuff[i];
  77.  
  78.         return 1;
  79.     }
  80.     ShowAction("Stream not found");
  81.     usleep(100000);
  82.     strcpy(output,mymedia.filename);
  83.     return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement