/******************************************************************************* * 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(); } }
int irc_recv_privmsg(void *data) { struct irc_msgdata *msgdata = (struct irc_msgdata *) data; char user[MAX_NICK_LEN + 1]; char *params[2]; char *text; if (irc_get_prefix(msgdata->msg, user, MAX_NICK_LEN) != OK || irc_parse_paramlist(msgdata->msg, params, 2) != 2) { slog(LOG_ERR, "Mensaje PRIVMSG mal formado: %s", msgdata->msg); return OK; } text = params[1]; if (!strncmp("$PCALL ", text, strlen("$PCALL "))) parse_pcall(msgdata->clientdata, text, user); else if (!strncmp("$PACCEPT ", text, strlen("$PACCEPT "))) parse_paccept(msgdata->clientdata, text, user); else if (!strncmp("$PCLOSE ", text, strlen("$PACCEPT "))) parse_pclose(msgdata->clientdata, text, user); else publicText(user, text); return OK; }