void rbl_sendmessage(int dst, const char *text) { // guarda no buffer a msg para ser enviada de forma confiável if (dst < 0) { con_printf("[ERROR] broadcast not implemented\n"); return; } if (pending) { // só tratamos uma msg de cada vez con_printf("[ERROR] can't speak for now, msg pending\n"); return; } if (strlen(text) > 100) { con_printf("[ERROR] chat message has 100 characters limit, sorry\n"); return; } szb_clear(sndbuf); // guarda no buffer szb_writeCStr(sndbuf, text); pending = true; // sinaliza q estamos tentando mandar sendtime = sys_getMilli(); // guarda o tempo de início do envio sendtarget = dst; // guarda o destino attempts = options.rattempts; // e prepara o número de tentativas }
void szb_free(struct szb_s *szb) { assert(szb != NULL); szb_clear(szb); free(szb); }