/usr/include/proftpd/var.h is in proftpd-dev 1.3.5e-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 94 95 96 97 98 99 100 101 102 103 104 105 106 | /*
* ProFTPD - FTP server daemon
* Copyright (c) 2004-2011 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.
*/
/* Variables API definition
* $Id: var.h,v 1.4 2011-05-23 20:35:35 castaglia Exp $
*/
#ifndef PR_VAR_H
#define PR_VAR_H
/* Deletes the named variable from the Variables table. Returns 0 on
* success, -1 on failure (e.g. the given variable was not in the table).
*/
int pr_var_delete(const char *name);
/* Returns TRUE if the given variable name exists in the Variables table,
* FALSE if not. A return value of -1 indicates an error, in which case
* errno will be set appropiately.
*/
int pr_var_exists(const char *name);
/* Return the string associated with the given variable name. Returns NULL
* if there was an error, such as no matching value set for the given name,
* or no string set for that variable.
*/
const char *pr_var_get(const char *name);
/* Returns the next name in the Variables table; NULL is returned if there
* are no more variable names to return. If desc is not NULL, it will be set
* to the description associated with the given variable. This function is
* primarily for use in iterating through the current list of registered
* names, for informational purposes.
*/
const char *pr_var_next(const char **desc);
/* Rewinds the iterator used by pr_var_next() to the start of the list.
*/
void pr_var_rewind(void);
/* Set a value to be associated with the given variable name. Variable
* names MUST start with a '%' character. Variable names associated with
* contributed/third-party modules should be of the format "%{name}". The
* core proftpd engine reserves the non-"%{var}" syntax for future use.
*
* A descriptive string can also be given, as a sort of informative label for
* the purpose of the variable being set.
*
* The type of value being set must be indicated. A type of PR_VAR_TYPE_STR
* indicates that val should be handled as a NUL-terminated string.
* The PR_VAR_TYPE_FUNC type indicates that val is a function pointer,
* implementing "virtual" strings. The function prototype for a
* PR_VAR_TYPE_FUNC val is:
*
* const char *(*func)(void *data, size_t datasz);
*
* If not NULL, the data and datasz parameters will be passed to the function
* pointer/callbacks. These parameters not useful when setting plain strings
* or numbers.
*
* The values associated with the given name are kept in memory allocated
* from the given pool; it is therefore the caller's responsibility to
* make sure the pool used has a sufficient lifetime for retaining the
* values for use by consumers of the Variables API.
*
* If there is a value already associated with the given name, its value
* is overwritten with the given values. The pr_var_exists() function can
* be used to detect this case. The pr_var_delete() function is used
* to explicitly remove variables from the table. However, since the memory
* is allocated from the pool of the caller of pr_var_set(), deleting
* a variable from the table does not free that memory; it is the
* pr_var_set() caller's responsibility to recover memory.
*
* Returns -1 if there was an error processing the arguments (e.g. an
* invalid type, NULL pool, name, or value, or if val is non-NULL but datasz
* is zero).
*/
int pr_var_set(pool *p, const char *name, const char *desc,
int type, void *val, void *data, size_t datasz);
#define PR_VAR_TYPE_STR 1
#define PR_VAR_TYPE_FUNC 2
int var_init(void);
int var_free(void);
#endif /* PR_VAR_H */
|