Template->Tokens[(Template->nTokensUsed)++] = NewToken;
}
-TemplateParam *GetNextParamter(StrBuf *Buf, const char **pCh, const char *pe)
+TemplateParam *GetNextParameter(StrBuf *Buf, const char **pCh, const char *pe)
{
const char *pch = *pCh;
const char *pchs, *pche;
NewToken->NameEnd = pch - NewToken->pName;
pch ++;
while (pch < pTmplEnd - 1) {
- Param = GetNextParamter(Buf, &pch, pTmplEnd - 1);
+ Param = GetNextParameter(Buf, &pch, pTmplEnd - 1);
if (Param != NULL) {
NewToken->HaveParameters = 1;
if (NewToken->nParameters > MAXPARAM) {
return NewToken;
}
+void FreeToken(WCTemplateToken **Token)
+{
+ int i;
+ if ((*Token)->HaveParameters)
+ for (i = 0; i < (*Token)->nParameters; i++)
+ free((*Token)->Params[i]);
+ free(*Token);
+ *Token = NULL;
+}
+
+
+
void FreeWCTemplate(void *vFreeMe)
{
int i;
if (FreeMe->TokenSpace > 0) {
for (i = 0; i < FreeMe->nTokensUsed; i ++) {
- free(FreeMe->Tokens[i]);
+ FreeToken(&FreeMe->Tokens[i]);
}
free(FreeMe->Tokens);
}
+ FreeStrBuf(&FreeMe->Data);
free(FreeMe);
}
}
+void ShutDownWebcit(void)
+{
+ DeleteHash(&ZoneHash);
+ free_zone_directory ();
+ icaltimezone_release_zone_tab ();
+ icalmemory_free_ring ();
+ ShutDownLibCitadel ();
+ DeleteHash(&HandlerHash);
+ DeleteHash(&PreferenceHooks);
+ DeleteHash(&GlobalNS);
+ DeleteHash(&WirelessTemplateCache);
+ DeleteHash(&WirelessLocalTemplateCache);
+ DeleteHash(&TemplateCache);
+ DeleteHash(&LocalTemplateCache);
+ DeleteHash(&Iterators);
+ DeleteHash(&Contitionals);
+#ifdef ENABLE_NLS
+ ShutdownLocale();
+#endif
+}
+
/*
* Entry point for worker threads
*/
lprintf(2, "master shutdown: cleaning up sessions\n");
do_housekeeping();
lprintf(2, "master shutdown: cleaning up libical\n");
- free_zone_directory ();
- icaltimezone_release_zone_tab ();
- icalmemory_free_ring ();
- ShutDownLibCitadel ();
- DeleteHash(&HandlerHash);
- DeleteHash(&PreferenceHooks);
- DeleteHash(&GlobalNS);
- DeleteHash(&WirelessTemplateCache);
- DeleteHash(&WirelessLocalTemplateCache);
- DeleteHash(&TemplateCache);
- DeleteHash(&LocalTemplateCache);
- DeleteHash(&Iterators);
- DeleteHash(&Contitionals);
-#ifdef ENABLE_NLS
- void ShutdownLocale(void);
-#endif
+
+ ShutDownWebcit();
+
lprintf(2, "master shutdown exiting!.\n");
exit(0);
}