Salome HOME
New access protocol rsync.
[modules/kernel.git] / src / Utils / Utils_Identity.cxx
index 00ecda4967e7193a3cb4e73666e97bc5d956551b..f6cc2369967afaf9997833c0cfe673565c4ae03e 100644 (file)
@@ -71,6 +71,8 @@ const char* get_adip( void )
 #endif
 
         const hostent* pour_adip=gethostbyname(hostid.nodename);
+       if(pour_adip  == NULL)
+         pour_adip=gethostbyname("localhost");
         ASSERT(pour_adip!=NULL);
         const in_addr ip_addr=*(struct in_addr*)(pour_adip->h_addr) ;
         return duplicate(inet_ntoa(ip_addr));
@@ -91,7 +93,7 @@ const char* duplicate( const char *const str ) ;
 
 const char* get_uname( void )
 {
-        static std::string hostName(256, 0);
+        static std::string hostName(4096, 0);
         static DWORD nSize = hostName.length();
         static int res = ::GetComputerNameEx(ComputerNameDnsFullyQualified, &hostName[0], &nSize);
         ASSERT( res );
@@ -125,7 +127,7 @@ const char* get_adip( void )
 
 const char* const get_pwname( void )
 {
-  static std::string retVal(256, 0);
+  static std::string retVal(4096, 0);
   static DWORD  dwSize = retVal.length() + 1;
   static int res = GetUserName( &retVal[0], &dwSize );
   ASSERT( res );
@@ -138,7 +140,7 @@ PSID getuid() {
         PTOKEN_OWNER pTKowner      = NULL;
         LPVOID buffer = NULL;
         DWORD dwsize = 0;
-        
+
         if (  !OpenProcessToken ( GetCurrentProcess (), TOKEN_QUERY, &hProcessToken )) return 0;
         if (!GetTokenInformation(hProcessToken, TokenOwner, buffer, dwsize, &dwsize)) return 0;
         pTKowner = (PTOKEN_OWNER)buffer;
@@ -146,7 +148,7 @@ PSID getuid() {
                 retVal = pTKowner->Owner;
         }
         if ( hProcessToken != INVALID_HANDLE_VALUE ) CloseHandle ( hProcessToken );
-        
+
         return retVal;
 }
 
@@ -161,13 +163,13 @@ Identity::Identity( const char *name ): _name(duplicate(name)),\
                                                         _adip(get_adip()),\
                                                         _uid(getuid()) ,\
                                                         _pwname(get_pwname()) ,\
-                                                        _dir(getcwd(NULL,256)),\
+                                                        _dir(getcwd(NULL,4096)),\
                                                         _pid(getpid()) ,\
                                                         _start(time(NULL)),\
                                                         _cstart(ctime(&_start))
 //CCRT
 {
-        ASSERT(strlen(_dir)<256);
+        ASSERT(strlen(_dir)<4096);
 }
 
 
@@ -179,9 +181,9 @@ Identity::~Identity(void)
         //delete [] (char*)_dir ;
         //(char*&)_dir = NULL ;
         free((char*)_dir);
-#ifndef WIN32   
+#ifndef WIN32
   // free the memory only on Unix
-  // becasue at Windows it is the same static variable
+  // because in Windows it is the same static variable
   // (function get_adip() returns the same char* as get_uname() )
         delete [] (char*)_adip ;
 #endif