~ubuntu-branches/ubuntu/vivid/minissdpd/vivid

« back to all changes in this revision

Viewing changes to .pc/0001-always-disable-link_ntoa.diff/upnputils.c

  • Committer: Package Import Robot
  • Author(s): Thomas Goirand
  • Date: 2014-05-28 06:47:51 UTC
  • mfrom: (1.1.4)
  • Revision ID: package-import@ubuntu.com-20140528064751-nutklh6s3asbp1r2
Tags: 1.2.20130907-1
* New upstream release (Closes: #719612).
* Fixed typo in package description (Closes: #653027).
* Removed 0001-always-disable-link_ntoa.diff, let's see if that still
  works in FreeBSD.
* Switched to compat level 9 and bumped standards-version.
* VCS URLs now canonical.
* Using DPKG_EXPORT_BUILDFLAGS and hardening=+all.
* Removed the [ $VERBOSE ] cruft from init script.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* $Id: upnputils.c,v 1.3 2011/05/20 09:42:23 nanard Exp $ */
2
 
/* MiniUPnP project
3
 
 * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
4
 
 * (c) 2006-2011 Thomas Bernard
5
 
 * This software is subject to the conditions detailed
6
 
 * in the LICENCE file provided within the distribution */
7
 
 
8
 
#include "config.h"
9
 
 
10
 
#include <stdio.h>
11
 
#include <sys/types.h>
12
 
#include <sys/socket.h>
13
 
#include <netinet/in.h>
14
 
#include <arpa/inet.h>
15
 
#ifdef AF_LINK
16
 
#include <net/if_dl.h>
17
 
#endif
18
 
 
19
 
#include "upnputils.h"
20
 
 
21
 
int
22
 
sockaddr_to_string(const struct sockaddr * addr, char * str, size_t size)
23
 
{
24
 
        char buffer[64];
25
 
        unsigned short port = 0;
26
 
        int n = -1;
27
 
 
28
 
        switch(addr->sa_family)
29
 
        {
30
 
        case AF_INET6:
31
 
                inet_ntop(addr->sa_family,
32
 
                          &((struct sockaddr_in6 *)addr)->sin6_addr,
33
 
                          buffer, sizeof(buffer));
34
 
                port = ntohs(((struct sockaddr_in6 *)addr)->sin6_port);
35
 
                n = snprintf(str, size, "[%s]:%hu", buffer, port);
36
 
                break;
37
 
        case AF_INET:
38
 
                inet_ntop(addr->sa_family,
39
 
                          &((struct sockaddr_in *)addr)->sin_addr,
40
 
                          buffer, sizeof(buffer));
41
 
                port = ntohs(((struct sockaddr_in *)addr)->sin_port);
42
 
                n = snprintf(str, size, "%s:%hu", buffer, port);
43
 
                break;
44
 
#ifdef AF_LINK
45
 
        case AF_LINK:
46
 
                {
47
 
                        struct sockaddr_dl * sdl = (struct sockaddr_dl *)addr;
48
 
                        n = snprintf(str, size, "index=%hu type=%d %s",
49
 
                                     sdl->sdl_index, sdl->sdl_type,
50
 
                                     link_ntoa(sdl));
51
 
                }
52
 
                break;
53
 
#endif
54
 
        default:
55
 
                n = snprintf(str, size, "unknown address family %d", addr->sa_family);
56
 
#if 0
57
 
                n = snprintf(str, size, "unknown address family %d "
58
 
                             "%02x %02x %02x %02x %02x %02x %02x %02x",
59
 
                             addr->sa_family,
60
 
                             addr->sa_data[0], addr->sa_data[1], (unsigned)addr->sa_data[2], addr->sa_data[3],
61
 
                             addr->sa_data[4], addr->sa_data[5], (unsigned)addr->sa_data[6], addr->sa_data[7]);
62
 
#endif
63
 
        }
64
 
        return n;
65
 
}
66
 
 
67
 
 
68