getting closer

git-svn-id: http://svn.openzap.org/svn/openzap/trunk@111 a93c3328-9c30-0410-af19-c9cd2b2d52af
This commit is contained in:
Anthony Minessale 2007-05-23 18:25:23 +00:00
parent 31f79bf237
commit 04d4509a32
2 changed files with 39 additions and 13 deletions

View File

@ -1153,7 +1153,7 @@ uint32_t zap_separate_string(char *buf, char delim, char **array, int arraylen)
void print_bits(uint8_t *b, int bl, char *buf, int blen, int e)
{
int i,j = 0,k;
int i,j = 0, k, l = 0;
if (blen < (bl * 10) + 2) {
return;
@ -1171,7 +1171,11 @@ void print_bits(uint8_t *b, int bl, char *buf, int blen, int e)
}
}
buf[j++] = ']';
buf[j++] = '\n';
buf[j++] = ' ';
if (++l == 6) {
buf[j++] = '\n';
l = 0;
}
}
buf[j++] = '\0';

View File

@ -35,7 +35,8 @@
#include "zap_isdn.h"
#include "Q931.h"
#include "Q921.h"
#define LINE "--------------------------------------------------------------------------------"
#define IODEBUG
static L3INT zap_isdn_931_err(void *pvt, L3INT id, L3INT p1, L3INT p2)
{
@ -46,12 +47,27 @@ static L3INT zap_isdn_931_err(void *pvt, L3INT id, L3INT p1, L3INT p2)
static L3INT zap_isdn_931_34(void *pvt, L2UCHAR *msg, L2INT mlen)
{
zap_span_t *span = (zap_span_t *) pvt;
zap_isdn_data_t *data = span->isdn_data;
Q931mes_Generic *gen = (Q931mes_Generic *) msg;
Q931mes_Restart * restart = (Q931mes_Restart*)msg;
L3INT ieoff = Q931GetIEOffset(restart->RestartInd);
Q931ie_RestartInd * restartind = (void *)(&restart->buf + (ieoff * sizeof(restart->buf[1])));
assert(span != NULL);
zap_log(ZAP_LOG_DEBUG, "Yay I got an event! %d\n", gen->MesType);
assert(data != NULL);
printf("WTF: %d", ((Q931mes_Restart*)gen)->Size);
zap_log(ZAP_LOG_DEBUG, "Yay I got an event! %d %d\n", gen->MesType, ((Q931mes_Restart*)gen)->Size);
zap_log(ZAP_LOG_DEBUG, "send ack %d\n", restartind->Class);
zap_log(ZAP_LOG_DEBUG, "send ack %d\n", ((Q931mes_Restart*)gen)->Size);
printf("XXXXXXXXXXXXx");
gen->MesType = Q931mes_RESTART_ACKNOWLEDGE;
Q931Rx43(&data->q931, msg, 12);
return 0;
}
@ -59,11 +75,17 @@ static int zap_isdn_921_21(void *pvt, L2UCHAR *msg, L2INT mlen)
{
zap_span_t *span = (zap_span_t *) pvt;
zap_size_t len = (zap_size_t) mlen;
#ifdef IODEBUG
char bb[512] = "";
print_bits(msg, (int)len, bb, sizeof(bb), 1);
zap_log(ZAP_LOG_DEBUG, "WRITE %d\n%s\n%s\n\n", (int)len, LINE, bb);
#endif
assert(span != NULL);
return zap_channel_write(span->isdn_data->dchan, msg, &len) == ZAP_SUCCESS ? 0 : -1;
}
static void *zap_isdn_run(zap_thread_t *me, void *obj)
{
zap_span_t *span = (zap_span_t *) obj;
@ -78,7 +100,7 @@ static void *zap_isdn_run(zap_thread_t *me, void *obj)
while(zap_test_flag(data, ZAP_ISDN_RUNNING)) {
zap_wait_flag_t flags = ZAP_READ;
zap_status_t status = zap_channel_wait(data->dchan, &flags, 100);
switch(status) {
case ZAP_FAIL:
{
@ -98,11 +120,11 @@ static void *zap_isdn_run(zap_thread_t *me, void *obj)
if (flags & ZAP_READ) {
len = sizeof(buf);
if (zap_channel_read(data->dchan, buf, &len) == ZAP_SUCCESS) {
/*char bb[512] = "";
print_bits(buf, (int)len, bb, sizeof(bb), 1);
zap_log(ZAP_LOG_DEBUG, "Read %d bytes\n%s\n", (int)len, bb);
*/
#ifdef IODEBUG
char bb[512] = "";
print_bits(buf, (int)len, bb, sizeof(bb), 1);
zap_log(ZAP_LOG_DEBUG, "READ %d\n%s\n%s\n\n", (int)len, LINE, bb);
#endif
Q921QueueHDLCFrame(&data->q921, buf, (int)len);
Q921Rx12(&data->q921);