/******************************************************************************* * Presenta un mensaje protegido por semaforos al usuario. * * * * Parámetros: * * -Nombre de usuario. * -Mensaje. * -Tipo de mensaje. * -Proceso que llama. * * * Retorno: * * -void * * * *******************************************************************************/ void interfaceText(char *username, char *message, int type, int main_thread){ if(!main_thread){ gdk_threads_enter(); } switch(type){ case MSG_TEXT: messageText(message); break; case ERROR_TEXT: errorText(message); break; case PRIVATE_TEXT: privateText(username, message); break; case PUBLIC_TEXT: publicText(username, message); break; default: break; } if(!main_thread){ gdk_threads_leave(); } }
void newText (const char *msg) { char irc_msg[MAX_IRC_MSG]; if (!msg) { slog(LOG_ERR, "Se ha colado un mensaje NULL desde la interfaz"); return; } slog(LOG_DEBUG, "Recibido el mensaje \"%s\" desde interfaz para ser procesado", msg); if(!client->connected && !_is_server_message(msg)) { errorText("No estás conectado a ningún servidor."); return; } if (*msg != '/') { if (!client->in_channel) { errorText("No perteneces a ningún canal al que enviar el mensaje"); } else { /* Mandamos al servidor el mensaje para los usuarios del canal. */ irc_send_message(snd_qid, client->serv_sock, "PRIVMSG %s :%s", client->chan, msg); privateText(client->nick, msg); } } else { snprintf(irc_msg, MAX_IRC_MSG, "%s\r\n", msg + 1); irc_user_msgprocess(irc_msg, client); } }