Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Oct 2002 23:51:28 +0800
From:      "Joe Horn" <joehorn@CINA.chu.edu.tw>
To:        <FreeBSD-gnats-submit@FreeBSD.org>, <freebsd-bugs@FreeBSD.org>
Subject:   Re: bin/43857: conflicting types in /usr/src/usr.sbin/i4b/isdnd/support.c 
Message-ID:  <000901c26fab$bbf1ec40$6401a8c0@joehorn>
References:  <200210091200.g99C0G5p072754@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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
>
>



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000901c26fab$bbf1ec40$6401a8c0>