Bug 43857 - [patch] conflicting types in /usr/src/usr.sbin/i4b/isdnd/support.c
Summary: [patch] conflicting types in /usr/src/usr.sbin/i4b/isdnd/support.c
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-isdn (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-10-09 13:00 UTC by Joe Horn
Modified: 2006-05-13 13:55 UTC (History)
0 users

See Also:


Attachments
support.diff (539 bytes, patch)
2002-10-09 13:00 UTC, Joe Horn
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Joe Horn 2002-10-09 13:00:16 UTC

    
Comment 1 Joe Horn 2002-10-09 16:51:28 UTC
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
>
>
Comment 2 Joe Horn 2002-10-10 10:49:51 UTC
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
Comment 3 Jens Schweikhardt freebsd_committer freebsd_triage 2002-10-10 18:19:54 UTC
Responsible Changed
From-To: freebsd-bugs->hm

Hellmuth, can you have a look at this?
Comment 4 Mark Linimon freebsd_committer freebsd_triage 2004-09-13 06:36:45 UTC
Responsible Changed
From-To: hm->freebsd-bugs

Reassign to pool; maintainer is away from FreeBSD work due to press 
of other issues these days.
Comment 5 Mark Linimon freebsd_committer freebsd_triage 2005-10-23 23:58:27 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-isdn

Perhaps assigning this PR to this mailing list will get it some attention.
Comment 6 hm freebsd_committer freebsd_triage 2006-05-13 13:51:38 UTC
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.