Novell Home

How to use FESetOriginatingNameSpace() (NetWare)

From Developer Community

This sample reads the name space in which the file was created with FEGetOriginatingNameSpace(), and then resets it to the DOS name space with FESetOriginatingNameSpace()

Sample Code

#include <errno.h>
#include <nwerrno.h>
#include <nwfattr.h>
#include <nwfileng.h>
#include <nwnspace.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main( int argc, char* argv[]) {
  int volume_number;
  LONG directory_number;
  LONG current_ns;
  LONG ccode;
  if ( argc != 2) {
    printf( "Syntax: %s <filename>\n", argv[ 0]);
    return EXIT_FAILURE;
  }
  SetCurrentNameSpace( LONGNameSpace);
  ccode = ( LONG) FEMapPathVolumeDirToVolumeDir( strupr( argv[ 1]), 0, 0, &volume_number, &directory_number);
  if ( ccode != 0) {
    printf( "FEMapPathVolumeDirToVolumeDir failed, ccode = %d\n", ccode);
    return EXIT_FAILURE;
  }
  current_ns = FEGetOriginatingNameSpace(( LONG) volume_number, directory_number);
  if ( current_ns == -1) {
    printf( "FEGetOriginatingNameSpace failed, errno = %d (%s), NetWareErrno = %d\n", errno, strerror( errno), NetWareErrno);
    return EXIT_FAILURE;
  }
  printf( "%s: ns = %d\n", argv[ 1], current_ns);
  ccode = FESetOriginatingNameSpace(( LONG) volume_number, directory_number, LONGNameSpace, DOSNameSpace);
  if ( ccode != 0) {
    printf( "FESetOriginatingNameSpace failed, ccode = %d\n", ccode);
    return EXIT_FAILURE;
  }
  current_ns = FEGetOriginatingNameSpace(( LONG) volume_number, directory_number);
  if ( current_ns == -1) {
    printf( "FEGetOriginatingNameSpace failed, errno = %d (%s), NetWareErrno = %d\n", errno, strerror( errno), NetWareErrno);
    return EXIT_FAILURE;
  }
  printf( "%s: ns = %d\n", argv[ 1], current_ns);
  return EXIT_SUCCESS;
}

--Dmitry Mityugov

Novell® Making IT Work As One

© 2008 Novell, Inc. All Rights Reserved.