equal
deleted
inserted
replaced
151 } |
151 } |
152 |
152 |
153 g_free (socket); |
153 g_free (socket); |
154 } |
154 } |
155 |
155 |
156 gint |
156 static gint |
157 lm_old_socket_do_write (LmOldSocket *socket, const gchar *buf, gint len) |
157 old_socket_do_write (LmOldSocket *socket, const gchar *buf, guint len) |
158 { |
158 { |
159 gint b_written; |
159 gint b_written; |
160 |
160 |
161 if (old_socket_output_is_buffered (socket, buf, len)) { |
161 if (socket->ssl_started) { |
162 return len; |
|
163 } |
|
164 |
|
165 if (socket->ssl_started) { |
|
166 b_written = _lm_ssl_send (socket->ssl, buf, len); |
162 b_written = _lm_ssl_send (socket->ssl, buf, len); |
167 } else { |
163 } else { |
168 GIOStatus io_status = G_IO_STATUS_AGAIN; |
164 GIOStatus io_status = G_IO_STATUS_AGAIN; |
169 gsize bytes_written; |
165 gsize bytes_written; |
170 |
166 |
179 |
175 |
180 if (io_status != G_IO_STATUS_NORMAL) { |
176 if (io_status != G_IO_STATUS_NORMAL) { |
181 b_written = -1; |
177 b_written = -1; |
182 } |
178 } |
183 } |
179 } |
|
180 |
|
181 return b_written; |
|
182 } |
|
183 |
|
184 gint |
|
185 lm_old_socket_write (LmOldSocket *socket, const gchar *buf, gint len) |
|
186 { |
|
187 gint b_written; |
|
188 |
|
189 if (old_socket_output_is_buffered (socket, buf, len)) { |
|
190 return len; |
|
191 } |
|
192 |
|
193 b_written = old_socket_do_write (socket, buf, len); |
184 |
194 |
185 if (b_written < len && b_written != -1) { |
195 if (b_written < len && b_written != -1) { |
186 old_socket_setup_output_buffer (socket, |
196 old_socket_setup_output_buffer (socket, |
187 buf + b_written, |
197 buf + b_written, |
188 len - b_written); |
198 len - b_written); |
710 if (!out_buf) { |
720 if (!out_buf) { |
711 /* Should not be possible */ |
721 /* Should not be possible */ |
712 return FALSE; |
722 return FALSE; |
713 } |
723 } |
714 |
724 |
715 b_written = lm_old_socket_do_write (socket, out_buf->str, out_buf->len); |
725 b_written = old_socket_do_write (socket, out_buf->str, out_buf->len); |
716 |
726 |
717 if (b_written < 0) { |
727 if (b_written < 0) { |
718 (socket->closed_func) (socket, LM_DISCONNECT_REASON_ERROR, |
728 (socket->closed_func) (socket, LM_DISCONNECT_REASON_ERROR, |
719 socket->user_data); |
729 socket->user_data); |
720 return FALSE; |
730 return FALSE; |
976 req.ai_family = AF_UNSPEC; |
986 req.ai_family = AF_UNSPEC; |
977 req.ai_socktype = SOCK_STREAM; |
987 req.ai_socktype = SOCK_STREAM; |
978 req.ai_protocol = IPPROTO_TCP; |
988 req.ai_protocol = IPPROTO_TCP; |
979 |
989 |
980 #ifdef HAVE_ASYNCNS |
990 #ifdef HAVE_ASYNCNS |
981 if (!_asyncns_prep (socket, NULL)) |
991 if (!old_socket_asyncns_prep (socket, NULL)) |
982 return; |
992 return; |
983 |
993 |
984 socket->resolv_query = |
994 socket->resolv_query = |
985 asyncns_getaddrinfo (socket->asyncns_ctx, |
995 asyncns_getaddrinfo (socket->asyncns_ctx, |
986 remote_addr, |
996 remote_addr, |
1072 char *srv; |
1082 char *srv; |
1073 srv = g_strdup_printf ("_xmpp-client._tcp.%s", socket->domain); |
1083 srv = g_strdup_printf ("_xmpp-client._tcp.%s", socket->domain); |
1074 lm_verbose ("Performing a SRV lookup for %s\n", srv); |
1084 lm_verbose ("Performing a SRV lookup for %s\n", srv); |
1075 |
1085 |
1076 #ifdef HAVE_ASYNCNS |
1086 #ifdef HAVE_ASYNCNS |
1077 if (!_asyncns_prep (socket, error)) |
1087 if (!old_socket_asyncns_prep (socket, error)) |
1078 return NULL; |
1088 return NULL; |
1079 |
1089 |
1080 socket->resolv_query = |
1090 socket->resolv_query = |
1081 asyncns_res_query (socket->asyncns_ctx, srv, C_IN, T_SRV); |
1091 asyncns_res_query (socket->asyncns_ctx, srv, C_IN, T_SRV); |
1082 asyncns_setuserdata (socket->asyncns_ctx, socket->resolv_query, (gpointer) PHASE_1); |
1092 asyncns_setuserdata (socket->asyncns_ctx, socket->resolv_query, (gpointer) PHASE_1); |
1221 |
1231 |
1222 if (socket->asyncns_ctx) { |
1232 if (socket->asyncns_ctx) { |
1223 if (socket->resolv_query) |
1233 if (socket->resolv_query) |
1224 asyncns_cancel (socket->asyncns_ctx, socket->resolv_query); |
1234 asyncns_cancel (socket->asyncns_ctx, socket->resolv_query); |
1225 |
1235 |
1226 _asyncns_done (socket); |
1236 old_so_asyncns_done (socket); |
1227 } |
1237 } |
1228 #else |
1238 #else |
1229 return; |
1239 return; |
1230 #endif /* HAVE_ASYNCNS */ |
1240 #endif /* HAVE_ASYNCNS */ |
1231 } |
1241 } |