Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 12422
Collapse All | Expand All

(-)mod_perl-1.27/src/modules/perl/Connection.xs (-3 / +4 lines)
Lines 78-90 Link Here
78
    RETVAL = newSVpv((char *)&conn->remote_addr,
78
    RETVAL = newSVpv((char *)&conn->remote_addr,
79
                      sizeof conn->remote_addr);
79
                      sizeof conn->remote_addr);
80
    if(sv_addr) {
80
    if(sv_addr) {
81
        struct sockaddr_in addr; 
81
        struct sockaddr_storage addr; 
82
        STRLEN sockaddrlen; 
82
        STRLEN sockaddrlen; 
83
        char * new_addr = SvPV(sv_addr,sockaddrlen); 
83
        char * new_addr = SvPV(sv_addr,sockaddrlen); 
84
        if (sockaddrlen != sizeof(addr)) { 
84
        if (sockaddrlen != sizeof(addr)) { 
85
            croak("Bad arg length for remote_addr, length is %d, should be %d", 		  sockaddrlen, sizeof(addr)); 
85
            croak("Bad arg length for remote_addr, length is %d, should be %d", 		  sockaddrlen, sizeof(addr)); 
86
        } 
86
        } 
87
        Copy(new_addr, &addr, sizeof addr, char); 
87
	memset(&addr, 0, sizeof addr);
88
        Copy(new_addr, &addr, sizeof new_addr, char); 
88
        conn->remote_addr = addr;
89
        conn->remote_addr = addr;
89
    }
90
    }
90
91
Lines 106-112 Link Here
106
#else
107
#else
107
        conn->remote_ip = pstrdup(conn->pool, (char *)SvPV(ST(1),na));
108
        conn->remote_ip = pstrdup(conn->pool, (char *)SvPV(ST(1),na));
108
#endif
109
#endif
109
        conn->remote_addr.sin_addr.s_addr = inet_addr(conn->remote_ip);
110
	((struct sockaddr_in *) &conn->remote_addr)->sin_addr.s_addr = inet_addr(conn->remote_ip);
110
    }
111
    }
111
112
112
    OUTPUT:
113
    OUTPUT:

Return to bug 12422