00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _EYEDBLIB_CONNMAN_H
00026 #define _EYEDBLIB_CONNMAN_H
00027
00028 #ifdef HAVE_FATTACH
00029 #include <stropts.h>
00030 #endif
00031
00032 #include <netinet/in.h>
00033
00034 struct rpc_Auth {
00035 int uid;
00036 int gid;
00037 };
00038
00039 struct rpc_User {
00040 enum {
00041 ON,
00042 NOT,
00043 DEF,
00044 ALL
00045 } mode;
00046 char *user;
00047 };
00048
00049 struct rpc_TcpIp {
00050 int user_cnt;
00051 rpc_User *users;
00052 };
00053
00054 struct rpc_ConnInfo {
00055
00056 rpc_Auth auth;
00057
00058 enum {
00059 STREAM,
00060 UNIX,
00061 TCPIP
00062 } mode;
00063
00064 struct in_addr peer_addr;
00065 bool is_localhost;
00066
00067 rpc_TcpIp tcpip;
00068 };
00069
00070 extern int
00071 rpc_connman_init(const char *access_file);
00072
00073 struct in_addr;
00074
00075 extern rpc_ConnInfo *
00076 rpc_check_addr(struct in_addr *addr);
00077
00078 extern rpc_ConnInfo *
00079 rpc_make_tcpip_conninfo(int fd);
00080
00081
00082 #ifdef HAVE_FATTACH
00083 extern rpc_ConnInfo *
00084 rpc_make_stream_conninfo(int fd, struct strrecvfd *);
00085 #else
00086 extern rpc_ConnInfo *
00087 rpc_make_unix_conninfo(int fd);
00088 #endif
00089
00090 extern void
00091 rpc_print_tcpip(FILE *fd, rpc_TcpIp *ci);
00092
00093 #endif