[ https://issues.apache.org/jira/browse/TS-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Leif Hedstrom updated TS-2008: ------------------------------ Description: if you want to control on ver many suffix in cache.config: jpeg js ... you need to specify: dest_domain=www.test.com suffix=jpeg ttl-in-cache=1m dest_domain=www.test.com suffix=js ttl-in-cache=1m ... and we can change to : dest_domain=www.test.com suffix=jpeg,js,css,html ttl-in-cache=1m was: if you want to control on ver many suffix in cache.config: jpeg js ... you need to specify: dest_domain=www.test.com suffix=jpeg ttl-in-cache=1m dest_domain=www.test.com suffix=js ttl-in-cache=1m ... and we can change to : dest_domain=www.test.com suffix=jpeg,js,css,html ttl-in-cache=1m by this patch: {code} diff -Nur ts-3.3.1/proxy/ControlMatcher.cc ts-3.3.1-new/proxy/ControlMatcher.cc --- ts-3.3.1/proxy/ControlMatcher.cc 2013-03-10 03:44:28.000000000 +0800 +++ ts-3.3.1-new/proxy/ControlMatcher.cc 2013-07-08 22:42:31.568980245 +0800 @@ -44,7 +44,7 @@ #include "P_Cache.h" #include "P_SplitDNS.h" #include "congest/Congestion.h" - +#include <string> /**************************************************************** * Place all template instantiations at the bottom of the file ****************************************************************/ @@ -815,6 +815,63 @@ if (file_buf == NULL) { return 1; } + /* add by reggie */ + if(strcmp("[CacheControl]",matcher_name) == 0){ + Debug("reggie-suffix","file_string is begin" ); + char *strbuffern = NULL; + char *strfile_buf = file_buf, *tmpvalue = NULL; + char *cp_line[64]; + int in = 0; + char buffer1[128] = {0}; + char *outer_ptr=NULL; + std::string file_string; + while((strbuffern = strtok_r(strfile_buf,"\n",&outer_ptr)) != NULL){ + Debug("reggie-suffix","strbuffern is %s",strbuffern); + if(*strbuffern == '#'){ + Debug("reggie-suffix","# is %s ",strbuffern); + strfile_buf = NULL; + continue; + } + if((strchr(strbuffern,',')) != NULL){ + in = 0; + while((cp_line[in]=strtok(strbuffern," "))!=NULL) { + strbuffern = NULL; + in++; + } + if((strchr(cp_line[1],'=') != NULL) && (strstr(cp_line[1],"suffix"))){ + if((cp_line[in] = strtok(cp_line[1],"=")) != NULL) + tmpvalue = strtok(NULL,"="); + while((cp_line[in] = strtok(tmpvalue,",")) != NULL){ + in++; + tmpvalue = NULL; + } + } + for(int nk = 3; nk < in ;nk++){ + //nbuf_len = strlen(cp_line[0]) + strlen(cp_line[2]) +strlen(cp_line[nk]) + 9; + //snprintf(buffer1,nbuf_len,"%s suffix=%s %s\n",cp_line[0],cp_line[nk],cp_line[2]); + sprintf(buffer1,"%s suffix=%s %s\n",cp_line[0],cp_line[nk],cp_line[2]); + file_string.append(buffer1); + } + } + else{ + file_string.append(strbuffern); + file_string += "\n"; + } + strfile_buf = NULL; + } + //file_string.erase(file_string.end()-1); + Debug("reggie_suffix","file_string is %s ",file_string.c_str()); + ats_free(file_buf); + file_buf = (char*) ats_malloc(file_string.size()+1); + if(strcpy(file_buf,file_string.c_str()) == NULL){ + ats_free(file_buf); + return 2; + } + ret = BuildTableFromString(file_buf); + ats_free(file_buf); + return ret; + } + /*end by reggie */ ret = BuildTableFromString(file_buf); ats_free(file_buf); {code} I removed the code from the description, sorry for the confusion re: std::string. > Cache control with multiple suffixes > ------------------------------------ > > Key: TS-2008 > URL: https://issues.apache.org/jira/browse/TS-2008 > Project: Traffic Server > Issue Type: New Feature > Components: Cache, HTTP > Affects Versions: 3.3.4 > Reporter: bettydramit > Assignee: James Peach > Fix For: 3.5.1 > > Attachments: ts-2008-v3.patch > > > if you want to control on ver many suffix in cache.config: jpeg js ... you > need to specify: > dest_domain=www.test.com suffix=jpeg ttl-in-cache=1m > dest_domain=www.test.com suffix=js ttl-in-cache=1m > ... > and we can change to : > dest_domain=www.test.com suffix=jpeg,js,css,html ttl-in-cache=1m -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira