* GNU General Public License for more details.
*/
-
/* protect against double includes */
#ifndef LIBCITADEL_H
#define LIBCITADEL_H
-
/*
* since we reference time_t...
*/
#include <sys/types.h>
#include <netinet/in.h>
-#define LIBCITADEL_VERSION_NUMBER 920
+#define LIBCITADEL_VERSION_NUMBER 924
/*
* Here's a bunch of stupid magic to make the MIME parser portable.
#define SIZ 4096
#endif
-
typedef enum AXLevel {
AxDeleted = 0,
AxNewU = 1,
void *userdata,
int dont_decode);
-
-
char *fixed_partnum(char *);
+
void mime_decode(char *partnum,
char *part_start, size_t length,
char *content_type, char *charset, char *encoding,
MimeParserCallBackType PostMultiPartCallBack,
void *userdata,
int dont_decode);
+
int mime_decode_now (char *part_start,
size_t length,
char *encoding,
char **decoded,
size_t *bytes_decoded);
+
void the_mime_parser(char *partnum,
char *content_start, char *content_end,
MimeParserCallBackType CallBack,
long StrBufShrinkToFit(StrBuf *Buf, int Force);
void ReAdjustEmptyBuf(StrBuf *Buf, long ThreshHold, long NewSize);
void NewStrBufDupAppendFlush(StrBuf **CreateRelpaceMe, StrBuf *CopyFlushMe, const char *NoMe, int KeepOriginal);
-
int StrBufPlain(StrBuf *Buf, const char* ptr, int nChars);
StrBuf* _NewConstStrBuf(const char* StringConstant, size_t SizeOfStrConstant);
#define NewConstStrBuf(a) _NewConstStrBuf(a, sizeof(a))
void HFreeStrBuf (void *VFreeMe);
int FlushStrBuf(StrBuf *buf);
int FLUSHStrBuf(StrBuf *buf); /* expensive but doesn't leave content behind for others to find in case of errors */
-
const char *ChrPtr(const StrBuf *Str);
int StrLength(const StrBuf *Str);
#define SKEY(a) ChrPtr(a), StrLength(a)
void StrBufAsciify(StrBuf *Buf, const char repl);
long StrBufPeek(StrBuf *Buf, const char* ptr, long nThChar, char PeekValue);
long StrBufPook(StrBuf *Buf, const char* ptr, long nThChar, long nChars, char PookValue);
-
int StrBufTCP_read_line(StrBuf *buf, int *fd, int append, const char **Error);
int StrBufReadBLOB(StrBuf *Buf, int *fd, int append, long nBytes, const char **Error);
#define NNN_TERM 1
int nBlobBytesWanted;
} IOBuffer;
-
-typedef struct __fd_iobuffer {
- IOBuffer *IOB;
- int OtherFD;
- int SplicePipe[2];
- int PipeSize;
- long TotalSendSize;
- loff_t TotalSentAlready;
- loff_t TotalReadAlready;
- long ChunkSize;
- long ChunkSendRemain;
- StrBuf *ChunkBuffer; /* just used if we don't have sendfile */
-} FDIOBuffer;
-
-
-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);
int StrBuf_write_one_chunk_callback(int fd, short event, IOBuffer *FB);
int is_msg_in_mset(const char *mset, long msgnum);
int pattern2(char *search, char *patn);
void stripltlen(char *, int *);
-char *html_to_ascii(const char *inputmsg, int msglen, int screenwidth, int do_citaformat);
+char *html_to_ascii(const char *inputmsg, int msglen, int screenwidth);
void LoadEntityList(char *FileName);
void SerializeJson(StrBuf *Target, JsonValue *Val, int FreeVal);
-
-/*
- * Citadels Wildfire implementation, see
- * http://www.firephp.org/Wiki/Reference/Protocol
- * and http://wildfirehq.org/ for details
- */
+/* the following declarations are leftover from the defunct wildfire implementation. can we remove them? */
typedef void (*AddHeaderFunc)(const char *HdrName, const char *HdrValue);
typedef enum _WF_MessageType {