OSDN Git Service

* Changed request_config
authorAtsushi Konno <konn@users.sourceforge.jp>
Tue, 8 Mar 2011 10:07:09 +0000 (19:07 +0900)
committerAtsushi Konno <konn@users.sourceforge.jp>
Tue, 8 Mar 2011 10:07:09 +0000 (19:07 +0900)
    - create user_agent and spec cache in request_config.

include/mod_chxj.h
src/chxj_specified_device.c
src/mod_chxj.c

index a681879..dfb9aae 100644 (file)
@@ -364,6 +364,7 @@ struct mod_chxj_config {
 };
 
 struct mod_chxj_req_config_t {
+  char *user_agent;
   device_table *spec;
 };
 
index 1bfcd33..668d02b 100644 (file)
@@ -87,12 +87,13 @@ chxj_specified_device(request_rec *r, const char *user_agent)
    * Get per request config.
    */
   request_conf = (mod_chxj_req_config *)chxj_get_module_config(r->request_config, &chxj_module);
-  if (request_conf && request_conf->spec) {
+  if (request_conf && request_conf->spec && request_conf->user_agent && strcmp(request_conf->user_agent, user_agent) == 0) {
     DBG(r,"REQ[%x] Use spec cache.", (unsigned int)(apr_size_t)r);
     returnType = request_conf->spec;
     DBG(r,"REQ[%x] end %s() (Exist requestConf)", TO_ADDR(r),__func__);
     return returnType;
   }
+  request_conf->user_agent = user_agent;
 
   conf = chxj_get_module_config(r->per_dir_config, &chxj_module);
   if (! conf->devices) {
index d6a76a7..2721656 100644 (file)
@@ -197,11 +197,13 @@ chxj_headers_fixup(request_rec *r)
   if (! request_conf) {
     request_conf = apr_pcalloc(r->pool, sizeof(mod_chxj_req_config));
     request_conf->spec = NULL;
+    request_conf->user_agent = NULL;
     chxj_set_module_config(r->request_config, &chxj_module, request_conf);
   }
 
   /*
    * check and get mobile type.
+   * and request_conf->user_agent , request_conf->spec is set.
    */
   spec = chxj_specified_device(r, user_agent);