1 2 #ifndef PLUGIN_H 3 #define PLUGIN_H 4 5 #define MODULE_IFACE_VER 2 6 #define XP_CALLBACK(x) ( (int (*) (void *, void *, void *, void *, void *, char) ) x ) 7 8 enum 9 { XP_USERCOMMAND = 10 0, XP_PRIVMSG, XP_CHANACTION, XP_CHANMSG, XP_CHANGENICK, XP_JOIN, 11 XP_CHANSETKEY, XP_CHANSETLIMIT, XP_CHANHOP, XP_CHANOP, XP_CHANVOICE, 12 XP_CHANBAN, XP_CHANRMKEY, XP_CHANRMLIMIT, XP_CHANDEHOP, XP_CHANDEOP, 13 XP_CHANDEVOICE, XP_CHANUNBAN, XP_CHANEXEMPT, XP_CHANRMEXEMPT, 14 XP_CHANINVITE, XP_CHANRMINVITE, XP_INBOUND, XP_TE_JOIN, 15 XP_TE_CHANACTION, XP_TE_CHANMSG, XP_TE_PRIVMSG, XP_TE_CHANGENICK, 16 XP_TE_NEWTOPIC, XP_TE_TOPIC, XP_TE_KICK, XP_TE_PART, XP_TE_CHANDATE, 17 XP_TE_TOPICDATE, XP_TE_QUIT, XP_TE_PINGREP, XP_TE_NOTICE, XP_TE_UJOIN, 18 XP_TE_UCHANMSG, XP_TE_DPRIVMSG, XP_TE_UCHANGENICK, XP_TE_UKICK, 19 XP_TE_UPART, XP_TE_CTCPSND, XP_TE_CTCPGEN, XP_TE_CTCPGENC, 20 XP_TE_CHANSETKEY, XP_TE_CHANSETLIMIT, XP_TE_CHANHOP, XP_TE_CHANOP, 21 XP_TE_CHANVOICE, XP_TE_CHANBAN, XP_TE_CHANRMKEY, XP_TE_CHANRMLIMIT, 22 XP_TE_CHANDEHOP, XP_TE_CHANDEOP, XP_TE_CHANDEVOICE, XP_TE_CHANUNBAN, 23 XP_TE_CHANEXEMPT, XP_TE_CHANRMEXEMPT, XP_TE_CHANINVITE, 24 XP_TE_CHANRMINVITE, XP_TE_CHANMODEGEN, XP_TE_WHOIS1, XP_TE_WHOIS2, 25 XP_TE_WHOIS3, XP_TE_WHOIS4, XP_TE_WHOIS4T, XP_TE_WHOIS5, XP_TE_WHOIS6, 26 XP_TE_USERLIMIT, XP_TE_BANNED, XP_TE_INVITE, XP_TE_KEYWORD, 27 XP_TE_MOTDSKIP, XP_TE_SERVTEXT, XP_TE_INVITED, XP_TE_USERSONCHAN, 28 XP_TE_NICKCLASH, XP_TE_NICKFAIL, XP_TE_UKNHOST, XP_TE_CONNFAIL, 29 XP_TE_CONNECT, XP_TE_CONNECTED, XP_TE_SCONNECT, XP_TE_DISCON, 30 XP_TE_NODCC, XP_TE_DELNOTIFY, XP_TE_ADDNOTIFY, XP_TE_WINTYPE, 31 XP_TE_CHANMODES, XP_TE_RAWMODES, XP_TE_KILL, XP_TE_DCCSTALL, 32 XP_TE_DCCTOUT, XP_TE_DCCCHATF, XP_TE_DCCFILEERR, XP_TE_DCCRECVERR, 33 XP_TE_DCCRECVCOMP, XP_TE_DCCCONFAIL, XP_TE_DCCCON, XP_TE_DCCSENDFAIL, 34 XP_TE_DCCSENDCOMP, XP_TE_DCCOFFER, XP_TE_DCCABORT, XP_TE_DCCIVAL, 35 XP_TE_DCCCHATREOFFER, XP_TE_DCCCHATOFFERING, XP_TE_DCCDRAWOFFER, 36 XP_TE_DCCCHATOFFER, XP_TE_DCCRESUMEREQUEST, XP_TE_DCCSENDOFFER, 37 XP_TE_DCCGENERICOFFER, XP_TE_NOTIFYONLINE, XP_TE_NOTIFYNUMBER, 38 XP_TE_NOTIFYEMPTY, XP_TE_NOCHILD, XP_TE_ALREADYPROCESS, 39 XP_TE_SERVERLOOKUP, XP_TE_SERVERCONNECTED, XP_TE_SERVERERROR, 40 XP_TE_SERVERGENMESSAGE, XP_TE_FOUNDIP, XP_TE_DCCRENAME, XP_TE_CTCPSEND, 41 XP_TE_MSGSEND, XP_TE_NOTICESEND, XP_TE_WALLOPS, XP_HIGHLIGHT, 42 XP_TE_IGNOREHEADER, XP_TE_IGNORELIST, XP_TE_IGNOREFOOTER, 43 XP_TE_IGNOREADD, XP_TE_IGNOREREMOVE, XP_TE_RESOLVINGUSER, 44 XP_TE_IGNOREEMPTY, XP_TE_IGNORECHANGE, XP_TE_NOTIFYOFFLINE, 45 XP_TE_MALFORMED_FROM, XP_TE_MALFORMED_PACKET, XP_TE_PARTREASON, 46 XP_TE_UPARTREASON, XP_TE_NEWMAIL, XP_TE_MOTD, XP_TE_PINGTIMEOUT, 47 XP_TE_UINVITE, 48 XP_IF_SEND, XP_IF_RECV, 49 NUM_XP 50 }; 51 52 53 #define EMIT_SIGNAL(s, a, b, c, d, e, f) (fire_signal(s, a, b, c, d, e, f)) 54 /* #define XP_CALLNEXT(s, a, b, c, d, e, f) if (s != NULL) return s(a, b, c, d, e, f); return 0; */ 55 /* #define XP_CALLNEXT_ANDSET(s, a, b, c, d, e, f) if (s != NULL) s(a, b, c, d, e, f); return 1; */ 56 57 #define XP_CALLNEXT(s, a, b, c, d, e, f) return 0; 58 #define XP_CALLNEXT_ANDSET(s, a, b, c, d, e, f) return 1; 59 60 extern int current_signal; 61 62 #ifdef USE_PLUGIN 63 64 struct module 65 { 66 void *handle; 67 char *name, *desc; 68 struct module *next, *last; 69 }; 70 71 struct module_cmd_set 72 { 73 struct module *mod; 74 struct commands *cmds; 75 struct module_cmd_set *next, *last; 76 }; 77 78 #endif 79 80 struct xp_signal 81 { 82 int signal; 83 int (**naddr) (void *, void *, void *, void *, void *, char); 84 int (*callback) (void *, void *, void *, void *, void *, char); 85 /* These aren't used, but needed to keep compatibility --AGL */ 86 void *next, *last; 87 void *data; 88 #ifdef USE_PLUGIN 89 struct module *mod; 90 #else 91 void *padding; 92 #endif 93 }; 94 95 struct pevt_stage1 96 { 97 int len; 98 char *data; 99 struct pevt_stage1 *next; 100 }; 101 102 #ifndef PLUGIN_C 103 /* extern int (*sighandler[NUM_XP]) (void *, void *, void *, void *, void *, char); */ 104 extern void *signal_data; 105 extern struct xp_signal *sigroots[NUM_XP]; 106 extern int fire_signal (int, void *, void *, void *, void *, void *, char); 107 108 #endif 109 110 #endif /* PLUGIN_H */ 111