change getpeername() mix with pollfd to ipv6
octave_value val=args(0);
Matrix sock_m=args(1).matrix_value();
int sock,i,k,error_code;
int nsock=sock_m.rows();
int type_id=0; //=val.type_id();
if((int)sock_m.data()[0]==0){
int num,pid;
struct pollfd *pollfd;
pollfd=(struct pollfd *)malloc(nsock*sizeof(struct pollfd));
for(i=0;i<nsock;i++){
sock=(int)sock_m.data()[i+nsock];
pollfd[i].fd=sock;
pollfd[i].events=0;
pollfd[i].events=POLLIN|POLLERR|POLLHUP;
}
num=poll(pollfd,nsock,0);
if(num){
for(k=0;k<nsock;k++){
if(pollfd[k].revents && (pollfd[k].fd !=0)){
sockaddr_in6 r_addr;
struct hostent *hehe;
socklen_t len = sizeof(r_addr);
getpeername(pollfd[k].fd, (sockaddr*)&r_addr, &len );
hehe=gethostbyaddr((char
*)&r_addr.sin6_addr,sizeof(r_addr.sin6_addr), A
F_INET6);
this is still wrong,...
--
Best regard,
Dhoto
-------------------------{@
dhoto@eepis-its.edu
Reply to: