mirror of
https://git.proxmox.com/git/proxmox-spamassassin
synced 2025-04-29 23:46:01 +00:00
132 lines
5.6 KiB
C
132 lines
5.6 KiB
C
/* <@LICENSE>
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright ownership.
|
|
* The ASF licenses this file to you under the Apache License, Version 2.0
|
|
* (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at:
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
* </@LICENSE>
|
|
*/
|
|
|
|
#ifndef UTILS_H
|
|
#define UTILS_H
|
|
|
|
#define UNUSED_VARIABLE(v) ((void)(v))
|
|
|
|
#include <stddef.h>
|
|
|
|
extern int libspamc_timeout; /* default timeout in seconds */
|
|
extern int libspamc_connect_timeout; /* Sep 8, 2008 mrgus: default connect timeout in seconds */
|
|
|
|
#ifdef SPAMC_SSL
|
|
#include <openssl/crypto.h>
|
|
#include <openssl/pem.h>
|
|
#include <openssl/ssl.h>
|
|
#include <openssl/err.h>
|
|
#else
|
|
typedef int SSL; /* fake type to avoid conditional compilation */
|
|
typedef int SSL_CTX;
|
|
typedef int SSL_METHOD;
|
|
#endif
|
|
|
|
#ifdef _WIN32
|
|
#include <winsock.h>
|
|
/*
|
|
* BSD-compatible socket error codes for Win32
|
|
*/
|
|
#undef EWOULDBLOCK /* override definition in errno.h */
|
|
#define EWOULDBLOCK WSAEWOULDBLOCK
|
|
#undef EINPROGRESS /* override definition in errno.h */
|
|
#define EINPROGRESS WSAEINPROGRESS
|
|
#undef EALREADY /* override definition in errno.h */
|
|
#define EALREADY WSAEALREADY
|
|
#undef ENOTSOCK /* override definition in errno.h */
|
|
#define ENOTSOCK WSAENOTSOCK
|
|
#undef EDESTADDRREQ /* override definition in errno.h */
|
|
#define EDESTADDRREQ WSAEDESTADDRREQ
|
|
#undef EMSGSIZE /* override definition in errno.h */
|
|
#define EMSGSIZE WSAEMSGSIZE
|
|
#undef EPROTOTYPE /* override definition in errno.h */
|
|
#define EPROTOTYPE WSAEPROTOTYPE
|
|
#undef ENOPROTOOPT /* override definition in errno.h */
|
|
#define ENOPROTOOPT WSAENOPROTOOPT
|
|
#undef EPROTONOSUPPORT /* override definition in errno.h */
|
|
#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
|
|
#undef ESOCKTNOSUPPORT /* override definition in errno.h */
|
|
#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
|
|
#undef EOPNOTSUPP /* override definition in errno.h */
|
|
#define EOPNOTSUPP WSAEOPNOTSUPP
|
|
#undef EPFNOSUPPORT /* override definition in errno.h */
|
|
#define EPFNOSUPPORT WSAEPFNOSUPPORT
|
|
#undef EAFNOSUPPORT /* override definition in errno.h */
|
|
#define EAFNOSUPPORT WSAEAFNOSUPPORT
|
|
#undef EADDRINUSE /* override definition in errno.h */
|
|
#define EADDRINUSE WSAEADDRINUSE
|
|
#undef EADDRNOTAVAIL /* override definition in errno.h */
|
|
#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
|
|
#undef ENETDOWN /* override definition in errno.h */
|
|
#define ENETDOWN WSAENETDOWN
|
|
#undef ENETUNREACH /* override definition in errno.h */
|
|
#define ENETUNREACH WSAENETUNREACH
|
|
#undef ENETRESET /* override definition in errno.h */
|
|
#define ENETRESET WSAENETRESET
|
|
#undef ECONNABORTED /* override definition in errno.h */
|
|
#define ECONNABORTED WSAECONNABORTED
|
|
#undef ECONNRESET /* override definition in errno.h */
|
|
#define ECONNRESET WSAECONNRESET
|
|
#undef ENOBUFS /* override definition in errno.h */
|
|
#define ENOBUFS WSAENOBUFS
|
|
#undef EISCONN /* override definition in errno.h */
|
|
#define EISCONN WSAEISCONN
|
|
#undef ENOTCONN /* override definition in errno.h */
|
|
#define ENOTCONN WSAENOTCONN
|
|
#undef ESHUTDOWN /* override definition in errno.h */
|
|
#define ESHUTDOWN WSAESHUTDOWN
|
|
#undef ETOOMANYREFS /* override definition in errno.h */
|
|
#define ETOOMANYREFS WSAETOOMANYREFS
|
|
#undef ETIMEDOUT /* override definition in errno.h */
|
|
#define ETIMEDOUT WSAETIMEDOUT
|
|
#undef ECONNREFUSED /* override definition in errno.h */
|
|
#define ECONNREFUSED WSAECONNREFUSED
|
|
#undef ELOOP /* override definition in errno.h */
|
|
#define ELOOP WSAELOOP
|
|
/* #define ENAMETOOLONG WSAENAMETOOLONG */
|
|
#define EHOSTDOWN WSAEHOSTDOWN
|
|
#undef EHOSTUNREACH /* override definition in errno.h */
|
|
#define EHOSTUNREACH WSAEHOSTUNREACH
|
|
/* #define ENOTEMPTY WSAENOTEMPTY */
|
|
#define EPROCLIM WSAEPROCLIM
|
|
#define EUSERS WSAEUSERS
|
|
#define EDQUOT WSAEDQUOT
|
|
#define ESTALE WSAESTALE
|
|
#define EREMOTE WSAEREMOTE
|
|
|
|
/* NOTE: these are not errno constants in UNIX! */
|
|
#define HOST_NOT_FOUND WSAHOST_NOT_FOUND
|
|
#define TRY_AGAIN WSATRY_AGAIN
|
|
#define NO_RECOVERY WSANO_RECOVERY
|
|
#define NO_DATA WSANO_DATA
|
|
|
|
#endif
|
|
|
|
int fd_timeout_read(int fd, char fdflag, void *, size_t);
|
|
int ssl_timeout_read(SSL * ssl, void *, int);
|
|
|
|
/* uses size_t instead of socket_t because socket_t not defined on some platforms */
|
|
int timeout_connect (int sockfd, const struct sockaddr *serv_addr, size_t addrlen);
|
|
|
|
/* these are fd-only, no SSL support */
|
|
int full_read(int fd, char fdflag, void *buf, int min, int len);
|
|
int full_read_ssl(SSL * ssl, unsigned char *buf, int min, int len);
|
|
int full_write(int fd, char fdflag, const void *buf, int len);
|
|
|
|
#endif
|