mirror of
https://github.com/servalproject/serval-dna.git
synced 2025-02-11 13:16:08 +00:00
Minor bug fixes, mostly todo with uninitialised variables.
This commit is contained in:
parent
59a0a4a2a0
commit
a2bcb56e1f
24
client.c
24
client.c
@ -25,6 +25,7 @@ int packetSendFollowup(struct in_addr destination,
|
|||||||
struct sockaddr_in peer_addr;
|
struct sockaddr_in peer_addr;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
bzero(&peer_addr, sizeof(peer_addr));
|
||||||
peer_addr.sin_family=AF_INET;
|
peer_addr.sin_family=AF_INET;
|
||||||
peer_addr.sin_port = htons(4110);
|
peer_addr.sin_port = htons(4110);
|
||||||
peer_addr.sin_addr.s_addr=destination.s_addr;
|
peer_addr.sin_addr.s_addr=destination.s_addr;
|
||||||
@ -203,13 +204,13 @@ int requestNewHLR(char *did,char *pin,char *sid)
|
|||||||
unsigned char packet[8000];
|
unsigned char packet[8000];
|
||||||
int packet_len=0;
|
int packet_len=0;
|
||||||
struct response_set responses;
|
struct response_set responses;
|
||||||
unsigned char transaction_id[8];
|
unsigned char transaction_id[TRANSID_SIZE];
|
||||||
|
|
||||||
bzero(&responses,sizeof(responses));
|
bzero(&responses,sizeof(responses));
|
||||||
|
|
||||||
/* Prepare the request packet */
|
/* Prepare the request packet */
|
||||||
if (packetMakeHeader(packet,8000,&packet_len,NULL)) return -1;
|
if (packetMakeHeader(packet,8000,&packet_len,NULL)) return -1;
|
||||||
bcopy(&packet[8],transaction_id,8);
|
bcopy(&packet[OFS_TRANSIDFIELD],transaction_id,TRANSID_SIZE);
|
||||||
if (packetSetDid(packet,8000,&packet_len,did)) return -1;
|
if (packetSetDid(packet,8000,&packet_len,did)) return -1;
|
||||||
if (packetAddHLRCreateRequest(packet,8000,&packet_len)) return -1;
|
if (packetAddHLRCreateRequest(packet,8000,&packet_len)) return -1;
|
||||||
if (packetFinalise(packet,8000,&packet_len)) return -1;
|
if (packetFinalise(packet,8000,&packet_len)) return -1;
|
||||||
@ -315,21 +316,26 @@ int getReplyPackets(int method,int peer,int batchP,
|
|||||||
unsigned char buffer[16384];
|
unsigned char buffer[16384];
|
||||||
socklen_t recvaddrlen=sizeof(recvaddr);
|
socklen_t recvaddrlen=sizeof(recvaddr);
|
||||||
pollfd fds;
|
pollfd fds;
|
||||||
client_port=((struct sockaddr_in*)&recvaddr)->sin_port;
|
|
||||||
bzero((void *)&recvaddr,sizeof(recvaddr));
|
bzero((void *)&recvaddr,sizeof(recvaddr));
|
||||||
fds.fd=sock; fds.events=POLLIN;
|
fds.fd=sock; fds.events=POLLIN; fds.revents=0;
|
||||||
while (poll(&fds,1,10 /* wait for 10ms at a time */)<1)
|
|
||||||
|
while (poll(&fds,1,10 /* wait for 10ms at a time */)==0)
|
||||||
{
|
{
|
||||||
gettimeofday(&t,NULL);
|
gettimeofday(&t,NULL);
|
||||||
if (t.tv_sec>timeout_secs) return 1;
|
if (t.tv_sec>timeout_secs) return 1;
|
||||||
if (t.tv_sec==timeout_secs&&t.tv_usec>=timeout_usecs) return 1;
|
if (t.tv_sec==timeout_secs&&t.tv_usec>=timeout_usecs) return 1;
|
||||||
}
|
}
|
||||||
client_port=((struct sockaddr_in*)&recvaddr)->sin_port;
|
|
||||||
len=recvfrom(sock,buffer,sizeof(buffer),0,&recvaddr,&recvaddrlen);
|
len=recvfrom(sock,buffer,sizeof(buffer),0,&recvaddr,&recvaddrlen);
|
||||||
|
if (len<=0) return setReason("Unable to receive packet.");
|
||||||
|
|
||||||
|
client_port=((struct sockaddr_in*)&recvaddr)->sin_port;
|
||||||
client_addr=((struct sockaddr_in*)&recvaddr)->sin_addr;
|
client_addr=((struct sockaddr_in*)&recvaddr)->sin_addr;
|
||||||
|
|
||||||
if (debug) fprintf(stderr,"Received reply from %s (len=%d).\n",inet_ntoa(client_addr),len);
|
if (debug) fprintf(stderr,"Received reply from %s (len=%d).\n",inet_ntoa(client_addr),len);
|
||||||
if (debug>1) dump("recvaddr",(unsigned char *)&recvaddr,recvaddrlen);
|
if (debug>1) dump("recvaddr",(unsigned char *)&recvaddr,recvaddrlen);
|
||||||
if (debug>2) dump("packet",(unsigned char *)buffer,len);
|
if (debug>2) dump("packet",(unsigned char *)buffer,len);
|
||||||
|
|
||||||
if (dropPacketP(len)) {
|
if (dropPacketP(len)) {
|
||||||
if (debug) fprintf(stderr,"Simulation mode: Dropped packet due to simulated link parameters.\n");
|
if (debug) fprintf(stderr,"Simulation mode: Dropped packet due to simulated link parameters.\n");
|
||||||
continue;
|
continue;
|
||||||
@ -371,7 +377,7 @@ int writeItem(char *sid,int var_id,int instance,unsigned char *value,
|
|||||||
int packet_len=0;
|
int packet_len=0;
|
||||||
struct response_set responses;
|
struct response_set responses;
|
||||||
struct response *r;
|
struct response *r;
|
||||||
unsigned char transaction_id[8];
|
unsigned char transaction_id[TRANSID_SIZE];
|
||||||
|
|
||||||
bzero(&responses,sizeof(responses));
|
bzero(&responses,sizeof(responses));
|
||||||
|
|
||||||
@ -407,7 +413,7 @@ int writeItem(char *sid,int var_id,int instance,unsigned char *value,
|
|||||||
|
|
||||||
/* Prepare the request packet */
|
/* Prepare the request packet */
|
||||||
if (packetMakeHeader(packet,8000,&packet_len,NULL)) return -1;
|
if (packetMakeHeader(packet,8000,&packet_len,NULL)) return -1;
|
||||||
bcopy(&packet[8],transaction_id,8);
|
bcopy(&packet[OFS_TRANSIDFIELD],transaction_id,TRANSID_SIZE);
|
||||||
if (packetSetSid(packet,8000,&packet_len,sid)) return -1;
|
if (packetSetSid(packet,8000,&packet_len,sid)) return -1;
|
||||||
if (packetAddVariableWrite(packet,8000,&packet_len,var_id,instance,
|
if (packetAddVariableWrite(packet,8000,&packet_len,var_id,instance,
|
||||||
value,value_start,value_length,flags)) return -1;
|
value,value_start,value_length,flags)) return -1;
|
||||||
@ -460,7 +466,7 @@ int peerAddress(char *did,char *sid,int flags)
|
|||||||
struct response_set responses;
|
struct response_set responses;
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
int pc;
|
int pc=0;
|
||||||
in_addr_t mypeers[256];
|
in_addr_t mypeers[256];
|
||||||
int method;
|
int method;
|
||||||
|
|
||||||
|
1
mphlr.h
1
mphlr.h
@ -334,3 +334,4 @@ int readBatmanPeerFile(char *file_path,in_addr_t peers[],int *peer_count,int pee
|
|||||||
int getBatmanPeerList(char *socket_path,in_addr_t peers[],int *peer_count,int peer_max);
|
int getBatmanPeerList(char *socket_path,in_addr_t peers[],int *peer_count,int peer_max);
|
||||||
int hlrDump(unsigned char *hlr,int hofs);
|
int hlrDump(unsigned char *hlr,int hofs);
|
||||||
int peerAddress(char *did,char *sid,int flags);
|
int peerAddress(char *did,char *sid,int flags);
|
||||||
|
int fixResponses(struct response_set *responses);
|
||||||
|
@ -136,7 +136,7 @@ int packetMakeHeader(unsigned char *packet,int packet_maxlen,int *packet_len,
|
|||||||
for(i=0;i<TRANSID_SIZE;i++) packet[OFS_TRANSIDFIELD+i]=random()&0xff;
|
for(i=0;i<TRANSID_SIZE;i++) packet[OFS_TRANSIDFIELD+i]=random()&0xff;
|
||||||
|
|
||||||
/* payload rotation (not yet applied) */
|
/* payload rotation (not yet applied) */
|
||||||
packet[14]=0x00;
|
packet[OFS_ROTATIONFIELD]=0x00;
|
||||||
|
|
||||||
*packet_len=HEADERFIELDS_LEN;
|
*packet_len=HEADERFIELDS_LEN;
|
||||||
|
|
||||||
|
2
peers.c
2
peers.c
@ -93,6 +93,8 @@ int sendToPeers(unsigned char *packet,int packet_len,int method,int peerId,struc
|
|||||||
int n=0;
|
int n=0;
|
||||||
int ret;
|
int ret;
|
||||||
struct sockaddr_in peer_addr;
|
struct sockaddr_in peer_addr;
|
||||||
|
|
||||||
|
bzero(&peer_addr, sizeof(peer_addr));
|
||||||
peer_addr.sin_family=AF_INET;
|
peer_addr.sin_family=AF_INET;
|
||||||
peer_addr.sin_port = htons(4110);
|
peer_addr.sin_port = htons(4110);
|
||||||
|
|
||||||
|
4
server.c
4
server.c
@ -102,7 +102,6 @@ int server(char *backing_file,int size,int foregroundMode)
|
|||||||
pollfd fds;
|
pollfd fds;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
client_port=((struct sockaddr_in*)&recvaddr)->sin_port;
|
|
||||||
bzero((void *)&recvaddr,sizeof(recvaddr));
|
bzero((void *)&recvaddr,sizeof(recvaddr));
|
||||||
fds.fd=sock; fds.events=POLLIN;
|
fds.fd=sock; fds.events=POLLIN;
|
||||||
|
|
||||||
@ -110,7 +109,10 @@ int server(char *backing_file,int size,int foregroundMode)
|
|||||||
while (poll(&fds,1,1000)<1) sleep(0);
|
while (poll(&fds,1,1000)<1) sleep(0);
|
||||||
|
|
||||||
len=recvfrom(sock,buffer,sizeof(buffer),0,&recvaddr,&recvaddrlen);
|
len=recvfrom(sock,buffer,sizeof(buffer),0,&recvaddr,&recvaddrlen);
|
||||||
|
|
||||||
|
client_port=((struct sockaddr_in*)&recvaddr)->sin_port;
|
||||||
client_addr=((struct sockaddr_in*)&recvaddr)->sin_addr;
|
client_addr=((struct sockaddr_in*)&recvaddr)->sin_addr;
|
||||||
|
|
||||||
if (debug) fprintf(stderr,"Received packet from %s (len=%d).\n",inet_ntoa(client_addr),len);
|
if (debug) fprintf(stderr,"Received packet from %s (len=%d).\n",inet_ntoa(client_addr),len);
|
||||||
if (debug>1) dump("recvaddr",(unsigned char *)&recvaddr,recvaddrlen);
|
if (debug>1) dump("recvaddr",(unsigned char *)&recvaddr,recvaddrlen);
|
||||||
if (debug>3) dump("packet",(unsigned char *)buffer,len);
|
if (debug>3) dump("packet",(unsigned char *)buffer,len);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user