[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnurl] 193/411: sendf: move Curl_sendf to dict.c and make it static
From: |
gnunet |
Subject: |
[gnurl] 193/411: sendf: move Curl_sendf to dict.c and make it static |
Date: |
Wed, 13 Jan 2021 01:20:08 +0100 |
This is an automated email from the git hooks/post-receive script.
nikita pushed a commit to branch master
in repository gnurl.
commit a87cca7b1cbec0b4206b2bb1cb074a8a4a5bd151
Author: Daniel Stenberg <daniel@haxx.se>
AuthorDate: Mon Sep 28 14:14:25 2020 +0200
sendf: move Curl_sendf to dict.c and make it static
... as the only remaining user of that function. Also fix gopher.c to
instead use Curl_write()
Closes #6020
---
lib/dict.c | 93 ++++++++++++++++++++++++++++++++++++++++++++----------------
lib/gopher.c | 4 +--
lib/sendf.c | 46 ------------------------------
lib/sendf.h | 4 +--
4 files changed, 71 insertions(+), 76 deletions(-)
diff --git a/lib/dict.c b/lib/dict.c
index b6676aa84..8dd4a90f7 100644
--- a/lib/dict.c
+++ b/lib/dict.c
@@ -57,6 +57,7 @@
#include "escape.h"
#include "progress.h"
#include "dict.h"
+#include "curl_printf.h"
#include "strcase.h"
#include "curl_memory.h"
/* The last #include file should be: */
@@ -127,6 +128,52 @@ static char *unescape_word(struct Curl_easy *data, const
char *inputbuff)
return dictp;
}
+/* sendf() sends formatted data to the server */
+static CURLcode sendf(curl_socket_t sockfd, struct connectdata *conn,
+ const char *fmt, ...)
+{
+ struct Curl_easy *data = conn->data;
+ ssize_t bytes_written;
+ size_t write_len;
+ CURLcode result = CURLE_OK;
+ char *s;
+ char *sptr;
+ va_list ap;
+ va_start(ap, fmt);
+ s = vaprintf(fmt, ap); /* returns an allocated string */
+ va_end(ap);
+ if(!s)
+ return CURLE_OUT_OF_MEMORY; /* failure */
+
+ bytes_written = 0;
+ write_len = strlen(s);
+ sptr = s;
+
+ for(;;) {
+ /* Write the buffer to the socket */
+ result = Curl_write(conn, sockfd, sptr, write_len, &bytes_written);
+
+ if(result)
+ break;
+
+ if(data->set.verbose)
+ Curl_debug(data, CURLINFO_DATA_OUT, sptr, (size_t)bytes_written);
+
+ if((size_t)bytes_written != write_len) {
+ /* if not all was written at once, we must advance the pointer, decrease
+ the size left and try again! */
+ write_len -= bytes_written;
+ sptr += bytes_written;
+ }
+ else
+ break;
+ }
+
+ free(s); /* free the output string */
+
+ return result;
+}
+
static CURLcode dict_do(struct connectdata *conn, bool *done)
{
char *word;
@@ -184,18 +231,16 @@ static CURLcode dict_do(struct connectdata *conn, bool
*done)
if(!eword)
return CURLE_OUT_OF_MEMORY;
- result = Curl_sendf(sockfd, conn,
- "CLIENT " LIBCURL_NAME " " LIBCURL_VERSION "\r\n"
- "MATCH "
- "%s " /* database */
- "%s " /* strategy */
- "%s\r\n" /* word */
- "QUIT\r\n",
-
- database,
- strategy,
- eword
- );
+ result = sendf(sockfd, conn,
+ "CLIENT " LIBCURL_NAME " " LIBCURL_VERSION "\r\n"
+ "MATCH "
+ "%s " /* database */
+ "%s " /* strategy */
+ "%s\r\n" /* word */
+ "QUIT\r\n",
+ database,
+ strategy,
+ eword);
free(eword);
@@ -234,14 +279,14 @@ static CURLcode dict_do(struct connectdata *conn, bool
*done)
if(!eword)
return CURLE_OUT_OF_MEMORY;
- result = Curl_sendf(sockfd, conn,
- "CLIENT " LIBCURL_NAME " " LIBCURL_VERSION "\r\n"
- "DEFINE "
- "%s " /* database */
- "%s\r\n" /* word */
- "QUIT\r\n",
- database,
- eword);
+ result = sendf(sockfd, conn,
+ "CLIENT " LIBCURL_NAME " " LIBCURL_VERSION "\r\n"
+ "DEFINE "
+ "%s " /* database */
+ "%s\r\n" /* word */
+ "QUIT\r\n",
+ database,
+ eword);
free(eword);
@@ -262,10 +307,10 @@ static CURLcode dict_do(struct connectdata *conn, bool
*done)
if(ppath[i] == ':')
ppath[i] = ' ';
}
- result = Curl_sendf(sockfd, conn,
- "CLIENT " LIBCURL_NAME " " LIBCURL_VERSION "\r\n"
- "%s\r\n"
- "QUIT\r\n", ppath);
+ result = sendf(sockfd, conn,
+ "CLIENT " LIBCURL_NAME " " LIBCURL_VERSION "\r\n"
+ "%s\r\n"
+ "QUIT\r\n", ppath);
if(result) {
failf(data, "Failed sending DICT request");
return result;
diff --git a/lib/gopher.c b/lib/gopher.c
index 4f5ba99bb..ce7413133 100644
--- a/lib/gopher.c
+++ b/lib/gopher.c
@@ -171,9 +171,7 @@ static CURLcode gopher_do(struct connectdata *conn, bool
*done)
free(sel_org);
if(!result)
- /* We can use Curl_sendf to send the terminal \r\n relatively safely and
- save allocing another string/doing another _write loop. */
- result = Curl_sendf(sockfd, conn, "\r\n");
+ result = Curl_write(conn, sockfd, "\r\n", 2, &amount);
if(result) {
failf(data, "Failed sending Gopher request");
return result;
diff --git a/lib/sendf.c b/lib/sendf.c
index 157787a37..6cfc89b69 100644
--- a/lib/sendf.c
+++ b/lib/sendf.c
@@ -286,52 +286,6 @@ void Curl_failf(struct Curl_easy *data, const char *fmt,
...)
}
}
-/* Curl_sendf() sends formatted data to the server */
-CURLcode Curl_sendf(curl_socket_t sockfd, struct connectdata *conn,
- const char *fmt, ...)
-{
- struct Curl_easy *data = conn->data;
- ssize_t bytes_written;
- size_t write_len;
- CURLcode result = CURLE_OK;
- char *s;
- char *sptr;
- va_list ap;
- va_start(ap, fmt);
- s = vaprintf(fmt, ap); /* returns an allocated string */
- va_end(ap);
- if(!s)
- return CURLE_OUT_OF_MEMORY; /* failure */
-
- bytes_written = 0;
- write_len = strlen(s);
- sptr = s;
-
- for(;;) {
- /* Write the buffer to the socket */
- result = Curl_write(conn, sockfd, sptr, write_len, &bytes_written);
-
- if(result)
- break;
-
- if(data->set.verbose)
- Curl_debug(data, CURLINFO_DATA_OUT, sptr, (size_t)bytes_written);
-
- if((size_t)bytes_written != write_len) {
- /* if not all was written at once, we must advance the pointer, decrease
- the size left and try again! */
- write_len -= bytes_written;
- sptr += bytes_written;
- }
- else
- break;
- }
-
- free(s); /* free the output string */
-
- return result;
-}
-
/*
* Curl_write() is an internal write function that sends data to the
* server. Works with plain sockets, SCP, SSL or kerberos.
diff --git a/lib/sendf.h b/lib/sendf.h
index c68b017da..2e270c598 100644
--- a/lib/sendf.h
+++ b/lib/sendf.h
@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
- * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
@@ -24,8 +24,6 @@
#include "curl_setup.h"
-CURLcode Curl_sendf(curl_socket_t sockfd, struct connectdata *,
- const char *fmt, ...);
void Curl_infof(struct Curl_easy *, const char *fmt, ...);
void Curl_failf(struct Curl_easy *, const char *fmt, ...);
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [gnurl] 297/411: tool_debug_cb: do not assume zero-terminated data, (continued)
- [gnurl] 297/411: tool_debug_cb: do not assume zero-terminated data, gnunet, 2021/01/12
- [gnurl] 311/411: curl.se: new home, gnunet, 2021/01/12
- [gnurl] 273/411: libssh2: fix build with disabled proxy support, gnunet, 2021/01/12
- [gnurl] 253/411: openssl: acknowledge SRP disabling in configure properly, gnunet, 2021/01/12
- [gnurl] 271/411: CI/appveyor: remove (unused) runtests.pl -b option, gnunet, 2021/01/12
- [gnurl] 268/411: cmake: set the unicode feature in curl-config on Windows, gnunet, 2021/01/12
- [gnurl] 270/411: tool_help: make "output" description less confusing, gnunet, 2021/01/12
- [gnurl] 275/411: range.d: clarify that curl will not parse multipart responses, gnunet, 2021/01/12
- [gnurl] 347/411: KNOWN_BUGS: cmake uses -lpthread instead of Threads::Threads, gnunet, 2021/01/12
- [gnurl] 353/411: quiche: remove 'static' from local buffer, gnunet, 2021/01/12
- [gnurl] 193/411: sendf: move Curl_sendf to dict.c and make it static,
gnunet <=
- [gnurl] 205/411: include/README: convert to markdown, gnunet, 2021/01/12
- [gnurl] 258/411: os400: Sync libcurl API options, gnunet, 2021/01/12
- [gnurl] 346/411: KNOWN_BUGS: cmake build in Linux links libcurl to libdl, gnunet, 2021/01/12
- [gnurl] 312/411: HISTORY: the new domain, gnunet, 2021/01/12
- [gnurl] 279/411: runtests: show keywords when no tests ran, gnunet, 2021/01/12
- [gnurl] 188/411: pause: only trigger a reread if the unpause sticks, gnunet, 2021/01/12
- [gnurl] 251/411: Makefile.m32: add support for HTTP/3 via ngtcp2+nghttp3, gnunet, 2021/01/12
- [gnurl] 198/411: ECH: renamed from ESNI in docs and configure, gnunet, 2021/01/12
- [gnurl] 244/411: strerror: use 'const' as the string should never be modified, gnunet, 2021/01/12
- [gnurl] 223/411: scripts/release-notes.pl: don't "embed" $ in format string for printf(), gnunet, 2021/01/12