]> git.wh0rd.org Git - patches.git/blob - netflash-cleanup.patch
initial import
[patches.git] / netflash-cleanup.patch
1 --- user/netflash/netflash.c
2 +++ user/netflash/netflash.c
3 @@ -80,6 +80,7 @@
4  #include "fileblock.h"
5  #include "exit_codes.h"
6  #include "versioning.h"
7 +#include "netflash.h"
8  
9  /****************************************************************************/
10  
11 @@ -969,9 +970,7 @@ int local_write(int fd, char *buf, int c
12  
13  /****************************************************************************/
14   
15 -extern int tftpmain(int argc, char *argv[]);
16 -extern int tftpsetbinary(int argc, char *argv[]);
17 -extern int tftpget(int argc, char *argv[]);
18 +#include "tftp.h"
19  
20  /*
21   * Call to tftp. This will initialize tftp and do a get operation.
22 --- user/netflash/netflash.h
23 +++ user/netflash/netflash.h
24 @@ -0,0 +1,8 @@
25 +#include <stdio.h>
26 +
27 +int local_creat(char *name, int flags);
28 +int local_fclose(FILE *fp);
29 +int local_fseek(FILE *fp, int offset, int whence);
30 +int local_putc(int ch, FILE *fp);
31 +int local_write(int fd, char *buf, int count);
32 +FILE *local_fdopen(int fd, char *flags);
33 --- user/netflash/tftp.c
34 +++ user/netflash/tftp.c
35 @@ -34,12 +34,22 @@ static char sccsid[] = "@(#)tftp.c  5.7 (
36  
37  #include <signal.h>
38  #include <stdio.h>
39 +#include <stdlib.h>
40 +#include <string.h>
41  #include <errno.h>
42  #include <setjmp.h>
43 +#include <unistd.h>
44  
45  #include "exit_codes.h"
46 +#include "netflash.h"
47 +#include "tftp.h"
48  
49 -extern int errno;
50 +static int tftpmakerequest(int request, char *name, struct tftphdr *tp, char *mode);
51 +static void tftpnak(int error);
52 +static void tftpstartclock(void);
53 +static void tftptpacket(char *s, struct tftphdr *tp, int n);
54 +static void tftpstopclock(void);
55 +static void tftpprintstats(char *direction, unsigned long amount, char *join, char *name);
56  
57  extern  struct sockaddr_in tftpsin;         /* filled in by main */
58  extern  int     tftpf;                      /* the opened socket */
59 @@ -49,7 +59,6 @@ extern  int     tftprexmtval;
60  extern  int     tftpmaxtimeout;
61  
62  extern struct tftphdr *tftpw_init(void);
63 -extern FILE *local_fdopen(int fd, char *flags);
64  
65  #define PKTSIZE    SEGSIZE+4
66  char    tftpackbuf[PKTSIZE];
67 @@ -84,7 +93,7 @@ tftpsendfile(fd, name, mode)
68         register int block = 0, size, n;
69         register unsigned long amount = 0;
70         struct sockaddr_in from;
71 -       int fromlen;
72 +       socklen_t fromlen;
73         int convert;            /* true if doing nl->crlf conversion */
74         FILE *file;
75  
76 @@ -181,6 +190,7 @@ abort:
77  /*
78   * Receive a file.
79   */
80 +void
81  tftprecvfile(fd, name, mode)
82         int fd;
83         char *name;
84 @@ -192,7 +202,8 @@ tftprecvfile(fd, name, mode)
85         u_short block = 1;
86         unsigned long amount = 0;
87         struct sockaddr_in from;
88 -       int fromlen, firsttrip = 1;
89 +       socklen_t fromlen;
90 +       int firsttrip = 1;
91         FILE *file;
92         int convert;                    /* true if converting crlf -> lf */
93  
94 @@ -288,6 +299,7 @@ abort:                                  
95                 tftpprintstats("Received", amount, "from", name);
96  }
97  
98 +static int
99  tftpmakerequest(request, name, tp, mode)
100         int request;
101         char *name, *mode;
102 @@ -327,13 +339,13 @@ struct errmsg {
103   * standard TFTP codes, or a UNIX errno
104   * offset by 100.
105   */
106 +static void
107  tftpnak(error)
108         int error;
109  {
110         register struct tftphdr *tp;
111         int length;
112         register struct errmsg *pe;
113 -/*     extern char *sys_errlist[]; */
114  
115         tp = (struct tftphdr *)tftpackbuf;
116         tp->th_opcode = htons((u_short)ERROR);
117 @@ -345,7 +357,7 @@ tftpnak(error)
118  #ifdef EMBED
119                 pe->e_msg = "error";
120  #else
121 -               pe->e_msg = sys_errlist[error - 100];
122 +               pe->e_msg = strerror(error - 100);
123  #endif
124                 tp->th_code = EUNDEF;
125         }
126 @@ -358,6 +370,7 @@ tftpnak(error)
127                 perror("nak");
128  }
129  
130 +static void
131  tftptpacket(s, tp, n)
132         char *s;
133         struct tftphdr *tp;
134 @@ -401,14 +414,17 @@ struct timeval tftptstart;
135  struct timeval tftptstop;
136  struct timezone tftpzone;
137  
138 +static void
139  tftpstartclock() {
140         gettimeofday(&tftptstart, &tftpzone);
141  }
142  
143 +static void
144  tftpstopclock() {
145         gettimeofday(&tftptstop, &tftpzone);
146  }
147  
148 +static void
149  tftpprintstats(direction, amount, join, name)
150  char *direction;
151  unsigned long amount;
152 --- user/netflash/http.c
153 +++ user/netflash/http.c
154 @@ -13,9 +13,11 @@
155  #include <string.h>
156  #include <errno.h>
157  #include <netdb.h>
158 +#include <unistd.h>
159  #include <sys/types.h>
160  #include <sys/socket.h>
161  #include <netinet/in.h>
162 +#include <arpa/inet.h>
163  
164  /****************************************************************************/
165  
166 @@ -47,7 +49,7 @@ int openhttp(char *url)
167         char                    urlfile[256];
168         char                    buf[256];
169         char                    relocurl[512];
170 -       int                     fd, portnr, n, relocated;
171 +       int                     fd, portnr, relocated;
172  
173         fd = -1;
174         portnr = 80;
175 --- user/netflash/tftp.h
176 +++ user/netflash/tftp.h
177 @@ -0,0 +1,16 @@
178 +/* TFTP prototypes */
179 +
180 +#include <stdio.h>
181 +#include <arpa/tftp.h>
182 +
183 +int tftpsynchnet(int f);
184 +int tftpwriteit(FILE *file, struct tftphdr **dpp, int ct, int convert);
185 +int tftpwrite_behind(FILE *file, int convert);
186 +void tftprecvfile(int fd, char *name, char *mode);
187 +
188 +void tftpget(int argc, char *argv[]);
189 +void tftpmain(int argc, char *argv[]);
190 +void tftpmodecmd(int argc, char *argv[]);
191 +void tftpsetascii(int argc, char *argv[]);
192 +void tftpsetbinary(int argc, char *argv[]);
193 +void tftpsetpeer(int argc, char *argv[]);
194 --- user/netflash/Makefile
195 +++ user/netflash/Makefile
196 @@ -1,3 +1,4 @@
197 +CFLAGS += -Wall
198  
199  EXEC = netflash
200  OBJS = tftpmain.o tftp.o tftpsubs.o http.o
201 --- user/netflash/tftpsubs.c
202 +++ user/netflash/tftpsubs.c
203 @@ -37,6 +37,9 @@ static char sccsid[] = "@(#)tftpsubs.c        5
204  #include <arpa/tftp.h>
205  #include <stdio.h>
206  
207 +#include "netflash.h"
208 +#include "tftp.h"
209 +
210  #define PKTSIZE SEGSIZE+4       /* should be moved to tftp.h */
211  
212  static struct bf {
213 @@ -92,7 +95,7 @@ tftpreadit(file, dpp, convert)
214         b = &bfs[current];              /* look at new buffer */
215         if (b->counter == BF_FREE)      /* if it's empty */
216                 read_ahead(file, convert);      /* fill it */
217 -/*      assert(b->counter != BF_FREE);  /* check */
218 +//      assert(b->counter != BF_FREE);  /* check */
219         *dpp = (struct tftphdr *)b->buf;        /* set caller's ptr */
220         return b->counter;
221  }
222 @@ -150,6 +153,7 @@ tftpread_ahead(file, convert)
223     from the queue.  Calls write_behind only if next buffer not
224     available.
225   */
226 +int
227  tftpwriteit(file, dpp, ct, convert)
228         FILE *file;
229         struct tftphdr **dpp;
230 @@ -170,6 +174,7 @@ tftpwriteit(file, dpp, ct, convert)
231   * Note spec is undefined if we get CR as last byte of file or a
232   * CR followed by anything else.  In this case we leave it alone.
233   */
234 +int
235  tftpwrite_behind(file, convert)
236         FILE *file;
237         int convert;
238 @@ -235,7 +240,7 @@ int f;              /* socket to flush */
239         int i, j = 0;
240         char rbuf[PKTSIZE];
241         struct sockaddr_in from;
242 -       int fromlen;
243 +       socklen_t fromlen;
244  
245         while (1) {
246                 (void) ioctl(f, FIONREAD, &i);
247 --- user/netflash/tftpmain.c
248 +++ user/netflash/tftpmain.c
249 @@ -35,6 +35,7 @@ static char sccsid[] = "@(#)main.c    5.8 (
250  #include <sys/file.h>
251  
252  #include <netinet/in.h>
253 +#include <arpa/inet.h>
254  
255  #include <signal.h>
256  #include <stdlib.h>
257 @@ -44,8 +45,11 @@ static char sccsid[] = "@(#)main.c   5.8 (
258  #include <string.h>
259  #include <ctype.h>
260  #include <netdb.h>
261 +#include <unistd.h>
262  
263  #include "exit_codes.h"
264 +#include "netflash.h"
265 +#include "tftp.h"
266  
267  #define        TIMEOUT         5               /* secs between rexmt's */
268  
269 @@ -63,19 +67,24 @@ char        *tftpprompt = "tftp";
270  jmp_buf        tftptoplevel;
271  static void    tftpintr(int signo);
272  #ifndef EMBED
273 -struct servent *tftpsp;
274 +struct servent *sp;
275  #endif
276  
277 -int    tftpquit(), tftphelp(), tftpsetverbose(), tftpsettrace(), tftpstatus();
278 -int     tftpget(), tftpput(), tftpsetpeer(), tftpmodecmd(), tftpsetrexmt(), tftpsettimeout();
279 -int     tftpsetbinary(), tftpsetascii();
280 +static void tftpgetusage(char *s);
281 +static void tftpmakeargv(void);
282 +static void tftpsetmode(char *newmode);
283 +#if 0
284 +static void tftpquit(void);
285 +static void tftpsettrace(void);
286 +static void tftpsetverbose(void);
287 +#endif
288  
289  #define HELPINDENT (sizeof("connect"))
290  
291  struct cmd {
292         char    *name;
293         char    *help;
294 -       int     (*handler)();
295 +       void    (*handler)(int argc, char *argv[]);
296  };
297  
298  #if 0
299 @@ -115,13 +124,14 @@ struct cmd tftpcmdtab[] = {
300         { "timeout",    tftpihelp,      tftpsettimeout },
301         { "?",          tftphhelp,      tftphelp },
302  #endif
303 -       0
304 +       { 0 }
305  };
306  struct cmd *tftpgetcmd();
307  char   *tftptail();
308  char   *strchr();
309  char   *strrchr();
310  
311 +void
312  tftpmain(argc, argv)
313         char *argv[];
314  {
315 @@ -174,6 +184,7 @@ tftpmain(argc, argv)
316  
317  char    tftphostname[100];
318  
319 +void
320  tftpsetpeer(argc, argv)
321         int argc;
322         char *argv[];
323 @@ -237,6 +248,7 @@ struct      modes {
324         { 0,            0 }
325  };
326  
327 +void
328  tftpmodecmd(argc, argv)
329         char *argv[];
330  {
331 @@ -270,16 +282,19 @@ tftpmodecmd(argc, argv)
332         return;
333  }
334  
335 +void
336  tftpsetbinary(argc, argv)
337  char *argv[];
338  {       tftpsetmode("octet");
339  }
340  
341 +void
342  tftpsetascii(argc, argv)
343  char *argv[];
344  {       tftpsetmode("netascii");
345  }
346  
347 +static void
348  tftpsetmode(newmode)
349  char *newmode;
350  {
351 @@ -384,6 +399,7 @@ tftpputusage(s)
352  /*
353   * Receive file(s).
354   */
355 +void
356  tftpget(argc, argv)
357         char *argv[];
358  {
359 @@ -466,6 +482,7 @@ tftpget(argc, argv)
360         }
361  }
362  
363 +static void
364  tftpgetusage(s)
365  char * s;
366  {
367 @@ -636,6 +653,7 @@ tftpgetcmd(name)
368  /*
369   * Slice a string up into argc/argv.
370   */
371 +static void
372  tftpmakeargv()
373  {
374         register char *cp;
375 @@ -658,13 +676,14 @@ tftpmakeargv()
376         *argp++ = 0;
377  }
378  
379 +#if 0
380  /*VARARGS*/
381 +static void
382  tftpquit()
383  {
384         exit(0);
385  }
386  
387 -#if 0
388  /*
389   * Help command.
390   */
391 @@ -694,7 +713,9 @@ tftphelp(argc, argv)
392  }
393  #endif
394  
395 +#if 0
396  /*VARARGS*/
397 +void
398  tftpsettrace()
399  {
400         tftptrace = !tftptrace;
401 @@ -702,8 +723,10 @@ tftpsettrace()
402  }
403  
404  /*VARARGS*/
405 +void
406  tftpsetverbose()
407  {
408         tftpverbose = !tftpverbose;
409         printf("Verbose mode %s.\n", tftpverbose ? "on" : "off");
410  }
411 +#endif