• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/ap/gpl/curl/curl-7.36.0/lib/

Lines Matching defs:conn

121 static int ftp_send_command(struct connectdata *conn, const char *message, ...)
132 if(Curl_ftpsendf(conn, print_buffer) != CURLE_OK) {
136 if(Curl_GetFTPResponse(&nread, conn, &ftp_code) != CURLE_OK)
174 socket_write(struct connectdata *conn, curl_socket_t fd, const void *to,
182 code = Curl_write_plain(conn, fd, to_p, len, &written);
197 static CURLcode read_data(struct connectdata *conn,
218 buf->size = conn->mech->decode(conn->app_data, buf->data, len,
219 conn->data_prot, conn);
235 static ssize_t sec_recv(struct connectdata *conn, int sockindex,
240 curl_socket_t fd = conn->sock[sockindex];
245 if(conn->sec_complete == 0 || conn->data_prot == PROT_CLEAR)
248 if(conn->in_buffer.eof_flag) {
249 conn->in_buffer.eof_flag = 0;
253 bytes_read = buffer_read(&conn->in_buffer, buffer, len);
259 if(read_data(conn, fd, &conn->in_buffer) != CURLE_OK)
261 if(conn->in_buffer.size == 0) {
263 conn->in_buffer.eof_flag = 1;
266 bytes_read = buffer_read(&conn->in_buffer, buffer, len);
278 static void do_sec_send(struct connectdata *conn, curl_socket_t fd,
286 enum protection_level prot_level = conn->data_prot;
295 prot_level = conn->command_prot;
297 bytes = conn->mech->encode(conn->app_data, from, length, prot_level,
298 (void**)&buffer, conn);
303 error = Curl_base64_encode(conn->data, buffer, curlx_sitouz(bytes),
313 socket_write(conn, fd, enc, 4);
315 socket_write(conn, fd, mic, 4);
317 socket_write(conn, fd, cmd_buffer, cmd_size);
318 socket_write(conn, fd, "\r\n", 2);
319 infof(conn->data, "Send: %s%s\n", prot_level == PROT_PRIVATE?enc:mic,
326 socket_write(conn, fd, &htonl_bytes, sizeof(htonl_bytes));
327 socket_write(conn, fd, buffer, curlx_sitouz(bytes));
332 static ssize_t sec_write(struct connectdata *conn, curl_socket_t fd,
336 ssize_t tx = 0, len = conn->buffer_size;
338 len -= conn->mech->overhead(conn->app_data, conn->data_prot,
347 do_sec_send(conn, fd, buffer, curlx_sztosi(len));
356 static ssize_t sec_send(struct connectdata *conn, int sockindex,
359 curl_socket_t fd = conn->sock[sockindex];
361 return sec_write(conn, fd, buffer, len);
364 int Curl_sec_read_msg(struct connectdata *conn, char *buffer,
367 /* decoded_len should be size_t or ssize_t but conn->mech->decode returns an
387 decoded_len = conn->mech->decode(conn->app_data, buf, decoded_len,
388 level, conn);
394 if(conn->data->set.verbose) {
396 Curl_debug(conn->data, CURLINFO_HEADER_IN, buf, decoded_len + 1, conn);
417 static int sec_set_protection_level(struct connectdata *conn)
422 enum protection_level level = conn->request_data_prot;
426 if(!conn->sec_complete) {
427 infof(conn->data, "Trying to change the protection level after the"
433 if(conn->data_prot == level)
437 code = ftp_send_command(conn, "PBSZ %u", buffer_size);
442 failf(conn->data, "Failed to set the protection's buffer size.");
445 conn->buffer_size = buffer_size;
447 pbsz = strstr(conn->data->state.buffer, "PBSZ=");
451 if(buffer_size < conn->buffer_size)
452 conn->buffer_size = buffer_size;
457 code = ftp_send_command(conn, "PROT %c", level_to_char(level));
463 failf(conn->data, "Failed to set the protection level.");
467 conn->data_prot = level;
469 conn->command_prot = level;
475 Curl_sec_request_prot(struct connectdata *conn, const char *level)
481 conn->request_data_prot = l;
485 static CURLcode choose_mech(struct connectdata *conn)
488 struct SessionHandle *data = conn->data;
501 tmp_allocation = realloc(conn->app_data, (*mech)->size);
507 conn->app_data = tmp_allocation;
510 ret = (*mech)->init(conn->app_data);
518 ret = ftp_send_command(conn, "AUTH %s", mech_name);
544 ret = (*mech)->auth(conn->app_data, conn);
554 conn->mech = *mech;
555 conn->sec_complete = 1;
556 conn->recv[FIRSTSOCKET] = sec_recv;
557 conn->send[FIRSTSOCKET] = sec_send;
558 conn->recv[SECONDARYSOCKET] = sec_recv;
559 conn->send[SECONDARYSOCKET] = sec_send;
560 conn->command_prot = PROT_SAFE;
563 (void)sec_set_protection_level(conn);
571 Curl_sec_login(struct connectdata *conn)
573 return choose_mech(conn);
578 Curl_sec_end(struct connectdata *conn)
580 if(conn->mech != NULL && conn->mech->end)
581 conn->mech->end(conn->app_data);
582 if(conn->app_data) {
583 free(conn->app_data);
584 conn->app_data = NULL;
586 if(conn->in_buffer.data) {
587 free(conn->in_buffer.data);
588 conn->in_buffer.data = NULL;
589 conn->in_buffer.size = 0;
590 conn->in_buffer.index = 0;
592 conn->in_buffer.eof_flag = 0;
594 conn->sec_complete = 0;
595 conn->data_prot = PROT_CLEAR;
596 conn->mech = NULL;