/*
 *  Copyright (c) 2009  Roy Keene
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy of
 * this software and associated documentation files (the "Software"), to deal in
 * the Software without restriction, including without limitation the rights to
 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
 * of the Software, and to permit persons to whom the Software is furnished to do
 * so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

#ifndef TUNNELIT_HELPER_H
#  define TUNNELIT_HELPER_H 1

#  ifdef HAVE_CONFIG_H
#    include "config.h"
#  endif /* HAVE_CONFIG_H */

#  ifdef HAVE_STDIO_H
#    include <stdio.h>
#  endif /* HAVE_STDIO_H */

#  ifdef DEBUG
#    undef NDEBUG
#    define DEBUG_LOG(y, ...) { fprintf(stderr, "%s:%i:%s(): %s: ", __FILE__, __LINE__, __func__, y); fprintf(stderr, __VA_ARGS__); fprintf(stderr, "\n"); }
#    define PERROR(x) { fprintf(stderr, "%s:%i:%s(): ", __FILE__, __LINE__, __func__); perror(x); }
#    define ERROR_LOG(...) DEBUG_LOG("error", __VA_ARGS__)
#    define WARNING_LOG(...) DEBUG_LOG("warning", __VA_ARGS__)
#  else
#    define NDEBUG 1
#    define DEBUG_LOG(y, ...) /**/
#    define PERROR(x) perror(x)
#    define ERROR_LOG(...) { fprintf(stderr, "error: "); fprintf(stderr, __VA_ARGS__); fprintf(stderr, "\n"); }
#    define WARNING_LOG(...) { fprintf(stderr, "warning: "); fprintf(stderr, __VA_ARGS__); fprintf(stderr, "\n"); }
#  endif /* DEBUG */
#endif /* TUNNELIT_HELPER_H */
