speedmax (owner)

Revisions

gist: 15495 Download_button fork
public
Description:
cname lookup
Public Clone URL: git://gist.github.com/15495.git
application.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class ApplicationController < ActionController::Base
  before_filter :load_site
 
private
  def load_site
    if request.host =~ Site.domain_pattern
      subdomain = current_subdomain
    else
      subdomain = find_cname(request.host)
    end
    
    @site ||= Site.find_by_subdomain(subdomain)
    
    render :text => 'Site not found' unless @site
  end
  
  def find_cname(host)
    Rails.cache.fetch("dns_map:#{host}") {
      Net::DNS::Resolver.new.query(host).each_cname do |cname|
        return $1 if cname.match Site.domain_pattern
      end
    }
  end
end