static void xfr_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) { char *host; int port; if (strcmp(cmd->params[1], "SB") && strcmp(cmd->params[1], "NS")) { /* Maybe we can have a generic bad command error. */ pecan_error ("bad XFR command: params=[%s]", cmd->params[1]); return; } msn_parse_socket(cmd->params[2], &host, &port); if (!strcmp(cmd->params[1], "SB")) { pecan_error ("this shouldn't be handled here"); } else if (!strcmp(cmd->params[1], "NS")) { MsnSession *session; session = cmdproc->session; msn_session_set_login_step(session, PECAN_LOGIN_STEP_TRANSFER); msn_notification_connect(session->notification, host, port); } g_free(host); }
gboolean msn_session_connect(MsnSession *session, const char *host, int port, gboolean http_method) { g_return_val_if_fail(session != NULL, FALSE); g_return_val_if_fail(!session->connected, TRUE); session->connected = TRUE; session->http_method = http_method; if (session->notification == NULL) { purple_debug_error("msn", "This shouldn't happen\n"); g_return_val_if_reached(FALSE); } return msn_notification_connect(session->notification, host, port); }
gboolean msn_session_connect (MsnSession *session, const char *host, int port) { g_return_val_if_fail (session, FALSE); g_return_val_if_fail (!session->connected, TRUE); session->connected = TRUE; if (!session->notification) { pn_error ("this shouldn't happen"); g_return_val_if_reached (FALSE); } if (msn_notification_connect (session->notification, host, port)) { return TRUE; } return FALSE; }