mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
first working(?) version
This commit is contained in:
@@ -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)
|
||||
return;
|
||||
if (uip_closed()) {
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
void dhcp_start(void) __banked;
|
||||
void dhcp_stop(void) __banked;
|
||||
// void dhcp_periodic(void) __banked;
|
||||
void dhcp_callback(void) __banked;
|
||||
void dhcp_callback(uint16_t lport) __banked;
|
||||
|
||||
|
||||
struct dhcp_state {
|
||||
|
||||
@@ -38,7 +38,6 @@ void syslog_start(void) __banked
|
||||
print_string("Started syslog to IP ");
|
||||
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');
|
||||
|
||||
syslog_enabled = 1;
|
||||
}
|
||||
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)
|
||||
{
|
||||
int16_t log_size = logptr_w - logptr_r;
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
void syslog_init(void) __banked;
|
||||
void syslog_start(void) __banked;
|
||||
void syslog_stop(void) __banked;
|
||||
void syslog_callback(void) __banked;
|
||||
void syslog_callback(uint16_t lport) __banked;
|
||||
|
||||
#endif
|
||||
|
||||
+3
-11
@@ -1,17 +1,9 @@
|
||||
|
||||
#include "stdint.h"
|
||||
#include "uip/uip.h"
|
||||
#include "udp_apps.h"
|
||||
|
||||
static uint8_t callbacknr;
|
||||
|
||||
void udp_callbacks(void)
|
||||
{
|
||||
// Calling more than one callback from the same UIP_UDP_APPCALL does not work; we use a simple dispatcher
|
||||
if (callbacknr == 0) {
|
||||
dhcp_callback();
|
||||
callbacknr = 1;
|
||||
} else {
|
||||
syslog_callback();
|
||||
callbacknr = 0;
|
||||
}
|
||||
dhcp_callback(uip_udp_conn->lport); // let the application decide if this is for it or not
|
||||
syslog_callback(uip_udp_conn->lport); // let the application decide if this is for it or not
|
||||
}
|
||||
Reference in New Issue
Block a user