Release v1.5.3 (#81)

- Fixed Bad/Invalid shares and high share transmit latency
- Fixed hugepages for some older linux versions
- Added force algo variant by xmrig-proxy 2.5.x+
- Added auto force of nicehash param by xmrig-proxy 2.5.x+
- Partial rebase of XMRig 2.5.2
This commit is contained in:
Ben Gräf 2018-03-29 21:31:57 +02:00 committed by GitHub
parent 512f593b05
commit 5a8ae614d2
11 changed files with 154 additions and 64 deletions

View file

@ -153,10 +153,4 @@ net_pause(net_t * net);
int
net_set_error_cb(net_t * net, void * cb);
/*
* write buffer, and call `net_write_cb`.
*/
void
net_write_cb(uv_write_t *writer, int stat);
#endif /* __NET_H__ */

View file

@ -53,6 +53,10 @@ net_close(net_t * net, void (*cb)(uv_handle_t*)) {
}
#endif
if (uv_is_readable((uv_stream_t*)net->handle) == 1) {
uv_read_stop((uv_stream_t*)net->handle);
}
uv_close((uv_handle_t*)net->handle, cb);
#ifndef XMRIG_NO_TLS
@ -154,6 +158,12 @@ net_resolve_cb(uv_getaddrinfo_t *rv, int err, net_ai * ai) {
* create tcp instance.
*/
uv_tcp_init(net->loop, net->handle);
uv_tcp_nodelay(net->handle, 1);
# ifndef WIN32
uv_tcp_keepalive(net->handle, 1, 60);
# endif
ret = uv_tcp_connect(net->conn, net->handle, (const struct sockaddr*) &dest, net_connect_cb);
if (ret != NET_OK) {
if (net->error_cb) {
@ -209,19 +219,16 @@ net_connect_cb(uv_connect_t *conn, int err) {
* Handle TLS Partial
*/
if (net->use_ssl == USE_SSL && tls_connect(net->tls) == NET_OK) {
read = 0;
do {
read = tls_bio_read(net->tls, 0);
if (read > 0) {
char* buf = (char *) calloc(read, 1);
uv_write_t * req = malloc(sizeof(uv_write_t));
req->data = net;
memset(buf, 0, read);
memcpy(buf, net->tls->buf, read);
uv_buf_t uvbuf = uv_buf_init(buf, read);
uv_write(req, (uv_stream_t*)net->handle, &uvbuf, 1, net_write_cb);
uv_try_write((uv_stream_t*)net->handle, &uvbuf, 1);
free(buf);
}
}
} while (read > 0);
}
#endif
@ -269,12 +276,10 @@ net_read(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) {
read = tls_bio_read(net->tls, 0);
if (read > 0) {
char* buf2 = (char *) calloc(read, 1);
uv_write_t * req = malloc(sizeof(uv_write_t));
req->data = net;
memset(buf2, 0, read);
memcpy(buf2, net->tls->buf, read);
uv_buf_t uvbuf = uv_buf_init(buf2, read);
uv_write(req, (uv_stream_t*)net->handle, &uvbuf, 1, net_write_cb);
uv_try_write((uv_stream_t*)net->handle, &uvbuf, 1);
free(buf2);
}
} while (read > 0);
@ -311,7 +316,7 @@ net_read(uv_stream_t* handle, ssize_t nread, const uv_buf_t* buf) {
/*
* TCP Part, no SSL, just proxy of uv.
*/
uv_read_stop(handle);
//uv_read_stop(handle);
buf->base[nread] = 0;
if (net->read_cb != NULL) {
net->read_cb(net, nread, buf->base);
@ -326,9 +331,9 @@ net_write(net_t * net, char * buf) {
int
net_write2(net_t * net, char * buf, unsigned int len) {
uv_write_t * req;
uv_buf_t uvbuf;
int read = 0;
int res = NET_OK;
switch (net->use_ssl) {
case USE_SSL:
@ -337,29 +342,19 @@ net_write2(net_t * net, char * buf, unsigned int len) {
do {
read = tls_bio_read(net->tls, 0);
if (read > 0) {
req = (uv_write_t *) malloc(sizeof(uv_write_t));
req->data = net;
uvbuf = uv_buf_init(net->tls->buf, read);
uv_write(req, (uv_stream_t*)net->handle,
&uvbuf,
1,
net_write_cb);
res = uv_try_write((uv_stream_t*)net->handle, &uvbuf,1);
}
} while (read > 0);
break;
#endif
case NOT_SSL:
req = (uv_write_t *) malloc(sizeof(uv_write_t));
req->data = net;
uvbuf = uv_buf_init(buf, len);
uv_write(req, (uv_stream_t*)net->handle,
&uvbuf,
1,
net_write_cb);
res = uv_try_write((uv_stream_t*)net->handle, &uvbuf, 1);
break;
}
return NET_OK;
return res;
}
int
@ -384,9 +379,3 @@ net_set_error_cb(net_t * net, void * cb) {
net->error_cb = cb;
return NET_OK;
}
void
net_write_cb(uv_write_t *req, int stat) {
net_resume((net_t*)req->data);
free(req);
}