Changeset 662 for trunk/c2s/c2s.c

Show
Ignore:
Timestamp:
10/08/08 12:44:06 (5 months ago)
Author:
smoku
Message:

Implemented My IP Address extension

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/c2s/c2s.c

    r639 r662  
    9191 
    9292                sx_kill(s); 
    93                  
     93 
    9494                return -1; 
    9595            } 
     
    117117                    "Connection: close\r\n\r\n"; 
    118118                char *answer; 
    119      
     119 
    120120                len = strlen(sess->c2s->http_forward) + strlen(http); 
    121121                answer = malloc(len * sizeof(char)); 
    122122                sprintf (answer, http, sess->c2s->http_forward); 
    123      
     123 
    124124                log_write(sess->c2s->log, LOG_NOTICE, "[%d] bouncing HTTP request to %s", sess->fd->fd, sess->c2s->http_forward); 
    125      
     125 
    126126                /* send HTTP answer */ 
    127127                len = send(sess->fd->fd, answer, len-1, 0); 
    128128 
    129129                free(answer); 
    130      
     130 
    131131                /* close connection */ 
    132132                sx_kill(s); 
     
    150150            if(MIO_WOULDBLOCK) 
    151151                return 0; 
    152              
     152 
    153153            if(s->state >= state_OPEN && sess->resources != NULL) 
    154154                log_write(sess->c2s->log, LOG_NOTICE, "[%d] [%s] write error: %s (%d)", sess->fd->fd, jid_user(sess->resources->jid), MIO_STRERROR(MIO_ERROR), MIO_ERROR); 
    155155            else 
    156156                log_write(sess->c2s->log, LOG_NOTICE, "[%d] [%s. port=%d] write error: %s (%d)", sess->fd->fd, sess->ip, sess->port, MIO_STRERROR(MIO_ERROR), MIO_ERROR); 
    157          
     157 
    158158            sx_kill(s); 
    159          
     159 
    160160            return -1; 
    161161 
     
    168168 
    169169            break; 
    170              
     170 
    171171        case event_STREAM: 
    172172 
     
    272272                        log_debug(ZONE, "invalid jid data"); 
    273273                        sx_nad_write(sess->s, stanza_error(nad, 0, stanza_err_BAD_REQUEST)); 
    274                          
     274 
    275275                        return 0; 
    276276                    } 
     
    344344                    log_debug(ZONE, "no/empty resource given to unbind"); 
    345345                    sx_nad_write(sess->s, stanza_error(nad, 0, stanza_err_BAD_REQUEST)); 
    346                          
     346 
    347347                    return 0; 
    348348                } 
     
    352352                    log_debug(ZONE, "cannot resourceprep"); 
    353353                    sx_nad_write(sess->s, stanza_error(nad, 0, stanza_err_BAD_REQUEST)); 
    354                      
     354 
    355355                    return 0; 
    356356                } 
     
    364364                    log_debug(ZONE, "resource /%s not bound", resource_buf); 
    365365                    sx_nad_write(sess->s, stanza_error(nad, 0, stanza_err_ITEM_NOT_FOUND)); 
    366                      
     366 
    367367                    return 0; 
    368368                } 
     
    446446                        log_debug(ZONE, "packet without 'from' on multiple resource stream"); 
    447447                    } 
    448      
     448 
    449449                    sx_nad_write(sess->s, stanza_error(nad, 0, stanza_err_UNKNOWN_SENDER)); 
    450      
     450 
    451451                    return 0; 
    452452                } 
     
    458458 
    459459            break; 
    460          
     460 
    461461        case event_OPEN: 
    462462 
     
    593593            if(c2s->stanza_rate_total != 0) 
    594594                sess->stanza_rate = rate_new(c2s->stanza_rate_total, c2s->stanza_rate_seconds, c2s->stanza_rate_wait); 
     595 
     596            /* give IP to SX */ 
     597            sess->s->ip = sess->ip; 
    595598 
    596599            /* find out which port this is */ 
     
    667670                } 
    668671            } while(xhash_iter_next(c2s->sessions)); 
    669          
     672 
    670673        xhash_zap(c2s->sm_avail, from); 
    671674    } 
     
    708711 
    709712                sx_kill(s); 
    710                  
     713 
    711714                return -1; 
    712715            } 
     
    738741 
    739742            log_write(c2s->log, LOG_NOTICE, "[%d] [router] write error: %s (%d)", c2s->fd->fd, MIO_STRERROR(MIO_ERROR), MIO_ERROR); 
    740          
     743 
    741744            sx_kill(s); 
    742          
     745 
    743746            return -1; 
    744747 
     
    847850                    } else 
    848851                        c2s->server_fd = NULL; 
    849              
     852 
    850853#ifdef HAVE_SSL 
    851854                    if(c2s->local_ssl_port != 0 && c2s->local_pemfile != NULL) { 
     
    869872                    exit(1); 
    870873                } 
    871              
     874 
    872875                /* we're online */ 
    873876                c2s->online = c2s->started = 1; 
     
    10511054                    if(sess->bound < 1){ 
    10521055                        sess->active = 0; 
    1053                      
     1056 
    10541057                        /* return the unbind result to the client */ 
    10551058                        if(sess->result != NULL) { 
     
    10601063                        if(replaced) 
    10611064                            sx_error(sess->s, stream_err_CONFLICT, NULL); 
    1062                          
     1065 
    10631066                        /* close them */ 
    10641067                        sx_close(sess->s); 
    1065      
     1068 
    10661069                        nad_free(nad); 
    10671070                        return 0; 
     
    11381141                            ires->next = bres->next; 
    11391142                        } 
    1140      
     1143 
    11411144                        jid_free(bres->jid); 
    11421145                        free(bres);