Fix broken UDP support. This got broken in 3.4.0.Alpha1
This commit is contained in:
parent
023227917f
commit
dd6069c681
@ -887,7 +887,7 @@ abstract class AbstractNioWorker implements Worker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cleanUpWriteBuffer(AbstractNioChannel channel) {
|
protected void cleanUpWriteBuffer(AbstractNioChannel channel) {
|
||||||
Exception cause = null;
|
Exception cause = null;
|
||||||
boolean fireExceptionCaught = false;
|
boolean fireExceptionCaught = false;
|
||||||
|
|
||||||
|
@ -159,5 +159,35 @@ public class NioDatagramWorker extends AbstractNioWorker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void writeFromUserCode(final AbstractNioChannel channel) {
|
||||||
|
/*
|
||||||
|
* Note that we are not checking if the channel is connected. Connected
|
||||||
|
* has a different meaning in UDP and means that the channels socket is
|
||||||
|
* configured to only send and receive from a given remote peer.
|
||||||
|
*/
|
||||||
|
if (!channel.isBound()) {
|
||||||
|
cleanUpWriteBuffer(channel);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scheduleWriteIfNecessary(channel)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// From here, we are sure Thread.currentThread() == workerThread.
|
||||||
|
|
||||||
|
if (channel.writeSuspended) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (channel.inWriteNowLoop) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
write0(channel);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user