On Thursday, January 12, 2012 14:30 CET, YASUOKA Masahiko <yasu...@yasuoka.net> 
wrote: 
 
> This fixes many compiler warnings and some styles. 
> 
> ok?

since I'm testing npppd to get mobile phone to run, I tested this diff.

The hunk to npppd/npppd_radius.c doesn't apply, seems to be already in the tree:

Hmm...  The next patch looks like a unified diff to me...
The text leading up to this was:
--------------------------
|Index: npppd/npppd_radius.c
|===================================================================
|RCS file: /cvs/src/usr.sbin/npppd/npppd/npppd_radius.c,v
|retrieving revision 1.1
|diff -u -p -r1.1 npppd_radius.c
|--- npppd/npppd_radius.c       6 Jul 2011 20:52:28 -0000       1.1
|+++ npppd/npppd_radius.c       15 Oct 2011 07:19:38 -0000
--------------------------
Patching file npppd/npppd_radius.c using Plan A...
Reversed (or previously applied) patch detected!  Assume -R? [y] n
Apply anyway? [n] 
Hunk #1 ignored at 120.
Hunk #2 ignored at 151.
Hunk #3 ignored at 198.
3 out of 3 hunks ignored--saving rejects to npppd/npppd_radius.c.rej

So ignoring this part, the rest applies well, and then compiling is also 
working like a charm, no warnings anymore.
tested on amd63

My OK may probably not count much here but you get it:  
OK sebastia@

cheers,
Sebastian

> 
> Index: l2tp/l2tp.h
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/l2tp/l2tp.h,v
> retrieving revision 1.5
> diff -u -p -r1.5 l2tp.h
> --- l2tp/l2tp.h       15 Oct 2011 03:24:11 -0000      1.5
> +++ l2tp/l2tp.h       15 Oct 2011 07:19:35 -0000
> @@ -313,7 +313,7 @@ typedef struct _l2tpd {
>       /** timeout event context */
>       struct event ev_timeout;
>       /** instance ID */
> -     unsigned id;
> +     u_int id;
>       /** listener list */
>       slist listener;
>       /** state */
> @@ -347,7 +347,7 @@ typedef struct _l2tpd {
>  typedef struct _l2tp_ctrl {
>       struct event ev_timeout;
>       /** ID */
> -     unsigned id;
> +     u_int id;
>       /** parent L2TPD */
>       l2tpd   *l2tpd;
>       /** listener index number */
> @@ -425,7 +425,7 @@ typedef struct _l2tp_ctrl {
>   */
>  typedef struct _l2tp_call {
>       /** ID */
> -     unsigned        id;
> +     u_int           id;
>       /** state */
>       int             state;
>       /** parent control connection */
> @@ -475,10 +475,10 @@ void             l2tpd_release_call (l2t
>  int              l2tpd_start (l2tpd *);
>  void             l2tpd_stop (l2tpd *);
>  void             l2tpd_stop_immediatly (l2tpd *);
> -l2tp_ctrl        *l2tpd_get_ctrl (l2tpd *, int);
> +l2tp_ctrl        *l2tpd_get_ctrl (l2tpd *, u_int);
>  void             l2tpd_add_ctrl (l2tpd *, l2tp_ctrl *);
>  void             l2tpd_ctrl_finished_notify(l2tpd *);
> -void             l2tpd_remove_ctrl (l2tpd *, int);
> +void             l2tpd_remove_ctrl (l2tpd *, u_int);
>  int              l2tpd_add_listener (l2tpd *, int, const char *, struct 
> sockaddr *);
>  void             l2tpd_log (l2tpd *, int, const char *, ...) 
> __attribute__((__format__ (__printf__, 3, 4)));
>  
> Index: l2tp/l2tp_ctrl.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/l2tp/l2tp_ctrl.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 l2tp_ctrl.c
> --- l2tp/l2tp_ctrl.c  15 Oct 2011 03:24:11 -0000      1.7
> +++ l2tp/l2tp_ctrl.c  15 Oct 2011 07:19:36 -0000
> @@ -93,7 +93,7 @@ static inline const char  *l2tp_ctrl_sta
>  #endif
>  
>  /* Sequence # of l2tp_ctrl ID */
> -static unsigned l2tp_ctrl_id_seq = 0;
> +static u_int l2tp_ctrl_id_seq = 0;
>  
>  #define SEQ_LT(a,b)  ((int16_t)((a) - (b)) <  0)
>  #define SEQ_GT(a,b)  ((int16_t)((a) - (b)) >  0)
> Index: l2tp/l2tp_subr.h
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/l2tp/l2tp_subr.h,v
> retrieving revision 1.3
> diff -u -p -r1.3 l2tp_subr.h
> --- l2tp/l2tp_subr.h  2 Jul 2010 21:20:57 -0000       1.3
> +++ l2tp/l2tp_subr.h  15 Oct 2011 07:19:36 -0000
> @@ -83,13 +83,13 @@ avp_set_val32(struct l2tp_avp *avp, uint
>  static inline int
>  short_cmp(const void *m, const void *n)
>  {
> -     return (int)((int)m - (int)n);
> +     return ((intptr_t)m - (intptr_t)n);
>  }
>  
>  static inline uint32_t
>  short_hash(const void *v, int sz)
>  {
> -     return (int)v % sz;
> +     return ((uintptr_t)v % sz);
>  }
>  
>  /*
> Index: l2tp/l2tpd.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/l2tp/l2tpd.c,v
> retrieving revision 1.6
> diff -u -p -r1.6 l2tpd.c
> --- l2tp/l2tpd.c      16 Mar 2011 09:49:11 -0000      1.6
> +++ l2tp/l2tpd.c      15 Oct 2011 07:19:36 -0000
> @@ -80,7 +80,7 @@ static inline int       short_cmp (const
>  static inline uint32_t  short_hash (const void *, int);
>  
>  /* sequence # of l2tpd ID */
> -static unsigned l2tpd_id_seq = 0;
> +static u_int l2tpd_id_seq = 0;
>  
>  #ifndef USE_LIBSOCKUTIL
>  struct in_ipsec_sa_cookie    {       };
> @@ -99,7 +99,8 @@ struct in_ipsec_sa_cookie   {       };
>  int
>  l2tpd_init(l2tpd *_this)
>  {
> -     int i, id, off;
> +     int i, off;
> +     u_int id;
>       struct sockaddr_in sin4;
>       struct sockaddr_in6 sin6;
>  
> @@ -143,8 +144,8 @@ l2tpd_init(l2tpd *_this)
>               id = (i + off) % L2TP_SESSION_ID_MASK;
>               if (id == 0)
>                       id = (off - 1) % L2TP_SESSION_ID_MASK;
> -             if (slist_add(&_this->free_session_id_list, (void *)id)
> -                 == NULL) {
> +             if (slist_add(&_this->free_session_id_list,
> +                 (void *)(uintptr_t)id) == NULL) {
>                       l2tpd_log(_this, LOG_ERR,
>                           "slist_add() failed on %s(): %m", __func__);
>                       return 1;
> @@ -254,11 +255,12 @@ l2tpd_uninit(l2tpd *_this)
>  int
>  l2tpd_assign_call(l2tpd *_this, l2tp_call *call)
>  {
> -     int shuffle_cnt, session_id;
> +     int    shuffle_cnt;
> +     u_int  session_id;
>  
>       shuffle_cnt = 0;
>       do {
> -             session_id = (int)slist_remove_first(
> +             session_id = (uintptr_t)slist_remove_first(
>                   &_this->free_session_id_list);
>               if (session_id != L2TP_SESSION_ID_SHUFFLE_MARK)
>                       break;
> @@ -284,7 +286,7 @@ l2tpd_assign_call(l2tpd *_this, l2tp_cal
>  void
>  l2tpd_release_call(l2tpd *_this, l2tp_call *call)
>  {
> -     slist_add(&_this->free_session_id_list, (void *)call->id);
> +     slist_add(&_this->free_session_id_list, (void *)(uintptr_t)call->id);
>  }
>  
>  
> @@ -861,11 +863,11 @@ l2tpd_io_event(int fd, short evtype, voi
>   * L2TP control
>   */
>  l2tp_ctrl *
> -l2tpd_get_ctrl(l2tpd *_this, int tunid)
> +l2tpd_get_ctrl(l2tpd *_this, unsigned tunid)
>  {
>       hash_link *hl;
>  
> -     hl = hash_lookup(_this->ctrl_map, (void *)tunid);
> +     hl = hash_lookup(_this->ctrl_map, (void *)(uintptr_t)tunid);
>       if (hl == NULL)
>               return NULL;
>  
> @@ -875,13 +877,13 @@ l2tpd_get_ctrl(l2tpd *_this, int tunid)
>  void
>  l2tpd_add_ctrl(l2tpd *_this, l2tp_ctrl *ctrl)
>  {
> -     hash_insert(_this->ctrl_map, (void *)ctrl->tunnel_id, ctrl);
> +     hash_insert(_this->ctrl_map, (void *)(uintptr_t)ctrl->tunnel_id, ctrl);
>  }
>  
>  void
> -l2tpd_remove_ctrl(l2tpd *_this, int tunid)
> +l2tpd_remove_ctrl(l2tpd *_this, unsigned tunid)
>  {
> -     hash_delete(_this->ctrl_map, (void *)tunid, 0);
> +     hash_delete(_this->ctrl_map, (void *)(uintptr_t)tunid, 0);
>  }
>  
>  
> Index: npppd/npppd.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/npppd/npppd.c,v
> retrieving revision 1.12
> diff -u -p -r1.12 npppd.c
> --- npppd/npppd.c     8 Jul 2011 06:14:54 -0000       1.12
> +++ npppd/npppd.c     15 Oct 2011 07:19:37 -0000
> @@ -1258,7 +1258,7 @@ pipex_periodic(npppd *_this)
>               }
>               for (i = 0; i < req.plr_ppp_id_count; i++) {
>                       ppp_id = req.plr_ppp_id[i];
> -                     slist_add(&dlist, (void *)ppp_id);
> +                     slist_add(&dlist, (void *)(uintptr_t)ppp_id);
>               }
>       } while (req.plr_flags & PIPEX_LISTREQ_MORE);
>  
> @@ -1275,7 +1275,7 @@ pipex_periodic(npppd *_this)
>       slist_itr_first(&dlist);
>       while (slist_itr_has_next(&dlist)) {
>               /* FIXME: Linear search by PPP Id eats CPU */
> -             ppp_id = (int)slist_itr_next(&dlist);
> +             ppp_id = (uintptr_t)slist_itr_next(&dlist);
>               slist_itr_first(&users);
>               ppp = NULL;
>               while (slist_itr_has_next(&users)) {
> Index: npppd/npppd_ctl.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/npppd/npppd_ctl.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 npppd_ctl.c
> --- npppd/npppd_ctl.c 24 Sep 2010 14:50:30 -0000      1.7
> +++ npppd/npppd_ctl.c 15 Oct 2011 07:19:38 -0000
> @@ -380,7 +380,7 @@ user_end:
>           npppd_ctl_log(_this, LOG_ERR,
>               "Received unknown command %04x", command);
>       }
> -fail:
> +
>       return;
>  }
>  
> Index: npppd/npppd_pool.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/npppd/npppd_pool.c,v
> retrieving revision 1.4
> diff -u -p -r1.4 npppd_pool.c
> --- npppd/npppd_pool.c        20 Jul 2010 20:47:17 -0000      1.4
> +++ npppd/npppd_pool.c        15 Oct 2011 07:19:38 -0000
> @@ -231,8 +231,8 @@ npppd_pool_reload(npppd_pool *_this)
>                               continue;
>                       if (count >= NPPPD_MAX_POOLED_ADDRS)
>                               break;
> -                     slist_add(&_this->dyna_addrs, (void *)
> -                         (range->addr + i));
> +                     slist_add(&_this->dyna_addrs,
> +                         (void *)(uintptr_t)(range->addr + i));
>                       count++;
>               }
>       }
> @@ -323,7 +323,7 @@ uint32_t
>  npppd_pool_get_dynamic(npppd_pool *_this, npppd_ppp *ppp)
>  {
>       int shuffle_cnt;
> -     void *result = NULL;
> +     uintptr_t result = 0;
>       struct sockaddr_in sin4 = {
>               .sin_len = sizeof(struct sockaddr_in),
>               .sin_family = AF_INET
> @@ -335,8 +335,8 @@ npppd_pool_get_dynamic(npppd_pool *_this
>       slist_itr_first(&_this->dyna_addrs);
>       while (slist_length(&_this->dyna_addrs) > 1 &&
>           slist_itr_has_next(&_this->dyna_addrs)) {
> -             result = slist_itr_next(&_this->dyna_addrs);
> -             if (result == NULL)
> +             result = (uintptr_t)slist_itr_next(&_this->dyna_addrs);
> +             if (result == 0)
>                       break;
>               /* shuffle */
>               if ((uint32_t)result == SHUFLLE_MARK) {
> @@ -346,13 +346,13 @@ npppd_pool_get_dynamic(npppd_pool *_this
>                        * If succeed to get address twice, it means no address 
> to use.
>                        */
>                       if (shuffle_cnt++ > 0) {
> -                             result = NULL;
> +                             result = 0;
>                               break;
>                       }
>                       NPPPD_POOL_DBG((_this, LOG_DEBUG, "shuffle"));
>                       slist_itr_remove(&_this->dyna_addrs);
>                       slist_shuffle(&_this->dyna_addrs);
> -                     slist_add(&_this->dyna_addrs, result);
> +                     slist_add(&_this->dyna_addrs, (void *)result);
>                       slist_itr_first(&_this->dyna_addrs);
>                       continue;
>               }
> @@ -426,8 +426,7 @@ npppd_pool_assign_ip(npppd_pool *_this, 
>       /* If the address contains dynamic pool address list, delete it. */
>       slist_itr_first(&_this->dyna_addrs);
>       while (slist_itr_has_next(&_this->dyna_addrs)) {
> -             if ((uint32_t)slist_itr_next(
> -                 &_this->dyna_addrs) != ip4)
> +             if ((uintptr_t)slist_itr_next(&_this->dyna_addrs) != ip4)
>                       continue;
>               slist_itr_remove(&_this->dyna_addrs);
>               break;
> @@ -499,7 +498,8 @@ npppd_pool_release_ip(npppd_pool *_this,
>       if (_this != NULL && ppp->assign_dynapool != 0)
>               /* return to dynamic address pool list */
>               slist_add(&((npppd_pool *)ppp->assigned_pool)->dyna_addrs,
> -                 (void *)ntohl(ppp->ppp_framed_ip_address.s_addr));
> +                 (void *)(uintptr_t)ntohl(
> +                         ppp->ppp_framed_ip_address.s_addr));
>  
>       if (snp != NULL && snp->snp_next != NULL) {
>               /*
> Index: npppd/npppd_radius.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/npppd/npppd_radius.c,v
> retrieving revision 1.1
> diff -u -p -r1.1 npppd_radius.c
> --- npppd/npppd_radius.c      6 Jul 2011 20:52:28 -0000       1.1
> +++ npppd/npppd_radius.c      15 Oct 2011 07:19:38 -0000
> @@ -120,7 +120,7 @@ npppd_ppp_radius_acct_reqcb(void *contex
>  {
>       int ppp_id;
>  
> -     ppp_id = (int)context;
> +     ppp_id = (uintptr_t)context;
>       if ((flags & RADIUS_REQUEST_TIMEOUT) != 0) {
>               log_printf(LOG_WARNING, "ppp id=%d radius accounting request "
>                   "failed: no response from the server.", ppp_id);
> @@ -151,7 +151,7 @@ npppd_ppp_radius_acct_reqcb(void *contex
>                           sbuf, sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV)
>                           != 0) {
>                               strlcpy(hbuf, "unknown", sizeof(hbuf));
> -                             strlcpy(sbuf, "", sizeof(hbuf));
> +                             strlcpy(sbuf, "", sizeof(sbuf));
>                       }
>                       log_printf(LOG_DEBUG, "ppp id=%d "
>                           "fail over to %s:%s for radius accounting request",
> @@ -198,7 +198,7 @@ radius_acct_request(npppd *pppd, npppd_p
>           == NULL)
>               goto reigai;
>  
> -     if (radius_prepare(rad_setting, (void *)ppp->id, &radctx,
> +     if (radius_prepare(rad_setting, (void *)(uintptr_t)ppp->id, &radctx,
>           npppd_ppp_radius_acct_reqcb, 0) != 0)
>               goto reigai;
>  
> Index: npppd/ppp.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/npppd/ppp.c,v
> retrieving revision 1.9
> diff -u -p -r1.9 ppp.c
> --- npppd/ppp.c       15 Oct 2011 03:24:11 -0000      1.9
> +++ npppd/ppp.c       15 Oct 2011 07:19:38 -0000
> @@ -388,14 +388,15 @@ ppp_stop0(npppd_ppp *_this)
>               snprintf(mppe_str, sizeof(mppe_str), "mppe=no");
>       ppp_log(_this, LOG_NOTICE,
>               "logtype=TUNNELUSAGE user=\"%s\" duration=%ldsec layer2=%s "
> -             "layer2from=%s auth=%s data_in=%qubytes,%upackets "
> -             "data_out=%qubytes,%upackets error_in=%u error_out=%u %s "
> +             "layer2from=%s auth=%s data_in=%llubytes,%upackets "
> +             "data_out=%llubytes,%upackets error_in=%u error_out=%u %s "
>               "iface=%s",
>               _this->username[0]? _this->username : "<unknown>",
>               (long)(_this->end_monotime - _this->start_monotime),
>               _this->phy_label,  label,
>               _this->username[0]? ppp_peer_auth_string(_this) : "none",
> -             _this->ibytes, _this->ipackets, _this->obytes, _this->opackets,
> +             (unsigned long long)_this->ibytes, _this->ipackets,
> +             (unsigned long long)_this->obytes, _this->opackets,
>               _this->ierrors, _this->oerrors, mppe_str,
>               npppd_ppp_get_iface_name(_this->pppd, _this));
>  
> Index: npppd/radius+.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/npppd/radius+.c,v
> retrieving revision 1.4
> diff -u -p -r1.4 radius+.c
> --- npppd/radius+.c   6 Jul 2011 20:52:28 -0000       1.4
> +++ npppd/radius+.c   15 Oct 2011 07:19:38 -0000
> @@ -821,7 +821,8 @@ int radius_put_message_authenticator(RAD
>       {
>               if (attr->type == RADIUS_TYPE_MESSAGE_AUTHENTICATOR)
>               {
> -                     memcpy(attr->data, md5result, sizeof(md5result));
> +                     memcpy((u_char *)&attr->data[0], md5result,
> +                         sizeof(md5result));
>                       break;
>               }
>       }
> Index: pppoe/pppoe_session.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/pppoe/pppoe_session.c,v
> retrieving revision 1.4
> diff -u -p -r1.4 pppoe_session.c
> --- pppoe/pppoe_session.c     16 Mar 2011 09:48:45 -0000      1.4
> +++ pppoe/pppoe_session.c     15 Oct 2011 07:19:39 -0000
> @@ -385,8 +385,8 @@ pppoe_session_recv_PADR(pppoe_session *_
>                       goto fail;
>  
>               _this->acookie = *(uint32_t *)(ac_cookie->value);
> -             hash_insert(pppoed0->acookie_hash, (void *)_this->acookie,
> -                         _this);
> +             hash_insert(pppoed0->acookie_hash,
> +                     (void *)(intptr_t)_this->acookie, _this);
>       }
>  
>       if (pppoe_session_send_PADS(_this, hostuniq, service_name) != 0)
> Index: pppoe/pppoed.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/pppoe/pppoed.c,v
> retrieving revision 1.7
> diff -u -p -r1.7 pppoed.c
> --- pppoe/pppoed.c    28 Feb 2011 02:31:55 -0000      1.7
> +++ pppoe/pppoed.c    15 Oct 2011 07:19:39 -0000
> @@ -153,7 +153,8 @@ pppoed_init(pppoed *_this)
>               id = (i + off) % 0xffff;
>               if (id == 0)
>                       id = (off - 1) % 0xffff;
> -             if (slist_add(&_this->session_free_list, (void *)id) == NULL) {
> +             if (slist_add(&_this->session_free_list, (void *)(intptr_t)id)
> +                 == NULL) {
>                       pppoed_log(_this, LOG_ERR,
>                           "slist_add() failed on %s(): %m", __func__);
>                       goto fail;
> @@ -448,13 +449,15 @@ pppoed_uninit(pppoed *_this)
>  void
>  pppoed_pppoe_session_close_notify(pppoed *_this, pppoe_session *session)
>  {
> -     slist_add(&_this->session_free_list, (void *)session->session_id);
> +     slist_add(&_this->session_free_list,
> +         (void *)(intptr_t)session->session_id);
>  
>       if (_this->acookie_hash != NULL)
> -             hash_delete(_this->acookie_hash, (void *)session->acookie, 0);
> +             hash_delete(_this->acookie_hash,
> +                 (void *)(intptr_t)session->acookie, 0);
>       if (_this->session_hash != NULL)
> -             hash_delete(_this->session_hash, (void *)session->session_id,
> -                 0);
> +             hash_delete(_this->session_hash,
> +                 (void *)(intptr_t)session->session_id, 0);
>  
>       pppoe_session_fini(session);
>       free(session);
> @@ -776,7 +779,8 @@ pppoed_input(pppoed_listener *_this, uin
>       }
>  
>       if (session_id != 0) {
> -             hl = hash_lookup(_this->self->session_hash, (void *)session_id);
> +             hl = hash_lookup(_this->self->session_hash,
> +                 (void *)(intptr_t)session_id);
>               if (hl != NULL)
>                       session = (pppoe_session *)hl->item;
>       }
> @@ -916,7 +920,7 @@ pppoed_recv_PADR(pppoed_listener *_this,
>       /* create session_id */
>       shuffle_cnt = 0;
>       do {
> -             session_id = (int)slist_remove_first(
> +             session_id = (intptr_t)slist_remove_first(
>                   &_pppoed->session_free_list);
>               if (session_id != PPPOED_SESSION_SHUFFLE_MARK)
>                       break;
> @@ -938,7 +942,8 @@ pppoed_recv_PADR(pppoed_listener *_this,
>           shost) != 0)
>               goto fail;
>  
> -     hash_insert(_pppoed->session_hash, (void *)session_id, session);
> +     hash_insert(_pppoed->session_hash, (void *)(intptr_t)session_id,
> +         session);
>  
>       if (pppoe_session_recv_PADR(session, tag_list) != 0)
>               goto fail;
> @@ -1070,7 +1075,7 @@ pppoed_recv_PADI(pppoed_listener *_this,
>                       _this->self->acookie_next += 1;
>               }
>               while(hash_lookup(_this->self->acookie_hash,
> -                 (void *)_this->self->acookie_next) != NULL);
> +                 (void *)(intptr_t)_this->self->acookie_next) != NULL);
>  
>               tlv.type = htons(PPPOE_TAG_AC_COOKIE);
>               tlv.length = ntohs(sizeof(uint32_t));
> @@ -1201,8 +1206,8 @@ session_id_cmp(void *a, void *b)
>  {
>       int ia, ib;
>  
> -     ia = (int)a;
> -     ib = (int)b;
> +     ia = (intptr_t)a;
> +     ib = (intptr_t)b;
>  
>       return ib - ia;
>  }
> @@ -1212,7 +1217,7 @@ session_id_hash(void *a, size_t siz)
>  {
>       int ia;
>  
> -     ia = (int)a;
> +     ia = (intptr_t)a;
>  
>       return ia % siz;
>  }
> Index: pptp/pptpd.c
> ===================================================================
> RCS file: /cvs/src/usr.sbin/npppd/pptp/pptpd.c,v
> retrieving revision 1.8
> diff -u -p -r1.8 pptpd.c
> --- pptp/pptpd.c      20 Jan 2011 23:12:33 -0000      1.8
> +++ pptp/pptpd.c      15 Oct 2011 07:19:39 -0000
> @@ -245,20 +245,21 @@ pptpd_uninit(pptpd *_this)
>       _this->config = NULL;
>  }
>  
> -#define      CALL_MAP_KEY(call)      \
> -     (void *)(call->id | (call->ctrl->listener_index << 16))
> -#define      CALL_ID(item)   ((uint32_t)item & 0xffff)
> -
> +#define      CALL_ID_KEY(call_id, listener_idx)      \
> +     ((void *)((uintptr_t)(call_id) | (listener_idx) << 16))
> +#define      CALL_KEY(call)                          \
> +     CALL_ID_KEY((call)->id, (call)->ctrl->listener_index)
>  int
>  pptpd_assign_call(pptpd *_this, pptp_call *call)
>  {
> -     int shuffle_cnt = 0, call_id;
> +     int shuffle_cnt = 0;
> +     u_int call_id;
>  
>       shuffle_cnt = 0;
>       slist_itr_first(&_this->call_free_list);
>       while (slist_length(&_this->call_free_list) > 1 &&
>           slist_itr_has_next(&_this->call_free_list)) {
> -             call_id = (int)slist_itr_next(&_this->call_free_list);
> +             call_id = (uintptr_t)slist_itr_next(&_this->call_free_list);
>               if (call_id == 0)
>                       break;
>               slist_itr_remove(&_this->call_free_list);
> @@ -272,7 +273,7 @@ pptpd_assign_call(pptpd *_this, pptp_cal
>                       continue;
>               }
>               call->id = call_id;
> -             hash_insert(_this->call_id_map, CALL_MAP_KEY(call), call);
> +             hash_insert(_this->call_id_map, CALL_KEY(call), call);
>  
>               return 0;
>       }
> @@ -286,8 +287,8 @@ void
>  pptpd_release_call(pptpd *_this, pptp_call *call)
>  {
>       if (call->id != 0)
> -             slist_add(&_this->call_free_list, (void *)call->id);
> -     hash_delete(_this->call_id_map, CALL_MAP_KEY(call), 0);
> +             slist_add(&_this->call_free_list, (void *)(uintptr_t)call->id);
> +     hash_delete(_this->call_id_map, CALL_KEY(call), 0);
>       call->id = 0;
>  }
>  
> @@ -951,8 +952,7 @@ pptpd_gre_input(pptpd_listener *listener
>       /* route to pptp_call */
>       call_id = grehdr->call_id;
>  
> -     hl = hash_lookup(_this->call_id_map,
> -         (void *)(call_id | (listener->index << 16)));
> +     hl = hash_lookup(_this->call_id_map, CALL_ID_KEY(call_id, 
> listener->index));
>       if (hl == NULL) {
>               reason = "Received GRE packet has unknown call_id";
>               goto bad_gre;
> @@ -1095,13 +1095,13 @@ pptpd_log(pptpd *_this, int prio, const 
>  static int
>  pptp_call_cmp(const void *a0, const void *b0)
>  {
> -     return ((uint32_t)a0 - (uint32_t)b0);
> +     return ((intptr_t)a0 - (intptr_t)b0);
>  }
>  
>  static uint32_t
>  pptp_call_hash(const void *ctx, int size)
>  {
> -     return (uint32_t)ctx % size;
> +     return (uintptr_t)ctx % size;
>  }
>  
>  /* convert GRE packet header to strings */

Reply via email to