Mercurial > pidgin
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, ...) { |