# File lib/cloudfiles/authentication.rb, line 12
    def initialize(connection)
      begin
        storage_url, auth_token, headers = SwiftClient.get_auth(connection.auth_url, connection.authuser, connection.authkey, connection.snet?)
      rescue => e
        # uncomment if you suspect a problem with this branch of code
        # $stderr.puts "got error #{e.class}: #{e.message.inspect}\n" << e.traceback.map{|n| "\t#{n}"}.join("\n")
        raise CloudFiles::Exception::Connection, "Unable to connect to #{connection.auth_url}", caller
      end
      if auth_token 
        if headers["x-cdn-management-url"]
          connection.cdn_available = true
          parsed_cdn_url = URI.parse(headers["x-cdn-management-url"])
          connection.cdnmgmthost   = parsed_cdn_url.host
          connection.cdnmgmtpath   = parsed_cdn_url.path
          connection.cdnmgmtport   = parsed_cdn_url.port
          connection.cdnmgmtscheme = parsed_cdn_url.scheme
        end
        parsed_storage_url = URI.parse(headers["x-storage-url"])
        connection.storagehost   = set_snet(connection, parsed_storage_url.host)
        connection.storagepath   = parsed_storage_url.path
        connection.storageport   = parsed_storage_url.port
        connection.storagescheme = parsed_storage_url.scheme
        connection.authtoken     = headers["x-auth-token"]
        connection.authok        = true
      else
        connection.authtoken = false
        raise CloudFiles::Exception::Authentication, "Authentication failed"
      end
    end