X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=socket_server.c;h=e84fa5ea0ede812b30de2eff1bc71640f7b23a18;hp=47626c488b867ff78d768829718c3a80e036db85;hb=a24ae098bdd5dd4687d984095c18acc284b6ab26;hpb=2b9a46d5420a97d2be72f226805037a7621c3652 diff --git a/socket_server.c b/socket_server.c index 47626c4..e84fa5e 100644 --- a/socket_server.c +++ b/socket_server.c @@ -740,6 +740,7 @@ int admin_state(struct admin_queue **responsep) struct interface *interface; struct interface_port *ifport; struct mISDNport *mISDNport; + struct select_channel *selchannel; int i; int num; int anybusy; @@ -872,7 +873,40 @@ int admin_state(struct admin_queue **responsep) response->am[num].u.i.slip_rx = mISDNport->slip_rx; /* channels */ response->am[num].u.i.channels = mISDNport->b_num; - /* channel info */ + /* channel selection */ + selchannel = ifport->out_channel; + if (ifport->channel_force) + SCAT(response->am[num].u.i.out_channel, "force"); + while (selchannel) { + if (response->am[num].u.i.out_channel[0]) + SCAT(response->am[num].u.i.out_channel, ","); + switch (selchannel->channel) { + case CHANNEL_NO: + SCAT(response->am[num].u.i.out_channel, "no"); + break; + case CHANNEL_ANY: + SCAT(response->am[num].u.i.out_channel, "any"); + break; + case CHANNEL_FREE: + SCAT(response->am[num].u.i.out_channel, "free"); + break; + default: + SPRINT(strchr(response->am[num].u.i.out_channel, '\0'), "%d", selchannel->channel); + } + selchannel = selchannel->next; + } + selchannel = ifport->in_channel; + while (selchannel) { + switch (selchannel->channel) { + case CHANNEL_FREE: + SCAT(response->am[num].u.i.in_channel, "free"); + break; + default: + SPRINT(strchr(response->am[num].u.i.in_channel, '\0'), "%d", selchannel->channel); + } + selchannel = selchannel->next; + } + /* channel state */ i = 0; anybusy = 0; while(i < mISDNport->b_num) {