summaryrefslogtreecommitdiff
path: root/dos/main.c
diff options
context:
space:
mode:
authorJeffrey Armstrong <jeffrey.armstrong@approximatrix.com>2017-02-25 09:18:47 -0500
committerJeffrey Armstrong <jeffrey.armstrong@approximatrix.com>2017-02-25 09:18:47 -0500
commit40ca2e594fa15e70aba00f0b5b6764ce175ade6c (patch)
treefb6d091116d66fa86d113e2ad01fb468c75cb92e /dos/main.c
parenteeefdbba6d8c3e34bf215c484ac2b5879759cafd (diff)
downloaduIP-FOSSIL-add-telnet.tar.gz
uIP-FOSSIL-add-telnet.zip
Initial, non-working telnet commitadd-telnet
Diffstat (limited to 'dos/main.c')
-rw-r--r--dos/main.c95
1 files changed, 13 insertions, 82 deletions
diff --git a/dos/main.c b/dos/main.c
index bde9462..d5a17e6 100644
--- a/dos/main.c
+++ b/dos/main.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009 Jeffrey Armstrong
+ * Copyright (c) 2009, 2017 Jeffrey Armstrong
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,7 +36,15 @@
#include <stdlib.h>
#include <string.h>
+#ifdef HTTPD
#include "httpd.h"
+#else
+#ifdef TELNET
+#include "telnet.h"
+#else
+#error No app defined
+#endif
+#endif
#include "main.h" /* Must come first - contains necessary declaration of
* uip_tcp_appstate
@@ -47,42 +55,13 @@
#include "uip_arp.h"
#include "slipdev.h"
#include "slipfos.h"
-
+#include "mainutil.h"
#include "timer.h"
#define BUF ((struct uip_eth_hdr *)&uip_buf[0])
-int ip_from_string(const char *string, int ip[4])
-{
-char *token;
-char *original;
-int i, ret;
-
- for(i=0;i<4;i++) ip[i] = 0;
- if(string == NULL) return -1;
-
- original = (char *)malloc((strlen(string)+1)*sizeof(char));
- memcpy(original,string,strlen(string)+1);
-
- ret = 1;
- token = strtok(original,".");
- for(i=0;i<4;i++) {
- if(token == NULL) {
- ret = -1;
- break;
- }
- ip[i] = atoi(token);
- token = strtok(NULL,".");
- }
-
- token = NULL;
- free(original);
-
- return ret;
-}
-
-void header() {
+void httpd_header() {
printf("+----------------------------------------------------------+\n");
printf("| uIP/FOSSIL HTTP Server Version 1.2 |\n");
printf("| Copyright 2009, 2016 Jeffrey Armstrong |\n");
@@ -97,57 +76,16 @@ int i;
uip_ipaddr_t ipaddr;
struct timer periodic_timer;
-int ip[4];
-
- header();
+ httpd_header();
if(argc != 6) {
printf("Usage: %s <host ip> <local ip> <netmask> <comport> <baud>\n",argv[0]);
return 0;
}
- timer_set(&periodic_timer, CLOCK_SECOND / 2);
-
- /* Initialize the FOSSIL driver here */
- printf("Initializing FOSSIL driver...");
- if(slip_fossil_init(atoi(argv[4]),atoi(argv[5])) < 0) {
- printf("FAILED\nExiting...\n");
+ if(common_init(argv[1], argv[2], argv[3], argv[4], argv[5]) == 0) {
return 0;
}
- printf("OK\n");
-
- printf("Initializing SLIP interface...");
- slipdev_init();
- printf("OK\n");
-
- printf("Initializing uIP stack...");
- uip_init();
- printf("OK\n");
-
- /* Set IP and netmask from command line arguments */
- for(i=1;i<4;i++) {
- if(ip_from_string(argv[i],ip) < 0) {
- printf("Error parsing ip/netmask in argument %d: %s\nMake sure this argument is a valid 4-element dot-delimited string.\n",i,argv[i]);
- return 0;
- } else {
- uip_ipaddr(&ipaddr, ip[0], ip[1], ip[2], ip[3]);
- switch(i) {
- case 1:
- uip_setdraddr(&ipaddr);
- break;
- case 2:
- uip_sethostaddr(&ipaddr);
- break;
- case 3:
- uip_setnetmask(&ipaddr);
- break;
- }
- }
- }
-
- printf("Initializing httpd server...");
- httpd_init();
- printf("OK\n");
#ifdef INITIALIZE_ONLY
return 1;
@@ -197,10 +135,3 @@ int ip[4];
return 0;
}
-
-void uip_log(char *m)
-{
-#ifdef DEBUG
- printf("uIP log message: %s\n", m);
-#endif
-}