Looks like the ip_h323_pxy.c broken in Little Endian machine.
Below is the patch:

-xtang

*** netinet/ip_h323_pxy.c       Tue May 21 20:28:14 2002
--- /home/xtang/src/ip_fil3.4.27/ip_h323_pxy.c  Sat Apr 20 12:41:48 2002
***************
*** 52,58 ****
  int datlen, *off;
  unsigned short *port;
  {
!       u_32_t addr, netaddr;
        u_char *dp;
        int offset;
--- 52,58 ----
  int datlen, *off;
  unsigned short *port;
  {
!       u_32_t addr;
        u_char *dp;
        int offset;

***************
*** 62,72 ****
        *port = 0;
        offset = *off;
        dp = (u_char *)data;
!       netaddr = ntohl(ipaddr);
!
        for (offset = 0; offset <= datlen - 6; offset++, dp++) {
                addr = (dp[0] << 24) | (dp[1] << 16) | (dp[2] << 8) | dp[3];
!               if (netaddr == addr)
                {
                        *port = (*(dp + 4) << 8) | *(dp + 5);
                        break;
--- 62,71 ----
        *port = 0;
        offset = *off;
        dp = (u_char *)data;
!
        for (offset = 0; offset <= datlen - 6; offset++, dp++) {
                addr = (dp[0] << 24) | (dp[1] << 16) | (dp[2] << 8) | dp[3];
!               if (ipaddr == addr)
                {
                        *port = (*(dp + 4) << 8) | *(dp + 5);
                        break;

Reply via email to