#define __CM_CONN_H_ENV__ 1
#define CM_CONN_DEFAULTRDRTIMEOUT 45
-#define CM_CONN_CONNDEADTIME 50
+#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 */
struct cm_server *serverp; /* locked by cm_serverLock */
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 */
#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 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 *,
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__ */