Method: Vines::Stream::Client#start

Defined in:
lib/vines/stream/client.rb

#start(node) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
# File 'lib/vines/stream/client.rb', line 49

def start(node)
  to, from = %w[to from].map {|a| node[a] }
  @session.domain = to unless @session.domain
  send_stream_header(from)
  raise StreamErrors::NotAuthorized if domain_change?(to)
  raise StreamErrors::UnsupportedVersion unless node['version'] == '1.0'
  raise StreamErrors::ImproperAddressing unless valid_address?(@session.domain)
  raise StreamErrors::HostUnknown unless config.vhost?(@session.domain)
  raise StreamErrors::InvalidNamespace unless node.namespaces['xmlns'] == NAMESPACES[:client]
  raise StreamErrors::InvalidNamespace unless node.namespaces['xmlns:stream'] == NAMESPACES[:stream]
end