293 lines
5.6 KiB
Diff
293 lines
5.6 KiB
Diff
--- linksys-tftp-1.2.1/main.c 2024-04-16 08:27:50.327449884 -0700
|
|
+++ linksys-tftp-1.2.1/main.c 2024-04-15 21:36:43.035399534 -0700
|
|
@@ -33,6 +33,7 @@ static char sccsid[] = "@(#)main.c 5.8 (
|
|
#include <sys/file.h>
|
|
|
|
#include <netinet/in.h>
|
|
+#include <arpa/inet.h>
|
|
|
|
#include <signal.h>
|
|
#include <stdio.h>
|
|
@@ -43,7 +44,11 @@ static char sccsid[] = "@(#)main.c 5.8 (
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
-#include <sys/sendfile.h>
|
|
+/* #include <sys/sendfile.h> */
|
|
+
|
|
+/* routines from tftp.c */
|
|
+extern void sendfile(int fd, char *name, char *mode, char *linkpass);
|
|
+extern void recvfile(int fd, char *name, char *mode, char *linkpass);
|
|
|
|
#define TIMEOUT 5 /* secs between rexmt's */
|
|
|
|
@@ -64,9 +69,13 @@ struct servent *sp;
|
|
|
|
int segsize = 512;
|
|
|
|
-int quit(), help(), setverbose(), settrace(), status();
|
|
-int get(), put(), setpeer(), modecmd(), setrexmt(), settimeout();
|
|
-int setbinary(), banner(), setascii(), setblocksize();
|
|
+/* local routines */
|
|
+int quit(), help(), setverbose(), settrace(), status(), command();
|
|
+int get(), getusage(), put(), putusage();
|
|
+int setpeer(), modecmd(), setrexmt(), settimeout(), status();
|
|
+int setbinary(), setascii();
|
|
+void setmode(), makeargv();
|
|
+int setblocksize(), banner();
|
|
|
|
#define HELPINDENT (sizeof("connect"))
|
|
|
|
@@ -114,8 +123,7 @@ struct cmd *getcmd();
|
|
char *index();
|
|
char *rindex();
|
|
|
|
-int main(argc, argv)
|
|
- char *argv[];
|
|
+int main(int argc, char *argv[])
|
|
{
|
|
struct sockaddr_in sin;
|
|
int top;
|
|
@@ -147,13 +155,12 @@ int main(argc, argv)
|
|
top = setjmp(toplevel) == 0;
|
|
for (;;)
|
|
command(top);
|
|
+ return 0;
|
|
}
|
|
|
|
char hostname[100];
|
|
|
|
-setpeer(argc, argv)
|
|
- int argc;
|
|
- char *argv[];
|
|
+int setpeer(int argc, char *argv[])
|
|
{
|
|
struct hostent *host;
|
|
|
|
@@ -187,6 +194,7 @@ setpeer(argc, argv)
|
|
port = htons(port);
|
|
}
|
|
connected = 1;
|
|
+ return 0;
|
|
}
|
|
|
|
struct modes {
|
|
@@ -201,8 +209,7 @@ struct modes {
|
|
{ 0, 0 }
|
|
};
|
|
|
|
-modecmd(argc, argv)
|
|
- char *argv[];
|
|
+int modecmd(int argc, char *argv[])
|
|
{
|
|
register struct modes *p;
|
|
char *sep;
|
|
@@ -234,18 +241,17 @@ modecmd(argc, argv)
|
|
return 0;
|
|
}
|
|
|
|
-setbinary(argc, argv)
|
|
-char *argv[];
|
|
-{ setmode("octet");
|
|
+int setbinary(int argc, char *argv[])
|
|
+{
|
|
+ setmode("octet");
|
|
}
|
|
|
|
-setascii(argc, argv)
|
|
-char *argv[];
|
|
-{ setmode("netascii");
|
|
-}
|
|
+int setascii(int argc, char *argv[])
|
|
+{
|
|
+ setmode("netascii");
|
|
+ }
|
|
|
|
-setmode(newmode)
|
|
-char *newmode;
|
|
+void setmode(char *newmode)
|
|
{
|
|
strcpy(mode, newmode);
|
|
if (verbose)
|
|
@@ -256,8 +262,7 @@ char *newmode;
|
|
* Send file(s).
|
|
*/
|
|
|
|
-put(argc, argv)
|
|
- char *argv[];
|
|
+int put(int argc, char *argv[])
|
|
{
|
|
int fd;
|
|
register int n;
|
|
@@ -286,8 +291,7 @@ put(argc, argv)
|
|
return 0;
|
|
}
|
|
|
|
-putusage(s)
|
|
- char *s;
|
|
+int putusage(char *s)
|
|
{
|
|
printf("usage: %s file [linksys pass] (you must be connected)\n", s);
|
|
return 0;
|
|
@@ -296,8 +300,7 @@ putusage(s)
|
|
/*
|
|
* Receive file(s).
|
|
*/
|
|
-get(argc, argv)
|
|
- char *argv[];
|
|
+int get(int argc, char *argv[])
|
|
{
|
|
int fd;
|
|
register int n;
|
|
@@ -327,16 +330,15 @@ get(argc, argv)
|
|
return 0;
|
|
}
|
|
|
|
-getusage(s)
|
|
-char * s;
|
|
+int getusage(char *s)
|
|
{
|
|
printf("usage: %s file [linksys pass] (you must be connected)\n", s);
|
|
+ return 0;
|
|
}
|
|
|
|
int rexmtval = TIMEOUT;
|
|
|
|
-setrexmt(argc, argv)
|
|
- char *argv[];
|
|
+int setrexmt(int argc, char *argv[])
|
|
{
|
|
int t;
|
|
|
|
@@ -357,12 +359,12 @@ setrexmt(argc, argv)
|
|
printf("%d: bad value\n", t);
|
|
else
|
|
rexmtval = t;
|
|
+ return 0;
|
|
}
|
|
|
|
int maxtimeout = 5 * TIMEOUT;
|
|
|
|
-settimeout(argc, argv)
|
|
- char *argv[];
|
|
+int settimeout(int argc, char *argv[])
|
|
{
|
|
int t;
|
|
|
|
@@ -383,10 +385,10 @@ settimeout(argc, argv)
|
|
printf("%d: bad value\n", t);
|
|
else
|
|
maxtimeout = t;
|
|
+ return 0;
|
|
}
|
|
|
|
-status(argc, argv)
|
|
- char *argv[];
|
|
+int status(int argc, char *argv[])
|
|
{
|
|
if (connected)
|
|
printf("Connected to %s.\n", hostname);
|
|
@@ -396,6 +398,7 @@ status(argc, argv)
|
|
verbose ? "on" : "off", trace ? "on" : "off");
|
|
printf("Rexmt-interval: %d seconds, Max-timeout: %d seconds\n",
|
|
rexmtval, maxtimeout);
|
|
+ return 0;
|
|
}
|
|
|
|
void intr(int sig)
|
|
@@ -408,8 +411,7 @@ void intr(int sig)
|
|
/*
|
|
* Command parser.
|
|
*/
|
|
-command(top)
|
|
- int top;
|
|
+int command(int top)
|
|
{
|
|
register struct cmd *c;
|
|
|
|
@@ -438,11 +440,10 @@ command(top)
|
|
}
|
|
(*c->handler)(margc, margv);
|
|
}
|
|
+ return 0;
|
|
}
|
|
|
|
-struct cmd *
|
|
-getcmd(name)
|
|
- register char *name;
|
|
+struct cmd *getcmd(register char *name)
|
|
{
|
|
register char *p, *q;
|
|
register struct cmd *c, *found;
|
|
@@ -473,7 +474,7 @@ getcmd(name)
|
|
/*
|
|
* Slice a string up into argc/argv.
|
|
*/
|
|
-makeargv()
|
|
+void makeargv()
|
|
{
|
|
register char *cp;
|
|
register char **argp = margv;
|
|
@@ -496,7 +497,7 @@ makeargv()
|
|
}
|
|
|
|
/*VARARGS*/
|
|
-quit()
|
|
+int quit()
|
|
{
|
|
exit(0);
|
|
}
|
|
@@ -504,9 +505,7 @@ quit()
|
|
/*
|
|
* Help command.
|
|
*/
|
|
-help(argc, argv)
|
|
- int argc;
|
|
- char *argv[];
|
|
+int help(int argc, char *argv[])
|
|
{
|
|
register struct cmd *c;
|
|
|
|
@@ -527,24 +526,26 @@ help(argc, argv)
|
|
else
|
|
printf("%s\n", c->help);
|
|
}
|
|
+ return 0;
|
|
}
|
|
|
|
/*VARARGS*/
|
|
-settrace()
|
|
+int settrace()
|
|
{
|
|
trace = !trace;
|
|
printf("Packet tracing %s.\n", trace ? "on" : "off");
|
|
+ return 0;
|
|
}
|
|
|
|
/*VARARGS*/
|
|
-setverbose()
|
|
+int setverbose()
|
|
{
|
|
verbose = !verbose;
|
|
printf("Verbose mode %s.\n", verbose ? "on" : "off");
|
|
+ return 0;
|
|
}
|
|
|
|
-setblocksize(argc, argv)
|
|
- char *argv[];
|
|
+int setblocksize(int argc, char *argv[])
|
|
{
|
|
int t;
|
|
|
|
@@ -565,8 +566,9 @@ setblocksize(argc, argv)
|
|
printf("%d: bad value\n", t);
|
|
else
|
|
segsize = t;
|
|
+ return 0;
|
|
}
|
|
-banner() {
|
|
+int banner() {
|
|
printf("TJ Shelton\tredsand [at] redsand.net\n");
|
|
printf("Mike Lynn\tabaddon [at] 802.11ninja.net\n");
|
|
printf("Linksys TFTP Client for *BSD/Linux\tThe Firmware gets sexier\n");
|