Ignore:
Timestamp:
Dec 8, 2006 9:58:31 PM (14 years ago)
Author:
bennylp
Message:

Initial implementation of TLS transport for ticket #3 (still not working at all)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjsip-apps/src/pjsua/pjsua_app.c

    r839 r849  
    4141    pj_bool_t               no_tcp; 
    4242    pj_bool_t               no_udp; 
     43    pj_bool_t               use_tls; 
    4344    pjsua_transport_config  udp_cfg; 
    4445    pjsua_transport_config  rtp_cfg; 
     
    138139    puts  ("  --use-stun1=host[:port]"); 
    139140    puts  ("  --use-stun2=host[:port]  Resolve local IP with the specified STUN servers"); 
     141#if defined(PJSIP_HAS_TLS_TRANSPORT) && PJSIP_HAS_TLS_TRANSPORT!=0 
     142    puts  ("  --use-tls           Enable TLS transport"); 
     143    puts  ("  --tls-ca-file       Specify TLS CA file"); 
     144    puts  ("  --tls-key-file      Specify TLS client key file"); 
     145    puts  ("  --tls-password      Specify TLS password"); 
     146#endif 
    140147    puts  (""); 
    141148    puts  ("Media Options:"); 
     
    300307           OPT_DURATION, OPT_NO_TCP, OPT_NO_UDP, OPT_THREAD_CNT, 
    301308           OPT_NOREFERSUB, 
     309           OPT_USE_TLS, OPT_TLS_CA_FILE, OPT_TLS_KEY_FILE, OPT_TLS_PASSWORD, 
    302310    }; 
    303311    struct pj_getopt_option long_options[] = { 
     
    354362        { "duration",   1, 0, OPT_DURATION}, 
    355363        { "thread-cnt", 1, 0, OPT_THREAD_CNT}, 
     364        { "use-tls",    0, 0, OPT_USE_TLS},  
     365        { "tls-ca-file",1, 0, OPT_TLS_CA_FILE}, 
     366        { "tls-key-file",1,0, OPT_TLS_KEY_FILE},  
     367        { "tls-password",1,0, OPT_TLS_PASSWORD}, 
    356368        { NULL, 0, 0, 0} 
    357369    }; 
     
    775787            break; 
    776788 
     789        case OPT_USE_TLS: 
     790            cfg->use_tls = PJ_TRUE; 
     791            break; 
     792             
     793        case OPT_TLS_CA_FILE: 
     794            cfg->udp_cfg.tls_ca_file = pj_str(pj_optarg); 
     795            break; 
     796             
     797        case OPT_TLS_KEY_FILE: 
     798            cfg->udp_cfg.tls_key_file = pj_str(pj_optarg); 
     799            break; 
     800             
     801        case OPT_TLS_PASSWORD: 
     802            cfg->udp_cfg.tls_password = pj_str(pj_optarg); 
     803            break; 
     804 
    777805        default: 
    778806            PJ_LOG(1,(THIS_FILE,  
     
    10031031    } 
    10041032 
     1033    /* TLS */ 
     1034    if (config->use_tls) 
     1035        pj_strcat2(&cfg, "--use-tls\n"); 
     1036    if (config->udp_cfg.tls_ca_file.slen) { 
     1037        pj_ansi_sprintf(line, "--tls-ca-file %.*s\n", 
     1038                        (int)config->udp_cfg.tls_ca_file.slen,  
     1039                        config->udp_cfg.tls_ca_file.ptr); 
     1040        pj_strcat2(&cfg, line); 
     1041    } 
     1042    if (config->udp_cfg.tls_key_file.slen) { 
     1043        pj_ansi_sprintf(line, "--tls-key-file %.*s\n", 
     1044                        (int)config->udp_cfg.tls_key_file.slen,  
     1045                        config->udp_cfg.tls_key_file.ptr); 
     1046        pj_strcat2(&cfg, line); 
     1047    } 
     1048    if (config->udp_cfg.tls_password.slen) { 
     1049        pj_ansi_sprintf(line, "--tls-password %.*s\n", 
     1050                        (int)config->udp_cfg.tls_password.slen,  
     1051                        config->udp_cfg.tls_password.ptr); 
     1052        pj_strcat2(&cfg, line); 
     1053    } 
    10051054 
    10061055    pj_strcat2(&cfg, "\n#\n# Media settings:\n#\n"); 
     
    27652814    } 
    27662815 
    2767  
    27682816    /* Add UDP transport unless it's disabled. */ 
    27692817    if (!app_config.no_udp) { 
     
    27782826        pjsua_acc_set_online_status(current_acc, PJ_TRUE); 
    27792827    } 
     2828 
     2829#if defined(PJSIP_HAS_TLS_TRANSPORT) && PJSIP_HAS_TLS_TRANSPORT!=0 
     2830    /* Add TLS transport when application wants one */ 
     2831    if (app_config.use_tls) { 
     2832        status = pjsua_transport_create(PJSIP_TRANSPORT_TLS, 
     2833                                        &app_config.udp_cfg,  
     2834                                        &transport_id); 
     2835        if (status != PJ_SUCCESS) 
     2836            goto on_error; 
     2837    } 
     2838#endif 
    27802839 
    27812840    if (transport_id == -1) { 
Note: See TracChangeset for help on using the changeset viewer.