/***********************************************************************1* *2* This software is part of the ast package *3* Copyright (c) 1990-2011 AT&T Intellectual Property *4* and is licensed under the *5* Eclipse Public License, Version 1.0 *6* by AT&T Intellectual Property *7* *8* A copy of the License is available at *9* http://www.eclipse.org/org/documents/epl-v10.html *10* (with md5 checksum b35adb5213ca9657e911e9befb180842) *11* *12* Information and Software Systems Research *13* AT&T Research *14* Florham Park NJ *15* *16* Glenn Fowler <[email protected]> *17* *18***********************************************************************/19#pragma prototyped20/*21* Glenn Fowler22* AT&T Research23*24* write datagram25*/2627#include "cslib.h"2829ssize_t30csto(register Cs_t* state, int fd, const void* buf, size_t siz, Csaddr_t* addr)31{3233#if CS_LIB_V103435struct udpaddr udp;3637udp.host = addr->addr[0];38udp.port = addr->addr[1];39if (cswrite(state, fd, &udp, sizeof(udp)) != sizeof(udp))40{41messagef((state->id, NiL, -1, "to: %d: hdr write error", fd));42return -1;43}44return cswrite(state, fd, buf, siz);4546#else4748#if CS_LIB_SOCKET4950struct sockaddr_in nam;5152memzero(&nam, sizeof(nam));53nam.sin_family = AF_INET;54nam.sin_addr.s_addr = addr->addr[0];55nam.sin_port = addr->addr[1];56return sendto(fd, buf, siz, 0, (struct sockaddr*)&nam, sizeof(nam));5758#else5960errno = EINVAL;61messagef((state->id, NiL, -1, "to: %d: not supported", fd));62return -1;6364#endif6566#endif6768}6970ssize_t71_cs_to(int fd, const void* buf, size_t siz, Csaddr_t* addr)72{73return csto(&cs, fd, buf, siz, addr);74}757677