Commit 1354f6b92f307e1e591bde6fa37d263a63bebb14
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Merge branch 'master' into stable
Showing
4 changed files
with
22 additions
and
25 deletions
Show diff stats
config/application.rb
@@ -118,7 +118,8 @@ module Noosfero | @@ -118,7 +118,8 @@ module Noosfero | ||
118 | config.time_zone = File.read('/etc/timezone').split("\n").first | 118 | config.time_zone = File.read('/etc/timezone').split("\n").first |
119 | config.active_record.default_timezone = :local | 119 | config.active_record.default_timezone = :local |
120 | 120 | ||
121 | - config.i18n.load_path += Dir.glob "#{Rails.root}/{baseplugins,config/plugins/*}/locales/*.{rb,yml}" | 121 | + config.paths['db/migrate'] += Dir.glob "#{Rails.root}/{baseplugins,config/plugins}/*/db/migrate" |
122 | + config.i18n.load_path += Dir.glob "#{Rails.root}/{baseplugins,config/plugins}/*/locales/*.{rb,yml}" | ||
122 | 123 | ||
123 | Noosfero::Plugin.setup(config) | 124 | Noosfero::Plugin.setup(config) |
124 | 125 |
etc/noosfero/varnish-accept-language.vcl
@@ -6,7 +6,14 @@ C{ | @@ -6,7 +6,14 @@ C{ | ||
6 | /* | 6 | /* |
7 | * Accept-language header normalization | 7 | * Accept-language header normalization |
8 | * | 8 | * |
9 | - * Cosimo, 21/01/2010 | 9 | + * - Parses client Accept-Language HTTP header |
10 | + * - Tries to find the best match with the supported languages | ||
11 | + * - Writes the best match as req.http.X-Varnish-Accept-Language | ||
12 | + * | ||
13 | + * First version: Cosimo, 21/Jan/2010 | ||
14 | + * Last update: Cosimo, 03/Nov/2011 | ||
15 | + * | ||
16 | + * http://github.com/cosimo/varnish-accept-language | ||
10 | * | 17 | * |
11 | */ | 18 | */ |
12 | 19 | ||
@@ -16,11 +23,12 @@ C{ | @@ -16,11 +23,12 @@ C{ | ||
16 | #include <string.h> | 23 | #include <string.h> |
17 | 24 | ||
18 | #define DEFAULT_LANGUAGE "en" | 25 | #define DEFAULT_LANGUAGE "en" |
19 | -#define SUPPORTED_LANGUAGES ":de:fr:es:ru:pt:hy:en:" | 26 | +#define SUPPORTED_LANGUAGES ":de:eo:es:fr:hy:it:pt:ru:" |
20 | 27 | ||
21 | #define vcl_string char | 28 | #define vcl_string char |
22 | -#define LANG_LIST_SIZE 16 | ||
23 | -#define LANG_MAXLEN 16 | 29 | +#define LANG_LIST_SIZE 16 |
30 | +#define HDR_MAXLEN 256 | ||
31 | +#define LANG_MAXLEN 8 | ||
24 | #define RETURN_LANG(x) { \ | 32 | #define RETURN_LANG(x) { \ |
25 | strncpy(lang, x, LANG_MAXLEN); \ | 33 | strncpy(lang, x, LANG_MAXLEN); \ |
26 | return; \ | 34 | return; \ |
@@ -64,9 +72,8 @@ int is_supported(vcl_string *lang) { | @@ -64,9 +72,8 @@ int is_supported(vcl_string *lang) { | ||
64 | strncat(match_str, lang, LANG_MAXLEN); | 72 | strncat(match_str, lang, LANG_MAXLEN); |
65 | strncat(match_str, ":\0", 2); | 73 | strncat(match_str, ":\0", 2); |
66 | 74 | ||
67 | - if (strstr(supported_languages, match_str)) { | 75 | + if (strstr(supported_languages, match_str)) |
68 | is_supported = 1; | 76 | is_supported = 1; |
69 | - } | ||
70 | 77 | ||
71 | return is_supported; | 78 | return is_supported; |
72 | } | 79 | } |
@@ -90,6 +97,7 @@ void select_language(const vcl_string *incoming_header, char *lang) { | @@ -90,6 +97,7 @@ void select_language(const vcl_string *incoming_header, char *lang) { | ||
90 | vcl_string *lang_tok = NULL; | 97 | vcl_string *lang_tok = NULL; |
91 | vcl_string root_lang[3]; | 98 | vcl_string root_lang[3]; |
92 | vcl_string *header; | 99 | vcl_string *header; |
100 | + vcl_string header_copy[HDR_MAXLEN]; | ||
93 | vcl_string *pos = NULL; | 101 | vcl_string *pos = NULL; |
94 | vcl_string *q_spec = NULL; | 102 | vcl_string *q_spec = NULL; |
95 | unsigned int curr_lang = 0, i = 0; | 103 | unsigned int curr_lang = 0, i = 0; |
@@ -106,7 +114,7 @@ void select_language(const vcl_string *incoming_header, char *lang) { | @@ -106,7 +114,7 @@ void select_language(const vcl_string *incoming_header, char *lang) { | ||
106 | RETURN_DEFAULT_LANG; | 114 | RETURN_DEFAULT_LANG; |
107 | 115 | ||
108 | /* Tokenize Accept-Language */ | 116 | /* Tokenize Accept-Language */ |
109 | - header = (vcl_string *) incoming_header; | 117 | + header = strncpy(header_copy, incoming_header, sizeof(header_copy)); |
110 | 118 | ||
111 | while ((lang_tok = strtok_r(header, " ,", &pos))) { | 119 | while ((lang_tok = strtok_r(header, " ,", &pos))) { |
112 | 120 | ||
@@ -137,7 +145,8 @@ void select_language(const vcl_string *incoming_header, char *lang) { | @@ -137,7 +145,8 @@ void select_language(const vcl_string *incoming_header, char *lang) { | ||
137 | header = NULL; | 145 | header = NULL; |
138 | 146 | ||
139 | /* Break out if stored max no. of languages */ | 147 | /* Break out if stored max no. of languages */ |
140 | - if (curr_lang >= LANG_MAXLEN) break; | 148 | + if (curr_lang >= LANG_LIST_SIZE) |
149 | + break; | ||
141 | } | 150 | } |
142 | 151 | ||
143 | /* Sort by priority */ | 152 | /* Sort by priority */ |
@@ -157,12 +166,11 @@ void vcl_rewrite_accept_language(const struct sess *sp) { | @@ -157,12 +166,11 @@ void vcl_rewrite_accept_language(const struct sess *sp) { | ||
157 | vcl_string *in_hdr; | 166 | vcl_string *in_hdr; |
158 | vcl_string lang[LANG_MAXLEN]; | 167 | vcl_string lang[LANG_MAXLEN]; |
159 | 168 | ||
160 | - memset(lang, 0, LANG_MAXLEN); | ||
161 | - | ||
162 | /* Get Accept-Language header from client */ | 169 | /* Get Accept-Language header from client */ |
163 | in_hdr = VRT_GetHdr(sp, HDR_REQ, "\020Accept-Language:"); | 170 | in_hdr = VRT_GetHdr(sp, HDR_REQ, "\020Accept-Language:"); |
164 | 171 | ||
165 | /* Normalize and filter out by list of supported languages */ | 172 | /* Normalize and filter out by list of supported languages */ |
173 | + memset(lang, 0, sizeof(lang)); | ||
166 | select_language(in_hdr, lang); | 174 | select_language(in_hdr, lang); |
167 | 175 | ||
168 | /* By default, use a different header name: don't mess with backend logic */ | 176 | /* By default, use a different header name: don't mess with backend logic */ |
@@ -191,3 +199,4 @@ sub vcl_fetch { | @@ -191,3 +199,4 @@ sub vcl_fetch { | ||
191 | set beresp.http.Vary = "X-Varnish-Accept-Language"; | 199 | set beresp.http.Vary = "X-Varnish-Accept-Language"; |
192 | } | 200 | } |
193 | } | 201 | } |
202 | + |
lib/tasks/plugins.rake
@@ -6,17 +6,6 @@ namespace :noosfero do | @@ -6,17 +6,6 @@ namespace :noosfero do | ||
6 | 6 | ||
7 | plugin_migration_dirs = Dir.glob(Rails.root.join('{baseplugins,config/plugins}', '*', 'db', 'migrate')) | 7 | plugin_migration_dirs = Dir.glob(Rails.root.join('{baseplugins,config/plugins}', '*', 'db', 'migrate')) |
8 | 8 | ||
9 | - task :load_config do | ||
10 | - dirs = Dir.glob("{baseplugins,config/plugins}/*").uniq do |dir| | ||
11 | - File.basename(dir) | ||
12 | - end.map do |dir| | ||
13 | - File.join(dir, 'db/migrate') | ||
14 | - end | ||
15 | - dirs.each do |dir| | ||
16 | - ActiveRecord::Migrator.migrations_paths << dir | ||
17 | - end | ||
18 | - end | ||
19 | - | ||
20 | task :migrate do | 9 | task :migrate do |
21 | plugin_migration_dirs.each do |path| | 10 | plugin_migration_dirs.each do |path| |
22 | ActiveRecord::Migrator.migrate(path, ENV["VERSION"] ? | 11 | ActiveRecord::Migrator.migrate(path, ENV["VERSION"] ? |
@@ -26,5 +15,3 @@ namespace :noosfero do | @@ -26,5 +15,3 @@ namespace :noosfero do | ||
26 | end | 15 | end |
27 | end | 16 | end |
28 | 17 | ||
29 | -task 'db:migrate' => 'noosfero:plugins:load_config' | ||
30 | -task 'db:schema:load' => 'noosfero:plugins:load_config' |
lib/tasks/release.rake
@@ -222,7 +222,7 @@ EOF | @@ -222,7 +222,7 @@ EOF | ||
222 | puts "I: please upload the package manually!" | 222 | puts "I: please upload the package manually!" |
223 | end | 223 | end |
224 | 224 | ||
225 | - rm_f "rm tmp/pending-release" | 225 | + rm_f "tmp/pending-release" |
226 | end | 226 | end |
227 | 227 | ||
228 | desc 'Build Debian packages' | 228 | desc 'Build Debian packages' |