add bind() to socket

pull/5/head
Tom Early 8 years ago
parent fb0782c670
commit d6a1cd6b7d

@ -96,13 +96,14 @@ void calcPFCS(unsigned char rawbytes[58])
bool dst_open(const char *ip, const short port)
{
int reuse = 1;
sockDst = socket(PF_INET,SOCK_DGRAM,0);
if (sockDst == -1) {
printf("Failed to create DSTAR socket\n");
return true;
}
fcntl(sockDst,F_SETFL,O_NONBLOCK);
int reuse = 1;
if (setsockopt(sockDst,SOL_SOCKET,SO_REUSEADDR, (char *)&reuse, sizeof(reuse)) == -1) {
close(sockDst);
sockDst = -1;
@ -114,7 +115,12 @@ bool dst_open(const char *ip, const short port)
toDst.sin_port = htons(port);
toDst.sin_addr.s_addr = inet_addr(ip);
fcntl(sockDst,F_SETFL,O_NONBLOCK);
if (bind(sockDst, (struct sockaddr *)&toDst, sizeof(struct sockaddr_in)) != 0) {
printf("Failed to bind %s:%d, errno=%d, %s\n", ip, port, errno, strerror(errno));
close(sockDst);
sockDst = -1;
return true;
}
return false;
}
@ -379,8 +385,8 @@ int main(int argc, char *argv[])
dstr.vpkt.ctrl = dsvt.counter;
for (int i=0; i<3; i++)
dstr.vpkt.hdr.flag[i] = dsvt.hdr.flag[i];
memset(dstr.vpkt.hdr.r2, ' ', 36);
memcpy(dstr.vpkt.hdr.r2, REPEATER.c_str(), REPEATER.size());
memset(dstr.vpkt.hdr.flag+3, ' ', 36);
memcpy(dstr.vpkt.hdr.flag+3, REPEATER.c_str(), REPEATER.size());
dstr.vpkt.hdr.r1[7] = module;
memcpy(dstr.vpkt.hdr.r1, REPEATER.c_str(), REPEATER.size());
dstr.vpkt.hdr.r2[7] = 'G';

Loading…
Cancel
Save

Powered by TurnKey Linux.