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

1.1.1.2 ! misho       1: /* $Id: getconnstatus.c,v 1.5 2012/03/05 20:36:16 nanard Exp $ */
1.1       misho       2: /* MiniUPnP project
                      3:  * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
1.1.1.2 ! misho       4:  * (c) 2011 Thomas Bernard
1.1       misho       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>