From c0f465cc3ab1392c793c2bcbc912a55dc02ad46c Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Wed, 6 Feb 2013 22:43:16 -0500 Subject: [PATCH] Windows: Return full volume name for RO and BK RDR_GetVolumeInfo must return the full volume name (not the volume group name) for RO and BK volume types. Change-Id: Ic215b205c07faab53f8a899d0f662b64c902dde2 Reviewed-on: http://gerrit.openafs.org/9078 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- src/WINNT/afsrdr/user/RDRFunction.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/WINNT/afsrdr/user/RDRFunction.c b/src/WINNT/afsrdr/user/RDRFunction.c index 9f7c7c9..2eaa3a1 100644 --- a/src/WINNT/afsrdr/user/RDRFunction.c +++ b/src/WINNT/afsrdr/user/RDRFunction.c @@ -5514,6 +5514,28 @@ RDR_GetVolumeInfo( IN cm_user_t *userp, pResultCB->VolumeLabelLength = cm_Utf8ToUtf16( volp->namep, -1, pResultCB->VolumeLabel, (sizeof(pResultCB->VolumeLabel) / sizeof(WCHAR)) + 1); + + if ( pResultCB->VolumeLabelLength) { + + /* add .readonly and .backup if appropriate */ + switch ( volType) { + case ROVOL: + pResultCB->VolumeLabelLength--; + pResultCB->VolumeLabelLength += cm_Utf8ToUtf16( ".readonly", -1, + &pResultCB->VolumeLabel[ pResultCB->VolumeLabelLength], + (sizeof(pResultCB->VolumeLabel) / sizeof(WCHAR)) - pResultCB->VolumeLabelLength + 1); + break; + + case BACKVOL: + pResultCB->VolumeLabelLength--; + pResultCB->VolumeLabelLength += cm_Utf8ToUtf16( ".backup", -1, + &pResultCB->VolumeLabel[ pResultCB->VolumeLabelLength], + (sizeof(pResultCB->VolumeLabel) / sizeof(WCHAR)) - pResultCB->VolumeLabelLength + 1); + break; + } + } + + /* do not include the trailing nul */ if ( pResultCB->VolumeLabelLength ) pResultCB->VolumeLabelLength--; -- 1.9.4