1 /*********************************************************************** 2 * * 3 * This software is part of the ast package * 4 * Copyright (c) 1990-2011 AT&T Intellectual Property * 5 * and is licensed under the * 6 * Eclipse Public License, Version 1.0 * 7 * by AT&T Intellectual Property * 8 * * 9 * A copy of the License is available at * 10 * http://www.eclipse.org/org/documents/epl-v10.html * 11 * (with md5 checksum b35adb5213ca9657e911e9befb180842) * 12 * * 13 * Information and Software Systems Research * 14 * AT&T Research * 15 * Florham Park NJ * 16 * * 17 * Glenn Fowler <gsf@research.att.com> * 18 * * 19 ***********************************************************************/ 20 /* 21 * File: ifs_agent.h 22 */ 23 #include <cs.h> 24 #include <ls.h> 25 #include "ifs_errno.h" 26 27 #define PROXY_HOST "proxy.research.att.com" 28 #define PROXY_PORT 402 29 30 #define STRLEN 1024 31 #define SOCK_TIMEOUT (60*1000) 32 #define IFS_PROXY 0x01 33 34 #ifdef DEBUG 35 #define debug_logit( msg ) logit( msg ) 36 #else 37 #define debug_logit( msg ) (0) 38 #endif 39 40 typedef int (FUNC)(); 41 42 typedef struct sNetFile { 43 char netbuf[ STRLEN ]; 44 int socket; 45 int head, size; 46 int err; 47 } NetFile; 48 49 struct agent_item { 50 struct agent_item *next; 51 char *name; 52 char *localdata; 53 FUNC *connect; 54 FUNC *disconnect; 55 FUNC *listdents; 56 FUNC *getfile; 57 FUNC *putfile; 58 FUNC *userdef; 59 }; 60 61 struct mount_item { 62 struct mount_item *next; 63 NetFile *nFile; 64 int mode; 65 char *lpath; 66 char *proto; 67 char *user; 68 int pass; 69 int passlen; 70 char *host; 71 int port; 72 char *rpath; 73 char timeout[ 12 ]; 74 }; 75 76 struct mount_list { 77 struct mount_list *next; 78 int uid; 79 struct mount_item *mitem; 80 }; 81 82 struct server_info { 83 struct agent_item *agent; 84 struct mount_item *mitem; 85 char *lpath; 86 char *proxy; 87 char rpath[ STRLEN ]; 88 int flags; 89 }; 90 91 extern int cserrno; 92 extern char csusrmsg[ STRLEN ]; 93 extern int IfsAbortFlag; 94 95 extern void* MallocZero(); 96 97 extern NetFile* NetConnect(); 98 extern int NetClose(); 99 extern int NetRead(); 100 extern char* NetGets(); 101 extern int NetWrite(); 102 103