Skip to content

Commit 53b961e

Browse files
committed
fixing *rcvframe
1 parent 9016934 commit 53b961e

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/receiver.cpp

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ static MESGB *rcvframe(int sockfd, QTYPE *q){
209209
// cek struktur frame
210210

211211
if (c[0].soh != SOH || c[0].stx != STX || c[0].etx != ETX || c[0].msgno != msgno) {
212-
printf("kirim NAK\n");
212+
printf("kirim NAK header\n");
213213
exit(-3);
214214
}
215215

@@ -220,16 +220,17 @@ static MESGB *rcvframe(int sockfd, QTYPE *q){
220220
checksumarr[1] = c[0].stx;
221221
checksumarr[2] = c[0].etx;
222222
checksumarr[3] = c[0].msgno;
223-
checksumarr[4] = c[0].data[0];
224-
unsigned int checksum = crc32(&checksumarr);
223+
checksumarr[4] = *(c[0].data);
224+
unsigned int checksum = crc32a(checksumarr);
225225
if (checksum != c[0].checksum) {
226-
printf("kirim NAK\n");
226+
printf("kirim NAK checksumarr\n");
227227
exit(-4);
228228
}
229229

230230
// succeed, sendto(transmitter, ACK);
231-
232-
int send_ack = sendto(sockfd, ACK, sizeof(ACK), 0, (struct sockaddr*)&cli_addr, clilen);
231+
int* ack_table;
232+
ack_table[0] = ACK;
233+
int send_ack = sendto(sockfd, ack_table, sizeof(ACK), 0, (struct sockaddr*)&cli_addr, clilen);
233234
if(send_ack < 0){ //error sending ACK character
234235
printf("Error send ACK: %d", send_ack);
235236
exit(-2);
@@ -238,8 +239,8 @@ static MESGB *rcvframe(int sockfd, QTYPE *q){
238239
// succeed reading character
239240
////////////////////////////////////
240241
q->count++;
241-
q->data[q->rear] = c[0].data;
242-
cur.data = &(q->data[q->rear]);
242+
q->data[q->rear] = *(c[0].data);
243+
cur->data = &(q->data[q->rear]);
243244
q->rear++;
244245
if(q->rear == RXQSIZE) {
245246
q->rear = 0;

0 commit comments

Comments
 (0)