struct fwp_contract cnt_res;
struct fwp_ctable_entry *cnt_req;
struct fwp_msgb *msgb_res;
-
+
fwp_msg_contract_pull(msgb, &cnt_res);
cnt_req = fwp_ctable_get(&ctable_negotiate, hid);
msgb_res->start = msgb_res->data = msgb_res->start + msgb_res->addrlen;
msgb_res->tail = msgb_res->start + msgb_res->len;
- memcpy(msgb_res->addr, &cnt_req->saddr, sizeof(msgb_res->addrlen));
memcpy(msgb_res->data, msgb->start, sizeof(msgb_res->len));
+ memcpy((void*)msgb_res->addr, (void*)msgb->addr,
+ sizeof(msgb->addrlen-1));
- FWP_DEBUG("cnt_req->addrlen = %d\n", cnt_req->addrlen);
- FWP_DEBUG("cnt_req->addr = %s\n", (char*)&cnt_req->saddr);
- FWP_DEBUG("msgb->addr = %s\n", msgb->addr);
- fwp_ctable_remove(&ctable_negotiate, hid);
+ //fwp_ctable_remove(&ctable_negotiate, hid);
/*send response through unix socket */
- if (sendto(fwp_lsockfd, msgb_res->start, msgb_res->len, 0,
- (struct sockaddr*)msgb_res->addr,
- msgb_res->addrlen) == -1){
+ if (sendto(fwp_lsockfd, msgb_res->start, msgb_res->len, 0,
+ (struct sockaddr *)msgb_res->addr,
+ msgb_res->addrlen) == -1) {
- // if (errno == EINTR)
- // continue;
- perror("fwp_agent_negotiate_response:Error while sending msg.\n");
- }
+ /* if (errno == EINTR)
+ continue;*/
+ perror("fwp_agent_negotiate_response:Error while sending msg.\n");
- /*fwp_vres_send(service_vres_id, msgb_res);*/
+ }
+ /*fwp_vres_send(service_vres_id, msgb_res);*/
return 0;
}
fwp_msg_contract_pull(msgb, &cnt);
memcpy(&ctentry.contract, &cnt, sizeof(cnt));
- memcpy(&ctentry.saddr, msgb->addr, sizeof(msgb->addrlen));
+ memcpy((void*)&ctentry.saddr, (void*)msgb->addr,
+ sizeof(msgb->addrlen));
ctentry.addrlen = msgb->addrlen;
ctentry.hid = hid;
hid = fwp_ctable_put(&ctable_negotiate, &ctentry);
fwp_agent_negotiate_response(hid, msgb);
- /*msgb->data = msgb->start;
+ msgb->data = msgb->start;
fwp_msg_header_put(msgb, FWP_NEGT_REQ, hid);
msgb->addrlen = sizeof(fwp_mngr_addr);
msgb->addr = (unsigned char*)&fwp_mngr_addr;
- fwp_vres_send(service_vres_id, msgb);*/
+ fwp_vres_send(service_vres_id, msgb);
}
void fwp_agent_msg_handler(struct fwp_msgb *msgb)
return (fwp_lsockfd);
}
+ FWP_DEBUG("AP address = %s\n", fwp_mngr_addr_s);
fwp_mngr_addr.sin_family = AF_INET;
fwp_mngr_addr.sin_addr.s_addr = inet_addr(fwp_mngr_addr_s);
fwp_mngr_addr.sin_port = htons(FWP_MNGR_UDP_PORT);