Annotation of embedaddon/miniupnpd/getconnstatus.c, revision 1.1

1.1     ! misho       1: /* $Id: getconnstatus.c,v 1.4 2011/05/23 20:22:41 nanard Exp $ */
        !             2: /* MiniUPnP project
        !             3:  * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
        !             4:  * (c) 2011 Thomas Bernard 
        !             5:  * This software is subject to the conditions detailed
        !             6:  * in the LICENCE file provided within the distribution */
        !             7: 
        !             8: #include <stdio.h>
        !             9: #include <sys/types.h>
        !            10: #include <netinet/in.h>
        !            11: #include "getconnstatus.h"
        !            12: #include "getifaddr.h"
        !            13: 
        !            14: #define STATUS_UNCONFIGURED (0)
        !            15: #define STATUS_CONNECTING (1)
        !            16: #define STATUS_CONNECTED (2)
        !            17: #define STATUS_PENDINGDISCONNECT (3)
        !            18: #define STATUS_DISCONNECTING (4)
        !            19: #define STATUS_DISCONNECTED (5)
        !            20: 
        !            21: /**
        !            22:  * get the connection status
        !            23:  * return values :
        !            24:  *  0 - Unconfigured
        !            25:  *  1 - Connecting
        !            26:  *  2 - Connected
        !            27:  *  3 - PendingDisconnect
        !            28:  *  4 - Disconnecting
        !            29:  *  5 - Disconnected */
        !            30: int
        !            31: get_wan_connection_status(const char * ifname)
        !            32: {
        !            33:        char addr[INET_ADDRSTRLEN];
        !            34:        int r;
        !            35: 
        !            36:        /* we need a better implementation here.
        !            37:         * I'm afraid it should be device specific */
        !            38:        r = getifaddr(ifname, addr, INET_ADDRSTRLEN);
        !            39:        return (r < 0) ? STATUS_DISCONNECTED : STATUS_CONNECTED;
        !            40: }
        !            41: 
        !            42: /**
        !            43:  * return the same value as get_wan_connection_status()
        !            44:  * as a C string */
        !            45: const char *
        !            46: get_wan_connection_status_str(const char * ifname)
        !            47: {
        !            48:        int status;
        !            49:        const char * str = NULL;
        !            50: 
        !            51:        status = get_wan_connection_status(ifname);
        !            52:        switch(status) {
        !            53:        case 0:
        !            54:                str = "Unconfigured";
        !            55:                break;
        !            56:        case 1:
        !            57:                str = "Connecting";
        !            58:                break;
        !            59:        case 2:
        !            60:                str = "Connected";
        !            61:                break;
        !            62:        case 3:
        !            63:                str = "PendingDisconnect";
        !            64:                break;
        !            65:        case 4:
        !            66:                str = "Disconnecting";
        !            67:                break;
        !            68:        case 5:
        !            69:                str = "Disconnected";
        !            70:                break;
        !            71:        }
        !            72:        return str;
        !            73: }
        !            74: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>