if (!DisConnected && (OpMode==MD_SMTP || OpMode==MD_DAEMON || OpMode==MD_ARPAFTP)) {
if (stutter_bytes_send <= TarpitSimBytes) {
// Weiter stottern
int stutter = 0;
int len = strlen(msg);
for (stutter=0;
((stutter<len) && (stutter_bytes_sent<=TarpitSimBytes));
stutter++, stutter_bytes_sent++)
{
// Stottern bis der Puffer leer oder die Stottergrenze erreicht ist
sm_io_fprintf(OutChannel, SM_TIME_DEFAULT, "%c", msg[stutter]);
(void) sm_io_flush(OutChannel, SM_TIME_DEFAULT);
usleep(TarpitSimDelay);
} // end while
if (stutter < len) {
// Noch was uebrig? Raus damit.
memmove(&msg[0], &msg[stutter], len - stutter);
}
len -= stutter;
msg[len]='\0';
}
// gibt aus, was nicht zu stottern war.
(void) sm_io_fprintf(OutChannel, SM_TIME_DEFAULT, "%s\r\n", msg);
} else
(void) sm_io_fprintf(OutChannel, SM_TIME_DEFAULT, "%s\n", errtxt);