| 60 g_strfreev(parts); |
60 g_strfreev(parts); |
| 61 g_strfreev(lines); |
61 g_strfreev(lines); |
| 62 g_free(msg); |
62 g_free(msg); |
| 63 return NULL; |
63 return NULL; |
| 64 } |
64 } |
| 65 if(strstr(parts[0],"SIP")) { // numeric response |
65 if(strstr(parts[0],"SIP")) { /* numeric response */ |
| 66 msg->method = g_strdup(parts[2]); |
66 msg->method = g_strdup(parts[2]); |
| 67 msg->response = strtol(parts[1],NULL,10); |
67 msg->response = strtol(parts[1],NULL,10); |
| 68 } else { // request |
68 } else { /* request */ |
| 69 msg->method = g_strdup(parts[0]); |
69 msg->method = g_strdup(parts[0]); |
| 70 msg->target = g_strdup(parts[1]); |
70 msg->target = g_strdup(parts[1]); |
| 71 msg->response = 0; |
71 msg->response = 0; |
| 72 } |
72 } |
| 73 g_strfreev(parts); |
73 g_strfreev(parts); |
| 97 g_strfreev(lines); |
97 g_strfreev(lines); |
| 98 msg->bodylen = strtol(sipmsg_find_header(msg, "Content-Length"),NULL,10); |
98 msg->bodylen = strtol(sipmsg_find_header(msg, "Content-Length"),NULL,10); |
| 99 if(msg->response) { |
99 if(msg->response) { |
| 100 tmp = sipmsg_find_header(msg, "CSeq"); |
100 tmp = sipmsg_find_header(msg, "CSeq"); |
| 101 if(!tmp) { |
101 if(!tmp) { |
| 102 // SHOULD NOT HAPPEN |
102 /* SHOULD NOT HAPPEN */ |
| 103 msg->method = 0; |
103 msg->method = 0; |
| 104 } else { |
104 } else { |
| 105 parts = g_strsplit(tmp, " ", 2); |
105 parts = g_strsplit(tmp, " ", 2); |
| 106 msg->method = g_strdup(parts[1]); |
106 msg->method = g_strdup(parts[1]); |
| 107 g_strfreev(parts); |
107 g_strfreev(parts); |