[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: