/[gxemul]/trunk/src/net.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/src/net.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 12 by dpavlin, Mon Oct 8 16:18:38 2007 UTC revision 20 by dpavlin, Mon Oct 8 16:19:23 2007 UTC
# Line 25  Line 25 
25   *  SUCH DAMAGE.   *  SUCH DAMAGE.
26   *   *
27   *   *
28   *  $Id: net.c,v 1.80 2005/08/12 05:49:46 debug Exp $   *  $Id: net.c,v 1.84 2005/11/25 03:38:00 debug Exp $
29   *   *
30   *  Emulated (ethernet / internet) network support.   *  Emulated (ethernet / internet) network support.
31   *   *
# Line 172  void net_generate_unique_mac(struct mach Line 172  void net_generate_unique_mac(struct mach
172          macbuf[4] = 0;          macbuf[4] = 0;
173          macbuf[5] = machine->serial_nr << 4;          macbuf[5] = machine->serial_nr << 4;
174    
175            if (macbuf[0] & 1 || macbuf[5] & 1) {
176                    fatal("Internal error in net_generate_unique_mac().\n");
177                    exit(1);
178            }
179    
180          /*  TODO: Remember the mac addresses somewhere?  */          /*  TODO: Remember the mac addresses somewhere?  */
181          machine->nr_of_nics ++;          machine->nr_of_nics ++;
182  }  }
# Line 1430  static void net_arp(struct net *net, voi Line 1435  static void net_arp(struct net *net, voi
1435                          if (memcmp(packet+24, net->gateway_ipv4_addr, 4) != 0)                          if (memcmp(packet+24, net->gateway_ipv4_addr, 4) != 0)
1436                                  break;                                  break;
1437    
1438                          lp = net_allocate_packet_link(net, extra, len + 14);                          lp = net_allocate_packet_link(net, extra, 60 + 14);
1439    
1440                          /*  Copy the old packet first:  */                          /*  Copy the old packet first:  */
1441                            memset(lp->data, 0, 60 + 14);
1442                          memcpy(lp->data + 14, packet, len);                          memcpy(lp->data + 14, packet, len);
1443    
1444                          /*  Add ethernet ARP header:  */                          /*  Add ethernet ARP header:  */
# Line 1453  static void net_arp(struct net *net, voi Line 1459  static void net_arp(struct net *net, voi
1459    
1460                          break;                          break;
1461                  case 3:         /*  Reverse Request  */                  case 3:         /*  Reverse Request  */
1462                          lp = net_allocate_packet_link(net, extra, len + 14);                          lp = net_allocate_packet_link(net, extra, 60 + 14);
1463    
1464                          /*  Copy the old packet first:  */                          /*  Copy the old packet first:  */
1465                            memset(lp->data, 0, 60 + 14);
1466                          memcpy(lp->data + 14, packet, len);                          memcpy(lp->data + 14, packet, len);
1467    
1468                          /*  Add ethernet RARP header:  */                          /*  Add ethernet RARP header:  */
# Line 2062  void net_ethernet_tx(struct net *net, vo Line 2069  void net_ethernet_tx(struct net *net, vo
2069    
2070          /*  ARP:  */          /*  ARP:  */
2071          if (packet[12] == 0x08 && packet[13] == 0x06) {          if (packet[12] == 0x08 && packet[13] == 0x06) {
2072                  if (len != 60)                  if (len != 42 && len != 60)
2073                          fatal("[ net_ethernet_tx: WARNING! unusual "                          fatal("[ net_ethernet_tx: WARNING! unusual "
2074                              "ARP len (%i) ]\n", len);                              "ARP len (%i) ]\n", len);
2075                  net_arp(net, extra, packet + 14, len - 14, 0);                  net_arp(net, extra, packet + 14, len - 14, 0);

Legend:
Removed from v.12  
changed lines
  Added in v.20

  ViewVC Help
Powered by ViewVC 1.1.26