diff --git a/lib/arch/CArchSystemUnix.cpp b/lib/arch/CArchSystemUnix.cpp new file mode 100644 index 00000000..541038db --- /dev/null +++ b/lib/arch/CArchSystemUnix.cpp @@ -0,0 +1,50 @@ +/* + * synergy -- mouse and keyboard sharing utility + * Copyright (C) 2004 Chris Schoeneman + * + * This package is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * found in the file COPYING that should have accompanied this file. + * + * This package is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include "CArchSystemUnix.h" +#include + +// +// CArchSystemUnix +// + +CArchSystemUnix::CArchSystemUnix() +{ + // do nothing +} + +CArchSystemUnix::~CArchSystemUnix() +{ + // do nothing +} + +std::string +CArchSystemUnix::getOSName() const +{ +#if defined(HAVE_SYS_UTSNAME_H) + struct utsname info; + if (uname(&info) == 0) { + std::string msg; + msg += info.sysname; + msg += " "; + msg += info.release; + msg += " "; + msg += info.version; + msg += " "; + msg += info.machine; + return msg; + } +#endif + return "Unix "; +} diff --git a/lib/arch/CArchSystemUnix.h b/lib/arch/CArchSystemUnix.h new file mode 100644 index 00000000..525aed1c --- /dev/null +++ b/lib/arch/CArchSystemUnix.h @@ -0,0 +1,32 @@ +/* + * synergy -- mouse and keyboard sharing utility + * Copyright (C) 2004 Chris Schoeneman + * + * This package is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * found in the file COPYING that should have accompanied this file. + * + * This package is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#ifndef CARCHSYSTEMUNIX_H +#define CARCHSYSTEMUNIX_H + +#include "IArchSystem.h" + +#define ARCH_SYSTEM CArchSystemUnix + +//! Unix implementation of IArchString +class CArchSystemUnix : public IArchSystem { +public: + CArchSystemUnix(); + virtual ~CArchSystemUnix(); + + // IArchSystem overrides + virtual std::string getOSName() const; +}; + +#endif diff --git a/lib/common/common.h b/lib/common/common.h index 1e406693..c8f26831 100644 --- a/lib/common/common.h +++ b/lib/common/common.h @@ -57,6 +57,7 @@ # define HAVE_SYS_STAT_H 1 # define HAVE_SYS_TIME_H 1 # define HAVE_SYS_TYPES_H 1 +# define HAVE_SYS_UTSNAME_H 1 # define HAVE_UNISTD_H 1 # define HAVE_VSNPRINTF 1 # define HAVE_WCHAR_H 1