]> code.citadel.org Git - citadel.git/blobdiff - libcitadel/lib/libcitadel.h
Add function to do some revalidations on hashlists; Attention; this can be cpu intens...
[citadel.git] / libcitadel / lib / libcitadel.h
index d223a506ecf55fec4d30da66b125c881d2a9a594..efd3caba047c6da923d0e59643de3bdebb5d4960 100644 (file)
@@ -16,7 +16,7 @@
 #include <stdarg.h>
 #include <arpa/inet.h>
 
-#define LIBCITADEL_VERSION_NUMBER      789
+#define LIBCITADEL_VERSION_NUMBER      800
 
 /*
  * Here's a bunch of stupid magic to make the MIME parser portable.
@@ -109,6 +109,7 @@ typedef enum _room_views {
        VIEW_MAX
 } ROOM_VIEWS;
 
+#define BLOG_EUIDBUF_SIZE      40
 
 #ifndef IsEmptyStr
 #define IsEmptyStr(a) ((a)[0] == '\0')
@@ -241,7 +242,6 @@ int StrBufTCP_read_buffered_line_fast(StrBuf *Line,
                                      const char **Error);
 
 
-int StrBufSipLine(StrBuf *LineBuf, StrBuf *Buf, const char **Ptr);
 
 typedef enum _eReadState {
        eReadFail,
@@ -264,7 +264,7 @@ int StrBuf_write_one_chunk_callback(int fd, short event, IOBuffer *FB);
 eReadState StrBufChunkSipLine(StrBuf *LineBuf, IOBuffer *FB);
 eReadState StrBufCheckBuffer(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_token(StrBuf *dest, const StrBuf *Source, int parmnum, char separator);
 int StrBufSub(StrBuf *dest, const StrBuf *Source, unsigned long Offset, size_t nChars);
@@ -332,6 +332,7 @@ int StrBufSanitizeAscii(StrBuf *Buf, const char Mute);
 #define QU                     (3)
 void StrBufUrlescAppend(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);
 long StrECMAEscAppend(StrBuf *Target, const StrBuf *Source, const char *PlainIn);
 long StrHtmlEcmaEscAppend(StrBuf *Target, const StrBuf *Source, const char *PlainIn, int nbsp, int nolinebreaks);
@@ -358,11 +359,14 @@ const char *GetIconFilename(char *MimeType, size_t len);
 typedef struct ParsedURL ParsedURL;
 struct ParsedURL {
        StrBuf *URL;
+       StrBuf *UrlWithoutCred;
+       StrBuf *CurlCreds;
        unsigned Port;
        const char *Host;
        const char *User;
        const char *Pass;
        const char *LocalPart;
+       const char *PlainUrl;
        int IsIP;
        int IPv6;
        int af;
@@ -373,6 +377,7 @@ struct ParsedURL {
 
 void FreeURL(ParsedURL** Url);
 int ParseURL(ParsedURL **Url, StrBuf *UrlStr, unsigned short DefaultPort);
+void CurlPrepareURL(ParsedURL *Url);
 
 /* tools */
 
@@ -474,6 +479,8 @@ long lFlathash(const char *str, long len);
 #define IKEY(a) (const char*) &a, sizeof(a)
 #define LKEY(a) (const char*) &a, sizeof(a)
 
+int TestValidateHash(HashList *TestHash);
+
 HashList *NewHash(int Uniq, HashFunc F);
 void DeleteHash(HashList **Hash);
 void DeleteHashContent(HashList **Hash);
@@ -621,4 +628,7 @@ void WildFireSerializePayload(StrBuf *JsonBuffer, StrBuf *OutBuf, int *MsgCount,
 
 extern ConstStr RoomNetCfgStrs[maxRoomNetCfg];
 
+/* Convenience function to "perform a function and cut a log record if result != 0" */
+#define CtdlLogResult(x) if (x) syslog(LOG_CRIT, "%s:%d %s", __FILE__, __LINE__, strerror(errno))
+
 #endif // LIBCITADEL_H