windows-get-server-list-20070625
authorJeffrey Altman <jaltman@secure-endpoints.com>
Mon, 25 Jun 2007 05:58:30 +0000 (05:58 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Mon, 25 Jun 2007 05:58:30 +0000 (05:58 +0000)
return an error when the cm_fid_t * is NULL since we can't look up
the volume to obtain a server list without knowing which volume we
should be looking up

if the fidp is known to be NULL, don't call cm_GetServerList()

src/WINNT/afsd/cm_conn.c

index 0cee8af..71012c3 100644 (file)
@@ -113,7 +113,7 @@ static long cm_GetServerList(struct cm_fid *fidp, struct cm_user *userp,
 
     if (!fidp) {
         *serversppp = NULL;
-        return 0;
+        return CM_ERROR_INVAL;
     }
 
     cellp = cm_FindCellByID(fidp->cell);
@@ -351,7 +351,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
 
     /* special codes:  VBUSY and VRESTARTING */
     else if (errorCode == VBUSY || errorCode == VRESTARTING) {
-        if (!serversp) {
+        if (!serversp && fidp) {
             code = cm_GetServerList(fidp, userp, reqp, &serverspp);
             if (code == 0) {
                 serversp = *serverspp;
@@ -437,7 +437,7 @@ cm_Analyze(cm_conn_t *connp, cm_user_t *userp, cm_req_t *reqp,
        LogEvent(EVENTLOG_WARNING_TYPE, msgID, addr, fidp->volume);
 
         /* Mark server offline for this volume */
-        if (!serversp) {
+        if (!serversp && fidp) {
             code = cm_GetServerList(fidp, userp, reqp, &serverspp);
             if (code == 0) {
                 serversp = *serverspp;