/*
* List subscription handling
*/
-
-int Conditional_LISTSUB_EXECUTE_SUBSCRIBE(StrBuf *Target, WCTemplputParams *TP)
-{
+int Conditional_LISTSUB_EXECUTE_SUBSCRIBE(StrBuf *Target, WCTemplputParams *TP) {
int rc;
StrBuf *Line;
const char *ImpMsg;
- const StrBuf *Room, *Email, *SubType;
-
+ const StrBuf *Room, *Email;
+
+ if (strcmp(bstr("cmd"), "subscribe")) {
+ return 0;
+ }
+
Room = sbstr("room");
if (Room == NULL)
{
AppendImportantMessage(ImpMsg, -1);
return 0;
}
- SubType = sbstr("subtype");
Line = NewStrBuf();
- serv_printf("SUBS subscribe|%s|%s|%s|%s/listsub",
- ChrPtr(Room),
- ChrPtr(Email),
- ChrPtr(SubType),
- ChrPtr(site_prefix)
- );
+ serv_printf("LSUB subscribe|%s|%s|%s/listsub", ChrPtr(Room), ChrPtr(Email), ChrPtr(site_prefix));
StrBuf_ServGetln(Line);
rc = GetServerStatusMsg(Line, NULL, 1, 2);
FreeStrBuf(&Line);
- if (rc == 2)
+ if (rc == 2) {
putbstr("__FAIL", NewStrBufPlain(HKEY("1")));
+ }
return rc == 2;
}
-int Conditional_LISTSUB_EXECUTE_UNSUBSCRIBE(StrBuf *Target, WCTemplputParams *TP)
-{
+
+int Conditional_LISTSUB_EXECUTE_UNSUBSCRIBE(StrBuf *Target, WCTemplputParams *TP) {
int rc;
StrBuf *Line;
const char *ImpMsg;
const StrBuf *Room, *Email;
-
+
+ if (strcmp(bstr("cmd"), "unsubscribe")) {
+ return 0;
+ }
+
Room = sbstr("room");
if (Room == NULL)
{
return 0;
}
- serv_printf("SUBS unsubscribe|%s|%s|%s/listsub",
- ChrPtr(Room),
- ChrPtr(Email),
- ChrPtr(site_prefix)
- );
+ serv_printf("LSUB unsubscribe|%s|%s|%s/listsub", ChrPtr(Room), ChrPtr(Email), ChrPtr(site_prefix));
Line = NewStrBuf();
StrBuf_ServGetln(Line);
rc = GetServerStatusMsg(Line, NULL, 1, 2);
StrBuf *Line;
const char *ImpMsg;
const StrBuf *Room, *Token;
-
+
+ if (strcmp(bstr("cmd"), "confirm")) {
+ return 0;
+ }
+
Room = sbstr("room");
if (Room == NULL)
{
}
Line = NewStrBuf();
- serv_printf("SUBS confirm|%s|%s",
- ChrPtr(Room),
- ChrPtr(Token)
- );
+ serv_printf("LSUB confirm|%s|%s", ChrPtr(Room), ChrPtr(Token));
StrBuf_ServGetln(Line);
rc = GetServerStatusMsg(Line, NULL, 1, 2);
FreeStrBuf(&Line);
InitModule_LISTSUB
(void)
{
- RegisterConditional(HKEY("COND:LISTSUB:EXECUTE:SUBSCRIBE"), 0, Conditional_LISTSUB_EXECUTE_SUBSCRIBE, CTX_NONE);
- RegisterConditional(HKEY("COND:LISTSUB:EXECUTE:UNSUBSCRIBE"), 0, Conditional_LISTSUB_EXECUTE_UNSUBSCRIBE, CTX_NONE);
- RegisterConditional(HKEY("COND:LISTSUB:EXECUTE:CONFIRM:SUBSCRIBE"), 0, Conditional_LISTSUB_EXECUTE_CONFIRM_SUBSCRIBE, CTX_NONE);
+ RegisterConditional("COND:LISTSUB:EXECUTE:SUBSCRIBE", 0, Conditional_LISTSUB_EXECUTE_SUBSCRIBE, CTX_NONE);
+ RegisterConditional("COND:LISTSUB:EXECUTE:UNSUBSCRIBE", 0, Conditional_LISTSUB_EXECUTE_UNSUBSCRIBE, CTX_NONE);
+ RegisterConditional("COND:LISTSUB:EXECUTE:CONFIRM:SUBSCRIBE", 0, Conditional_LISTSUB_EXECUTE_CONFIRM_SUBSCRIBE, CTX_NONE);
WebcitAddUrlHandler(HKEY("listsub"), "", 0, do_listsub, ANONYMOUS|COOKIEUNNEEDED|FORCE_SESSIONCLOSE);