aboutsummaryrefslogtreecommitdiffstats
# Atheme hooks system
# 
# hook_add_event("NAME")
# hook_call_NAME(argument)
# hook_add_NAME(handler)
# hook_add_first_NAME(handler)
# hook_del_NAME(handler)
# 
# Hooks that take a direct pointer to an object may not destroy that object.
# If this is necessary it must be done in an event added from the hook.
# Hooks with _can_ or _check_ in the name may fill in a field in the argument
# structure to indicate what should happen. They are not allowed to destroy
# the object.
# channel_join, user_add and user_nickchange may destroy the object, by
# setting the pointer in the argument structure to NULL, deleting the object
# from Atheme's state and sending an appropriate message to ircd. Note that
# channel_join may kick the user but may not clear the channel.
# Most other hooks may not destroy the object or prevent the action.
#
# Current list of hooks
#
# Name             Argument type
# (main)
config_purge       void
config_ready       void
db_write           database_handle_t *

# XXX: for groupserv.  remove when we have proper dependency resolution in opensex.
db_write_pre_ca    database_handle_t *

db_saved           void
shutdown           void
# (ircd)
channel_add        channel_t *
channel_delete     channel_t *
channel_tschange   channel_t *
channel_join       hook_channel_joinpart_t *
channel_part       hook_channel_joinpart_t *
channel_topic      channel_t *
channel_can_change_topic  hook_channel_topic_check_t *
channel_message    hook_cmessage_data_t *
server_add         server_t *
server_eob         server_t *
server_delete      hook_server_delete_t *
user_add           hook_user_nick_t *
user_delete        user_t *
user_nickchange    hook_user_nick_t *
user_away          user_t *
user_deoper        user_t *
user_oper          user_t *
# (services)
channel_akick_add  chanacs_t *
channel_can_register hook_channel_register_check_t *
channel_drop       mychan_t *
channel_info       hook_channel_req_t *
channel_register   hook_channel_req_t *
channel_check_expire  hook_expiry_req_t *
nick_can_register  hook_user_register_check_t *
nick_group         hook_user_req_t *
nick_check         user_t *
nick_enforce       hook_nick_enforce_t *
nick_ungroup       hook_user_req_t *
nick_check_expire  hook_expiry_req_t *
sasl_input         sasl_message_t *
service_introduce  service_t *
user_can_register  hook_user_register_check_t *
user_drop          myuser_t *
user_identify      user_t *
user_info          hook_user_req_t *
user_register      myuser_t *
user_verify_register  hook_user_req_t *
user_check_expire  hook_expiry_req_t *
user_rename        hook_user_rename_t *
myuser_delete      myuser_t *
metadata_change    hook_metadata_change_t *
channel_pick_successor	hook_channel_succession_req_t *
grant_channel_access	user_t *