... | ... |
@@ -128,12 +128,16 @@ int workend(mcomm *c) |
128 | 128 |
if(moption.commpass && !c->authchk){ |
129 | 129 |
m = "password: \x1b]E"; |
130 | 130 |
}else{ |
131 |
- m = "\n> "; |
|
132 | 131 |
if(c->logover && strcmp("dsync", c->parse[0][0])){ |
133 | 132 |
if(cprintf(0, c, "[error] Log lost: %d lines\n", c->logover) == 0){ |
134 | 133 |
c->logover = 0; |
135 | 134 |
} |
136 | 135 |
} |
136 |
+ if(c->logfail){ |
|
137 |
+ m = "\n> "; |
|
138 |
+ }else{ |
|
139 |
+ m = "> "; |
|
140 |
+ } |
|
137 | 141 |
} |
138 | 142 |
if(cprintf(0, c, m) == 0){ |
139 | 143 |
c->working = 0; |
... | ... |
@@ -195,12 +195,15 @@ int cprintf(int l, mcomm *c, char *fmt, ...) |
195 | 195 |
va_start(arg, fmt); |
196 | 196 |
vsnprintf(m, sizeof(m), fmt, arg); |
197 | 197 |
va_end(arg); |
198 |
+ m[sizeof(m) - 2] = '\n'; |
|
198 | 199 |
m[sizeof(m) - 1] = 0; |
199 | 200 |
n = strlen(m); |
200 | 201 |
if(write(c->fd[0], m, n) == n){ |
201 | 202 |
fsync(c->fd[0]); |
203 |
+ c->logfail = 0; |
|
202 | 204 |
}else{ |
203 | 205 |
c->logover++; |
206 |
+ c->logfail = 1; |
|
204 | 207 |
lprintf(0, "[error] %s: Resource temporarily unavailable: %s", __func__, m); |
205 | 208 |
return(-1); |
206 | 209 |
} |