aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/ipaccess/ipaccess-proxy.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-06-09 17:38:59 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-06-09 21:40:45 +0800
commit0897dad30025eb2f840ffbbfd307843fdba47e5f (patch)
tree581723de6833a9be0101697027d1b0ae68ebf4db /openbsc/src/ipaccess/ipaccess-proxy.c
parent952aba740619512f8346f85ad48b096898451e2e (diff)
ipa-proxy: Only handle some stuff of the CCM locally...
This is a good interim solution for messages not handled by us, right now this would include the NVRAM attributes that I do not feel like caching right now.
Diffstat (limited to 'openbsc/src/ipaccess/ipaccess-proxy.c')
-rw-r--r--openbsc/src/ipaccess/ipaccess-proxy.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/openbsc/src/ipaccess/ipaccess-proxy.c b/openbsc/src/ipaccess/ipaccess-proxy.c
index 56e910111..59895c47c 100644
--- a/openbsc/src/ipaccess/ipaccess-proxy.c
+++ b/openbsc/src/ipaccess/ipaccess-proxy.c
@@ -654,6 +654,10 @@ static int ipaccess_rcvmsg(struct ipa_proxy_conn *ipc, struct msgb *msg,
DEBUGP(DMI, "ID_ACK? -> ACK!\n");
ret = write(bfd->fd, id_ack, sizeof(id_ack));
break;
+ default:
+ LOGP(DMI, LOGL_ERROR, "Unhandled IPA type; %d\n", msg_type);
+ return 1;
+ break;
}
return 0;
}
@@ -880,11 +884,14 @@ static int handle_tcp_read(struct bsc_fd *bfd)
close(bfd->fd);
bfd->fd = -1;
talloc_free(bfd);
+ msgb_free(msg);
+ return ret;
+ } else if (ret == 0) {
+ /* we do not forward parts of the CCM protocol
+ * through the proxy but rather terminate it ourselves. */
+ msgb_free(msg);
+ return ret;
}
- /* we do not forward the CCM protocol through the
- * proxy but rather terminate it ourselves */
- msgb_free(msg);
- return ret;
}
if (!ipbc) {