author | Michael Krelin <hacker@klever.net> | 2012-01-07 18:01:35 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2012-01-07 18:01:35 (UTC) |
commit | 90cb8164f279f1d7fd3fa3234301cda5827ae97f (patch) (unidiff) | |
tree | edb371f833ef94506dd1be8d1084d7c6a595d739 | |
parent | 0d4910ba75f2b2034b105a6ed44c88a53e36064c (diff) | |
download | iii-90cb8164f279f1d7fd3fa3234301cda5827ae97f.zip iii-90cb8164f279f1d7fd3fa3234301cda5827ae97f.tar.gz iii-90cb8164f279f1d7fd3fa3234301cda5827ae97f.tar.bz2 |
support .CR2 files
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | src/eyefiservice.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/eyefiservice.cc b/src/eyefiservice.cc index 9350386..5c4e308 100644 --- a/src/eyefiservice.cc +++ b/src/eyefiservice.cc | |||
@@ -160,25 +160,26 @@ int eyefiService::UploadPhoto( | |||
160 | if(!digest.empty()) throw std::runtime_error("already have integrity digest"); | 160 | if(!digest.empty()) throw std::runtime_error("already have integrity digest"); |
161 | digest = integrity_digest((*i).ptr,(*i).size,eyekinfig.get_upload_key()); | 161 | digest = integrity_digest((*i).ptr,(*i).size,eyekinfig.get_upload_key()); |
162 | #ifndef NDEBUG | 162 | #ifndef NDEBUG |
163 | syslog(LOG_DEBUG," computed integrity digest=%s", digest.hex().c_str()); | 163 | syslog(LOG_DEBUG," computed integrity digest=%s", digest.hex().c_str()); |
164 | #endif | 164 | #endif |
165 | 165 | ||
166 | tarchive_t a((*i).ptr,(*i).size); | 166 | tarchive_t a((*i).ptr,(*i).size); |
167 | while(a.read_next_header()) { | 167 | while(a.read_next_header()) { |
168 | std::string f = indir.get_file(a.entry_pathname()); | 168 | std::string f = indir.get_file(a.entry_pathname()); |
169 | std::string::size_type fl = f.length(); | 169 | std::string::size_type fl = f.length(); |
170 | if(fl<4) continue; | 170 | if(fl<4) continue; |
171 | const char *s = f.c_str()+fl-4; | 171 | const char *s = f.c_str()+fl-4; |
172 | static const char *suffixes[] = { ".JPG",".AVI",".MP4",".NEF",".RAW",".TIF",".DNG",".CRW", ".RW2" }; | 172 | static const char *suffixes[] = { ".JPG",".AVI",".MP4",".NEF",".RAW",".TIF",".DNG",".CRW", |
173 | ".RW2",".CR2" }; | ||
173 | if(std::find_if(suffixes,suffixes+sizeof(suffixes)/sizeof(*suffixes), | 174 | if(std::find_if(suffixes,suffixes+sizeof(suffixes)/sizeof(*suffixes), |
174 | std::not1(std::bind1st(std::ptr_fun(strcasecmp),s))) | 175 | std::not1(std::bind1st(std::ptr_fun(strcasecmp),s))) |
175 | != suffixes+sizeof(suffixes)/sizeof(*suffixes)) | 176 | != suffixes+sizeof(suffixes)/sizeof(*suffixes)) |
176 | tf = f; | 177 | tf = f; |
177 | else if(!strcasecmp(s,".log")) | 178 | else if(!strcasecmp(s,".log")) |
178 | lf = f; | 179 | lf = f; |
179 | else continue; | 180 | else continue; |
180 | int fd=open(f.c_str(),O_CREAT|O_WRONLY,0666); | 181 | int fd=open(f.c_str(),O_CREAT|O_WRONLY,0666); |
181 | if(fd<0) | 182 | if(fd<0) |
182 | throw std::runtime_error(gnu::autosprintf("failed to create output file '%s'",f.c_str())); | 183 | throw std::runtime_error(gnu::autosprintf("failed to create output file '%s'",f.c_str())); |
183 | if(!a.read_data_into_fd(fd)) | 184 | if(!a.read_data_into_fd(fd)) |
184 | throw std::runtime_error(gnu::autosprintf("failed to untar file into '%s'",f.c_str())); | 185 | throw std::runtime_error(gnu::autosprintf("failed to untar file into '%s'",f.c_str())); |