summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2014-11-24 14:27:23 -0500
committerAdam <Adam@anope.org>2014-11-24 14:27:23 -0500
commit42238034490fb5479d787bd1695750387d508200 (patch)
treec93c62e0e1c936e656ae5b9ee1b62380ce2a194c
parentd492923610d9c9146b2a2b63de38deab2cfd4ca7 (diff)
Rewrite serializable to have field level granularity
Represent serializable objects in a digraph, and as a result made most object relationships implicitly defined, and use the graph to trace references between objects to determine relationships. Edges may also be marked as having a dependency of the object they point to, which allows for automatic cleanup and deletion of most objects when no longer needed. Additionally, this allows not having to require in-memory copies of everything when using external databases. db_sql has been rewritten for this and now always requires a database to function. db_sql with MySQL now requires InnoDB to make use of transactions and foreign key constraints.
-rw-r--r--cmake/Anope.cmake4
-rw-r--r--data/example.conf47
-rw-r--r--docs/REDIS160
-rw-r--r--include/anope.h24
-rw-r--r--include/bots.h71
-rw-r--r--include/commands.h9
-rw-r--r--include/config.h7
-rw-r--r--include/defs.h20
-rw-r--r--include/event.h85
-rw-r--r--include/extensible.h178
-rw-r--r--include/language.h2
-rw-r--r--include/logger.h16
-rw-r--r--include/mail.h2
-rw-r--r--include/modules.h9
-rw-r--r--include/modules/bs_badwords.h44
-rw-r--r--include/modules/bs_bot.h6
-rw-r--r--include/modules/bs_info.h6
-rw-r--r--include/modules/bs_kick.h124
-rw-r--r--include/modules/chanserv.h403
-rw-r--r--include/modules/cs_access.h4
-rw-r--r--include/modules/cs_akick.h44
-rw-r--r--include/modules/cs_entrymsg.h34
-rw-r--r--include/modules/cs_log.h51
-rw-r--r--include/modules/cs_mode.h62
-rw-r--r--include/modules/cs_set_misc.h25
-rw-r--r--include/modules/cs_suspend.h51
-rw-r--r--include/modules/dns.h2
-rw-r--r--include/modules/global.h2
-rw-r--r--include/modules/memoserv.h78
-rw-r--r--include/modules/nickserv.h204
-rw-r--r--include/modules/ns_access.h22
-rw-r--r--include/modules/ns_ajoin.h25
-rw-r--r--include/modules/ns_cert.h66
-rw-r--r--include/modules/ns_set_misc.h25
-rw-r--r--include/modules/ns_suspend.h51
-rw-r--r--include/modules/os_dns.h72
-rw-r--r--include/modules/os_forbid.h48
-rw-r--r--include/modules/os_ignore.h36
-rw-r--r--include/modules/os_info.h29
-rw-r--r--include/modules/os_news.h35
-rw-r--r--include/modules/os_session.h89
-rw-r--r--include/modules/redis.h19
-rw-r--r--include/modules/sasl.h6
-rw-r--r--include/modules/set_misc.h17
-rw-r--r--include/modules/sql.h142
-rw-r--r--include/modules/suspend.h52
-rw-r--r--include/opertype.h64
-rw-r--r--include/protocol.h22
-rw-r--r--include/serialize.h772
-rw-r--r--include/servers.h2
-rw-r--r--include/service.h5
-rw-r--r--include/users.h32
-rw-r--r--include/xline.h89
-rw-r--r--modules/bs_autoassign.cpp2
-rw-r--r--modules/commands/bs_assign.cpp70
-rw-r--r--modules/commands/bs_badwords.cpp268
-rw-r--r--modules/commands/bs_bot.cpp37
-rw-r--r--modules/commands/bs_botlist.cpp10
-rw-r--r--modules/commands/bs_control.cpp32
-rw-r--r--modules/commands/bs_info.cpp28
-rw-r--r--modules/commands/bs_kick.cpp935
-rw-r--r--modules/commands/bs_set.cpp20
-rw-r--r--modules/commands/cs_access.cpp236
-rw-r--r--modules/commands/cs_akick.cpp321
-rw-r--r--modules/commands/cs_ban.cpp18
-rw-r--r--modules/commands/cs_clone.cpp70
-rw-r--r--modules/commands/cs_drop.cpp12
-rw-r--r--modules/commands/cs_enforce.cpp28
-rw-r--r--modules/commands/cs_entrymsg.cpp188
-rw-r--r--modules/commands/cs_flags.cpp122
-rw-r--r--modules/commands/cs_getkey.cpp6
-rw-r--r--modules/commands/cs_info.cpp16
-rw-r--r--modules/commands/cs_invite.cpp2
-rw-r--r--modules/commands/cs_kick.cpp14
-rw-r--r--modules/commands/cs_list.cpp43
-rw-r--r--modules/commands/cs_log.cpp338
-rw-r--r--modules/commands/cs_mode.cpp450
-rw-r--r--modules/commands/cs_register.cpp23
-rw-r--r--modules/commands/cs_seen.cpp32
-rw-r--r--modules/commands/cs_set.cpp356
-rw-r--r--modules/commands/cs_set_misc.cpp160
-rw-r--r--modules/commands/cs_status.cpp22
-rw-r--r--modules/commands/cs_suspend.cpp185
-rw-r--r--modules/commands/cs_sync.cpp4
-rw-r--r--modules/commands/cs_topic.cpp49
-rw-r--r--modules/commands/cs_unban.cpp12
-rw-r--r--modules/commands/cs_updown.cpp12
-rw-r--r--modules/commands/cs_xop.cpp195
-rw-r--r--modules/commands/greet.cpp58
-rw-r--r--modules/commands/help.cpp2
-rw-r--r--modules/commands/hs_del.cpp18
-rw-r--r--modules/commands/hs_group.cpp18
-rw-r--r--modules/commands/hs_list.cpp10
-rw-r--r--modules/commands/hs_off.cpp4
-rw-r--r--modules/commands/hs_on.cpp4
-rw-r--r--modules/commands/hs_request.cpp173
-rw-r--r--modules/commands/hs_set.cpp14
-rw-r--r--modules/commands/ms_cancel.cpp12
-rw-r--r--modules/commands/ms_check.cpp18
-rw-r--r--modules/commands/ms_del.cpp29
-rw-r--r--modules/commands/ms_ignore.cpp81
-rw-r--r--modules/commands/ms_info.cpp84
-rw-r--r--modules/commands/ms_list.cpp43
-rw-r--r--modules/commands/ms_read.cpp51
-rw-r--r--modules/commands/ms_rsend.cpp4
-rw-r--r--modules/commands/ms_sendall.cpp8
-rw-r--r--modules/commands/ms_set.cpp64
-rw-r--r--modules/commands/ms_staff.cpp8
-rw-r--r--modules/commands/ns_access.cpp126
-rw-r--r--modules/commands/ns_ajoin.cpp202
-rw-r--r--modules/commands/ns_alist.cpp31
-rw-r--r--modules/commands/ns_cert.cpp279
-rw-r--r--modules/commands/ns_drop.cpp8
-rw-r--r--modules/commands/ns_getemail.cpp10
-rw-r--r--modules/commands/ns_getpass.cpp10
-rw-r--r--modules/commands/ns_group.cpp114
-rw-r--r--modules/commands/ns_identify.cpp14
-rw-r--r--modules/commands/ns_info.cpp82
-rw-r--r--modules/commands/ns_list.cpp55
-rw-r--r--modules/commands/ns_recover.cpp44
-rw-r--r--modules/commands/ns_register.cpp106
-rw-r--r--modules/commands/ns_resetpass.cpp38
-rw-r--r--modules/commands/ns_set.cpp332
-rw-r--r--modules/commands/ns_set_misc.cpp164
-rw-r--r--modules/commands/ns_status.cpp8
-rw-r--r--modules/commands/ns_suspend.cpp206
-rw-r--r--modules/commands/ns_update.cpp6
-rw-r--r--modules/commands/os_akill.cpp76
-rw-r--r--modules/commands/os_defcon.cpp8
-rw-r--r--modules/commands/os_dns.cpp605
-rw-r--r--modules/commands/os_forbid.cpp381
-rw-r--r--modules/commands/os_ignore.cpp298
-rw-r--r--modules/commands/os_info.cpp214
-rw-r--r--modules/commands/os_login.cpp54
-rw-r--r--modules/commands/os_modinfo.cpp4
-rw-r--r--modules/commands/os_news.cpp339
-rw-r--r--modules/commands/os_noop.cpp6
-rw-r--r--modules/commands/os_oper.cpp220
-rw-r--r--modules/commands/os_session.cpp358
-rw-r--r--