summaryrefslogtreecommitdiff
path: root/apps/netutils/codecs
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-03 00:00:56 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-03 00:00:56 +0000
commit8e7c3d9a4676c5ec1b6b3e9f243af474420ea9fb (patch)
tree8d59aa4f455f6010a95272f5c31b76d7ea4cb806 /apps/netutils/codecs
parent3c21deaf5b357b69a32b515c620616a2b6242594 (diff)
downloadnuttx-8e7c3d9a4676c5ec1b6b3e9f243af474420ea9fb.tar.gz
nuttx-8e7c3d9a4676c5ec1b6b3e9f243af474420ea9fb.tar.bz2
nuttx-8e7c3d9a4676c5ec1b6b3e9f243af474420ea9fb.zip
Add support for wget POST interface; from Darcy Gong
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5301 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'apps/netutils/codecs')
-rw-r--r--apps/netutils/codecs/urldecode.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/apps/netutils/codecs/urldecode.c b/apps/netutils/codecs/urldecode.c
index 9b3b60955..90cc3301b 100644
--- a/apps/netutils/codecs/urldecode.c
+++ b/apps/netutils/codecs/urldecode.c
@@ -351,6 +351,73 @@ char *urldecode(const char *src, const int src_len, char *dest, int *dest_len)
#endif
/****************************************************************************
+ * Name: urlencode_len
+ ****************************************************************************/
+
+#ifdef CONFIG_CODECS_URLCODE
+int urlencode_len(const char *src, const int src_len)
+{
+ const unsigned char *pSrc;
+ const unsigned char *pEnd;
+ int len = 0;
+
+ pEnd = (unsigned char *)src + src_len;
+ for (pSrc = (unsigned char *)src; pSrc < pEnd; pSrc++)
+ {
+ if ((*pSrc >= '0' && *pSrc <= '9') ||
+ (*pSrc >= 'a' && *pSrc <= 'z') ||
+ (*pSrc >= 'A' && *pSrc <= 'Z') ||
+ (*pSrc == '_' || *pSrc == '-' || *pSrc == '.' || *pSrc == '~' || *pSrc == ' '))
+ {
+ len++;
+ }
+ else
+ {
+ len+=3;
+ }
+ }
+
+ return len;
+}
+#endif
+
+/****************************************************************************
+ * Name: urldecode_len
+ ****************************************************************************/
+
+#ifdef CONFIG_CODECS_URLCODE
+int urldecode_len(const char *src, const int src_len)
+{
+ const unsigned char *pSrc;
+ const unsigned char *pEnd;
+ int len = 0;
+ unsigned char cHigh;
+ unsigned char cLow;
+
+ pSrc = (unsigned char *)src;
+ pEnd = (unsigned char *)src + src_len;
+ while (pSrc < pEnd)
+ {
+ if (*pSrc == '%' && pSrc + 2 < pEnd)
+ {
+ cHigh = *(pSrc + 1);
+ cLow = *(pSrc + 2);
+
+ if (IS_HEX_CHAR(cHigh) && IS_HEX_CHAR(cLow))
+ {
+ pSrc += 2;
+ }
+ }
+
+ len++;
+ pSrc++;
+ }
+
+ return len;
+}
+#endif
+
+/****************************************************************************
* Name: urlrawdecode
*
* Description: