Update blocknotify.c
Changed sendto to send using TCP so we can control if the block notify produces a connection error. Added a note about "localhost" usage an possible error 13.
This commit is contained in:
parent
201d02d10b
commit
be37d9c0ee
@ -9,6 +9,7 @@
|
|||||||
/*
|
/*
|
||||||
|
|
||||||
Contributed by Alex Petrov aka SysMan at sysman.net
|
Contributed by Alex Petrov aka SysMan at sysman.net
|
||||||
|
Updated by Alejandro Reyero - TodoJuegos.com
|
||||||
|
|
||||||
Part of NOMP project
|
Part of NOMP project
|
||||||
Simple lightweight & fast - a more efficient block notify script in pure C.
|
Simple lightweight & fast - a more efficient block notify script in pure C.
|
||||||
@ -22,8 +23,9 @@ Build with:
|
|||||||
|
|
||||||
|
|
||||||
Usage in daemon coin.conf
|
Usage in daemon coin.conf
|
||||||
blocknotify="/bin/blocknotify localhost:8117 mySuperSecurePassword dogecoin %s"
|
blocknotify="/bin/blocknotify 127.0.01:8117 mySuperSecurePassword dogecoin %s"
|
||||||
|
|
||||||
|
*NOTE* If you use "localhost" as hostname you may get a "13" error (socket / connect / send may consider "localhost" as a broadcast address)
|
||||||
|
|
||||||
// {"password":"notepas","coin":"Xcoin","hash":"d2191a8b644c9cd903439edf1d89ee060e196b3e116e0d48a3f11e5e3987a03b"}
|
// {"password":"notepas","coin":"Xcoin","hash":"d2191a8b644c9cd903439edf1d89ee060e196b3e116e0d48a3f11e5e3987a03b"}
|
||||||
// simplest connect + send json string to server
|
// simplest connect + send json string to server
|
||||||
@ -53,7 +55,8 @@ int main(int argc, char **argv)
|
|||||||
p=host;
|
p=host;
|
||||||
|
|
||||||
if ( (arg=strchr(p,':')) )
|
if ( (arg=strchr(p,':')) )
|
||||||
{ *arg='\0';
|
{
|
||||||
|
*arg='\0';
|
||||||
|
|
||||||
errno=0; // reset errno
|
errno=0; // reset errno
|
||||||
port=strtol(++arg,&errptr,10);
|
port=strtol(++arg,&errptr,10);
|
||||||
@ -70,16 +73,19 @@ snprintf(sendline,sizeof(sendline)-1,
|
|||||||
|
|
||||||
// printf("sendline:[%s]",sendline);
|
// printf("sendline:[%s]",sendline);
|
||||||
|
|
||||||
sockfd=socket(AF_INET,SOCK_STREAM,0);
|
sockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
|
||||||
|
|
||||||
bzero(&servaddr,sizeof(servaddr));
|
bzero(&servaddr,sizeof(servaddr));
|
||||||
servaddr.sin_family = AF_INET;
|
servaddr.sin_family = AF_INET;
|
||||||
servaddr.sin_addr.s_addr=inet_addr(host);
|
servaddr.sin_addr.s_addr=inet_addr(host);
|
||||||
servaddr.sin_port=htons(port);
|
servaddr.sin_port=htons(port);
|
||||||
|
|
||||||
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
|
connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr));
|
||||||
|
|
||||||
sendto(sockfd,sendline,strlen(sendline),0,
|
int result = send(sockfd,sendline,strlen(sendline),0);
|
||||||
(struct sockaddr *)&servaddr,sizeof(servaddr));
|
close(sockfd);
|
||||||
|
|
||||||
|
if(result == -1) {
|
||||||
|
printf("Error sending: %i\n",errno);
|
||||||
|
exit(-1);
|
||||||
|
}
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user