* \\netbios-name\submount\path\.
* \\netbios-name\submount\path\file
*/
- TranslateExtendedChars(relativePath);
+
+ /* We do not perform path name translation on the ioctl path data
+ * because these paths were not translated by Windows through the
+ * file system API. Therefore, they are not OEM characters but
+ * whatever the display character set is.
+ */
+ // TranslateExtendedChars(relativePath);
/* This is usually nothing, but for StatMountPoint it is the file name. */
- TranslateExtendedChars(ioctlp->inDatap);
+ // TranslateExtendedChars(ioctlp->inDatap);
#ifdef AFSIFS
/* we have passed the whole path, including the afs prefix.
return CM_ERROR_NOMORETOKENS; /* mapped to EDOM */
}
-extern long cm_AddCellProc(void *rockp, struct sockaddr_in *addrp, char *namep);
-
long cm_IoctlNewCell(struct smb_ioctl *ioctlp, struct cm_user *userp)
{
/* NT cache manager will read cell information from CellServDB each time
*/
cm_cell_t *cp;
+ cm_cell_rock_t rock;
+
cm_SkipIoctlPath(ioctlp);
lock_ObtainWrite(&cm_cellLock);
/* delete all previous server lists - cm_FreeServerList will ask for write on cm_ServerLock*/
cm_FreeServerList(&cp->vlServersp, CM_FREESERVERLIST_DELETE);
cp->vlServersp = NULL;
- code = cm_SearchCellFile(cp->name, cp->name, cm_AddCellProc, cp);
+ rock.cellp = cp;
+ rock.flags = 0;
+ code = cm_SearchCellFile(cp->name, cp->name, cm_AddCellProc, &rock);
#ifdef AFS_AFSDB_ENV
if (code) {
if (cm_dnsEnabled) {
int ttl;
- code = cm_SearchCellByDNS(cp->name, cp->name, &ttl, cm_AddCellProc, cp);
+ code = cm_SearchCellByDNS(cp->name, cp->name, &ttl, cm_AddCellProc, &rock);
if ( code == 0 ) { /* got cell from DNS */
cp->flags |= CM_CELLFLAG_DNS;
cp->flags &= ~CM_CELLFLAG_VLSERVER_INVALID;