Skip to content

Commit f5ac2ab

Browse files
author
Marek Majkowski
committed
bug23486 merged into default
2 parents dc4385b + 572f310 commit f5ac2ab

File tree

5 files changed

+67
-8
lines changed

5 files changed

+67
-8
lines changed

docs/specs/amqp0-9-1.stripped.xml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,32 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
239239
<method name="delete-ok" synchronous="1" index="21">
240240
<chassis name="client" implement="MUST"/>
241241
</method>
242+
<method name="bind" synchronous="1" index="30">
243+
<chassis name="server" implement="MUST"/>
244+
<response name="bind-ok"/>
245+
<field name="reserved-1" type="short" reserved="1"/>
246+
<field name="destination" domain="exchange-name"/>
247+
<field name="source" domain="exchange-name"/>
248+
<field name="routing-key" domain="shortstr"/>
249+
<field name="no-wait" domain="no-wait"/>
250+
<field name="arguments" domain="table"/>
251+
</method>
252+
<method name="bind-ok" synchronous="1" index="31">
253+
<chassis name="client" implement="MUST"/>
254+
</method>
255+
<method name="unbind" synchronous="1" index="40">
256+
<chassis name="server" implement="MUST"/>
257+
<response name="unbind-ok"/>
258+
<field name="reserved-1" type="short" reserved="1"/>
259+
<field name="destination" domain="exchange-name"/>
260+
<field name="source" domain="exchange-name"/>
261+
<field name="routing-key" domain="shortstr"/>
262+
<field name="no-wait" domain="no-wait"/>
263+
<field name="arguments" domain="table"/>
264+
</method>
265+
<method name="unbind-ok" synchronous="1" index="41">
266+
<chassis name="client" implement="MUST"/>
267+
</method>
242268
</class>
243269
<class name="queue" handler="channel" index="50">
244270
<chassis name="server" implement="MUST"/>

projects/client/RabbitMQ.Client/src/client/api/IModel.cs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,28 @@ void ExchangeDelete(string exchange,
199199
[AmqpNowaitArgument(null)]
200200
bool nowait);
201201

202+
///<summary>(Spec method) Bind an exchange to an exchange.</summary>
203+
[AmqpUnsupported("RabbitMQ.Client.Framing.v0_8"),
204+
AmqpUnsupported("RabbitMQ.Client.Framing.v0_8qpid"),
205+
AmqpUnsupported("RabbitMQ.Client.Framing.v0_9")]
206+
void ExchangeBind(string destination,
207+
string source,
208+
string routingKey,
209+
[AmqpNowaitArgument(null)]
210+
bool nowait,
211+
IDictionary arguments);
212+
213+
///<summary>(Spec method) Unbind an exchange from an exchange.</summary>
214+
[AmqpUnsupported("RabbitMQ.Client.Framing.v0_8"),
215+
AmqpUnsupported("RabbitMQ.Client.Framing.v0_8qpid"),
216+
AmqpUnsupported("RabbitMQ.Client.Framing.v0_9")]
217+
void ExchangeUnbind(string destination,
218+
string source,
219+
string routingKey,
220+
[AmqpNowaitArgument(null)]
221+
bool nowait,
222+
IDictionary arguments);
223+
202224
///<summary>(Spec method) Declare a queue.</summary>
203225
///<remarks>
204226
///The queue is declared non-passive, non-durable,

projects/client/RabbitMQ.Client/src/client/impl/IFrameHandler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public interface IFrameHandler
6161
AmqpTcpEndpoint Endpoint { get; }
6262

6363
///<summary>Socket read timeout, in milliseconds. Zero signals "infinity".</summary>
64-
int Timeout { get; set; }
64+
int Timeout { set; }
6565

6666
void SendHeader();
6767

projects/client/RabbitMQ.Client/src/client/impl/ModelBase.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,18 @@ public abstract void ExchangeDelete(string exchange,
633633
bool ifUnused,
634634
bool nowait);
635635

636+
public abstract void ExchangeBind(string destination,
637+
string source,
638+
string routingKey,
639+
bool nowait,
640+
IDictionary arguments);
641+
642+
public abstract void ExchangeUnbind(string destination,
643+
string source,
644+
string routingKey,
645+
bool nowait,
646+
IDictionary arguments);
647+
636648
//TODO: Mark these as virtual, maybe the model has an optimized way
637649
// of dealing with missing parameters.
638650
public string QueueDeclare()

projects/client/RabbitMQ.Client/src/client/impl/SocketFrameHandler_0_9.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,12 @@ public AmqpTcpEndpoint Endpoint
104104

105105
public int Timeout
106106
{
107-
get
108-
{
109-
return m_socket.ReceiveTimeout;
110-
}
111-
set
112-
{
113-
m_socket.ReceiveTimeout = value;
107+
set
108+
{
109+
if (m_socket.Connected)
110+
{
111+
m_socket.ReceiveTimeout = value;
112+
}
114113
}
115114
}
116115

0 commit comments

Comments
 (0)