File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / coova-chilli / src / cmdsock.c
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 22:48:25 2012 UTC (13 years, 1 month ago) by misho
Branches: coova-chilli, MAIN
CVS tags: v1_0_12, HEAD
coova-chilli

    1: /* 
    2:  * chilli - A Wireless LAN Access Point Controller.
    3:  * Copyright (c) 2007 David Bird <david@coova.com>
    4:  *
    5:  * The contents of this file may be used under the terms of the GNU
    6:  * General Public License Version 2, provided that the above copyright
    7:  * notice and this permission notice is included in all copies or
    8:  * substantial portions of the software.
    9:  * 
   10:  */
   11: 
   12: #include "system.h"
   13: #include "redir.h"
   14: #include "syserr.h"
   15: #include "radius.h"
   16: #include "dhcp.h"
   17: #include "chilli.h"
   18: #include "cmdline.h"
   19: #include "options.h"
   20: #include "cmdsock.h"
   21: 
   22: int
   23: cmdsock_init() {
   24:   struct sockaddr_un local;
   25:   int cmdsock;
   26:   
   27:   if ((cmdsock = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) {
   28:     log_err(errno, "could not allocate UNIX Socket!");
   29:   } else {
   30:     local.sun_family = AF_UNIX;
   31: 
   32:     strcpy(local.sun_path, options.cmdsocket);
   33:     unlink(local.sun_path);
   34: 
   35:     if (bind(cmdsock, (struct sockaddr *)&local, 
   36: 	     sizeof(struct sockaddr_un)) == -1) {
   37:       log_err(errno, "could bind UNIX Socket!");
   38:       close(cmdsock);
   39:       cmdsock = -1;
   40:     } else {
   41:       if (listen(cmdsock, 5) == -1) {
   42: 	log_err(errno, "could listen to UNIX Socket!");
   43: 	close(cmdsock);
   44: 	cmdsock = -1;
   45:       }
   46:     }
   47:   }
   48: 
   49:   return cmdsock;
   50: }

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