File tree Expand file tree Collapse file tree 2 files changed +33
-4
lines changed Expand file tree Collapse file tree 2 files changed +33
-4
lines changed Original file line number Diff line number Diff line change @@ -120,8 +120,27 @@ size_t SyslogPrinter::write(const uint8_t *buf, size_t size) {
120120}
121121
122122size_t  SyslogPrinter::write (const  uint8_t  *buf, size_t  size, uint8_t  severity) {
123-   if  (!WLED_CONNECTED || buf == nullptr  || !syslogEnabled) return  0 ;
124-   if  (!resolveHostname ()) return  0 ;
123+   _lastOperationSucceeded = true ;
124+   if  (!WLED_CONNECTED) {
125+     _lastOperationSucceeded = false ;
126+     _lastErrorMessage = F (" Network not connected"  );
127+     return  0 ;
128+   }
129+   if  (buf == nullptr ) {
130+     _lastOperationSucceeded = false ;
131+     _lastErrorMessage = F (" Null buffer provided"  );
132+     return  0 ;
133+   }
134+   if  (!syslogEnabled) {
135+     _lastOperationSucceeded = false ;
136+     _lastErrorMessage = F (" Syslog is disabled"  );
137+     return  0 ;
138+   }
139+   if  (!resolveHostname ()) {
140+     _lastOperationSucceeded = false ;
141+     _lastErrorMessage = F (" Failed to resolve hostname"  );
142+     return  0 ;
143+   }
125144
126145  syslogUdp.beginPacket (syslogHostIP, syslogPort);
127146
Original file line number Diff line number Diff line change @@ -49,15 +49,21 @@ class SyslogPrinter : public Print {
4949    WiFiUDP syslogUdp; //  needs to be here otherwise UDP messages get truncated upon destruction
5050    IPAddress syslogHostIP;
5151    bool  resolveHostname ();
52+     bool  _lastOperationSucceeded;
53+     String _lastErrorMessage;
5254
5355    //  Syslog configuration
5456    uint8_t  _facility;
5557    uint8_t  _severity;
5658    uint8_t  _protocol;
5759    String _appName;
58-      bool  test =  true ; 
60+ 
5961    //  Buffer management
60-     char  _buffer[128 ]; //  Buffer for collecting characters
62+     #ifndef  SYSLOG_BUFFER_SIZE
63+       #define  SYSLOG_BUFFER_SIZE  128 
64+     #endif 
65+     char  _buffer[SYSLOG_BUFFER_SIZE]; //  Buffer for collecting characters
66+ 
6167    size_t  _bufferIndex;
6268    void  flushBuffer ();
6369
@@ -75,6 +81,10 @@ class SyslogPrinter : public Print {
7581
7682    //  Severity override for specific messages
7783    size_t  write (const  uint8_t  *buf, size_t  size, uint8_t  severity);
84+ 
85+     //  Error handling
86+     bool  lastOperationSucceeded () const  { return  _lastOperationSucceeded; }
87+     String getLastErrorMessage () const  { return  _lastErrorMessage; }
7888};
7989
8090//  Default instance
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments