
FINS/UDP Method | Section |
85/* RECEIVE FINS RESPONSE*/
86addrlen = sizeof(cs_addr);
87
88if ((recvlen = recvfrom(sockfd,fins_resp,MAX_MSG,0,&cs_addr,&addrlen)) < 0)
89{
90if (errno == EINTR)
91 | goto CMND_SEND; /* |
92err_exit("receive error");
93}
94else
95{
96 | alarm(0); /* STOP RESPONSE MONITOR TIMER*/ |
97printf("recv length %d¥n",recvlen);
99 | if (recvlen < 14) /* ILLEGAL RESPONSE LENGTH CHECK*/ |
100err_exit("FINS length error");
101if ((fins_cmnd[3] != fins_resp[6]) (fins_cmnd[4] != fins_resp[7])
102(fins_cmnd[5] != fins_resp[8]) )
103 | { /* DESTINATION ADDRESS CHECK*/ |
104err_exit("illegal source address error");
105}
106 | if(fins_cmnd[9] != fins_resp[9]) /* SID CHECK*/ |
107err_exit("illegal SID error");
108}
109
110/* CLOSE SOCKET*/
111close(sockfd);
112
113}
116/*
117 * ERROR PROCESSING FUNCTIONS
118*/
119err_exit(err_msg)
120char *err_msg;
121{
122printf("client: %s %x¥n",err_msg,errno);
123exit(1);
124}
125
126/*
127* SIGNAL CAPTURE FUNCTIONS
128*/
129recv_fail()
130{
131printf("response timeout error ¥n");
132}