X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=libcitadel%2Flib%2Flibcitadel.h;h=296d1cee50a0de60f1a7bef41184198ce4524931;hb=dc4679ebfb997ad5941b5a32b8e0f1fd0488ea68;hp=7ed8df24006b06910a73aec627de558779a5cc61;hpb=28138c561e67821aa7d3f7cd433e4bae2e1c2d61;p=citadel.git diff --git a/libcitadel/lib/libcitadel.h b/libcitadel/lib/libcitadel.h index 7ed8df240..296d1cee5 100644 --- a/libcitadel/lib/libcitadel.h +++ b/libcitadel/lib/libcitadel.h @@ -1,5 +1,15 @@ /* * Header file for libcitadel + * + * Copyright (c) 1987-2012 by the citadel.org team + * + * This program is open source software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 3. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. */ @@ -15,8 +25,10 @@ #include #include #include +#include +#include -#define LIBCITADEL_VERSION_NUMBER 800 +#define LIBCITADEL_VERSION_NUMBER 813 /* * Here's a bunch of stupid magic to make the MIME parser portable. @@ -86,7 +98,9 @@ typedef enum _room_views { VIEW_JOURNAL = 8, /* Journal view */ VIEW_DRAFTS = 9, /* Drafts view */ VIEW_BLOG = 10, /* Blog view */ - VIEW_MAX + VIEW_QUEUE = 11, /* SMTP/... QUEUE rooms */ + VIEW_MAX, + VIEW_JSON_LIST, } ROOM_VIEWS; #define BLOG_EUIDBUF_SIZE 40 @@ -241,8 +255,10 @@ typedef struct __fd_iobuffer { IOBuffer *IOB; int OtherFD; int SplicePipe[2]; + int PipeSize; long TotalSendSize; long TotalSentAlready; + long TotalReadAlready; long ChunkSize; long ChunkSendRemain; StrBuf *ChunkBuffer; /* just used if we don't have sendfile */ @@ -253,6 +269,7 @@ void FDIOBufferInit(FDIOBuffer *FDB, IOBuffer *IO, int FD, long TotalSendSize); void FDIOBufferDelete(FDIOBuffer *FDB); int FileSendChunked(FDIOBuffer *FDB, const char **Err); int FileRecvChunked(FDIOBuffer *FDB, const char **Err); +int FileMoveChunked(FDIOBuffer *FDB, const char **Err); eReadState WriteIOBAlreadyRead(FDIOBuffer *FDB, const char **Error); long StrBuf_read_one_chunk_callback (int fd, short event, IOBuffer *FB); @@ -264,6 +281,7 @@ long IOBufferStrLength(IOBuffer *FB); 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); @@ -329,6 +347,7 @@ int StrBufSanitizeAscii(StrBuf *Buf, const char Mute); #define RB (2) #define QU (3) void StrBufUrlescAppend(StrBuf *OutBuf, const StrBuf *In, const char *PlainIn); +void StrBufUrlescUPAppend(StrBuf *OutBuf, const StrBuf *In, const char *PlainIn); void StrBufHexescAppend(StrBuf *OutBuf, const StrBuf *In, const char *PlainIn); void StrBufHexEscAppend(StrBuf *OutBuf, const StrBuf *In, const unsigned char *PlainIn, long PlainInLen); long StrEscAppend(StrBuf *Target, const StrBuf *Source, const char *PlainIn, int nbsp, int nolinebreaks); @@ -356,6 +375,7 @@ const char *GetIconFilename(char *MimeType, size_t len); /* URL parsing & connection data */ typedef struct ParsedURL ParsedURL; struct ParsedURL { + int Priority; StrBuf *URL; StrBuf *UrlWithoutCred; StrBuf *CurlCreds; @@ -371,6 +391,9 @@ struct ParsedURL { struct hostent *HEnt; struct sockaddr_in6 Addr; ParsedURL *Next; + int IsRelay; + StrBuf *UsrName; + StrBuf *Password; }; void FreeURL(ParsedURL** Url);