mirror of https://github.com/diegocr/libnix.git
105 lines
3.2 KiB
C
105 lines
3.2 KiB
C
#ifndef _HEADERS_SOCKET_H
|
|
#define _HEADERS_SOCKET_H
|
|
|
|
/*
|
|
**
|
|
*/
|
|
#include <netdb.h>
|
|
#include <amitcp/usergroup.h>
|
|
#include <amitcp/socketbasetags.h>
|
|
#include "inline/usergroup.h"
|
|
#include "inline/amitcp.h"
|
|
#include "inline/as225.h"
|
|
#include "stdio.h"
|
|
|
|
/*
|
|
**
|
|
*/
|
|
typedef enum {LX_NONE, LX_AMITCP, LX_AS225} LX_NETWORK_TYPE;
|
|
|
|
/*
|
|
**
|
|
*/
|
|
struct SocketSettings {
|
|
LX_NETWORK_TYPE lx_network_type;
|
|
union {
|
|
struct {
|
|
struct Library *BsdSocketBase;
|
|
struct Library *UserGroupBase;
|
|
} AMITCP;
|
|
struct {
|
|
struct Library *SocketBase;
|
|
} AS225;
|
|
} lx_stack;
|
|
#define lx_BsdSocketBase lx_stack.AMITCP.BsdSocketBase
|
|
#define lx_UserGroupBase lx_stack.AMITCP.UserGroupBase
|
|
#define lx_SocketBase lx_stack.AS225.SocketBase
|
|
|
|
unsigned long lx_sigurg;
|
|
unsigned long lx_sigio;
|
|
int lx_sockid;
|
|
int lx_isdaemon;
|
|
|
|
/* Support for net functions */
|
|
FILE *lx_pwd_fp; /* File pointer to the passwd file */
|
|
char *lx_pwd_line; /* buffer for reading a line from the passwd file */
|
|
struct passwd lx_pwd; /* static buffer to hold the data */
|
|
int lx_pwd_stayopen;/* TRUE if passwd file should stay open */
|
|
|
|
FILE *lx_grp_fp; /* File pointer to the groups file */
|
|
char *lx_grp_line; /* buffer for reading a line from the group file */
|
|
struct group lx_grp; /* static buffer to hold the data */
|
|
char **lx_members; /* array of group members */
|
|
int lx_grp_stayopen;/* TRUE if group file should stay open */
|
|
|
|
FILE *lx_net_fp; /* File pointer to protocol file */
|
|
char *lx_net_line; /* buffer for reading a line from the protocol file */
|
|
struct netent lx_net;
|
|
char **lx_net_aliases;
|
|
int lx_net_stayopen;
|
|
|
|
FILE *lx_serv_fp; /* File pointer to services file */
|
|
char *lx_serv_line; /* buffer for reading a line from the services file */
|
|
struct servent lx_serv;
|
|
char **lx_serv_aliases;
|
|
int lx_serv_stayopen;
|
|
|
|
FILE *lx_proto_fp; /* File pointer to protocol file */
|
|
char *lx_proto_line; /* buffer for reading a line from the protocol file */
|
|
struct protoent lx_proto;
|
|
char **lx_proto_aliases;
|
|
int lx_proto_stayopen;
|
|
|
|
/* resolv state structure */
|
|
struct __res_state *lx_res;
|
|
int *lx_res_socket;
|
|
|
|
/* XXX unused XXX */
|
|
int lx_logname_valid;
|
|
char lx_logname[MAXLOGNAME + 1];
|
|
char lx_logname_buf[MAXLOGNAME + 1];
|
|
|
|
/* XXX unused XXX */
|
|
char lx_ntoa_buf[18]; /* used by inet_ntoa */
|
|
|
|
/* logfile handling */
|
|
int lx_LogFile; /* fd for log */
|
|
int lx_LogStat; /* status bits, set by openlog() */
|
|
char *lx_LogTag; /* string to tag the entry with */
|
|
int lx_LogFacility; /* default facility code */
|
|
int lx_LogMask; /* mask of priorities to be logged */
|
|
int lx_setuid; /* used for setuid() - have to remember to log out */
|
|
};
|
|
|
|
/*
|
|
**
|
|
*/
|
|
extern struct SocketSettings *_lx_get_socket_settings(void);
|
|
|
|
/*
|
|
**
|
|
*/
|
|
extern StdFileDes *_create_socket(int family, int type, int protocol);
|
|
|
|
#endif /* _HEADERS_SOCKET_H */
|