first working(?) version

This commit is contained in:
feelfree69
2026-04-12 13:02:42 +02:00
parent 7eb3676aaf
commit f7b8aed2f7
5 changed files with 12 additions and 16 deletions
+3 -1
View File
@@ -353,8 +353,10 @@ void dhcp_stop(void) __banked
} }
void dhcp_callback(void) __banked void dhcp_callback(uint16_t lport) __banked
{ {
if (lport != HTONS(DHCPC_CLIENT_PORT)) // Is this call for us? If not, ignore it
return;
if (!dhcp_state.state) if (!dhcp_state.state)
return; return;
if (uip_closed()) { if (uip_closed()) {
+1 -1
View File
@@ -16,7 +16,7 @@
void dhcp_start(void) __banked; void dhcp_start(void) __banked;
void dhcp_stop(void) __banked; void dhcp_stop(void) __banked;
// void dhcp_periodic(void) __banked; // void dhcp_periodic(void) __banked;
void dhcp_callback(void) __banked; void dhcp_callback(uint16_t lport) __banked;
struct dhcp_state { struct dhcp_state {
+4 -2
View File
@@ -38,7 +38,6 @@ void syslog_start(void) __banked
print_string("Started syslog to IP "); print_string("Started syslog to IP ");
itoa(syslog_addr[0]); write_char('.'); itoa(syslog_addr[0]>>8); write_char('.'); itoa(syslog_addr[0]); write_char('.'); itoa(syslog_addr[0]>>8); write_char('.');
itoa(syslog_addr[1]); write_char('.'); itoa(syslog_addr[1]>>8); write_char('\n'); itoa(syslog_addr[1]); write_char('.'); itoa(syslog_addr[1]>>8); write_char('\n');
syslog_enabled = 1; syslog_enabled = 1;
} }
else { else {
@@ -58,8 +57,11 @@ void syslog_stop(void) __banked
} }
} }
void syslog_callback(void) __banked void syslog_callback(uint16_t lport) __banked
{ {
if (lport != syslog_conn->lport)
return;
if ((logptr_r != logptr_w) && full_line_available) if ((logptr_r != logptr_w) && full_line_available)
{ {
int16_t log_size = logptr_w - logptr_r; int16_t log_size = logptr_w - logptr_r;
+1 -1
View File
@@ -8,6 +8,6 @@
void syslog_init(void) __banked; void syslog_init(void) __banked;
void syslog_start(void) __banked; void syslog_start(void) __banked;
void syslog_stop(void) __banked; void syslog_stop(void) __banked;
void syslog_callback(void) __banked; void syslog_callback(uint16_t lport) __banked;
#endif #endif
+3 -11
View File
@@ -1,17 +1,9 @@
#include "stdint.h" #include "uip/uip.h"
#include "udp_apps.h" #include "udp_apps.h"
static uint8_t callbacknr;
void udp_callbacks(void) void udp_callbacks(void)
{ {
// Calling more than one callback from the same UIP_UDP_APPCALL does not work; we use a simple dispatcher dhcp_callback(uip_udp_conn->lport); // let the application decide if this is for it or not
if (callbacknr == 0) { syslog_callback(uip_udp_conn->lport); // let the application decide if this is for it or not
dhcp_callback();
callbacknr = 1;
} else {
syslog_callback();
callbacknr = 0;
}
} }