|  | @@ -7,10 +7,27 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  #include "orconfig.h"
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#ifndef HAVE_POLL_H
 | 
	
		
			
				|  |  | -#ifndef HAVE_SYS_POLL_H
 | 
	
		
			
				|  |  | +#define POLL_NO_WARN
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#if defined(HAVE_POLL_H)
 | 
	
		
			
				|  |  | +#include <poll.h>
 | 
	
		
			
				|  |  | +#elif defined(HAVE_SYS_POLL_H)
 | 
	
		
			
				|  |  | +#include <sys/poll.h>
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +/* If _POLL_EMUL_H_ is defined, then poll is just a just a thin wrapper around
 | 
	
		
			
				|  |  | + * select.  On Mac OS 10.3, this wrapper is kinda flakey, and we should
 | 
	
		
			
				|  |  | + * use our own.
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +#if (defined(HAVE_POLL_H)||defined(HAVE_SYS_POLL_H)) && !defined(_POLL_EMUL_H_)
 | 
	
		
			
				|  |  | +#define tor_poll poll
 | 
	
		
			
				|  |  | +#else
 | 
	
		
			
				|  |  |  #define USE_FAKE_POLL
 | 
	
		
			
				|  |  | +#endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#ifdef USE_FAKE_POLL
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +#ifndef _POLL_EMUL_H_
 | 
	
		
			
				|  |  |  struct pollfd {
 | 
	
		
			
				|  |  |    int fd;
 | 
	
		
			
				|  |  |    short events;
 | 
	
	
		
			
				|  | @@ -23,9 +40,9 @@ struct pollfd {
 | 
	
		
			
				|  |  |  #define POLLERR  0x0008
 | 
	
		
			
				|  |  |  #define POLLHUP  0x0010
 | 
	
		
			
				|  |  |  #define POLLNVAL 0x0020
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -int poll(struct pollfd *ufds, unsigned int nfds, int timeout);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +int tor_poll(struct pollfd *ufds, unsigned int nfds, int timeout);
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  #endif
 |