hacker / iii Goto Github PK
View Code? Open in Web Editor NEWiii - Eye-Fi card manager daemon open source implementation
Home Page: http://kin.klever.net/iii/
License: MIT License
iii - Eye-Fi card manager daemon open source implementation
Home Page: http://kin.klever.net/iii/
License: MIT License
Trying to compile on a recent Focal system I'm facing the following compile error:
g++ -DHAVE_CONFIG_H -I.. -I. -I. -DWITH_IPV6 -DWITH_NO_IPV6_V6ONLY -DWITH_DOM -DNDEBUG -DEYEKIN_CONF_DIR=\"/usr/local/etc/iii\" -DWITH_PURE_VIRTUAL -g -O2 -MT iiid.o -MD -MP -MF .deps/iiid.Tpo -c -o iiid.o iiid.cc
iiid.cc: In function ‘int main(int, char**)’:
iiid.cc:128:17: error: invalid cast to abstract class type ‘eyefiworker’
eyefiworker().run(port);
^
In file included from iiid.cc:9:0:
eyefiworker.h:14:7: note: because the following virtual functions are pure within ‘eyefiworker’:
class eyefiworker : public eyefiService {
^~~~~~~~~~~
In file included from eyefiworker.h:7:0,
from iiid.cc:9:
soapeyefiService.h:94:21: note: virtual int eyefiService::StartSession(const string&, const string&, int, long int, rns__StartSessionResponse&)
virtual int StartSession(const std::string& macaddress, const std::string& cnonce, int transfermode, long transfermodetimestamp, struct rns__StartSessionResponse &r) SOAP_PURE_VIRTUAL;
^~~~~~~~~~~~
soapeyefiService.h:96:21: note: virtual int eyefiService::GetPhotoStatus(const string&, const string&, const string&, long int, const string&, int, rns__GetPhotoStatusResponse&)
virtual int GetPhotoStatus(const std::string& credential, const std::string& macaddress, const std::string& filename, long filesize, const std::string& filesignature, int flags, struct rns__GetPhotoStatusResponse &r) SOAP_PURE_VIRTUAL;
^~~~~~~~~~~~~~
soapeyefiService.h:98:21: note: virtual int eyefiService::MarkLastPhotoInRoll(const string&, int, rns__MarkLastPhotoInRollResponse&)
virtual int MarkLastPhotoInRoll(const std::string& macaddress, int mergedelta, struct rns__MarkLastPhotoInRollResponse &r) SOAP_PURE_VIRTUAL;
^~~~~~~~~~~~~~~~~~~
soapeyefiService.h:100:21: note: virtual int eyefiService::UploadPhoto(int, const string&, const string&, long int, const string&, const string&, int, rns__UploadPhotoResponse&)
virtual int UploadPhoto(int fileid, const std::string& macaddress, const std::string& filename, long filesize, const std::string& filesignature, const std::string& encryption, int flags, struct rns__UploadPhotoResponse &r) SOAP_PURE_VIRTUAL;
^~~~~~~~~~~
Makefile:452: recipe for target 'iiid.o' failed
make[2]: *** [iiid.o] Error 1
Not sure if the notes really make sense here as the virtual functions are intentionally pure (WITH_PURE_VIRTUAL) aren't they?
Hi,
I'm sure its problem of my making. I'm trying to cross compile iii to run on a Thecus NAS device. Its been a challenge just to get the pre-reqs in place, but now I've hit this ...
make[2]: Entering directory /root/iii/src' i686-thecus32v5-linux-gnu-g++ -DHAVE_CONFIG_H -I.. -I. -I. -DWITH_DOM -I/data/Development/Home/Thecus/Toolchains/x-tools/i686-thecus32v5-linux-gnu/ModBase1.DEV32/include -I/raid/data/module/iii/sys/include -I/data/Development/Home/Thecus/Toolchains/x-tools/i686-thecus32v5-linux-gnu/ModBase1.DEV32/include -DNDEBUG -DEYEKIN_CONF_DIR=\"/raid/data/module/iii/sys/etc/iii\" -DWITH_PURE_VIRTUAL -D_FILE_OFFSET_BITS=64 -O2 -fno-inline -fPIC -I/data/Development/Home/Thecus/Toolchains/x-tools/i686-thecus32v5-linux-gnu/ModBase1.DEV32/include -D_FILE_OFFSET_BITS=64 -O2 -fno-inline -fPIC -I/data/Development/Home/Thecus/Toolchains/x-tools/i686-thecus32v5-linux-gnu/ModBase1.DEV32/include -I/root/libarchive/libarchive/ -D_FILE_OFFSET_BITS=64 -O2 -fno-inline -fPIC -I/data/Development/Home/Thecus/Toolchains/x-tools/i686-thecus32v5-linux-gnu/ModBase1.DEV32/include -D_FILE_OFFSET_BITS=64 -O2 -fno-inline -fPIC -I/data/Development/Home/Thecus/Toolchains/x-tools/i686-thecus32v5-linux-gnu/ModBase1.DEV32/include -I/root/libarchive/libarchive/ -MT eyekinfig.o -MD -MP -MF .deps/eyekinfig.Tpo -c -o eyekinfig.o eyekinfig.cc eyekinfig.cc: In constructor 'eyekinfig_t::eyekinfig_t(const std::string&)': eyekinfig.cc:11: error: expected primary-expression before '.' token eyekinfig.cc:12: error: expected primary-expression before '.' token eyekinfig.cc:13: error: expected primary-expression before '.' token eyekinfig.cc:14: error: expected primary-expression before '.' token eyekinfig.cc:15: error: expected primary-expression before '.' token eyekinfig.cc:16: error: expected primary-expression before '.' token make[2]: *** [eyekinfig.o] Error 1 make[2]: Leaving directory
/root/iii/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/iii'
make: *** [all] Error 2
Do you have any hints on what may be wrong ? Sorry I'm not familiar enough with CPP to diagnose the issue myself.
Thanks
CM
Hi Michael,
Apologies in advance for my ignorance if this is something simple but I am having problems compiling any of the more recent commits...
I get the following errors
make[2]: Entering directory `/root/eye-fi/iii-0.3/src'
g++ -DHAVE_CONFIG_H -I.. -I. -I. -DWITH_IPV6 -DWITH_DOM -DDEBUG -DEYEKIN_CONF_DIR="/usr/local/etc/iii" -g -O2 -MT eyefiservice.o -MD -MP -MF .de ps/eyefiservice.Tpo -c -o eyefiservice.o eyefiservice.cc
eyefiservice.cc: In member function ‘virtual int eyefiService::UploadPhoto(int, std::string, std::string, long int, std::string, std::string, int, rns_ _UploadPhotoResponse&)’:
eyefiservice.cc:171:77: error: ‘integrity_digest’ was not declared in this scope
eyefiservice.cc:176:37: error: no matching function for call to ‘tarchive_t::tarchive_t(char*&, size_t&)’
eyefiservice.cc:176:37: note: candidates are:
eyetil.h:105:2: note: tarchive_t::tarchive_t(const char*)
eyetil.h:105:2: note: candidate expects 1 argument, 2 provided
eyetil.h:100:7: note: tarchive_t::tarchive_t(const tarchive_t&)
eyetil.h:100:7: note: candidate expects 1 argument, 2 provided
make[2]: *** [eyefiservice.o] Error 1
Any ideas what I am missing?
Many Thanks
Andy
It seems recent versions of gsoap have TCP_FASTOPEN enabled by default and leave any error handling with the application. If a kernel doesn't support TCP_FASTOPEN iiid refuses to start:
iiid[32702]: Starting iii eye-fi manager on port 59278
iiid[32702]: Exiting iii daemon, because of error condition
iiid[32702]: Exception: failed to bind()
With strace I can see this:
socket(PF_INET, SOCK_STREAM, IPPROTO_TCP) = 4
setsockopt(4, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
setsockopt(4, SOL_SOCKET, SO_KEEPALIVE, [1], 4) = 0
setsockopt(4, SOL_SOCKET, SO_SNDBUF, [65536], 4) = 0
setsockopt(4, SOL_SOCKET, SO_RCVBUF, [65536], 4) = 0
setsockopt(4, SOL_TCP, TCP_NODELAY, [1], 4) = 0
setsockopt(4, SOL_TCP, TCP_FASTOPEN, [1], 4) = -1 ENOPROTOOPT (Protocol not available)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.