mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
Compare commits
1 Commits
CR31925
...
OCCT-751de
Author | SHA1 | Date | |
---|---|---|---|
|
2ecd3a06a6 |
@@ -21,24 +21,10 @@
|
||||
#include <Standard_NullObject.hxx>
|
||||
#include <TCollection_AsciiString.hxx>
|
||||
|
||||
const OSD_WhoAmI Iam = OSD_WHost;
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#ifndef HAVE_IFADDRS
|
||||
#if defined(__ANDROID__)
|
||||
#include <android/api-level.h>
|
||||
#if (__ANDROID_API__ >= 24)
|
||||
#define HAVE_IFADDRS
|
||||
#endif
|
||||
#else
|
||||
#define HAVE_IFADDRS
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <arpa/inet.h>
|
||||
#ifdef HAVE_IFADDRS
|
||||
#include <ifaddrs.h>
|
||||
#endif
|
||||
|
||||
#include <sys/utsname.h> // For 'uname'
|
||||
#include <netdb.h> // This is for 'gethostbyname'
|
||||
#include <unistd.h>
|
||||
@@ -103,7 +89,7 @@ char value[65];
|
||||
int status;
|
||||
|
||||
status = gethostname(value, 64);
|
||||
if (status == -1) myError.SetValue(errno, OSD_WHost, "Host Name");
|
||||
if (status == -1) myError.SetValue(errno, Iam, "Host Name");
|
||||
|
||||
result = value;
|
||||
return(result);
|
||||
@@ -130,67 +116,25 @@ Standard_Integer OSD_Host::AvailableMemory(){
|
||||
|
||||
// =========================================================================
|
||||
|
||||
TCollection_AsciiString OSD_Host::InternetAddress()
|
||||
{
|
||||
TCollection_AsciiString aResult;
|
||||
#ifdef HAVE_IFADDRS
|
||||
struct ifaddrs* anAddrFullInfo = NULL;
|
||||
getifaddrs (&anAddrFullInfo);
|
||||
for (struct ifaddrs* anAddrIter = anAddrFullInfo; anAddrIter != NULL; anAddrIter = anAddrIter->ifa_next)
|
||||
{
|
||||
if (!anAddrIter->ifa_addr)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
TCollection_AsciiString OSD_Host::InternetAddress(){
|
||||
struct hostent internet_address;
|
||||
int a,b,c,d;
|
||||
char buffer[16];
|
||||
TCollection_AsciiString result,host;
|
||||
|
||||
if (anAddrIter->ifa_addr->sa_family == AF_INET)
|
||||
{
|
||||
// IP4 Address
|
||||
char aBuffer[INET_ADDRSTRLEN];
|
||||
void* aTmpAddrPtr = &((struct sockaddr_in* )anAddrIter->ifa_addr)->sin_addr;
|
||||
inet_ntop (AF_INET, aTmpAddrPtr, aBuffer, sizeof(aBuffer));
|
||||
if (strcmp (aBuffer, "127.0.0.1") != 0) // skip localhost address
|
||||
{
|
||||
aResult = aBuffer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (anAddrIter->ifa_addr->sa_family == AF_INET6)
|
||||
{
|
||||
// IP6 Address
|
||||
char aBuffer[INET6_ADDRSTRLEN];
|
||||
void* aTmpAddrPtr = &((struct sockaddr_in6 *)anAddrIter->ifa_addr)->sin6_addr;
|
||||
inet_ntop (AF_INET6, aTmpAddrPtr, aBuffer, sizeof(aBuffer));
|
||||
if (strcmp (aBuffer, "::1") != 0) // skip localhost address
|
||||
{
|
||||
aResult = aBuffer;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (anAddrFullInfo != NULL)
|
||||
{
|
||||
freeifaddrs (anAddrFullInfo);
|
||||
}
|
||||
#else
|
||||
// fallback for ancient systems
|
||||
const TCollection_AsciiString aHost = HostName();
|
||||
if (struct hostent* anAddr = gethostbyname (aHost.ToCString()))
|
||||
{
|
||||
char aBuffer[16];
|
||||
const int a = (unsigned char)anAddr->h_addr_list[0][0];
|
||||
const int b = (unsigned char)anAddr->h_addr_list[0][1];
|
||||
const int c = (unsigned char)anAddr->h_addr_list[0][2];
|
||||
const int d = (unsigned char)anAddr->h_addr_list[0][3];
|
||||
sprintf (aBuffer, "%d.%d.%d.%d", a, b, c, d);
|
||||
aResult = aBuffer;
|
||||
}
|
||||
#endif
|
||||
if (aResult.IsEmpty())
|
||||
{
|
||||
return "127.0.0.1";
|
||||
}
|
||||
return aResult;
|
||||
host = HostName();
|
||||
memcpy(&internet_address,
|
||||
gethostbyname(host.ToCString()),
|
||||
sizeof(struct hostent));
|
||||
|
||||
// Gets each bytes into integers
|
||||
a = (unsigned char)internet_address.h_addr_list[0][0];
|
||||
b = (unsigned char)internet_address.h_addr_list[0][1];
|
||||
c = (unsigned char)internet_address.h_addr_list[0][2];
|
||||
d = (unsigned char)internet_address.h_addr_list[0][3];
|
||||
sprintf(buffer,"%d.%d.%d.%d",a,b,c,d);
|
||||
result = buffer;
|
||||
return(result);
|
||||
}
|
||||
|
||||
// =========================================================================
|
||||
|
@@ -164,20 +164,12 @@ Handle(StepBasic_PersonAndOrganization) STEPConstruct_AP203Context::DefaultPerso
|
||||
OSD_Host aHost;
|
||||
TCollection_AsciiString anIP = aHost.InternetAddress();
|
||||
// cut off last number
|
||||
const Standard_Integer aLastDotIndex = anIP.SearchFromEnd (".");
|
||||
if (aLastDotIndex > 0)
|
||||
Standard_Integer aLastDotIndex = anIP.SearchFromEnd (".");
|
||||
if (aLastDotIndex >0)
|
||||
{
|
||||
// IPv4
|
||||
anIP.Trunc (aLastDotIndex - 1);
|
||||
orgId->AssignCat (anIP.ToCString());
|
||||
}
|
||||
else
|
||||
{
|
||||
// IPv6
|
||||
const Standard_Integer aLastColonIndex = anIP.SearchFromEnd (":");
|
||||
anIP.Trunc (aLastColonIndex - 1);
|
||||
orgId->AssignCat (anIP.ToCString());
|
||||
}
|
||||
|
||||
// create organization
|
||||
Handle(StepBasic_Organization) aOrg = new StepBasic_Organization;
|
||||
|
@@ -35,19 +35,19 @@
|
||||
// Primary definitions
|
||||
#define OCC_VERSION_MAJOR 7
|
||||
#define OCC_VERSION_MINOR 5
|
||||
#define OCC_VERSION_MAINTENANCE 0
|
||||
#define OCC_VERSION_MAINTENANCE 1
|
||||
|
||||
//! This macro must be commented in official release, and set to non-empty
|
||||
//! string in other situations, to identify specifics of the version, e.g.:
|
||||
//! - "dev" for development version between releases
|
||||
//! - "beta..." or "rc..." for beta releases or release candidates
|
||||
//! - "project..." for version containing project-specific fixes
|
||||
//#define OCC_VERSION_DEVELOPMENT "beta"
|
||||
#define OCC_VERSION_DEVELOPMENT "dev"
|
||||
|
||||
// Derived (manually): version as real and string (major.minor)
|
||||
#define OCC_VERSION 7.5
|
||||
#define OCC_VERSION_STRING "7.5"
|
||||
#define OCC_VERSION_COMPLETE "7.5.0"
|
||||
#define OCC_VERSION_COMPLETE "7.5.1"
|
||||
|
||||
//! Derived: extended version as string ("major.minor.maintenance.dev")
|
||||
#ifdef OCC_VERSION_DEVELOPMENT
|
||||
|
Reference in New Issue
Block a user