• 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

95 static CURLcode pop3_regular_transfer(struct connectdata *conn, bool *done);
96 static CURLcode pop3_do(struct connectdata *conn, bool *done);
97 static CURLcode pop3_done(struct connectdata *conn, CURLcode status,
99 static CURLcode pop3_connect(struct connectdata *conn, bool *done);
100 static CURLcode pop3_disconnect(struct connectdata *conn, bool dead);
101 static CURLcode pop3_multi_statemach(struct connectdata *conn, bool *done);
102 static int pop3_getsock(struct connectdata *conn, curl_socket_t *socks,
104 static CURLcode pop3_doing(struct connectdata *conn, bool *dophase_done);
105 static CURLcode pop3_setup_connection(struct connectdata *conn);
106 static CURLcode pop3_parse_url_options(struct connectdata *conn);
107 static CURLcode pop3_parse_url_path(struct connectdata *conn);
108 static CURLcode pop3_parse_custom_request(struct connectdata *conn);
109 static CURLcode pop3_calc_sasl_details(struct connectdata *conn,
218 static void pop3_to_pop3s(struct connectdata *conn)
220 conn->handler = &Curl_handler_pop3s;
235 static bool pop3_endofresp(struct connectdata *conn, char *line, size_t len,
238 struct pop3_conn *pop3c = &conn->proto.pop3c;
304 static void state(struct connectdata *conn, pop3state newstate)
306 struct pop3_conn *pop3c = &conn->proto.pop3c;
335 infof(conn->data, "POP3 %p state change from %s to %s\n",
349 static CURLcode pop3_perform_capa(struct connectdata *conn)
352 struct pop3_conn *pop3c = &conn->proto.pop3c;
362 state(conn, POP3_CAPA);
373 static CURLcode pop3_perform_starttls(struct connectdata *conn)
378 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", "STLS");
381 state(conn, POP3_STARTTLS);
392 static CURLcode pop3_perform_upgrade_tls(struct connectdata *conn)
395 struct pop3_conn *pop3c = &conn->proto.pop3c;
398 result = Curl_ssl_connect_nonblocking(conn, FIRSTSOCKET, &pop3c->ssldone);
402 state(conn, POP3_UPGRADETLS);
405 pop3_to_pop3s(conn);
406 result = pop3_perform_capa(conn);
419 static CURLcode pop3_perform_user(struct connectdata *conn)
425 if(!conn->bits.user_passwd) {
426 state(conn, POP3_STOP);
432 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "USER %s",
433 conn->user ? conn->user : "");
435 state(conn, POP3_USER);
447 static CURLcode pop3_perform_apop(struct connectdata *conn)
450 struct pop3_conn *pop3c = &conn->proto.pop3c;
458 if(!conn->bits.user_passwd) {
459 state(conn, POP3_STOP);
472 Curl_MD5_update(ctxt, (const unsigned char *) conn->passwd,
473 curlx_uztoui(strlen(conn->passwd)));
482 result = Curl_pp_sendf(&pop3c->pp, "APOP %s %s", conn->user, secret);
485 state(conn, POP3_APOP);
498 static CURLcode pop3_perform_auth(struct connectdata *conn,
504 struct pop3_conn *pop3c = &conn->proto.pop3c;
511 state(conn, state2);
518 state(conn, state1);
532 static CURLcode pop3_perform_authentication(struct connectdata *conn)
535 struct pop3_conn *pop3c = &conn->proto.pop3c;
544 if(!conn->bits.user_passwd) {
545 state(conn, POP3_STOP);
552 result = pop3_calc_sasl_details(conn, &mech, &initresp, &len, &state1,
558 result = pop3_perform_auth(conn, mech, initresp, len, state1, state2);
566 result = pop3_perform_apop(conn);
571 result = pop3_perform_user(conn);
574 infof(conn->data, "No known authentication mechanisms supported!\n");
588 static CURLcode pop3_perform_command(struct connectdata *conn)
591 struct SessionHandle *data = conn->data;
596 if(pop3->id[0] == '\0' || conn->data->set.ftp_list_only) {
608 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s %s",
612 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s",
617 state(conn, POP3_COMMAND);
628 static CURLcode pop3_perform_quit(struct connectdata *conn)
633 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", "QUIT");
636 state(conn, POP3_QUIT);
642 static CURLcode pop3_state_servergreet_resp(struct connectdata *conn,
647 struct SessionHandle *data = conn->data;
648 struct pop3_conn *pop3c = &conn->proto.pop3c;
687 result = pop3_perform_capa(conn);
694 static CURLcode pop3_state_capa_resp(struct connectdata *conn, int pop3code,
698 struct SessionHandle *data = conn->data;
699 struct pop3_conn *pop3c = &conn->proto.pop3c;
767 if(data->set.use_ssl && !conn->ssl[FIRSTSOCKET].use) {
771 result = pop3_perform_starttls(conn);
774 result = pop3_perform_authentication(conn);
781 result = pop3_perform_authentication(conn);
787 result = pop3_perform_authentication(conn);
794 static CURLcode pop3_state_starttls_resp(struct connectdata *conn,
799 struct SessionHandle *data = conn->data;
809 result = pop3_perform_authentication(conn);
812 result = pop3_perform_upgrade_tls(conn);
818 static CURLcode pop3_state_auth_plain_resp(struct connectdata *conn,
823 struct SessionHandle *data = conn->data;
835 result = Curl_sasl_create_plain_message(data, conn->user, conn->passwd,
839 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", plainauth);
842 state(conn, POP3_AUTH_FINAL);
852 static CURLcode pop3_state_auth_login_resp(struct connectdata *conn,
857 struct SessionHandle *data = conn->data;
869 result = Curl_sasl_create_login_message(data, conn->user,
873 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", authuser);
876 state(conn, POP3_AUTH_LOGIN_PASSWD);
886 static CURLcode pop3_state_auth_login_password_resp(struct connectdata *conn,
891 struct SessionHandle *data = conn->data;
903 result = Curl_sasl_create_login_message(data, conn->passwd,
907 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", authpasswd);
910 state(conn, POP3_AUTH_FINAL);
921 static CURLcode pop3_state_auth_cram_resp(struct connectdata *conn,
926 struct SessionHandle *data = conn->data;
946 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", "*");
949 state(conn, POP3_AUTH_CANCEL);
953 result = Curl_sasl_create_cram_md5_message(data, chlg, conn->user,
954 conn->passwd, &rplyb64, &len);
957 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", rplyb64);
960 state(conn, POP3_AUTH_FINAL);
971 static CURLcode pop3_state_auth_digest_resp(struct connectdata *conn,
976 struct SessionHandle *data = conn->data;
1001 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", "*");
1004 state(conn, POP3_AUTH_CANCEL);
1009 conn->user, conn->passwd,
1013 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", rplyb64);
1016 state(conn, POP3_AUTH_DIGESTMD5_RESP);
1026 static CURLcode pop3_state_auth_digest_resp_resp(struct connectdata *conn,
1031 struct SessionHandle *data = conn->data;
1041 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", "");
1044 state(conn, POP3_AUTH_FINAL);
1053 static CURLcode pop3_state_auth_ntlm_resp(struct connectdata *conn,
1058 struct SessionHandle *data = conn->data;
1070 result = Curl_sasl_create_ntlm_type1_message(conn->user, conn->passwd,
1071 &conn->ntlm,
1075 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", type1msg);
1078 state(conn, POP3_AUTH_NTLM_TYPE2MSG);
1088 static CURLcode pop3_state_auth_ntlm_type2msg_resp(struct connectdata *conn,
1093 struct SessionHandle *data = conn->data;
1109 result = Curl_sasl_decode_ntlm_type2_message(data, type2msg, &conn->ntlm);
1112 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", "*");
1115 state(conn, POP3_AUTH_CANCEL);
1119 result = Curl_sasl_create_ntlm_type3_message(data, conn->user,
1120 conn->passwd, &conn->ntlm,
1124 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", type3msg);
1127 state(conn, POP3_AUTH_FINAL);
1139 static CURLcode pop3_state_auth_xoauth2_resp(struct connectdata *conn,
1143 struct SessionHandle *data = conn->data;
1155 result = Curl_sasl_create_xoauth2_message(conn->data, conn->user,
1156 conn->xoauth2_bearer,
1160 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "%s", xoauth);
1163 state(conn, POP3_AUTH_FINAL);
1173 static CURLcode pop3_state_auth_cancel_resp(struct connectdata *conn,
1178 struct SessionHandle *data = conn->data;
1179 struct pop3_conn *pop3c = &conn->proto.pop3c;
1193 result = pop3_calc_sasl_details(conn, &mech, &initresp, &len, &state1,
1201 result = pop3_perform_auth(conn, mech, initresp, len, state1, state2);
1209 result = pop3_perform_apop(conn);
1214 result = pop3_perform_user(conn);
1226 static CURLcode pop3_state_auth_final_resp(struct connectdata *conn,
1231 struct SessionHandle *data = conn->data;
1241 state(conn, POP3_STOP);
1248 static CURLcode pop3_state_apop_resp(struct connectdata *conn, int pop3code,
1252 struct SessionHandle *data = conn->data;
1262 state(conn, POP3_STOP);
1269 static CURLcode pop3_state_user_resp(struct connectdata *conn, int pop3code,
1273 struct SessionHandle *data = conn->data;
1283 result = Curl_pp_sendf(&conn->proto.pop3c.pp, "PASS %s",
1284 conn->passwd ? conn->passwd : "");
1286 state(conn, POP3_PASS);
1292 static CURLcode pop3_state_pass_resp(struct connectdata *conn, int pop3code,
1296 struct SessionHandle *data = conn->data;
1306 state(conn, POP3_STOP);
1312 static CURLcode pop3_state_command_resp(struct connectdata *conn,
1317 struct SessionHandle *data = conn->data;
1319 struct pop3_conn *pop3c = &conn->proto.pop3c;
1325 state(conn, POP3_STOP);
1341 Curl_setup_transfer(conn, FIRSTSOCKET, -1, FALSE, NULL, -1, NULL);
1349 result = Curl_pop3_write(conn, pp->cache, pp->cache_size);
1363 state(conn, POP3_STOP);
1368 static CURLcode pop3_statemach_act(struct connectdata *conn)
1371 curl_socket_t sock = conn->sock[FIRSTSOCKET];
1373 struct pop3_conn *pop3c = &conn->proto.pop3c;
1379 return pop3_perform_upgrade_tls(conn);
1397 result = pop3_state_servergreet_resp(conn, pop3code, pop3c->state);
1401 result = pop3_state_capa_resp(conn, pop3code, pop3c->state);
1405 result = pop3_state_starttls_resp(conn, pop3code, pop3c->state);
1409 result = pop3_state_auth_plain_resp(conn, pop3code, pop3c->state);
1413 result = pop3_state_auth_login_resp(conn, pop3code, pop3c->state);
1417 result = pop3_state_auth_login_password_resp(conn, pop3code,
1423 result = pop3_state_auth_cram_resp(conn, pop3code, pop3c->state);
1427 result = pop3_state_auth_digest_resp(conn, pop3code, pop3c->state);
1431 result = pop3_state_auth_digest_resp_resp(conn, pop3code, pop3c->state);
1437 result = pop3_state_auth_ntlm_resp(conn, pop3code, pop3c->state);
1441 result = pop3_state_auth_ntlm_type2msg_resp(conn, pop3code,
1447 result = pop3_state_auth_xoauth2_resp(conn, pop3code, pop3c->state);
1451 result = pop3_state_auth_cancel_resp(conn, pop3code, pop3c->state);
1455 result = pop3_state_auth_final_resp(conn, pop3code, pop3c->state);
1460 result = pop3_state_apop_resp(conn, pop3code, pop3c->state);
1465 result = pop3_state_user_resp(conn, pop3code, pop3c->state);
1469 result = pop3_state_pass_resp(conn, pop3code, pop3c->state);
1473 result = pop3_state_command_resp(conn, pop3code, pop3c->state);
1480 state(conn, POP3_STOP);
1489 static CURLcode pop3_multi_statemach(struct connectdata *conn, bool *done)
1492 struct pop3_conn *pop3c = &conn->proto.pop3c;
1494 if((conn->handler->flags & PROTOPT_SSL) && !pop3c->ssldone) {
1495 result = Curl_ssl_connect_nonblocking(conn, FIRSTSOCKET, &pop3c->ssldone);
1506 static CURLcode pop3_block_statemach(struct connectdata *conn)
1509 struct pop3_conn *pop3c = &conn->proto.pop3c;
1519 static CURLcode pop3_init(struct connectdata *conn)
1522 struct SessionHandle *data = conn->data;
1533 static int pop3_getsock(struct connectdata *conn, curl_socket_t *socks,
1536 return Curl_pp_getsock(&conn->proto.pop3c.pp, socks, numsocks);
1549 static CURLcode pop3_connect(struct connectdata *conn, bool *done)
1552 struct pop3_conn *pop3c = &conn->proto.pop3c;
1558 conn->bits.close = FALSE;
1564 pp->conn = conn;
1574 result = pop3_parse_url_options(conn);
1579 state(conn, POP3_SERVERGREET);
1581 result = pop3_multi_statemach(conn, done);
1595 static CURLcode pop3_done(struct connectdata *conn, CURLcode status,
1599 struct SessionHandle *data = conn->data;
1612 conn->bits.close = TRUE; /* marked for closure */
1633 static CURLcode pop3_perform(struct connectdata *conn, bool *connected,
1638 struct POP3 *pop3 = conn->data->req.protop;
1640 DEBUGF(infof(conn->data, "DO phase starts\n"));
1642 if(conn->data->set.opt_no_body) {
1650 result = pop3_perform_command(conn);
1655 result = pop3_multi_statemach(conn, dophase_done);
1657 *connected = conn->bits.tcpconnect[FIRSTSOCKET];
1660 DEBUGF(infof(conn->data, "DO phase is complete\n"));
1674 static CURLcode pop3_do(struct connectdata *conn, bool *done)
1681 result = pop3_parse_url_path(conn);
1686 result = pop3_parse_custom_request(conn);
1690 result = pop3_regular_transfer(conn, done);
1702 static CURLcode pop3_disconnect(struct connectdata *conn, bool dead_connection)
1704 struct pop3_conn *pop3c = &conn->proto.pop3c;
1712 if(!dead_connection && pop3c->pp.conn && pop3c->pp.conn->bits.protoconnstart)
1713 if(!pop3_perform_quit(conn))
1714 (void)pop3_block_statemach(conn); /* ignore errors on QUIT */
1720 Curl_sasl_cleanup(conn, pop3c->authused);
1729 static CURLcode pop3_dophase_done(struct connectdata *conn, bool connected)
1731 (void)conn;
1738 static CURLcode pop3_doing(struct connectdata *conn, bool *dophase_done)
1740 CURLcode result = pop3_multi_statemach(conn, dophase_done);
1743 DEBUGF(infof(conn->data, "DO phase failed\n"));
1745 result = pop3_dophase_done(conn, FALSE /* not connected */);
1747 DEBUGF(infof(conn->data, "DO phase is complete\n"));
1762 static CURLcode pop3_regular_transfer(struct connectdata *conn,
1767 struct SessionHandle *data = conn->data;
1779 result = pop3_perform(conn, &connected, dophase_done);
1783 result = pop3_dophase_done(conn, connected);
1788 static CURLcode pop3_setup_connection(struct connectdata *conn)
1790 struct SessionHandle *data = conn->data;
1793 CURLcode result = pop3_init(conn);
1797 if(conn->bits.httpproxy && !data->set.tunnel_thru_httpproxy) {
1801 if(conn->handler == &Curl_handler_pop3)
1802 conn->handler = &Curl_handler_pop3_proxy;
1805 conn->handler = &Curl_handler_pop3s_proxy;
1813 return conn->handler->setup_connection(conn);
1831 static CURLcode pop3_parse_url_options(struct connectdata *conn)
1834 struct pop3_conn *pop3c = &conn->proto.pop3c;
1835 const char *options = conn->options;
1913 static CURLcode pop3_parse_url_path(struct connectdata *conn)
1916 struct SessionHandle *data = conn->data;
1930 static CURLcode pop3_parse_custom_request(struct connectdata *conn)
1933 struct SessionHandle *data = conn->data;
1950 static CURLcode pop3_calc_sasl_details(struct connectdata *conn,
1956 struct SessionHandle *data = conn->data;
1957 struct pop3_conn *pop3c = &conn->proto.pop3c;
1985 result = Curl_sasl_create_ntlm_type1_message(conn->user, conn->passwd,
1986 &conn->ntlm,
1993 (pop3c->prefmech != SASL_AUTH_ANY)) || conn->xoauth2_bearer) {
2000 result = Curl_sasl_create_xoauth2_message(data, conn->user,
2001 conn->xoauth2_bearer,
2012 result = Curl_sasl_create_login_message(data, conn->user, initresp, len);
2022 result = Curl_sasl_create_plain_message(data, conn->user, conn->passwd,
2036 CURLcode Curl_pop3_write(struct connectdata *conn, char *str, size_t nread)
2040 struct SessionHandle *data = conn->data;
2043 struct pop3_conn *pop3c = &conn->proto.pop3c;
2063 result = Curl_client_write(conn, CLIENTWRITE_BODY, &str[last],
2121 result = Curl_client_write(conn, CLIENTWRITE_BODY, (char*)POP3_EOB,
2137 result = Curl_client_write(conn, CLIENTWRITE_BODY, (char *)POP3_EOB, 2);
2150 result = Curl_client_write(conn, CLIENTWRITE_BODY, &str[last],