comparison src/protocols/oscar/oscar.c @ 3033:1143524a2eaf

[gaim-migrate @ 3046] Laying the ground work for image send. Also an IRC fix. committer: Tailor Script <tailor@pidgin.im>
author Sean Egan <seanegan@gmail.com>
date Tue, 12 Mar 2002 17:21:46 +0000
parents eafd12638829
children 4f43ccaf4360
comparison
equal deleted inserted replaced
3032:d3536105d581 3033:1143524a2eaf
1271 1271
1272 aim_conn_addhandler(od->sess, dim->conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING, 1272 aim_conn_addhandler(od->sess, dim->conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING,
1273 gaim_directim_incoming, 0); 1273 gaim_directim_incoming, 0);
1274 aim_conn_addhandler(od->sess, dim->conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING, 1274 aim_conn_addhandler(od->sess, dim->conn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING,
1275 gaim_directim_typing, 0); 1275 gaim_directim_typing, 0);
1276 aim_conn_addhandler(od->sess, dim->conn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_DOWNLOADIMAGE, 1276 aim_conn_addhandler(od->sess, dim->conn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_IMAGETRANSFER,
1277 gaim_update_ui, 0); 1277 gaim_update_ui, 0);
1278 for (i = 0; i < (int)strlen(d->ip); i++) { 1278 for (i = 0; i < (int)strlen(d->ip); i++) {
1279 if (d->ip[i] == ':') { 1279 if (d->ip[i] == ':') {
1280 port = atoi(&(d->ip[i+1])); 1280 port = atoi(&(d->ip[i+1]));
1281 break; 1281 break;
2422 return 0; 2422 return 0;
2423 aim_send_typing(odata->sess, dim->conn, typing); 2423 aim_send_typing(odata->sess, dim->conn, typing);
2424 return 0; 2424 return 0;
2425 } 2425 }
2426 2426
2427 static int oscar_send_im(struct gaim_connection *gc, char *name, char *message, int imflags) { 2427 static int oscar_send_im(struct gaim_connection *gc, char *name, char *message, int len, int imflags) {
2428 struct oscar_data *odata = (struct oscar_data *)gc->proto_data; 2428 struct oscar_data *odata = (struct oscar_data *)gc->proto_data;
2429 struct direct_im *dim = find_direct_im(odata, name); 2429 struct direct_im *dim = find_direct_im(odata, name);
2430 int ret = 0; 2430 int ret = 0;
2431 if (dim) { 2431 if (dim) {
2432 if (dim->connected) { /* If we're not connected yet, send through server */ 2432 if (dim->connected) { /* If we're not connected yet, send through server */
2433 ret = aim_send_im_direct(odata->sess, dim->conn, message); 2433 ret = aim_send_im_direct(odata->sess, dim->conn, message, len == -1 ? strlen(len) : len);
2434 if (ret == 0) 2434 if (ret == 0)
2435 return 1; 2435 return 1;
2436 else return ret; 2436 else return ret;
2437 } 2437 }
2438 debug_printf("Direct IM pending, but not connected; sending through server\n"); 2438 debug_printf("Direct IM pending, but not connected; sending through server\n");
3144 3144
3145 aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING, 3145 aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMINCOMING,
3146 gaim_directim_incoming, 0); 3146 gaim_directim_incoming, 0);
3147 aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING, 3147 aim_conn_addhandler(sess, newconn, AIM_CB_FAM_OFT, AIM_CB_OFT_DIRECTIMTYPING,
3148 gaim_directim_typing, 0); 3148 gaim_directim_typing, 0);
3149 aim_conn_addhandler(sess, newconn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_DOWNLOADIMAGE, 3149 aim_conn_addhandler(sess, newconn, AIM_CB_FAM_SPECIAL, AIM_CB_SPECIAL_IMAGETRANSFER,
3150 gaim_update_ui, 0); 3150 gaim_update_ui, 0);
3151 return 1; 3151 return 1;
3152 } 3152 }
3153 3153
3154 static int gaim_update_ui(aim_session_t *sess, aim_frame_t *fr, ...) { 3154 static int gaim_update_ui(aim_session_t *sess, aim_frame_t *fr, ...) {