Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int MatchVal(const char *string, char *pattern,char *outval)
- {
- int status;
- regex_t re;
- regmatch_t pm;
- if (regcomp(&re, pattern, REG_EXTENDED) != 0) {
- printf("can't compile\n");
- return 0; /* report error */
- }
- status = regexec(&re, string, 1, &pm, 0);
- regfree(&re);
- if(status==0){
- //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));
- memcpy(outval,&string[pm.rm_so],(pm.rm_eo-pm.rm_so+1));
- return 1;
- }else printf("not value found\n");
- return 0; /* report error */
- }
- #define WEBBUFF_SIZE 16*1024
- int ProcessorRequest(BROWSERENTRY mymedia,char *output){
- char *webbuff=NULL;
- char address[260];
- char searchstr[260];
- char test[260];
- int i=0;
- int j=0;
- webbuff=(char *)malloc(WEBBUFF_SIZE);
- if(webbuff==NULL)return 0;
- memset(test,0,sizeof(test));
- memset(webbuff,0,WEBBUFF_SIZE);
- memset(searchstr,0,sizeof(searchstr));
- ShowAction("Requesting From Processor");
- usleep(1000);
- strcpy(address,mymedia.processor);
- strcat(address,"?url=");
- strcat(address,mymedia.filename);
- i=http_request(address,NULL,(u8 *)webbuff,WEBBUFF_SIZE,true);
- memset(address,0,sizeof(address));
- memset(searchstr,0,sizeof(searchstr));
- for(i=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++); //bypass length
- for(;webbuff[i]!='\0' && (webbuff[i]=='\n' || webbuff[i]=='\r');i++); // delete all next \n \r
- for(j=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++,j++) //copy address
- address[j]=webbuff[i];
- address[j]='\0';
- for(;webbuff[i]!='\0' && (webbuff[i]=='\n' || webbuff[i]=='\r');i++); // delete all next \n \r
- if(strncmp(address,"http:",5)!=0) return 0; //bad address
- for(j=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++,j++) //copy search string
- searchstr[j]=webbuff[i];
- searchstr[j]='\0';
- memset(webbuff,0,WEBBUFF_SIZE);
- http_request(address,NULL,(u8 *)webbuff,WEBBUFF_SIZE,false);
- memset(test,0,sizeof(test));
- if(MatchVal(webbuff,searchstr,test)){
- test[strlen(test)-1]='\0';
- strcpy(address,mymedia.processor);
- strcat(address,"?v1=");
- strcat(address,&test[18]);
- memset(webbuff,0,WEBBUFF_SIZE);
- http_request(address,NULL,(u8 *)webbuff,WEBBUFF_SIZE,false);
- for(i=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++); //bypass length
- for(;webbuff[i]!='\0' && (webbuff[i]=='\n' || webbuff[i]=='\r');i++); // delete all next \n \r
- for(j=0;webbuff[i]!='\0' && webbuff[i]!='\n' && webbuff[i]!='\r';i++,j++) //copy address
- output[j]=webbuff[i];
- return 1;
- }
- ShowAction("Stream not found");
- usleep(100000);
- strcpy(output,mymedia.filename);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement