comparison libgaim/protocols/qq/send_file.c @ 14610:473b225e7352

[gaim-migrate @ 17338] Eliminate a dependency in crypt.c by replacing ntohl() (etc) with g_ntohl() (etc). Also replace those calls in the rest of the QQ prpl, to be consistent. committer: Tailor Script <tailor@pidgin.im>
author Mark Huetsch <markhuetsch>
date Fri, 22 Sep 2006 16:05:09 +0000
parents 85f3808ca472
children 6b8bc59414f0
comparison
equal deleted inserted replaced
14609:36ededd6e064 14610:473b225e7352
65 { 65 {
66 struct sockaddr_in sin; 66 struct sockaddr_in sin;
67 memset(&sin, 0, sizeof(sin)); 67 memset(&sin, 0, sizeof(sin));
68 sin.sin_family = AF_INET; 68 sin.sin_family = AF_INET;
69 if (!_qq_in_same_lan(info)) { 69 if (!_qq_in_same_lan(info)) {
70 sin.sin_port = htons(info->remote_major_port); 70 sin.sin_port = g_htons(info->remote_major_port);
71 sin.sin_addr.s_addr = htonl(info->remote_internet_ip); 71 sin.sin_addr.s_addr = g_htonl(info->remote_internet_ip);
72 } else { 72 } else {
73 sin.sin_port = htons(info->remote_minor_port); 73 sin.sin_port = g_htons(info->remote_minor_port);
74 sin.sin_addr.s_addr = htonl(info->remote_real_ip); 74 sin.sin_addr.s_addr = g_htonl(info->remote_real_ip);
75 } 75 }
76 return 0; 76 return 0;
77 } 77 }
78 78
79 /* these 2 functions send and recv buffer from/to UDP channel */ 79 /* these 2 functions send and recv buffer from/to UDP channel */
87 info = (ft_info *) xfer->data; 87 info = (ft_info *) xfer->data;
88 sinlen = sizeof(sin); 88 sinlen = sizeof(sin);
89 r = recvfrom(info->recv_fd, buf, len, 0, (struct sockaddr *) &sin, &sinlen); 89 r = recvfrom(info->recv_fd, buf, len, 0, (struct sockaddr *) &sin, &sinlen);
90 gaim_debug(GAIM_DEBUG_INFO, "QQ", 90 gaim_debug(GAIM_DEBUG_INFO, "QQ",
91 "==> recv %d bytes from File UDP Channel, remote ip[%s], remote port[%d]\n", 91 "==> recv %d bytes from File UDP Channel, remote ip[%s], remote port[%d]\n",
92 r, inet_ntoa(sin.sin_addr), ntohs(sin.sin_port)); 92 r, inet_ntoa(sin.sin_addr), g_ntohs(sin.sin_port));
93 return r; 93 return r;
94 } 94 }
95 95
96 /* 96 /*
97 static ssize_t _qq_xfer_udp_send(const char *buf, size_t len, GaimXfer *xfer) 97 static ssize_t _qq_xfer_udp_send(const char *buf, size_t len, GaimXfer *xfer)
109 109
110 info = (ft_info *) xfer->data; 110 info = (ft_info *) xfer->data;
111 memset(&sin, 0, sizeof(sin)); 111 memset(&sin, 0, sizeof(sin));
112 sin.sin_family = AF_INET; 112 sin.sin_family = AF_INET;
113 if (!_qq_in_same_lan(info)) { 113 if (!_qq_in_same_lan(info)) {
114 sin.sin_port = htons(info->remote_major_port); 114 sin.sin_port = g_htons(info->remote_major_port);
115 sin.sin_addr.s_addr = htonl(info->remote_internet_ip); 115 sin.sin_addr.s_addr = g_htonl(info->remote_internet_ip);
116 } else if (info->use_major) { 116 } else if (info->use_major) {
117 sin.sin_port = htons(info->remote_major_port); 117 sin.sin_port = g_htons(info->remote_major_port);
118 sin.sin_addr.s_addr = htonl(info->remote_real_ip); 118 sin.sin_addr.s_addr = g_htonl(info->remote_real_ip);
119 } else { 119 } else {
120 sin.sin_port = htons(info->remote_minor_port); 120 sin.sin_port = g_htons(info->remote_minor_port);
121 sin.sin_addr.s_addr = htonl(info->remote_real_ip); 121 sin.sin_addr.s_addr = g_htonl(info->remote_real_ip);
122 } 122 }
123 gaim_debug(GAIM_DEBUG_INFO, "QQ", "sending to channel: %d.%d.%d.%d:%d\n", 123 gaim_debug(GAIM_DEBUG_INFO, "QQ", "sending to channel: %d.%d.%d.%d:%d\n",
124 sin.sin_addr.s_addr & 0xff, 124 sin.sin_addr.s_addr & 0xff,
125 (sin.sin_addr.s_addr >> 8) & 0xff, 125 (sin.sin_addr.s_addr >> 8) & 0xff,
126 (sin.sin_addr.s_addr >> 16) & 0xff, 126 (sin.sin_addr.s_addr >> 16) & 0xff,
127 sin.sin_addr.s_addr >> 24, 127 sin.sin_addr.s_addr >> 24,
128 ntohs(sin.sin_port) 128 g_ntohs(sin.sin_port)
129 ); 129 );
130 return sendto(info->sender_fd, buf, len, 0, (struct sockaddr *) &sin, sizeof(sin)); 130 return sendto(info->sender_fd, buf, len, 0, (struct sockaddr *) &sin, sizeof(sin));
131 } 131 }
132 132
133 /* user-defined functions for gaim_xfer_read and gaim_xfer_write */ 133 /* user-defined functions for gaim_xfer_read and gaim_xfer_write */
228 static void qq_show_conn_info(ft_info *info) 228 static void qq_show_conn_info(ft_info *info)
229 { 229 {
230 gchar *internet_ip_str, *real_ip_str; 230 gchar *internet_ip_str, *real_ip_str;
231 guint32 ip; 231 guint32 ip;
232 232
233 ip = htonl(info->remote_real_ip); 233 ip = g_htonl(info->remote_real_ip);
234 real_ip_str = gen_ip_str((guint8 *) &ip); 234 real_ip_str = gen_ip_str((guint8 *) &ip);
235 ip = htonl(info->remote_internet_ip); 235 ip = g_htonl(info->remote_internet_ip);
236 internet_ip_str = gen_ip_str((guint8 *) &ip); 236 internet_ip_str = gen_ip_str((guint8 *) &ip);
237 gaim_debug(GAIM_DEBUG_INFO, "QQ", "remote internet ip[%s:%d], major port[%d], real ip[%s], minor port[%d]\n", 237 gaim_debug(GAIM_DEBUG_INFO, "QQ", "remote internet ip[%s:%d], major port[%d], real ip[%s], minor port[%d]\n",
238 internet_ip_str, info->remote_internet_port, 238 internet_ip_str, info->remote_internet_port,
239 info->remote_major_port, real_ip_str, info->remote_minor_port 239 info->remote_major_port, real_ip_str, info->remote_minor_port
240 ); 240 );
367 for (i = 0; i < intrface; i++) { 367 for (i = 0; i < intrface; i++) {
368 //buf[intrface].ifr_name 368 //buf[intrface].ifr_name
369 if (ioctl(fd, SIOCGIFADDR, (char *) &buf[i]) >= 0) 369 if (ioctl(fd, SIOCGIFADDR, (char *) &buf[i]) >= 0)
370 { 370 {
371 ret = (((struct sockaddr_in *)(&buf[i].ifr_addr))->sin_addr).s_addr; 371 ret = (((struct sockaddr_in *)(&buf[i].ifr_addr))->sin_addr).s_addr;
372 if (ret == ntohl(0x7f000001)) continue; 372 if (ret == g_ntohl(0x7f000001)) continue;
373 return ret; 373 return ret;
374 } 374 }
375 } 375 }
376 return 0; 376 return 0;
377 } 377 }
389 info = (ft_info *) xfer->data; 389 info = (ft_info *) xfer->data;
390 390
391 /* debug 391 /* debug
392 info->local_real_ip = 0x7f000001; 392 info->local_real_ip = 0x7f000001;
393 */ 393 */
394 info->local_real_ip = ntohl(inet_addr(gaim_network_get_my_ip(-1))); 394 info->local_real_ip = g_ntohl(inet_addr(gaim_network_get_my_ip(-1)));
395 gaim_debug(GAIM_DEBUG_INFO, "QQ", "local real ip is %x", info->local_real_ip); 395 gaim_debug(GAIM_DEBUG_INFO, "QQ", "local real ip is %x", info->local_real_ip);
396 396
397 for (i = 0; i < 2; i++) { 397 for (i = 0; i < 2; i++) {
398 sockfd = socket(PF_INET, SOCK_DGRAM, 0); 398 sockfd = socket(PF_INET, SOCK_DGRAM, 0);
399 g_return_if_fail(sockfd >= 0); 399 g_return_if_fail(sockfd >= 0);
403 sin.sin_port = 0; 403 sin.sin_port = 0;
404 sin.sin_addr.s_addr = INADDR_ANY; 404 sin.sin_addr.s_addr = INADDR_ANY;
405 sin_len = sizeof(sin); 405 sin_len = sizeof(sin);
406 bind(sockfd, (struct sockaddr *) &sin, sin_len); 406 bind(sockfd, (struct sockaddr *) &sin, sin_len);
407 getsockname(sockfd, (struct sockaddr *) &sin, &sin_len); 407 getsockname(sockfd, (struct sockaddr *) &sin, &sin_len);
408 listen_port = ntohs(sin.sin_port); 408 listen_port = g_ntohs(sin.sin_port);
409 409
410 switch (i) { 410 switch (i) {
411 case 0: 411 case 0:
412 info->local_major_port = listen_port; 412 info->local_major_port = listen_port;
413 info->major_fd = sockfd; 413 info->major_fd = sockfd;
443 qd = (qq_data *) gc->proto_data; 443 qd = (qq_data *) gc->proto_data;
444 444
445 info = g_new0(ft_info, 1); 445 info = g_new0(ft_info, 1);
446 info->to_uid = to_uid; 446 info->to_uid = to_uid;
447 info->send_seq = qd->send_seq; 447 info->send_seq = qd->send_seq;
448 info->local_internet_ip = ntohl(inet_addr(qd->my_ip)); 448 info->local_internet_ip = g_ntohl(inet_addr(qd->my_ip));
449 info->local_internet_port = qd->my_port; 449 info->local_internet_port = qd->my_port;
450 info->local_real_ip = 0x00000000; 450 info->local_real_ip = 0x00000000;
451 info->conn_method = 0x00; 451 info->conn_method = 0x00;
452 qd->xfer->data = info; 452 qd->xfer->data = info;
453 453
798 "Received file reject message is empty\n"); 798 "Received file reject message is empty\n");
799 return; 799 return;
800 } 800 }
801 801
802 info = g_new0(ft_info, 1); 802 info = g_new0(ft_info, 1);
803 info->local_internet_ip = ntohl(inet_addr(qd->my_ip)); 803 info->local_internet_ip = g_ntohl(inet_addr(qd->my_ip));
804 info->local_internet_port = qd->my_port; 804 info->local_internet_port = qd->my_port;
805 info->local_real_ip = 0x00000000; 805 info->local_real_ip = 0x00000000;
806 info->to_uid = sender_uid; 806 info->to_uid = sender_uid;
807 read_packet_w(data, cursor, data_len, &(info->send_seq)); 807 read_packet_w(data, cursor, data_len, &(info->send_seq));
808 808