Crypt-NSS

 view release on metacpan or  search on metacpan

NSS.xs  view on Meta::CPAN

        RETVAL = PR_Available(self->ssl_fd);
    OUTPUT:
        RETVAL

void
_peeraddr(self)
    Net::NSS::SSL self;
    PREINIT:
        char * hostname;
        PRNetAddr addr;
    PPCODE:
        if (self->ssl_fd == NULL || !self->is_connected) {
            croak("Can't get peeraddr because we're not connected");
        }
        EVALUATE_PR_CALL(PR_GetPeerName(self->ssl_fd, &addr), "Failed to get peer addr")
        Newz(1, hostname, 16, char);
        if (PR_NetAddrToString(&addr, hostname, 16) != PR_SUCCESS) {
            Safefree(hostname);
            throw_exception_from_nspr_error("Failed to convert PRNetAddr to string");
        }
        EXTEND(SP, 2);
        PUSHs(sv_2mortal(newSVpv(hostname, 0)));
        PUSHs(sv_2mortal(newSViv(PR_ntohs(addr.inet.port))));
        Safefree(hostname);

void
_sockaddr(self)
    Net::NSS::SSL self;
    PREINIT:
        char * hostname;
        PRNetAddr addr;
    PPCODE:
        EVALUATE_PR_CALL(PR_GetSockName(self->ssl_fd, &addr), "Failed to get peer addr")
        Newz(1, hostname, 16, char);
        if (PR_NetAddrToString(&addr, hostname, 16) != PR_SUCCESS) {
            Safefree(hostname);
            throw_exception_from_nspr_error("Failed to convert PRNetAddr to string");
        }
        EXTEND(SP, 2);
        PUSHs(sv_2mortal(newSVpv(hostname, 0)));
        PUSHs(sv_2mortal(newSViv(PR_ntohs(addr.inet.port))));
        Safefree(hostname);



( run in 0.652 second using v1.01-cache-2.11-cpan-71847e10f99 )