Bugfix: enum types are not guaranteed to be large enough for a bitmask, so explicitly use uint32_t for gbt_capabilities_t/blkmutations_t bitmasks (this breaks ABI)

This commit is contained in:
Luke Dashjr
2014-09-02 16:20:23 +00:00
parent 20ba4ab64a
commit 4fe973a101
4 changed files with 7 additions and 7 deletions

View File

@@ -21,7 +21,7 @@
# error "Jansson 2.0 with long long support required!"
#endif
json_t *blktmpl_request_jansson(gbt_capabilities_t caps, const char *lpid) {
json_t *blktmpl_request_jansson(const uint32_t caps, const char * const lpid) {
json_t *req, *jcaps, *jstr, *reqf, *reqa;
if (!(req = json_object()))
return NULL;
@@ -266,7 +266,7 @@ const char *blktmpl_add_jansson(blktemplate_t *tmpl, const json_t *json, time_t
return NULL;
}
json_t *blktmpl_propose_jansson(blktemplate_t * const tmpl, const gbt_capabilities_t caps, const bool foreign) {
json_t *blktmpl_propose_jansson(blktemplate_t * const tmpl, const uint32_t caps, const bool foreign) {
json_t *jreq = blktmpl_request_jansson(caps, NULL), *ja = NULL, *jparams;
if (!(jreq && json_is_object(jreq)))
goto err;

View File

@@ -9,9 +9,9 @@
extern "C" {
#endif
extern json_t *blktmpl_request_jansson(gbt_capabilities_t extracaps, const char *lpid);
extern json_t *blktmpl_request_jansson(uint32_t extracaps, const char *lpid);
extern const char *blktmpl_add_jansson(blktemplate_t *, const json_t *, time_t time_rcvd);
extern json_t *blktmpl_propose_jansson(blktemplate_t *, gbt_capabilities_t caps, bool foreign);
extern json_t *blktmpl_propose_jansson(blktemplate_t *, uint32_t caps, bool foreign);
extern json_t *blkmk_submit_jansson(blktemplate_t *, const unsigned char *data, unsigned int dataid, blknonce_t);
extern json_t *blkmk_submit_foreign_jansson(blktemplate_t *, const unsigned char *data, unsigned int dataid, blknonce_t);

View File

@@ -75,7 +75,7 @@ blktemplate_t *blktmpl_create() {
return tmpl;
}
gbt_capabilities_t blktmpl_addcaps(const blktemplate_t *tmpl) {
uint32_t blktmpl_addcaps(const blktemplate_t *tmpl) {
// TODO: make this a lot more flexible for merging
// For now, it's a simple "filled" vs "not filled"
if (tmpl->version)

View File

@@ -123,7 +123,7 @@ typedef struct {
blkhash_t target;
// BIP 23: Mutations
blkmutations_t mutations;
uint32_t mutations;
blktime_t maxtime;
blktime_diff_t maxtimeoff;
blktime_t mintime;
@@ -142,7 +142,7 @@ typedef struct {
} blktemplate_t;
extern blktemplate_t *blktmpl_create();
extern gbt_capabilities_t blktmpl_addcaps(const blktemplate_t *);
extern uint32_t blktmpl_addcaps(const blktemplate_t *);
extern const struct blktmpl_longpoll_req *blktmpl_get_longpoll(blktemplate_t *);
extern bool blktmpl_get_submitold(blktemplate_t *tmpl);
extern void blktmpl_free(blktemplate_t *);