findDelimiter() — netty Function Reference
Architecture documentation for the findDelimiter() function in HttpPostBodyUtil.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD cf225f0b_71a3_1bbc_7543_bb72e51e03b8["findDelimiter()"] d8fd760f_9426_5ef6_86a5_3c8c134ada4d["HttpPostBodyUtil"] cf225f0b_71a3_1bbc_7543_bb72e51e03b8 -->|defined in| d8fd760f_9426_5ef6_86a5_3c8c134ada4d style cf225f0b_71a3_1bbc_7543_bb72e51e03b8 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
codec-http/src/main/java/io/netty/handler/codec/http/multipart/HttpPostBodyUtil.java lines 220–268
static int findDelimiter(ByteBuf buffer, int index, byte[] delimiter, boolean precededByLineBreak) {
final int delimiterLength = delimiter.length;
final int readerIndex = buffer.readerIndex();
final int writerIndex = buffer.writerIndex();
int toRead = writerIndex - index;
int newOffset = index;
boolean delimiterNotFound = true;
while (delimiterNotFound && delimiterLength <= toRead) {
// Find first position: delimiter
int posDelimiter = buffer.bytesBefore(newOffset, toRead, delimiter[0]);
if (posDelimiter < 0) {
return -1;
}
newOffset += posDelimiter;
toRead -= posDelimiter;
// Now check for delimiter
if (toRead >= delimiterLength) {
delimiterNotFound = false;
for (int i = 0; i < delimiterLength; i++) {
if (buffer.getByte(newOffset + i) != delimiter[i]) {
newOffset++;
toRead--;
delimiterNotFound = true;
break;
}
}
}
if (!delimiterNotFound) {
// Delimiter found, find if necessary: LF or CRLF
if (precededByLineBreak && newOffset > readerIndex) {
if (buffer.getByte(newOffset - 1) == HttpConstants.LF) {
newOffset--;
// Check if CR before: not mandatory to be there
if (newOffset > readerIndex && buffer.getByte(newOffset - 1) == HttpConstants.CR) {
newOffset--;
}
} else {
// Delimiter with Line Break could be further: iterate after first char of delimiter
newOffset++;
toRead--;
delimiterNotFound = true;
continue;
}
}
return newOffset - readerIndex;
}
}
return -1;
}
Domain
Subdomains
Source
Frequently Asked Questions
What does findDelimiter() do?
findDelimiter() is a function in the netty codebase, defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/HttpPostBodyUtil.java.
Where is findDelimiter() defined?
findDelimiter() is defined in codec-http/src/main/java/io/netty/handler/codec/http/multipart/HttpPostBodyUtil.java at line 220.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free