[jira] [Updated] (TS-2008) Cache control with multiple suffixes

2013-09-24 Thread bettydramit (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

bettydramit updated TS-2008:


Attachment: ts-2008-v4.patch

New patch for ts-2008
This is patch supported suffix=*


 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: 4.2.0

 Attachments: ts-2008-v3.patch, ts-2008-v4.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


[jira] [Updated] (TS-2008) Cache control with multiple suffixes

2013-08-19 Thread Leif Hedstrom (JIRA)

 [ 
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.cc2013-03-10 03:44:28.0 +0800
+++ ts-3.3.1-new/proxy/ControlMatcher.cc2013-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 

[jira] [Updated] (TS-2008) Cache control with multiple suffixes

2013-08-17 Thread bettydramit (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

bettydramit updated TS-2008:


Attachment: (was: ts-2008.patch)

 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
 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.cc2013-03-10 03:44:28.0 +0800
 +++ ts-3.3.1-new/proxy/ControlMatcher.cc2013-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}

--
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


[jira] [Updated] (TS-2008) Cache control with multiple suffixes

2013-08-17 Thread bettydramit (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

bettydramit updated TS-2008:


Attachment: (was: ControlMatcher.patch)

 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
 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.cc2013-03-10 03:44:28.0 +0800
 +++ ts-3.3.1-new/proxy/ControlMatcher.cc2013-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}

--
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


[jira] [Updated] (TS-2008) Cache control with multiple suffixes

2013-08-02 Thread bettydramit (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

bettydramit updated TS-2008:


Attachment: ts-2008-v3.patch

third version

 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.0

 Attachments: ControlMatcher.patch, ts-2008.patch, 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
 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.cc2013-03-10 03:44:28.0 +0800
 +++ ts-3.3.1-new/proxy/ControlMatcher.cc2013-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}

--
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


[jira] [Updated] (TS-2008) Cache control with multiple suffixes

2013-07-29 Thread bettydramit (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

bettydramit updated TS-2008:


Attachment: ts-2008.patch

 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.0

 Attachments: ControlMatcher.patch, ts-2008.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
 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.cc2013-03-10 03:44:28.0 +0800
 +++ ts-3.3.1-new/proxy/ControlMatcher.cc2013-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}

--
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


[jira] [Updated] (TS-2008) Cache control with multiple suffixes

2013-07-16 Thread James Peach (JIRA)

 [ 
https://issues.apache.org/jira/browse/TS-2008?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

James Peach updated TS-2008:


Summary: Cache control with multiple suffixes  (was: Cache control with 
muti suffix )

 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.3.6

 Attachments: ControlMatcher.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
 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.cc2013-03-10 03:44:28.0 +0800
 +++ ts-3.3.1-new/proxy/ControlMatcher.cc2013-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}

--
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