As an errata, my grammar is wrong (thanks Alan). It should be: 

qpid_url          = "qpid:" prot_addr_list ["/" future-parameters]
client_opts       = [client_opt ";"]* client_opt "@"
client_opt        = prop "=" val
prop              = <as per http://www.apps.ietf.org/> i.e. string
without reserved characters  
val               = <as per http://www.apps.ietf.org/> i.e. string
without reserved characters  
prot_addr_list    = [address ","]* address
address           = [client_opts] prot_addr
prot_addr         = tcp_prot_addr | tls_prot_addr | future_prot_addr
tcp_prot_addr     = tcp_id tcp_addr
tcp_id            = "tcp:" | ""
tcp_addr          = [host [":" port] ]
host              = <as per http://www.apps.ietf.org/>
port              = number
tls_prot_addr     = tls_id tls_addr
tcp_id            = "tls:" | ""
tls_addr          = [host [":" port] ]
future_prot_addr  = future_prot_id future_prot_addr
future_prot_id    = <placeholder, must end in ":". Example "sctp:">
future_prot_addr  = <placeholder, protocl-specific address>
future_parameters = <placeholder, not used in failover addresses>


On Tue, 2007-08-21 at 10:08 +0200, Arnaud Simon wrote:
> Hello,
> 
> Regarding the 0.10 URL scheme I think that we have decided to base it
> on:  https://wiki.108.redhat.com/wiki/index.php/AMQP:95:Proposal
> 
> So, the URL grammar is (if we replace amqp by qpid): 
> qpid_url          = "qpid:" prot_addr_list ["/" future-parameters]
> prot_addr_list          = [prot_addr ","]* prot_addr
> prot_addr               = tcp_prot_addr | tls_prot_addr | future_prot_addr
> tcp_prot_addr     = tcp_id tcp_addr
> tcp_id            = "tcp:" | ""
> tcp_addr          = [host [":" port] ]
> host              = <as per http://www.apps.ietf.org/>
> port              = number
> tls_prot_addr     = tls_id tls_addr
> tcp_id            = "tls:" | ""
> tls_addr          = [host [":" port] ]
> future_prot_addr  = future_prot_id future_prot_addr
> future_prot_id    = <placeholder, must end in ":". Example "sctp:">
> future_prot_addr  = <placeholder, protocl-specific address>
> future_parameters = <placeholder, not used in failover addresses>
> 
> I think that we need to add some user options for specifying the key store 
> location, the virtual host etc.. 
> So following  http://www.apps.ietf.org/ I would extend the grammar with some 
> user options like this: 
> 
> qpid_url          = "qpid:" [client_opts]* prot_addr_list ["/" 
> future-parameters]
> client_opts       = [client_opt ";"] client_opt "@"
> client_opt        = prop "=" val
> prop              = <as per http://www.apps.ietf.org/> i.e. string without 
> reserved characters  
> val               = <as per http://www.apps.ietf.org/> i.e. string without 
> reserved characters  
> prot_addr_list          = [prot_addr ","]* prot_addr
> prot_addr               = tcp_prot_addr | tls_prot_addr | future_prot_addr
> tcp_prot_addr     = tcp_id tcp_addr
> tcp_id            = "tcp:" | ""
> tcp_addr          = [host [":" port] ]
> host              = <as per http://www.apps.ietf.org/>
> port              = number
> tls_prot_addr     = tls_id tls_addr
> tcp_id            = "tls:" | ""
> tls_addr          = [host [":" port] ]
> future_prot_addr  = future_prot_id future_prot_addr
> future_prot_id    = <placeholder, must end in ":". Example "sctp:">
> future_prot_addr  = <placeholder, protocl-specific address>
> future_parameters = <placeholder, not used in failover addresses>
> 
> For example we could use a very simple URL like: 
> qpid:tcp:host1,tcp:host2
> or a more complicated one like:
> qpid:clientID=foo;username=bar;password=pass;[EMAIL 
> PROTECTED]:host1:2345,keystorloc=/usr/local;[EMAIL PROTECTED]:host2:5555
> 
> What do you think about this scheme? 
> 
> Arnaud  
> 

Reply via email to