private void writeQuery(final DnsQuery query, final ChannelPromise writePromise) { final ChannelFuture writeFuture = parent.ch.writeAndFlush(query, writePromise); if (writeFuture.isDone()) { onQueryWriteCompletion(writeFuture); } else { writeFuture.addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) { onQueryWriteCompletion(writeFuture); } }); } }
private void doSend(Buffer packet, InetSocketAddress addr, Handler<AsyncResult<DatagramSocket>> handler) { ChannelFuture future = channel.writeAndFlush(new DatagramPacket(packet.getByteBuf(), addr)); addListener(future, handler); }
@Override public void unicast(Address address, String subject, byte[] payload) { Message message = new Message(this.address, subject, payload); byte[] bytes = SERIALIZER.encode(message); ByteBuf buf = channel.alloc().buffer(4 + bytes.length); buf.writeInt(bytes.length).writeBytes(bytes); channel.writeAndFlush(new DatagramPacket(buf, new InetSocketAddress(address.address(), address.port()))); }
void run() { inProgressMap.put(msg.id(), this); timerID = vertx.setTimer(options.getQueryTimeout(), id -> { timerID = -1; actualCtx.runOnContext(v -> { fail(new VertxException("DNS query timeout for " + name)); }); }); channel.writeAndFlush(msg).addListener((ChannelFutureListener) future -> { if (!future.isSuccess()) { actualCtx.executeFromIO(future.cause(), this::fail); } }); }
private void doSend(Buffer packet, InetSocketAddress addr, Handler<AsyncResult<DatagramSocket>> handler) { ChannelFuture future = channel.writeAndFlush(new DatagramPacket(packet.getByteBuf(), addr)); addListener(future, handler); }
void run() { inProgressMap.put(msg.id(), this); timerID = vertx.setTimer(options.getQueryTimeout(), id -> { timerID = -1; actualCtx.runOnContext(v -> { fail(new VertxException("DNS query timeout for " + name)); }); }); channel.writeAndFlush(msg).addListener((ChannelFutureListener) future -> { if (!future.isSuccess()) { actualCtx.executeFromIO(future.cause(), this::fail); } }); }
@Override protected void channelRead0(ChannelHandlerContext ctx, DatagramPacket packet) throws Exception { LOG.trace("Got reply " + packet); ByteBuf payload = packet.content(); Channel ch = ctx.channel(); int sessionId = ch.attr(SESSION_ID).get(); int port = ch.attr(PORT).get(); UscData reply = new UscData(port, sessionId, payload.copy()); LOG.trace("Send to plugin " + reply); plugin.writeAndFlush(reply); }
private void writeQuery(final DnsQuery query, final ChannelPromise writePromise) { final ChannelFuture writeFuture = parent.ch.writeAndFlush(query, writePromise); if (writeFuture.isDone()) { onQueryWriteCompletion(writeFuture); } else { writeFuture.addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { onQueryWriteCompletion(writeFuture); } }); } }
/** * Send a new search request. */ public void sendSearchRequest() { SearchRequest searchReq = new SearchRequest(); logger.debug("Sending search request"); channel.writeAndFlush(new DatagramPacket(searchReq.toByteBuf(), new InetSocketAddress("255.255.255.255", 10000))); } }
private void writeQuery(final DnsQuery query) { final ChannelFuture writeFuture = parent.ch.writeAndFlush(query); if (writeFuture.isDone()) { onQueryWriteCompletion(writeFuture); } else { writeFuture.addListener(new ChannelFutureListener() { @Override public void operationComplete(ChannelFuture future) throws Exception { onQueryWriteCompletion(writeFuture); } }); } }
@Override public void exceptionCaught(ChannelHandlerContext ctx, Throwable e) throws Exception { Channel ch = ctx.channel(); int sessionId = ch.attr(SESSION_ID).get(); int port = ch.attr(PORT).get(); if (e instanceof ConnectException) { UscError reply = new UscError(port, sessionId, UscError.ErrorCode.ECONNREFUSED.getCode()); plugin.writeAndFlush(reply); } else if (e instanceof PortUnreachableException) { UscError reply = new UscError(port, sessionId, UscError.ErrorCode.ENETUNREACH.getCode()); plugin.writeAndFlush(reply); } else { UscError reply = new UscError(port, sessionId, UscError.ErrorCode.E_OTHER.getCode()); plugin.writeAndFlush(reply); super.exceptionCaught(ctx, e); } }
@Override public void unicast(Address address, String subject, byte[] payload) { Message message = new Message(this.address, subject, payload); byte[] bytes = SERIALIZER.encode(message); ByteBuf buf = channel.alloc().buffer(4 + bytes.length); buf.writeInt(bytes.length).writeBytes(bytes); channel.writeAndFlush(new DatagramPacket(buf, new InetSocketAddress(address.address(), address.port()))); }
ChannelFuture sendUdpMessage(MessageWrapper msgw) { ByteBuf buf = udpChannel.alloc().ioBuffer(INITIAL_BUFFER_SIZE, SEND_BUFFER_SIZE); try { if (msgw.notify.isPresent() && msgw.notify.get().notifyOfDelivery) { MessageNotify.Req msgr = msgw.notify.get(); AckRequestMsg arm = new AckRequestMsg(msgw.msg, msgr.getMsgId()); Serializers.toBinary(arm, buf); } else { Serializers.toBinary(msgw.msg, buf); } msgw.injectSize(buf.readableBytes(), System.nanoTime()); DatagramPacket pack = new DatagramPacket(buf, msgw.msg.getDestination().asSocket()); logger.debug("Sending Datagram message {} ({}bytes)", msgw.msg, buf.readableBytes()); return udpChannel.writeAndFlush(pack); } catch (Exception e) { // serialization might fail horribly with size bounded buff logger.warn("Could not send Datagram message {}, error was: {}", msgw, e); return null; } }
if (e instanceof ConnectException) { UscError reply = new UscError(port, sessionId, UscError.ErrorCode.ECONNREFUSED.getCode()); plugin.writeAndFlush(reply); } else if (e instanceof PortUnreachableException) { UscError reply = new UscError(port, sessionId, UscError.ErrorCode.ENETUNREACH.getCode()); plugin.writeAndFlush(reply); } else { UscError reply = new UscError(port, sessionId, UscError.ErrorCode.E_OTHER.getCode()); plugin.writeAndFlush(reply); throw e; plugin.writeAndFlush(data); LOG.trace("UscAgentUdpHandler send TERMINATION_RESPONSE"); plugin.writeAndFlush(data); LOG.trace("UscAgentUdpHandler send ECHO back.");
assertFalse(cc.isConnected()); ChannelFuture future = cc.writeAndFlush( buf.retain().duplicate()).awaitUninterruptibly(); assertTrue("NotYetConnectedException expected, got: " + future.cause(),