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 <unknown> 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 <unknown> 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: <FreeBSD-gnats-submit@FreeBSD.org> To: "Joe Horn" <joehorn@Star.CINA.chu.edu.tw> 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 > >
I'm sorry for that my mailer has wrapper stuff. It let the content of complete diff file become unuseful. Please try to fetch this diff file for patching: http://www.joehorn.idv.tw/bsd_patch/support.c.diff ,with Regards. Joe Horn
Responsible Changed From-To: freebsd-bugs->hm Hellmuth, can you have a look at this?
Responsible Changed From-To: hm->freebsd-bugs Reassign to pool; maintainer is away from FreeBSD work due to press of other issues these days.
Responsible Changed From-To: freebsd-bugs->freebsd-isdn Perhaps assigning this PR to this mailing list will get it some attention.
State Changed From-To: open->closed The reason for this bugreport seems to be not valid anymore, the patch does not apply to the source and the diff mentioned on the web is not accessible anymore - so i'm closing this one.