MESSAGE(SEND_ERROR "getopt.h is required to compile sarg")
ENDIF(!HAVE_GETOPT_H)
+# Windows need lib wsock32 and ws2_32
+IF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H)
+ CHECK_INCLUDE_FILE(winsock.h HAVE_WINSOCK_H)
+ CHECK_INCLUDE_FILE(ws2tcpip.h HAVE_WS2TCPIP_H)
+
+ FIND_LIBRARY(WSOCK_LIB NAMES wsock32 DOC "The winsock library")
+ IF(WSOCK_LIB)
+ TARGET_LINK_LIBRARIES(sarg wsock32)
+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES wsock32)
+ ENDIF(WSOCK_LIB)
+
+ FIND_LIBRARY(WSOCK2_LIB NAMES ws2_32 DOC "The winsock 2 library")
+ IF(WSOCK2_LIB)
+ TARGET_LINK_LIBRARIES(sarg ws2_32)
+ LIST(APPEND CMAKE_REQUIRED_LIBRARIES ws2_32)
+ ENDIF(WSOCK2_LIB)
+
+ ADD_DEFINITIONS(-DWINDOWS)
+ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+
CHECK_FUNCTION_EXISTS(bzero HAVE_BZERO)
CHECK_FUNCTION_EXISTS(backtrace HAVE_BACKTRACE)
CHECK_FUNCTION_EXISTS(symlink HAVE_SYMLINK)
CHECK_FUNCTION_EXISTS(lstat HAVE_LSTAT)
CHECK_FUNCTION_EXISTS(getnameinfo HAVE_GETNAMEINFO)
+CHECK_FUNCTION_EXISTS(inet_aton HAVE_INET_ATON)
# Find gd
CHECK_INCLUDE_FILE(gd.h HAVE_GD_H)
# MESSAGE("Cannot detect the size of your system's rlim_t type")
ENDIF(HAVE_RLIM_T)
-# Windows need lib wsock32
-IF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
- CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H)
- CHECK_INCLUDE_FILE(winsock.h HAVE_WINSOCK_H)
- FIND_LIBRARY(WSOCK_LIB NAMES wsock32 DOC "The winsock library")
- #check_library_exists(wsock32 "." HAVE_WSOCK)
- IF(WSOCK_LIB)
- #set_target_properties(sarg PROPERTIES LINK_FLAGS "${LINK_FLAGS} -lwsock32")
- TARGET_LINK_LIBRARIES(sarg wsock32)
- ENDIF(WSOCK_LIB)
- ADD_DEFINITIONS(-DWINDOWS)
-ENDIF(CMAKE_SYSTEM_NAME STREQUAL "Windows")
-
CHECK_FUNCTION_EXISTS(mkstemp HAVE_MKSTEMP)
IF(NOT HAVE_MKSTEMP)
# MingW provide mkstemps in libiberty but doesn't declare it in any header file
ENDIF(HAVE_WERROR_FORMAT_SECURITY)
ENDIF(ENABLE_EXTRA_PROTECT)
+# Compile sarg for debugging
+OPTION(ENABLE_DEBUG "Compile sarg with debugging symbols" OFF)
+IF(ENABLE_DEBUG)
+ GET_TARGET_PROPERTY(TMPCFLAGS sarg COMPILE_FLAGS)
+ SET_TARGET_PROPERTIES(sarg PROPERTIES COMPILE_FLAGS "${TMPCFLAGS} -g")
+ENDIF(ENABLE_DEBUG)
+
# Save the configuration for the project
CONFIGURE_FILE("${CMAKE_SOURCE_DIR}/include/config.h.in" "${CMAKE_BINARY_DIR}/config.h" @ONLY)
#cmakedefine HAVE_LIBGEN_H
#cmakedefine HAVE_STDBOOL_H
#cmakedefine HAVE_GETOPT_H
+#cmakedefine HAVE_WS2TCPIP_H
#cmakedefine IBERTY_LIB
#cmakedefine HAVE_SYMLINK
#cmakedefine HAVE_LSTAT
#cmakedefine HAVE_GETNAMEINFO
+#cmakedefine HAVE_INET_ATON
#define RLIM_STRING "@RLIM_STRING@"
#define ICONV_CONST @ICONV_CONST@
#include "include/conf.h"
#include "include/defs.h"
+#ifdef HAVE_WS2TCPIP_H
+#include <ws2tcpip.h> //define getnameinfo on windows
+#endif
void ip2name(char *ip,int ip_len)
{
struct hostent *hp;
char **p;
+#ifdef HAVE_INET_ATON
if (inet_aton(ip,&addr) == 0)
return;
+#else
+ addr.s_addr=inet_addr(ip);
+ if (addr.s_addr==-1) return;
+#endif
- hp = gethostbyaddr(&addr, sizeof (addr), AF_INET);
+ hp = gethostbyaddr((void *)&addr, sizeof (addr), AF_INET);
if (hp == NULL)
return;
exit(EXIT_FAILURE);
}
+ MemSize+=1;
if((excludecode=(char *) malloc(MemSize))==NULL) {
debuga(_("malloc error (%ld)\n"),MemSize);
exit(EXIT_FAILURE);
Stored=0;
while(fgets(data,sizeof(data),fp_in)!=NULL) {
if (data[0]=='#') continue;
- for (i=strlen(data)-1 ; i>=0 && (unsigned char)data[i]<=' ' ; i--) data[i]=0;
+ for (i=strlen(data)-1 ; i>=0 && (unsigned char)data[i]<=' ' ; i--) data[i]='\0';
if (i<0) continue;
- if (Stored+i+1>=MemSize) {
+ if (Stored+i+2>=MemSize) {
debuga(_("Too many codes to exclude in file %s\n"),ExcludeCodes);
break;
}