Changeset 6034


Ignore:
Timestamp:
Jul 1, 2019 5:41:29 AM (5 years ago)
Author:
riza
Message:

Re #2210 (misc): Minor patch for SSL error message. Thanks to George Joseph for the patch.

Location:
pjproject/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib/src/pj/ssl_sock_ossl.c

    r6022 r6034  
    211211} 
    212212 
    213 #define ERROR_LOG(msg, err) \ 
    214     PJ_LOG(2,("SSL", "%s (%s): Level: %d err: <%lu> <%s-%s-%s> len: %d", \ 
    215               msg, action, level, err, \ 
    216               (ERR_lib_error_string(err)? ERR_lib_error_string(err): "???"), \ 
    217               (ERR_func_error_string(err)? ERR_func_error_string(err):"???"),\ 
    218               (ERR_reason_error_string(err)? \ 
    219                ERR_reason_error_string(err): "???"), len)); 
    220  
    221 static void SSLLogErrors(char * action, int ret, int ssl_err, int len) 
     213#define ERROR_LOG(msg, err, ssock) \ 
     214{ \ 
     215    char buf[PJ_INET6_ADDRSTRLEN+10]; \ 
     216    PJ_LOG(2,("SSL", "%s (%s): Level: %d err: <%lu> <%s-%s-%s> len: %d " \ 
     217           "peer: %s", \ 
     218           msg, action, level, err, \ 
     219           (ERR_lib_error_string(err)? ERR_lib_error_string(err): "???"), \ 
     220           (ERR_func_error_string(err)? ERR_func_error_string(err):"???"),\ 
     221           (ERR_reason_error_string(err)? \ 
     222            ERR_reason_error_string(err): "???"), len, \ 
     223           (ssock && pj_sockaddr_has_addr(&ssock->rem_addr)? \ 
     224            pj_sockaddr_print(&ssock->rem_addr, buf, sizeof(buf), 3):"???")));\ 
     225} 
     226 
     227static void SSLLogErrors(char * action, int ret, int ssl_err, int len,  
     228                         pj_ssl_sock_t *ssock) 
    222229{ 
    223230    char *ssl_err_str = SSLErrorString(ssl_err); 
     
    234241            int level = 0; 
    235242            while (err2) { 
    236                 ERROR_LOG("SSL_ERROR_SYSCALL", err2); 
     243                ERROR_LOG("SSL_ERROR_SYSCALL", err2, ssock); 
    237244                level++; 
    238245                err2 = ERR_get_error(); 
     
    265272 
    266273        while (err2) { 
    267             ERROR_LOG("SSL_ERROR_SSL", err2); 
     274            ERROR_LOG("SSL_ERROR_SSL", err2, ssock); 
    268275            level++; 
    269276            err2 = ERR_get_error(); 
     
    303310    int len = 0; //dummy 
    304311 
    305     ERROR_LOG("STATUS_FROM_SSL_ERR", err); 
     312    ERROR_LOG("STATUS_FROM_SSL_ERR", err, ssock); 
    306313    level++; 
    307314 
     
    309316    if (err == SSL_ERROR_SSL) { 
    310317        err = ERR_get_error(); 
    311         ERROR_LOG("STATUS_FROM_SSL_ERR", err); 
     318        ERROR_LOG("STATUS_FROM_SSL_ERR", err, ssock); 
    312319    } 
    313320 
     
    327334 
    328335    /* Dig for more from OpenSSL error queue */ 
    329     SSLLogErrors(action, ret, err, len); 
     336    SSLLogErrors(action, ret, err, len, ssock); 
    330337 
    331338    ssock->last_err = ssl_err; 
  • pjproject/trunk/pjsip/src/pjsip/sip_transport_tls.c

    r6004 r6034  
    174174 
    175175static void tls_perror(const char *sender, const char *title, 
    176                        pj_status_t status) 
    177 { 
    178     PJ_PERROR(3,(sender, status, "%s: [code=%d]", title, status)); 
     176                       pj_status_t status, pj_str_t *remote_name) 
     177{ 
     178    PJ_PERROR(3,(sender, status, "%s: [code=%d]%s%.*s", title, status, 
     179        remote_name ? " peer: " : "", remote_name ? remote_name->slen : 0, 
     180        remote_name ? remote_name->ptr : "")); 
    179181} 
    180182 
     
    731733    if (status != PJ_SUCCESS) {  
    732734        tls_perror(listener->factory.obj_name,  
    733                    "Unable to start listener after closing it", status); 
     735                   "Unable to start listener after closing it", status, NULL); 
    734736 
    735737        return status; 
     
    740742    if (status != PJ_SUCCESS) { 
    741743        tls_perror(listener->factory.obj_name, 
    742                     "Unable to register the transport listener", status); 
     744                    "Unable to register the transport listener", status, NULL); 
    743745 
    744746        listener->is_registered = PJ_FALSE;      
     
    10861088                                   PJSIP_POOL_RDATA_INC); 
    10871089    if (!pool) { 
    1088         tls_perror(tls->base.obj_name, "Unable to create pool", PJ_ENOMEM); 
     1090        tls_perror(tls->base.obj_name, "Unable to create pool", PJ_ENOMEM, 
     1091                   NULL); 
    10891092        return PJ_ENOMEM; 
    10901093    } 
     
    17731776    if (status != PJ_SUCCESS) { 
    17741777 
    1775         tls_perror(tls->base.obj_name, "TLS connect() error", status); 
     1778        tls_perror(tls->base.obj_name, "TLS connect() error", status, 
     1779                   &tls->remote_name); 
    17761780 
    17771781        /* Cancel all delayed transmits */ 
     
    19171921    if (is_shutdown) { 
    19181922        status = tls->close_reason; 
    1919         tls_perror(tls->base.obj_name, "TLS connect() error", status); 
     1923        tls_perror(tls->base.obj_name, "TLS connect() error", status,  
     1924                   &tls->remote_name); 
    19201925 
    19211926        /* Cancel all delayed transmits */ 
     
    20162021    if (status != PJ_SUCCESS && status != PJ_EPENDING) { 
    20172022        tls_perror(tls->base.obj_name,  
    2018                    "Error sending keep-alive packet", status); 
     2023                   "Error sending keep-alive packet", status, 
     2024                   &tls->remote_name); 
    20192025 
    20202026        tls_init_shutdown(tls, status); 
Note: See TracChangeset for help on using the changeset viewer.