Changeset 3999 for pjproject/trunk/pjsip-apps/src/pjsua/pjsua_app.c
- Timestamp:
- Mar 30, 2012 7:10:13 AM (11 years ago)
- Location:
- pjproject/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk
-
pjproject/trunk/pjsip-apps/src/pjsua/pjsua_app.c
r3971 r3999 270 270 puts (" --stun-srv=FORMAT Set STUN server host or domain. This option may be"); 271 271 puts (" specified more than once. FORMAT is hostdom[:PORT]"); 272 273 #if defined(PJSIP_HAS_TLS_TRANSPORT) && (PJSIP_HAS_TLS_TRANSPORT != 0) 272 274 puts (""); 273 275 puts ("TLS Options:"); … … 281 283 puts (" --tls-neg-timeout Specify TLS negotiation timeout (default=no)"); 282 284 puts (" --tls-srv-name Specify TLS server name for multihosting server"); 285 puts (" --tls-cipher Specify prefered TLS cipher (optional)."); 286 puts (" May be specified multiple times"); 287 #endif 283 288 284 289 puts (""); … … 561 566 OPT_USE_TLS, OPT_TLS_CA_FILE, OPT_TLS_CERT_FILE, OPT_TLS_PRIV_FILE, 562 567 OPT_TLS_PASSWORD, OPT_TLS_VERIFY_SERVER, OPT_TLS_VERIFY_CLIENT, 563 OPT_TLS_NEG_TIMEOUT, OPT_TLS_ SRV_NAME,568 OPT_TLS_NEG_TIMEOUT, OPT_TLS_CIPHER, 564 569 OPT_CAPTURE_DEV, OPT_PLAYBACK_DEV, 565 570 OPT_CAPTURE_LAT, OPT_PLAYBACK_LAT, OPT_NO_TONES, OPT_JB_MAX_SIZE, … … 663 668 { "duration", 1, 0, OPT_DURATION}, 664 669 { "thread-cnt", 1, 0, OPT_THREAD_CNT}, 670 #if defined(PJSIP_HAS_TLS_TRANSPORT) && (PJSIP_HAS_TLS_TRANSPORT != 0) 665 671 { "use-tls", 0, 0, OPT_USE_TLS}, 666 672 { "tls-ca-file",1, 0, OPT_TLS_CA_FILE}, … … 671 677 { "tls-verify-client", 0, 0, OPT_TLS_VERIFY_CLIENT}, 672 678 { "tls-neg-timeout", 1, 0, OPT_TLS_NEG_TIMEOUT}, 673 { "tls-srv-name", 1, 0, OPT_TLS_SRV_NAME}, 679 { "tls-cipher", 1, 0, OPT_TLS_CIPHER}, 680 #endif 674 681 { "capture-dev", 1, 0, OPT_CAPTURE_DEV}, 675 682 { "playback-dev", 1, 0, OPT_PLAYBACK_DEV}, … … 1346 1353 break; 1347 1354 1355 #if defined(PJSIP_HAS_TLS_TRANSPORT) && (PJSIP_HAS_TLS_TRANSPORT != 0) 1348 1356 case OPT_USE_TLS: 1349 1357 cfg->use_tls = PJ_TRUE; 1350 #if !defined(PJSIP_HAS_TLS_TRANSPORT) || PJSIP_HAS_TLS_TRANSPORT==01351 PJ_LOG(1,(THIS_FILE, "Error: TLS support is not configured"));1352 return -1;1353 #endif1354 1358 break; 1355 1359 1356 1360 case OPT_TLS_CA_FILE: 1357 1361 cfg->udp_cfg.tls_setting.ca_list_file = pj_str(pj_optarg); 1358 #if !defined(PJSIP_HAS_TLS_TRANSPORT) || PJSIP_HAS_TLS_TRANSPORT==01359 PJ_LOG(1,(THIS_FILE, "Error: TLS support is not configured"));1360 return -1;1361 #endif1362 1362 break; 1363 1363 1364 1364 case OPT_TLS_CERT_FILE: 1365 1365 cfg->udp_cfg.tls_setting.cert_file = pj_str(pj_optarg); 1366 #if !defined(PJSIP_HAS_TLS_TRANSPORT) || PJSIP_HAS_TLS_TRANSPORT==01367 PJ_LOG(1,(THIS_FILE, "Error: TLS support is not configured"));1368 return -1;1369 #endif1370 1366 break; 1371 1367 … … 1376 1372 case OPT_TLS_PASSWORD: 1377 1373 cfg->udp_cfg.tls_setting.password = pj_str(pj_optarg); 1378 #if !defined(PJSIP_HAS_TLS_TRANSPORT) || PJSIP_HAS_TLS_TRANSPORT==01379 PJ_LOG(1,(THIS_FILE, "Error: TLS support is not configured"));1380 return -1;1381 #endif1382 1374 break; 1383 1375 … … 1395 1387 break; 1396 1388 1397 case OPT_TLS_SRV_NAME: 1398 cfg->udp_cfg.tls_setting.server_name = pj_str(pj_optarg); 1399 break; 1389 case OPT_TLS_CIPHER: 1390 { 1391 pj_ssl_cipher cipher; 1392 1393 if (pj_ansi_strnicmp(pj_optarg, "0x", 2) == 0) { 1394 pj_str_t cipher_st = pj_str(pj_optarg + 2); 1395 cipher = pj_strtoul2(&cipher_st, NULL, 16); 1396 } else { 1397 cipher = atoi(pj_optarg); 1398 } 1399 1400 if (pj_ssl_cipher_is_supported(cipher)) { 1401 static pj_ssl_cipher tls_ciphers[128]; 1402 1403 tls_ciphers[cfg->udp_cfg.tls_setting.ciphers_num++] = cipher; 1404 cfg->udp_cfg.tls_setting.ciphers = tls_ciphers; 1405 } else { 1406 pj_ssl_cipher ciphers[128]; 1407 unsigned j, ciphers_cnt; 1408 1409 ciphers_cnt = PJ_ARRAY_SIZE(ciphers); 1410 pj_ssl_cipher_get_availables(ciphers, &ciphers_cnt); 1411 1412 PJ_LOG(1,(THIS_FILE, "Cipher \"%s\" is not supported by " 1413 "TLS/SSL backend.", pj_optarg)); 1414 printf("Available TLS/SSL ciphers (%d):\n", ciphers_cnt); 1415 for (j=0; j<ciphers_cnt; ++j) 1416 printf("- 0x%06X: %s\n", ciphers[j], pj_ssl_cipher_name(ciphers[j])); 1417 return -1; 1418 } 1419 } 1420 break; 1421 #endif /* PJSIP_HAS_TLS_TRANSPORT */ 1400 1422 1401 1423 case OPT_CAPTURE_DEV: … … 1835 1857 } 1836 1858 1859 #if defined(PJSIP_HAS_TLS_TRANSPORT) && (PJSIP_HAS_TLS_TRANSPORT != 0) 1837 1860 /* TLS */ 1838 1861 if (config->use_tls) … … 1864 1887 } 1865 1888 1866 if (config->udp_cfg.tls_setting.server_name.slen) {1867 pj_ansi_sprintf(line, "--tls-srv-name %.*s\n",1868 (int)config->udp_cfg.tls_setting.server_name.slen,1869 config->udp_cfg.tls_setting.server_name.ptr);1870 pj_strcat2(&cfg, line);1871 }1872 1873 1889 if (config->udp_cfg.tls_setting.verify_server) 1874 1890 pj_strcat2(&cfg, "--tls-verify-server\n"); … … 1882 1898 pj_strcat2(&cfg, line); 1883 1899 } 1900 1901 for (i=0; i<config->udp_cfg.tls_setting.ciphers_num; ++i) { 1902 pj_ansi_sprintf(line, "--tls-cipher 0x%06X # %s\n", 1903 config->udp_cfg.tls_setting.ciphers[i], 1904 pj_ssl_cipher_name(config->udp_cfg.tls_setting.ciphers[i])); 1905 pj_strcat2(&cfg, line); 1906 } 1907 #endif 1884 1908 1885 1909 pj_strcat2(&cfg, "\n#\n# Media settings:\n#\n"); … … 3211 3235 const char *verif_msgs[32]; 3212 3236 unsigned verif_msg_cnt; 3237 3238 /* Dump server TLS cipher */ 3239 PJ_LOG(4,(THIS_FILE, "TLS cipher used: 0x%06X/%s", 3240 ssl_sock_info->cipher, 3241 pj_ssl_cipher_name(ssl_sock_info->cipher) )); 3213 3242 3214 3243 /* Dump server TLS certificate */
Note: See TracChangeset
for help on using the changeset viewer.