* Get source IP address * param msg SIP message * param source Source IP address * param bufsize Size of source * return 0 success, -1 failure */
| 1192 | * return 0 success, -1 failure |
| 1193 | */ |
| 1194 | int ospGetSource( |
| 1195 | struct sip_msg* msg, |
| 1196 | char* source, |
| 1197 | int bufsize) |
| 1198 | { |
| 1199 | int result = -1; |
| 1200 | |
| 1201 | if ((source != NULL) && (bufsize > 0)) { |
| 1202 | switch (_osp_work_mode) { |
| 1203 | case 1: |
| 1204 | result = ospGetViaAddress(msg, source, bufsize); |
| 1205 | break; |
| 1206 | case 0: |
| 1207 | default: |
| 1208 | strncpy(source, _osp_in_device, bufsize); |
| 1209 | source[bufsize - 1] = '\0'; |
| 1210 | result = 0; |
| 1211 | break; |
| 1212 | } |
| 1213 | } else { |
| 1214 | LM_ERR("bad parameters to parse source\n"); |
| 1215 | } |
| 1216 | |
| 1217 | return result; |
| 1218 | } |
| 1219 | |
| 1220 | /* |
| 1221 | * Get Call-ID header from SIP message |
no test coverage detected