X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fcommon.h;h=f12b5e4d73b659503e3f7d959e4e1fd4cbba1a3d;hb=96a9cd4acc079a5d070db9d83e80f551afeda4e8;hp=f6a8e19a68843b71acec79896d5592dc41e244ad;hpb=ae63361fe92090051cb08f2e6ad49d8dd135b3eb;p=collectd.git diff --git a/src/common.h b/src/common.h index f6a8e19a..f12b5e4d 100644 --- a/src/common.h +++ b/src/common.h @@ -1,21 +1,19 @@ /** * collectd - src/common.h - * Copyright (C) 2005,2006 Florian octo Forster + * Copyright (C) 2005-2007 Florian octo Forster * - * This program is free software; you can redistribute it and/ - * or modify it under the terms of the GNU General Public Li- - * cence as published by the Free Software Foundation; either - * version 2 of the Licence, or any later version. + * 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; only version 2 of the License is applicable. * - * This program is distributed in the hope that it will be use- - * ful, but WITHOUT ANY WARRANTY; without even the implied war- - * ranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU General Public Licence for more details. + * 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 - * Licence along with this program; if not, write to the Free - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, - * USA. + * 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 St, Fifth Floor, Boston, MA 02110-1301 USA * * Authors: * Florian octo Forster @@ -26,6 +24,11 @@ #define COMMON_H #include "collectd.h" +#include "plugin.h" + +#if HAVE_PWD_H +# include +#endif #define sfree(ptr) \ if((ptr) != NULL) { \ @@ -33,9 +36,12 @@ } \ (ptr) = NULL +#define STATIC_ARRAY_SIZE(a) (sizeof (a) / sizeof (*(a))) + void sstrncpy(char *d, const char *s, int len); char *sstrdup(const char *s); void *smalloc(size_t size); +char *sstrerror (int errnum, char *buf, size_t buflen); /* * NAME @@ -43,7 +49,8 @@ void *smalloc(size_t size); * * DESCRIPTION * Reads exactly `n' bytes or failes. Syntax and other behavior is analogous - * to `read(2)'. + * to `read(2)'. If EOF is received the file descriptor is closed and an + * error is returned. * * PARAMETERS * `fd' File descriptor to write to. @@ -141,15 +148,37 @@ int strjoin (char *dst, size_t dst_len, char **fields, size_t fields_num, const */ int escape_slashes (char *buf, int buf_len); +int strsubstitute (char *str, char c_from, char c_to); + /* FIXME: `timeval_sub_timespec' needs a description */ int timeval_sub_timespec (struct timeval *tv0, struct timeval *tv1, struct timespec *ret); -int rrd_update_file (char *host, char *file, char *values, - char **ds_def, int ds_num); +int check_create_dir (const char *file_orig); #ifdef HAVE_LIBKSTAT int get_kstat (kstat_t **ksp_ptr, char *module, int instance, char *name); long long get_kstat_value (kstat_t *ksp, char *name); #endif +unsigned long long ntohll (unsigned long long n); +unsigned long long htonll (unsigned long long n); + +int format_name (char *ret, int ret_len, + const char *hostname, + const char *plugin, const char *plugin_instance, + const char *type, const char *type_instance); +#define FORMAT_VL(ret, ret_len, vl, ds) \ + format_name (ret, ret_len, (vl)->host, (vl)->plugin, (vl)->plugin_instance, \ + (ds)->type, (vl)->type_instance) + +int parse_identifier (char *str, char **ret_host, + char **ret_plugin, char **ret_plugin_instance, + char **ret_type, char **ret_type_instance); +int parse_values (char *buffer, value_list_t *vl, const data_set_t *ds); + +#if !HAVE_GETPWNAM_R +int getpwnam_r (const char *name, struct passwd *pwbuf, char *buf, + size_t buflen, struct passwd **pwbufp); +#endif + #endif /* COMMON_H */