Ticket #295: libnetworking.patch

File libnetworking.patch, 4.5 KB (added by strauman, on 12/03/06 at 13:31:12)

libnetworking.patch

Line 
1Index: nfs/bootp_subr.c
2===================================================================
3RCS file: /afs/slac/g/spear/cvsrep/rtems/src/c/src/libnetworking/nfs/bootp_subr.c,v
4retrieving revision 1.2
5diff -c -r1.2 bootp_subr.c
6*** nfs/bootp_subr.c    3 Apr 2002 03:28:28 -0000       1.2
7--- nfs/bootp_subr.c    29 Oct 2002 20:56:37 -0000
8***************
9*** 870,875 ****
10--- 870,883 ----
11          rtems_bsdnet_bootp_boot_file_name = strdup (p);
12        break;
13 
14+       case 129:
15+         /* Site specific option; we use this to get
16+          * a 'command line string'
17+          */
18+         if (p[0])
19+               rtems_bsdnet_bootp_cmdline = strdup(p);
20+         break;
21+
22      default:
23        printf ("Ignoring BOOTP/DHCP option code %d\n", code);
24        break;
25***************
26*** 1035,1040 ****
27--- 1043,1050 ----
28      printf ("Server name is %s\n", rtems_bsdnet_bootp_server_name);
29    if (rtems_bsdnet_bootp_boot_file_name)
30      printf ("Boot file is %s\n", rtems_bsdnet_bootp_boot_file_name);
31+   if (rtems_bsdnet_bootp_cmdline)
32+     printf ("Command line is %s\n", rtems_bsdnet_bootp_cmdline);
33 
34    /*
35     * Use defaults if values were not supplied by BOOTP/DHCP options
36Index: rtems/rtems_bsdnet.h
37===================================================================
38RCS file: /afs/slac/g/spear/cvsrep/rtems/src/c/src/libnetworking/rtems/rtems_bsdnet.h,v
39retrieving revision 1.1.1.1
40diff -c -r1.1.1.1 rtems_bsdnet.h
41*** rtems/rtems_bsdnet.h        14 Dec 2001 22:54:01 -0000      1.1.1.1
42--- rtems/rtems_bsdnet.h        29 Oct 2002 20:55:39 -0000
43***************
44*** 35,40 ****
45--- 35,41 ----
46  extern struct in_addr rtems_bsdnet_bootp_server_address;
47  extern char *rtems_bsdnet_bootp_server_name;
48  extern char *rtems_bsdnet_bootp_boot_file_name;
49+ extern char *rtems_bsdnet_bootp_cmdline;
50  extern struct in_addr rtems_bsdnet_ntpserver[];
51  extern int rtems_bsdnet_ntpserver_count;
52  extern long rtems_bsdnet_timeoffset;
53Index: rtems/rtems_glue.c
54===================================================================
55RCS file: /afs/slac/g/spear/cvsrep/rtems/src/c/src/libnetworking/rtems/rtems_glue.c,v
56retrieving revision 1.1.1.1
57diff -c -r1.1.1.1 rtems_glue.c
58*** rtems/rtems_glue.c  14 Dec 2001 22:54:01 -0000      1.1.1.1
59--- rtems/rtems_glue.c  29 Oct 2002 20:50:41 -0000
60***************
61*** 78,95 ****
62  /*
63   * BOOTP values
64   */
65! struct in_addr rtems_bsdnet_log_host_address;
66! struct in_addr rtems_bsdnet_bootp_server_address;
67! char *rtems_bsdnet_bootp_boot_file_name;
68! char *rtems_bsdnet_bootp_server_name;
69! char *rtems_bsdnet_domain_name;
70  struct in_addr rtems_bsdnet_nameserver[sizeof rtems_bsdnet_config.name_server /
71                        sizeof rtems_bsdnet_config.name_server[0]];
72! int rtems_bsdnet_nameserver_count;
73  struct in_addr rtems_bsdnet_ntpserver[sizeof rtems_bsdnet_config.ntp_server /
74                        sizeof rtems_bsdnet_config.ntp_server[0]];
75! int rtems_bsdnet_ntpserver_count;
76! long rtems_bsdnet_timeoffset;
77 
78  /*
79   * Perform FreeBSD memory allocation.
80--- 78,96 ----
81  /*
82   * BOOTP values
83   */
84! struct in_addr rtems_bsdnet_log_host_address = {0};
85! struct in_addr rtems_bsdnet_bootp_server_address = {0};
86! char *rtems_bsdnet_bootp_boot_file_name = 0;
87! char *rtems_bsdnet_bootp_server_name = 0;
88! char *rtems_bsdnet_domain_name = 0;
89! char *rtems_bsdnet_bootp_cmdline = 0;
90  struct in_addr rtems_bsdnet_nameserver[sizeof rtems_bsdnet_config.name_server /
91                        sizeof rtems_bsdnet_config.name_server[0]];
92! int rtems_bsdnet_nameserver_count = 0;
93  struct in_addr rtems_bsdnet_ntpserver[sizeof rtems_bsdnet_config.ntp_server /
94                        sizeof rtems_bsdnet_config.ntp_server[0]];
95! int rtems_bsdnet_ntpserver_count = 0;
96! long rtems_bsdnet_timeoffset = 0;
97 
98  /*
99   * Perform FreeBSD memory allocation.
100***************
101*** 872,881 ****
102                        broadcast.sin_addr.s_addr =
103                                        address.sin_addr.s_addr | ~netmask.sin_addr.s_addr;
104                        if (rtems_bsdnet_ifconfig (ifp->name, SIOCSIFBRDADDR, &broadcast) < 0) {
105!                               struct in_addr in_addr;
106                                in_addr.s_addr = broadcast.sin_addr.s_addr;
107                                printf ("Can't set %s broadcast address %s: %s\n",
108!                                       ifp->name, inet_ntoa (in_addr), strerror (errno));
109                        }
110                }
111        }
112--- 873,885 ----
113                        broadcast.sin_addr.s_addr =
114                                        address.sin_addr.s_addr | ~netmask.sin_addr.s_addr;
115                        if (rtems_bsdnet_ifconfig (ifp->name, SIOCSIFBRDADDR, &broadcast) < 0) {
116!                               struct in_addr  in_addr;
117!                               char                    buf[20];
118                                in_addr.s_addr = broadcast.sin_addr.s_addr;
119+                               if (!inet_ntop(AF_INET, &in_addr, buf, sizeof(buf)))
120+                                               strcpy(buf,"?.?.?.?");
121                                printf ("Can't set %s broadcast address %s: %s\n",
122!                                       ifp->name, buf, strerror (errno));
123                        }
124                }
125        }