Changeset c4546c715aee6db46888e7ab0bb87fd2ce5357c6

Show
Ignore:
Timestamp:
06/18/08 03:53:18 (6 years ago)
Author:
Theo Schlossnagle <jesus@omniti.com>
git-committer:
Theo Schlossnagle <jesus@omniti.com> 1213761198 +0000
git-parent:

[ab6d943800276f521272e785e85b9ea7130e92f1]

git-author:
Theo Schlossnagle <jesus@omniti.com> 1213761198 +0000
Message:

I sure hope this doesn't break other platforms too badly. Solaris support sans the eventer... untested, of course. refs #32.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • configure.in

    rf318e95 rc4546c7  
    2828fi 
    2929 
    30 CPPFLAGS='-I$(top_srcdir)/src' 
     30CPPFLAGS="$CPPFLAGS "'-I$(top_srcdir)/src' 
    3131 
    3232case $host in 
     
    3939        ;; 
    4040*-*-solaris*) 
     41        AC_MSG_CHECKING([32 or 64 bit Solaris assembly]) 
     42        if test -n "`echo $CFLAGS | grep m64`"; then 
     43                AC_MSG_RESULT([64]) 
     44                ATOMIC_OBJS="noit_atomic_sol_x86_64.o" 
     45        else 
     46                AC_MSG_RESULT([32]) 
     47                ATOMIC_OBJS="noit_atomic_sol_x86_32.o" 
     48        fi 
    4149        PICFLAGS="-Kpic" 
    4250        MODULELD="$CC -G" 
     
    4452        MODULEEXT=so 
    4553        RLDFLAG="-R" 
     54        WHOLE_ARCHIVE="-Wl,-z -Wl,allextract" 
     55        NOWHOLE_ARCHIVE="-Wl,-z -Wl,defaultextract" 
    4656        ;; 
    4757*-*-openbsd*) 
     
    8191AC_SUBST(WHOLE_ARCHIVE) 
    8292AC_SUBST(NOWHOLE_ARCHIVE) 
     93AC_SUBST(ATOMIC_OBJS) 
    8394AC_DEFINE_UNQUOTED(MODULEEXT, "$MODULEEXT", [module extension]) 
    8495 
     
    132143) 
    133144 
     145old_CFLAGS=$CFLAGS 
    134146AC_MSG_CHECKING([libpq includes]) 
    135147PQICFLAGS=`pg_config --includedir` 
     
    152164        [ AC_MSG_ERROR([Cannot compile/link against libpq]) ] 
    153165) 
     166PGCFLAGS=$CFLAGS 
     167AC_SUBST(PGCFLAGS) 
    154168LIBS="$SAVELIBS" 
     169CFLAGS=$old_CFLAGS 
    155170 
    156171######## 
     
    237252 
    238253AC_FUNC_STRFTIME 
    239 AC_CHECK_FUNC(ssetugid strlcpy strnstrn
     254AC_CHECK_FUNC(ssetugid strlcpy strnstrn openpty
    240255 
    241256# Checks for header files. 
     
    244259                 ctype.h unistd.h time.h sys/stat.h sys/event.h libkern/OSAtomic.h \ 
    245260                 term.h termio.h termios.h curses.h sys/cdefs.h pwd.h netinet/in_systm.h \ 
    246                  sys/ioctl_compat.h util.h sys/time.h sys/mman.h) 
     261                 sys/ioctl_compat.h sys/filio.h util.h sys/time.h sys/mman.h \ 
     262                 stropts.h sys/stream.h) 
    247263 
    248264AC_CACHE_CHECK([for epoll support], ac_cv_have_epoll, [ 
     
    274290        AC_DEFINE_UNQUOTED(DEFAULT_EVENTER, "kqueue") 
    275291        have_kqueue=1 
     292fi 
     293 
     294AC_CACHE_CHECK([for Solaris ports support], ac_cv_have_ports, [ 
     295        AC_TRY_LINK( 
     296                [ #include <port.h> ], 
     297                [ u_int a; a = port_create(); ], 
     298                [ ac_cv_have_ports="yes" ], 
     299                [ ac_cv_have_ports="no" ] 
     300        ) 
     301]) 
     302if test "x$ac_cv_have_ports" = "xyes" ; then 
     303        AC_DEFINE(HAVE_PORTS) 
     304        EVENTER_OBJS="$EVENTER_OBJS eventer_ports_impl.o" 
     305        AC_DEFINE_UNQUOTED(DEFAULT_EVENTER, "ports") 
     306        have_ports=1 
    276307fi 
    277308 
  • src/Makefile.in

    rf318e95 rc4546c7  
    22CPPFLAGS=@CPPFLAGS@ 
    33CFLAGS=@CFLAGS@ 
     4PGCFLAGS=@PGCFLAGS@ 
    45LDFLAGS=@LDFLAGS@ 
    56AR=@AR@ 
     
    8586        @echo "- linking $@" 
    8687 
     88stratcon_datastore.o: 
     89        @$(CC) $(CPPFLAGS) $(PGCFLAGS) -c $< 
     90        @echo "- compiling $<" 
     91 
    8792.c.o: 
    8893        @$(CC) $(CPPFLAGS) $(CFLAGS) -c $< 
  • src/eventer/eventer.c

    ref59bc7 rc4546c7  
    3232  void **fptr = malloc(sizeof(*fptr)); 
    3333  *fptr = (void *)f; 
    34   noit_hash_replace(&__name_to_func, strdup(name), strlen(name), f, free, NULL); 
     34  noit_hash_replace(&__name_to_func, strdup(name), strlen(name), (void *)f, free, NULL); 
    3535  noit_hash_replace(&__func_to_name, (char *)fptr, sizeof(*fptr), strdup(name), 
    3636                    free, free); 
  • src/modules/Makefile.in

    r5bf243f rc4546c7  
    55CPPFLAGS=@CPPFLAGS@ 
    66CFLAGS=@CFLAGS@ 
     7PGCFLAGS=@PGCFLAGS@ 
    78SHCFLAGS=@SHCFLAGS@ 
    89MODULELD=@MODULELD@ 
     
    3940        @echo "- linking $@" 
    4041 
     42postgres.lo:    postgres.c 
     43        @$(CC) $(CPPFLAGS) $(SHCFLAGS) $(PGCFLAGS) -c $< -o $@ 
     44        @echo "- compiling $<" 
     45 
    4146http.@MODULEEXT@:       http.lo 
    4247        @$(MODULELD) $(LDFLAGS) -o $@ http.lo @SERFLIBS@ ../serf/.libs/libserf-0.o -lz -lssl -lcrypto 
     
    5560        @echo "- linking $@" 
    5661 
     62ping_icmp.@MODULEEXT@:  ping_icmp.lo 
     63        @$(MODULELD) $(LDFLAGS) -o $@ $< 
     64        @echo "- linking $@" 
     65 
    5766.lo.@MODULEEXT@: 
    5867        @$(MODULELD) $(LDFLAGS) -o $@ $< 
  • src/modules/lua.c

    r53ed0eb rc4546c7  
    1313#include "lua_noit.h" 
    1414 
     15#include <alloca.h> 
    1516#include <assert.h> 
    1617 
     
    382383    lua_pop(L, 1); 
    383384    return rv; 
    384   } else { 
    385     lua_pop(L,1); 
    386     noitL(nlerr, "%s.onload must return a integer\n", lmc->object); 
    387     return -1; 
    388   } 
    389   return 0; 
     385  } 
     386  lua_pop(L,1); 
     387  noitL(nlerr, "%s.onload must return a integer\n", lmc->object); 
     388  return -1; 
    390389} 
    391390#define LMC_DECL(L, mod) \ 
  • src/modules/lua_noit.c

    ra516f75 rc4546c7  
    2121#include <netinet/in.h> 
    2222#include <arpa/inet.h> 
     23#ifdef HAVE_SYS_FILIO_H 
     24#include <sys/filio.h> 
     25#endif 
    2326 
    2427struct nl_slcl { 
  • src/modules/ping_icmp.c

    rc39dbcd rc4546c7  
    1212#include <fcntl.h> 
    1313#include <sys/ioctl.h> 
     14#ifdef HAVE_SYS_FILIO_H 
     15#include <sys/filio.h> 
     16#endif 
    1417#ifdef HAVE_NETINET_IN_SYSTM_H 
    1518#include <netinet/in_systm.h> 
  • src/noit_config.h.in

    rf7f34e8 rc4546c7  
    4949#undef HAVE_TERMIOS_H 
    5050#undef HAVE_SYS_IOCTL_COMPAT_H 
     51#undef HAVE_SYS_FILIO_H 
     52#undef HAVE_STROPTS_H 
     53#undef HAVE_SYS_STREAM_H 
    5154#undef HAVE_UTIL_H 
    5255#undef HAVE_CURSES_H 
     
    97100#undef HAVE_STRLCPY 
    98101#undef HAVE_STRNSTRN 
     102#undef HAVE_OPENPTY 
    99103 
    100104/* Kernel kqueue() support */ 
     
    225229#endif 
    226230 
    227 #endif 
     231#ifndef PATH_MAX 
     232#define PATH_MAX MAXPATHLEN 
     233#endif 
     234 
     235#endif 
  • src/noit_console.c

    ra504323 rc4546c7  
    88#include <stdio.h> 
    99#include <unistd.h> 
     10#include <alloca.h> 
    1011#include <errno.h> 
    1112#include <sys/ioctl.h> 
     13#include <sys/types.h> 
     14#include <sys/stat.h> 
     15#include <fcntl.h> 
     16#ifdef HAVE_STROPTS_H 
     17#include <stropts.h> 
     18#endif 
     19#ifdef HAVE_SYS_STREAM_H 
     20#include <sys/stream.h> 
     21#endif 
    1222#ifdef HAVE_TERMIOS_H 
    1323#include <termios.h> 
     
    259269 
    260270int 
     271allocate_pty(int *master, int *slave) { 
     272#ifdef HAVE_OPENPTY 
     273    return openpty(master, slave, NULL, NULL, NULL); 
     274#else 
     275    /* STREAMS... sigh */ 
     276    char   *slavename; 
     277    extern char *ptsname(); 
     278 
     279    *master = open("/dev/ptmx", O_RDWR);  /* open master */ 
     280    if(*master < 0) return -1; 
     281    grantpt(*master);                     /* change permission of   slave */ 
     282    unlockpt(*master);                    /* unlock slave */ 
     283    slavename = ptsname(*master);         /* get name of slave */ 
     284    *slave = open(slavename, O_RDWR);    /* open slave */ 
     285    if(*slave < 0) { 
     286      close(*master); 
     287      *master = -1; 
     288      return -1; 
     289    } 
     290    ioctl(*slave, I_PUSH, "ptem");       /* push ptem */ 
     291    ioctl(*slave, I_PUSH, "ldterm");     /* push ldterm*/ 
     292    return 0; 
     293#endif 
     294} 
     295 
     296int 
    261297noit_console_handler(eventer_t e, int mask, void *closure, 
    262298                     struct timeval *now) { 
     
    282318    int on = 1; 
    283319    ncct->e = e; 
    284     if(openpty(&ncct->pty_master, &ncct->pty_slave, NULL, NULL, NULL) || 
     320    if(allocate_pty(&ncct->pty_master, &ncct->pty_slave) || 
    285321       ioctl(ncct->pty_master, FIONBIO, &on)) { 
    286322      nc_printf(ncct, "Failed to open pty: %s\n", strerror(errno)); 
  • src/noit_console_telnet.c

    rfc879b8 rc4546c7  
    4141#include <sys/ioctl_compat.h> 
    4242#endif 
     43#define TELOPTS 
    4344#include <arpa/telnet.h> 
    4445#include "noit_console.h" 
  • src/noit_console_telnet.h

    rfc879b8 rc4546c7  
    5050#include <termios.h> 
    5151#endif 
     52#ifdef HAVE_CURSES_H 
     53#include <curses.h> 
     54#endif 
     55#ifdef HAVE_TERMIO_H 
     56#include <termio.h> 
     57#endif 
    5258#ifdef HAVE_TERM_H 
    5359#include <term.h> 
    5460#endif 
    5561 
    56 #if !defined(__linux__) 
     62#if !defined(__linux__) && !defined(__sun) 
    5763/* At least _I_ can't get LINUMODE working on Linux */ 
    5864#define LINEMODE 1 
  • src/noit_defines.h

    ra504323 rc4546c7  
    5555#endif 
    5656 
     57#ifndef MIN 
     58#define MIN(x,y)  ((x) < (y) ? (x) : (y)) 
    5759#endif 
     60#ifndef MAX 
     61#define MAX(x,y)  ((x) > (y) ? (x) : (y)) 
     62#endif 
     63#ifndef SUN_LEN 
     64#define SUN_LEN(ptr) (sizeof(*(ptr)) - sizeof((ptr)->sun_path) + strlen((ptr)->sun_path)) 
     65#endif 
     66 
     67#endif 
  • src/noit_listener.h

    r1f7cb6f rc4546c7  
    1414#include <sys/socket.h> 
    1515#include <sys/ioctl.h> 
     16#ifdef HAVE_SYS_FILIO_H 
     17#include <sys/filio.h> 
     18#endif 
    1619#include <netinet/in.h> 
    1720 
  • src/stratcon_jlog_streamer.c

    rc9fd28d rc4546c7  
    1818#include <sys/types.h> 
    1919#include <sys/socket.h> 
     20#ifdef HAVE_SYS_FILIO_H 
     21#include <sys/filio.h> 
     22#endif 
    2023#include <netinet/in.h> 
    2124#include <sys/un.h> 
  • src/utils/Makefile.in

    rb0c153f rc4546c7  
    1010top_srcdir=@top_srcdir@ 
    1111 
    12 OBJS=noit_hash.o noit_skiplist.o noit_log.o noit_sem.o noit_str.o 
     12OBJS=noit_hash.o noit_skiplist.o noit_log.o noit_sem.o noit_str.o \ 
     13        @ATOMIC_OBJS@ 
    1314 
    1415all:    libnoit_utils.a 
     
    2021        @$(RANLIB) $@ 
    2122 
     23noit_atomic_sol_x86_32.o:       noit_atomic_sol.s 
     24        as -P -o $@ noit_atomic_sol.s 
     25 
     26noit_atomic_sol_x86_64.o:       noit_atomic_sol.s 
     27        as -P -xarch=generic64 -o $@ noit_atomic_sol.s 
     28 
    2229.c.o: 
    2330        @$(CC) $(CPPFLAGS) $(CFLAGS) -c $< 
  • src/utils/noit_atomic.h

    r67a56d3 rc4546c7  
    4141#error unsupported pointer width 
    4242#endif 
     43 
    4344 
    4445typedef noit_atomic32_t noit_spinlock_t; 
     
    8990}; 
    9091#endif 
     92 
     93static inline void noit_spinlock_lock(volatile noit_spinlock_t *lock) { 
     94  while(noit_atomic_cas32(lock, 1, 0) != 0); 
     95} 
     96static inline void noit_spinlock_unlock(volatile noit_spinlock_t *lock) { 
     97  while(noit_atomic_cas32(lock, 0, 1) != 1); 
     98} 
     99static inline int noit_spinlock_trylock(volatile noit_spinlock_t *lock) { 
     100  return (noit_atomic_cas32(lock, 1, 0) == 0); 
     101} 
     102 
     103#elif (defined(__amd64) || defined(__i386)) && (defined(__SUNPRO_C) || defined(__SUNPRO_CC)) 
     104 
     105typedef noit_atomic32_t noit_spinlock_t; 
     106 
     107extern noit_atomic32_t noit_atomic_cas32(volatile noit_atomic32_t *mem, 
     108        volatile noit_atomic32_t newval, volatile noit_atomic32_t cmpval); 
     109extern noit_atomic64_t noit_atomic_cas64(volatile noit_atomic64_t *mem, 
     110        volatile noit_atomic64_t newval, volatile noit_atomic64_t cmpval); 
    91111 
    92112static inline void noit_spinlock_lock(volatile noit_spinlock_t *lock) { 
  • src/utils/noit_skiplist.c

    ref59bc7 rc4546c7  
    1919#include <stdlib.h> 
    2020#include <string.h> 
     21#include <alloca.h> 
    2122#include <assert.h> 
    2223