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:
parent
512f593b05
commit
5a8ae614d2
11 changed files with 154 additions and 64 deletions
6
src/3rdparty/clib-net/include/net.h
vendored
6
src/3rdparty/clib-net/include/net.h
vendored
|
@ -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__ */
|
47
src/3rdparty/clib-net/src/net.c
vendored
47
src/3rdparty/clib-net/src/net.c
vendored
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue