author | Michael Krelin <hacker@klever.net> | 2013-02-12 20:37:10 (UTC) |
---|---|---|
committer | Michael Krelin <hacker@klever.net> | 2013-02-12 20:37:10 (UTC) |
commit | 13fb4abba3fd3cac0d5cb25d3eccddc298220d41 (patch) (unidiff) | |
tree | 8a086ffef06f153e739674a5c8beab1db9388238 /src/eyetil.h | |
parent | b80844f51353339cfbb8b35a5585911cdb4301e2 (diff) | |
download | iii-13fb4abba3fd3cac0d5cb25d3eccddc298220d41.zip iii-13fb4abba3fd3cac0d5cb25d3eccddc298220d41.tar.gz iii-13fb4abba3fd3cac0d5cb25d3eccddc298220d41.tar.bz2 |
introduce throwable_exit for nicer stack unwinding
yes, I enjoy abusing features
Signed-off-by: Michael Krelin <hacker@klever.net>
-rw-r--r-- | src/eyetil.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/eyetil.h b/src/eyetil.h index eff2c43..03b9ba8 100644 --- a/src/eyetil.h +++ b/src/eyetil.h | |||
@@ -1,25 +1,30 @@ | |||
1 | #ifndef __EYETIL_H | 1 | #ifndef __EYETIL_H |
2 | #define __EYETIL_H | 2 | #define __EYETIL_H |
3 | 3 | ||
4 | #include <vector> | 4 | #include <vector> |
5 | #include <string> | 5 | #include <string> |
6 | #include <archive.h> | 6 | #include <archive.h> |
7 | #include <archive_entry.h> | 7 | #include <archive_entry.h> |
8 | #include "openssl/md5.h" | 8 | #include "openssl/md5.h" |
9 | 9 | ||
10 | struct throwable_exit { | ||
11 | int rc; | ||
12 | throwable_exit(int rc_) : rc(rc_) { } | ||
13 | }; | ||
14 | |||
10 | class binary_t : public std::vector<unsigned char> { | 15 | class binary_t : public std::vector<unsigned char> { |
11 | public: | 16 | public: |
12 | binary_t() { } | 17 | binary_t() { } |
13 | binary_t(size_type n) : std::vector<unsigned char>(n) { } | 18 | binary_t(size_type n) : std::vector<unsigned char>(n) { } |
14 | binary_t(const std::string& h) { from_hex(h); } | 19 | binary_t(const std::string& h) { from_hex(h); } |
15 | binary_t(const void *d,size_t s) { from_data(d,s); } | 20 | binary_t(const void *d,size_t s) { from_data(d,s); } |
16 | 21 | ||
17 | binary_t& from_hex(const std::string& h); | 22 | binary_t& from_hex(const std::string& h); |
18 | binary_t& from_data(const void *d,size_t s); | 23 | binary_t& from_data(const void *d,size_t s); |
19 | binary_t& make_nonce(); | 24 | binary_t& make_nonce(); |
20 | 25 | ||
21 | std::string hex() const; | 26 | std::string hex() const; |
22 | binary_t md5() const; | 27 | binary_t md5() const; |
23 | }; | 28 | }; |
24 | 29 | ||
25 | struct md5_digester { | 30 | struct md5_digester { |