Arif Saikat fb17410f60 Original Nomachine 5.9p1 source code
Original Nomachine 5.9p1 source code
2015-09-09 14:08:05 -05:00

73 lines
1.5 KiB
C

#ifndef _SFDS_H_
#define _SFDS_H_ 1
/* Types */
typedef int sfd_type;
#define SFD_TYPE_NONE 0
#define SFD_TYPE_FD 1
#define SFD_TYPE_SOCKET 2
#define SFD_TYPE_PIPE 3
#define SFD_TYPE_CONSOLE 4
#define SFD_MAP_SIZE 256
#define SFD_FD_INVALID -1
#define SFD_HANDLE_INVALID -1
/*
* Struct for compatibility with AF_UNIX socket.
* Bind() and connect() should receive pointer to this struct.
*/
#define UNIX_PATH_LEN 108
typedef unsigned short uint16_t;
typedef uint16_t sa_family_t;
struct sockaddr_un
{
sa_family_t sun_family; /* address family AF_LOCAL/AF_UNIX */
char sun_path[UNIX_PATH_LEN]; /* 108 bytes of socket address */
};
/* For a real fd or SOCKET, allocate an sfd */
int allocate_sfd(int fd_or_handle);
/* Free an sfd from the map */
void free_sfd(int sfd);
/* For a real fd or SOCKET, get our sfd */
int fd_to_sfd(int fd_or_socket);
/* For an sfd, get the real fd behind it */
int sfd_to_fd(int sfd);
/* For an sfd, get the real handle behind it */
HANDLE sfd_to_handle(int sfd);
/* For an sfd, get the type */
int get_sfd_type(int sfd);
/* Check if sfd is file */
int sfd_is_fd(int sfd);
/* Check if sfd is socket */
int sfd_is_socket(int sfd);
/* Check if sfd is pipe */
int sfd_is_pipe(int sfd);
/* Check if sfd is console */
int sfd_is_console(int sfd);
/* Check if sfd is file or console */
int sfd_is_fd_or_console(int sfd);
/* Check if sfd is socket or pipe */
int sfd_is_socket_or_pipe(int sfd);
void sfd_replace_handle(int sfd, HANDLE handle);
#endif