mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
Added setting for syslog IP
This commit is contained in:
+16
-1
@@ -42,6 +42,7 @@ extern __xdata char passwd[21];
|
|||||||
extern __xdata struct dhcp_state dhcp_state;
|
extern __xdata struct dhcp_state dhcp_state;
|
||||||
|
|
||||||
extern __xdata uint8_t syslog_enabled;
|
extern __xdata uint8_t syslog_enabled;
|
||||||
|
extern __xdata uip_ipaddr_t syslog_addr;
|
||||||
|
|
||||||
__xdata uint8_t vlan_names[VLAN_NAMES_SIZE];
|
__xdata uint8_t vlan_names[VLAN_NAMES_SIZE];
|
||||||
__xdata uint16_t vlan_ptr;
|
__xdata uint16_t vlan_ptr;
|
||||||
@@ -1211,9 +1212,23 @@ void cmd_parser(void) __banked
|
|||||||
if (cmd_words_b[1] > 0 && cmd_compare(1, "on")) {
|
if (cmd_words_b[1] > 0 && cmd_compare(1, "on")) {
|
||||||
print_string("UDP syslog enabled\n");
|
print_string("UDP syslog enabled\n");
|
||||||
syslog_enabled = 1;
|
syslog_enabled = 1;
|
||||||
} else {
|
} else if (cmd_words_b[1] > 0 && cmd_compare(1, "off")){
|
||||||
print_string("UDP syslog disabled\n");
|
print_string("UDP syslog disabled\n");
|
||||||
syslog_enabled = 0;
|
syslog_enabled = 0;
|
||||||
|
} else if (cmd_words_b[1] > 0 && cmd_compare(1, "ip")) {
|
||||||
|
if (cmd_words_b[3] < 0) {
|
||||||
|
print_string("Current syslog 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);
|
||||||
|
return;
|
||||||
|
} else if (!parse_ip(cmd_words_b[2])) {
|
||||||
|
uip_ipaddr(&syslog_addr, ip[0], ip[1], ip[2], ip[3]);
|
||||||
|
print_string("Setting syslog IP: ");
|
||||||
|
itoa(ip[0]); write_char('.'); itoa(ip[1]); write_char('.');
|
||||||
|
itoa(ip[2]); write_char('.'); itoa(ip[3]); write_char('\n');
|
||||||
|
} else {
|
||||||
|
print_string("Invalid IP address\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else if (cmd_compare(0, "ip")) {
|
} else if (cmd_compare(0, "ip")) {
|
||||||
if (cmd_compare(1, "dhcp")) {
|
if (cmd_compare(1, "dhcp")) {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ __xdata uint16_t logptr_r = 0;
|
|||||||
__xdata uint8_t full_line_available = 0;
|
__xdata uint8_t full_line_available = 0;
|
||||||
__xdata uint8_t syslog_enabled = 0;
|
__xdata uint8_t syslog_enabled = 0;
|
||||||
__xdata char char_to_write = 0;
|
__xdata char char_to_write = 0;
|
||||||
|
__xdata uip_ipaddr_t syslog_addr;
|
||||||
|
|
||||||
#define DEST_OFFSET (0)
|
#define DEST_OFFSET (0)
|
||||||
#define SOURCE_OFFSET (DEST_OFFSET + 6)
|
#define SOURCE_OFFSET (DEST_OFFSET + 6)
|
||||||
@@ -24,9 +25,7 @@ __xdata char char_to_write = 0;
|
|||||||
|
|
||||||
void syslog_init(void) __banked
|
void syslog_init(void) __banked
|
||||||
{
|
{
|
||||||
logptr_r = 0;
|
syslog_addr[0] = 0xffff; syslog_addr[1] = 0xffff; // Default to broadcast
|
||||||
logptr_w = 0;
|
|
||||||
full_line_available = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void syslog_write_char(void) __banked
|
void syslog_write_char(void) __banked
|
||||||
@@ -57,11 +56,7 @@ void handle_syslog(void) __banked
|
|||||||
SYSLOG_O[DEST_OFFSET] = 255; SYSLOG_O[DEST_OFFSET + 1] = 255; SYSLOG_O[DEST_OFFSET + 2] = 255;
|
SYSLOG_O[DEST_OFFSET] = 255; SYSLOG_O[DEST_OFFSET + 1] = 255; SYSLOG_O[DEST_OFFSET + 2] = 255;
|
||||||
SYSLOG_O[DEST_OFFSET + 3] = 255; SYSLOG_O[DEST_OFFSET + 4] = 255; SYSLOG_O[DEST_OFFSET + 5] = 255; // broadcast
|
SYSLOG_O[DEST_OFFSET + 3] = 255; SYSLOG_O[DEST_OFFSET + 4] = 255; SYSLOG_O[DEST_OFFSET + 5] = 255; // broadcast
|
||||||
memcpy(SYSLOG_O + SOURCE_OFFSET, uip_ethaddr.addr, 6); // Source MAC address
|
memcpy(SYSLOG_O + SOURCE_OFFSET, uip_ethaddr.addr, 6); // Source MAC address
|
||||||
/*
|
|
||||||
SYSLOG_O[SOURCE_OFFSET] = uip_ethaddr.addr[0]; SYSLOG_O[SOURCE_OFFSET + 1] = uip_ethaddr.addr[1];
|
|
||||||
SYSLOG_O[SOURCE_OFFSET + 2] = uip_ethaddr.addr[2]; SYSLOG_O[SOURCE_OFFSET + 3] = uip_ethaddr.addr[3];
|
|
||||||
SYSLOG_O[SOURCE_OFFSET + 4] = uip_ethaddr.addr[4]; SYSLOG_O[SOURCE_OFFSET + 5] = uip_ethaddr.addr[5];
|
|
||||||
*/
|
|
||||||
SYSLOG_O[ETHERTYPE_OFFSET] = 0x08; SYSLOG_O[ETHERTYPE_OFFSET + 1] = 0x00; // Ethertype: IPv4
|
SYSLOG_O[ETHERTYPE_OFFSET] = 0x08; SYSLOG_O[ETHERTYPE_OFFSET + 1] = 0x00; // Ethertype: IPv4
|
||||||
|
|
||||||
SYSLOG_O[IP_HEADER_OFFSET ] = 0x45; SYSLOG_O[IP_HEADER_OFFSET + 1] = 0x00; // IPv4, no options
|
SYSLOG_O[IP_HEADER_OFFSET ] = 0x45; SYSLOG_O[IP_HEADER_OFFSET + 1] = 0x00; // IPv4, no options
|
||||||
@@ -72,8 +67,8 @@ void handle_syslog(void) __banked
|
|||||||
SYSLOG_O[IP_HEADER_OFFSET + 10] = 0x00; SYSLOG_O[IP_HEADER_OFFSET + 11] = 0x00; // Header Checksum (not calculated)
|
SYSLOG_O[IP_HEADER_OFFSET + 10] = 0x00; SYSLOG_O[IP_HEADER_OFFSET + 11] = 0x00; // Header Checksum (not calculated)
|
||||||
SYSLOG_O[IP_HEADER_OFFSET + 12] = uip_hostaddr[0] & 0xff; SYSLOG_O[IP_HEADER_OFFSET + 13] = uip_hostaddr[0] >> 8;
|
SYSLOG_O[IP_HEADER_OFFSET + 12] = uip_hostaddr[0] & 0xff; SYSLOG_O[IP_HEADER_OFFSET + 13] = uip_hostaddr[0] >> 8;
|
||||||
SYSLOG_O[IP_HEADER_OFFSET + 14] = uip_hostaddr[1] & 0xff; SYSLOG_O[IP_HEADER_OFFSET + 15] = uip_hostaddr[1] >> 8; // Source IP
|
SYSLOG_O[IP_HEADER_OFFSET + 14] = uip_hostaddr[1] & 0xff; SYSLOG_O[IP_HEADER_OFFSET + 15] = uip_hostaddr[1] >> 8; // Source IP
|
||||||
SYSLOG_O[IP_HEADER_OFFSET + 16] = 192; SYSLOG_O[IP_HEADER_OFFSET + 17] = 168;
|
SYSLOG_O[IP_HEADER_OFFSET + 16] = syslog_addr[0] & 0xff; SYSLOG_O[IP_HEADER_OFFSET + 17] = syslog_addr[0] >> 8;
|
||||||
SYSLOG_O[IP_HEADER_OFFSET + 18] = 10; SYSLOG_O[IP_HEADER_OFFSET + 19] = 240; // Destination IP
|
SYSLOG_O[IP_HEADER_OFFSET + 18] = syslog_addr[1] & 0xff; SYSLOG_O[IP_HEADER_OFFSET + 19] = syslog_addr[1] >> 8; // Destination IP
|
||||||
|
|
||||||
SYSLOG_O[UDP_HEADER_OFFSET ] = 0x02; SYSLOG_O[UDP_HEADER_OFFSET + 1] = 0x02; // Source Port
|
SYSLOG_O[UDP_HEADER_OFFSET ] = 0x02; SYSLOG_O[UDP_HEADER_OFFSET + 1] = 0x02; // Source Port
|
||||||
SYSLOG_O[UDP_HEADER_OFFSET + 2] = 0x02; SYSLOG_O[UDP_HEADER_OFFSET + 3] = 0x02; // Destination Port
|
SYSLOG_O[UDP_HEADER_OFFSET + 2] = 0x02; SYSLOG_O[UDP_HEADER_OFFSET + 3] = 0x02; // Destination Port
|
||||||
|
|||||||
Reference in New Issue
Block a user