File: hooktypes.in

package info (click to toggle)
atheme-services 7.2.12-2.1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 17,256 kB
  • sloc: ansic: 95,899; sh: 8,462; php: 5,032; perl: 3,327; makefile: 1,279; sed: 16; ruby: 15; python: 3
file content (93 lines) | stat: -rw-r--r-- 3,405 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# 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_mode       hook_channel_mode_t *
channel_mode_change   hook_channel_mode_change_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_delete_info   hook_user_delete_t *
user_nickchange    hook_user_nick_t *
user_away          user_t *
user_deoper        user_t *
user_oper          user_t *
# (services)
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 *
channel_acl_change hook_channel_acl_req_t *
group_drop         mygroup_t *
group_register     mygroup_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_can_login     hook_user_login_check_t *
user_drop          myuser_t *
user_identify      user_t *
user_info          hook_user_req_t *
user_info_noexist  hook_info_noexist_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 *
user_sethost       user_t *
user_needforce     hook_user_needforce_t *
myuser_delete      myuser_t *
metadata_change    hook_metadata_change_t *
host_request       hook_host_request_t *
channel_pick_successor	hook_channel_succession_req_t *
channel_succession hook_channel_succession_req_t *
grant_channel_access	user_t *
operserv_info	  sourceinfo_t *
module_load        hook_module_load_t *
myentity_find      hook_myentity_req_t *
# (sasl)
sasl_may_impersonate	hook_sasl_may_impersonate_t *