DEVEL15-windows-largefile-support-20060623
[openafs.git] / src / WINNT / afsd / cm_conn.h
index 2e2ab4d..9d65a69 100644 (file)
 #define __CM_CONN_H_ENV__ 1
 
 #define        CM_CONN_DEFAULTRDRTIMEOUT       45
-#define CM_CONN_CONNDEADTIME           20
-#define CM_CONN_HARDDEADTIME            40
+#define CM_CONN_CONNDEADTIME           60
+#define CM_CONN_HARDDEADTIME        120
+
+extern unsigned short ConnDeadtimeout;
+extern unsigned short HardDeadtimeout;
 
 typedef struct cm_conn {
        struct cm_conn *nextp;          /* locked by cm_connLock */
@@ -20,11 +23,14 @@ typedef struct cm_conn {
         struct rx_connection *callp;   /* locked by mx */
         struct cm_user *userp;         /* locked by mx; a held reference */
         osi_mutex_t mx;                        /* mutex for some of these fields */
-        int refCount;                  /* locked by cm_connLock */
+        unsigned long refCount;                        /* locked by cm_connLock */
        int ucgen;                      /* ucellp's generation number */
         long flags;                    /* locked by mx */
+       int cryptlevel;                 /* encrytion status */
 } cm_conn_t;
 
+#define CM_CONN_FLAG_FORCE_NEW 1
+
 /* structure used for tracking RPC progress */
 typedef struct cm_req {
        DWORD startTime;                /* Quit before RDR times us out */
@@ -73,11 +79,23 @@ typedef struct cm_req {
 #define VMOVED         111     /* Volume has moved to another server;
                                   do a VGetVolumeInfo to THIS server to find
                                   out where */
+#define VIO             112     /* Vnode temporarily unaccessible, but not known
+                                 * to be permanently bad. */
+#define VRESTRICTED     120     /* Volume is restricted from using one or more
+                                 * of the given residencies; do a
+                                 * vos examine to find out the current
+                                 * restrictions. */
 
 #define VRESTARTING    -100    /* server is restarting, otherwise similar to 
                                   VBUSY above.  This is negative so that old
                                   cache managers treat it as "server is down"*/
 
+#include "cm_server.h"
+#ifndef AFS_PTHREAD_ENV
+#define AFS_PTHREAD_ENV 1
+#endif
+#include "rx.h"
+
 extern void cm_InitConn(void);
 
 extern void cm_InitReq(cm_req_t *reqp);
@@ -85,6 +103,7 @@ extern void cm_InitReq(cm_req_t *reqp);
 extern int cm_Analyze(cm_conn_t *connp, struct cm_user *up, struct cm_req *reqp,
        struct cm_fid *fidp,
        struct AFSVolSync *volInfop,
+        cm_serverRef_t * serversp,
        struct cm_callbackRequest *cbrp, long code);
 
 extern long cm_ConnByMServers(struct cm_serverRef *, struct cm_user *,
@@ -99,4 +118,8 @@ extern void cm_PutConn(cm_conn_t *connp);
 
 extern void cm_GCConnections(cm_server_t *serverp);
 
+extern struct rx_connection * cm_GetRxConn(cm_conn_t *connp);
+
+extern void cm_ForceNewConnections(cm_server_t *serverp);
+
 #endif /*  __CM_CONN_H_ENV__ */