X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=libcitadel%2Flib%2Fwildfire.c;h=1958f5920202085358cf509045f8071452f067f4;hb=f3674ba9dab07598fff196f7944d7ae5bd71933a;hp=744634a8b50a62f1f407f5da161788c9fbadc633;hpb=53b91277b9078e683246e4ecb762176faf44646d;p=citadel.git diff --git a/libcitadel/lib/wildfire.c b/libcitadel/lib/wildfire.c index 744634a8b..1958f5920 100644 --- a/libcitadel/lib/wildfire.c +++ b/libcitadel/lib/wildfire.c @@ -1,7 +1,3 @@ -/* - * $Id: wildfire.c 6962 2009-01-18 19:33:45Z dothebart $ - */ - /*@{*/ #include "sysdep.h" @@ -19,7 +15,7 @@ #endif #include "libcitadel.h" - +#include "libcitadellocal.h" ConstStr WF_MsgStrs[] = { @@ -161,9 +157,13 @@ static int addr2lineBacktrace(StrBuf *Function, pche = strchr(pch, ':'); FlushStrBuf(FileName); StrBufAppendBufPlain(FileName, pch, pche - pch, 0); - pche++; - *FunctionLine = atoi(pche); - + if (pche != NULL) + { + pche++; + *FunctionLine = atoi(pche); + } + else + *FunctionLine = 0; return 1; } @@ -194,6 +194,14 @@ static int ParseBacktrace(char *Line, long BaseFrames = 0; StrBuf *FullBinaryName = NULL; +void WildFireShutdown(void) +{ + close(addr2line_write_pipe[0]); + close(addr2line_read_pipe[0]); + + FreeStrBuf(&FullBinaryName); +} + void WildFireInitBacktrace(const char *argvNull, int AddBaseFrameSkip) { @@ -365,6 +373,8 @@ void WildFireSerializePayload(StrBuf *JsonBuffer, StrBuf *OutBuf, int *MsgCount, const char *Cat; StrBuf *Header; + if (OutBuf == NULL) + Header = NewStrBuf(); if (*MsgCount == 0) { if (OutBuf != NULL) { StrBufAppendBufPlain(OutBuf, @@ -384,7 +394,6 @@ void WildFireSerializePayload(StrBuf *JsonBuffer, StrBuf *OutBuf, int *MsgCount, "http://meta.firephp.org/Wildfire/Structure/FirePHP/FirebugConsole/0.1\r\n"), 0); } else { - Header = NewStrBuf(); AddHdr("X-Wf-Protocol-1", "http://meta.wildfirehq.org/Protocol/JsonStream/0.2"); AddHdr("X-Wf-1-Plugin-1",