/usr/include/syslog-ng/compat/compat.h is in syslog-ng-dev 3.8.1-10.
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 | /*
* Copyright (c) 2002-2013 Balabit
* Copyright (c) 1998-2012 Balázs Scheidler
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
* As an additional exemption you are allowed to compile & link against the
* OpenSSL libraries as published by the OpenSSL project. See the file
* COPYING for details.
*
*/
/*
* The compat subdirectory is a placeholder for missing functionality on
* various platforms. Here are the rules to follow when a specific platform
* lacks a given functionality.
*
* NOTE: compat is the place for simple functions and fixups that should
* have been defined by the system but isn't for some reason (old version,
* weird platform etc). It is not the place for extensive logic, complex
* implementations and so on. It is a strong indicator that we are doing
* something wrong if a .c file in compat is more than a 100 lines. For
* those, a proper syslog-ng style API with several implementations is the
* way to go.
*
* NOTE/2: please don't implement dummy, empty functions for things that
* make no sense on a specific platforms. In that case, please modify the
* call-site instead. Whenever you read a call-site of code that resides in
* compat it shouldn't misguide you that it doesn't do anything. For these
* changing the call-site is better.
*
* File organization, call sites:
*
* 1) Add a header for that subsystem under lib/compat, this should in turn
* include "compat/compat.h" first, and then add all headers required by
* the interface itself.
*
* 2) compat.h will take care about including <config.h> no code under
* compat should do the same.
*
* 3) Add the implementation to one or more .c files. If the functions are
* unrelated, it's preferred to have a separate .c file for each, with a
* single header. In other cases you can simply use the same name for
* the .c as you did for the .h
*
* 4) call sites should include compat/XXXX.h, preferably _instead_ of the
* system header that defines the given functionality. The compat header
* will include the required system headers anyway, no need to do that
* multiple times.
*
* 5) compat.h shouldn't be included by call-sites directly.
*
* If a function is missing on a set of platforms, they should be named as
* POSIX named them (if they are standard), or if not, they should be named
* as on Linux.
*/
#ifndef COMPAT_COMPAT_H_INCLUDED
#define COMPAT_COMPAT_H_INCLUDED
#include <syslog-ng-config.h>
#endif
|