Changeset 1225
- Timestamp:
- Apr 29, 2007 1:55:56 PM (18 years ago)
- Location:
- pjproject/branches/symbian/pjsip
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/branches/symbian/pjsip/build/pjsip.dsw
r238 r1225 106 106 ############################################################################### 107 107 108 Project: "pjsua"= .\pjsua.dsp- Package Owner=<4>108 Project: "pjsua"="..\..\pjsip-apps\build\pjsua.dsp" - Package Owner=<4> 109 109 110 110 Package=<5> … … 171 171 Project_Dep_Name pjsip_core 172 172 End Project Dependency 173 Begin Project Dependency 174 Project_Dep_Name pjlib_util 175 End Project Dependency 176 Begin Project Dependency 177 Project_Dep_Name pjmedia 178 End Project Dependency 179 Begin Project Dependency 180 Project_Dep_Name pjmedia_codec 181 End Project Dependency 182 Begin Project Dependency 183 Project_Dep_Name pjsip_simple 184 End Project Dependency 185 Begin Project Dependency 186 Project_Dep_Name pjsip_ua 187 End Project Dependency 173 188 }}} 174 189 -
pjproject/branches/symbian/pjsip/src/pjsip/sip_parser.c
r789 r1225 134 134 pj_pool_t *pool, 135 135 pj_str_t *pname, 136 pj_str_t *pvalue); 136 pj_str_t *pvalue, 137 unsigned option); 137 138 static void int_parse_hparam( pj_scanner *scanner, 138 139 pj_pool_t *pool, … … 981 982 /* Parse parameter (";" pname ["=" pvalue]). */ 982 983 static void int_parse_param( pj_scanner *scanner, pj_pool_t *pool, 983 pj_str_t *pname, pj_str_t *pvalue) 984 pj_str_t *pname, pj_str_t *pvalue, 985 unsigned option) 984 986 { 985 987 /* Get ';' character */ … … 988 990 /* Get pname and optionally pvalue */ 989 991 pjsip_parse_param_imp(scanner, pool, pname, pvalue, 990 PJSIP_PARSE_REMOVE_QUOTE);992 option); 991 993 } 992 994 … … 1199 1201 pj_str_t pname, pvalue; 1200 1202 1201 int_parse_param( scanner, pool, &pname, &pvalue );1203 int_parse_param( scanner, pool, &pname, &pvalue, 0); 1202 1204 1203 1205 if (!parser_stricmp(pname, pjsip_USER_STR) && pvalue.slen) { … … 1355 1357 &hdr->values[hdr->count]); 1356 1358 hdr->count++; 1359 1360 if (hdr->count >= PJSIP_GENERIC_ARRAY_MAX_COUNT) 1361 break; 1357 1362 } 1358 1363 parse_hdr_end(scanner); … … 1419 1424 pj_str_t pname, pvalue; 1420 1425 1421 int_parse_param( scanner, pool, &pname, &pvalue );1426 int_parse_param( scanner, pool, &pname, &pvalue, 0); 1422 1427 if (!parser_stricmp(pname, pjsip_Q_STR) && pvalue.slen) { 1423 1428 char *dot_pos = (char *) memchr(pvalue.ptr, '.', pvalue.slen); … … 1513 1518 while (*scanner->curptr == ';') { 1514 1519 pj_str_t pname, pvalue; 1515 int_parse_param(scanner, ctx->pool, &pname, &pvalue );1520 int_parse_param(scanner, ctx->pool, &pname, &pvalue, 0); 1516 1521 concat_param(&hdr->media.param, ctx->pool, &pname, &pvalue); 1517 1522 } … … 1566 1571 pj_str_t pname, pvalue; 1567 1572 1568 int_parse_param( scanner, pool, &pname, &pvalue );1573 int_parse_param( scanner, pool, &pname, &pvalue, 0); 1569 1574 1570 1575 if (!parser_stricmp(pname, pjsip_TAG_STR)) { … … 1651 1656 pj_str_t pname, pvalue; 1652 1657 1653 int_parse_param( scanner, pool, &pname, &pvalue );1658 int_parse_param( scanner, pool, &pname, &pvalue, 0); 1654 1659 1655 1660 if (!parser_stricmp(pname, pjsip_BRANCH_STR) && pvalue.slen) { … … 1714 1719 pjsip_param *p = (pjsip_param *) 1715 1720 pj_pool_alloc(pool, sizeof(pjsip_param)); 1716 int_parse_param(scanner, pool, &p->name, &p->value );1721 int_parse_param(scanner, pool, &p->name, &p->value, 0); 1717 1722 pj_list_insert_before(&hdr->other_param, p); 1718 1723 } -
pjproject/branches/symbian/pjsip/src/pjsip/sip_uri.c
r789 r1225 111 111 if (p->value.slen) { 112 112 *buf++ = '='; 113 copy_advance_escape(buf, p->value, (*pvalue_spec)); 113 if (*p->value.ptr == '"') 114 copy_advance(buf, p->value); 115 else 116 copy_advance_escape(buf, p->value, (*pvalue_spec)); 114 117 } 115 118 p = p->next; -
pjproject/branches/symbian/pjsip/src/test-pjsip/msg_logger.c
r127 r1225 64 64 -1, /* Id */ 65 65 PJSIP_MOD_PRIORITY_TRANSPORT_LAYER-1,/* Priority */ 66 NULL, /* User data. */67 66 NULL, /* load() */ 68 67 NULL, /* start() */ -
pjproject/branches/symbian/pjsip/src/test-pjsip/msg_test.c
r127 r1225 674 674 675 675 /*****************************************************************************/ 676 /* Test various header parsing and production */ 677 static int hdr_test_success(pjsip_hdr *h); 678 static int hdr_test_accept1(pjsip_hdr *h); 679 static int hdr_test_accept2(pjsip_hdr *h); 680 static int hdr_test_authorization(pjsip_hdr *h); 681 static int hdr_test_cid(pjsip_hdr *h); 682 static int hdr_test_contact0(pjsip_hdr *h); 683 static int hdr_test_contact1(pjsip_hdr *h); 684 static int hdr_test_content_length(pjsip_hdr *h); 685 static int hdr_test_content_type(pjsip_hdr *h); 686 static int hdr_test_from(pjsip_hdr *h); 687 static int hdr_test_proxy_authenticate(pjsip_hdr *h); 688 static int hdr_test_record_route(pjsip_hdr *h); 689 static int hdr_test_to(pjsip_hdr *h); 690 static int hdr_test_via(pjsip_hdr *h); 691 692 693 694 #define GENERIC_PARAM "p0=a;p1=\"ab:;cd\";p3" 695 #define GENERIC_PARAM_PARSED "p0=a;p1=\"ab:;cd\";p3" 696 #define PARAM_CHAR "[]/:&+$" 697 #define SIMPLE_ADDR_SPEC "sip:host" 698 #define ADDR_SPEC SIMPLE_ADDR_SPEC ";" PARAM_CHAR "=" PARAM_CHAR 699 #define NAME_ADDR "<" ADDR_SPEC ">" 700 701 #define HDR_FLAG_PARSE_FAIL 1 702 #define HDR_FLAG_DONT_PRINT 2 703 704 #define TEST_EMPTY_HDR 0 705 706 struct hdr_test_t 707 { 708 char *hname; 709 char *hshort_name; 710 char *hcontent; 711 int (*test)(pjsip_hdr*); 712 unsigned flags; 713 } hdr_test_data[] = 714 { 715 { 716 /* Overflowing generic string header */ 717 "Accept", NULL, 718 "a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, " \ 719 "a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, " \ 720 "a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, " \ 721 "a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, " \ 722 "a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, " \ 723 "a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, " \ 724 "a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, " \ 725 "a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a", 726 &hdr_test_success, 727 HDR_FLAG_PARSE_FAIL 728 }, 729 730 { 731 /* Normal Accept */ 732 "Accept", NULL, 733 "application/*, text/plain", 734 &hdr_test_accept1 735 }, 736 737 { 738 /* Accept with params */ 739 "Accept", NULL, 740 "application/*;p1=v1, text/plain", 741 &hdr_test_accept2 742 }, 743 744 { 745 /* Authorization, testing which params should be quoted */ 746 "Authorization", NULL, 747 "Digest username=\"username\", realm=\"realm\", nonce=\"nonce\", " \ 748 "uri=\"sip:domain\", response=\"RESPONSE\", algorithm=MD5, " \ 749 "cnonce=\"CNONCE\", opaque=\"OPAQUE\", qop=auth, nc=00000001", 750 &hdr_test_authorization 751 }, 752 753 { 754 /* Call ID */ 755 "Call-ID", "i", 756 "-.!%*_+`'~()<>:\\\"/[]?{}", 757 &hdr_test_cid, 758 }, 759 760 { 761 /* Parameter belong to hparam */ 762 "Contact", "m", 763 SIMPLE_ADDR_SPEC ";p1=v1", 764 &hdr_test_contact0, 765 HDR_FLAG_DONT_PRINT 766 }, 767 768 { 769 /* generic-param in Contact header */ 770 "Contact", "m", 771 NAME_ADDR ";" GENERIC_PARAM, 772 &hdr_test_contact1 773 }, 774 775 { 776 /* Content-Length */ 777 "Content-Length", "l", 778 "10", 779 &hdr_test_content_length 780 }, 781 782 { 783 /* Content-Type, with generic-param */ 784 "Content-Type", "c", 785 "application/sdp" ";" GENERIC_PARAM, 786 &hdr_test_content_type, 787 HDR_FLAG_DONT_PRINT 788 }, 789 790 { 791 /* From, testing parameters and generic-param */ 792 "From", "f", 793 NAME_ADDR ";" GENERIC_PARAM, 794 &hdr_test_from 795 }, 796 797 { 798 /* Proxy-Authenticate, testing which params should be quoted */ 799 "Proxy-Authenticate", NULL, 800 "Digest realm=\"realm\",domain=\"sip:domain\",nonce=\"nonce\"," \ 801 "opaque=\"opaque\",stale=true,algorithm=MD5,qop=\"auth\"", 802 &hdr_test_proxy_authenticate 803 }, 804 805 { 806 /* Record-Route, param belong to header */ 807 "Record-Route", NULL, 808 NAME_ADDR ";" GENERIC_PARAM, 809 &hdr_test_record_route 810 }, 811 812 { 813 /* To */ 814 "To", "t", 815 NAME_ADDR ";" GENERIC_PARAM, 816 &hdr_test_to 817 }, 818 819 { 820 /* Via */ 821 "Via", "v", 822 "SIP/2.0/XYZ host" ";" GENERIC_PARAM, 823 &hdr_test_via 824 } 825 }; 826 827 static int hdr_test_success(pjsip_hdr *h) 828 { 829 PJ_UNUSED_ARG(h); 830 return 0; 831 } 832 833 /* "application/*, text/plain\r\n" */ 834 static int hdr_test_accept1(pjsip_hdr *h) 835 { 836 pjsip_accept_hdr *hdr = (pjsip_accept_hdr*)h; 837 838 if (h->type != PJSIP_H_ACCEPT) 839 return -1110; 840 841 if (hdr->count != 2) 842 return -1120; 843 844 if (pj_strcmp2(&hdr->values[0], "application/*")) 845 return -1130; 846 847 if (pj_strcmp2(&hdr->values[1], "text/plain")) 848 return -1140; 849 850 return 0; 851 } 852 853 /* "application/*;p1=v1, text/plain\r\n" */ 854 static int hdr_test_accept2(pjsip_hdr *h) 855 { 856 pjsip_accept_hdr *hdr = (pjsip_accept_hdr*)h; 857 858 if (h->type != PJSIP_H_ACCEPT) 859 return -1210; 860 861 if (hdr->count != 2) 862 return -1220; 863 864 if (pj_strcmp2(&hdr->values[0], "application/*;p1=v1")) 865 return -1230; 866 867 if (pj_strcmp2(&hdr->values[1], "text/plain")) 868 return -1240; 869 870 return 0; 871 } 872 873 /* 874 "Digest username=\"username\", realm=\"realm\", nonce=\"nonce\", " \ 875 "uri=\"sip:domain\", response=\"RESPONSE\", algorithm=MD5, " \ 876 "cnonce=\"CNONCE\", opaque=\"OPAQUE\", qop=auth, nc=00000001", 877 */ 878 static int hdr_test_authorization(pjsip_hdr *h) 879 { 880 pjsip_authorization_hdr *hdr = (pjsip_authorization_hdr*)h; 881 882 if (h->type != PJSIP_H_AUTHORIZATION) 883 return -1410; 884 885 if (pj_strcmp2(&hdr->scheme, "Digest")) 886 return -1420; 887 888 if (pj_strcmp2(&hdr->credential.digest.username, "username")) 889 return -1421; 890 891 if (pj_strcmp2(&hdr->credential.digest.realm, "realm")) 892 return -1422; 893 894 if (pj_strcmp2(&hdr->credential.digest.nonce, "nonce")) 895 return -1423; 896 897 if (pj_strcmp2(&hdr->credential.digest.uri, "sip:domain")) 898 return -1424; 899 900 if (pj_strcmp2(&hdr->credential.digest.response, "RESPONSE")) 901 return -1425; 902 903 if (pj_strcmp2(&hdr->credential.digest.algorithm, "MD5")) 904 return -1426; 905 906 if (pj_strcmp2(&hdr->credential.digest.cnonce, "CNONCE")) 907 return -1427; 908 909 if (pj_strcmp2(&hdr->credential.digest.opaque, "OPAQUE")) 910 return -1428; 911 912 if (pj_strcmp2(&hdr->credential.digest.qop, "auth")) 913 return -1429; 914 915 if (pj_strcmp2(&hdr->credential.digest.nc, "00000001")) 916 return -1430; 917 918 return 0; 919 } 920 921 922 /* 923 "-.!%*_+`'~()<>:\\\"/[]?{}\r\n" 924 */ 925 static int hdr_test_cid(pjsip_hdr *h) 926 { 927 pjsip_cid_hdr *hdr = (pjsip_cid_hdr*)h; 928 929 if (h->type != PJSIP_H_CALL_ID) 930 return -1510; 931 932 if (pj_strcmp2(&hdr->id, "-.!%*_+`'~()<>:\\\"/[]?{}\r\n")) 933 return -1520; 934 935 return 0; 936 } 937 938 /* 939 #define SIMPLE_ADDR_SPEC "sip:host" 940 */ 941 static int test_simple_addr_spec(pjsip_uri *uri) 942 { 943 pjsip_sip_uri *sip_uri = (pjsip_sip_uri *)pjsip_uri_get_uri(uri); 944 945 if (!PJSIP_URI_SCHEME_IS_SIP(uri)) 946 return -900; 947 948 if (pj_strcmp2(&sip_uri->host, "host")) 949 return -910; 950 951 if (sip_uri->port != 0) 952 return -920; 953 954 return 0; 955 } 956 957 /* 958 #define PARAM_CHAR "[]/:&+$" 959 #define SIMPLE_ADDR_SPEC "sip:host" 960 #define ADDR_SPEC SIMPLE_ADDR_SPEC ";" PARAM_CHAR "=" PARAM_CHAR 961 #define NAME_ADDR "<" ADDR_SPEC ">" 962 */ 963 static int nameaddr_test(pjsip_uri *uri) 964 { 965 pjsip_sip_uri *sip_uri = (pjsip_sip_uri *)pjsip_uri_get_uri(uri); 966 pjsip_param *param; 967 int rc; 968 969 if (!PJSIP_URI_SCHEME_IS_SIP(uri)) 970 return -930; 971 972 rc = test_simple_addr_spec((pjsip_uri*)sip_uri); 973 if (rc != 0) 974 return rc; 975 976 if (pj_list_size(&sip_uri->other_param) != 1) 977 return -940; 978 979 param = sip_uri->other_param.next; 980 981 if (pj_strcmp2(¶m->name, PARAM_CHAR)) 982 return -942; 983 984 if (pj_strcmp2(¶m->value, PARAM_CHAR)) 985 return -943; 986 987 return 0; 988 } 989 990 /* 991 #define GENERIC_PARAM "p0=a;p1=\"ab:;cd\";p3" 992 */ 993 static int generic_param_test(pjsip_param *param_head) 994 { 995 pjsip_param *param; 996 997 if (pj_list_size(param_head) != 3) 998 return -950; 999 1000 param = param_head->next; 1001 1002 if (pj_strcmp2(¶m->name, "p0")) 1003 return -952; 1004 if (pj_strcmp2(¶m->value, "a")) 1005 return -953; 1006 1007 param = param->next; 1008 if (pj_strcmp2(¶m->name, "p1")) 1009 return -954; 1010 if (pj_strcmp2(¶m->value, "\"ab:;cd\"")) 1011 return -955; 1012 1013 param = param->next; 1014 if (pj_strcmp2(¶m->name, "p3")) 1015 return -958; 1016 if (pj_strcmp2(¶m->value, "")) 1017 return -959; 1018 1019 return 0; 1020 } 1021 1022 1023 1024 /* 1025 SIMPLE_ADDR_SPEC ";p1=v1\r\n" 1026 */ 1027 static int hdr_test_contact0(pjsip_hdr *h) 1028 { 1029 pjsip_contact_hdr *hdr = (pjsip_contact_hdr*)h; 1030 pjsip_param *param; 1031 int rc; 1032 1033 if (h->type != PJSIP_H_CONTACT) 1034 return -1610; 1035 1036 rc = test_simple_addr_spec(hdr->uri); 1037 if (rc != 0) 1038 return rc; 1039 1040 if (pj_list_size(&hdr->other_param) != 1) 1041 return -1620; 1042 1043 param = hdr->other_param.next; 1044 1045 if (pj_strcmp2(¶m->name, "p1")) 1046 return -1630; 1047 1048 if (pj_strcmp2(¶m->value, "v1")) 1049 return -1640; 1050 1051 return 0; 1052 } 1053 1054 /* 1055 NAME_ADDR GENERIC_PARAM "\r\n", 1056 */ 1057 static int hdr_test_contact1(pjsip_hdr *h) 1058 { 1059 pjsip_contact_hdr *hdr = (pjsip_contact_hdr*)h; 1060 int rc; 1061 1062 if (h->type != PJSIP_H_CONTACT) 1063 return -1710; 1064 1065 rc = nameaddr_test(hdr->uri); 1066 if (rc != 0) 1067 return rc; 1068 1069 rc = generic_param_test(&hdr->other_param); 1070 if (rc != 0) 1071 return rc; 1072 1073 return 0; 1074 } 1075 1076 /* 1077 "10" 1078 */ 1079 static int hdr_test_content_length(pjsip_hdr *h) 1080 { 1081 pjsip_clen_hdr *hdr = (pjsip_clen_hdr*)h; 1082 1083 if (h->type != PJSIP_H_CONTENT_LENGTH) 1084 return -1810; 1085 1086 if (hdr->len != 10) 1087 return -1820; 1088 1089 return 0; 1090 } 1091 1092 /* 1093 "application/sdp" GENERIC_PARAM, 1094 */ 1095 static int hdr_test_content_type(pjsip_hdr *h) 1096 { 1097 pjsip_ctype_hdr *hdr = (pjsip_ctype_hdr*)h; 1098 1099 if (h->type != PJSIP_H_CONTENT_TYPE) 1100 return -1910; 1101 1102 if (pj_strcmp2(&hdr->media.type, "application")) 1103 return -1920; 1104 1105 if (pj_strcmp2(&hdr->media.subtype, "sdp")) 1106 return -1930; 1107 1108 /* Currently, if the media parameter contains escaped characters, 1109 * pjsip will print the parameter unescaped. 1110 */ 1111 PJ_TODO(FIX_PARAMETER_IN_MEDIA_TYPE); 1112 1113 if (pj_strcmp2(&hdr->media.param, ";" GENERIC_PARAM_PARSED)) 1114 return -1940; 1115 1116 return 0; 1117 } 1118 1119 /* 1120 NAME_ADDR GENERIC_PARAM, 1121 */ 1122 static int hdr_test_from(pjsip_hdr *h) 1123 { 1124 pjsip_from_hdr *hdr = (pjsip_from_hdr*)h; 1125 int rc; 1126 1127 if (h->type != PJSIP_H_FROM) 1128 return -2010; 1129 1130 rc = nameaddr_test(hdr->uri); 1131 if (rc != 0) 1132 return rc; 1133 1134 rc = generic_param_test(&hdr->other_param); 1135 if (rc != 0) 1136 return rc; 1137 1138 return 0; 1139 } 1140 1141 /* 1142 "Digest realm=\"realm\", domain=\"sip:domain\", nonce=\"nonce\", " \ 1143 "opaque=\"opaque\", stale=true, algorithm=MD5, qop=\"auth\"", 1144 */ 1145 static int hdr_test_proxy_authenticate(pjsip_hdr *h) 1146 { 1147 pjsip_proxy_authenticate_hdr *hdr = (pjsip_proxy_authenticate_hdr*)h; 1148 1149 if (h->type != PJSIP_H_PROXY_AUTHENTICATE) 1150 return -2110; 1151 1152 if (pj_strcmp2(&hdr->scheme, "Digest")) 1153 return -2120; 1154 1155 if (pj_strcmp2(&hdr->challenge.digest.realm, "realm")) 1156 return -2130; 1157 1158 if (pj_strcmp2(&hdr->challenge.digest.domain, "sip:domain")) 1159 return -2140; 1160 1161 if (pj_strcmp2(&hdr->challenge.digest.nonce, "nonce")) 1162 return -2150; 1163 1164 if (pj_strcmp2(&hdr->challenge.digest.opaque, "opaque")) 1165 return -2160; 1166 1167 if (hdr->challenge.digest.stale != 1) 1168 return -2170; 1169 1170 if (pj_strcmp2(&hdr->challenge.digest.algorithm, "MD5")) 1171 return -2180; 1172 1173 if (pj_strcmp2(&hdr->challenge.digest.qop, "auth")) 1174 return -2190; 1175 1176 return 0; 1177 } 1178 1179 /* 1180 NAME_ADDR GENERIC_PARAM, 1181 */ 1182 static int hdr_test_record_route(pjsip_hdr *h) 1183 { 1184 pjsip_rr_hdr *hdr = (pjsip_rr_hdr*)h; 1185 int rc; 1186 1187 if (h->type != PJSIP_H_RECORD_ROUTE) 1188 return -2210; 1189 1190 rc = nameaddr_test((pjsip_uri*)&hdr->name_addr); 1191 if (rc != 0) 1192 return rc; 1193 1194 rc = generic_param_test(&hdr->other_param); 1195 if (rc != 0) 1196 return rc; 1197 1198 return 0; 1199 1200 } 1201 1202 /* 1203 NAME_ADDR GENERIC_PARAM, 1204 */ 1205 static int hdr_test_to(pjsip_hdr *h) 1206 { 1207 pjsip_to_hdr *hdr = (pjsip_to_hdr*)h; 1208 int rc; 1209 1210 if (h->type != PJSIP_H_TO) 1211 return -2410; 1212 1213 rc = nameaddr_test(hdr->uri); 1214 if (rc != 0) 1215 return rc; 1216 1217 rc = generic_param_test(&hdr->other_param); 1218 if (rc != 0) 1219 return rc; 1220 1221 return 0; 1222 } 1223 1224 /* 1225 "SIP/2.0 host" GENERIC_PARAM 1226 */ 1227 static int hdr_test_via(pjsip_hdr *h) 1228 { 1229 pjsip_via_hdr *hdr = (pjsip_via_hdr*)h; 1230 int rc; 1231 1232 if (h->type != PJSIP_H_VIA) 1233 return -2510; 1234 1235 if (pj_strcmp2(&hdr->transport, "XYZ")) 1236 return -2515; 1237 1238 if (pj_strcmp2(&hdr->sent_by.host, "host")) 1239 return -2520; 1240 1241 if (hdr->sent_by.port != 0) 1242 return -2530; 1243 1244 rc = generic_param_test(&hdr->other_param); 1245 if (rc != 0) 1246 return rc; 1247 1248 return 0; 1249 } 1250 1251 1252 static int hdr_test(void) 1253 { 1254 unsigned i; 1255 1256 PJ_LOG(3,(THIS_FILE, " testing header parsing..")); 1257 1258 for (i=0; i<PJ_ARRAY_SIZE(hdr_test_data); ++i) { 1259 struct hdr_test_t *test = &hdr_test_data[i]; 1260 pj_str_t hname; 1261 int len, parsed_len; 1262 pj_pool_t *pool; 1263 pjsip_hdr *parsed_hdr1=NULL, *parsed_hdr2=NULL; 1264 char *input, *output; 1265 int rc; 1266 1267 pool = pjsip_endpt_create_pool(endpt, NULL, POOL_SIZE, POOL_SIZE); 1268 1269 /* Parse the header */ 1270 hname = pj_str(test->hname); 1271 len = strlen(test->hcontent); 1272 parsed_hdr1 = pjsip_parse_hdr(pool, &hname, test->hcontent, len, &parsed_len); 1273 if (parsed_hdr1 == NULL) { 1274 if (test->flags & HDR_FLAG_PARSE_FAIL) { 1275 pj_pool_release(pool); 1276 continue; 1277 } 1278 PJ_LOG(3,(THIS_FILE, " error parsing header %s: %s", test->hname, test->hcontent)); 1279 return -500; 1280 } 1281 1282 /* Test the parsing result */ 1283 if (test->test && (rc=test->test(parsed_hdr1)) != 0) { 1284 PJ_LOG(3,(THIS_FILE, " validation failed for header %s: %s", test->hname, test->hcontent)); 1285 PJ_LOG(3,(THIS_FILE, " error code is %d", rc)); 1286 return -502; 1287 } 1288 1289 #if 1 1290 /* Parse with hshortname, if present */ 1291 if (test->hshort_name) { 1292 hname = pj_str(test->hshort_name); 1293 len = strlen(test->hcontent); 1294 parsed_hdr2 = pjsip_parse_hdr(pool, &hname, test->hcontent, len, &parsed_len); 1295 if (parsed_hdr2 == NULL) { 1296 PJ_LOG(3,(THIS_FILE, " error parsing header %s: %s", test->hshort_name, test->hcontent)); 1297 return -510; 1298 } 1299 } 1300 #endif 1301 1302 if (test->flags & HDR_FLAG_DONT_PRINT) { 1303 pj_pool_release(pool); 1304 continue; 1305 } 1306 1307 /* Print the original header */ 1308 input = pj_pool_alloc(pool, 1024); 1309 len = pj_ansi_snprintf(input, 1024, "%s: %s", test->hname, test->hcontent); 1310 if (len < 1 || len >= 1024) 1311 return -520; 1312 1313 /* Print the parsed header*/ 1314 output = pj_pool_alloc(pool, 1024); 1315 len = pjsip_hdr_print_on(parsed_hdr1, output, 1024); 1316 if (len < 1 || len >= 1024) { 1317 PJ_LOG(3,(THIS_FILE, " header too long: %s: %s", test->hname, test->hcontent)); 1318 return -530; 1319 } 1320 output[len] = 0; 1321 1322 if (strcmp(input, output) != 0) { 1323 PJ_LOG(3,(THIS_FILE, " header character by character comparison failed.")); 1324 PJ_LOG(3,(THIS_FILE, " original header=|%s|", input)); 1325 PJ_LOG(3,(THIS_FILE, " parsed header =|%s|", output)); 1326 return -540; 1327 } 1328 1329 pj_pool_release(pool); 1330 } 1331 1332 return 0; 1333 } 1334 1335 /*****************************************************************************/ 676 1336 677 1337 int msg_test(void) … … 693 1353 return status; 694 1354 } 1355 1356 i = hdr_test(); 1357 if (i != 0) 1358 return i; 695 1359 696 1360 PJ_LOG(3,(THIS_FILE, " benchmarking..")); -
pjproject/branches/symbian/pjsip/src/test-pjsip/test.c
r127 r1225 19 19 20 20 21 #include "test.h"22 21 #include <pjlib.h> 23 22 #include <pjsip.h> 23 #include "test.h" 24 24 25 25 #define THIS_FILE "test.c" … … 45 45 PJ_CHECK_STACK(); 46 46 47 pj sip_strerror(rc, errbuf, sizeof(errbuf));47 pj_strerror(rc, errbuf, sizeof(errbuf)); 48 48 PJ_LOG(3,(THIS_FILE, "%s: [pj_status_t=%d] %s", msg, rc, errbuf)); 49 49 … … 96 96 pj_dump_config(); 97 97 98 pj_caching_pool_init( &caching_pool, &pj_pool_factory_default_policy, 0 );98 pj_caching_pool_init( &caching_pool, pj_pool_factory_get_default_policy(), 0 ); 99 99 100 100 rc = pjsip_endpt_create(&caching_pool.factory, "endpt", &endpt); … … 112 112 113 113 /* Start transaction layer module. */ 114 rc = pjsip_tsx_layer_init (endpt);114 rc = pjsip_tsx_layer_init_module(endpt); 115 115 if (rc != PJ_SUCCESS) { 116 116 app_perror(" Error initializing transaction module", rc); … … 127 127 128 128 //DO_TEST(uri_test()); 129 //DO_TEST(msg_test());129 DO_TEST(msg_test()); 130 130 //DO_TEST(txdata_test()); 131 131 //DO_TEST(transport_udp_test()); -
pjproject/branches/symbian/pjsip/src/test-pjsip/tsx_uac_test.c
r127 r1225 103 103 -1, /* Id */ 104 104 PJSIP_MOD_PRIORITY_APPLICATION-1, /* Priority */ 105 NULL, /* User data. */106 105 NULL, /* load() */ 107 106 NULL, /* start() */ … … 122 121 -1, /* Id */ 123 122 PJSIP_MOD_PRIORITY_APPLICATION-1, /* Priority */ 124 NULL, /* User data. */125 123 NULL, /* load() */ 126 124 NULL, /* start() */ -
pjproject/branches/symbian/pjsip/src/test-pjsip/tsx_uas_test.c
r160 r1225 142 142 -1, /* Id */ 143 143 PJSIP_MOD_PRIORITY_APPLICATION-1, /* Priority */ 144 NULL, /* User data. */145 144 NULL, /* load() */ 146 145 NULL, /* start() */ … … 161 160 -1, /* Id */ 162 161 PJSIP_MOD_PRIORITY_APPLICATION-1, /* Priority */ 163 NULL, /* User data. */164 162 NULL, /* load() */ 165 163 NULL, /* start() */
Note: See TracChangeset
for help on using the changeset viewer.