Annotation of embedaddon/miniupnpd/miniupnpdctl.c, revision 1.1.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>