|  |  |  | @ -783,7 +783,9 @@ out: | 
			
		
	
		
			
				
					|  |  |  |  | 	return ret; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | static bool parse_notify(proxy_instance_t *proxi, json_t *val) | 
			
		
	
		
			
				
					|  |  |  |  | static void send_notify(ckpool_t *ckp, proxy_instance_t *proxi, notify_instance_t *ni); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | static bool parse_notify(ckpool_t *ckp, proxy_instance_t *proxi, json_t *val) | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  | 	const char *prev_hash, *bbversion, *nbit, *ntime; | 
			
		
	
		
			
				
					|  |  |  |  | 	proxy_instance_t *proxy = proxi->proxy; | 
			
		
	
	
		
			
				
					|  |  |  | @ -855,6 +857,7 @@ static bool parse_notify(proxy_instance_t *proxi, json_t *val) | 
			
		
	
		
			
				
					|  |  |  |  | 	proxi->current_notify = ni; | 
			
		
	
		
			
				
					|  |  |  |  | 	mutex_unlock(&proxy->notify_lock); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	send_notify(ckp, proxi, ni); | 
			
		
	
		
			
				
					|  |  |  |  | out: | 
			
		
	
		
			
				
					|  |  |  |  | 	return ret; | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | @ -1066,23 +1069,15 @@ static void send_diff(ckpool_t *ckp, proxy_instance_t *proxi) | 
			
		
	
		
			
				
					|  |  |  |  | 	free(buf); | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | static void send_notify(ckpool_t *ckp, proxy_instance_t *proxi) | 
			
		
	
		
			
				
					|  |  |  |  | static void send_notify(ckpool_t *ckp, proxy_instance_t *proxi, notify_instance_t *ni) | 
			
		
	
		
			
				
					|  |  |  |  | { | 
			
		
	
		
			
				
					|  |  |  |  | 	proxy_instance_t *proxy = proxi->proxy; | 
			
		
	
		
			
				
					|  |  |  |  | 	json_t *json_msg, *merkle_arr; | 
			
		
	
		
			
				
					|  |  |  |  | 	notify_instance_t *ni; | 
			
		
	
		
			
				
					|  |  |  |  | 	char *msg, *buf; | 
			
		
	
		
			
				
					|  |  |  |  | 	int i; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	merkle_arr = json_array(); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	mutex_lock(&proxy->notify_lock); | 
			
		
	
		
			
				
					|  |  |  |  | 	ni = proxi->current_notify; | 
			
		
	
		
			
				
					|  |  |  |  | 	if (unlikely(!ni)) { | 
			
		
	
		
			
				
					|  |  |  |  | 		mutex_unlock(&proxy->notify_lock); | 
			
		
	
		
			
				
					|  |  |  |  | 		LOGNOTICE("Proxi %d not ready to send notify", proxi->id); | 
			
		
	
		
			
				
					|  |  |  |  | 		return; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	for (i = 0; i < ni->merkles; i++) | 
			
		
	
		
			
				
					|  |  |  |  | 		json_array_append_new(merkle_arr, json_string(&ni->merklehash[i][0])); | 
			
		
	
		
			
				
					|  |  |  |  | 	/* Use our own jobid instead of the server's one for easy lookup */ | 
			
		
	
	
		
			
				
					|  |  |  | @ -1093,7 +1088,6 @@ static void send_notify(ckpool_t *ckp, proxy_instance_t *proxi) | 
			
		
	
		
			
				
					|  |  |  |  | 			     "merklehash", merkle_arr, "bbversion", ni->bbversion, | 
			
		
	
		
			
				
					|  |  |  |  | 			     "nbit", ni->nbit, "ntime", ni->ntime, | 
			
		
	
		
			
				
					|  |  |  |  | 			     "clean", ni->clean); | 
			
		
	
		
			
				
					|  |  |  |  | 	mutex_unlock(&proxy->notify_lock); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	msg = json_dumps(json_msg, JSON_NO_UTF8); | 
			
		
	
		
			
				
					|  |  |  |  | 	json_decref(json_msg); | 
			
		
	
	
		
			
				
					|  |  |  | @ -1153,9 +1147,7 @@ static bool parse_method(ckpool_t *ckp, proxy_instance_t *proxi, const char *msg | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	if (cmdmatch(buf, "mining.notify")) { | 
			
		
	
		
			
				
					|  |  |  |  | 		ret = parse_notify(proxi, params); | 
			
		
	
		
			
				
					|  |  |  |  | 		if (ret) | 
			
		
	
		
			
				
					|  |  |  |  | 			send_notify(ckp, proxi); | 
			
		
	
		
			
				
					|  |  |  |  | 		ret = parse_notify(ckp, proxi, params); | 
			
		
	
		
			
				
					|  |  |  |  | 		goto out; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |