64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef USOCKET_H
							 | 
						||
| 
								 | 
							
								#define USOCKET_H
							 | 
						||
| 
								 | 
							
								/*=========================================================================*\
							 | 
						||
| 
								 | 
							
								* Socket compatibilization module for Unix
							 | 
						||
| 
								 | 
							
								* LuaSocket toolkit
							 | 
						||
| 
								 | 
							
								\*=========================================================================*/
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/*=========================================================================*\
							 | 
						||
| 
								 | 
							
								* BSD include files
							 | 
						||
| 
								 | 
							
								\*=========================================================================*/
							 | 
						||
| 
								 | 
							
								/* error codes */
							 | 
						||
| 
								 | 
							
								#include <errno.h>
							 | 
						||
| 
								 | 
							
								/* close function */
							 | 
						||
| 
								 | 
							
								#include <unistd.h>
							 | 
						||
| 
								 | 
							
								/* fnctnl function and associated constants */
							 | 
						||
| 
								 | 
							
								#include <fcntl.h>
							 | 
						||
| 
								 | 
							
								/* struct sockaddr */
							 | 
						||
| 
								 | 
							
								#include <sys/types.h>
							 | 
						||
| 
								 | 
							
								/* socket function */
							 | 
						||
| 
								 | 
							
								#include <sys/socket.h>
							 | 
						||
| 
								 | 
							
								/* struct timeval */
							 | 
						||
| 
								 | 
							
								#include <sys/time.h>
							 | 
						||
| 
								 | 
							
								/* gethostbyname and gethostbyaddr functions */
							 | 
						||
| 
								 | 
							
								#include <netdb.h>
							 | 
						||
| 
								 | 
							
								/* sigpipe handling */
							 | 
						||
| 
								 | 
							
								#include <signal.h>
							 | 
						||
| 
								 | 
							
								/* IP stuff*/
							 | 
						||
| 
								 | 
							
								#include <netinet/in.h>
							 | 
						||
| 
								 | 
							
								#include <arpa/inet.h>
							 | 
						||
| 
								 | 
							
								/* TCP options (nagle algorithm disable) */
							 | 
						||
| 
								 | 
							
								#include <netinet/tcp.h>
							 | 
						||
| 
								 | 
							
								#include <net/if.h>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef SO_REUSEPORT
							 | 
						||
| 
								 | 
							
								#define SO_REUSEPORT SO_REUSEADDR
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Some platforms use IPV6_JOIN_GROUP instead if
							 | 
						||
| 
								 | 
							
								 * IPV6_ADD_MEMBERSHIP. The semantics are same, though. */
							 | 
						||
| 
								 | 
							
								#ifndef IPV6_ADD_MEMBERSHIP
							 | 
						||
| 
								 | 
							
								#ifdef IPV6_JOIN_GROUP
							 | 
						||
| 
								 | 
							
								#define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
							 | 
						||
| 
								 | 
							
								#endif /* IPV6_JOIN_GROUP */
							 | 
						||
| 
								 | 
							
								#endif /* !IPV6_ADD_MEMBERSHIP */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* Same with IPV6_DROP_MEMBERSHIP / IPV6_LEAVE_GROUP. */
							 | 
						||
| 
								 | 
							
								#ifndef IPV6_DROP_MEMBERSHIP
							 | 
						||
| 
								 | 
							
								#ifdef IPV6_LEAVE_GROUP
							 | 
						||
| 
								 | 
							
								#define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
							 | 
						||
| 
								 | 
							
								#endif /* IPV6_LEAVE_GROUP */
							 | 
						||
| 
								 | 
							
								#endif /* !IPV6_DROP_MEMBERSHIP */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace NS_SLUA {    
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef int t_socket;
							 | 
						||
| 
								 | 
							
								typedef t_socket *p_socket;
							 | 
						||
| 
								 | 
							
								typedef struct sockaddr_storage t_sockaddr_storage;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define SOCKET_INVALID (-1)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								} // end NS_SLUA
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* USOCKET_H */
							 |