mirror of
https://forge.fsky.io/lda/Parsee.git
synced 2026-03-13 22:45:12 +00:00
[ADD/FIX/WIP] "Fix" concurrency, prepare XEP-0421
I'll need to break down my commits more...
This commit is contained in:
parent
a686449a4d
commit
63c1bc819e
14 changed files with 356 additions and 162 deletions
|
|
@ -240,4 +240,14 @@ extern char * ParseeStringifyDate(uint64_t millis);
|
|||
/* Generates the JID of the Parsee bridge user. */
|
||||
extern char * ParseeJID(ParseeData *data);
|
||||
extern char * ParseeMXID(ParseeData *data);
|
||||
|
||||
/** Prints an _fatal_ and _strange_, error message, then congratulates
|
||||
* the user for it(an "achievement").
|
||||
* Use this for errors that have _no business_ happening, at all.
|
||||
* NOTE to users: If you see this, _*OPEN AN ISSUE*_.
|
||||
* ---------------------------------------------------
|
||||
* Returns: NOTHING | NORETURN */
|
||||
extern void ParseeAchievement(const char *func, const char *msg, bool die);
|
||||
#define Achievement(msg, die) ParseeAchievement(__func__, msg, die)
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -98,4 +98,8 @@ extern char * XMPPGenerateVer(void);
|
|||
extern void XMPPAnnotatePresence(XMLElement *presence);
|
||||
|
||||
extern bool XMPPHasError(XMLElement *stanza, char *type);
|
||||
|
||||
extern XMLElement * XMPPSendDisco(XMPPComponent *jabber, char *from, char *to);
|
||||
|
||||
extern bool XMPPDiscoAdvertises(XMLElement *disco, char *var);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -94,35 +94,6 @@ extern bool XMPPManageCommand(XMPPCommandManager *m, XMLElement *stanza, ParseeD
|
|||
|
||||
/* --------------------------------- COMMANDS --------------------------------- */
|
||||
/* Please edit stc/XMPPThread.c (you can just force-save) for these to apply! */
|
||||
#define XMPPCOMMANDS \
|
||||
XMPP_COMMAND(StatusCallback, "stats", "Get Parsee statistics", {}) \
|
||||
XMPP_COMMAND(CleanCallback, "clean", "Cleanup temporary Parsee data", {}) \
|
||||
XMPP_COMMAND(AdminsCallback, "admin", "Get Parsee admin list", {}) \
|
||||
XMPP_COMMAND(NoflyCallback, "nofly", "Get Parsee nofly list", {}) \
|
||||
XMPP_COMMAND(AddAdminCallback, "add-admin", "Adds glob as admin", { \
|
||||
XMPPOption *glob = XMPPCreateText(true, "glob", ""); \
|
||||
XMPPSetDescription(glob, "Glob pattern to set as admin"); \
|
||||
XMPPAddOption(cmd, glob); \
|
||||
\
|
||||
XMPPSetFormTitle(cmd, "Admin addition form"); \
|
||||
XMPPSetFormInstruction(cmd, "Select a glob pattern to add as an admin"); \
|
||||
}) \
|
||||
XMPP_COMMAND(DelAdminCallback, "del-admin", "Removes a glob from admin rights", { \
|
||||
XMPPCmdOptionsCreator(cmd, FormDelAdminCallback); \
|
||||
XMPPSetFormTitle(cmd, "Admin removal form"); \
|
||||
XMPPSetFormInstruction(cmd, "Select a glob pattern to remove as an admin"); \
|
||||
}) \
|
||||
XMPP_COMMAND(AddNoflyCallback, "add-nofly", "Adds user to nofly", { \
|
||||
XMPPOption *entity = XMPPCreateText(true, "entity", ""); \
|
||||
XMPPOption *reason = XMPPCreateText(false, "reason", "Not behaving"); \
|
||||
XMPPSetDescription(entity, "Entity(glob) to no-fly"); \
|
||||
XMPPAddOption(cmd, entity); \
|
||||
XMPPSetDescription(reason, "Reason for the no-fly"); \
|
||||
XMPPAddOption(cmd, reason); \
|
||||
\
|
||||
XMPPSetFormTitle(cmd, "No-fly addition form"); \
|
||||
XMPPSetFormInstruction(cmd, "Select a glob pattern to add to the nofly"); \
|
||||
}) \
|
||||
|
||||
#define XMPP_COMMAND(f,n,t,s) \
|
||||
extern void \
|
||||
|
|
@ -132,7 +103,7 @@ extern bool XMPPManageCommand(XMPPCommandManager *m, XMLElement *stanza, ParseeD
|
|||
extern void \
|
||||
Form##f(XMPPCommandManager *, XMPPCommand *, char *); \
|
||||
|
||||
XMPPCOMMANDS
|
||||
#include "XMPPCommands.x"
|
||||
|
||||
#undef XMPP_COMMAND
|
||||
#endif
|
||||
|
|
|
|||
32
src/include/XMPPCommands.x
Normal file
32
src/include/XMPPCommands.x
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
/* C X-macro file */
|
||||
#define XMPPCOMMANDS \
|
||||
XMPP_COMMAND(StatusCallback, "stats", "Get Parsee statistics", {}) \
|
||||
XMPP_COMMAND(CleanCallback, "clean", "Cleanup temporary Parsee data", {}) \
|
||||
XMPP_COMMAND(AdminsCallback, "admin", "Get Parsee admin list", {}) \
|
||||
XMPP_COMMAND(NoflyCallback, "nofly", "Get Parsee nofly list", {}) \
|
||||
XMPP_COMMAND(AddAdminCallback, "add-admin", "Adds glob as admin", { \
|
||||
XMPPOption *glob = XMPPCreateText(true, "glob", ""); \
|
||||
XMPPSetDescription(glob, "Glob pattern to set as admin"); \
|
||||
XMPPAddOption(cmd, glob); \
|
||||
\
|
||||
XMPPSetFormTitle(cmd, "Admin addition form"); \
|
||||
XMPPSetFormInstruction(cmd, "Select a glob pattern to add as an admin"); \
|
||||
}) \
|
||||
XMPP_COMMAND(DelAdminCallback, "del-admin", "Removes a glob from admin rights", { \
|
||||
XMPPCmdOptionsCreator(cmd, FormDelAdminCallback); \
|
||||
XMPPSetFormTitle(cmd, "Admin removal form"); \
|
||||
XMPPSetFormInstruction(cmd, "Select a glob pattern to remove as an admin"); \
|
||||
}) \
|
||||
XMPP_COMMAND(AddNoflyCallback, "add-nofly", "Adds user to nofly", { \
|
||||
XMPPOption *entity = XMPPCreateText(true, "entity", ""); \
|
||||
XMPPOption *reason = XMPPCreateText(false, "reason", "Not behaving"); \
|
||||
XMPPSetDescription(entity, "Entity(glob) to no-fly"); \
|
||||
XMPPAddOption(cmd, entity); \
|
||||
XMPPSetDescription(reason, "Reason for the no-fly"); \
|
||||
XMPPAddOption(cmd, reason); \
|
||||
\
|
||||
XMPPSetFormTitle(cmd, "No-fly addition form"); \
|
||||
XMPPSetFormInstruction(cmd, "Select a glob pattern to add to the nofly"); \
|
||||
}) \
|
||||
|
||||
XMPPCOMMANDS
|
||||
Loading…
Add table
Add a link
Reference in a new issue