From owner-freebsd-bugs Wed Oct 9 9:10:20 2002 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6AD1237B401 for ; Wed, 9 Oct 2002 09:10:05 -0700 (PDT) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id A008C43E65 for ; Wed, 9 Oct 2002 09:10:04 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.6/8.12.6) with ESMTP id g99GA4Co056816 for ; Wed, 9 Oct 2002 09:10:04 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.6/8.12.6/Submit) id g99GA4iN056815; Wed, 9 Oct 2002 09:10:04 -0700 (PDT) Date: Wed, 9 Oct 2002 09:10:04 -0700 (PDT) Message-Id: <200210091610.g99GA4iN056815@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: "Joe Horn" Subject: Re: bin/43857: conflicting types in /usr/src/usr.sbin/i4b/isdnd/support.c Reply-To: "Joe Horn" Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR bin/43857; it has been noted by GNATS. From: "Joe Horn" To: , Cc: Subject: Re: bin/43857: conflicting types in /usr/src/usr.sbin/i4b/isdnd/support.c Date: Wed, 9 Oct 2002 23:51:28 +0800 Sorry, before diff file is not actually correct. Please use this: *** /usr/src/usr.sbin/i4b/isdnd/support.c.orig Sun Dec 16 23:13:38 2001 --- /usr/src/usr.sbin/i4b/isdnd/support.c Wed Oct 9 22:51:43 2002 *************** *** 112,118 **** continue; } - /* found, check if already reserved */ if(cep->cdid == CDID_RESERVED) --- 112,117 ---- *************** *** 150,157 **** /*-------------------------------------------------------------------------- -* * find entry by drivertype and driverunit and setup for dialing out *--------------------------------------------------------------------------- */ find_by_device_for_dialoutnumber(int drivertype, int driverunit, int cmdlen, char *cmd) - find_by_device_for_dialoutnumber(msg_dialoutnumber_ind_t *mp) { cfg_entry_t *cep = NULL; int i, j; --- 149,156 ---- /*-------------------------------------------------------------------------- -* * find entry by drivertype and driverunit and setup for dialing out *--------------------------------------------------------------------------- */ + cfg_entry_t * find_by_device_for_dialoutnumber(int drivertype, int driverunit, int cmdlen, char *cmd) { cfg_entry_t *cep = NULL; int i, j; *************** *** 161,172 **** cep = &cfg_entry_tab[i]; /* ptr to config entry */ /* compare driver type and unit */ if(!((cep->usrdevicename == drivertype) && (cep->usrdeviceunit == driverunit))) - (cep->usrdeviceunit == mp->driver_unit))) { continue; } /* check time interval */ if(isvalidtime(cep) == 0) --- 160,172 ---- cep = &cfg_entry_tab[i]; /* ptr to config entry */ /* compare driver type and unit */ + if(!((cep->usrdevicename == drivertype) && (cep->usrdeviceunit == driverunit))) { continue; } + /* check time interval */ if(isvalidtime(cep) == 0) *************** *** 175,181 **** continue; } - /* found, check if already reserved */ if(cep->cdid == CDID_RESERVED) --- 175,180 ---- *************** *** 191,212 **** DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_dialoutnumber: entry %d, cdid in use", i))); return(NULL); } cep->keypad[0] = '\0'; - /* check number and copy to cep->remote_numbers[] */ for(j = 0; j < cmdlen; j++) ! for(j = 0; j < mp->cmdlen; j++) if(!(isdigit(*(cmd+j)))) - if(!(isdigit(*(mp->cmd+j)))) { DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_dialoutnumber: entry %d, dial string contains non-digit at pos %d", i, j))); return(NULL); } cep->remote_numbers[0].number[j] = *(cmd+j); - cep->remote_numbers[0].number[j] = *(mp->cmd+j); } ! cep->remote_numbers_count = 1; if((setup_dialout(cep)) == GOOD) --- 190,211 ---- DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_dialoutnumber: entry %d, cdid in use", i))); return(NULL); } + cep->keypad[0] = '\0'; /* check number and copy to cep->remote_numbers[] */ + for(j = 0; j < cmdlen; j++) ! { if(!(isdigit(*(cmd+j)))) { DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_dialoutnumber: entry %d, dial string contains non-digit at pos %d", i, j))); return(NULL); } + /* fill in number to dial */ cep->remote_numbers[0].number[j] = *(cmd+j); } ! cep->remote_numbers[0].number[j] = '\0'; cep->remote_numbers_count = 1; if((setup_dialout(cep)) == GOOD) *************** *** 223,228 **** --- 222,228 ---- } } + DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_dialoutnumber: no entry found!"))); return(NULL); } *************** *** 295,301 **** } DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_keypad: no entry found!"))); - DBGL(DL_MSG, (log(LL_DBG, "find_by_device_for_keypad: no entry found!"))); return(NULL); } --- 295,300 ---- *************** *** 304,312 **** *--------------------------------------------------------------------------- */ int setup_dialout(cfg_entry_t *cep) int i; - /* check controller operational */ if((get_controller_state(cep->isdncontroller)) != CTRL_UP) --- 303,311 ---- *--------------------------------------------------------------------------- */ int setup_dialout(cfg_entry_t *cep) + { int i; /* check controller operational */ if((get_controller_state(cep->isdncontroller)) != CTRL_UP) *************** *** 320,333 **** /* check channel available */ switch(cep->isdnchannel) case CHAN_ANY: for (i = 0; i < isdn_ctrl_tab[cep->isdncontroller].nbch; i++) ! for (i = 0; i < isdn_ctrl_tab[cep->isdncontroller].nbch; i++) ! if(ret_channel_state(cep->isdncontroller, i) == CHAN_IDLE) if(ret_channel_state(cep->isdncontroller, i) == CHAN_IDLE) } ! } ! if (i == isdn_ctrl_tab[cep->isdncontroller].nbch) if (i == isdn_ctrl_tab[cep->isdncontroller].nbch) { DBGL(DL_MSG, (log(LL_DBG, "setup_dialout: entry %s, no channel free", cep->name))); --- 319,332 ---- /* check channel available */ switch(cep->isdnchannel) + { case CHAN_ANY: for (i = 0; i < isdn_ctrl_tab[cep->isdncontroller].nbch; i++) ! { if(ret_channel_state(cep->isdncontroller, i) == CHAN_IDLE) + break; } ! if (i == isdn_ctrl_tab[cep->isdncontroller].nbch) { DBGL(DL_MSG, (log(LL_DBG, "setup_dialout: entry %s, no channel free", cep->name))); *************** *** 336,348 **** cep->isdnchannelused = CHAN_ANY; break; if((ret_channel_state(cep->isdncontroller, cep->isdnchannel)) != CHAN_IDLE) { DBGL(DL_MSG, (log(LL_DBG, "setup_dialout: entry %s, channel not free", cep->name))); ! DBGL(DL_MSG, (log(LL_DBG, "setup_dialout: entry %s, channel not free", cep->name))); } cep->isdnchannelused = cep->isdnchannel; - cep->isdnchannelused = cep->isdnchannel; break; } --- 335,347 ---- cep->isdnchannelused = CHAN_ANY; break; + default: if((ret_channel_state(cep->isdncontroller, cep->isdnchannel)) != CHAN_IDLE) { DBGL(DL_MSG, (log(LL_DBG, "setup_dialout: entry %s, channel not free", cep->name))); ! return(ERROR); } cep->isdnchannelused = cep->isdnchannel; break; } *************** *** 374,379 **** --- 373,379 ---- { continue; } + /* check time interval */ if(isvalidtime(cep) == 0) *************** *** 382,388 **** continue; } - DBGL(DL_MSG, (log(LL_DBG, "get_cep_by_driver: found entry %d!", i))); return(cep); } --- 382,387 ---- *************** *** 430,461 **** cep = &cfg_entry_tab[i]; /* ptr to config entry */ /* check my number */ if(strncmp(cep->local_phone_incoming, mp->dst_telno, strlen(cep->local_phone_incoming))) - if(strncmp(cep->local_phone_incoming.number, mp->dst_telno, strlen(cep->local_phone_incoming.number))) { cep->local_phone_incoming, mp->dst_telno))); - cep->local_phone_incoming.subaddr, mp->dst_subaddr))); continue; } /* check all allowed remote number's for this entry */ - /* check all allowed remote number's for this entry */ for (n = 0; n < cep->incoming_numbers_count; n++) { if(in->number[0] == '*') ! if(in->number[0] == '*' && cep->usesubaddr && !strncmp(in->subaddr, mp->src_subaddr, strlen(in->subaddr))) if(strncmp(in->number, mp->src_telno, strlen(in->number))) - if(strncmp(in->number, mp->src_telno, strlen(in->number)) && cep->usesubaddr && strncmp(in->subaddr, mp->src_subaddr, strlen(in->subaddr))) { DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, remno %s != incomingfromno %s", i, in->number, mp->src_telno))); else break; ! break; ! if (n >= cep->incoming_numbers_count) - /* check b protocol */ if(cep->b1protocol != mp->bprot) --- 429,460 ---- cep = &cfg_entry_tab[i]; /* ptr to config entry */ /* check my number */ + if(strncmp(cep->local_phone_incoming, mp->dst_telno, strlen(cep->local_phone_incoming))) { + DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, myno %s != incomingno %s", i, cep->local_phone_incoming, mp->dst_telno))); continue; } + /* check all allowed remote number's for this entry */ for (n = 0; n < cep->incoming_numbers_count; n++) { + incoming_number_t *in = &cep->remote_phone_incoming[n]; if(in->number[0] == '*') ! break; if(strncmp(in->number, mp->src_telno, strlen(in->number))) { DBGL(DL_MSG, (log(LL_DBG, "find_matching_entry_incoming: entry %d, remno %s != incomingfromno %s", i, in->number, mp->src_telno))); + } else break; ! } if (n >= cep->incoming_numbers_count) + continue; /* check b protocol */ if(cep->b1protocol != mp->bprot) *************** *** 515,522 **** { log(LL_CHD, "%05d %s incoming call, controller %d DOWN!", mp->header.cdid, cep->name, mp->controller); ! continue; } /* * check controller he wants, check for any * controller or specific controller --- 514,522 ---- { log(LL_CHD, "%05d %s incoming call, controller %d DOWN!", mp->header.cdid, cep->name, mp->controller); ! return(NULL); } + /* * check controller he wants, check for any * controller or specific controller *************** *** 531,548 **** continue; } - /* check channel he wants */ switch(mp->channel) case CHAN_ANY: for (i = 0; i < isdn_ctrl_tab[mp->controller].nbch; i++) ! for (i = 0; i < isdn_ctrl_tab[mp->controller].nbch; i++) ! if(ret_channel_state(mp->controller, i) == CHAN_IDLE) if(ret_channel_state(mp->controller, i) == CHAN_IDLE) } ! } ! if (i == isdn_ctrl_tab[mp->controller].nbch) if (i == isdn_ctrl_tab[mp->controller].nbch) { log(LL_CHD, "%05d %s incoming call, no channel free!", --- 531,547 ---- continue; } /* check channel he wants */ switch(mp->channel) + { case CHAN_ANY: for (i = 0; i < isdn_ctrl_tab[mp->controller].nbch; i++) ! { if(ret_channel_state(mp->controller, i) == CHAN_IDLE) + break; } ! if (i == isdn_ctrl_tab[mp->controller].nbch) { log(LL_CHD, "%05d %s incoming call, no channel free!", *************** *** 557,571 **** return(NULL); break; if((ret_channel_state(mp->controller, mp->channel)) != CHAN_IDLE) { log(LL_CHD, "%05d %s incoming call, channel B%d not free!", mp->header.cdid, cep->name, mp->channel+1); ! mp->header.cdid, cep->name, mp->channel+1); ! } } break; } /* check time interval */ if(isvalidtime(cep) == 0) --- 556,571 ---- return(NULL); break; + default: if((ret_channel_state(mp->controller, mp->channel)) != CHAN_IDLE) { log(LL_CHD, "%05d %s incoming call, channel B%d not free!", mp->header.cdid, cep->name, mp->channel+1); ! return(NULL); } break; } + /* check time interval */ if(isvalidtime(cep) == 0) *************** *** 574,590 **** continue; } - /* found a matching entry */ cep->cdid = mp->header.cdid; cep->isdncontrollerused = mp->controller; cep->isdnchannelused = mp->channel; ! /* cp number to real one used */ strcpy(cep->real_phone_incoming, mp->src_telno); - strcpy(cep->real_phone_incoming.number, mp->src_telno); /* copy display string */ --- 574,589 ---- continue; } /* found a matching entry */ cep->cdid = mp->header.cdid; cep->isdncontrollerused = mp->controller; cep->isdnchannelused = mp->channel; ! /*XXX*/ cep->disc_cause = 0; /* cp number to real one used */ + strcpy(cep->real_phone_incoming, mp->src_telno); /* copy display string */ *************** *** 628,636 **** mp->header.cdid, src_tela, dst_tela); } else log(LL_CHD, "%05d incoming call from %s to %s ctrl %d", mp->header.cdid, mp->src_telno, mp->dst_telno, mp->controller); - mp->header.cdid, mp->src_telno, mp->dst_telno, mp->controller); } return(NULL); } --- 627,635 ---- mp->header.cdid, src_tela, dst_tela); } else + { log(LL_CHD, "%05d incoming call from %s to %s ctrl %d", mp->header.cdid, mp->src_telno, mp->dst_telno, mp->controller); } return(NULL); } *************** *** 642,648 **** get_cep_by_cc(int ctrlr, int chan) { int i; ! if((chan < 0) || (chan >= isdn_ctrl_tab[ctrlr].nbch)) if((chan < 0) || (chan >= isdn_ctrl_tab[ctrlr].nbch)) return(NULL); --- 641,647 ---- get_cep_by_cc(int ctrlr, int chan) { int i; ! if((chan < 0) || (chan >= isdn_ctrl_tab[ctrlr].nbch)) return(NULL); *************** *** 687,697 **** "rbch", "tel", "ipr", "ibc", "ing" - "ing" }; ! if(drivertype >= BDRV_RBCH && drivertype <= BDRV_ING) if(drivertype >= BDRV_RBCH && drivertype <= BDRV_ING) return(bdtab[drivertype]); else --- 686,696 ---- "rbch", "tel", "ipr", + "isp", "ibc", "ing" }; ! if(drivertype >= BDRV_RBCH && drivertype <= BDRV_ING) return(bdtab[drivertype]); else *************** *** 797,803 **** *--------------------------------------------------------------------------* / void close_allactive(void) ! int i, j, k; int i, j, k; cfg_entry_t *cep = NULL; --- 796,802 ---- *--------------------------------------------------------------------------* / void close_allactive(void) ! { int i, j, k; cfg_entry_t *cep = NULL; *************** *** 807,817 **** { if((get_controller_state(i)) != CTRL_UP) continue; for (k = 0; k < isdn_ctrl_tab[i].nbch; k++) ! for (k = 0; k < isdn_ctrl_tab[i].nbch; k++) ! if((ret_channel_state(i, k)) == CHAN_RUN) if((ret_channel_state(i, k)) == CHAN_RUN) ! if((cep = get_cep_by_cc(i, k)) != NULL) if((cep = get_cep_by_cc(i, k)) != NULL) { #ifdef USE_CURSES --- 806,816 ---- { if((get_controller_state(i)) != CTRL_UP) continue; + for (k = 0; k < isdn_ctrl_tab[i].nbch; k++) ! { if((ret_channel_state(i, k)) == CHAN_RUN) ! { if((cep = get_cep_by_cc(i, k)) != NULL) { #ifdef USE_CURSES *************** *** 823,829 **** #endif next_state(cep, EV_DRQ); j++; ! } } } } --- 822,828 ---- #endif next_state(cep, EV_DRQ); j++; ! } } } } *************** *** 935,940 **** --- 934,940 ---- } DBGL(DL_DRVR, (log(LL_DBG, "dialresponse: sent [%s]", stattab[dstat]))); + } /*-------------------------------------------------------------------------- * * screening/presentation indicator *************** *** 1093,1097 **** return(0); } - /* EOF */ /* EOF */ --- 1093,1096 ---- ----- Original Message ----- From: To: "Joe Horn" Sent: Wednesday, October 09, 2002 8:00 PM Subject: Re: bin/43857: conflicting types in /usr/src/usr.sbin/i4b/isdnd/support.c > Thank you very much for your problem report. > It has the internal identification `bin/43857'. > The individual assigned to look at your > report is: freebsd-bugs. > > You can access the state of your problem report at any time > via this link: > > http://www.freebsd.org/cgi/query-pr.cgi?pr=43857 > > >Category: bin > >Responsible: freebsd-bugs > >Synopsis: conflicting types in /usr/src/usr.sbin/i4b/isdnd/support.c > >Arrival-Date: Wed Oct 09 05:00:16 PDT 2002 > > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message