int StrBufSipLine(StrBuf *LineBuf, const StrBuf *Buf, const char **Ptr);
int StrBufReplaceToken(StrBuf *Buf, long where, long HowLong, const char *Repl, long ReplLen);
+int StrBufExtract_tokenFromStr(StrBuf *dest, const char *Source, long SourceLen, int parmnum, char separator);
int StrBufExtract_token(StrBuf *dest, const StrBuf *Source, int parmnum, char separator);
int StrBufSub(StrBuf *dest, const StrBuf *Source, unsigned long Offset, size_t nChars);
return ReducedBy;
}
+int StrBufExtract_tokenFromStr(StrBuf *dest, const char *Source, long SourceLen, int parmnum, char separator)
+{
+ const StrBuf Temp = {
+ (char*)Source,
+ SourceLen,
+ SourceLen,
+ 1
+#ifdef SIZE_DEBUG
+ ,
+ 0,
+ "",
+ ""
+#endif
+ };
+
+ return StrBufExtract_token(dest, &Temp, parmnum, separator);
+}
/**
* @ingroup StrBuf_Tokenizer
int FileSendChunked(FDIOBuffer *FDB, const char **Err)
{
-
#ifdef LINUX_SPLICE
ssize_t sent;
sent = sendfile(FDB->IOB->fd, FDB->OtherFD, &FDB->TotalSentAlready, FDB->ChunkSendRemain);
#ifdef LINUX_SPLICE
- pipesize = splice(FDB->IOB->fd, NULL,
- FDB->SplicePipe[1], NULL,
+ pipesize = splice(FDB->IOB->fd,
+ NULL,
+ FDB->SplicePipe[1],
+ NULL,
FDB->ChunkSendRemain,
SPLICE_F_MORE | SPLICE_F_MOVE|SPLICE_F_NONBLOCK);
+
if (pipesize == -1)
{
*Err = strerror(errno);
return pipesize;
}
- sent = splice(FDB->SplicePipe[0], NULL,
- FDB->OtherFD, &FDB->TotalSentAlready,
- pipesize, SPLICE_F_MORE | SPLICE_F_MOVE);
+ sent = splice(FDB->SplicePipe[0],
+ NULL,
+ FDB->OtherFD,
+ &FDB->TotalSentAlready,
+ pipesize,
+ SPLICE_F_MORE | SPLICE_F_MOVE);
+
if (sent == -1)
{
*Err = strerror(errno);