00001 /* 00002 ** Copyright (C) 2005 by Kevin L. Mitchell <klmitch@mit.edu> 00003 ** 00004 ** This program is free software; you can redistribute it and/or modify 00005 ** it under the terms of the GNU General Public License as published by 00006 ** the Free Software Foundation; either version 2 of the License, or 00007 ** (at your option) any later version. 00008 ** 00009 ** This program is distributed in the hope that it will be useful, 00010 ** but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 ** GNU General Public License for more details. 00013 ** 00014 ** You should have received a copy of the GNU General Public License 00015 ** along with this program; if not, write to the Free Software 00016 ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00017 ** 00018 ** @(#)$Id: sa_localaddr_set.c,v 1.2 2005/10/09 01:42:41 klmitch Exp $ 00019 */ 00027 #include "event_int.h" 00028 00029 #include <string.h> 00030 00031 RCSTAG("@(#)$Id: sa_localaddr_set.c,v 1.2 2005/10/09 01:42:41 klmitch Exp $"); 00032 00033 ev_err_t 00034 sa_localaddr_set(ev_sockaddr_t *sa, const char *address) 00035 { 00036 ev_init(); /* make sure library is initialized... */ 00037 00038 /* Double-check the input values... */ 00039 if (!sa || sa->sa_type != AT_LOCAL || !address) 00040 ev_return(EINVAL); 00041 00042 /* Double-check the address length... */ 00043 if (strlen(address) >= SOCK_LOCALADDR_LEN) 00044 ev_return(ENOSPC); 00045 00046 /* Set the local address... */ 00047 strcpy(sa->sa_addr.saa_localaddr, address); 00048 00049 ev_return(0); 00050 }