mcabber/libjabber/jconn.c
changeset 403 17aa60c6dc63
parent 374 bd5638c21834
child 414 ec86d759ed54
equal deleted inserted replaced
402:4f36d41695a9 403:17aa60c6dc63
    39  *
    39  *
    40  *  results
    40  *  results
    41  *      a pointer to the connection structure
    41  *      a pointer to the connection structure
    42  *      or NULL if allocations failed
    42  *      or NULL if allocations failed
    43  */
    43  */
    44 jconn jab_new(char *user, char *pass, int port, int ssl)
    44 jconn jab_new(char *user, char *pass, char *server, int port, int ssl)
    45 {
    45 {
    46     pool p;
    46     pool p;
    47     jconn j;
    47     jconn j;
    48 
    48 
    49     if(!user) return(NULL);
    49     if(!user) return(NULL);
    55     j->p = p;
    55     j->p = p;
    56 
    56 
    57     j->user = jid_new(p, user);
    57     j->user = jid_new(p, user);
    58     j->pass = pstrdup(p, pass);
    58     j->pass = pstrdup(p, pass);
    59     j->port = port;
    59     j->port = port;
       
    60     j->server = server;
    60 
    61 
    61     j->state = JCONN_STATE_OFF;
    62     j->state = JCONN_STATE_OFF;
    62     j->cw_state = 0;
    63     j->cw_state = 0;
    63     j->id = 1;
    64     j->id = 1;
    64     j->fd = -1;
    65     j->fd = -1;
   137 	XML_SetUserData(j->parser, (void *)j);
   138 	XML_SetUserData(j->parser, (void *)j);
   138 	XML_SetElementHandler(j->parser, startElement, endElement);
   139 	XML_SetElementHandler(j->parser, startElement, endElement);
   139 	XML_SetCharacterDataHandler(j->parser, charData);
   140 	XML_SetCharacterDataHandler(j->parser, charData);
   140 
   141 
   141 	if (j->cw_state & CW_CONNECT_BLOCKING)
   142 	if (j->cw_state & CW_CONNECT_BLOCKING)
   142 	    j->fd = make_netsocket(j->port, j->user->server, NETSOCKET_CLIENT, j->ssl);
   143 	    j->fd = make_netsocket(j->port, j->server, NETSOCKET_CLIENT, j->ssl);
   143 	else
   144 	else
   144 	    j->fd = make_nb_netsocket(j->port, j->user->server, NETSOCKET_CLIENT, j->ssl, &j->cw_state);
   145 	    j->fd = make_nb_netsocket(j->port, j->server, NETSOCKET_CLIENT, j->ssl, &j->cw_state);
   145 	
   146 
   146 	if(j->fd < 0) {
   147 	if(j->fd < 0) {
   147 	    STATE_EVT(JCONN_STATE_OFF);
   148 	    STATE_EVT(JCONN_STATE_OFF);
   148 	    return;
   149 	    return;
   149 	}
   150 	}
   150     }
   151     }