fix client id on OpenWrt

This commit is contained in:
badaix 2017-10-15 22:07:39 +02:00
parent fd3b28efa1
commit 8f5e561e83
3 changed files with 30 additions and 18 deletions

View file

@ -15,7 +15,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
VERSION = 0.12.0
TARGET = snapclient
BIN = snapclient
ifeq ($(TARGET), FREEBSD)
SHELL = /usr/local/bin/bash
else
@ -34,6 +35,11 @@ CXXFLAGS += $(ADD_CFLAGS) -std=c++0x -Wall -Wno-unused-function -O3 -DASIO_STAND
LDFLAGS = -logg -lFLAC
OBJ = snapClient.o stream.o clientConnection.o timeProvider.o player/player.o decoder/pcmDecoder.o decoder/oggDecoder.o decoder/flacDecoder.o controller.o ../message/pcmChunk.o ../common/sampleFormat.o
ifneq (,$(TARGET))
CXXFLAGS += -D$(TARGET)
endif
ifeq ($(ENDIAN), BIG)
CXXFLAGS += -DIS_BIG_ENDIAN
endif
@ -42,7 +48,7 @@ ifeq ($(TARGET), ANDROID)
CXX = $(PROGRAM_PREFIX)clang++
STRIP = $(PROGRAM_PREFIX)strip
CXXFLAGS += -pthread -DANDROID -DNO_CPP11_STRING -fPIC -DHAS_TREMOR -DHAS_OPENSL -I$(NDK_DIR)/include
CXXFLAGS += -pthread -DNO_CPP11_STRING -fPIC -DHAS_TREMOR -DHAS_OPENSL -I$(NDK_DIR)/include
LDFLAGS = -L$(NDK_DIR)/lib -pie -lvorbisidec -logg -lFLAC -lOpenSLES -latomic -llog
OBJ += player/openslPlayer.o
@ -63,7 +69,7 @@ else ifeq ($(TARGET), MACOS)
CXX = g++
STRIP = strip
CXXFLAGS += -DHAS_OGG -DHAS_COREAUDIO -DFREEBSD -DMACOS -DHAS_BONJOUR -DHAS_DAEMON -I/usr/local/include -Wno-unused-local-typedef -Wno-deprecated
CXXFLAGS += -DHAS_OGG -DHAS_COREAUDIO -DFREEBSD -DHAS_BONJOUR -DHAS_DAEMON -I/usr/local/include -Wno-unused-local-typedef -Wno-deprecated
LDFLAGS += -lvorbis -lFLAC -L/usr/local/lib -framework AudioToolbox -framework CoreFoundation -framework IOKit
OBJ += ../common/daemon.o player/coreAudioPlayer.o browseZeroConf/browseBonjour.o
@ -78,10 +84,7 @@ OBJ += ../common/daemon.o player/alsaPlayer.o browseZeroConf/browseAvahi.o
endif
BIN = snapclient
all: check-env $(TARGET)
all: check-env $(BIN)
check-env:
ifeq ($(TARGET), ANDROID)
@ -102,7 +105,7 @@ else
endif
endif
$(TARGET): $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(CXXFLAGS) -o $(BIN) $(OBJ) $(LDFLAGS)
$(STRIP) $(BIN)

View file

@ -297,7 +297,12 @@ static std::string getMacAddress(int sock)
static std::string getHostId(const std::string defaultId = "")
{
std::string result = "";
#ifdef MACOS
#ifdef OPENWRT
/// on OpenWRT the dbus uid exists (/var/lib/dbus/machine-id),
/// but seems to be recreated with every reboot
if (!defaultId.empty())
return defaultId;
#elif MACOS
/// https://stackoverflow.com/questions/933460/unique-hardware-id-in-mac-os-x
/// About this Mac, Hardware-UUID
char buf[64];
@ -310,6 +315,7 @@ static std::string getHostId(const std::string defaultId = "")
#elif ANDROID
result = getProp("ro.serialno");
#else
/// TODO: store the id somewhere and reuse it (see OpenWRT)
std::ifstream infile("/var/lib/dbus/machine-id");
if (infile.good())
std::getline(infile, result);

View file

@ -15,7 +15,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
VERSION = 0.12.0
TARGET = snapserver
BIN = snapserver
ifeq ($(TARGET), FREEBSD)
SHELL = /usr/local/bin/bash
else
@ -29,11 +30,16 @@ else
TARGET_DIR ?= /usr
endif
CXXFLAGS += $(ADD_CFLAGS) -std=c++0x -Wall -Wno-unused-function -O3 -DASIO_STANDALONE -DVERSION=\"$(VERSION)\" -I. -I.. -isystem ../externals/asio/asio/include -I../externals/popl/include -I../externals/aixlog/include -I../externals/jsonrpcpp/lib -I../externals
LDFLAGS = -lvorbis -lvorbisenc -logg -lFLAC
OBJ = snapServer.o config.o controlServer.o controlSession.o streamServer.o streamSession.o streamreader/streamUri.o streamreader/streamManager.o streamreader/pcmStream.o streamreader/pipeStream.o streamreader/fileStream.o streamreader/processStream.o streamreader/airplayStream.o streamreader/spotifyStream.o streamreader/watchdog.o encoder/encoderFactory.o encoder/flacEncoder.o encoder/pcmEncoder.o encoder/oggEncoder.o ../common/sampleFormat.o ../message/pcmChunk.o ../externals/jsonrpcpp/lib/jsonrp.o
ifneq (,$(TARGET))
CXXFLAGS += -D$(TARGET)
endif
ifeq ($(ENDIAN), BIG)
CXXFLAGS += -DIS_BIG_ENDIAN
endif
@ -42,7 +48,7 @@ ifeq ($(TARGET), ANDROID)
CXX = $(NDK_DIR)/bin/arm-linux-androideabi-g++
STRIP = $(NDK_DIR)/bin/arm-linux-androideabi-strip
CXXFLAGS += -pthread -DANDROID -DNO_CPP11_STRING -fPIC -I$(NDK_DIR)/include
CXXFLAGS += -pthread -DNO_CPP11_STRING -fPIC -I$(NDK_DIR)/include
LDFLAGS += -L$(NDK_DIR)/lib -pie -llog -latomic
else ifeq ($(TARGET), OPENWRT)
@ -56,7 +62,7 @@ else ifeq ($(TARGET), FREEBSD)
CXX = g++
STRIP = echo
CXXFLAGS += -DNO_CPP11_STRING -DFREEBSD -DHAS_AVAHI -DHAS_DAEMON -pthread
CXXFLAGS += -DNO_CPP11_STRING -DHAS_AVAHI -DHAS_DAEMON -pthread
LDFLAGS += -lrt -lavahi-client -lavahi-common -static-libgcc -static-libstdc++ -latomic
OBJ += ../common/daemon.o publishZeroConf/publishAvahi.o
@ -64,7 +70,7 @@ else ifeq ($(TARGET), MACOS)
CXX = g++
STRIP = strip
CXXFLAGS += -DFREEBSD -DMACOS -DHAS_BONJOUR -DHAS_DAEMON -Wno-deprecated -I/usr/local/include
CXXFLAGS += -DFREEBSD -DHAS_BONJOUR -DHAS_DAEMON -Wno-deprecated -I/usr/local/include
LDFLAGS += -L/usr/local/lib -framework CoreFoundation -framework IOKit
OBJ += ../common/daemon.o publishZeroConf/publishBonjour.o
@ -79,12 +85,9 @@ OBJ += ../common/daemon.o publishZeroConf/publishAvahi.o
endif
BIN = snapserver
all: $(BIN)
all: $(TARGET)
$(TARGET): $(OBJ)
$(BIN): $(OBJ)
$(CXX) $(CXXFLAGS) -o $(BIN) $(OBJ) $(LDFLAGS)
$(STRIP) $(BIN)