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

1.1     ! misho       1: /* $Id: miniupnpdctl.c,v 1.8 2010/02/15 10:19:46 nanard Exp $ */
        !             2: /* MiniUPnP project
        !             3:  * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
        !             4:  * (c) 2006 Thomas Bernard
        !             5:  * This software is subject to the conditions detailed
        !             6:  * in the LICENCE file provided within the distribution */
        !             7: 
        !             8: #include <stdlib.h>
        !             9: #include <stdio.h>
        !            10: #include <unistd.h>
        !            11: #include <string.h>
        !            12: #include <sys/types.h>
        !            13: #include <sys/socket.h>
        !            14: #include <sys/un.h>
        !            15: #include <signal.h>
        !            16: 
        !            17: #if 0
        !            18: static void sighandler(int sig)
        !            19: {
        !            20:        printf("received signal %d\n", sig);
        !            21: }
        !            22: #endif
        !            23: 
        !            24: int
        !            25: main(int argc, char * * argv)
        !            26: {
        !            27:        /*char test[] = "test!";*/
        !            28:        static const char command[] = "show all\n";
        !            29:        char buf[256];
        !            30:        int l;
        !            31:        int s;
        !            32:        struct sockaddr_un addr;
        !            33: 
        !            34: //     signal(SIGINT, sighandler);
        !            35:        s = socket(AF_UNIX, SOCK_STREAM, 0);
        !            36:        if(s<0)
        !            37:        {
        !            38:                perror("socket");
        !            39:                return 1;
        !            40:        }
        !            41:        addr.sun_family = AF_UNIX;
        !            42:        strncpy(addr.sun_path, "/var/run/miniupnpd.ctl",
        !            43:                sizeof(addr.sun_path));
        !            44:        if(connect(s, (struct sockaddr *)&addr, sizeof(struct sockaddr_un)) < 0)
        !            45:        {
        !            46:                perror("connect");
        !            47:                close(s);
        !            48:                return 1;
        !            49:        }
        !            50: 
        !            51:        printf("Connected.\n");
        !            52:        if(write(s, command, sizeof(command)) < 0)
        !            53:        {
        !            54:                perror("write");
        !            55:                close(s);
        !            56:                return 1;
        !            57:        }
        !            58:        for(;;)
        !            59:        {
        !            60:                l = read(s, buf, sizeof(buf));
        !            61:                if(l<0)
        !            62:                {
        !            63:                        perror("read");
        !            64:                        break;
        !            65:                }
        !            66:                if(l==0)
        !            67:                        break;
        !            68:                /*printf("%d bytes read\n", l);*/
        !            69:                fflush(stdout);
        !            70:                if(write(fileno(stdout), buf, l) < 0) {
        !            71:                        perror("error writing to stdout");
        !            72:                }
        !            73:                /*printf("\n");*/
        !            74:        }
        !            75: 
        !            76:        close(s);
        !            77:        return 0;
        !            78: }
        !            79: 

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