home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / tcpdumpb.zip / print-netbios.c < prev    next >
C/C++ Source or Header  |  1996-07-23  |  3KB  |  102 lines

  1. /*
  2.  * Copyright (c) 1994, 1995, 1996
  3.  *    The Regents of the University of California.  All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms, with or without
  6.  * modification, are permitted provided that: (1) source code distributions
  7.  * retain the above copyright notice and this paragraph in its entirety, (2)
  8.  * distributions including binary code include the above copyright notice and
  9.  * this paragraph in its entirety in the documentation or other materials
  10.  * provided with the distribution, and (3) all advertising materials mentioning
  11.  * features or use of this software display the following acknowledgement:
  12.  * ``This product includes software developed by the University of California,
  13.  * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
  14.  * the University nor the names of its contributors may be used to endorse
  15.  * or promote products derived from this software without specific prior
  16.  * written permission.
  17.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
  18.  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  19.  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  20.  */
  21.  
  22. /*
  23.  * Format and print NETBIOS packets.
  24.  * Contributed by Brad Parker (brad@fcr.com).
  25.  */
  26. #ifndef lint
  27. static  char rcsid[] =
  28.     "@(#)$Header: print-netbios.c,v 1.8 96/07/23 14:17:25 leres Exp $";
  29. #endif
  30.  
  31. #ifdef __STDC__
  32. #include <stdlib.h>
  33. #endif
  34. #include <stdio.h>
  35.  
  36. #include <sys/param.h>
  37. #include <sys/socket.h>
  38.  
  39. #include <netinet/in.h>
  40. #include <netinet/in_systm.h>
  41. #include <netinet/ip.h>
  42. #include <netinet/ip_var.h>
  43. #include <netinet/udp.h>
  44. #include <netinet/udp_var.h>
  45. #include <netinet/tcp.h>
  46. #include <netinet/tcpip.h>
  47.  
  48. #include <string.h>
  49.  
  50. #include "interface.h"
  51. #include "addrtoname.h"
  52. #include "netbios.h"
  53. #include "extract.h"
  54.  
  55. /*
  56.  * Print NETBIOS packets.
  57.  */
  58. void
  59. netbios_print(struct p8022Hdr *nb, u_int length)
  60. {
  61.     if (length < p8022Size) {
  62.         (void)printf(" truncated-netbios %d", length);
  63.         return;
  64.     }
  65.  
  66.     if (nb->flags == UI) {
  67.         (void)printf("802.1 UI ");
  68.     } else {
  69.         (void)printf("802.1 CONN ");
  70.     }
  71.  
  72.     if ((u_char *)(nb + 1) > snapend) {
  73.         printf(" [|netbios]");
  74.         return;
  75.     }
  76.  
  77. /*
  78.     netbios_decode(nb, (u_char *)nb + p8022Size, length - p8022Size);
  79. */
  80. }
  81.  
  82. #ifdef never
  83.     (void)printf("%s.%d > ",
  84.              ipxaddr_string(EXTRACT_32BITS(ipx->srcNet), ipx->srcNode),
  85.              EXTRACT_16BITS(ipx->srcSkt));
  86.  
  87.     (void)printf("%s.%d:",
  88.              ipxaddr_string(EXTRACT_32BITS(ipx->dstNet), ipx->dstNode),
  89.              EXTRACT_16BITS(ipx->dstSkt));
  90.  
  91.     if ((u_char *)(ipx + 1) > snapend) {
  92.         printf(" [|ipx]");
  93.         return;
  94.     }
  95.  
  96.     /* take length from ipx header */
  97.     length = EXTRACT_16BITS(&ipx->length);
  98.  
  99.     ipx_decode(ipx, (u_char *)ipx + ipxSize, length - ipxSize);
  100. #endif
  101.  
  102.