/usr/include/proftpd
NameSizeModeActions
ascii.h26740644editdlrm
auth.h63810644editdlrm
base.h34970644editdlrm
bindings.h80270644editdlrm
buildstamp.h500644editdlrm
ccan-json.h36770644editdlrm
child.h15110644editdlrm
class.h30960644editdlrm
cmd.h44630644editdlrm
compat.h13240644editdlrm
conf.h39480644editdlrm
config.h366270644editdlrm
configdb.h58640644editdlrm
ctrls.h85240644editdlrm
data.h25820644editdlrm
default_paths.h30370644editdlrm
dirtree.h76480644editdlrm
display.h25140644editdlrm
encode.h37570644editdlrm
env.h19130644editdlrm
error.h188940644editdlrm
event.h35830644editdlrm
expr.h22090644editdlrm
feat.h13030644editdlrm
filter.h21130644editdlrm
fsio.h195280644editdlrm
ftp.h91960644editdlrm
glibc-glob.h72940644editdlrm
hanson-tpl.h45050644editdlrm
help.h12650644editdlrm
ident.h13340644editdlrm
inet.h53950644editdlrm
jot.h87360644editdlrm
json.h62820644editdlrm
lastlog.h16550644editdlrm
log.h68220644editdlrm
logfmt.h34440644editdlrm
memcache.h50560644editdlrm
mkhome.h15690644editdlrm
modules.h64740644editdlrm
mod_ctrls.h40580644editdlrm
mod_sftp.h109590644editdlrm
mod_tls.h64780644editdlrm
netacl.h25710644editdlrm
netaddr.h159990644editdlrm
netio.h81760644editdlrm
openbsd-blowfish.h29670644editdlrm
options.h85310644editdlrm
os.h73910644editdlrm
parser.h63510644editdlrm
pidfile.h13310644editdlrm
pool.h41380644editdlrm
pr-syslog.h35520644editdlrm
privs.h26130644editdlrm
proctitle.h16820644editdlrm
proftpd.h97270644editdlrm
random.h13250644editdlrm
redis.h159530644editdlrm
regexp.h37200644editdlrm
response.h31450644editdlrm
rlimit.h18730644editdlrm
scoreboard.h47600644editdlrm
session.h44300644editdlrm
sets.h19860644editdlrm
signals.h18790644editdlrm
stash.h21740644editdlrm
str.h57290644editdlrm
support.h44940644editdlrm
table.h118830644editdlrm
throttle.h12990644editdlrm
timers.h33700644editdlrm
trace.h24210644editdlrm
utf8.h14070644editdlrm
var.h44190644editdlrm
version.h16310644editdlrm
xferlog.h13740644editdlrm
Edit: /usr/include/proftpd/event.h (3583B)
/* * ProFTPD - FTP server daemon * Copyright (c) 2003-2016 The ProFTPD Project team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA. * * As a special exemption, The ProFTPD Project team and other respective * copyright holders give permission to link this program with OpenSSL, and * distribute the resulting executable, without including the source code for * OpenSSL in the source distribution. */ /* Event management */ #ifndef PR_EVENT_H #define PR_EVENT_H /* Register a handler for the given event. The registered handler * callback function takes two arguments: a pointer to some event-specific * data and a pointer to some user-defined data. This user-defined data * is set as the last argument in this registration function, and may be * NULL. * * The return value is zero if the registration succeeded, and -1 if * there was an error (in which case, errno will be set appropriately). * * Note that the registered event name is assumed to be a string constant; * the Event API stores a pointer to the given string, not a duplicate * of it. */ int pr_event_register(module *m, const char *event, void (*cb)(const void *, void *), void *user_data); /* Remove the given event handler from the event registration lists. The * return value is zero if successful, and -1 if there was an error (in * which case, errno will be set appropriately). * * If the module pointer is non-NULL, the event handler being unregistered * must have been registered by that module. If the event name is * non-NULL, then only the handler for that specific event is unregistered; * otherwise, all events for the given module will be unregistered. If the * callback pointer is non-NULL, the event handler being unregistered must be * that specific handler. * * This arrangement means that it is possible, though considered terribly * impolite, for the caller to unregister all handlers for a given event, * regardless of registree, using: * * pr_event_unregister(NULL, event_name, NULL); * * Although rare, there are cases where this kind of blanket unregistration * is necessary. More common will be the case where a module needs to * unregister all of its event listeners at once: * * pr_event_unregister(&my_module, NULL, NULL); */ int pr_event_unregister(module *m, const char *event, void (*cb)(const void *, void *)); /* Generate an event. The named event is dispatched to any handlers that * have registered an interest in handling this event. Any event-specific * data is sent to the registered handlers. */ void pr_event_generate(const char *event, const void *event_data); /* Returns the number of registered listeners for the given event, * or -1 (with errno set appropriately) if there was an error. */ int pr_event_listening(const char *event); /* Dump Events information. */ void pr_event_dump(void (*)(const char *, ...)); #endif /* PR_EVENT_H */