Github user hanm commented on a diff in the pull request:

    https://github.com/apache/zookeeper/pull/179#discussion_r102301090
  
    --- Diff: src/java/main/org/apache/zookeeper/server/NettyServerCnxn.java ---
    @@ -267,10 +267,17 @@ private boolean checkFourLetterWord(final Channel 
channel,
         {
             // We take advantage of the limited size of the length to look
             // for cmds. They are all 4-bytes which fits inside of an int
    -        String cmd = FourLetterCommands.getCmdMapView().get(len);
    -        if (cmd == null) {
    +        if (!FourLetterCommands.isKnown(len)) {
                 return false;
             }
    +
    +        // ZOOKEEPER-2693: don't execute 4lw if it's not enabled.
    +        String cmd = FourLetterCommands.getCommandString(len);
    +        if (!FourLetterCommands.isEnabled(cmd)) {
    +            LOG.debug("Command {} is not executed because it is not white 
listed.", cmd);
    +            return true;
    --- End diff --
    
    @rakeshadr Turns out server socket not closed is a by design. Had a chat 
with @phunt offline and the idea is we always prefer client to close socket 
first (which led to server socket close) because a socket close at server might 
be premature and led to client not getting all the data due to how TCP works. 
I'll leave these code as they are.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to