| 120 } else { |
120 } else { |
| 121 sin.sin_port = g_htons(info->remote_minor_port); |
121 sin.sin_port = g_htons(info->remote_minor_port); |
| 122 sin.sin_addr.s_addr = g_htonl(info->remote_real_ip); |
122 sin.sin_addr.s_addr = g_htonl(info->remote_real_ip); |
| 123 } |
123 } |
| 124 purple_debug_info("QQ", "sending to channel: %d.%d.%d.%d:%d\n", |
124 purple_debug_info("QQ", "sending to channel: %d.%d.%d.%d:%d\n", |
| 125 sin.sin_addr.s_addr & 0xff, |
125 (int)sin.sin_addr.s_addr & 0xff, |
| 126 (sin.sin_addr.s_addr >> 8) & 0xff, |
126 (int)(sin.sin_addr.s_addr >> 8) & 0xff, |
| 127 (sin.sin_addr.s_addr >> 16) & 0xff, |
127 (int)(sin.sin_addr.s_addr >> 16) & 0xff, |
| 128 sin.sin_addr.s_addr >> 24, |
128 (int)sin.sin_addr.s_addr >> 24, |
| 129 g_ntohs(sin.sin_port) |
129 (int)g_ntohs(sin.sin_port) |
| 130 ); |
130 ); |
| 131 return sendto(info->sender_fd, buf, len, 0, (struct sockaddr *) &sin, sizeof(sin)); |
131 return sendto(info->sender_fd, buf, len, 0, (struct sockaddr *) &sin, sizeof(sin)); |
| 132 } |
132 } |
| 133 |
133 |
| 134 /* user-defined functions for purple_xfer_read and purple_xfer_write */ |
134 /* user-defined functions for purple_xfer_read and purple_xfer_write */ |