MCPcopy Create free account
hub / github.com/apache/nuttx / syslog_write_foreach

Function syslog_write_foreach

drivers/syslog/syslog_write.c:104–225  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

102 ****************************************************************************/
103
104ssize_t syslog_write_foreach(FAR const char *buffer,
105 size_t buflen, bool force)
106{
107 syslog_write_t write;
108 syslog_putc_t putc;
109 size_t nwritten = 0;
110 size_t nwritten_max = 0;
111 ssize_t ret;
112 int i;
113
114 for (i = 0; i < CONFIG_SYSLOG_MAX_CHANNELS; i++)
115 {
116 FAR syslog_channel_t *channel = g_syslog_channel[i];
117
118 if (channel == NULL)
119 {
120 break;
121 }
122
123#ifdef CONFIG_SYSLOG_IOCTL
124 if (channel->sc_state & SYSLOG_CHANNEL_DISABLE)
125 {
126 continue;
127 }
128#endif
129
130 write = !force ? channel->sc_ops->sc_write :
131 channel->sc_ops->sc_write_force;
132 if (write != NULL)
133 {
134 nwritten = 0;
135
136#ifdef CONFIG_SYSLOG_CRLF
137 if (!(channel->sc_state & SYSLOG_CHANNEL_DISABLE_CRLF))
138 {
139 size_t head;
140
141 for (head = 0; head < buflen; head++)
142 {
143 if (buffer[head] != '\n')
144 {
145 continue;
146 }
147
148 ret = write(channel, buffer + nwritten, head - nwritten);
149 if (ret >= 0)
150 {
151 ret = write(channel, "\r\n", 2);
152 }
153
154 if (ret < 0)
155 {
156 return ret;
157 }
158
159 nwritten = head + 1;
160 }
161 }

Callers 3

syslog_flush_internalFunction · 0.85
syslog_add_intbufferFunction · 0.85
syslog_writeFunction · 0.85

Calls 2

putcFunction · 0.85
writeFunction · 0.50

Tested by

no test coverage detected