author | Michael Krelin <hacker@klever.net> | 2012-01-20 20:46:30 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2012-01-20 20:46:30 (UTC) |
commit | 62d09cb2346588773a9e25ac9e9a942816b8581a (patch) (unidiff) | |
tree | 791221bad465ac702a481490d5fdab0a96b6e185 | |
parent | a9f093cc83926b0e83324aa9e022903563d9d801 (diff) | |
download | iii-62d09cb2346588773a9e25ac9e9a942816b8581a.zip iii-62d09cb2346588773a9e25ac9e9a942816b8581a.tar.gz iii-62d09cb2346588773a9e25ac9e9a942816b8581a.tar.bz2 |
minor but numerous changes from compiler-happiness department
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | src/eyefiservice.cc | 2 | ||||
-rw-r--r-- | src/eyefiworker.cc | 4 | ||||
-rw-r--r-- | src/eyefiworker.h | 2 | ||||
-rw-r--r-- | src/eyekinfig.cc | 2 | ||||
-rw-r--r-- | src/eyetil.cc | 10 | ||||
-rw-r--r-- | src/iiid.cc | 2 |
6 files changed, 11 insertions, 11 deletions
diff --git a/src/eyefiservice.cc b/src/eyefiservice.cc index 2586ade..e89b2fc 100644 --- a/src/eyefiservice.cc +++ b/src/eyefiservice.cc | |||
@@ -82,25 +82,25 @@ int eyefiService::GetPhotoStatus( | |||
82 | #ifndef NDEBUG | 82 | #ifndef NDEBUG |
83 | syslog(LOG_DEBUG, " computed credential=%s", computed_credential.c_str()); | 83 | syslog(LOG_DEBUG, " computed credential=%s", computed_credential.c_str()); |
84 | #endif | 84 | #endif |
85 | 85 | ||
86 | if (credential != computed_credential) throw std::runtime_error("card authentication failed"); | 86 | if (credential != computed_credential) throw std::runtime_error("card authentication failed"); |
87 | 87 | ||
88 | r.fileid = 1; r.offset = 0; | 88 | r.fileid = 1; r.offset = 0; |
89 | return SOAP_OK; | 89 | return SOAP_OK; |
90 | } | 90 | } |
91 | 91 | ||
92 | int eyefiService::MarkLastPhotoInRoll( | 92 | int eyefiService::MarkLastPhotoInRoll( |
93 | std::string macaddress, int mergedelta, | 93 | std::string macaddress, int mergedelta, |
94 | struct rns__MarkLastPhotoInRollResponse &r ) { | 94 | struct rns__MarkLastPhotoInRollResponse&/* r */ ) { |
95 | #ifndef NDEBUG | 95 | #ifndef NDEBUG |
96 | syslog(LOG_DEBUG, | 96 | syslog(LOG_DEBUG, |
97 | "MarkLastPhotoInRoll request from %s with mergedelta=%d", | 97 | "MarkLastPhotoInRoll request from %s with mergedelta=%d", |
98 | macaddress.c_str(), mergedelta ); | 98 | macaddress.c_str(), mergedelta ); |
99 | #endif | 99 | #endif |
100 | std::string cmd = eyekinfig_t(macaddress).get_on_mark_last_photo_in_roll(); | 100 | std::string cmd = eyekinfig_t(macaddress).get_on_mark_last_photo_in_roll(); |
101 | if(!cmd.empty()) { | 101 | if(!cmd.empty()) { |
102 | if(detached_child()) { | 102 | if(detached_child()) { |
103 | putenv( gnu::autosprintf("EYEFI_MACADDRESS=%s",macaddress.c_str()) ); | 103 | putenv( gnu::autosprintf("EYEFI_MACADDRESS=%s",macaddress.c_str()) ); |
104 | putenv( gnu::autosprintf("EYEFI_MERGEDELTA=%d",mergedelta) ); | 104 | putenv( gnu::autosprintf("EYEFI_MERGEDELTA=%d",mergedelta) ); |
105 | char *argv[] = { (char*)"/bin/sh", (char*)"-c", (char*)cmd.c_str(), 0 }; | 105 | char *argv[] = { (char*)"/bin/sh", (char*)"-c", (char*)cmd.c_str(), 0 }; |
106 | execv("/bin/sh",argv); | 106 | execv("/bin/sh",argv); |
diff --git a/src/eyefiworker.cc b/src/eyefiworker.cc index 2d7827c..c051482 100644 --- a/src/eyefiworker.cc +++ b/src/eyefiworker.cc | |||
@@ -7,26 +7,26 @@ eyefiworker::eyefiworker() | |||
7 | bind_flags = SO_REUSEADDR; max_keep_alive = 0; | 7 | bind_flags = SO_REUSEADDR; max_keep_alive = 0; |
8 | socket_flags = | 8 | socket_flags = |
9 | #if defined(MSG_NOSIGNAL) | 9 | #if defined(MSG_NOSIGNAL) |
10 | MSG_NOSIGNAL | 10 | MSG_NOSIGNAL |
11 | #elif defined(SO_NOSIGPIPE) | 11 | #elif defined(SO_NOSIGPIPE) |
12 | SO_NOSIGPIPE | 12 | SO_NOSIGPIPE |
13 | #else | 13 | #else |
14 | #error Something is wrong with sigpipe prevention on the platform | 14 | #error Something is wrong with sigpipe prevention on the platform |
15 | #endif | 15 | #endif |
16 | ; | 16 | ; |
17 | } | 17 | } |
18 | 18 | ||
19 | int eyefiworker::run(int port) { | 19 | int eyefiworker::run(int bindport) { |
20 | if(!soap_valid_socket(bind(0,port,64))) | 20 | if(!soap_valid_socket(bind(0,bindport,64))) |
21 | throw std::runtime_error("failed to bind()"); | 21 | throw std::runtime_error("failed to bind()"); |
22 | signal(SIGCHLD,SIG_IGN); | 22 | signal(SIGCHLD,SIG_IGN); |
23 | while(true) { | 23 | while(true) { |
24 | if(!soap_valid_socket(accept())) | 24 | if(!soap_valid_socket(accept())) |
25 | throw std::runtime_error("failed to accept()"); | 25 | throw std::runtime_error("failed to accept()"); |
26 | pid_t p = fork(); | 26 | pid_t p = fork(); |
27 | if(p<0) throw std::runtime_error("failed to fork()"); | 27 | if(p<0) throw std::runtime_error("failed to fork()"); |
28 | if(!p) { | 28 | if(!p) { |
29 | recv_timeout = 600; send_timeout = 120; | 29 | recv_timeout = 600; send_timeout = 120; |
30 | (void)serve(); | 30 | (void)serve(); |
31 | soap_destroy(this); soap_end(this); soap_done(this); | 31 | soap_destroy(this); soap_end(this); soap_done(this); |
32 | _exit(0); | 32 | _exit(0); |
diff --git a/src/eyefiworker.h b/src/eyefiworker.h index c08ec8b..afb97c7 100644 --- a/src/eyefiworker.h +++ b/src/eyefiworker.h | |||
@@ -1,15 +1,15 @@ | |||
1 | #ifndef __EYEFIWORKER_H | 1 | #ifndef __EYEFIWORKER_H |
2 | #define __EYEFIWORKER_H | 2 | #define __EYEFIWORKER_H |
3 | 3 | ||
4 | #include "soapeyefiService.h" | 4 | #include "soapeyefiService.h" |
5 | 5 | ||
6 | class eyefiworker : public eyefiService { | 6 | class eyefiworker : public eyefiService { |
7 | public: | 7 | public: |
8 | 8 | ||
9 | eyefiworker(); | 9 | eyefiworker(); |
10 | 10 | ||
11 | int run(int port); | 11 | int run(int port) __attribute__ ((noreturn)); |
12 | 12 | ||
13 | }; | 13 | }; |
14 | 14 | ||
15 | #endif /* __EYEFIWORKER_H */ | 15 | #endif /* __EYEFIWORKER_H */ |
diff --git a/src/eyekinfig.cc b/src/eyekinfig.cc index 27a5a56..56c74a7 100644 --- a/src/eyekinfig.cc +++ b/src/eyekinfig.cc | |||
@@ -54,14 +54,14 @@ std::string eyekinfig_t::get_on_upload_photo() { | |||
54 | assert(cfg); | 54 | assert(cfg); |
55 | return cfg_getstr(cfg,"on-upload-photo"); | 55 | return cfg_getstr(cfg,"on-upload-photo"); |
56 | } | 56 | } |
57 | 57 | ||
58 | std::string eyekinfig_t::get_on_mark_last_photo_in_roll() { | 58 | std::string eyekinfig_t::get_on_mark_last_photo_in_roll() { |
59 | assert(cfg); | 59 | assert(cfg); |
60 | return cfg_getstr(cfg,"on-mark-last-photo-in-roll"); | 60 | return cfg_getstr(cfg,"on-mark-last-photo-in-roll"); |
61 | } | 61 | } |
62 | 62 | ||
63 | 63 | ||
64 | int eyekinfig_t::get_umask() { | 64 | int eyekinfig_t::get_umask() { |
65 | assert(cfg); | 65 | assert(cfg); |
66 | return cfg_getint(cfg,"umask"); | 66 | return 0777&cfg_getint(cfg,"umask"); |
67 | } | 67 | } |
diff --git a/src/eyetil.cc b/src/eyetil.cc index 2e6ab7e..11e2fb7 100644 --- a/src/eyetil.cc +++ b/src/eyetil.cc | |||
@@ -9,32 +9,32 @@ | |||
9 | #include <openssl/md5.h> | 9 | #include <openssl/md5.h> |
10 | #include "eyetil.h" | 10 | #include "eyetil.h" |
11 | 11 | ||
12 | #include "config.h" | 12 | #include "config.h" |
13 | #ifdef HAVE_LIBUUID | 13 | #ifdef HAVE_LIBUUID |
14 | # include <uuid/uuid.h> | 14 | # include <uuid/uuid.h> |
15 | #endif | 15 | #endif |
16 | 16 | ||
17 | binary_t& binary_t::from_hex(const std::string& h) { | 17 | binary_t& binary_t::from_hex(const std::string& h) { |
18 | std::string::size_type hs = h.length(); | 18 | std::string::size_type hs = h.length(); |
19 | if(hs&1) | 19 | if(hs&1) |
20 | throw std::runtime_error("odd number of characters in hexadecimal number"); | 20 | throw std::runtime_error("odd number of characters in hexadecimal number"); |
21 | int rvs = hs>>1; | 21 | size_t rvs = hs>>1; |
22 | resize(rvs); | 22 | resize(rvs); |
23 | const unsigned char *hp = (const unsigned char*)h.data(); | 23 | const unsigned char *hp = (const unsigned char*)h.data(); |
24 | iterator oi=begin(); | 24 | iterator oi=begin(); |
25 | char t[3] = { 0,0,0 }; | 25 | char t[3] = { 0,0,0 }; |
26 | for(int i=0;i<rvs;++i) { | 26 | for(size_t i=0;i<rvs;++i) { |
27 | t[0]=*(hp++); t[1]=*(hp++); | 27 | t[0]=*(hp++); t[1]=*(hp++); |
28 | *(oi++) = strtol(t,0,16); | 28 | *(oi++) = static_cast<binary_t::value_type>(0xff&strtol(t,0,16)); |
29 | } | 29 | } |
30 | return *this; | 30 | return *this; |
31 | } | 31 | } |
32 | 32 | ||
33 | binary_t& binary_t::from_data(const void *d,size_t s) { | 33 | binary_t& binary_t::from_data(const void *d,size_t s) { |
34 | resize(s); | 34 | resize(s); |
35 | std::copy((const unsigned char*)d,(const unsigned char *)d+s, | 35 | std::copy((const unsigned char*)d,(const unsigned char *)d+s, |
36 | begin() ); | 36 | begin() ); |
37 | return *this; | 37 | return *this; |
38 | } | 38 | } |
39 | 39 | ||
40 | binary_t& binary_t::make_nonce() { | 40 | binary_t& binary_t::make_nonce() { |
@@ -45,25 +45,25 @@ binary_t& binary_t::make_nonce() { | |||
45 | #else | 45 | #else |
46 | resize(16); | 46 | resize(16); |
47 | std::generate_n(begin(),16,rand); | 47 | std::generate_n(begin(),16,rand); |
48 | #endif /* HAVE_LIBUUID */ | 48 | #endif /* HAVE_LIBUUID */ |
49 | return *this; | 49 | return *this; |
50 | } | 50 | } |
51 | 51 | ||
52 | std::string binary_t::hex() const { | 52 | std::string binary_t::hex() const { |
53 | std::string rv; | 53 | std::string rv; |
54 | rv.reserve((size()<<1)+1); | 54 | rv.reserve((size()<<1)+1); |
55 | char t[3] = {0,0,0}; | 55 | char t[3] = {0,0,0}; |
56 | for(const_iterator i=begin(),ie=end();i!=ie;++i) { | 56 | for(const_iterator i=begin(),ie=end();i!=ie;++i) { |
57 | int rc = snprintf(t,sizeof(t),"%02x",*i); | 57 | size_t rc = snprintf(t,sizeof(t),"%02x",*i); |
58 | assert(rc<sizeof(t)); | 58 | assert(rc<sizeof(t)); |
59 | rv += t; | 59 | rv += t; |
60 | } | 60 | } |
61 | return rv; | 61 | return rv; |
62 | } | 62 | } |
63 | 63 | ||
64 | binary_t binary_t::md5() const { | 64 | binary_t binary_t::md5() const { |
65 | binary_t rv(MD5_DIGEST_LENGTH); | 65 | binary_t rv(MD5_DIGEST_LENGTH); |
66 | if(!MD5( | 66 | if(!MD5( |
67 | (const unsigned char*)&(front()),size(), | 67 | (const unsigned char*)&(front()),size(), |
68 | (unsigned char*)&(rv.front()) )) | 68 | (unsigned char*)&(rv.front()) )) |
69 | throw std::runtime_error("failed to md5()"); | 69 | throw std::runtime_error("failed to md5()"); |
@@ -149,25 +149,25 @@ bool tarchive_t::read_data_into_fd(int fd) { | |||
149 | assert(a); | 149 | assert(a); |
150 | return archive_read_data_into_fd(a,fd)==ARCHIVE_OK; | 150 | return archive_read_data_into_fd(a,fd)==ARCHIVE_OK; |
151 | } | 151 | } |
152 | 152 | ||
153 | #pragma pack(1) | 153 | #pragma pack(1) |
154 | struct block512_t { | 154 | struct block512_t { |
155 | enum { words = 512 / sizeof(uint16_t) }; | 155 | enum { words = 512 / sizeof(uint16_t) }; |
156 | uint16_t data[words]; | 156 | uint16_t data[words]; |
157 | 157 | ||
158 | static uint16_t tcpcksum(block512_t& data) { | 158 | static uint16_t tcpcksum(block512_t& data) { |
159 | uint32_t sum = std::accumulate(data.data,data.data+words,0); | 159 | uint32_t sum = std::accumulate(data.data,data.data+words,0); |
160 | while(uint32_t hw = sum>>16) sum = (sum&0xffff)+hw; | 160 | while(uint32_t hw = sum>>16) sum = (sum&0xffff)+hw; |
161 | return ~sum; | 161 | return 0xffff&~sum; |
162 | } | 162 | } |
163 | 163 | ||
164 | }; | 164 | }; |
165 | #pragma pack() | 165 | #pragma pack() |
166 | 166 | ||
167 | binary_t integrity_digest(const void *ptr,size_t size,const std::string& ukey) { | 167 | binary_t integrity_digest(const void *ptr,size_t size,const std::string& ukey) { |
168 | md5_digester rv; | 168 | md5_digester rv; |
169 | std::transform( (block512_t*)ptr, ((block512_t*)ptr)+size/sizeof(block512_t), | 169 | std::transform( (block512_t*)ptr, ((block512_t*)ptr)+size/sizeof(block512_t), |
170 | rv.updater<uint16_t>(), block512_t::tcpcksum ); | 170 | rv.updater<uint16_t>(), block512_t::tcpcksum ); |
171 | rv.update( binary_t(ukey) ); | 171 | rv.update( binary_t(ukey) ); |
172 | return rv.final(); | 172 | return rv.final(); |
173 | } | 173 | } |
diff --git a/src/iiid.cc b/src/iiid.cc index 6c23790..c026050 100644 --- a/src/iiid.cc +++ b/src/iiid.cc | |||
@@ -44,25 +44,25 @@ int main(int argc,char **argv) try { | |||
44 | exit(0); | 44 | exit(0); |
45 | break; | 45 | break; |
46 | case 'V': | 46 | case 'V': |
47 | std::cerr << VERSION << std::endl; | 47 | std::cerr << VERSION << std::endl; |
48 | exit(0); | 48 | exit(0); |
49 | break; | 49 | break; |
50 | case 'L': | 50 | case 'L': |
51 | extern const char *COPYING; | 51 | extern const char *COPYING; |
52 | std::cerr << COPYING << std::endl; | 52 | std::cerr << COPYING << std::endl; |
53 | exit(0); | 53 | exit(0); |
54 | break; | 54 | break; |
55 | case 'p': | 55 | case 'p': |
56 | port = strtol(optarg,0,0); | 56 | port = 0xffff&strtol(optarg,0,0); |
57 | if(errno) { | 57 | if(errno) { |
58 | std::cerr << "Failed to parse port number" << std::endl; | 58 | std::cerr << "Failed to parse port number" << std::endl; |
59 | exit(1); | 59 | exit(1); |
60 | } | 60 | } |
61 | break; | 61 | break; |
62 | default: | 62 | default: |
63 | std::cerr << "Huh?" << std::endl; | 63 | std::cerr << "Huh?" << std::endl; |
64 | exit(1); | 64 | exit(1); |
65 | break; | 65 | break; |
66 | } | 66 | } |
67 | } | 67 | } |
68 | 68 | ||