Ignore:
Timestamp:
05/26/08 11:45:16 (16 years ago)
Author:
niltonneto
Message:

Verificar Wiki/Trac? do módulo.

Location:
trunk/instant_messenger/webjabber
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/instant_messenger/webjabber/webjabber.c

    r268 r287  
    817817                bytes_rcvd_client = (int) NULL, 
    818818                bytes_sent_client = (int) NULL, 
    819                 i; 
    820  
    821         //syslog (LOG_INFO, "Reading(fd%d, fd%d)", in_fd, out_fd); 
     819                i, 
     820                do_auth = 0; 
    822821 
    823822        // @TODO: verificar alocacao buffer 
     
    828827        { 
    829828                bzero(buf_2_jabber, BUF_SIZE); 
    830                 if ( (bytes_rcvd_client = recv (client_fd, buf_2_jabber, BUF_SIZE, 0)) != 0 && strlen(buf_2_client) > 0 ) 
    831                 { 
    832                         // descomentar para ver oq esta passado de informacao 
    833                         //printf("(jabber/client[#%d])[%d]:\n{\n%s.......\n}\n", client_fd, strlen(buf_2_client), buf_2_client); 
     829                bytes_rcvd_client = recv (client_fd, buf_2_jabber, BUF_SIZE, 0); 
     830                if ( (bytes_rcvd_client != 0) && (strlen(buf_2_client) > 0) ) 
     831                { 
    834832                        for ( i = 0; i < bytes_rcvd_jabber; i += bytes_sent_client ) 
    835833                        { 
     
    840838                        } 
    841839                } 
     840                if ( strlen(buf_2_jabber) > 0 ) 
     841                { 
     842                        //printf("(client/jabber[#%d])[%d]:\n{\n%s.......\n}\n", jabber_fd, strlen(buf_2_jabber), buf_2_jabber); 
     843                        if ( strstr(buf_2_jabber, "<?xml") != NULL ) 
     844                                do_auth = 1; 
     845                } 
    842846 
    843847                bzero(buf_2_client, BUF_SIZE); 
    844                 if ( (bytes_rcvd_jabber = recv (jabber_fd, buf_2_client, BUF_SIZE, 0)) != 0 && strlen(buf_2_jabber) > 0 ) 
    845                 { 
    846                         // descomentar para ver oq esta passado de informacao 
    847                         //printf("(client/jabber[#%d])[%d]:\n{\n%s.......\n}\n", jabber_fd, strlen(buf_2_jabber), buf_2_jabber); 
     848                if ( do_auth || read->type == 1 ) 
     849                        bytes_rcvd_jabber = recv (jabber_fd, buf_2_client, BUF_SIZE, 0); 
     850                else 
     851                        bytes_rcvd_jabber = -1; 
     852                if ( (bytes_rcvd_jabber != 0) && (strlen(buf_2_jabber) > 0) ) 
     853                { 
    848854                        for ( i = 0; i < bytes_rcvd_client; i += bytes_sent_jabber ) 
    849855                        { 
     
    854860                        } 
    855861                } 
     862                if ( strlen(buf_2_client) > 0 ) 
     863                { 
     864                        //printf("(jabber/client[#%d])[%d]:\n{\n%s.......\n}\n", client_fd, strlen(buf_2_client), buf_2_client); 
     865                        if ( do_auth && strstr(buf_2_jabber, "<iq xmlns='jabber:client'") != NULL ) 
     866                                do_auth = 0; 
     867                } 
    856868 
    857869                usleep(500); 
    858                 //sleep(2); 
    859870        } 
    860871        while ( (bytes_rcvd_client != 0) && (bytes_rcvd_jabber != 0) ); 
Note: See TracChangeset for help on using the changeset viewer.