connman.h

00001 /* 
00002    EyeDB Object Database Management System
00003    Copyright (C) 1994-2008 SYSRA
00004    
00005    EyeDB is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009    
00010    EyeDB is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014    
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with this library; if not, write to the Free Software
00017    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA 
00018 */
00019 
00020 /*
00021    Author: Eric Viara <viara@sysra.com>
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

Generated on Mon Dec 22 18:15:53 2008 for eyedb by  doxygen 1.5.3