Changeset 11577


Ignore:
Timestamp:
Dec 22, 2010, 4:10:14 PM (11 years ago)
Author:
livings124
Message:

update miniupnp to 1.4.20101221

Location:
trunk/third-party/miniupnp
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/third-party/miniupnp/Changelog.txt

    r11510 r11577  
    1 $Id: Changelog.txt,v 1.122 2010/12/09 16:11:31 nanard Exp $
     1$Id: Changelog.txt,v 1.125 2010/12/21 16:13:13 nanard Exp $
    22miniUPnP client Changelog.
     3
     42010/12/21:
     5  use NO_GETADDRINFO macro to disable the use of getaddrinfo/freeaddrinfo
     6
     72010/12/11:
     8  Improvements on getHTTPResponse() code.
    39
    4102010/12/09:
    511  new code for miniwget that handle Chunked transfer encoding
    612  using getHTTPResponse() in SOAP call code
     13  Adding MANIFEST.in for 'python setup.py bdist_rpm'
    714
    8152010/11/25:
  • trunk/third-party/miniupnp/connecthostport.c

    r10447 r11577  
    1 /* $Id: connecthostport.c,v 1.2 2010/04/05 00:08:15 nanard Exp $ */
     1/* $Id: connecthostport.c,v 1.3 2010/12/21 16:13:14 nanard Exp $ */
    22/* Project : miniupnp
    33 * Author : Thomas Bernard
     
    88/* use getaddrinfo() or gethostbyname()
    99 * uncomment the following line in order to use gethostbyname() */
    10 /* #define USE_GETHOSTBYNAME */
     10#ifdef NO_GETADDRINFO
     11#define USE_GETHOSTBYNAME
     12#endif
    1113
    1214#include <string.h>
  • trunk/third-party/miniupnp/igd_desc_parse.c

    r10460 r11577  
    1 /* $Id: igd_desc_parse.c,v 1.10 2010/04/05 20:36:59 nanard Exp $ */
     1/* $Id: igd_desc_parse.c,v 1.11 2010/12/11 17:56:51 nanard Exp $ */
    22/* Project : miniupnp
    33 * http://miniupnp.free.fr/
     
    9898        printf(" eventSubURL = '%s'\n", d->CIF.eventsuburl);
    9999        printf(" SCPDURL = '%s'\n", d->CIF.scpdurl);
    100         printf("WAN Connection Device (IP or PPP Connection):\n");
     100        printf("primary WAN Connection Device (IP or PPP Connection):\n");
    101101        /*printf(" deviceType = '%s'\n", d->first.devicetype);*/
    102102        printf(" servicetype = '%s'\n", d->first.servicetype);
  • trunk/third-party/miniupnp/minisoap.c

    r10472 r11577  
    1 /* $Id: minisoap.c,v 1.19 2010/04/12 20:39:41 nanard Exp $ */
     1/* $Id: minisoap.c,v 1.20 2010/12/11 17:56:51 nanard Exp $ */
    22/* Project : miniupnp
    33 * Author : Thomas Bernard
     
    107107                                           url, httpversion, host, portstr, bodysize, action);
    108108#ifdef DEBUG
    109         printf("SOAP request : headersize=%d bodysize=%d\n",
     109        /*printf("SOAP request : headersize=%d bodysize=%d\n",
    110110               headerssize, bodysize);
     111        */
     112        printf("SOAP request : POST %s HTTP/%s - Host: %s%s\n",
     113                url, httpversion, host, portstr);
     114        printf("SOAPAction: \"%s\" - Content-Length: %d\n", action, bodysize);
    111115        /*printf("%s", headerbuf);*/
    112116#endif
  • trunk/third-party/miniupnp/miniupnpc.c

    r11510 r11577  
    1 /* $Id: miniupnpc.c,v 1.83 2010/12/09 16:11:32 nanard Exp $ */
     1/* $Id: miniupnpc.c,v 1.85 2010/12/21 16:13:14 nanard Exp $ */
    22/* Project : miniupnp
    33 * Author : Thomas BERNARD
     
    299299        if(n > 0 && buf)
    300300        {
     301#ifdef DEBUG
     302                printf("SOAP Response :\n%.*s\n", n, buf);
     303#endif
    301304                if(*bufsize > n)
    302305                {
     
    439442        struct sockaddr sockudp_r;
    440443        unsigned int mx;
     444#ifdef NO_GETADDRINFO
     445        struct sockaddr_in sockudp_w;
     446#else
    441447        int rv;
    442448        struct addrinfo hints, *servinfo, *p;
     449#endif
    443450#ifdef WIN32
    444451        MIB_IPFORWARDROW ip_forward;
     
    485492                p->sin_addr.s_addr = INADDR_ANY;
    486493        }
    487 #if 0
    488         /* emission */
    489         memset(&sockudp_w, 0, sizeof(struct sockaddr_in));
    490         sockudp_w.sin_family = AF_INET;
    491         sockudp_w.sin_port = htons(PORT);
    492         sockudp_w.sin_addr.s_addr = inet_addr(UPNP_MCAST_ADDR);
    493 #endif
    494494#ifdef WIN32
    495495/* This code could help us to use the right Network interface for
     
    594594                             MSearchMsgFmt, deviceList[deviceIndex++], mx);
    595595                /*printf("Sending %s", bufr);*/
    596 #if 0
     596#ifdef NO_GETADDRINFO
     597                /* the following code is not using getaddrinfo */
     598                /* emission */
     599                memset(&sockudp_w, 0, sizeof(struct sockaddr_in));
     600                sockudp_w.sin_family = AF_INET;
     601                sockudp_w.sin_port = htons(PORT);
     602                sockudp_w.sin_addr.s_addr = inet_addr(UPNP_MCAST_ADDR);
    597603                n = sendto(sudp, bufr, n, 0,
    598604                           (struct sockaddr *)&sockudp_w, sizeof(struct sockaddr_in));
     
    602608                        return devlist;
    603609                }
    604 #endif
     610#else /* #ifdef NO_GETADDRINFO */
    605611                memset(&hints, 0, sizeof(hints));
    606612                hints.ai_family = AF_UNSPEC; // AF_INET6 or AF_INET
     
    627633                        return devlist;
    628634                }
     635#endif /* #ifdef NO_GETADDRINFO */
    629636        }
    630637        /* Waiting for SSDP REPLY packet to M-SEARCH */
  • trunk/third-party/miniupnp/miniwget.c

    r11510 r11577  
    1 /* $Id: miniwget.c,v 1.38 2010/12/09 15:54:25 nanard Exp $ */
     1/* $Id: miniwget.c,v 1.41 2010/12/12 23:52:02 nanard Exp $ */
    22/* Project : miniupnp
    33 * Author : Thomas Bernard
     
    1919#define snprintf _snprintf
    2020#define socklen_t int
     21#if defined(_MSC_VER) && (_MSC_VER >= 1400)
     22#define strncasecmp _memicmp
     23#else /* defined(_MSC_VER) && (_MSC_VER >= 1400) */
     24#define strncasecmp memicmp
     25#endif /* defined(_MSC_VER) && (_MSC_VER >= 1400) */
    2126#else /* #ifdef WIN32 */
    2227#include <unistd.h>
     
    5661        int content_length = -1;
    5762        unsigned int chunksize = 0;
     63        unsigned int bytestocopy = 0;
    5864        /* buffers : */
    5965        char * header_buf;
     
    130136                                                if(chunked)
    131137                                                {
    132                                                         while(i<header_buf_used && isxdigit(header_buf[i]))
     138                                                        while(i<header_buf_used)
    133139                                                        {
    134                                                                 if(header_buf[i] >= '0' && header_buf[i] <= '9')
    135                                                                         chunksize = (chunksize << 4) + (header_buf[i] - '0');
    136                                                                 else
    137                                                                         chunksize = (chunksize << 4) + ((header_buf[i] | 32) - 'a' + 10);
    138                                                                 i++;
    139                                                         }
    140                                                         /* discarding chunk-extension */
    141                                                         while(i < header_buf_used && header_buf[i] != '\r') i++;
    142                                                         if(i < header_buf_used && header_buf[i] == '\r') i++;
    143                                                         if(i < header_buf_used && header_buf[i] == '\n') i++;
    144 #ifdef DEBUG
    145                                                         printf("chunksize = %u (%x)\n", chunksize, chunksize);
    146 #endif
    147                                                         if(chunksize == 0)
    148                                                         {
    149 #ifdef DEBUG
    150                                                                 printf("end of stream !\n");
    151 #endif
    152                                                                 goto end_of_stream;     
    153                                                         }
    154                                                         if(header_buf_used - i <= chunksize)
    155                                                         {
    156                                                                 if(content_buf_len < header_buf_used - i)
     140                                                                while(i<header_buf_used && isxdigit(header_buf[i]))
    157141                                                                {
    158                                                                         content_buf = realloc(content_buf, header_buf_used - i);
    159                                                                         content_buf_len = header_buf_used - i;
     142                                                                        if(header_buf[i] >= '0' && header_buf[i] <= '9')
     143                                                                                chunksize = (chunksize << 4) + (header_buf[i] - '0');
     144                                                                        else
     145                                                                                chunksize = (chunksize << 4) + ((header_buf[i] | 32) - 'a' + 10);
     146                                                                        i++;
    160147                                                                }
    161                                                                 memcpy(content_buf, header_buf + i, header_buf_used - i);
    162                                                                 content_buf_used = header_buf_used - i;
    163                                                                 chunksize -= (header_buf_used - i);
    164                                                                 i = header_buf_used;
    165                                                         }
    166                                                         else
    167                                                         {
    168                                                                 printf("arg ! chunksize < (header_buf_used - i)\n");
     148                                                                /* discarding chunk-extension */
     149                                                                while(i < header_buf_used && header_buf[i] != '\r') i++;
     150                                                                if(i < header_buf_used && header_buf[i] == '\r') i++;
     151                                                                if(i < header_buf_used && header_buf[i] == '\n') i++;
     152#ifdef DEBUG
     153                                                                printf("chunksize = %u (%x)\n", chunksize, chunksize);
     154#endif
     155                                                                if(chunksize == 0)
     156                                                                {
     157#ifdef DEBUG
     158                                                                        printf("end of HTTP content !\n");
     159#endif
     160                                                                        goto end_of_stream;     
     161                                                                }
     162                                                                bytestocopy = ((int)chunksize < header_buf_used - i)?chunksize:(header_buf_used - i);
     163#ifdef DEBUG
     164                                                                printf("chunksize=%u bytestocopy=%u (i=%d header_buf_used=%d)\n",
     165                                                                       chunksize, bytestocopy, i, header_buf_used);
     166#endif
     167                                                                if(content_buf_len < (int)(content_buf_used + bytestocopy))
     168                                                                {
     169                                                                        content_buf = realloc(content_buf, content_buf_used + bytestocopy);
     170                                                                        content_buf_len = content_buf_used + bytestocopy;
     171                                                                }
     172                                                                memcpy(content_buf + content_buf_used, header_buf + i, bytestocopy);
     173                                                                content_buf_used += bytestocopy;
     174                                                                chunksize -= bytestocopy;
     175                                                                i += bytestocopy;
    169176                                                        }
    170177                                                }
     
    178185                                                        memcpy(content_buf, header_buf + i, header_buf_used - i);
    179186                                                        content_buf_used = header_buf_used - i;
     187                                                        i = header_buf_used;
    180188                                                }
    181189                                        }
     
    189197                        {
    190198                                int i = 0;
    191                                 unsigned bytestocopy;
    192199                                while(i < n)
    193200                                {
     
    214221                                                {
    215222#ifdef DEBUG
    216                                                         printf("end of stream - %d %d\n", i, n);
     223                                                        printf("end of HTTP content - %d %d\n", i, n);
    217224                                                        /*printf("'%.*s'\n", n-i, buf+i);*/
    218225#endif
     
    220227                                                }
    221228                                        }
    222                                         bytestocopy = (chunksize < n - i)?chunksize:(n - i);
    223                                         if(content_buf_used + bytestocopy > content_buf_len)
     229                                        bytestocopy = ((int)chunksize < n - i)?chunksize:(n - i);
     230                                        if((int)(content_buf_used + bytestocopy) > content_buf_len)
    224231                                        {
    225232                                                content_buf = (char *)realloc((void *)content_buf,
     
    248255                {
    249256#ifdef DEBUG
    250                         printf("termine!\n");
     257                        printf("End of HTTP content\n");
    251258#endif
    252259                        break;
Note: See TracChangeset for help on using the changeset viewer.