| Yattm - unified GTK instant-messaging client | ![]() |
| [Generated for version 0.2-17 - Mon Jan 6 19:01:23 GMT+1 2003] |
#include <gtk/gtk.h>#include "account.h"#include "contact.h"#include "service.h"Include dependency graph for message_parse.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Functions | |
| void | eb_parse_incomming_message (eb_local_account *account, eb_account *remote, struct service *service, gchar *message) |
| void | eb_update_status (eb_account *remote, gchar *message) |
Variables | |
| char | filename [1024] |
|
||||||||||||||||||||
|
Definition at line 385 of file message_parse.c. References DBG_CORE, eb_chat_window_display_remote_message(), eb_debug, filename, get_file(), get_local_addresses(), linkify(), RUN_SERVICE, send_file(), and xfer_in_progress.
00389 {
00390 char * buff;
00391 char * ptr;
00392 buff = strdup(message);
00393
00394 ptr = strtok(buff," ");
00395
00396 if(ptr && !strcmp(ptr, "EB_COMMAND") && !xfer_in_progress)
00397 {
00398 eb_debug(DBG_CORE, "EB_COMMAND received\n");
00399 ptr = strtok(NULL, " ");
00400 if(ptr && !strcmp(ptr, "SEND_FILE"))
00401 {
00402 char buff2[1024];
00403 char myname[1024];
00404 int s;
00405 struct sockaddr_in sa;
00406 struct hostent *hp;
00407
00408 memset(&sa, 0, sizeof(struct sockaddr_in)); /* clear our address */
00409 gethostname(myname, 1023); /* who are we? */
00410 hp= gethostbyname(myname); /* get our address info */
00411 if (hp == NULL) { /* we don't exist !? */
00412 eb_debug(DBG_CORE, "gethostbyname failed: %s\n", strerror(errno));
00413 free(buff);
00414 return;
00415 }
00416 sa.sin_family= hp->h_addrtype; /* this is our host address */
00417 sa.sin_port= htons(45678); /* this is our port number */
00418 if ((s= socket(AF_INET, SOCK_STREAM, 0)) < 0) { /* create socket */
00419 eb_debug(DBG_CORE, "socket failed: %s\n", strerror(errno));
00420 free(buff);
00421 return;
00422 }
00423 if (bind(s,(struct sockaddr *)&sa,sizeof(struct sockaddr_in)) < 0) {
00424 eb_debug(DBG_CORE, "bind failed: %s\n", strerror(errno));
00425 close(s);
00426 free(buff);
00427 return; /* bind address to socket */
00428 }
00429 listen(s, 1); /* max # of queued connects */
00430 g_snprintf(buff2,1024,"EB_COMMAND ACCEPT %s", get_local_addresses());
00431 RUN_SERVICE(remote)->send_im(account,remote, buff2);
00432 get_file(s);
00433 }
00434 if(ptr && !strcmp(ptr, "ACCEPT"))
00435 {
00436 int sockfd;
00437 struct sockaddr_in dest_addr;
00438
00439 ptr = strtok(NULL, " ");
00440 if(!ptr)
00441 {
00442 free(buff);
00443 return;
00444 }
00445
00446 sockfd = socket(AF_INET, SOCK_STREAM, 0);
00447
00448 dest_addr.sin_family = AF_INET;
00449 dest_addr.sin_port = htons(45678);
00450 dest_addr.sin_addr.s_addr = inet_addr(ptr);
00451 memset(&(dest_addr.sin_zero), 0, 8);
00452
00453 connect(sockfd, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr));
00454 send_file(filename, sockfd);
00455 }
00456 }
00457 else
00458 {
00459 gchar * message2 = linkify(message);
00460 eb_chat_window_display_remote_message( account, remote, serv, message2 );
00461 g_free(message2);
00462 }
00463 free(buff);
00464 }
|
|
||||||||||||
|
Definition at line 466 of file message_parse.c. References eb_chat_window_display_status(). Referenced by buddy_update_status().
00468 {
00469 eb_chat_window_display_status( remote, message );
00470 }
|
|
|
Definition at line 50 of file message_parse.h. Referenced by eb_parse_incomming_message(), and send_file(). |