[mgcp] Replace DEBUGP with the LOGP statement

* Classify messages as LOGL_INFO or LOGL_ERROR
This commit is contained in:
Holger Hans Peter Freyther 2010-02-03 09:13:10 +01:00
parent e0955029a1
commit 2ada71de64
1 changed files with 44 additions and 39 deletions

View File

@ -221,14 +221,14 @@ static int rtp_data_cb(struct bsc_fd *fd, unsigned int what)
rc = recvfrom(fd->fd, &buf, sizeof(buf), 0, rc = recvfrom(fd->fd, &buf, sizeof(buf), 0,
(struct sockaddr *) &addr, &slen); (struct sockaddr *) &addr, &slen);
if (rc < 0) { if (rc < 0) {
DEBUGP(DMGCP, "Failed to receive message on: 0x%x\n", LOGP(DMGCP, LOGL_ERROR, "Failed to receive message on: 0x%x\n",
ENDPOINT_NUMBER(endp)); ENDPOINT_NUMBER(endp));
return -1; return -1;
} }
/* do not forward aynthing... maybe there is a packet from the bts */ /* do not forward aynthing... maybe there is a packet from the bts */
if (endp->ci == CI_UNUSED) { if (endp->ci == CI_UNUSED) {
DEBUGP(DMGCP, "Unknown message on endpoint: 0x%x\n", ENDPOINT_NUMBER(endp)); LOGP(DMGCP, LOGL_ERROR, "Unknown message on endpoint: 0x%x\n", ENDPOINT_NUMBER(endp));
return -1; return -1;
} }
@ -256,7 +256,7 @@ static int rtp_data_cb(struct bsc_fd *fd, unsigned int what)
} }
endp->bts = addr.sin_addr; endp->bts = addr.sin_addr;
DEBUGP(DMGCP, "Found BTS for endpoint: 0x%x on port: %d/%d\n", LOGP(DMGCP, LOGL_NOTICE, "Found BTS for endpoint: 0x%x on port: %d/%d\n",
ENDPOINT_NUMBER(endp), ntohs(endp->bts_rtp), ntohs(endp->bts_rtcp)); ENDPOINT_NUMBER(endp), ntohs(endp->bts_rtp), ntohs(endp->bts_rtcp));
} }
} }
@ -282,8 +282,10 @@ static int create_bind(struct bsc_fd *fd, int port)
int on = 1; int on = 1;
fd->fd = socket(AF_INET, SOCK_DGRAM, 0); fd->fd = socket(AF_INET, SOCK_DGRAM, 0);
if (fd->fd < 0) if (fd->fd < 0) {
LOGP(DMGCP, LOGL_ERROR, "Failed to create UDP port.\n");
return -1; return -1;
}
setsockopt(fd->fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)); setsockopt(fd->fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
memset(&addr, 0, sizeof(addr)); memset(&addr, 0, sizeof(addr));
@ -291,8 +293,9 @@ static int create_bind(struct bsc_fd *fd, int port)
addr.sin_port = htons(port); addr.sin_port = htons(port);
inet_aton(source_addr, &addr.sin_addr); inet_aton(source_addr, &addr.sin_addr);
if (bind(fd->fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) if (bind(fd->fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
return -1; return -1;
}
return 0; return 0;
} }
@ -300,14 +303,14 @@ static int create_bind(struct bsc_fd *fd, int port)
static int bind_rtp(struct mgcp_endpoint *endp) static int bind_rtp(struct mgcp_endpoint *endp)
{ {
if (create_bind(&endp->local_rtp, endp->rtp_port) != 0) { if (create_bind(&endp->local_rtp, endp->rtp_port) != 0) {
DEBUGP(DMGCP, "Failed to create RTP port: %d on 0x%x\n", LOGP(DMGCP, LOGL_ERROR, "Failed to create RTP port: %s:%d on 0x%x\n",
endp->rtp_port, ENDPOINT_NUMBER(endp)); source_addr, endp->rtp_port, ENDPOINT_NUMBER(endp));
goto cleanup0; goto cleanup0;
} }
if (create_bind(&endp->local_rtcp, endp->rtp_port + 1) != 0) { if (create_bind(&endp->local_rtcp, endp->rtp_port + 1) != 0) {
DEBUGP(DMGCP, "Failed to create RTCP port: %d on 0x%x\n", LOGP(DMGCP, LOGL_ERROR, "Failed to create RTCP port: %s:%d on 0x%x\n",
endp->rtp_port + 1, ENDPOINT_NUMBER(endp)); source_addr, endp->rtp_port + 1, ENDPOINT_NUMBER(endp));
goto cleanup1; goto cleanup1;
} }
@ -315,7 +318,7 @@ static int bind_rtp(struct mgcp_endpoint *endp)
endp->local_rtp.data = endp; endp->local_rtp.data = endp;
endp->local_rtp.when = BSC_FD_READ; endp->local_rtp.when = BSC_FD_READ;
if (bsc_register_fd(&endp->local_rtp) != 0) { if (bsc_register_fd(&endp->local_rtp) != 0) {
DEBUGP(DMGCP, "Failed to register RTP port %d on 0x%x\n", LOGP(DMGCP, LOGL_ERROR, "Failed to register RTP port %d on 0x%x\n",
endp->rtp_port, ENDPOINT_NUMBER(endp)); endp->rtp_port, ENDPOINT_NUMBER(endp));
goto cleanup2; goto cleanup2;
} }
@ -324,7 +327,7 @@ static int bind_rtp(struct mgcp_endpoint *endp)
endp->local_rtcp.data = endp; endp->local_rtcp.data = endp;
endp->local_rtcp.when = BSC_FD_READ; endp->local_rtcp.when = BSC_FD_READ;
if (bsc_register_fd(&endp->local_rtcp) != 0) { if (bsc_register_fd(&endp->local_rtcp) != 0) {
DEBUGP(DMGCP, "Failed to register RTCP port %d on 0x%x\n", LOGP(DMGCP, LOGL_ERROR, "Failed to register RTCP port %d on 0x%x\n",
endp->rtp_port + 1, ENDPOINT_NUMBER(endp)); endp->rtp_port + 1, ENDPOINT_NUMBER(endp));
goto cleanup3; goto cleanup3;
} }
@ -366,7 +369,7 @@ static int send_response_with_data(int fd, int code, const char *msg, const char
} else { } else {
len = snprintf(buf, sizeof(buf), "%d %s\n", code, trans); len = snprintf(buf, sizeof(buf), "%d %s\n", code, trans);
} }
DEBUGP(DMGCP, "Sending response: code: %d for '%s'\n", code, msg); LOGP(DMGCP, LOGL_NOTICE, "Sending response: code: %d for '%s'\n", code, msg);
if (source) if (source)
return sendto(fd, buf, len, 0, (struct sockaddr *)source, sizeof(*source)); return sendto(fd, buf, len, 0, (struct sockaddr *)source, sizeof(*source));
@ -414,7 +417,7 @@ int mgcp_send_rsip(int fd, struct sockaddr_in *source)
rc = write(fd, reset, len); rc = write(fd, reset, len);
if (rc < 0) { if (rc < 0) {
DEBUGP(DMGCP, "Failed to send RSIP: %d\n", rc); LOGP(DMGCP, LOGL_ERROR, "Failed to send RSIP: %d\n", rc);
} }
return rc; return rc;
@ -430,13 +433,13 @@ int mgcp_handle_message(int fd, struct msgb *msg, struct sockaddr_in *source)
int code; int code;
if (msg->len < 4) { if (msg->len < 4) {
DEBUGP(DMGCP, "mgs too short: %d\n", msg->len); LOGP(DMGCP, LOGL_ERROR, "mgs too short: %d\n", msg->len);
return -1; return -1;
} }
/* attempt to treat it as a response */ /* attempt to treat it as a response */
if (sscanf((const char *)&msg->data[0], "%3d %*s", &code) == 1) { if (sscanf((const char *)&msg->data[0], "%3d %*s", &code) == 1) {
DEBUGP(DMGCP, "Response: Code: %d\n", code); LOGP(DMGCP, LOGL_NOTICE, "Response: Code: %d\n", code);
} else { } else {
int i, handled = 0; int i, handled = 0;
msg->l3h = &msg->l2h[4]; msg->l3h = &msg->l2h[4];
@ -446,7 +449,7 @@ int mgcp_handle_message(int fd, struct msgb *msg, struct sockaddr_in *source)
mgcp_requests[i].handle_request(fd, msg, source); mgcp_requests[i].handle_request(fd, msg, source);
} }
if (!handled) { if (!handled) {
DEBUGP(DMGCP, "MSG with type: '%.4s' not handled\n", &msg->data[0]); LOGP(DMGCP, LOGL_NOTICE, "MSG with type: '%.4s' not handled\n", &msg->data[0]);
} }
} }
@ -496,7 +499,7 @@ static struct mgcp_endpoint *find_endpoint(const char *mgcp)
gw = strtoul(mgcp, &endptr, 16); gw = strtoul(mgcp, &endptr, 16);
if (gw == 0 || gw >= number_endpoints || strcmp(endptr, "@mgw") != 0) { if (gw == 0 || gw >= number_endpoints || strcmp(endptr, "@mgw") != 0) {
DEBUGP(DMGCP, "Not able to find endpoint: '%s'\n", mgcp); LOGP(DMGCP, LOGL_ERROR, "Not able to find endpoint: '%s'\n", mgcp);
return NULL; return NULL;
} }
@ -509,14 +512,14 @@ static int analyze_header(struct msgb *msg, struct mgcp_msg_ptr *ptr, int size,
int found; int found;
if (size < 3) { if (size < 3) {
DEBUGP(DMGCP, "Not enough space in ptr\n"); LOGP(DMGCP, LOGL_ERROR, "Not enough space in ptr\n");
return -1; return -1;
} }
found = find_msg_pointers(msg, ptr, size); found = find_msg_pointers(msg, ptr, size);
if (found < 3) { if (found < 3) {
DEBUGP(DMGCP, "Gateway: Not enough params. Found: %d\n", found); LOGP(DMGCP, LOGL_ERROR, "Gateway: Not enough params. Found: %d\n", found);
return -1; return -1;
} }
@ -531,7 +534,7 @@ static int analyze_header(struct msgb *msg, struct mgcp_msg_ptr *ptr, int size,
if (strncmp("1.0", (const char *)&msg->l3h[ptr[3].start], 3) != 0 if (strncmp("1.0", (const char *)&msg->l3h[ptr[3].start], 3) != 0
|| strncmp("MGCP", (const char *)&msg->l3h[ptr[2].start], 4) != 0) { || strncmp("MGCP", (const char *)&msg->l3h[ptr[2].start], 4) != 0) {
DEBUGP(DMGCP, "Wrong MGCP version. Not handling: '%s' '%s'\n", LOGP(DMGCP, LOGL_ERROR, "Wrong MGCP version. Not handling: '%s' '%s'\n",
(const char *)&msg->l3h[ptr[3].start], (const char *)&msg->l3h[ptr[3].start],
(const char *)&msg->l3h[ptr[2].start]); (const char *)&msg->l3h[ptr[2].start]);
return -1; return -1;
@ -546,7 +549,7 @@ static int verify_call_id(const struct mgcp_endpoint *endp,
const char *callid) const char *callid)
{ {
if (strcmp(endp->callid, callid) != 0) { if (strcmp(endp->callid, callid) != 0) {
DEBUGP(DMGCP, "CallIDs does not match on 0x%x. '%s' != '%s'\n", LOGP(DMGCP, LOGL_ERROR, "CallIDs does not match on 0x%x. '%s' != '%s'\n",
ENDPOINT_NUMBER(endp), endp->callid, callid); ENDPOINT_NUMBER(endp), endp->callid, callid);
return -1; return -1;
} }
@ -558,7 +561,7 @@ static int verify_ci(const struct mgcp_endpoint *endp,
const char *ci) const char *ci)
{ {
if (atoi(ci) != endp->ci) { if (atoi(ci) != endp->ci) {
DEBUGP(DMGCP, "ConnectionIdentifiers do not match on 0x%x. %d != %s\n", LOGP(DMGCP, LOGL_ERROR, "ConnectionIdentifiers do not match on 0x%x. %d != %s\n",
ENDPOINT_NUMBER(endp), endp->ci, ci); ENDPOINT_NUMBER(endp), endp->ci, ci);
return -1; return -1;
} }
@ -590,7 +593,7 @@ static int parse_conn_mode(const char* msg, int *conn_mode)
else if (strcmp(msg, "sendrecv") == 0) else if (strcmp(msg, "sendrecv") == 0)
*conn_mode = MGCP_CONN_RECV_SEND; *conn_mode = MGCP_CONN_RECV_SEND;
else { else {
DEBUGP(DMGCP, "Unknown connection mode: '%s'\n", msg); LOGP(DMGCP, LOGL_ERROR, "Unknown connection mode: '%s'\n", msg);
ret = -1; ret = -1;
} }
@ -610,7 +613,7 @@ static int handle_create_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
return send_response(fd, 500, "CRCX", trans_id, source); return send_response(fd, 500, "CRCX", trans_id, source);
if (endp->ci != CI_UNUSED) { if (endp->ci != CI_UNUSED) {
DEBUGP(DMGCP, "Endpoint is already used. 0x%x\n", ENDPOINT_NUMBER(endp)); LOGP(DMGCP, LOGL_ERROR, "Endpoint is already used. 0x%x\n", ENDPOINT_NUMBER(endp));
return send_response(fd, 500, "CRCX", trans_id, source); return send_response(fd, 500, "CRCX", trans_id, source);
} }
@ -633,7 +636,7 @@ static int handle_create_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
} }
break; break;
default: default:
DEBUGP(DMGCP, "Unhandled option: '%c'/%d on 0x%x\n", LOGP(DMGCP, LOGL_NOTICE, "Unhandled option: '%c'/%d on 0x%x\n",
msg->l3h[line_start], msg->l3h[line_start], msg->l3h[line_start], msg->l3h[line_start],
ENDPOINT_NUMBER(endp)); ENDPOINT_NUMBER(endp));
break; break;
@ -656,17 +659,17 @@ static int handle_create_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
if (endp->ci == CI_UNUSED) if (endp->ci == CI_UNUSED)
goto error2; goto error2;
DEBUGP(DMGCP, "Creating endpoint on: 0x%x CI: %u port: %u\n", LOGP(DMGCP, LOGL_NOTICE, "Creating endpoint on: 0x%x CI: %u port: %u\n",
ENDPOINT_NUMBER(endp), endp->ci, endp->rtp_port); ENDPOINT_NUMBER(endp), endp->ci, endp->rtp_port);
return send_with_sdp(fd, endp, "CRCX", trans_id, source); return send_with_sdp(fd, endp, "CRCX", trans_id, source);
error: error:
DEBUGP(DMGCP, "Malformed line: %s on 0x%x with: line_start: %d %d\n", LOGP(DMGCP, LOGL_ERROR, "Malformed line: %s on 0x%x with: line_start: %d %d\n",
hexdump(msg->l3h, msgb_l3len(msg)), hexdump(msg->l3h, msgb_l3len(msg)),
ENDPOINT_NUMBER(endp), line_start, i); ENDPOINT_NUMBER(endp), line_start, i);
return send_response(fd, error_code, "CRCX", trans_id, source); return send_response(fd, error_code, "CRCX", trans_id, source);
error2: error2:
DEBUGP(DMGCP, "Resource error on 0x%x\n", ENDPOINT_NUMBER(endp)); LOGP(DMGCP, LOGL_NOTICE, "Resource error on 0x%x\n", ENDPOINT_NUMBER(endp));
return send_response(fd, error_code, "CRCX", trans_id, source); return send_response(fd, error_code, "CRCX", trans_id, source);
} }
@ -683,7 +686,7 @@ static int handle_modify_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
return send_response(fd, error_code, "MDCX", trans_id, source); return send_response(fd, error_code, "MDCX", trans_id, source);
if (endp->ci == CI_UNUSED) { if (endp->ci == CI_UNUSED) {
DEBUGP(DMGCP, "Endpoint is not holding a connection. 0x%x\n", ENDPOINT_NUMBER(endp)); LOGP(DMGCP, LOGL_ERROR, "Endpoint is not holding a connection. 0x%x\n", ENDPOINT_NUMBER(endp));
return send_response(fd, error_code, "MDCX", trans_id, source); return send_response(fd, error_code, "MDCX", trans_id, source);
} }
@ -739,7 +742,7 @@ static int handle_modify_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
break; break;
} }
default: default:
DEBUGP(DMGCP, "Unhandled option: '%c'/%d on 0x%x\n", LOGP(DMGCP, LOGL_NOTICE, "Unhandled option: '%c'/%d on 0x%x\n",
msg->l3h[line_start], msg->l3h[line_start], msg->l3h[line_start], msg->l3h[line_start],
ENDPOINT_NUMBER(endp)); ENDPOINT_NUMBER(endp));
break; break;
@ -747,12 +750,12 @@ static int handle_modify_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
MSG_TOKENIZE_END MSG_TOKENIZE_END
/* modify */ /* modify */
DEBUGP(DMGCP, "Modified endpoint on: 0x%x Server: %s:%u\n", LOGP(DMGCP, LOGL_NOTICE, "Modified endpoint on: 0x%x Server: %s:%u\n",
ENDPOINT_NUMBER(endp), inet_ntoa(endp->remote), endp->net_rtp); ENDPOINT_NUMBER(endp), inet_ntoa(endp->remote), endp->net_rtp);
return send_with_sdp(fd, endp, "MDCX", trans_id, source); return send_with_sdp(fd, endp, "MDCX", trans_id, source);
error: error:
DEBUGP(DMGCP, "Malformed line: %s on 0x%x with: line_start: %d %d %d\n", LOGP(DMGCP, LOGL_ERROR, "Malformed line: %s on 0x%x with: line_start: %d %d %d\n",
hexdump(msg->l3h, msgb_l3len(msg)), hexdump(msg->l3h, msgb_l3len(msg)),
ENDPOINT_NUMBER(endp), line_start, i, msg->l3h[line_start]); ENDPOINT_NUMBER(endp), line_start, i, msg->l3h[line_start]);
return send_response(fd, error_code, "MDCX", trans_id, source); return send_response(fd, error_code, "MDCX", trans_id, source);
@ -774,7 +777,7 @@ static int handle_delete_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
return send_response(fd, error_code, "DLCX", trans_id, source); return send_response(fd, error_code, "DLCX", trans_id, source);
if (endp->ci == CI_UNUSED) { if (endp->ci == CI_UNUSED) {
DEBUGP(DMGCP, "Endpoint is not used. 0x%x\n", ENDPOINT_NUMBER(endp)); LOGP(DMGCP, LOGL_ERROR, "Endpoint is not used. 0x%x\n", ENDPOINT_NUMBER(endp));
return send_response(fd, error_code, "DLCX", trans_id, source); return send_response(fd, error_code, "DLCX", trans_id, source);
} }
@ -791,7 +794,7 @@ static int handle_delete_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
break; break;
} }
default: default:
DEBUGP(DMGCP, "Unhandled option: '%c'/%d on 0x%x\n", LOGP(DMGCP, LOGL_NOTICE, "Unhandled option: '%c'/%d on 0x%x\n",
msg->l3h[line_start], msg->l3h[line_start], msg->l3h[line_start], msg->l3h[line_start],
ENDPOINT_NUMBER(endp)); ENDPOINT_NUMBER(endp));
break; break;
@ -800,7 +803,7 @@ static int handle_delete_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
/* free the connection */ /* free the connection */
DEBUGP(DMGCP, "Deleting endpoint on: 0x%x\n", ENDPOINT_NUMBER(endp)); LOGP(DMGCP, LOGL_NOTICE, "Deleting endpoint on: 0x%x\n", ENDPOINT_NUMBER(endp));
endp->ci= CI_UNUSED; endp->ci= CI_UNUSED;
talloc_free(endp->callid); talloc_free(endp->callid);
talloc_free(endp->local_options); talloc_free(endp->local_options);
@ -815,7 +818,7 @@ static int handle_delete_con(int fd, struct msgb *msg, struct sockaddr_in *sourc
return send_response(fd, 250, "DLCX", trans_id, source); return send_response(fd, 250, "DLCX", trans_id, source);
error: error:
DEBUGP(DMGCP, "Malformed line: %s on 0x%x with: line_start: %d %d\n", LOGP(DMGCP, LOGL_ERROR, "Malformed line: %s on 0x%x with: line_start: %d %d\n",
hexdump(msg->l3h, msgb_l3len(msg)), hexdump(msg->l3h, msgb_l3len(msg)),
ENDPOINT_NUMBER(endp), line_start, i); ENDPOINT_NUMBER(endp), line_start, i);
return send_response(fd, error_code, "DLCX", trans_id, source); return send_response(fd, error_code, "DLCX", trans_id, source);
@ -1081,7 +1084,7 @@ int mgcp_parse_config(const char *config_file, struct gsm_network *dummy_network
port = forward_port; port = forward_port;
if (!early_bind) { if (!early_bind) {
DEBUGP(DMGCP, "Forwarding requires early bind.\n"); LOGP(DMGCP, LOGL_NOTICE, "Forwarding requires early bind.\n");
return -1; return -1;
} }
@ -1097,7 +1100,7 @@ int mgcp_parse_config(const char *config_file, struct gsm_network *dummy_network
endp->net_rtcp = htons(rtp_calculate_port(ENDPOINT_NUMBER(endp), port) + 1); endp->net_rtcp = htons(rtp_calculate_port(ENDPOINT_NUMBER(endp), port) + 1);
} }
DEBUGP(DMGCP, "Configured for Audio Forwarding.\n"); LOGP(DMGCP, LOGL_NOTICE, "Configured for Audio Forwarding.\n");
} }
/* early bind */ /* early bind */
@ -1105,10 +1108,12 @@ int mgcp_parse_config(const char *config_file, struct gsm_network *dummy_network
for (i = 1; i < number_endpoints; ++i) { for (i = 1; i < number_endpoints; ++i) {
struct mgcp_endpoint *endp = &endpoints[i]; struct mgcp_endpoint *endp = &endpoints[i];
endp->rtp_port = rtp_calculate_port(ENDPOINT_NUMBER(endp), rtp_base_port); endp->rtp_port = rtp_calculate_port(ENDPOINT_NUMBER(endp), rtp_base_port);
if (bind_rtp(endp) != 0) if (bind_rtp(endp) != 0) {
LOGP(DMGCP, LOGL_FATAL, "Failed to bind: %d\n", endp->rtp_port);
return -1; return -1;
} }
} }
}
return !!forward_ip; return !!forward_ip;
} }