code: public static Buffer nextHeaderNameDontCheckHColon(final Buffer buffer) {
          try {
              final int startIndex = buffer.getReaderIndex();
              int nameIndex = 0;
              while (buffer.hasReadableBytes() && nameIndex == 0) {
                  if (isNext(buffer, SP) || isNext(buffer, HTAB) || isNext(buffer, COLON)) {
                      nameIndex = buffer.getReaderIndex();
                  } else {
                      buffer.readByte();
                  }
              }
  
              // Bad header! No HCOLON found! (or beginning thereof anyway)
              if (nameIndex == 0) {
                  // probably ran out of bytes to read so lets just return null
                  buffer.setReaderIndex(startIndex);
                  return null;
              }
  
              return buffer.slice(startIndex, nameIndex);
          } catch (final IOException e) {
              throw new SipParseException(buffer.getReaderIndex(), UNABLE_TO_READ_FROM_STREAM, e);
          }
  
      }
docs: Convenience method for slicing out the next header name but NOT checking
  if HCOLON shows up afterwards. This is useful when dealing with a stream
  of bytes coming in over the network, as in TCP, so you may actually find
  SP or HTAB but the COLON, and as such, the HCOLON, hasn't shown up yet
  so the method {@link #nextHeaderName(Buffer)} would blow up on no
  HCOLON, which is not what we want. Hence, use this method and then
  check HCOLON yourself.
  
  @param buffer
  @return